ymz пре 3 недеља
родитељ
комит
e02a6fc38d
100 измењених фајлова са 0 додато и 44210 уклоњено
  1. 0 13
      .editorconfig
  2. 0 3
      .eslintignore
  3. 0 40
      .eslintrc.js
  4. 0 22
      .gitignore
  5. 0 9
      .prettierrc.json
  6. 0 5
      README.md
  7. BIN
      dist.zip
  8. 0 12
      env/.env.development
  9. 0 6
      env/.env.production
  10. 0 20
      index.html
  11. 0 24809
      package-lock.json
  12. 0 94
      package.json
  13. 0 8
      shims-uni.d.ts
  14. 0 24
      src/App.vue
  15. 0 89
      src/components/dateSelect/k-bottom-button/KBottomButton.vue
  16. 0 115
      src/components/dateSelect/k-bottom-popup/KBottomPopup.vue
  17. 0 728
      src/components/dateSelect/k-date-picker/KDatePicker.vue
  18. 0 444
      src/components/dateSelect/k-date-picker/day.js
  19. 0 23
      src/components/dateSelect/k-date-picker/utils.js
  20. 0 45
      src/components/noData/index.vue
  21. 0 147
      src/components/sharePopup/index.vue
  22. 0 89
      src/components/tabber/index.vue
  23. 0 150
      src/components/table/tableData.vue
  24. 0 123
      src/components/table/tableDetail.vue
  25. 0 203
      src/components/uploadImg/index.vue
  26. 0 0
      src/config/index.ts
  27. 0 37
      src/constants/provinces.ts
  28. 0 6
      src/constants/rolesType.ts
  29. 0 9
      src/custom.d.ts
  30. 0 8
      src/env.d.ts
  31. 0 6
      src/hooks/useGetLoginStatus.ts
  32. 0 17
      src/hooks/useLoginout.ts
  33. 0 6
      src/hooks/useUpdatedUserInfo.ts
  34. 0 26
      src/main.ts
  35. 0 91
      src/manifest.json
  36. 0 1
      src/mp_ecard_sdk/constants/log.js
  37. 0 1
      src/mp_ecard_sdk/globalConfig.js
  38. 0 0
      src/mp_ecard_sdk/index.css
  39. 0 1
      src/mp_ecard_sdk/index.js
  40. 0 1
      src/mp_ecard_sdk/index/index.js
  41. 0 44
      src/mp_ecard_sdk/index/index.vue
  42. 0 91
      src/mp_ecard_sdk/main.js
  43. 0 110
      src/mp_ecard_sdk/protocol/eid/eid.vue
  44. 0 195
      src/mp_ecard_sdk/protocol/privacy/privacy.vue
  45. 0 173
      src/mp_ecard_sdk/protocol/service/service.vue
  46. 0 47
      src/mp_ecard_sdk/protocol/userAccredit/userAccredit.vue
  47. 0 6
      src/mp_ecard_sdk/utils/getParameterByName.js
  48. 0 1
      src/mp_ecard_sdk/utils/http.js
  49. 0 1
      src/mp_ecard_sdk/utils/validate.js
  50. 0 68
      src/pages-sub-admin/managementByObjectives/index.vue
  51. 0 9
      src/pages-sub-admin/managementByObjectives/taskList.ts
  52. 0 813
      src/pages-sub-admin/objectivesAdd/index.vue
  53. 0 466
      src/pages-sub-admin/objectivesDetailList/index.vue
  54. 0 177
      src/pages-sub-admin/objectivesList/components/approvalFlowchart.vue
  55. 0 487
      src/pages-sub-admin/objectivesList/index.vue
  56. 0 84
      src/pages-sub-admin/serviceManagement/index.vue
  57. 0 34
      src/pages-sub-admin/serviceManagement/taskList.ts
  58. 0 47
      src/pages-sub-mine/agreement/index.vue
  59. 0 129
      src/pages-sub-mine/auth/constants/index.ts
  60. 0 289
      src/pages-sub-mine/auth/hook/useAutnFn.ts
  61. 0 50
      src/pages-sub-mine/auth/hook/useRadio.ts
  62. 0 390
      src/pages-sub-mine/auth/index.vue
  63. 0 97
      src/pages-sub-mine/bind-card/index.vue
  64. 0 92
      src/pages-sub-mine/changePassword/index.vue
  65. 0 101
      src/pages-sub-mine/feedback/index.vue
  66. 0 306
      src/pages-sub-mine/forgotPassword/index.vue
  67. 0 220
      src/pages-sub-mine/integral-rules/index.vue
  68. 0 84
      src/pages-sub-mine/quiz/index.vue
  69. 0 184
      src/pages-sub-mine/quizDetail/index.vue
  70. 0 285
      src/pages-sub-mine/task-completion-records/index.vue
  71. 0 168
      src/pages-sub-mine/user-info/index.vue
  72. 0 208
      src/pages-sub-packages/agreement/huiqiyun.vue
  73. 0 195
      src/pages-sub-packages/agreement/jinyuan.vue
  74. 0 184
      src/pages-sub-packages/agreement/olading.vue
  75. 0 70
      src/pages-sub-packages/agreement/personalInfoAuth.vue
  76. 0 4085
      src/pages-sub-packages/agreement/platformUsers.vue
  77. 0 385
      src/pages-sub-packages/agreement/privacyPolicy.vue
  78. 0 224
      src/pages-sub-packages/agreement/taxhelper.vue
  79. 0 187
      src/pages-sub-packages/agreement/xintaizi.vue
  80. 0 225
      src/pages-sub-packages/agreement/zhengqizhixing.vue
  81. 0 175
      src/pages-sub-packages/get-task/component/cardItem.vue
  82. 0 289
      src/pages-sub-packages/get-task/detail.vue
  83. 0 270
      src/pages-sub-packages/get-task/index.vue
  84. 0 568
      src/pages-sub-packages/task-history/index.vue
  85. 0 153
      src/pages-sub-packages/task-list/index.vue
  86. 0 416
      src/pages-sub-service-mangement/assignPoints/index.vue
  87. 0 88
      src/pages-sub-service-mangement/assignPointsAdd/components/TableData.vue
  88. 0 112
      src/pages-sub-service-mangement/assignPointsAdd/components/treeList.ts
  89. 0 209
      src/pages-sub-service-mangement/assignPointsAdd/detail.vue
  90. 0 581
      src/pages-sub-service-mangement/assignPointsAdd/index.vue
  91. 0 131
      src/pages-sub-service-mangement/generateReport/index.vue
  92. 0 404
      src/pages-sub-service-mangement/quickAudit/index.vue
  93. 0 155
      src/pages-sub-service-mangement/quickAuditCard/components/cardList.vue
  94. 0 146
      src/pages-sub-service-mangement/quickAuditCard/index.vue
  95. 0 381
      src/pages-sub-service-mangement/serviceDelivery/index.vue
  96. 0 125
      src/pages-sub-service-mangement/serviceDeliveryAdd/components/TableData.vue
  97. 0 134
      src/pages-sub-service-mangement/serviceDeliveryAdd/components/taskTree.vue
  98. 0 112
      src/pages-sub-service-mangement/serviceDeliveryAdd/components/treeList.ts
  99. 0 667
      src/pages-sub-service-mangement/serviceDeliveryAdd/index.vue
  100. 0 652
      src/pages-sub-service-mangement/serviceReviewed/index.vue

+ 0 - 13
.editorconfig

@@ -1,13 +0,0 @@
-# editorconfig.org
-root = true
-
-[*]
-indent_style = space
-indent_size = 2
-end_of_line = lf
-charset = utf-8
-trim_trailing_whitespace = true
-insert_final_newline = true
-
-[*.md]
-trim_trailing_whitespace = false

+ 0 - 3
.eslintignore

@@ -1,3 +0,0 @@
-node_modules/
-dist/
-src/**/*

+ 0 - 40
.eslintrc.js

@@ -1,40 +0,0 @@
-module.exports = {
-  env: {
-    browser: true,
-    es2021: true
-  },
-  extends: [
-    'plugin:vue/vue3-essential',
-    'eslint:recommended',
-    '@vue/eslint-config-typescript',
-    '@vue/eslint-config-prettier/skip-formatting',
-    'plugin:prettier/recommended'
-  ],
-  overrides: [
-    {
-      env: {
-        browser: true,
-        node: true,
-        es6: true
-      },
-      files: ['.eslintrc.{js,cjs}'],
-      parserOptions: {
-        sourceType: 'script'
-      }
-    }
-  ],
-  globals: {
-    wx: true
-  },
-  parserOptions: {
-    ecmaVersion: 'latest',
-    sourceType: 'module'
-  },
-  plugins: ['vue'],
-  rules: {
-    'vue/multi-word-component-names': 'off',
-    'element-plus/icons-vue/some-rule': 'off',
-    'prettier/prettier': ['error', { endOfLine: 'auto' }]
-  },
-  ignorePatterns: ['src/mp_ecard_sdk']
-}

+ 0 - 22
.gitignore

@@ -1,22 +0,0 @@
-# Logs
-logs
-*.log
-npm-debug.log*
-yarn-debug.log*
-yarn-error.log*
-pnpm-debug.log*
-lerna-debug.log*
-
-node_modules
-.DS_Store
-dist
-*.local
-
-# Editor directories and files
-.idea
-*.suo
-*.ntvs*
-*.njsproj
-*.sln
-*.sw?
-*.code-workspace

+ 0 - 9
.prettierrc.json

@@ -1,9 +0,0 @@
-{
-  "$schema": "https://json.schemastore.org/prettierrc",
-  "semi": false,
-  "tabWidth": 2,
-  "singleQuote": true,
-  "printWidth": 100,
-  "trailingComma": "none",
-  "endOfLine": "auto"
-}

+ 0 - 5
README.md

@@ -1,5 +0,0 @@
-# JY_2_MP
-
-营销行为小助手小程序 unipp
-
-VITE + VUE3 + TS + Pinnia + uv-ui


+ 0 - 12
env/.env.development

@@ -1,12 +0,0 @@
-NODE_ENV=development
-
-# pre环境
-# VITE_APP_URL=https://mic.freerr.cn
-# 生产
-# VITE_APP_URL=https://cnbg.yaoyi.net
-# VITE_APP_URL=https://mic.cnbg.com.cn
-# 中生测试
-VITE_APP_URL=https://mic-t.cnbg.com.cn
-
-# VITE_APP_URL=https://cnbg.yaoyi.net
-

+ 0 - 6
env/.env.production

@@ -1,6 +0,0 @@
-NODE_ENV=production
-VITE_APP_URL=https://cnbg.yaoyi.net
-# h5地址
-# VITE_APP_URL=https://mic.cnbg.com.cn
-# 测试环境
-# VITE_APP_URL=https://mic-t.cnbg.com.cn

+ 0 - 20
index.html

@@ -1,20 +0,0 @@
-<!DOCTYPE html>
-<html>
-  <head>
-    <meta charset="UTF-8" />
-    <script>
-      var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') ||
-        CSS.supports('top: constant(a)'))
-      document.write(
-        '<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' +
-        (coverSupport ? ', viewport-fit=cover' : '') + '" />')
-    </script>
-    <title></title>
-    <!--preload-links-->
-    <!--app-context-->
-  </head>
-  <body>
-    <div id="app"><!--app-html--></div>
-    <script type="module" src="/src/main.ts"></script>
-  </body>
-</html>

+ 0 - 24809
package-lock.json

@@ -1,24809 +0,0 @@
-{
-  "name": "uni-preset-vue",
-  "version": "0.0.0",
-  "lockfileVersion": 2,
-  "requires": true,
-  "packages": {
-    "": {
-      "name": "uni-preset-vue",
-      "version": "0.0.0",
-      "dependencies": {
-        "@climblee/uv-ui": "^1.1.15",
-        "@dcloudio/uni-app": "3.0.0-3081220230817001",
-        "@dcloudio/uni-app-plus": "3.0.0-3081220230817001",
-        "@dcloudio/uni-components": "3.0.0-3081220230817001",
-        "@dcloudio/uni-h5": "3.0.0-3081220230817001",
-        "@dcloudio/uni-mp-alipay": "3.0.0-3081220230817001",
-        "@dcloudio/uni-mp-baidu": "3.0.0-3081220230817001",
-        "@dcloudio/uni-mp-jd": "3.0.0-3081220230817001",
-        "@dcloudio/uni-mp-kuaishou": "3.0.0-3081220230817001",
-        "@dcloudio/uni-mp-lark": "3.0.0-3081220230817001",
-        "@dcloudio/uni-mp-qq": "3.0.0-3081220230817001",
-        "@dcloudio/uni-mp-toutiao": "3.0.0-3081220230817001",
-        "@dcloudio/uni-mp-weixin": "3.0.0-3081220230817001",
-        "@dcloudio/uni-quickapp-webview": "3.0.0-3081220230817001",
-        "@dcloudio/uni-ui": "^1.4.28",
-        "dayjs": "^1.11.10",
-        "eslint-config-prettier": "^9.0.0",
-        "eslint-plugin-prettier": "^5.0.1",
-        "pinia-plugin-persistedstate": "^3.2.0",
-        "prettier": "^3.0.3",
-        "qs": "^6.11.2",
-        "sass": "^1.69.3",
-        "sass-loader": "^13.3.2",
-        "vue": "^3.2.45",
-        "vue-i18n": "^9.1.9"
-      },
-      "devDependencies": {
-        "@dcloudio/types": "^3.4.1",
-        "@dcloudio/uni-automator": "3.0.0-3081220230817001",
-        "@dcloudio/uni-cli-shared": "3.0.0-3081220230817001",
-        "@dcloudio/uni-stacktracey": "3.0.0-3081220230817001",
-        "@dcloudio/vite-plugin-uni": "3.0.0-3081220230817001",
-        "@types/node": "^20.10.1",
-        "@types/qs": "^6.9.9",
-        "@typescript-eslint/eslint-plugin": "^6.8.0",
-        "@vitejs/plugin-vue-jsx": "^3.0.2",
-        "@vue/eslint-config-prettier": "^8.0.0",
-        "@vue/eslint-config-typescript": "^12.0.0",
-        "@vue/runtime-core": "^3.2.45",
-        "@vue/tsconfig": "^0.1.3",
-        "eslint": "^8.51.0",
-        "eslint-config-standard-with-typescript": "^39.1.1",
-        "eslint-plugin-import": "^2.28.1",
-        "eslint-plugin-n": "^16.2.0",
-        "eslint-plugin-promise": "^6.1.1",
-        "eslint-plugin-vue": "^9.17.0",
-        "pinia": "^2.0.36",
-        "typescript": "^5.2.2",
-        "vite": "4.1.5",
-        "vue-tsc": "^1.0.24"
-      }
-    },
-    "node_modules/@aashutoshrathi/word-wrap": {
-      "version": "1.2.6",
-      "resolved": "https://registry.npmmirror.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz",
-      "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==",
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/@ampproject/remapping": {
-      "version": "2.2.1",
-      "resolved": "https://registry.npmmirror.com/@ampproject/remapping/-/remapping-2.2.1.tgz",
-      "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==",
-      "dependencies": {
-        "@jridgewell/gen-mapping": "^0.3.0",
-        "@jridgewell/trace-mapping": "^0.3.9"
-      },
-      "engines": {
-        "node": ">=6.0.0"
-      }
-    },
-    "node_modules/@babel/code-frame": {
-      "version": "7.23.5",
-      "resolved": "https://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.23.5.tgz",
-      "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==",
-      "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.npmmirror.com/@babel/compat-data/-/compat-data-7.23.5.tgz",
-      "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==",
-      "engines": {
-        "node": ">=6.9.0"
-      }
-    },
-    "node_modules/@babel/core": {
-      "version": "7.23.9",
-      "resolved": "https://registry.npmmirror.com/@babel/core/-/core-7.23.9.tgz",
-      "integrity": "sha512-5q0175NOjddqpvvzU+kDiSOAk4PfdO6FvwCWoQ6RO7rTzEe8vlo+4HVfcnAREhD4npMs0e9uZypjTwzZPCf/cw==",
-      "dependencies": {
-        "@ampproject/remapping": "^2.2.0",
-        "@babel/code-frame": "^7.23.5",
-        "@babel/generator": "^7.23.6",
-        "@babel/helper-compilation-targets": "^7.23.6",
-        "@babel/helper-module-transforms": "^7.23.3",
-        "@babel/helpers": "^7.23.9",
-        "@babel/parser": "^7.23.9",
-        "@babel/template": "^7.23.9",
-        "@babel/traverse": "^7.23.9",
-        "@babel/types": "^7.23.9",
-        "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"
-      }
-    },
-    "node_modules/@babel/generator": {
-      "version": "7.23.6",
-      "resolved": "https://registry.npmmirror.com/@babel/generator/-/generator-7.23.6.tgz",
-      "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==",
-      "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/helper-annotate-as-pure": {
-      "version": "7.22.5",
-      "resolved": "https://registry.npmmirror.com/@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.npmmirror.com/@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.npmmirror.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz",
-      "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==",
-      "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-create-class-features-plugin": {
-      "version": "7.23.10",
-      "resolved": "https://registry.npmmirror.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.10.tgz",
-      "integrity": "sha512-2XpP2XhkXzgxecPNEEK8Vz8Asj9aRxt08oKOqtiZoqV2UGZ5T+EkyP9sXQ9nwMxBIG34a7jmasVqoMop7VdPUw==",
-      "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-regexp-features-plugin": {
-      "version": "7.22.15",
-      "resolved": "https://registry.npmmirror.com/@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-define-polyfill-provider": {
-      "version": "0.5.0",
-      "resolved": "https://registry.npmmirror.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.5.0.tgz",
-      "integrity": "sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q==",
-      "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.npmmirror.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz",
-      "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==",
-      "engines": {
-        "node": ">=6.9.0"
-      }
-    },
-    "node_modules/@babel/helper-function-name": {
-      "version": "7.23.0",
-      "resolved": "https://registry.npmmirror.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz",
-      "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==",
-      "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.npmmirror.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz",
-      "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==",
-      "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.npmmirror.com/@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.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz",
-      "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==",
-      "dependencies": {
-        "@babel/types": "^7.22.15"
-      },
-      "engines": {
-        "node": ">=6.9.0"
-      }
-    },
-    "node_modules/@babel/helper-module-transforms": {
-      "version": "7.23.3",
-      "resolved": "https://registry.npmmirror.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz",
-      "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==",
-      "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.npmmirror.com/@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.npmmirror.com/@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.npmmirror.com/@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.npmmirror.com/@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.npmmirror.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz",
-      "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==",
-      "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.npmmirror.com/@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.npmmirror.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz",
-      "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==",
-      "dependencies": {
-        "@babel/types": "^7.22.5"
-      },
-      "engines": {
-        "node": ">=6.9.0"
-      }
-    },
-    "node_modules/@babel/helper-string-parser": {
-      "version": "7.23.4",
-      "resolved": "https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz",
-      "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==",
-      "engines": {
-        "node": ">=6.9.0"
-      }
-    },
-    "node_modules/@babel/helper-validator-identifier": {
-      "version": "7.22.20",
-      "resolved": "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz",
-      "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==",
-      "engines": {
-        "node": ">=6.9.0"
-      }
-    },
-    "node_modules/@babel/helper-validator-option": {
-      "version": "7.23.5",
-      "resolved": "https://registry.npmmirror.com/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz",
-      "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==",
-      "engines": {
-        "node": ">=6.9.0"
-      }
-    },
-    "node_modules/@babel/helper-wrap-function": {
-      "version": "7.22.20",
-      "resolved": "https://registry.npmmirror.com/@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.9",
-      "resolved": "https://registry.npmmirror.com/@babel/helpers/-/helpers-7.23.9.tgz",
-      "integrity": "sha512-87ICKgU5t5SzOT7sBMfCOZQ2rHjRU+Pcb9BoILMYz600W6DkVRLFBPwQ18gwUVvggqXivaUakpnxWQGbpywbBQ==",
-      "dependencies": {
-        "@babel/template": "^7.23.9",
-        "@babel/traverse": "^7.23.9",
-        "@babel/types": "^7.23.9"
-      },
-      "engines": {
-        "node": ">=6.9.0"
-      }
-    },
-    "node_modules/@babel/highlight": {
-      "version": "7.23.4",
-      "resolved": "https://registry.npmmirror.com/@babel/highlight/-/highlight-7.23.4.tgz",
-      "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==",
-      "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.9",
-      "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.23.9.tgz",
-      "integrity": "sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==",
-      "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.npmmirror.com/@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.npmmirror.com/@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-bugfix-v8-static-class-fields-redefine-readonly": {
-      "version": "7.23.7",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.7.tgz",
-      "integrity": "sha512-LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw==",
-      "dev": true,
-      "dependencies": {
-        "@babel/helper-environment-visitor": "^7.22.20",
-        "@babel/helper-plugin-utils": "^7.22.5"
-      },
-      "engines": {
-        "node": ">=6.9.0"
-      },
-      "peerDependencies": {
-        "@babel/core": "^7.0.0"
-      }
-    },
-    "node_modules/@babel/plugin-proposal-private-property-in-object": {
-      "version": "7.21.0-placeholder-for-preset-env.2",
-      "resolved": "https://registry.npmmirror.com/@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.npmmirror.com/@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-bigint": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz",
-      "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==",
-      "dev": true,
-      "peer": 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.npmmirror.com/@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.npmmirror.com/@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.npmmirror.com/@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.npmmirror.com/@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.npmmirror.com/@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.npmmirror.com/@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.npmmirror.com/@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.npmmirror.com/@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-jsx": {
-      "version": "7.23.3",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz",
-      "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==",
-      "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-logical-assignment-operators": {
-      "version": "7.10.4",
-      "resolved": "https://registry.npmmirror.com/@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.npmmirror.com/@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.npmmirror.com/@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.npmmirror.com/@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.npmmirror.com/@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.npmmirror.com/@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.npmmirror.com/@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.npmmirror.com/@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-typescript": {
-      "version": "7.23.3",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz",
-      "integrity": "sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==",
-      "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-unicode-sets-regex": {
-      "version": "7.18.6",
-      "resolved": "https://registry.npmmirror.com/@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.npmmirror.com/@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.9",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.9.tgz",
-      "integrity": "sha512-8Q3veQEDGe14dTYuwagbRtwxQDnytyg1JFu4/HwEMETeofocrB0U0ejBJIXoeG/t2oXZ8kzCyI0ZZfbT80VFNQ==",
-      "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.23.3",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz",
-      "integrity": "sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==",
-      "dev": true,
-      "dependencies": {
-        "@babel/helper-module-imports": "^7.22.15",
-        "@babel/helper-plugin-utils": "^7.22.5",
-        "@babel/helper-remap-async-to-generator": "^7.22.20"
-      },
-      "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.npmmirror.com/@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.npmmirror.com/@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.npmmirror.com/@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.npmmirror.com/@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.8",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.8.tgz",
-      "integrity": "sha512-yAYslGsY1bX6Knmg46RjiCiNSwJKv2IUC8qOdYKqMMr0491SXFhcHqOdRDeCRohOOIzwN/90C6mQ9qAKgrP7dg==",
-      "dev": true,
-      "dependencies": {
-        "@babel/helper-annotate-as-pure": "^7.22.5",
-        "@babel/helper-compilation-targets": "^7.23.6",
-        "@babel/helper-environment-visitor": "^7.22.20",
-        "@babel/helper-function-name": "^7.23.0",
-        "@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.npmmirror.com/@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.npmmirror.com/@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.npmmirror.com/@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.npmmirror.com/@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.npmmirror.com/@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.npmmirror.com/@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.npmmirror.com/@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.npmmirror.com/@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.npmmirror.com/@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.npmmirror.com/@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.npmmirror.com/@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.npmmirror.com/@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.npmmirror.com/@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.npmmirror.com/@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.npmmirror.com/@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.9",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.9.tgz",
-      "integrity": "sha512-KDlPRM6sLo4o1FkiSlXoAa8edLXFsKKIda779fbLrvmeuc3itnjCtaO6RrtoaANsIJANj+Vk1zqbZIMhkCAHVw==",
-      "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.npmmirror.com/@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.npmmirror.com/@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.npmmirror.com/@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.npmmirror.com/@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.npmmirror.com/@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.npmmirror.com/@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.npmmirror.com/@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.npmmirror.com/@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.npmmirror.com/@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.npmmirror.com/@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.npmmirror.com/@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.npmmirror.com/@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.npmmirror.com/@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.npmmirror.com/@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.npmmirror.com/@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-shorthand-properties": {
-      "version": "7.23.3",
-      "resolved": "https://registry.npmmirror.com/@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.npmmirror.com/@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.npmmirror.com/@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.npmmirror.com/@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.npmmirror.com/@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-typescript": {
-      "version": "7.23.6",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.23.6.tgz",
-      "integrity": "sha512-6cBG5mBvUu4VUD04OHKnYzbuHNP8huDsD3EDqqpIpsswTDoqHCjLoHb6+QgsV1WsT2nipRqCPgxD3LXnEO7XfA==",
-      "dev": true,
-      "dependencies": {
-        "@babel/helper-annotate-as-pure": "^7.22.5",
-        "@babel/helper-create-class-features-plugin": "^7.23.6",
-        "@babel/helper-plugin-utils": "^7.22.5",
-        "@babel/plugin-syntax-typescript": "^7.23.3"
-      },
-      "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.npmmirror.com/@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.npmmirror.com/@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.npmmirror.com/@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.npmmirror.com/@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.9",
-      "resolved": "https://registry.npmmirror.com/@babel/preset-env/-/preset-env-7.23.9.tgz",
-      "integrity": "sha512-3kBGTNBBk9DQiPoXYS0g0BYlwTQYUTifqgKTjxUwEUkduRT2QOa0FPGBJ+NROQhGyYO5BuTJwGvBnqKDykac6A==",
-      "dev": true,
-      "dependencies": {
-        "@babel/compat-data": "^7.23.5",
-        "@babel/helper-compilation-targets": "^7.23.6",
-        "@babel/helper-plugin-utils": "^7.22.5",
-        "@babel/helper-validator-option": "^7.23.5",
-        "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.23.3",
-        "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.23.3",
-        "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.23.7",
-        "@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.23.3",
-        "@babel/plugin-syntax-import-attributes": "^7.23.3",
-        "@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.23.3",
-        "@babel/plugin-transform-async-generator-functions": "^7.23.9",
-        "@babel/plugin-transform-async-to-generator": "^7.23.3",
-        "@babel/plugin-transform-block-scoped-functions": "^7.23.3",
-        "@babel/plugin-transform-block-scoping": "^7.23.4",
-        "@babel/plugin-transform-class-properties": "^7.23.3",
-        "@babel/plugin-transform-class-static-block": "^7.23.4",
-        "@babel/plugin-transform-classes": "^7.23.8",
-        "@babel/plugin-transform-computed-properties": "^7.23.3",
-        "@babel/plugin-transform-destructuring": "^7.23.3",
-        "@babel/plugin-transform-dotall-regex": "^7.23.3",
-        "@babel/plugin-transform-duplicate-keys": "^7.23.3",
-        "@babel/plugin-transform-dynamic-import": "^7.23.4",
-        "@babel/plugin-transform-exponentiation-operator": "^7.23.3",
-        "@babel/plugin-transform-export-namespace-from": "^7.23.4",
-        "@babel/plugin-transform-for-of": "^7.23.6",
-        "@babel/plugin-transform-function-name": "^7.23.3",
-        "@babel/plugin-transform-json-strings": "^7.23.4",
-        "@babel/plugin-transform-literals": "^7.23.3",
-        "@babel/plugin-transform-logical-assignment-operators": "^7.23.4",
-        "@babel/plugin-transform-member-expression-literals": "^7.23.3",
-        "@babel/plugin-transform-modules-amd": "^7.23.3",
-        "@babel/plugin-transform-modules-commonjs": "^7.23.3",
-        "@babel/plugin-transform-modules-systemjs": "^7.23.9",
-        "@babel/plugin-transform-modules-umd": "^7.23.3",
-        "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5",
-        "@babel/plugin-transform-new-target": "^7.23.3",
-        "@babel/plugin-transform-nullish-coalescing-operator": "^7.23.4",
-        "@babel/plugin-transform-numeric-separator": "^7.23.4",
-        "@babel/plugin-transform-object-rest-spread": "^7.23.4",
-        "@babel/plugin-transform-object-super": "^7.23.3",
-        "@babel/plugin-transform-optional-catch-binding": "^7.23.4",
-        "@babel/plugin-transform-optional-chaining": "^7.23.4",
-        "@babel/plugin-transform-parameters": "^7.23.3",
-        "@babel/plugin-transform-private-methods": "^7.23.3",
-        "@babel/plugin-transform-private-property-in-object": "^7.23.4",
-        "@babel/plugin-transform-property-literals": "^7.23.3",
-        "@babel/plugin-transform-regenerator": "^7.23.3",
-        "@babel/plugin-transform-reserved-words": "^7.23.3",
-        "@babel/plugin-transform-shorthand-properties": "^7.23.3",
-        "@babel/plugin-transform-spread": "^7.23.3",
-        "@babel/plugin-transform-sticky-regex": "^7.23.3",
-        "@babel/plugin-transform-template-literals": "^7.23.3",
-        "@babel/plugin-transform-typeof-symbol": "^7.23.3",
-        "@babel/plugin-transform-unicode-escapes": "^7.23.3",
-        "@babel/plugin-transform-unicode-property-regex": "^7.23.3",
-        "@babel/plugin-transform-unicode-regex": "^7.23.3",
-        "@babel/plugin-transform-unicode-sets-regex": "^7.23.3",
-        "@babel/preset-modules": "0.1.6-no-external-plugins",
-        "babel-plugin-polyfill-corejs2": "^0.4.8",
-        "babel-plugin-polyfill-corejs3": "^0.9.0",
-        "babel-plugin-polyfill-regenerator": "^0.5.5",
-        "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-modules": {
-      "version": "0.1.6-no-external-plugins",
-      "resolved": "https://registry.npmmirror.com/@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.npmmirror.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz",
-      "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==",
-      "dev": true
-    },
-    "node_modules/@babel/runtime": {
-      "version": "7.23.9",
-      "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.23.9.tgz",
-      "integrity": "sha512-0CX6F+BI2s9dkUqr08KFrAIZgNFj75rdBU/DjCyYLIaV/quFjkk6T+EJ2LkZHyZTbEV4L5p97mNkUsHl2wLFAw==",
-      "dependencies": {
-        "regenerator-runtime": "^0.14.0"
-      },
-      "engines": {
-        "node": ">=6.9.0"
-      }
-    },
-    "node_modules/@babel/runtime/node_modules/regenerator-runtime": {
-      "version": "0.14.1",
-      "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz",
-      "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw=="
-    },
-    "node_modules/@babel/template": {
-      "version": "7.23.9",
-      "resolved": "https://registry.npmmirror.com/@babel/template/-/template-7.23.9.tgz",
-      "integrity": "sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA==",
-      "dependencies": {
-        "@babel/code-frame": "^7.23.5",
-        "@babel/parser": "^7.23.9",
-        "@babel/types": "^7.23.9"
-      },
-      "engines": {
-        "node": ">=6.9.0"
-      }
-    },
-    "node_modules/@babel/traverse": {
-      "version": "7.23.9",
-      "resolved": "https://registry.npmmirror.com/@babel/traverse/-/traverse-7.23.9.tgz",
-      "integrity": "sha512-I/4UJ9vs90OkBtY6iiiTORVMyIhJ4kAVmsKo9KFc8UOxMeUfi2hvtIBsET5u9GizXE6/GFSuKCTNfgCswuEjRg==",
-      "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.9",
-        "@babel/types": "^7.23.9",
-        "debug": "^4.3.1",
-        "globals": "^11.1.0"
-      },
-      "engines": {
-        "node": ">=6.9.0"
-      }
-    },
-    "node_modules/@babel/types": {
-      "version": "7.23.9",
-      "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.23.9.tgz",
-      "integrity": "sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==",
-      "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/@bcoe/v8-coverage": {
-      "version": "0.2.3",
-      "resolved": "https://registry.npmmirror.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz",
-      "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==",
-      "dev": true,
-      "peer": true
-    },
-    "node_modules/@climblee/uv-ui": {
-      "version": "1.1.20",
-      "resolved": "https://registry.npmmirror.com/@climblee/uv-ui/-/uv-ui-1.1.20.tgz",
-      "integrity": "sha512-jkyesHJsPJkF4Nap9ZmG1/ibKlxXA5M8+ntqKXwwloIsYSYL5SOKb0gyPj17aBOU1PkJpmeiZ8PwnTolhK2/HA=="
-    },
-    "node_modules/@dcloudio/types": {
-      "version": "3.4.7",
-      "resolved": "https://registry.npmmirror.com/@dcloudio/types/-/types-3.4.7.tgz",
-      "integrity": "sha512-RuErDYDAWY3KMlACT5NhJAKPxwjFjdzt7I/n50xCBvCSnH/84CzDPDJHRmmP6c0VOfMDHmV88V+sRBvBQRSp+w=="
-    },
-    "node_modules/@dcloudio/uni-app": {
-      "version": "3.0.0-3081220230817001",
-      "resolved": "https://registry.npmmirror.com/@dcloudio/uni-app/-/uni-app-3.0.0-3081220230817001.tgz",
-      "integrity": "sha512-sf8PzXHSd/VFCn7X9+QbD4nrY21FnIwjrhyX2hFit7PZK9kpyQluqCmG7YuotuXJzsNML8c8u2O9q5FaeOyTHg==",
-      "dependencies": {
-        "@dcloudio/uni-cloud": "3.0.0-3081220230817001",
-        "@dcloudio/uni-components": "3.0.0-3081220230817001",
-        "@dcloudio/uni-i18n": "3.0.0-3081220230817001",
-        "@dcloudio/uni-push": "3.0.0-3081220230817001",
-        "@dcloudio/uni-shared": "3.0.0-3081220230817001",
-        "@dcloudio/uni-stat": "3.0.0-3081220230817001",
-        "@vue/shared": "3.2.47"
-      },
-      "peerDependencies": {
-        "@dcloudio/types": "^3.3.2"
-      }
-    },
-    "node_modules/@dcloudio/uni-app-plus": {
-      "version": "3.0.0-3081220230817001",
-      "resolved": "https://registry.npmmirror.com/@dcloudio/uni-app-plus/-/uni-app-plus-3.0.0-3081220230817001.tgz",
-      "integrity": "sha512-GpQobx3WbcyOZ49f8JM+febzKvlthFBAxcs4xrbtNVzmkj0jLJoh9GoH37oa7m5DI1k4l5wUuwvg4/JxBbhOSA==",
-      "dependencies": {
-        "@dcloudio/uni-app-uts": "3.0.0-3081220230817001",
-        "@dcloudio/uni-app-vite": "3.0.0-3081220230817001",
-        "@dcloudio/uni-app-vue": "3.0.0-3081220230817001",
-        "debug": "^4.3.3",
-        "fs-extra": "^10.0.0",
-        "licia": "^1.29.0",
-        "postcss-selector-parser": "^6.0.6"
-      }
-    },
-    "node_modules/@dcloudio/uni-app-uts": {
-      "version": "3.0.0-3081220230817001",
-      "resolved": "https://registry.npmmirror.com/@dcloudio/uni-app-uts/-/uni-app-uts-3.0.0-3081220230817001.tgz",
-      "integrity": "sha512-snMFEpTw5T0TT5uFwp0piytLRB0FBRHDM5ML00E1nrzfts0XlaFKoB4UsvLySG5sE5+Xt8F5/uzKxid3mcgTLQ==",
-      "dependencies": {
-        "@babel/parser": "^7.16.4",
-        "@babel/types": "^7.20.7",
-        "@dcloudio/uni-cli-shared": "3.0.0-3081220230817001",
-        "@dcloudio/uni-i18n": "3.0.0-3081220230817001",
-        "@dcloudio/uni-nvue-styler": "3.0.0-3081220230817001",
-        "@dcloudio/uni-shared": "3.0.0-3081220230817001",
-        "@rollup/pluginutils": "^4.2.0",
-        "@vue/compiler-core": "3.2.47",
-        "@vue/compiler-sfc": "3.2.47",
-        "@vue/shared": "3.2.47",
-        "debug": "^4.3.3",
-        "es-module-lexer": "^1.2.1",
-        "fs-extra": "^10.0.0",
-        "picocolors": "^1.0.0",
-        "source-map": "^0.6.1"
-      }
-    },
-    "node_modules/@dcloudio/uni-app-vite": {
-      "version": "3.0.0-3081220230817001",
-      "resolved": "https://registry.npmmirror.com/@dcloudio/uni-app-vite/-/uni-app-vite-3.0.0-3081220230817001.tgz",
-      "integrity": "sha512-iHmKh6hjPGh+FC6Fi4qqwT5N31QiWv9JymCLdbkOJRi71A3byDjxoH7ScSEEEg+A5AAPky6LHbmFmznPMeSwAg==",
-      "dependencies": {
-        "@dcloudio/uni-cli-shared": "3.0.0-3081220230817001",
-        "@dcloudio/uni-i18n": "3.0.0-3081220230817001",
-        "@dcloudio/uni-nvue-styler": "3.0.0-3081220230817001",
-        "@dcloudio/uni-shared": "3.0.0-3081220230817001",
-        "@rollup/pluginutils": "^4.2.0",
-        "@vitejs/plugin-vue": "^4.2.1",
-        "@vue/compiler-dom": "3.2.47",
-        "@vue/compiler-sfc": "3.2.47",
-        "debug": "^4.3.3",
-        "fs-extra": "^10.0.0",
-        "picocolors": "^1.0.0"
-      }
-    },
-    "node_modules/@dcloudio/uni-app-vue": {
-      "version": "3.0.0-3081220230817001",
-      "resolved": "https://registry.npmmirror.com/@dcloudio/uni-app-vue/-/uni-app-vue-3.0.0-3081220230817001.tgz",
-      "integrity": "sha512-08ZUIn2a+OZWjqvjTbLygWZOY9YXbf2J1ns2letBI9aoMZDx+Sgx2lUFWHDksmOhvApPLKrRjJM0Hmmxi2mjJw=="
-    },
-    "node_modules/@dcloudio/uni-automator": {
-      "version": "3.0.0-3081220230817001",
-      "resolved": "https://registry.npmmirror.com/@dcloudio/uni-automator/-/uni-automator-3.0.0-3081220230817001.tgz",
-      "integrity": "sha512-boaRlUAAXsEh4aN5PbtMVvzdmvXqoEWa8eQBD4oCH36lyGgK8q75vsjLRi4LBFFwNlCNMrYepTNbBCjP+Sgt0g==",
-      "dev": true,
-      "dependencies": {
-        "@dcloudio/uni-cli-shared": "3.0.0-3081220230817001",
-        "address": "^1.1.2",
-        "cross-env": "^7.0.3",
-        "debug": "^4.3.3",
-        "default-gateway": "^6.0.3",
-        "fs-extra": "^10.0.0",
-        "jsonc-parser": "^3.2.0",
-        "licia": "^1.29.0",
-        "qrcode-reader": "^1.0.4",
-        "qrcode-terminal": "^0.12.0",
-        "ws": "^8.4.2"
-      },
-      "peerDependencies": {
-        "jest": "27.0.4",
-        "jest-environment-node": "27.5.1"
-      }
-    },
-    "node_modules/@dcloudio/uni-cli-shared": {
-      "version": "3.0.0-3081220230817001",
-      "resolved": "https://registry.npmmirror.com/@dcloudio/uni-cli-shared/-/uni-cli-shared-3.0.0-3081220230817001.tgz",
-      "integrity": "sha512-FOeydfIdKZg+MnQsHSFLXBzzmXtgCWnmEyjw3MHNN5mGwQB6+f7vK8sLw+yjizD/j71eMnh8XXCk+dV3nD/Vzg==",
-      "dependencies": {
-        "@ampproject/remapping": "^2.1.2",
-        "@babel/core": "^7.21.3",
-        "@babel/parser": "^7.16.4",
-        "@babel/types": "^7.20.7",
-        "@dcloudio/uni-i18n": "3.0.0-3081220230817001",
-        "@dcloudio/uni-shared": "3.0.0-3081220230817001",
-        "@intlify/core-base": "9.1.9",
-        "@intlify/shared": "9.1.9",
-        "@intlify/vue-devtools": "9.1.9",
-        "@rollup/pluginutils": "^4.2.0",
-        "@vue/compiler-core": "3.2.47",
-        "@vue/compiler-dom": "3.2.47",
-        "@vue/compiler-sfc": "3.2.47",
-        "@vue/server-renderer": "3.2.47",
-        "@vue/shared": "3.2.47",
-        "autoprefixer": "^10.4.14",
-        "base64url": "^3.0.1",
-        "chokidar": "^3.5.3",
-        "compare-versions": "^3.6.0",
-        "debug": "^4.3.3",
-        "es-module-lexer": "^1.2.1",
-        "esbuild": "^0.17.5",
-        "estree-walker": "^2.0.2",
-        "fast-glob": "^3.2.11",
-        "fs-extra": "^10.0.0",
-        "hash-sum": "^2.0.0",
-        "jsonc-parser": "^3.0.0",
-        "magic-string": "^0.30.0",
-        "merge": "^2.1.1",
-        "mime": "^3.0.0",
-        "module-alias": "^2.2.2",
-        "os-locale-s-fix": "^1.0.8-fix-1",
-        "picocolors": "^1.0.0",
-        "postcss-import": "^14.0.2",
-        "postcss-load-config": "^3.1.1",
-        "postcss-modules": "^4.3.0",
-        "postcss-selector-parser": "^6.0.6",
-        "resolve": "^1.22.1",
-        "tapable": "^2.2.0",
-        "xregexp": "3.1.0"
-      },
-      "engines": {
-        "node": "^14.18.0 || >=16.0.0"
-      }
-    },
-    "node_modules/@dcloudio/uni-cli-shared/node_modules/@vue/reactivity": {
-      "version": "3.2.47",
-      "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.2.47.tgz",
-      "integrity": "sha512-7khqQ/75oyyg+N/e+iwV6lpy1f5wq759NdlS1fpAhFXa8VeAIKGgk2E/C4VF59lx5b+Ezs5fpp/5WsRYXQiKxQ==",
-      "peer": true,
-      "dependencies": {
-        "@vue/shared": "3.2.47"
-      }
-    },
-    "node_modules/@dcloudio/uni-cli-shared/node_modules/@vue/runtime-core": {
-      "version": "3.2.47",
-      "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.2.47.tgz",
-      "integrity": "sha512-RZxbLQIRB/K0ev0K9FXhNbBzT32H9iRtYbaXb0ZIz2usLms/D55dJR2t6cIEUn6vyhS3ALNvNthI+Q95C+NOpA==",
-      "peer": true,
-      "dependencies": {
-        "@vue/reactivity": "3.2.47",
-        "@vue/shared": "3.2.47"
-      }
-    },
-    "node_modules/@dcloudio/uni-cli-shared/node_modules/@vue/runtime-dom": {
-      "version": "3.2.47",
-      "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.2.47.tgz",
-      "integrity": "sha512-ArXrFTjS6TsDei4qwNvgrdmHtD930KgSKGhS5M+j8QxXrDJYLqYw4RRcDy1bz1m1wMmb6j+zGLifdVHtkXA7gA==",
-      "peer": true,
-      "dependencies": {
-        "@vue/runtime-core": "3.2.47",
-        "@vue/shared": "3.2.47",
-        "csstype": "^2.6.8"
-      }
-    },
-    "node_modules/@dcloudio/uni-cli-shared/node_modules/@vue/server-renderer": {
-      "version": "3.2.47",
-      "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.2.47.tgz",
-      "integrity": "sha512-dN9gc1i8EvmP9RCzvneONXsKfBRgqFeFZLurmHOveL7oH6HiFXJw5OGu294n1nHc/HMgTy6LulU/tv5/A7f/LA==",
-      "dependencies": {
-        "@vue/compiler-ssr": "3.2.47",
-        "@vue/shared": "3.2.47"
-      },
-      "peerDependencies": {
-        "vue": "3.2.47"
-      }
-    },
-    "node_modules/@dcloudio/uni-cli-shared/node_modules/csstype": {
-      "version": "2.6.21",
-      "resolved": "https://registry.npmmirror.com/csstype/-/csstype-2.6.21.tgz",
-      "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==",
-      "peer": true
-    },
-    "node_modules/@dcloudio/uni-cli-shared/node_modules/vue": {
-      "version": "3.2.47",
-      "resolved": "https://registry.npmmirror.com/vue/-/vue-3.2.47.tgz",
-      "integrity": "sha512-60188y/9Dc9WVrAZeUVSDxRQOZ+z+y5nO2ts9jWXSTkMvayiWxCWOWtBQoYjLeccfXkiiPZWAHcV+WTPhkqJHQ==",
-      "peer": true,
-      "dependencies": {
-        "@vue/compiler-dom": "3.2.47",
-        "@vue/compiler-sfc": "3.2.47",
-        "@vue/runtime-dom": "3.2.47",
-        "@vue/server-renderer": "3.2.47",
-        "@vue/shared": "3.2.47"
-      }
-    },
-    "node_modules/@dcloudio/uni-cloud": {
-      "version": "3.0.0-3081220230817001",
-      "resolved": "https://registry.npmmirror.com/@dcloudio/uni-cloud/-/uni-cloud-3.0.0-3081220230817001.tgz",
-      "integrity": "sha512-rrHN4PvvylrhmivAoSv4h8ZcQ3ZWHnMRXhQWPC9FBR1TInrrxrrAHuMqSZn6pTIXhCiRA3Kuy6aDNVCbt6VA+g==",
-      "dependencies": {
-        "@dcloudio/uni-cli-shared": "3.0.0-3081220230817001",
-        "@dcloudio/uni-i18n": "3.0.0-3081220230817001",
-        "@dcloudio/uni-shared": "3.0.0-3081220230817001",
-        "@vue/shared": "3.2.47",
-        "fast-glob": "^3.2.11"
-      }
-    },
-    "node_modules/@dcloudio/uni-components": {
-      "version": "3.0.0-3081220230817001",
-      "resolved": "https://registry.npmmirror.com/@dcloudio/uni-components/-/uni-components-3.0.0-3081220230817001.tgz",
-      "integrity": "sha512-FlIrTgR/9Yp8FWYfhXfLPd0jJtBwJwRBAWWmLNaufkTojm6X7rX8wQOd13n+7gJGKzfXcEV8npOYpVou4P46Pw==",
-      "dependencies": {
-        "@dcloudio/uni-cloud": "3.0.0-3081220230817001",
-        "@dcloudio/uni-h5": "3.0.0-3081220230817001",
-        "@dcloudio/uni-i18n": "3.0.0-3081220230817001"
-      }
-    },
-    "node_modules/@dcloudio/uni-h5": {
-      "version": "3.0.0-3081220230817001",
-      "resolved": "https://registry.npmmirror.com/@dcloudio/uni-h5/-/uni-h5-3.0.0-3081220230817001.tgz",
-      "integrity": "sha512-m2RCZpYxuAGnXlQKSQ8FGy4OlnUJJ8XMx2HNQWriDwtjDpAGDU8I2LZQZ7MHCNPIUd503y+mgU2NPlSQHnrlkQ==",
-      "dependencies": {
-        "@dcloudio/uni-h5-vite": "3.0.0-3081220230817001",
-        "@dcloudio/uni-h5-vue": "3.0.0-3081220230817001",
-        "@dcloudio/uni-i18n": "3.0.0-3081220230817001",
-        "@dcloudio/uni-shared": "3.0.0-3081220230817001",
-        "@vue/server-renderer": "3.2.47",
-        "@vue/shared": "3.2.47",
-        "debug": "^4.3.3",
-        "localstorage-polyfill": "^1.0.1",
-        "postcss-selector-parser": "^6.0.6",
-        "safe-area-insets": "^1.4.1",
-        "vue-router": "^4.1.6",
-        "xmlhttprequest": "^1.8.0"
-      }
-    },
-    "node_modules/@dcloudio/uni-h5-vite": {
-      "version": "3.0.0-3081220230817001",
-      "resolved": "https://registry.npmmirror.com/@dcloudio/uni-h5-vite/-/uni-h5-vite-3.0.0-3081220230817001.tgz",
-      "integrity": "sha512-x7F6mUTjHiOx7+lj5yIrzhD7gr0HTNJaku5gV3O8bFjxKLcIkFkAyliKPbqJ4QZCmCCmEfJpOGKrDhk35tlibg==",
-      "dependencies": {
-        "@dcloudio/uni-cli-shared": "3.0.0-3081220230817001",
-        "@dcloudio/uni-shared": "3.0.0-3081220230817001",
-        "@rollup/pluginutils": "^4.2.0",
-        "@vue/compiler-dom": "3.2.47",
-        "@vue/compiler-sfc": "3.2.47",
-        "@vue/server-renderer": "3.2.47",
-        "@vue/shared": "3.2.47",
-        "debug": "^4.3.3",
-        "fs-extra": "^10.0.0",
-        "mime": "^3.0.0",
-        "module-alias": "^2.2.2"
-      }
-    },
-    "node_modules/@dcloudio/uni-h5-vite/node_modules/@vue/reactivity": {
-      "version": "3.2.47",
-      "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.2.47.tgz",
-      "integrity": "sha512-7khqQ/75oyyg+N/e+iwV6lpy1f5wq759NdlS1fpAhFXa8VeAIKGgk2E/C4VF59lx5b+Ezs5fpp/5WsRYXQiKxQ==",
-      "peer": true,
-      "dependencies": {
-        "@vue/shared": "3.2.47"
-      }
-    },
-    "node_modules/@dcloudio/uni-h5-vite/node_modules/@vue/runtime-core": {
-      "version": "3.2.47",
-      "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.2.47.tgz",
-      "integrity": "sha512-RZxbLQIRB/K0ev0K9FXhNbBzT32H9iRtYbaXb0ZIz2usLms/D55dJR2t6cIEUn6vyhS3ALNvNthI+Q95C+NOpA==",
-      "peer": true,
-      "dependencies": {
-        "@vue/reactivity": "3.2.47",
-        "@vue/shared": "3.2.47"
-      }
-    },
-    "node_modules/@dcloudio/uni-h5-vite/node_modules/@vue/runtime-dom": {
-      "version": "3.2.47",
-      "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.2.47.tgz",
-      "integrity": "sha512-ArXrFTjS6TsDei4qwNvgrdmHtD930KgSKGhS5M+j8QxXrDJYLqYw4RRcDy1bz1m1wMmb6j+zGLifdVHtkXA7gA==",
-      "peer": true,
-      "dependencies": {
-        "@vue/runtime-core": "3.2.47",
-        "@vue/shared": "3.2.47",
-        "csstype": "^2.6.8"
-      }
-    },
-    "node_modules/@dcloudio/uni-h5-vite/node_modules/@vue/server-renderer": {
-      "version": "3.2.47",
-      "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.2.47.tgz",
-      "integrity": "sha512-dN9gc1i8EvmP9RCzvneONXsKfBRgqFeFZLurmHOveL7oH6HiFXJw5OGu294n1nHc/HMgTy6LulU/tv5/A7f/LA==",
-      "dependencies": {
-        "@vue/compiler-ssr": "3.2.47",
-        "@vue/shared": "3.2.47"
-      },
-      "peerDependencies": {
-        "vue": "3.2.47"
-      }
-    },
-    "node_modules/@dcloudio/uni-h5-vite/node_modules/csstype": {
-      "version": "2.6.21",
-      "resolved": "https://registry.npmmirror.com/csstype/-/csstype-2.6.21.tgz",
-      "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==",
-      "peer": true
-    },
-    "node_modules/@dcloudio/uni-h5-vite/node_modules/vue": {
-      "version": "3.2.47",
-      "resolved": "https://registry.npmmirror.com/vue/-/vue-3.2.47.tgz",
-      "integrity": "sha512-60188y/9Dc9WVrAZeUVSDxRQOZ+z+y5nO2ts9jWXSTkMvayiWxCWOWtBQoYjLeccfXkiiPZWAHcV+WTPhkqJHQ==",
-      "peer": true,
-      "dependencies": {
-        "@vue/compiler-dom": "3.2.47",
-        "@vue/compiler-sfc": "3.2.47",
-        "@vue/runtime-dom": "3.2.47",
-        "@vue/server-renderer": "3.2.47",
-        "@vue/shared": "3.2.47"
-      }
-    },
-    "node_modules/@dcloudio/uni-h5-vue": {
-      "version": "3.0.0-3081220230817001",
-      "resolved": "https://registry.npmmirror.com/@dcloudio/uni-h5-vue/-/uni-h5-vue-3.0.0-3081220230817001.tgz",
-      "integrity": "sha512-q1eFoXb5/4whNIJ1CumKmeypPjZofw8xDQRHZeGZ7NVRQ0/MYnEm6A0n/vkmEo1IgTZIY83m/jr6RNg7a9Ko/A==",
-      "dependencies": {
-        "@dcloudio/uni-shared": "3.0.0-3081220230817001",
-        "@vue/server-renderer": "3.2.47"
-      }
-    },
-    "node_modules/@dcloudio/uni-h5-vue/node_modules/@vue/reactivity": {
-      "version": "3.2.47",
-      "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.2.47.tgz",
-      "integrity": "sha512-7khqQ/75oyyg+N/e+iwV6lpy1f5wq759NdlS1fpAhFXa8VeAIKGgk2E/C4VF59lx5b+Ezs5fpp/5WsRYXQiKxQ==",
-      "peer": true,
-      "dependencies": {
-        "@vue/shared": "3.2.47"
-      }
-    },
-    "node_modules/@dcloudio/uni-h5-vue/node_modules/@vue/runtime-core": {
-      "version": "3.2.47",
-      "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.2.47.tgz",
-      "integrity": "sha512-RZxbLQIRB/K0ev0K9FXhNbBzT32H9iRtYbaXb0ZIz2usLms/D55dJR2t6cIEUn6vyhS3ALNvNthI+Q95C+NOpA==",
-      "peer": true,
-      "dependencies": {
-        "@vue/reactivity": "3.2.47",
-        "@vue/shared": "3.2.47"
-      }
-    },
-    "node_modules/@dcloudio/uni-h5-vue/node_modules/@vue/runtime-dom": {
-      "version": "3.2.47",
-      "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.2.47.tgz",
-      "integrity": "sha512-ArXrFTjS6TsDei4qwNvgrdmHtD930KgSKGhS5M+j8QxXrDJYLqYw4RRcDy1bz1m1wMmb6j+zGLifdVHtkXA7gA==",
-      "peer": true,
-      "dependencies": {
-        "@vue/runtime-core": "3.2.47",
-        "@vue/shared": "3.2.47",
-        "csstype": "^2.6.8"
-      }
-    },
-    "node_modules/@dcloudio/uni-h5-vue/node_modules/@vue/server-renderer": {
-      "version": "3.2.47",
-      "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.2.47.tgz",
-      "integrity": "sha512-dN9gc1i8EvmP9RCzvneONXsKfBRgqFeFZLurmHOveL7oH6HiFXJw5OGu294n1nHc/HMgTy6LulU/tv5/A7f/LA==",
-      "dependencies": {
-        "@vue/compiler-ssr": "3.2.47",
-        "@vue/shared": "3.2.47"
-      },
-      "peerDependencies": {
-        "vue": "3.2.47"
-      }
-    },
-    "node_modules/@dcloudio/uni-h5-vue/node_modules/csstype": {
-      "version": "2.6.21",
-      "resolved": "https://registry.npmmirror.com/csstype/-/csstype-2.6.21.tgz",
-      "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==",
-      "peer": true
-    },
-    "node_modules/@dcloudio/uni-h5-vue/node_modules/vue": {
-      "version": "3.2.47",
-      "resolved": "https://registry.npmmirror.com/vue/-/vue-3.2.47.tgz",
-      "integrity": "sha512-60188y/9Dc9WVrAZeUVSDxRQOZ+z+y5nO2ts9jWXSTkMvayiWxCWOWtBQoYjLeccfXkiiPZWAHcV+WTPhkqJHQ==",
-      "peer": true,
-      "dependencies": {
-        "@vue/compiler-dom": "3.2.47",
-        "@vue/compiler-sfc": "3.2.47",
-        "@vue/runtime-dom": "3.2.47",
-        "@vue/server-renderer": "3.2.47",
-        "@vue/shared": "3.2.47"
-      }
-    },
-    "node_modules/@dcloudio/uni-h5/node_modules/@vue/reactivity": {
-      "version": "3.2.47",
-      "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.2.47.tgz",
-      "integrity": "sha512-7khqQ/75oyyg+N/e+iwV6lpy1f5wq759NdlS1fpAhFXa8VeAIKGgk2E/C4VF59lx5b+Ezs5fpp/5WsRYXQiKxQ==",
-      "peer": true,
-      "dependencies": {
-        "@vue/shared": "3.2.47"
-      }
-    },
-    "node_modules/@dcloudio/uni-h5/node_modules/@vue/runtime-core": {
-      "version": "3.2.47",
-      "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.2.47.tgz",
-      "integrity": "sha512-RZxbLQIRB/K0ev0K9FXhNbBzT32H9iRtYbaXb0ZIz2usLms/D55dJR2t6cIEUn6vyhS3ALNvNthI+Q95C+NOpA==",
-      "peer": true,
-      "dependencies": {
-        "@vue/reactivity": "3.2.47",
-        "@vue/shared": "3.2.47"
-      }
-    },
-    "node_modules/@dcloudio/uni-h5/node_modules/@vue/runtime-dom": {
-      "version": "3.2.47",
-      "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.2.47.tgz",
-      "integrity": "sha512-ArXrFTjS6TsDei4qwNvgrdmHtD930KgSKGhS5M+j8QxXrDJYLqYw4RRcDy1bz1m1wMmb6j+zGLifdVHtkXA7gA==",
-      "peer": true,
-      "dependencies": {
-        "@vue/runtime-core": "3.2.47",
-        "@vue/shared": "3.2.47",
-        "csstype": "^2.6.8"
-      }
-    },
-    "node_modules/@dcloudio/uni-h5/node_modules/@vue/server-renderer": {
-      "version": "3.2.47",
-      "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.2.47.tgz",
-      "integrity": "sha512-dN9gc1i8EvmP9RCzvneONXsKfBRgqFeFZLurmHOveL7oH6HiFXJw5OGu294n1nHc/HMgTy6LulU/tv5/A7f/LA==",
-      "dependencies": {
-        "@vue/compiler-ssr": "3.2.47",
-        "@vue/shared": "3.2.47"
-      },
-      "peerDependencies": {
-        "vue": "3.2.47"
-      }
-    },
-    "node_modules/@dcloudio/uni-h5/node_modules/csstype": {
-      "version": "2.6.21",
-      "resolved": "https://registry.npmmirror.com/csstype/-/csstype-2.6.21.tgz",
-      "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==",
-      "peer": true
-    },
-    "node_modules/@dcloudio/uni-h5/node_modules/vue": {
-      "version": "3.2.47",
-      "resolved": "https://registry.npmmirror.com/vue/-/vue-3.2.47.tgz",
-      "integrity": "sha512-60188y/9Dc9WVrAZeUVSDxRQOZ+z+y5nO2ts9jWXSTkMvayiWxCWOWtBQoYjLeccfXkiiPZWAHcV+WTPhkqJHQ==",
-      "peer": true,
-      "dependencies": {
-        "@vue/compiler-dom": "3.2.47",
-        "@vue/compiler-sfc": "3.2.47",
-        "@vue/runtime-dom": "3.2.47",
-        "@vue/server-renderer": "3.2.47",
-        "@vue/shared": "3.2.47"
-      }
-    },
-    "node_modules/@dcloudio/uni-i18n": {
-      "version": "3.0.0-3081220230817001",
-      "resolved": "https://registry.npmmirror.com/@dcloudio/uni-i18n/-/uni-i18n-3.0.0-3081220230817001.tgz",
-      "integrity": "sha512-ooAIoNCy+DPlMtA4k9eoaJJsYQtici85le+ietIIzLdJoa2YUnudYv9CvG9Mw/RsKQI+MLl96ADAPgUpGzounw=="
-    },
-    "node_modules/@dcloudio/uni-mp-alipay": {
-      "version": "3.0.0-3081220230817001",
-      "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-alipay/-/uni-mp-alipay-3.0.0-3081220230817001.tgz",
-      "integrity": "sha512-lZR2u8sxJ/ZaDqaxEmGzgWWKHcjnLGedDTrMh8kOEPLHO6THVNe5TP6XeiTcE0HKJfWEXv6X13erjn0FCstz3A==",
-      "dependencies": {
-        "@dcloudio/uni-cli-shared": "3.0.0-3081220230817001",
-        "@dcloudio/uni-mp-vite": "3.0.0-3081220230817001",
-        "@dcloudio/uni-mp-vue": "3.0.0-3081220230817001",
-        "@dcloudio/uni-shared": "3.0.0-3081220230817001",
-        "@vue/compiler-core": "3.2.47",
-        "@vue/shared": "3.2.47"
-      }
-    },
-    "node_modules/@dcloudio/uni-mp-baidu": {
-      "version": "3.0.0-3081220230817001",
-      "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-baidu/-/uni-mp-baidu-3.0.0-3081220230817001.tgz",
-      "integrity": "sha512-FYwK1AqSc+NvtvaCia/fOP57ELx5O5icHjuwPKMsJv5eGtqlwhXzyvSCoGEFyYQcsWP9ZqYSb3fTuxVlbiEYdA==",
-      "dependencies": {
-        "@dcloudio/uni-cli-shared": "3.0.0-3081220230817001",
-        "@dcloudio/uni-mp-compiler": "3.0.0-3081220230817001",
-        "@dcloudio/uni-mp-vite": "3.0.0-3081220230817001",
-        "@dcloudio/uni-mp-vue": "3.0.0-3081220230817001",
-        "@dcloudio/uni-mp-weixin": "3.0.0-3081220230817001",
-        "@dcloudio/uni-shared": "3.0.0-3081220230817001",
-        "@vue/compiler-core": "3.2.47",
-        "@vue/shared": "3.2.47",
-        "jimp": "^0.10.1",
-        "licia": "^1.29.0",
-        "qrcode-reader": "^1.0.4",
-        "qrcode-terminal": "^0.12.0",
-        "ws": "^8.4.2"
-      }
-    },
-    "node_modules/@dcloudio/uni-mp-compiler": {
-      "version": "3.0.0-3081220230817001",
-      "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-compiler/-/uni-mp-compiler-3.0.0-3081220230817001.tgz",
-      "integrity": "sha512-KDfwEr9jFNSkNbYmdDc+zfGuZwXGkz3bW3c4cuV44IncTf/UW2m594Z2UzhJkx/p662aQ2W9M4BFZ0o5QSfQDw==",
-      "dependencies": {
-        "@babel/generator": "^7.20.5",
-        "@babel/parser": "^7.16.4",
-        "@babel/types": "^7.20.7",
-        "@dcloudio/uni-cli-shared": "3.0.0-3081220230817001",
-        "@dcloudio/uni-shared": "3.0.0-3081220230817001",
-        "@vue/compiler-core": "3.2.47",
-        "@vue/compiler-dom": "3.2.47",
-        "@vue/shared": "3.2.47",
-        "estree-walker": "^2.0.2"
-      }
-    },
-    "node_modules/@dcloudio/uni-mp-jd": {
-      "version": "3.0.0-3081220230817001",
-      "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-jd/-/uni-mp-jd-3.0.0-3081220230817001.tgz",
-      "integrity": "sha512-sKDppXhk7k8Euce9v7ItQ2cs3+XpQV/DX8FjXzfO9DfjQEKiR/Pyfis7e3ANQrF4V/W3uwK5wgN/PyI3/NRloQ==",
-      "dependencies": {
-        "@dcloudio/uni-cli-shared": "3.0.0-3081220230817001",
-        "@dcloudio/uni-mp-compiler": "3.0.0-3081220230817001",
-        "@dcloudio/uni-mp-vite": "3.0.0-3081220230817001",
-        "@dcloudio/uni-mp-vue": "3.0.0-3081220230817001",
-        "@dcloudio/uni-shared": "3.0.0-3081220230817001",
-        "@vue/shared": "3.2.47"
-      }
-    },
-    "node_modules/@dcloudio/uni-mp-kuaishou": {
-      "version": "3.0.0-3081220230817001",
-      "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-kuaishou/-/uni-mp-kuaishou-3.0.0-3081220230817001.tgz",
-      "integrity": "sha512-wYXwoxcdms8PviNsKg2Y9oqHawKqseoD97sYs94RLDVSnyO9c6NOoUMsYjXwIZXt05E56bJ9EbxDqYDwwJhEKw==",
-      "dependencies": {
-        "@dcloudio/uni-cli-shared": "3.0.0-3081220230817001",
-        "@dcloudio/uni-mp-compiler": "3.0.0-3081220230817001",
-        "@dcloudio/uni-mp-vite": "3.0.0-3081220230817001",
-        "@dcloudio/uni-mp-vue": "3.0.0-3081220230817001",
-        "@dcloudio/uni-mp-weixin": "3.0.0-3081220230817001",
-        "@dcloudio/uni-shared": "3.0.0-3081220230817001",
-        "@vue/compiler-core": "3.2.47",
-        "@vue/shared": "3.2.47"
-      }
-    },
-    "node_modules/@dcloudio/uni-mp-lark": {
-      "version": "3.0.0-3081220230817001",
-      "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-lark/-/uni-mp-lark-3.0.0-3081220230817001.tgz",
-      "integrity": "sha512-4aHwULp+Nx55BoJvj1jCXWnVJrzl0ACEbDlXVvxmNUI5tkqn2kYL4AZgrXP1vCx8MHKVPI4E34Z+lrBTfSfKMA==",
-      "dependencies": {
-        "@dcloudio/uni-cli-shared": "3.0.0-3081220230817001",
-        "@dcloudio/uni-mp-compiler": "3.0.0-3081220230817001",
-        "@dcloudio/uni-mp-toutiao": "3.0.0-3081220230817001",
-        "@dcloudio/uni-mp-vite": "3.0.0-3081220230817001",
-        "@dcloudio/uni-mp-vue": "3.0.0-3081220230817001",
-        "@dcloudio/uni-shared": "3.0.0-3081220230817001",
-        "@vue/compiler-core": "3.2.47",
-        "@vue/shared": "3.2.47"
-      }
-    },
-    "node_modules/@dcloudio/uni-mp-qq": {
-      "version": "3.0.0-3081220230817001",
-      "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-qq/-/uni-mp-qq-3.0.0-3081220230817001.tgz",
-      "integrity": "sha512-StSsxCCKMdZCghUZ+wdX1otCmlYkIV+O2Z/AxMv772HfIKlpDp44PPaxlKBG4L6+X7h2JsCvyZW1iSznM5A3CQ==",
-      "dependencies": {
-        "@dcloudio/uni-cli-shared": "3.0.0-3081220230817001",
-        "@dcloudio/uni-mp-vite": "3.0.0-3081220230817001",
-        "@dcloudio/uni-mp-vue": "3.0.0-3081220230817001",
-        "@dcloudio/uni-shared": "3.0.0-3081220230817001",
-        "@vue/shared": "3.2.47",
-        "fs-extra": "^10.0.0"
-      }
-    },
-    "node_modules/@dcloudio/uni-mp-toutiao": {
-      "version": "3.0.0-3081220230817001",
-      "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-toutiao/-/uni-mp-toutiao-3.0.0-3081220230817001.tgz",
-      "integrity": "sha512-ZMSNNjQpCV4z+76OA8rDKKhqr+vQmTvKNUOzKfND5KPYhgWbqviEBZ8ptiDT5gaWXMpkUHNfWz32hdi5CLbj5Q==",
-      "dependencies": {
-        "@dcloudio/uni-cli-shared": "3.0.0-3081220230817001",
-        "@dcloudio/uni-mp-compiler": "3.0.0-3081220230817001",
-        "@dcloudio/uni-mp-vite": "3.0.0-3081220230817001",
-        "@dcloudio/uni-mp-vue": "3.0.0-3081220230817001",
-        "@dcloudio/uni-shared": "3.0.0-3081220230817001",
-        "@vue/compiler-core": "3.2.47",
-        "@vue/shared": "3.2.47"
-      }
-    },
-    "node_modules/@dcloudio/uni-mp-vite": {
-      "version": "3.0.0-3081220230817001",
-      "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-vite/-/uni-mp-vite-3.0.0-3081220230817001.tgz",
-      "integrity": "sha512-jmEbsVOJ1dlj46QiSFMB2C3zbgGivkGf1KXoPTAprv0WZrkmjF1uNLj0pHFOOUnnyHwHPViEApsMOPS4twIjIQ==",
-      "dependencies": {
-        "@dcloudio/uni-cli-shared": "3.0.0-3081220230817001",
-        "@dcloudio/uni-i18n": "3.0.0-3081220230817001",
-        "@dcloudio/uni-mp-compiler": "3.0.0-3081220230817001",
-        "@dcloudio/uni-mp-vue": "3.0.0-3081220230817001",
-        "@dcloudio/uni-shared": "3.0.0-3081220230817001",
-        "@vue/compiler-sfc": "3.2.47",
-        "@vue/shared": "3.2.47",
-        "debug": "^4.3.3"
-      }
-    },
-    "node_modules/@dcloudio/uni-mp-vue": {
-      "version": "3.0.0-3081220230817001",
-      "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-vue/-/uni-mp-vue-3.0.0-3081220230817001.tgz",
-      "integrity": "sha512-EfdTH6+qGXRh3402+psl8X4K34/gHfBPaMfxbwMsne1rGnB8ZVXiN73gVXKfCWeznvJqdWuTWmmjqaLoBhjOjA==",
-      "dependencies": {
-        "@dcloudio/uni-shared": "3.0.0-3081220230817001",
-        "@vue/shared": "3.2.47"
-      }
-    },
-    "node_modules/@dcloudio/uni-mp-weixin": {
-      "version": "3.0.0-3081220230817001",
-      "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-weixin/-/uni-mp-weixin-3.0.0-3081220230817001.tgz",
-      "integrity": "sha512-vo2k8OaWFOvoXuRX83UCR0AOOKXXwjRDIOX0y/jUC9TX63Ne5OTdRKH9253D9109FrwtrtsUWqnpfn1ynKXl9g==",
-      "dependencies": {
-        "@dcloudio/uni-cli-shared": "3.0.0-3081220230817001",
-        "@dcloudio/uni-mp-vite": "3.0.0-3081220230817001",
-        "@dcloudio/uni-mp-vue": "3.0.0-3081220230817001",
-        "@dcloudio/uni-shared": "3.0.0-3081220230817001",
-        "@vue/shared": "3.2.47",
-        "jimp": "^0.10.1",
-        "licia": "^1.29.0",
-        "qrcode-reader": "^1.0.4",
-        "qrcode-terminal": "^0.12.0",
-        "ws": "^8.4.2"
-      }
-    },
-    "node_modules/@dcloudio/uni-nvue-styler": {
-      "version": "3.0.0-3081220230817001",
-      "resolved": "https://registry.npmmirror.com/@dcloudio/uni-nvue-styler/-/uni-nvue-styler-3.0.0-3081220230817001.tgz",
-      "integrity": "sha512-EImnyrYHmAc7ibKfIMkBG1uMavS5sPdrtQj52m40o/QNU5kcsqUk2Od9c1ULkQloxhmK2E4FZvXo4cgszE/Txw==",
-      "dependencies": {
-        "@vue/shared": "3.2.47",
-        "parse-css-font": "^4.0.0",
-        "postcss": "^8.4.23"
-      }
-    },
-    "node_modules/@dcloudio/uni-push": {
-      "version": "3.0.0-3081220230817001",
-      "resolved": "https://registry.npmmirror.com/@dcloudio/uni-push/-/uni-push-3.0.0-3081220230817001.tgz",
-      "integrity": "sha512-1IyVJlBnZVVvY49SQKpZG5Oxak5Wl51NvYEozuYoeBaaTeZObm7B6eyd722sXi0Dd6N1sE3kIdm/XReprK53eg==",
-      "dependencies": {
-        "@dcloudio/uni-cli-shared": "3.0.0-3081220230817001"
-      }
-    },
-    "node_modules/@dcloudio/uni-quickapp-webview": {
-      "version": "3.0.0-3081220230817001",
-      "resolved": "https://registry.npmmirror.com/@dcloudio/uni-quickapp-webview/-/uni-quickapp-webview-3.0.0-3081220230817001.tgz",
-      "integrity": "sha512-w6yitVyCKEFSO+UDsJPjc5RfAstIdOEbBHgim0gInTfOl90odmyUPKDxWhwQgS5vqezBXpCj0/6ywVMHvZu+7A==",
-      "dependencies": {
-        "@dcloudio/uni-cli-shared": "3.0.0-3081220230817001",
-        "@dcloudio/uni-mp-vite": "3.0.0-3081220230817001",
-        "@dcloudio/uni-mp-vue": "3.0.0-3081220230817001",
-        "@dcloudio/uni-shared": "3.0.0-3081220230817001",
-        "@vue/shared": "3.2.47"
-      }
-    },
-    "node_modules/@dcloudio/uni-shared": {
-      "version": "3.0.0-3081220230817001",
-      "resolved": "https://registry.npmmirror.com/@dcloudio/uni-shared/-/uni-shared-3.0.0-3081220230817001.tgz",
-      "integrity": "sha512-NI1pBO40VqvnWjwNXad3CqrUYvr4ffGjiDMgJGMP13rgOEAqamU7ozBimoASDVPKyyfSHTeuYuh0gtaaLu4CsQ==",
-      "dependencies": {
-        "@vue/shared": "3.2.47"
-      }
-    },
-    "node_modules/@dcloudio/uni-stacktracey": {
-      "version": "3.0.0-3081220230817001",
-      "resolved": "https://registry.npmmirror.com/@dcloudio/uni-stacktracey/-/uni-stacktracey-3.0.0-3081220230817001.tgz",
-      "integrity": "sha512-DUTTN8JWXxjO3ryz7uhD3+vazHVMflln15+r0ycWBjXO0p0MepRY3gX5gKCyiq9D3NUIxazcFAUJ6agFVUbDog==",
-      "dev": true
-    },
-    "node_modules/@dcloudio/uni-stat": {
-      "version": "3.0.0-3081220230817001",
-      "resolved": "https://registry.npmmirror.com/@dcloudio/uni-stat/-/uni-stat-3.0.0-3081220230817001.tgz",
-      "integrity": "sha512-xpbsor5WKU1eCbo0dmQ0hBUX6RrdG7DNDzCSD6oimndIXVGLkFhWrIC3brQ7S1G2GQvXdXnXJpUVskI3qNe/uw==",
-      "dependencies": {
-        "@dcloudio/uni-cli-shared": "3.0.0-3081220230817001",
-        "@dcloudio/uni-shared": "3.0.0-3081220230817001",
-        "debug": "^4.3.3"
-      }
-    },
-    "node_modules/@dcloudio/uni-ui": {
-      "version": "1.5.0",
-      "resolved": "https://registry.npmmirror.com/@dcloudio/uni-ui/-/uni-ui-1.5.0.tgz",
-      "integrity": "sha512-E7D37VbRZeh1E2yzrIie8psBckIrErdkUbUA751rlG8zdioGovW3zOuUsKgY+Gh7csMvi6XMEoSacvboe8o4Gw=="
-    },
-    "node_modules/@dcloudio/vite-plugin-uni": {
-      "version": "3.0.0-3081220230817001",
-      "resolved": "https://registry.npmmirror.com/@dcloudio/vite-plugin-uni/-/vite-plugin-uni-3.0.0-3081220230817001.tgz",
-      "integrity": "sha512-dLeqqyrNNUBTZfI0ppPk4YoD+DBI0gJLeTjpN6bK5i3nFKkju9g2K6IWl62YMObjTiXwQF8qAEDb+fyWoe4Ksw==",
-      "dev": true,
-      "dependencies": {
-        "@babel/core": "^7.21.3",
-        "@babel/plugin-syntax-import-meta": "^7.10.4",
-        "@babel/plugin-transform-typescript": "^7.20.7",
-        "@dcloudio/uni-cli-shared": "3.0.0-3081220230817001",
-        "@dcloudio/uni-shared": "3.0.0-3081220230817001",
-        "@rollup/pluginutils": "^4.2.0",
-        "@vitejs/plugin-legacy": "^4.0.3",
-        "@vitejs/plugin-vue": "^4.2.1",
-        "@vitejs/plugin-vue-jsx": "^3.0.1",
-        "@vue/compiler-core": "3.2.47",
-        "@vue/compiler-dom": "3.2.47",
-        "@vue/compiler-sfc": "3.2.47",
-        "@vue/shared": "3.2.47",
-        "cac": "6.7.9",
-        "debug": "^4.3.3",
-        "estree-walker": "^2.0.2",
-        "express": "^4.17.1",
-        "fast-glob": "^3.2.11",
-        "fs-extra": "^10.0.0",
-        "hash-sum": "^2.0.0",
-        "jsonc-parser": "^3.0.0",
-        "magic-string": "^0.30.0",
-        "picocolors": "^1.0.0",
-        "terser": "^5.4.0"
-      },
-      "bin": {
-        "uni": "bin/uni.js"
-      },
-      "engines": {
-        "node": "^14.18.0 || >=16.0.0"
-      },
-      "peerDependencies": {
-        "vite": "^4.0.0"
-      }
-    },
-    "node_modules/@esbuild/win32-x64": {
-      "version": "0.17.19",
-      "resolved": "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz",
-      "integrity": "sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==",
-      "cpu": [
-        "x64"
-      ],
-      "optional": true,
-      "os": [
-        "win32"
-      ],
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/@eslint-community/eslint-utils": {
-      "version": "4.4.0",
-      "resolved": "https://registry.npmmirror.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz",
-      "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==",
-      "dependencies": {
-        "eslint-visitor-keys": "^3.3.0"
-      },
-      "engines": {
-        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
-      },
-      "peerDependencies": {
-        "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
-      }
-    },
-    "node_modules/@eslint-community/regexpp": {
-      "version": "4.10.0",
-      "resolved": "https://registry.npmmirror.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz",
-      "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==",
-      "engines": {
-        "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
-      }
-    },
-    "node_modules/@eslint/eslintrc": {
-      "version": "2.1.4",
-      "resolved": "https://registry.npmmirror.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz",
-      "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==",
-      "dependencies": {
-        "ajv": "^6.12.4",
-        "debug": "^4.3.2",
-        "espree": "^9.6.0",
-        "globals": "^13.19.0",
-        "ignore": "^5.2.0",
-        "import-fresh": "^3.2.1",
-        "js-yaml": "^4.1.0",
-        "minimatch": "^3.1.2",
-        "strip-json-comments": "^3.1.1"
-      },
-      "engines": {
-        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
-      }
-    },
-    "node_modules/@eslint/eslintrc/node_modules/brace-expansion": {
-      "version": "1.1.11",
-      "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz",
-      "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
-      "dependencies": {
-        "balanced-match": "^1.0.0",
-        "concat-map": "0.0.1"
-      }
-    },
-    "node_modules/@eslint/eslintrc/node_modules/globals": {
-      "version": "13.24.0",
-      "resolved": "https://registry.npmmirror.com/globals/-/globals-13.24.0.tgz",
-      "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
-      "dependencies": {
-        "type-fest": "^0.20.2"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/@eslint/eslintrc/node_modules/minimatch": {
-      "version": "3.1.2",
-      "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz",
-      "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
-      "dependencies": {
-        "brace-expansion": "^1.1.7"
-      },
-      "engines": {
-        "node": "*"
-      }
-    },
-    "node_modules/@eslint/eslintrc/node_modules/type-fest": {
-      "version": "0.20.2",
-      "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-0.20.2.tgz",
-      "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/@eslint/js": {
-      "version": "8.56.0",
-      "resolved": "https://registry.npmmirror.com/@eslint/js/-/js-8.56.0.tgz",
-      "integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==",
-      "engines": {
-        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
-      }
-    },
-    "node_modules/@humanwhocodes/config-array": {
-      "version": "0.11.14",
-      "resolved": "https://registry.npmmirror.com/@humanwhocodes/config-array/-/config-array-0.11.14.tgz",
-      "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==",
-      "dependencies": {
-        "@humanwhocodes/object-schema": "^2.0.2",
-        "debug": "^4.3.1",
-        "minimatch": "^3.0.5"
-      },
-      "engines": {
-        "node": ">=10.10.0"
-      }
-    },
-    "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": {
-      "version": "1.1.11",
-      "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz",
-      "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
-      "dependencies": {
-        "balanced-match": "^1.0.0",
-        "concat-map": "0.0.1"
-      }
-    },
-    "node_modules/@humanwhocodes/config-array/node_modules/minimatch": {
-      "version": "3.1.2",
-      "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz",
-      "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
-      "dependencies": {
-        "brace-expansion": "^1.1.7"
-      },
-      "engines": {
-        "node": "*"
-      }
-    },
-    "node_modules/@humanwhocodes/module-importer": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmmirror.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
-      "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
-      "engines": {
-        "node": ">=12.22"
-      }
-    },
-    "node_modules/@humanwhocodes/object-schema": {
-      "version": "2.0.2",
-      "resolved": "https://registry.npmmirror.com/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz",
-      "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw=="
-    },
-    "node_modules/@intlify/core-base": {
-      "version": "9.1.9",
-      "resolved": "https://registry.npmmirror.com/@intlify/core-base/-/core-base-9.1.9.tgz",
-      "integrity": "sha512-x5T0p/Ja0S8hs5xs+ImKyYckVkL4CzcEXykVYYV6rcbXxJTe2o58IquSqX9bdncVKbRZP7GlBU1EcRaQEEJ+vw==",
-      "dependencies": {
-        "@intlify/devtools-if": "9.1.9",
-        "@intlify/message-compiler": "9.1.9",
-        "@intlify/message-resolver": "9.1.9",
-        "@intlify/runtime": "9.1.9",
-        "@intlify/shared": "9.1.9",
-        "@intlify/vue-devtools": "9.1.9"
-      },
-      "engines": {
-        "node": ">= 10"
-      }
-    },
-    "node_modules/@intlify/devtools-if": {
-      "version": "9.1.9",
-      "resolved": "https://registry.npmmirror.com/@intlify/devtools-if/-/devtools-if-9.1.9.tgz",
-      "integrity": "sha512-oKSMKjttG3Ut/1UGEZjSdghuP3fwA15zpDPcjkf/1FjlOIm6uIBGMNS5jXzsZy593u+P/YcnrZD6cD3IVFz9vQ==",
-      "dependencies": {
-        "@intlify/shared": "9.1.9"
-      },
-      "engines": {
-        "node": ">= 10"
-      }
-    },
-    "node_modules/@intlify/message-compiler": {
-      "version": "9.1.9",
-      "resolved": "https://registry.npmmirror.com/@intlify/message-compiler/-/message-compiler-9.1.9.tgz",
-      "integrity": "sha512-6YgCMF46Xd0IH2hMRLCssZI3gFG4aywidoWQ3QP4RGYQXQYYfFC54DxhSgfIPpVoPLQ+4AD29eoYmhiHZ+qLFQ==",
-      "dependencies": {
-        "@intlify/message-resolver": "9.1.9",
-        "@intlify/shared": "9.1.9",
-        "source-map": "0.6.1"
-      },
-      "engines": {
-        "node": ">= 10"
-      }
-    },
-    "node_modules/@intlify/message-resolver": {
-      "version": "9.1.9",
-      "resolved": "https://registry.npmmirror.com/@intlify/message-resolver/-/message-resolver-9.1.9.tgz",
-      "integrity": "sha512-Lx/DBpigeK0sz2BBbzv5mu9/dAlt98HxwbG7xLawC3O2xMF9MNWU5FtOziwYG6TDIjNq0O/3ZbOJAxwITIWXEA==",
-      "engines": {
-        "node": ">= 10"
-      }
-    },
-    "node_modules/@intlify/runtime": {
-      "version": "9.1.9",
-      "resolved": "https://registry.npmmirror.com/@intlify/runtime/-/runtime-9.1.9.tgz",
-      "integrity": "sha512-XgPw8+UlHCiie3fI41HPVa/VDJb3/aSH7bLhY1hJvlvNV713PFtb4p4Jo+rlE0gAoMsMCGcsiT982fImolSltg==",
-      "dependencies": {
-        "@intlify/message-compiler": "9.1.9",
-        "@intlify/message-resolver": "9.1.9",
-        "@intlify/shared": "9.1.9"
-      },
-      "engines": {
-        "node": ">= 10"
-      }
-    },
-    "node_modules/@intlify/shared": {
-      "version": "9.1.9",
-      "resolved": "https://registry.npmmirror.com/@intlify/shared/-/shared-9.1.9.tgz",
-      "integrity": "sha512-xKGM1d0EAxdDFCWedcYXOm6V5Pfw/TMudd6/qCdEb4tv0hk9EKeg7lwQF1azE0dP2phvx0yXxrt7UQK+IZjNdw==",
-      "engines": {
-        "node": ">= 10"
-      }
-    },
-    "node_modules/@intlify/vue-devtools": {
-      "version": "9.1.9",
-      "resolved": "https://registry.npmmirror.com/@intlify/vue-devtools/-/vue-devtools-9.1.9.tgz",
-      "integrity": "sha512-YPehH9uL4vZcGXky4Ev5qQIITnHKIvsD2GKGXgqf+05osMUI6WSEQHaN9USRa318Rs8RyyPCiDfmA0hRu3k7og==",
-      "dependencies": {
-        "@intlify/message-resolver": "9.1.9",
-        "@intlify/runtime": "9.1.9",
-        "@intlify/shared": "9.1.9"
-      },
-      "engines": {
-        "node": ">= 10"
-      }
-    },
-    "node_modules/@istanbuljs/load-nyc-config": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmmirror.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz",
-      "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==",
-      "dev": true,
-      "peer": 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/load-nyc-config/node_modules/argparse": {
-      "version": "1.0.10",
-      "resolved": "https://registry.npmmirror.com/argparse/-/argparse-1.0.10.tgz",
-      "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "sprintf-js": "~1.0.2"
-      }
-    },
-    "node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": {
-      "version": "5.3.1",
-      "resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-5.3.1.tgz",
-      "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
-      "dev": true,
-      "peer": true,
-      "engines": {
-        "node": ">=6"
-      }
-    },
-    "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": {
-      "version": "4.1.0",
-      "resolved": "https://registry.npmmirror.com/find-up/-/find-up-4.1.0.tgz",
-      "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "locate-path": "^5.0.0",
-        "path-exists": "^4.0.0"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": {
-      "version": "3.14.1",
-      "resolved": "https://registry.npmmirror.com/js-yaml/-/js-yaml-3.14.1.tgz",
-      "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "argparse": "^1.0.7",
-        "esprima": "^4.0.0"
-      },
-      "bin": {
-        "js-yaml": "bin/js-yaml.js"
-      }
-    },
-    "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": {
-      "version": "5.0.0",
-      "resolved": "https://registry.npmmirror.com/locate-path/-/locate-path-5.0.0.tgz",
-      "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "p-locate": "^4.1.0"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": {
-      "version": "2.3.0",
-      "resolved": "https://registry.npmmirror.com/p-limit/-/p-limit-2.3.0.tgz",
-      "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "p-try": "^2.0.0"
-      },
-      "engines": {
-        "node": ">=6"
-      }
-    },
-    "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": {
-      "version": "4.1.0",
-      "resolved": "https://registry.npmmirror.com/p-locate/-/p-locate-4.1.0.tgz",
-      "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "p-limit": "^2.2.0"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": {
-      "version": "5.0.0",
-      "resolved": "https://registry.npmmirror.com/resolve-from/-/resolve-from-5.0.0.tgz",
-      "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
-      "dev": true,
-      "peer": true,
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/@istanbuljs/schema": {
-      "version": "0.1.3",
-      "resolved": "https://registry.npmmirror.com/@istanbuljs/schema/-/schema-0.1.3.tgz",
-      "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==",
-      "dev": true,
-      "peer": true,
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/@jest/console": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/@jest/console/-/console-27.5.1.tgz",
-      "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "@jest/types": "^27.5.1",
-        "@types/node": "*",
-        "chalk": "^4.0.0",
-        "jest-message-util": "^27.5.1",
-        "jest-util": "^27.5.1",
-        "slash": "^3.0.0"
-      },
-      "engines": {
-        "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
-      }
-    },
-    "node_modules/@jest/console/node_modules/ansi-styles": {
-      "version": "4.3.0",
-      "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
-      "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "color-convert": "^2.0.1"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/@jest/console/node_modules/chalk": {
-      "version": "4.1.2",
-      "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
-      "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "ansi-styles": "^4.1.0",
-        "supports-color": "^7.1.0"
-      },
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/@jest/console/node_modules/color-convert": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
-      "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "color-name": "~1.1.4"
-      },
-      "engines": {
-        "node": ">=7.0.0"
-      }
-    },
-    "node_modules/@jest/console/node_modules/color-name": {
-      "version": "1.1.4",
-      "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
-      "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
-      "dev": true,
-      "peer": true
-    },
-    "node_modules/@jest/console/node_modules/has-flag": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
-      "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
-      "dev": true,
-      "peer": true,
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/@jest/console/node_modules/supports-color": {
-      "version": "7.2.0",
-      "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
-      "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "has-flag": "^4.0.0"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/@jest/core": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/@jest/core/-/core-27.5.1.tgz",
-      "integrity": "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "@jest/console": "^27.5.1",
-        "@jest/reporters": "^27.5.1",
-        "@jest/test-result": "^27.5.1",
-        "@jest/transform": "^27.5.1",
-        "@jest/types": "^27.5.1",
-        "@types/node": "*",
-        "ansi-escapes": "^4.2.1",
-        "chalk": "^4.0.0",
-        "emittery": "^0.8.1",
-        "exit": "^0.1.2",
-        "graceful-fs": "^4.2.9",
-        "jest-changed-files": "^27.5.1",
-        "jest-config": "^27.5.1",
-        "jest-haste-map": "^27.5.1",
-        "jest-message-util": "^27.5.1",
-        "jest-regex-util": "^27.5.1",
-        "jest-resolve": "^27.5.1",
-        "jest-resolve-dependencies": "^27.5.1",
-        "jest-runner": "^27.5.1",
-        "jest-runtime": "^27.5.1",
-        "jest-snapshot": "^27.5.1",
-        "jest-util": "^27.5.1",
-        "jest-validate": "^27.5.1",
-        "jest-watcher": "^27.5.1",
-        "micromatch": "^4.0.4",
-        "rimraf": "^3.0.0",
-        "slash": "^3.0.0",
-        "strip-ansi": "^6.0.0"
-      },
-      "engines": {
-        "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
-      },
-      "peerDependencies": {
-        "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
-      },
-      "peerDependenciesMeta": {
-        "node-notifier": {
-          "optional": true
-        }
-      }
-    },
-    "node_modules/@jest/core/node_modules/ansi-styles": {
-      "version": "4.3.0",
-      "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
-      "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "color-convert": "^2.0.1"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/@jest/core/node_modules/chalk": {
-      "version": "4.1.2",
-      "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
-      "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "ansi-styles": "^4.1.0",
-        "supports-color": "^7.1.0"
-      },
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/@jest/core/node_modules/color-convert": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
-      "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "color-name": "~1.1.4"
-      },
-      "engines": {
-        "node": ">=7.0.0"
-      }
-    },
-    "node_modules/@jest/core/node_modules/color-name": {
-      "version": "1.1.4",
-      "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
-      "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
-      "dev": true,
-      "peer": true
-    },
-    "node_modules/@jest/core/node_modules/has-flag": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
-      "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
-      "dev": true,
-      "peer": true,
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/@jest/core/node_modules/supports-color": {
-      "version": "7.2.0",
-      "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
-      "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "has-flag": "^4.0.0"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/@jest/environment": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/@jest/environment/-/environment-27.5.1.tgz",
-      "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "@jest/fake-timers": "^27.5.1",
-        "@jest/types": "^27.5.1",
-        "@types/node": "*",
-        "jest-mock": "^27.5.1"
-      },
-      "engines": {
-        "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
-      }
-    },
-    "node_modules/@jest/fake-timers": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/@jest/fake-timers/-/fake-timers-27.5.1.tgz",
-      "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "@jest/types": "^27.5.1",
-        "@sinonjs/fake-timers": "^8.0.1",
-        "@types/node": "*",
-        "jest-message-util": "^27.5.1",
-        "jest-mock": "^27.5.1",
-        "jest-util": "^27.5.1"
-      },
-      "engines": {
-        "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
-      }
-    },
-    "node_modules/@jest/globals": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/@jest/globals/-/globals-27.5.1.tgz",
-      "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "@jest/environment": "^27.5.1",
-        "@jest/types": "^27.5.1",
-        "expect": "^27.5.1"
-      },
-      "engines": {
-        "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
-      }
-    },
-    "node_modules/@jest/reporters": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/@jest/reporters/-/reporters-27.5.1.tgz",
-      "integrity": "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "@bcoe/v8-coverage": "^0.2.3",
-        "@jest/console": "^27.5.1",
-        "@jest/test-result": "^27.5.1",
-        "@jest/transform": "^27.5.1",
-        "@jest/types": "^27.5.1",
-        "@types/node": "*",
-        "chalk": "^4.0.0",
-        "collect-v8-coverage": "^1.0.0",
-        "exit": "^0.1.2",
-        "glob": "^7.1.2",
-        "graceful-fs": "^4.2.9",
-        "istanbul-lib-coverage": "^3.0.0",
-        "istanbul-lib-instrument": "^5.1.0",
-        "istanbul-lib-report": "^3.0.0",
-        "istanbul-lib-source-maps": "^4.0.0",
-        "istanbul-reports": "^3.1.3",
-        "jest-haste-map": "^27.5.1",
-        "jest-resolve": "^27.5.1",
-        "jest-util": "^27.5.1",
-        "jest-worker": "^27.5.1",
-        "slash": "^3.0.0",
-        "source-map": "^0.6.0",
-        "string-length": "^4.0.1",
-        "terminal-link": "^2.0.0",
-        "v8-to-istanbul": "^8.1.0"
-      },
-      "engines": {
-        "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
-      },
-      "peerDependencies": {
-        "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
-      },
-      "peerDependenciesMeta": {
-        "node-notifier": {
-          "optional": true
-        }
-      }
-    },
-    "node_modules/@jest/reporters/node_modules/ansi-styles": {
-      "version": "4.3.0",
-      "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
-      "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "color-convert": "^2.0.1"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/@jest/reporters/node_modules/chalk": {
-      "version": "4.1.2",
-      "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
-      "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "ansi-styles": "^4.1.0",
-        "supports-color": "^7.1.0"
-      },
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/@jest/reporters/node_modules/color-convert": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
-      "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "color-name": "~1.1.4"
-      },
-      "engines": {
-        "node": ">=7.0.0"
-      }
-    },
-    "node_modules/@jest/reporters/node_modules/color-name": {
-      "version": "1.1.4",
-      "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
-      "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
-      "dev": true,
-      "peer": true
-    },
-    "node_modules/@jest/reporters/node_modules/has-flag": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
-      "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
-      "dev": true,
-      "peer": true,
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/@jest/reporters/node_modules/supports-color": {
-      "version": "7.2.0",
-      "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
-      "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "has-flag": "^4.0.0"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/@jest/source-map": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/@jest/source-map/-/source-map-27.5.1.tgz",
-      "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "callsites": "^3.0.0",
-        "graceful-fs": "^4.2.9",
-        "source-map": "^0.6.0"
-      },
-      "engines": {
-        "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
-      }
-    },
-    "node_modules/@jest/test-result": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/@jest/test-result/-/test-result-27.5.1.tgz",
-      "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "@jest/console": "^27.5.1",
-        "@jest/types": "^27.5.1",
-        "@types/istanbul-lib-coverage": "^2.0.0",
-        "collect-v8-coverage": "^1.0.0"
-      },
-      "engines": {
-        "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
-      }
-    },
-    "node_modules/@jest/test-sequencer": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz",
-      "integrity": "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "@jest/test-result": "^27.5.1",
-        "graceful-fs": "^4.2.9",
-        "jest-haste-map": "^27.5.1",
-        "jest-runtime": "^27.5.1"
-      },
-      "engines": {
-        "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
-      }
-    },
-    "node_modules/@jest/transform": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/@jest/transform/-/transform-27.5.1.tgz",
-      "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "@babel/core": "^7.1.0",
-        "@jest/types": "^27.5.1",
-        "babel-plugin-istanbul": "^6.1.1",
-        "chalk": "^4.0.0",
-        "convert-source-map": "^1.4.0",
-        "fast-json-stable-stringify": "^2.0.0",
-        "graceful-fs": "^4.2.9",
-        "jest-haste-map": "^27.5.1",
-        "jest-regex-util": "^27.5.1",
-        "jest-util": "^27.5.1",
-        "micromatch": "^4.0.4",
-        "pirates": "^4.0.4",
-        "slash": "^3.0.0",
-        "source-map": "^0.6.1",
-        "write-file-atomic": "^3.0.0"
-      },
-      "engines": {
-        "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
-      }
-    },
-    "node_modules/@jest/transform/node_modules/ansi-styles": {
-      "version": "4.3.0",
-      "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
-      "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "color-convert": "^2.0.1"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/@jest/transform/node_modules/chalk": {
-      "version": "4.1.2",
-      "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
-      "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "ansi-styles": "^4.1.0",
-        "supports-color": "^7.1.0"
-      },
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/@jest/transform/node_modules/color-convert": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
-      "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "color-name": "~1.1.4"
-      },
-      "engines": {
-        "node": ">=7.0.0"
-      }
-    },
-    "node_modules/@jest/transform/node_modules/color-name": {
-      "version": "1.1.4",
-      "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
-      "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
-      "dev": true,
-      "peer": true
-    },
-    "node_modules/@jest/transform/node_modules/convert-source-map": {
-      "version": "1.9.0",
-      "resolved": "https://registry.npmmirror.com/convert-source-map/-/convert-source-map-1.9.0.tgz",
-      "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==",
-      "dev": true,
-      "peer": true
-    },
-    "node_modules/@jest/transform/node_modules/has-flag": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
-      "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
-      "dev": true,
-      "peer": true,
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/@jest/transform/node_modules/supports-color": {
-      "version": "7.2.0",
-      "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
-      "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "has-flag": "^4.0.0"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/@jest/types": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/@jest/types/-/types-27.5.1.tgz",
-      "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "@types/istanbul-lib-coverage": "^2.0.0",
-        "@types/istanbul-reports": "^3.0.0",
-        "@types/node": "*",
-        "@types/yargs": "^16.0.0",
-        "chalk": "^4.0.0"
-      },
-      "engines": {
-        "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
-      }
-    },
-    "node_modules/@jest/types/node_modules/ansi-styles": {
-      "version": "4.3.0",
-      "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
-      "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "color-convert": "^2.0.1"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/@jest/types/node_modules/chalk": {
-      "version": "4.1.2",
-      "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
-      "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "ansi-styles": "^4.1.0",
-        "supports-color": "^7.1.0"
-      },
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/@jest/types/node_modules/color-convert": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
-      "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "color-name": "~1.1.4"
-      },
-      "engines": {
-        "node": ">=7.0.0"
-      }
-    },
-    "node_modules/@jest/types/node_modules/color-name": {
-      "version": "1.1.4",
-      "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
-      "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
-      "dev": true,
-      "peer": true
-    },
-    "node_modules/@jest/types/node_modules/has-flag": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
-      "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
-      "dev": true,
-      "peer": true,
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/@jest/types/node_modules/supports-color": {
-      "version": "7.2.0",
-      "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
-      "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "has-flag": "^4.0.0"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/@jimp/bmp": {
-      "version": "0.10.3",
-      "resolved": "https://registry.npmmirror.com/@jimp/bmp/-/bmp-0.10.3.tgz",
-      "integrity": "sha512-keMOc5woiDmONXsB/6aXLR4Z5Q+v8lFq3EY2rcj2FmstbDMhRuGbmcBxlEgOqfRjwvtf/wOtJ3Of37oAWtVfLg==",
-      "dependencies": {
-        "@babel/runtime": "^7.7.2",
-        "@jimp/utils": "^0.10.3",
-        "bmp-js": "^0.1.0",
-        "core-js": "^3.4.1"
-      },
-      "peerDependencies": {
-        "@jimp/custom": ">=0.3.5"
-      }
-    },
-    "node_modules/@jimp/core": {
-      "version": "0.10.3",
-      "resolved": "https://registry.npmmirror.com/@jimp/core/-/core-0.10.3.tgz",
-      "integrity": "sha512-Gd5IpL3U2bFIO57Fh/OA3HCpWm4uW/pU01E75rI03BXfTdz3T+J7TwvyG1XaqsQ7/DSlS99GXtLQPlfFIe28UA==",
-      "dependencies": {
-        "@babel/runtime": "^7.7.2",
-        "@jimp/utils": "^0.10.3",
-        "any-base": "^1.1.0",
-        "buffer": "^5.2.0",
-        "core-js": "^3.4.1",
-        "exif-parser": "^0.1.12",
-        "file-type": "^9.0.0",
-        "load-bmfont": "^1.3.1",
-        "mkdirp": "^0.5.1",
-        "phin": "^2.9.1",
-        "pixelmatch": "^4.0.2",
-        "tinycolor2": "^1.4.1"
-      }
-    },
-    "node_modules/@jimp/custom": {
-      "version": "0.10.3",
-      "resolved": "https://registry.npmmirror.com/@jimp/custom/-/custom-0.10.3.tgz",
-      "integrity": "sha512-nZmSI+jwTi5IRyNLbKSXQovoeqsw+D0Jn0SxW08wYQvdkiWA8bTlDQFgQ7HVwCAKBm8oKkDB/ZEo9qvHJ+1gAQ==",
-      "dependencies": {
-        "@babel/runtime": "^7.7.2",
-        "@jimp/core": "^0.10.3",
-        "core-js": "^3.4.1"
-      }
-    },
-    "node_modules/@jimp/gif": {
-      "version": "0.10.3",
-      "resolved": "https://registry.npmmirror.com/@jimp/gif/-/gif-0.10.3.tgz",
-      "integrity": "sha512-vjlRodSfz1CrUvvrnUuD/DsLK1GHB/yDZXHthVdZu23zYJIW7/WrIiD1IgQ5wOMV7NocfrvPn2iqUfBP81/WWA==",
-      "dependencies": {
-        "@babel/runtime": "^7.7.2",
-        "@jimp/utils": "^0.10.3",
-        "core-js": "^3.4.1",
-        "omggif": "^1.0.9"
-      },
-      "peerDependencies": {
-        "@jimp/custom": ">=0.3.5"
-      }
-    },
-    "node_modules/@jimp/jpeg": {
-      "version": "0.10.3",
-      "resolved": "https://registry.npmmirror.com/@jimp/jpeg/-/jpeg-0.10.3.tgz",
-      "integrity": "sha512-AAANwgUZOt6f6P7LZxY9lyJ9xclqutYJlsxt3JbriXUGJgrrFAIkcKcqv1nObgmQASSAQKYaMV9KdHjMlWFKlQ==",
-      "dependencies": {
-        "@babel/runtime": "^7.7.2",
-        "@jimp/utils": "^0.10.3",
-        "core-js": "^3.4.1",
-        "jpeg-js": "^0.3.4"
-      },
-      "peerDependencies": {
-        "@jimp/custom": ">=0.3.5"
-      }
-    },
-    "node_modules/@jimp/plugin-blit": {
-      "version": "0.10.3",
-      "resolved": "https://registry.npmmirror.com/@jimp/plugin-blit/-/plugin-blit-0.10.3.tgz",
-      "integrity": "sha512-5zlKlCfx4JWw9qUVC7GI4DzXyxDWyFvgZLaoGFoT00mlXlN75SarlDwc9iZ/2e2kp4bJWxz3cGgG4G/WXrbg3Q==",
-      "dependencies": {
-        "@babel/runtime": "^7.7.2",
-        "@jimp/utils": "^0.10.3",
-        "core-js": "^3.4.1"
-      },
-      "peerDependencies": {
-        "@jimp/custom": ">=0.3.5"
-      }
-    },
-    "node_modules/@jimp/plugin-blur": {
-      "version": "0.10.3",
-      "resolved": "https://registry.npmmirror.com/@jimp/plugin-blur/-/plugin-blur-0.10.3.tgz",
-      "integrity": "sha512-cTOK3rjh1Yjh23jSfA6EHCHjsPJDEGLC8K2y9gM7dnTUK1y9NNmkFS23uHpyjgsWFIoH9oRh2SpEs3INjCpZhQ==",
-      "dependencies": {
-        "@babel/runtime": "^7.7.2",
-        "@jimp/utils": "^0.10.3",
-        "core-js": "^3.4.1"
-      },
-      "peerDependencies": {
-        "@jimp/custom": ">=0.3.5"
-      }
-    },
-    "node_modules/@jimp/plugin-circle": {
-      "version": "0.10.3",
-      "resolved": "https://registry.npmmirror.com/@jimp/plugin-circle/-/plugin-circle-0.10.3.tgz",
-      "integrity": "sha512-51GAPIVelqAcfuUpaM5JWJ0iWl4vEjNXB7p4P7SX5udugK5bxXUjO6KA2qgWmdpHuCKtoNgkzWU9fNSuYp7tCA==",
-      "dependencies": {
-        "@babel/runtime": "^7.7.2",
-        "@jimp/utils": "^0.10.3",
-        "core-js": "^3.4.1"
-      },
-      "peerDependencies": {
-        "@jimp/custom": ">=0.3.5"
-      }
-    },
-    "node_modules/@jimp/plugin-color": {
-      "version": "0.10.3",
-      "resolved": "https://registry.npmmirror.com/@jimp/plugin-color/-/plugin-color-0.10.3.tgz",
-      "integrity": "sha512-RgeHUElmlTH7vpI4WyQrz6u59spiKfVQbsG/XUzfWGamFSixa24ZDwX/yV/Ts+eNaz7pZeIuv533qmKPvw2ujg==",
-      "dependencies": {
-        "@babel/runtime": "^7.7.2",
-        "@jimp/utils": "^0.10.3",
-        "core-js": "^3.4.1",
-        "tinycolor2": "^1.4.1"
-      },
-      "peerDependencies": {
-        "@jimp/custom": ">=0.3.5"
-      }
-    },
-    "node_modules/@jimp/plugin-contain": {
-      "version": "0.10.3",
-      "resolved": "https://registry.npmmirror.com/@jimp/plugin-contain/-/plugin-contain-0.10.3.tgz",
-      "integrity": "sha512-bYJKW9dqzcB0Ihc6u7jSyKa3juStzbLs2LFr6fu8TzA2WkMS/R8h+ddkiO36+F9ILTWHP0CIA3HFe5OdOGcigw==",
-      "dependencies": {
-        "@babel/runtime": "^7.7.2",
-        "@jimp/utils": "^0.10.3",
-        "core-js": "^3.4.1"
-      },
-      "peerDependencies": {
-        "@jimp/custom": ">=0.3.5",
-        "@jimp/plugin-blit": ">=0.3.5",
-        "@jimp/plugin-resize": ">=0.3.5",
-        "@jimp/plugin-scale": ">=0.3.5"
-      }
-    },
-    "node_modules/@jimp/plugin-cover": {
-      "version": "0.10.3",
-      "resolved": "https://registry.npmmirror.com/@jimp/plugin-cover/-/plugin-cover-0.10.3.tgz",
-      "integrity": "sha512-pOxu0cM0BRPzdV468n4dMocJXoMbTnARDY/EpC3ZW15SpMuc/dr1KhWQHgoQX5kVW1Wt8zgqREAJJCQ5KuPKDA==",
-      "dependencies": {
-        "@babel/runtime": "^7.7.2",
-        "@jimp/utils": "^0.10.3",
-        "core-js": "^3.4.1"
-      },
-      "peerDependencies": {
-        "@jimp/custom": ">=0.3.5",
-        "@jimp/plugin-crop": ">=0.3.5",
-        "@jimp/plugin-resize": ">=0.3.5",
-        "@jimp/plugin-scale": ">=0.3.5"
-      }
-    },
-    "node_modules/@jimp/plugin-crop": {
-      "version": "0.10.3",
-      "resolved": "https://registry.npmmirror.com/@jimp/plugin-crop/-/plugin-crop-0.10.3.tgz",
-      "integrity": "sha512-nB7HgOjjl9PgdHr076xZ3Sr6qHYzeBYBs9qvs3tfEEUeYMNnvzgCCGtUl6eMakazZFCMk3mhKmcB9zQuHFOvkg==",
-      "dependencies": {
-        "@babel/runtime": "^7.7.2",
-        "@jimp/utils": "^0.10.3",
-        "core-js": "^3.4.1"
-      },
-      "peerDependencies": {
-        "@jimp/custom": ">=0.3.5"
-      }
-    },
-    "node_modules/@jimp/plugin-displace": {
-      "version": "0.10.3",
-      "resolved": "https://registry.npmmirror.com/@jimp/plugin-displace/-/plugin-displace-0.10.3.tgz",
-      "integrity": "sha512-8t3fVKCH5IVqI4lewe4lFFjpxxr69SQCz5/tlpDLQZsrNScNJivHdQ09zljTrVTCSgeCqQJIKgH2Q7Sk/pAZ0w==",
-      "dependencies": {
-        "@babel/runtime": "^7.7.2",
-        "@jimp/utils": "^0.10.3",
-        "core-js": "^3.4.1"
-      },
-      "peerDependencies": {
-        "@jimp/custom": ">=0.3.5"
-      }
-    },
-    "node_modules/@jimp/plugin-dither": {
-      "version": "0.10.3",
-      "resolved": "https://registry.npmmirror.com/@jimp/plugin-dither/-/plugin-dither-0.10.3.tgz",
-      "integrity": "sha512-JCX/oNSnEg1kGQ8ffZ66bEgQOLCY3Rn+lrd6v1jjLy/mn9YVZTMsxLtGCXpiCDC2wG/KTmi4862ysmP9do9dAQ==",
-      "dependencies": {
-        "@babel/runtime": "^7.7.2",
-        "@jimp/utils": "^0.10.3",
-        "core-js": "^3.4.1"
-      },
-      "peerDependencies": {
-        "@jimp/custom": ">=0.3.5"
-      }
-    },
-    "node_modules/@jimp/plugin-fisheye": {
-      "version": "0.10.3",
-      "resolved": "https://registry.npmmirror.com/@jimp/plugin-fisheye/-/plugin-fisheye-0.10.3.tgz",
-      "integrity": "sha512-RRZb1wqe+xdocGcFtj2xHU7sF7xmEZmIa6BmrfSchjyA2b32TGPWKnP3qyj7p6LWEsXn+19hRYbjfyzyebPElQ==",
-      "dependencies": {
-        "@babel/runtime": "^7.7.2",
-        "@jimp/utils": "^0.10.3",
-        "core-js": "^3.4.1"
-      },
-      "peerDependencies": {
-        "@jimp/custom": ">=0.3.5"
-      }
-    },
-    "node_modules/@jimp/plugin-flip": {
-      "version": "0.10.3",
-      "resolved": "https://registry.npmmirror.com/@jimp/plugin-flip/-/plugin-flip-0.10.3.tgz",
-      "integrity": "sha512-0epbi8XEzp0wmSjoW9IB0iMu0yNF17aZOxLdURCN3Zr+8nWPs5VNIMqSVa1Y62GSyiMDpVpKF/ITiXre+EqrPg==",
-      "dependencies": {
-        "@babel/runtime": "^7.7.2",
-        "@jimp/utils": "^0.10.3",
-        "core-js": "^3.4.1"
-      },
-      "peerDependencies": {
-        "@jimp/custom": ">=0.3.5",
-        "@jimp/plugin-rotate": ">=0.3.5"
-      }
-    },
-    "node_modules/@jimp/plugin-gaussian": {
-      "version": "0.10.3",
-      "resolved": "https://registry.npmmirror.com/@jimp/plugin-gaussian/-/plugin-gaussian-0.10.3.tgz",
-      "integrity": "sha512-25eHlFbHUDnMMGpgRBBeQ2AMI4wsqCg46sue0KklI+c2BaZ+dGXmJA5uT8RTOrt64/K9Wz5E+2n7eBnny4dfpQ==",
-      "dependencies": {
-        "@babel/runtime": "^7.7.2",
-        "@jimp/utils": "^0.10.3",
-        "core-js": "^3.4.1"
-      },
-      "peerDependencies": {
-        "@jimp/custom": ">=0.3.5"
-      }
-    },
-    "node_modules/@jimp/plugin-invert": {
-      "version": "0.10.3",
-      "resolved": "https://registry.npmmirror.com/@jimp/plugin-invert/-/plugin-invert-0.10.3.tgz",
-      "integrity": "sha512-effYSApWY/FbtlzqsKXlTLkgloKUiHBKjkQnqh5RL4oQxh/33j6aX+HFdDyQKtsXb8CMd4xd7wyiD2YYabTa0g==",
-      "dependencies": {
-        "@babel/runtime": "^7.7.2",
-        "@jimp/utils": "^0.10.3",
-        "core-js": "^3.4.1"
-      },
-      "peerDependencies": {
-        "@jimp/custom": ">=0.3.5"
-      }
-    },
-    "node_modules/@jimp/plugin-mask": {
-      "version": "0.10.3",
-      "resolved": "https://registry.npmmirror.com/@jimp/plugin-mask/-/plugin-mask-0.10.3.tgz",
-      "integrity": "sha512-twrg8q8TIhM9Z6Jcu9/5f+OCAPaECb0eKrrbbIajJqJ3bCUlj5zbfgIhiQIzjPJ6KjpnFPSqHQfHkU1Vvk/nVw==",
-      "dependencies": {
-        "@babel/runtime": "^7.7.2",
-        "@jimp/utils": "^0.10.3",
-        "core-js": "^3.4.1"
-      },
-      "peerDependencies": {
-        "@jimp/custom": ">=0.3.5"
-      }
-    },
-    "node_modules/@jimp/plugin-normalize": {
-      "version": "0.10.3",
-      "resolved": "https://registry.npmmirror.com/@jimp/plugin-normalize/-/plugin-normalize-0.10.3.tgz",
-      "integrity": "sha512-xkb5eZI/mMlbwKkDN79+1/t/+DBo8bBXZUMsT4gkFgMRKNRZ6NQPxlv1d3QpRzlocsl6UMxrHnhgnXdLAcgrXw==",
-      "dependencies": {
-        "@babel/runtime": "^7.7.2",
-        "@jimp/utils": "^0.10.3",
-        "core-js": "^3.4.1"
-      },
-      "peerDependencies": {
-        "@jimp/custom": ">=0.3.5"
-      }
-    },
-    "node_modules/@jimp/plugin-print": {
-      "version": "0.10.3",
-      "resolved": "https://registry.npmmirror.com/@jimp/plugin-print/-/plugin-print-0.10.3.tgz",
-      "integrity": "sha512-wjRiI6yjXsAgMe6kVjizP+RgleUCLkH256dskjoNvJzmzbEfO7xQw9g6M02VET+emnbY0CO83IkrGm2q43VRyg==",
-      "dependencies": {
-        "@babel/runtime": "^7.7.2",
-        "@jimp/utils": "^0.10.3",
-        "core-js": "^3.4.1",
-        "load-bmfont": "^1.4.0"
-      },
-      "peerDependencies": {
-        "@jimp/custom": ">=0.3.5",
-        "@jimp/plugin-blit": ">=0.3.5"
-      }
-    },
-    "node_modules/@jimp/plugin-resize": {
-      "version": "0.10.3",
-      "resolved": "https://registry.npmmirror.com/@jimp/plugin-resize/-/plugin-resize-0.10.3.tgz",
-      "integrity": "sha512-rf8YmEB1d7Sg+g4LpqF0Mp+dfXfb6JFJkwlAIWPUOR7lGsPWALavEwTW91c0etEdnp0+JB9AFpy6zqq7Lwkq6w==",
-      "dependencies": {
-        "@babel/runtime": "^7.7.2",
-        "@jimp/utils": "^0.10.3",
-        "core-js": "^3.4.1"
-      },
-      "peerDependencies": {
-        "@jimp/custom": ">=0.3.5"
-      }
-    },
-    "node_modules/@jimp/plugin-rotate": {
-      "version": "0.10.3",
-      "resolved": "https://registry.npmmirror.com/@jimp/plugin-rotate/-/plugin-rotate-0.10.3.tgz",
-      "integrity": "sha512-YXLlRjm18fkW9MOHUaVAxWjvgZM851ofOipytz5FyKp4KZWDLk+dZK1JNmVmK7MyVmAzZ5jsgSLhIgj+GgN0Eg==",
-      "dependencies": {
-        "@babel/runtime": "^7.7.2",
-        "@jimp/utils": "^0.10.3",
-        "core-js": "^3.4.1"
-      },
-      "peerDependencies": {
-        "@jimp/custom": ">=0.3.5",
-        "@jimp/plugin-blit": ">=0.3.5",
-        "@jimp/plugin-crop": ">=0.3.5",
-        "@jimp/plugin-resize": ">=0.3.5"
-      }
-    },
-    "node_modules/@jimp/plugin-scale": {
-      "version": "0.10.3",
-      "resolved": "https://registry.npmmirror.com/@jimp/plugin-scale/-/plugin-scale-0.10.3.tgz",
-      "integrity": "sha512-5DXD7x7WVcX1gUgnlFXQa8F+Q3ThRYwJm+aesgrYvDOY+xzRoRSdQvhmdd4JEEue3lyX44DvBSgCIHPtGcEPaw==",
-      "dependencies": {
-        "@babel/runtime": "^7.7.2",
-        "@jimp/utils": "^0.10.3",
-        "core-js": "^3.4.1"
-      },
-      "peerDependencies": {
-        "@jimp/custom": ">=0.3.5",
-        "@jimp/plugin-resize": ">=0.3.5"
-      }
-    },
-    "node_modules/@jimp/plugin-shadow": {
-      "version": "0.10.3",
-      "resolved": "https://registry.npmmirror.com/@jimp/plugin-shadow/-/plugin-shadow-0.10.3.tgz",
-      "integrity": "sha512-/nkFXpt2zVcdP4ETdkAUL0fSzyrC5ZFxdcphbYBodqD7fXNqChS/Un1eD4xCXWEpW8cnG9dixZgQgStjywH0Mg==",
-      "dependencies": {
-        "@babel/runtime": "^7.7.2",
-        "@jimp/utils": "^0.10.3",
-        "core-js": "^3.4.1"
-      },
-      "peerDependencies": {
-        "@jimp/custom": ">=0.3.5",
-        "@jimp/plugin-blur": ">=0.3.5",
-        "@jimp/plugin-resize": ">=0.3.5"
-      }
-    },
-    "node_modules/@jimp/plugin-threshold": {
-      "version": "0.10.3",
-      "resolved": "https://registry.npmmirror.com/@jimp/plugin-threshold/-/plugin-threshold-0.10.3.tgz",
-      "integrity": "sha512-Dzh0Yq2wXP2SOnxcbbiyA4LJ2luwrdf1MghNIt9H+NX7B+IWw/N8qA2GuSm9n4BPGSLluuhdAWJqHcTiREriVA==",
-      "dependencies": {
-        "@babel/runtime": "^7.7.2",
-        "@jimp/utils": "^0.10.3",
-        "core-js": "^3.4.1"
-      },
-      "peerDependencies": {
-        "@jimp/custom": ">=0.3.5",
-        "@jimp/plugin-color": ">=0.8.0",
-        "@jimp/plugin-resize": ">=0.8.0"
-      }
-    },
-    "node_modules/@jimp/plugins": {
-      "version": "0.10.3",
-      "resolved": "https://registry.npmmirror.com/@jimp/plugins/-/plugins-0.10.3.tgz",
-      "integrity": "sha512-jTT3/7hOScf0EIKiAXmxwayHhryhc1wWuIe3FrchjDjr9wgIGNN2a7XwCgPl3fML17DXK1x8EzDneCdh261bkw==",
-      "dependencies": {
-        "@babel/runtime": "^7.7.2",
-        "@jimp/plugin-blit": "^0.10.3",
-        "@jimp/plugin-blur": "^0.10.3",
-        "@jimp/plugin-circle": "^0.10.3",
-        "@jimp/plugin-color": "^0.10.3",
-        "@jimp/plugin-contain": "^0.10.3",
-        "@jimp/plugin-cover": "^0.10.3",
-        "@jimp/plugin-crop": "^0.10.3",
-        "@jimp/plugin-displace": "^0.10.3",
-        "@jimp/plugin-dither": "^0.10.3",
-        "@jimp/plugin-fisheye": "^0.10.3",
-        "@jimp/plugin-flip": "^0.10.3",
-        "@jimp/plugin-gaussian": "^0.10.3",
-        "@jimp/plugin-invert": "^0.10.3",
-        "@jimp/plugin-mask": "^0.10.3",
-        "@jimp/plugin-normalize": "^0.10.3",
-        "@jimp/plugin-print": "^0.10.3",
-        "@jimp/plugin-resize": "^0.10.3",
-        "@jimp/plugin-rotate": "^0.10.3",
-        "@jimp/plugin-scale": "^0.10.3",
-        "@jimp/plugin-shadow": "^0.10.3",
-        "@jimp/plugin-threshold": "^0.10.3",
-        "core-js": "^3.4.1",
-        "timm": "^1.6.1"
-      },
-      "peerDependencies": {
-        "@jimp/custom": ">=0.3.5"
-      }
-    },
-    "node_modules/@jimp/png": {
-      "version": "0.10.3",
-      "resolved": "https://registry.npmmirror.com/@jimp/png/-/png-0.10.3.tgz",
-      "integrity": "sha512-YKqk/dkl+nGZxSYIDQrqhmaP8tC3IK8H7dFPnnzFVvbhDnyYunqBZZO3SaZUKTichClRw8k/CjBhbc+hifSGWg==",
-      "dependencies": {
-        "@babel/runtime": "^7.7.2",
-        "@jimp/utils": "^0.10.3",
-        "core-js": "^3.4.1",
-        "pngjs": "^3.3.3"
-      },
-      "peerDependencies": {
-        "@jimp/custom": ">=0.3.5"
-      }
-    },
-    "node_modules/@jimp/tiff": {
-      "version": "0.10.3",
-      "resolved": "https://registry.npmmirror.com/@jimp/tiff/-/tiff-0.10.3.tgz",
-      "integrity": "sha512-7EsJzZ5Y/EtinkBGuwX3Bi4S+zgbKouxjt9c82VJTRJOQgLWsE/RHqcyRCOQBhHAZ9QexYmDz34medfLKdoX0g==",
-      "dependencies": {
-        "@babel/runtime": "^7.7.2",
-        "core-js": "^3.4.1",
-        "utif": "^2.0.1"
-      },
-      "peerDependencies": {
-        "@jimp/custom": ">=0.3.5"
-      }
-    },
-    "node_modules/@jimp/types": {
-      "version": "0.10.3",
-      "resolved": "https://registry.npmmirror.com/@jimp/types/-/types-0.10.3.tgz",
-      "integrity": "sha512-XGmBakiHZqseSWr/puGN+CHzx0IKBSpsKlmEmsNV96HKDiP6eu8NSnwdGCEq2mmIHe0JNcg1hqg59hpwtQ7Tiw==",
-      "dependencies": {
-        "@babel/runtime": "^7.7.2",
-        "@jimp/bmp": "^0.10.3",
-        "@jimp/gif": "^0.10.3",
-        "@jimp/jpeg": "^0.10.3",
-        "@jimp/png": "^0.10.3",
-        "@jimp/tiff": "^0.10.3",
-        "core-js": "^3.4.1",
-        "timm": "^1.6.1"
-      },
-      "peerDependencies": {
-        "@jimp/custom": ">=0.3.5"
-      }
-    },
-    "node_modules/@jimp/utils": {
-      "version": "0.10.3",
-      "resolved": "https://registry.npmmirror.com/@jimp/utils/-/utils-0.10.3.tgz",
-      "integrity": "sha512-VcSlQhkil4ReYmg1KkN+WqHyYfZ2XfZxDsKAHSfST1GEz/RQHxKZbX+KhFKtKflnL0F4e6DlNQj3vznMNXCR2w==",
-      "dependencies": {
-        "@babel/runtime": "^7.7.2",
-        "core-js": "^3.4.1",
-        "regenerator-runtime": "^0.13.3"
-      }
-    },
-    "node_modules/@jridgewell/gen-mapping": {
-      "version": "0.3.3",
-      "resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
-      "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==",
-      "dependencies": {
-        "@jridgewell/set-array": "^1.0.1",
-        "@jridgewell/sourcemap-codec": "^1.4.10",
-        "@jridgewell/trace-mapping": "^0.3.9"
-      },
-      "engines": {
-        "node": ">=6.0.0"
-      }
-    },
-    "node_modules/@jridgewell/resolve-uri": {
-      "version": "3.1.1",
-      "resolved": "https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz",
-      "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==",
-      "engines": {
-        "node": ">=6.0.0"
-      }
-    },
-    "node_modules/@jridgewell/set-array": {
-      "version": "1.1.2",
-      "resolved": "https://registry.npmmirror.com/@jridgewell/set-array/-/set-array-1.1.2.tgz",
-      "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
-      "engines": {
-        "node": ">=6.0.0"
-      }
-    },
-    "node_modules/@jridgewell/source-map": {
-      "version": "0.3.5",
-      "resolved": "https://registry.npmmirror.com/@jridgewell/source-map/-/source-map-0.3.5.tgz",
-      "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==",
-      "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.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
-      "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg=="
-    },
-    "node_modules/@jridgewell/trace-mapping": {
-      "version": "0.3.22",
-      "resolved": "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.22.tgz",
-      "integrity": "sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==",
-      "dependencies": {
-        "@jridgewell/resolve-uri": "^3.1.0",
-        "@jridgewell/sourcemap-codec": "^1.4.14"
-      }
-    },
-    "node_modules/@nodelib/fs.scandir": {
-      "version": "2.1.5",
-      "resolved": "https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
-      "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
-      "dependencies": {
-        "@nodelib/fs.stat": "2.0.5",
-        "run-parallel": "^1.1.9"
-      },
-      "engines": {
-        "node": ">= 8"
-      }
-    },
-    "node_modules/@nodelib/fs.stat": {
-      "version": "2.0.5",
-      "resolved": "https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
-      "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
-      "engines": {
-        "node": ">= 8"
-      }
-    },
-    "node_modules/@nodelib/fs.walk": {
-      "version": "1.2.8",
-      "resolved": "https://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
-      "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
-      "dependencies": {
-        "@nodelib/fs.scandir": "2.1.5",
-        "fastq": "^1.6.0"
-      },
-      "engines": {
-        "node": ">= 8"
-      }
-    },
-    "node_modules/@pkgr/core": {
-      "version": "0.1.1",
-      "resolved": "https://registry.npmmirror.com/@pkgr/core/-/core-0.1.1.tgz",
-      "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==",
-      "engines": {
-        "node": "^12.20.0 || ^14.18.0 || >=16.0.0"
-      }
-    },
-    "node_modules/@rollup/pluginutils": {
-      "version": "4.2.1",
-      "resolved": "https://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-4.2.1.tgz",
-      "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==",
-      "dependencies": {
-        "estree-walker": "^2.0.1",
-        "picomatch": "^2.2.2"
-      },
-      "engines": {
-        "node": ">= 8.0.0"
-      }
-    },
-    "node_modules/@sinonjs/commons": {
-      "version": "1.8.6",
-      "resolved": "https://registry.npmmirror.com/@sinonjs/commons/-/commons-1.8.6.tgz",
-      "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "type-detect": "4.0.8"
-      }
-    },
-    "node_modules/@sinonjs/fake-timers": {
-      "version": "8.1.0",
-      "resolved": "https://registry.npmmirror.com/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz",
-      "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "@sinonjs/commons": "^1.7.0"
-      }
-    },
-    "node_modules/@tootallnate/once": {
-      "version": "1.1.2",
-      "resolved": "https://registry.npmmirror.com/@tootallnate/once/-/once-1.1.2.tgz",
-      "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==",
-      "dev": true,
-      "peer": true,
-      "engines": {
-        "node": ">= 6"
-      }
-    },
-    "node_modules/@types/babel__core": {
-      "version": "7.20.5",
-      "resolved": "https://registry.npmmirror.com/@types/babel__core/-/babel__core-7.20.5.tgz",
-      "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "@babel/parser": "^7.20.7",
-        "@babel/types": "^7.20.7",
-        "@types/babel__generator": "*",
-        "@types/babel__template": "*",
-        "@types/babel__traverse": "*"
-      }
-    },
-    "node_modules/@types/babel__generator": {
-      "version": "7.6.8",
-      "resolved": "https://registry.npmmirror.com/@types/babel__generator/-/babel__generator-7.6.8.tgz",
-      "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "@babel/types": "^7.0.0"
-      }
-    },
-    "node_modules/@types/babel__template": {
-      "version": "7.4.4",
-      "resolved": "https://registry.npmmirror.com/@types/babel__template/-/babel__template-7.4.4.tgz",
-      "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "@babel/parser": "^7.1.0",
-        "@babel/types": "^7.0.0"
-      }
-    },
-    "node_modules/@types/babel__traverse": {
-      "version": "7.20.5",
-      "resolved": "https://registry.npmmirror.com/@types/babel__traverse/-/babel__traverse-7.20.5.tgz",
-      "integrity": "sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "@babel/types": "^7.20.7"
-      }
-    },
-    "node_modules/@types/eslint": {
-      "version": "8.56.2",
-      "resolved": "https://registry.npmmirror.com/@types/eslint/-/eslint-8.56.2.tgz",
-      "integrity": "sha512-uQDwm1wFHmbBbCZCqAlq6Do9LYwByNZHWzXppSnay9SuwJ+VRbjkbLABer54kcPnMSlG6Fdiy2yaFXm/z9Z5gw==",
-      "peer": true,
-      "dependencies": {
-        "@types/estree": "*",
-        "@types/json-schema": "*"
-      }
-    },
-    "node_modules/@types/eslint-scope": {
-      "version": "3.7.7",
-      "resolved": "https://registry.npmmirror.com/@types/eslint-scope/-/eslint-scope-3.7.7.tgz",
-      "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==",
-      "peer": true,
-      "dependencies": {
-        "@types/eslint": "*",
-        "@types/estree": "*"
-      }
-    },
-    "node_modules/@types/estree": {
-      "version": "1.0.5",
-      "resolved": "https://registry.npmmirror.com/@types/estree/-/estree-1.0.5.tgz",
-      "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==",
-      "peer": true
-    },
-    "node_modules/@types/graceful-fs": {
-      "version": "4.1.9",
-      "resolved": "https://registry.npmmirror.com/@types/graceful-fs/-/graceful-fs-4.1.9.tgz",
-      "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "@types/node": "*"
-      }
-    },
-    "node_modules/@types/istanbul-lib-coverage": {
-      "version": "2.0.6",
-      "resolved": "https://registry.npmmirror.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz",
-      "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==",
-      "dev": true,
-      "peer": true
-    },
-    "node_modules/@types/istanbul-lib-report": {
-      "version": "3.0.3",
-      "resolved": "https://registry.npmmirror.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz",
-      "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "@types/istanbul-lib-coverage": "*"
-      }
-    },
-    "node_modules/@types/istanbul-reports": {
-      "version": "3.0.4",
-      "resolved": "https://registry.npmmirror.com/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz",
-      "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "@types/istanbul-lib-report": "*"
-      }
-    },
-    "node_modules/@types/json-schema": {
-      "version": "7.0.15",
-      "resolved": "https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.15.tgz",
-      "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA=="
-    },
-    "node_modules/@types/json5": {
-      "version": "0.0.29",
-      "resolved": "https://registry.npmmirror.com/@types/json5/-/json5-0.0.29.tgz",
-      "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==",
-      "dev": true
-    },
-    "node_modules/@types/node": {
-      "version": "20.11.17",
-      "resolved": "https://registry.npmmirror.com/@types/node/-/node-20.11.17.tgz",
-      "integrity": "sha512-QmgQZGWu1Yw9TDyAP9ZzpFJKynYNeOvwMJmaxABfieQoVoiVOS6MN1WSpqpRcbeA5+RW82kraAVxCCJg+780Qw==",
-      "dependencies": {
-        "undici-types": "~5.26.4"
-      }
-    },
-    "node_modules/@types/prettier": {
-      "version": "2.7.3",
-      "resolved": "https://registry.npmmirror.com/@types/prettier/-/prettier-2.7.3.tgz",
-      "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==",
-      "dev": true,
-      "peer": true
-    },
-    "node_modules/@types/qs": {
-      "version": "6.9.11",
-      "resolved": "https://registry.npmmirror.com/@types/qs/-/qs-6.9.11.tgz",
-      "integrity": "sha512-oGk0gmhnEJK4Yyk+oI7EfXsLayXatCWPHary1MtcmbAifkobT9cM9yutG/hZKIseOU0MqbIwQ/u2nn/Gb+ltuQ==",
-      "dev": true
-    },
-    "node_modules/@types/semver": {
-      "version": "7.5.6",
-      "resolved": "https://registry.npmmirror.com/@types/semver/-/semver-7.5.6.tgz",
-      "integrity": "sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==",
-      "dev": true
-    },
-    "node_modules/@types/stack-utils": {
-      "version": "2.0.3",
-      "resolved": "https://registry.npmmirror.com/@types/stack-utils/-/stack-utils-2.0.3.tgz",
-      "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==",
-      "dev": true,
-      "peer": true
-    },
-    "node_modules/@types/yargs": {
-      "version": "16.0.9",
-      "resolved": "https://registry.npmmirror.com/@types/yargs/-/yargs-16.0.9.tgz",
-      "integrity": "sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "@types/yargs-parser": "*"
-      }
-    },
-    "node_modules/@types/yargs-parser": {
-      "version": "21.0.3",
-      "resolved": "https://registry.npmmirror.com/@types/yargs-parser/-/yargs-parser-21.0.3.tgz",
-      "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==",
-      "dev": true,
-      "peer": true
-    },
-    "node_modules/@typescript-eslint/eslint-plugin": {
-      "version": "6.21.0",
-      "resolved": "https://registry.npmmirror.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz",
-      "integrity": "sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==",
-      "dev": true,
-      "dependencies": {
-        "@eslint-community/regexpp": "^4.5.1",
-        "@typescript-eslint/scope-manager": "6.21.0",
-        "@typescript-eslint/type-utils": "6.21.0",
-        "@typescript-eslint/utils": "6.21.0",
-        "@typescript-eslint/visitor-keys": "6.21.0",
-        "debug": "^4.3.4",
-        "graphemer": "^1.4.0",
-        "ignore": "^5.2.4",
-        "natural-compare": "^1.4.0",
-        "semver": "^7.5.4",
-        "ts-api-utils": "^1.0.1"
-      },
-      "engines": {
-        "node": "^16.0.0 || >=18.0.0"
-      },
-      "peerDependencies": {
-        "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha",
-        "eslint": "^7.0.0 || ^8.0.0"
-      },
-      "peerDependenciesMeta": {
-        "typescript": {
-          "optional": true
-        }
-      }
-    },
-    "node_modules/@typescript-eslint/eslint-plugin/node_modules/lru-cache": {
-      "version": "6.0.0",
-      "resolved": "https://registry.npmmirror.com/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/@typescript-eslint/eslint-plugin/node_modules/semver": {
-      "version": "7.6.0",
-      "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.0.tgz",
-      "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
-      "dev": true,
-      "dependencies": {
-        "lru-cache": "^6.0.0"
-      },
-      "bin": {
-        "semver": "bin/semver.js"
-      },
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/@typescript-eslint/eslint-plugin/node_modules/yallist": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz",
-      "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
-      "dev": true
-    },
-    "node_modules/@typescript-eslint/parser": {
-      "version": "6.21.0",
-      "resolved": "https://registry.npmmirror.com/@typescript-eslint/parser/-/parser-6.21.0.tgz",
-      "integrity": "sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==",
-      "dev": true,
-      "dependencies": {
-        "@typescript-eslint/scope-manager": "6.21.0",
-        "@typescript-eslint/types": "6.21.0",
-        "@typescript-eslint/typescript-estree": "6.21.0",
-        "@typescript-eslint/visitor-keys": "6.21.0",
-        "debug": "^4.3.4"
-      },
-      "engines": {
-        "node": "^16.0.0 || >=18.0.0"
-      },
-      "peerDependencies": {
-        "eslint": "^7.0.0 || ^8.0.0"
-      },
-      "peerDependenciesMeta": {
-        "typescript": {
-          "optional": true
-        }
-      }
-    },
-    "node_modules/@typescript-eslint/scope-manager": {
-      "version": "6.21.0",
-      "resolved": "https://registry.npmmirror.com/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz",
-      "integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==",
-      "dev": true,
-      "dependencies": {
-        "@typescript-eslint/types": "6.21.0",
-        "@typescript-eslint/visitor-keys": "6.21.0"
-      },
-      "engines": {
-        "node": "^16.0.0 || >=18.0.0"
-      }
-    },
-    "node_modules/@typescript-eslint/type-utils": {
-      "version": "6.21.0",
-      "resolved": "https://registry.npmmirror.com/@typescript-eslint/type-utils/-/type-utils-6.21.0.tgz",
-      "integrity": "sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==",
-      "dev": true,
-      "dependencies": {
-        "@typescript-eslint/typescript-estree": "6.21.0",
-        "@typescript-eslint/utils": "6.21.0",
-        "debug": "^4.3.4",
-        "ts-api-utils": "^1.0.1"
-      },
-      "engines": {
-        "node": "^16.0.0 || >=18.0.0"
-      },
-      "peerDependencies": {
-        "eslint": "^7.0.0 || ^8.0.0"
-      },
-      "peerDependenciesMeta": {
-        "typescript": {
-          "optional": true
-        }
-      }
-    },
-    "node_modules/@typescript-eslint/types": {
-      "version": "6.21.0",
-      "resolved": "https://registry.npmmirror.com/@typescript-eslint/types/-/types-6.21.0.tgz",
-      "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==",
-      "dev": true,
-      "engines": {
-        "node": "^16.0.0 || >=18.0.0"
-      }
-    },
-    "node_modules/@typescript-eslint/typescript-estree": {
-      "version": "6.21.0",
-      "resolved": "https://registry.npmmirror.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz",
-      "integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==",
-      "dev": true,
-      "dependencies": {
-        "@typescript-eslint/types": "6.21.0",
-        "@typescript-eslint/visitor-keys": "6.21.0",
-        "debug": "^4.3.4",
-        "globby": "^11.1.0",
-        "is-glob": "^4.0.3",
-        "minimatch": "9.0.3",
-        "semver": "^7.5.4",
-        "ts-api-utils": "^1.0.1"
-      },
-      "engines": {
-        "node": "^16.0.0 || >=18.0.0"
-      },
-      "peerDependenciesMeta": {
-        "typescript": {
-          "optional": true
-        }
-      }
-    },
-    "node_modules/@typescript-eslint/typescript-estree/node_modules/lru-cache": {
-      "version": "6.0.0",
-      "resolved": "https://registry.npmmirror.com/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/@typescript-eslint/typescript-estree/node_modules/semver": {
-      "version": "7.6.0",
-      "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.0.tgz",
-      "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
-      "dev": true,
-      "dependencies": {
-        "lru-cache": "^6.0.0"
-      },
-      "bin": {
-        "semver": "bin/semver.js"
-      },
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/@typescript-eslint/typescript-estree/node_modules/yallist": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz",
-      "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
-      "dev": true
-    },
-    "node_modules/@typescript-eslint/utils": {
-      "version": "6.21.0",
-      "resolved": "https://registry.npmmirror.com/@typescript-eslint/utils/-/utils-6.21.0.tgz",
-      "integrity": "sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==",
-      "dev": true,
-      "dependencies": {
-        "@eslint-community/eslint-utils": "^4.4.0",
-        "@types/json-schema": "^7.0.12",
-        "@types/semver": "^7.5.0",
-        "@typescript-eslint/scope-manager": "6.21.0",
-        "@typescript-eslint/types": "6.21.0",
-        "@typescript-eslint/typescript-estree": "6.21.0",
-        "semver": "^7.5.4"
-      },
-      "engines": {
-        "node": "^16.0.0 || >=18.0.0"
-      },
-      "peerDependencies": {
-        "eslint": "^7.0.0 || ^8.0.0"
-      }
-    },
-    "node_modules/@typescript-eslint/utils/node_modules/lru-cache": {
-      "version": "6.0.0",
-      "resolved": "https://registry.npmmirror.com/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/@typescript-eslint/utils/node_modules/semver": {
-      "version": "7.6.0",
-      "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.0.tgz",
-      "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
-      "dev": true,
-      "dependencies": {
-        "lru-cache": "^6.0.0"
-      },
-      "bin": {
-        "semver": "bin/semver.js"
-      },
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/@typescript-eslint/utils/node_modules/yallist": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz",
-      "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
-      "dev": true
-    },
-    "node_modules/@typescript-eslint/visitor-keys": {
-      "version": "6.21.0",
-      "resolved": "https://registry.npmmirror.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz",
-      "integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==",
-      "dev": true,
-      "dependencies": {
-        "@typescript-eslint/types": "6.21.0",
-        "eslint-visitor-keys": "^3.4.1"
-      },
-      "engines": {
-        "node": "^16.0.0 || >=18.0.0"
-      }
-    },
-    "node_modules/@ungap/structured-clone": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmmirror.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz",
-      "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ=="
-    },
-    "node_modules/@vitejs/plugin-legacy": {
-      "version": "4.1.1",
-      "resolved": "https://registry.npmmirror.com/@vitejs/plugin-legacy/-/plugin-legacy-4.1.1.tgz",
-      "integrity": "sha512-um3gbVouD2Q/g19C0qpDfHwveXDCAHzs8OC3e9g6aXpKoD1H14himgs7wkMnhAynBJy7QqUoZNAXDuqN8zLR2g==",
-      "dev": true,
-      "dependencies": {
-        "@babel/core": "^7.22.9",
-        "@babel/preset-env": "^7.22.9",
-        "browserslist": "^4.21.9",
-        "core-js": "^3.31.1",
-        "magic-string": "^0.30.1",
-        "regenerator-runtime": "^0.13.11",
-        "systemjs": "^6.14.1"
-      },
-      "engines": {
-        "node": "^14.18.0 || >=16.0.0"
-      },
-      "peerDependencies": {
-        "terser": "^5.4.0",
-        "vite": "^4.0.0"
-      }
-    },
-    "node_modules/@vitejs/plugin-vue": {
-      "version": "4.6.2",
-      "resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-4.6.2.tgz",
-      "integrity": "sha512-kqf7SGFoG+80aZG6Pf+gsZIVvGSCKE98JbiWqcCV9cThtg91Jav0yvYFC9Zb+jKetNGF6ZKeoaxgZfND21fWKw==",
-      "engines": {
-        "node": "^14.18.0 || >=16.0.0"
-      },
-      "peerDependencies": {
-        "vite": "^4.0.0 || ^5.0.0",
-        "vue": "^3.2.25"
-      }
-    },
-    "node_modules/@vitejs/plugin-vue-jsx": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue-jsx/-/plugin-vue-jsx-3.1.0.tgz",
-      "integrity": "sha512-w9M6F3LSEU5kszVb9An2/MmXNxocAnUb3WhRr8bHlimhDrXNt6n6D2nJQR3UXpGlZHh/EsgouOHCsM8V3Ln+WA==",
-      "dev": true,
-      "dependencies": {
-        "@babel/core": "^7.23.3",
-        "@babel/plugin-transform-typescript": "^7.23.3",
-        "@vue/babel-plugin-jsx": "^1.1.5"
-      },
-      "engines": {
-        "node": "^14.18.0 || >=16.0.0"
-      },
-      "peerDependencies": {
-        "vite": "^4.0.0 || ^5.0.0",
-        "vue": "^3.0.0"
-      }
-    },
-    "node_modules/@volar/language-core": {
-      "version": "1.11.1",
-      "resolved": "https://registry.npmmirror.com/@volar/language-core/-/language-core-1.11.1.tgz",
-      "integrity": "sha512-dOcNn3i9GgZAcJt43wuaEykSluAuOkQgzni1cuxLxTV0nJKanQztp7FxyswdRILaKH+P2XZMPRp2S4MV/pElCw==",
-      "dev": true,
-      "dependencies": {
-        "@volar/source-map": "1.11.1"
-      }
-    },
-    "node_modules/@volar/source-map": {
-      "version": "1.11.1",
-      "resolved": "https://registry.npmmirror.com/@volar/source-map/-/source-map-1.11.1.tgz",
-      "integrity": "sha512-hJnOnwZ4+WT5iupLRnuzbULZ42L7BWWPMmruzwtLhJfpDVoZLjNBxHDi2sY2bgZXCKlpU5XcsMFoYrsQmPhfZg==",
-      "dev": true,
-      "dependencies": {
-        "muggle-string": "^0.3.1"
-      }
-    },
-    "node_modules/@volar/typescript": {
-      "version": "1.11.1",
-      "resolved": "https://registry.npmmirror.com/@volar/typescript/-/typescript-1.11.1.tgz",
-      "integrity": "sha512-iU+t2mas/4lYierSnoFOeRFQUhAEMgsFuQxoxvwn5EdQopw43j+J27a4lt9LMInx1gLJBC6qL14WYGlgymaSMQ==",
-      "dev": true,
-      "dependencies": {
-        "@volar/language-core": "1.11.1",
-        "path-browserify": "^1.0.1"
-      }
-    },
-    "node_modules/@vue/babel-helper-vue-transform-on": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmmirror.com/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.2.1.tgz",
-      "integrity": "sha512-jtEXim+pfyHWwvheYwUwSXm43KwQo8nhOBDyjrUITV6X2tB7lJm6n/+4sqR8137UVZZul5hBzWHdZ2uStYpyRQ==",
-      "dev": true
-    },
-    "node_modules/@vue/babel-plugin-jsx": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmmirror.com/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.2.1.tgz",
-      "integrity": "sha512-Yy9qGktktXhB39QE99So/BO2Uwm/ZG+gpL9vMg51ijRRbINvgbuhyJEi4WYmGRMx/MSTfK0xjgZ3/MyY+iLCEg==",
-      "dev": true,
-      "dependencies": {
-        "@babel/helper-module-imports": "^7.22.15",
-        "@babel/helper-plugin-utils": "^7.22.5",
-        "@babel/plugin-syntax-jsx": "^7.23.3",
-        "@babel/template": "^7.22.15",
-        "@babel/traverse": "^7.23.7",
-        "@babel/types": "^7.23.6",
-        "@vue/babel-helper-vue-transform-on": "1.2.1",
-        "@vue/babel-plugin-resolve-type": "1.2.1",
-        "camelcase": "^6.3.0",
-        "html-tags": "^3.3.1",
-        "svg-tags": "^1.0.0"
-      },
-      "peerDependencies": {
-        "@babel/core": "^7.0.0-0"
-      },
-      "peerDependenciesMeta": {
-        "@babel/core": {
-          "optional": true
-        }
-      }
-    },
-    "node_modules/@vue/babel-plugin-resolve-type": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmmirror.com/@vue/babel-plugin-resolve-type/-/babel-plugin-resolve-type-1.2.1.tgz",
-      "integrity": "sha512-IOtnI7pHunUzHS/y+EG/yPABIAp0VN8QhQ0UCS09jeMVxgAnI9qdOzO85RXdQGxq+aWCdv8/+k3W0aYO6j/8fQ==",
-      "dev": true,
-      "dependencies": {
-        "@babel/code-frame": "^7.23.5",
-        "@babel/helper-module-imports": "^7.22.15",
-        "@babel/helper-plugin-utils": "^7.22.5",
-        "@babel/parser": "^7.23.6",
-        "@vue/compiler-sfc": "^3.4.15"
-      },
-      "peerDependencies": {
-        "@babel/core": "^7.0.0-0"
-      }
-    },
-    "node_modules/@vue/babel-plugin-resolve-type/node_modules/@vue/compiler-core": {
-      "version": "3.4.18",
-      "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.4.18.tgz",
-      "integrity": "sha512-F7YK8lMK0iv6b9/Gdk15A67wM0KKZvxDxed0RR60C1z9tIJTKta+urs4j0RTN5XqHISzI3etN3mX0uHhjmoqjQ==",
-      "dev": true,
-      "dependencies": {
-        "@babel/parser": "^7.23.9",
-        "@vue/shared": "3.4.18",
-        "entities": "^4.5.0",
-        "estree-walker": "^2.0.2",
-        "source-map-js": "^1.0.2"
-      }
-    },
-    "node_modules/@vue/babel-plugin-resolve-type/node_modules/@vue/compiler-dom": {
-      "version": "3.4.18",
-      "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.4.18.tgz",
-      "integrity": "sha512-24Eb8lcMfInefvQ6YlEVS18w5Q66f4+uXWVA+yb7praKbyjHRNuKVWGuinfSSjM0ZIiPi++QWukhkgznBaqpEA==",
-      "dev": true,
-      "dependencies": {
-        "@vue/compiler-core": "3.4.18",
-        "@vue/shared": "3.4.18"
-      }
-    },
-    "node_modules/@vue/babel-plugin-resolve-type/node_modules/@vue/compiler-sfc": {
-      "version": "3.4.18",
-      "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.4.18.tgz",
-      "integrity": "sha512-rG5tqtnzwrVpMqAQ7FHtvHaV70G6LLfJIWLYZB/jZ9m/hrnZmIQh+H3ewnC5onwe/ibljm9+ZupxeElzqCkTAw==",
-      "dev": true,
-      "dependencies": {
-        "@babel/parser": "^7.23.9",
-        "@vue/compiler-core": "3.4.18",
-        "@vue/compiler-dom": "3.4.18",
-        "@vue/compiler-ssr": "3.4.18",
-        "@vue/shared": "3.4.18",
-        "estree-walker": "^2.0.2",
-        "magic-string": "^0.30.6",
-        "postcss": "^8.4.33",
-        "source-map-js": "^1.0.2"
-      }
-    },
-    "node_modules/@vue/babel-plugin-resolve-type/node_modules/@vue/compiler-ssr": {
-      "version": "3.4.18",
-      "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.4.18.tgz",
-      "integrity": "sha512-hSlv20oUhPxo2UYUacHgGaxtqP0tvFo6ixxxD6JlXIkwzwoZ9eKK6PFQN4hNK/R13JlNyldwWt/fqGBKgWJ6nQ==",
-      "dev": true,
-      "dependencies": {
-        "@vue/compiler-dom": "3.4.18",
-        "@vue/shared": "3.4.18"
-      }
-    },
-    "node_modules/@vue/babel-plugin-resolve-type/node_modules/@vue/shared": {
-      "version": "3.4.18",
-      "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.4.18.tgz",
-      "integrity": "sha512-CxouGFxxaW5r1WbrSmWwck3No58rApXgRSBxrqgnY1K+jk20F6DrXJkHdH9n4HVT+/B6G2CAn213Uq3npWiy8Q==",
-      "dev": true
-    },
-    "node_modules/@vue/compiler-core": {
-      "version": "3.2.47",
-      "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.2.47.tgz",
-      "integrity": "sha512-p4D7FDnQb7+YJmO2iPEv0SQNeNzcbHdGByJDsT4lynf63AFkOTFN07HsiRSvjGo0QrxR/o3d0hUyNCUnBU2Tig==",
-      "dependencies": {
-        "@babel/parser": "^7.16.4",
-        "@vue/shared": "3.2.47",
-        "estree-walker": "^2.0.2",
-        "source-map": "^0.6.1"
-      }
-    },
-    "node_modules/@vue/compiler-dom": {
-      "version": "3.2.47",
-      "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.2.47.tgz",
-      "integrity": "sha512-dBBnEHEPoftUiS03a4ggEig74J2YBZ2UIeyfpcRM2tavgMWo4bsEfgCGsu+uJIL/vax9S+JztH8NmQerUo7shQ==",
-      "dependencies": {
-        "@vue/compiler-core": "3.2.47",
-        "@vue/shared": "3.2.47"
-      }
-    },
-    "node_modules/@vue/compiler-sfc": {
-      "version": "3.2.47",
-      "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.2.47.tgz",
-      "integrity": "sha512-rog05W+2IFfxjMcFw10tM9+f7i/+FFpZJJ5XHX72NP9eC2uRD+42M3pYcQqDXVYoj74kHMSEdQ/WmCjt8JFksQ==",
-      "dependencies": {
-        "@babel/parser": "^7.16.4",
-        "@vue/compiler-core": "3.2.47",
-        "@vue/compiler-dom": "3.2.47",
-        "@vue/compiler-ssr": "3.2.47",
-        "@vue/reactivity-transform": "3.2.47",
-        "@vue/shared": "3.2.47",
-        "estree-walker": "^2.0.2",
-        "magic-string": "^0.25.7",
-        "postcss": "^8.1.10",
-        "source-map": "^0.6.1"
-      }
-    },
-    "node_modules/@vue/compiler-sfc/node_modules/magic-string": {
-      "version": "0.25.9",
-      "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.25.9.tgz",
-      "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==",
-      "dependencies": {
-        "sourcemap-codec": "^1.4.8"
-      }
-    },
-    "node_modules/@vue/compiler-ssr": {
-      "version": "3.2.47",
-      "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.2.47.tgz",
-      "integrity": "sha512-wVXC+gszhulcMD8wpxMsqSOpvDZ6xKXSVWkf50Guf/S+28hTAXPDYRTbLQ3EDkOP5Xz/+SY37YiwDquKbJOgZw==",
-      "dependencies": {
-        "@vue/compiler-dom": "3.2.47",
-        "@vue/shared": "3.2.47"
-      }
-    },
-    "node_modules/@vue/devtools-api": {
-      "version": "6.5.1",
-      "resolved": "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.5.1.tgz",
-      "integrity": "sha512-+KpckaAQyfbvshdDW5xQylLni1asvNSGme1JFs8I1+/H5pHEhqUKMEQD/qn3Nx5+/nycBq11qAEi8lk+LXI2dA=="
-    },
-    "node_modules/@vue/eslint-config-prettier": {
-      "version": "8.0.0",
-      "resolved": "https://registry.npmmirror.com/@vue/eslint-config-prettier/-/eslint-config-prettier-8.0.0.tgz",
-      "integrity": "sha512-55dPqtC4PM/yBjhAr+yEw6+7KzzdkBuLmnhBrDfp4I48+wy+Giqqj9yUr5T2uD/BkBROjjmqnLZmXRdOx/VtQg==",
-      "dev": true,
-      "dependencies": {
-        "eslint-config-prettier": "^8.8.0",
-        "eslint-plugin-prettier": "^5.0.0"
-      },
-      "peerDependencies": {
-        "eslint": ">= 8.0.0",
-        "prettier": ">= 3.0.0"
-      }
-    },
-    "node_modules/@vue/eslint-config-prettier/node_modules/eslint-config-prettier": {
-      "version": "8.10.0",
-      "resolved": "https://registry.npmmirror.com/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz",
-      "integrity": "sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==",
-      "dev": true,
-      "bin": {
-        "eslint-config-prettier": "bin/cli.js"
-      },
-      "peerDependencies": {
-        "eslint": ">=7.0.0"
-      }
-    },
-    "node_modules/@vue/eslint-config-typescript": {
-      "version": "12.0.0",
-      "resolved": "https://registry.npmmirror.com/@vue/eslint-config-typescript/-/eslint-config-typescript-12.0.0.tgz",
-      "integrity": "sha512-StxLFet2Qe97T8+7L8pGlhYBBr8Eg05LPuTDVopQV6il+SK6qqom59BA/rcFipUef2jD8P2X44Vd8tMFytfvlg==",
-      "dev": true,
-      "dependencies": {
-        "@typescript-eslint/eslint-plugin": "^6.7.0",
-        "@typescript-eslint/parser": "^6.7.0",
-        "vue-eslint-parser": "^9.3.1"
-      },
-      "engines": {
-        "node": "^14.17.0 || >=16.0.0"
-      },
-      "peerDependencies": {
-        "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0",
-        "eslint-plugin-vue": "^9.0.0",
-        "typescript": "*"
-      },
-      "peerDependenciesMeta": {
-        "typescript": {
-          "optional": true
-        }
-      }
-    },
-    "node_modules/@vue/language-core": {
-      "version": "1.8.27",
-      "resolved": "https://registry.npmmirror.com/@vue/language-core/-/language-core-1.8.27.tgz",
-      "integrity": "sha512-L8Kc27VdQserNaCUNiSFdDl9LWT24ly8Hpwf1ECy3aFb9m6bDhBGQYOujDm21N7EW3moKIOKEanQwe1q5BK+mA==",
-      "dev": true,
-      "dependencies": {
-        "@volar/language-core": "~1.11.1",
-        "@volar/source-map": "~1.11.1",
-        "@vue/compiler-dom": "^3.3.0",
-        "@vue/shared": "^3.3.0",
-        "computeds": "^0.0.1",
-        "minimatch": "^9.0.3",
-        "muggle-string": "^0.3.1",
-        "path-browserify": "^1.0.1",
-        "vue-template-compiler": "^2.7.14"
-      },
-      "peerDependencies": {
-        "typescript": "*"
-      },
-      "peerDependenciesMeta": {
-        "typescript": {
-          "optional": true
-        }
-      }
-    },
-    "node_modules/@vue/language-core/node_modules/@vue/compiler-core": {
-      "version": "3.4.18",
-      "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.4.18.tgz",
-      "integrity": "sha512-F7YK8lMK0iv6b9/Gdk15A67wM0KKZvxDxed0RR60C1z9tIJTKta+urs4j0RTN5XqHISzI3etN3mX0uHhjmoqjQ==",
-      "dev": true,
-      "dependencies": {
-        "@babel/parser": "^7.23.9",
-        "@vue/shared": "3.4.18",
-        "entities": "^4.5.0",
-        "estree-walker": "^2.0.2",
-        "source-map-js": "^1.0.2"
-      }
-    },
-    "node_modules/@vue/language-core/node_modules/@vue/compiler-dom": {
-      "version": "3.4.18",
-      "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.4.18.tgz",
-      "integrity": "sha512-24Eb8lcMfInefvQ6YlEVS18w5Q66f4+uXWVA+yb7praKbyjHRNuKVWGuinfSSjM0ZIiPi++QWukhkgznBaqpEA==",
-      "dev": true,
-      "dependencies": {
-        "@vue/compiler-core": "3.4.18",
-        "@vue/shared": "3.4.18"
-      }
-    },
-    "node_modules/@vue/language-core/node_modules/@vue/shared": {
-      "version": "3.4.18",
-      "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.4.18.tgz",
-      "integrity": "sha512-CxouGFxxaW5r1WbrSmWwck3No58rApXgRSBxrqgnY1K+jk20F6DrXJkHdH9n4HVT+/B6G2CAn213Uq3npWiy8Q==",
-      "dev": true
-    },
-    "node_modules/@vue/reactivity": {
-      "version": "3.4.18",
-      "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.4.18.tgz",
-      "integrity": "sha512-7uda2/I0jpLiRygprDo5Jxs2HJkOVXcOMlyVlY54yRLxoycBpwGJRwJT9EdGB4adnoqJDXVT2BilUAYwI7qvmg==",
-      "dependencies": {
-        "@vue/shared": "3.4.18"
-      }
-    },
-    "node_modules/@vue/reactivity-transform": {
-      "version": "3.2.47",
-      "resolved": "https://registry.npmmirror.com/@vue/reactivity-transform/-/reactivity-transform-3.2.47.tgz",
-      "integrity": "sha512-m8lGXw8rdnPVVIdIFhf0LeQ/ixyHkH5plYuS83yop5n7ggVJU+z5v0zecwEnX7fa7HNLBhh2qngJJkxpwEEmYA==",
-      "dependencies": {
-        "@babel/parser": "^7.16.4",
-        "@vue/compiler-core": "3.2.47",
-        "@vue/shared": "3.2.47",
-        "estree-walker": "^2.0.2",
-        "magic-string": "^0.25.7"
-      }
-    },
-    "node_modules/@vue/reactivity-transform/node_modules/magic-string": {
-      "version": "0.25.9",
-      "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.25.9.tgz",
-      "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==",
-      "dependencies": {
-        "sourcemap-codec": "^1.4.8"
-      }
-    },
-    "node_modules/@vue/reactivity/node_modules/@vue/shared": {
-      "version": "3.4.18",
-      "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.4.18.tgz",
-      "integrity": "sha512-CxouGFxxaW5r1WbrSmWwck3No58rApXgRSBxrqgnY1K+jk20F6DrXJkHdH9n4HVT+/B6G2CAn213Uq3npWiy8Q=="
-    },
-    "node_modules/@vue/runtime-core": {
-      "version": "3.4.18",
-      "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.4.18.tgz",
-      "integrity": "sha512-7mU9diCa+4e+8/wZ7Udw5pwTH10A11sZ1nldmHOUKJnzCwvZxfJqAtw31mIf4T5H2FsLCSBQT3xgioA9vIjyDQ==",
-      "dependencies": {
-        "@vue/reactivity": "3.4.18",
-        "@vue/shared": "3.4.18"
-      }
-    },
-    "node_modules/@vue/runtime-core/node_modules/@vue/shared": {
-      "version": "3.4.18",
-      "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.4.18.tgz",
-      "integrity": "sha512-CxouGFxxaW5r1WbrSmWwck3No58rApXgRSBxrqgnY1K+jk20F6DrXJkHdH9n4HVT+/B6G2CAn213Uq3npWiy8Q=="
-    },
-    "node_modules/@vue/runtime-dom": {
-      "version": "3.4.18",
-      "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.4.18.tgz",
-      "integrity": "sha512-2y1Mkzcw1niSfG7z3Qx+2ir9Gb4hdTkZe5p/I8x1aTIKQE0vY0tPAEUPhZm5tx6183gG3D/KwHG728UR0sIufA==",
-      "dependencies": {
-        "@vue/runtime-core": "3.4.18",
-        "@vue/shared": "3.4.18",
-        "csstype": "^3.1.3"
-      }
-    },
-    "node_modules/@vue/runtime-dom/node_modules/@vue/shared": {
-      "version": "3.4.18",
-      "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.4.18.tgz",
-      "integrity": "sha512-CxouGFxxaW5r1WbrSmWwck3No58rApXgRSBxrqgnY1K+jk20F6DrXJkHdH9n4HVT+/B6G2CAn213Uq3npWiy8Q=="
-    },
-    "node_modules/@vue/server-renderer": {
-      "version": "3.4.18",
-      "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.4.18.tgz",
-      "integrity": "sha512-YJd1wa7mzUN3NRqLEsrwEYWyO+PUBSROIGlCc3J/cvn7Zu6CxhNLgXa8Z4zZ5ja5/nviYO79J1InoPeXgwBTZA==",
-      "dependencies": {
-        "@vue/compiler-ssr": "3.4.18",
-        "@vue/shared": "3.4.18"
-      },
-      "peerDependencies": {
-        "vue": "3.4.18"
-      }
-    },
-    "node_modules/@vue/server-renderer/node_modules/@vue/compiler-core": {
-      "version": "3.4.18",
-      "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.4.18.tgz",
-      "integrity": "sha512-F7YK8lMK0iv6b9/Gdk15A67wM0KKZvxDxed0RR60C1z9tIJTKta+urs4j0RTN5XqHISzI3etN3mX0uHhjmoqjQ==",
-      "dependencies": {
-        "@babel/parser": "^7.23.9",
-        "@vue/shared": "3.4.18",
-        "entities": "^4.5.0",
-        "estree-walker": "^2.0.2",
-        "source-map-js": "^1.0.2"
-      }
-    },
-    "node_modules/@vue/server-renderer/node_modules/@vue/compiler-dom": {
-      "version": "3.4.18",
-      "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.4.18.tgz",
-      "integrity": "sha512-24Eb8lcMfInefvQ6YlEVS18w5Q66f4+uXWVA+yb7praKbyjHRNuKVWGuinfSSjM0ZIiPi++QWukhkgznBaqpEA==",
-      "dependencies": {
-        "@vue/compiler-core": "3.4.18",
-        "@vue/shared": "3.4.18"
-      }
-    },
-    "node_modules/@vue/server-renderer/node_modules/@vue/compiler-ssr": {
-      "version": "3.4.18",
-      "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.4.18.tgz",
-      "integrity": "sha512-hSlv20oUhPxo2UYUacHgGaxtqP0tvFo6ixxxD6JlXIkwzwoZ9eKK6PFQN4hNK/R13JlNyldwWt/fqGBKgWJ6nQ==",
-      "dependencies": {
-        "@vue/compiler-dom": "3.4.18",
-        "@vue/shared": "3.4.18"
-      }
-    },
-    "node_modules/@vue/server-renderer/node_modules/@vue/shared": {
-      "version": "3.4.18",
-      "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.4.18.tgz",
-      "integrity": "sha512-CxouGFxxaW5r1WbrSmWwck3No58rApXgRSBxrqgnY1K+jk20F6DrXJkHdH9n4HVT+/B6G2CAn213Uq3npWiy8Q=="
-    },
-    "node_modules/@vue/shared": {
-      "version": "3.2.47",
-      "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.2.47.tgz",
-      "integrity": "sha512-BHGyyGN3Q97EZx0taMQ+OLNuZcW3d37ZEVmEAyeoA9ERdGvm9Irc/0Fua8SNyOtV1w6BS4q25wbMzJujO9HIfQ=="
-    },
-    "node_modules/@vue/tsconfig": {
-      "version": "0.1.3",
-      "resolved": "https://registry.npmmirror.com/@vue/tsconfig/-/tsconfig-0.1.3.tgz",
-      "integrity": "sha512-kQVsh8yyWPvHpb8gIc9l/HIDiiVUy1amynLNpCy8p+FoCiZXCo6fQos5/097MmnNZc9AtseDsCrfkhqCrJ8Olg==",
-      "dev": true,
-      "peerDependencies": {
-        "@types/node": "*"
-      },
-      "peerDependenciesMeta": {
-        "@types/node": {
-          "optional": true
-        }
-      }
-    },
-    "node_modules/@webassemblyjs/ast": {
-      "version": "1.11.6",
-      "resolved": "https://registry.npmmirror.com/@webassemblyjs/ast/-/ast-1.11.6.tgz",
-      "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==",
-      "peer": 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.npmmirror.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz",
-      "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==",
-      "peer": true
-    },
-    "node_modules/@webassemblyjs/helper-api-error": {
-      "version": "1.11.6",
-      "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz",
-      "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==",
-      "peer": true
-    },
-    "node_modules/@webassemblyjs/helper-buffer": {
-      "version": "1.11.6",
-      "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz",
-      "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==",
-      "peer": true
-    },
-    "node_modules/@webassemblyjs/helper-numbers": {
-      "version": "1.11.6",
-      "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz",
-      "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==",
-      "peer": 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.npmmirror.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz",
-      "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==",
-      "peer": true
-    },
-    "node_modules/@webassemblyjs/helper-wasm-section": {
-      "version": "1.11.6",
-      "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz",
-      "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==",
-      "peer": 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.npmmirror.com/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz",
-      "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==",
-      "peer": true,
-      "dependencies": {
-        "@xtuc/ieee754": "^1.2.0"
-      }
-    },
-    "node_modules/@webassemblyjs/leb128": {
-      "version": "1.11.6",
-      "resolved": "https://registry.npmmirror.com/@webassemblyjs/leb128/-/leb128-1.11.6.tgz",
-      "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==",
-      "peer": true,
-      "dependencies": {
-        "@xtuc/long": "4.2.2"
-      }
-    },
-    "node_modules/@webassemblyjs/utf8": {
-      "version": "1.11.6",
-      "resolved": "https://registry.npmmirror.com/@webassemblyjs/utf8/-/utf8-1.11.6.tgz",
-      "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==",
-      "peer": true
-    },
-    "node_modules/@webassemblyjs/wasm-edit": {
-      "version": "1.11.6",
-      "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz",
-      "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==",
-      "peer": 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.npmmirror.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz",
-      "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==",
-      "peer": 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.npmmirror.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz",
-      "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==",
-      "peer": 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.npmmirror.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz",
-      "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==",
-      "peer": 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.npmmirror.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz",
-      "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==",
-      "peer": true,
-      "dependencies": {
-        "@webassemblyjs/ast": "1.11.6",
-        "@xtuc/long": "4.2.2"
-      }
-    },
-    "node_modules/@xtuc/ieee754": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmmirror.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
-      "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==",
-      "peer": true
-    },
-    "node_modules/@xtuc/long": {
-      "version": "4.2.2",
-      "resolved": "https://registry.npmmirror.com/@xtuc/long/-/long-4.2.2.tgz",
-      "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==",
-      "peer": true
-    },
-    "node_modules/abab": {
-      "version": "2.0.6",
-      "resolved": "https://registry.npmmirror.com/abab/-/abab-2.0.6.tgz",
-      "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==",
-      "deprecated": "Use your platform's native atob() and btoa() methods instead",
-      "dev": true,
-      "peer": true
-    },
-    "node_modules/accepts": {
-      "version": "1.3.8",
-      "resolved": "https://registry.npmmirror.com/accepts/-/accepts-1.3.8.tgz",
-      "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
-      "dev": true,
-      "dependencies": {
-        "mime-types": "~2.1.34",
-        "negotiator": "0.6.3"
-      },
-      "engines": {
-        "node": ">= 0.6"
-      }
-    },
-    "node_modules/acorn": {
-      "version": "8.11.3",
-      "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.11.3.tgz",
-      "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==",
-      "bin": {
-        "acorn": "bin/acorn"
-      },
-      "engines": {
-        "node": ">=0.4.0"
-      }
-    },
-    "node_modules/acorn-globals": {
-      "version": "6.0.0",
-      "resolved": "https://registry.npmmirror.com/acorn-globals/-/acorn-globals-6.0.0.tgz",
-      "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "acorn": "^7.1.1",
-        "acorn-walk": "^7.1.1"
-      }
-    },
-    "node_modules/acorn-globals/node_modules/acorn": {
-      "version": "7.4.1",
-      "resolved": "https://registry.npmmirror.com/acorn/-/acorn-7.4.1.tgz",
-      "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
-      "dev": true,
-      "peer": true,
-      "bin": {
-        "acorn": "bin/acorn"
-      },
-      "engines": {
-        "node": ">=0.4.0"
-      }
-    },
-    "node_modules/acorn-import-assertions": {
-      "version": "1.9.0",
-      "resolved": "https://registry.npmmirror.com/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz",
-      "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==",
-      "peer": true,
-      "peerDependencies": {
-        "acorn": "^8"
-      }
-    },
-    "node_modules/acorn-jsx": {
-      "version": "5.3.2",
-      "resolved": "https://registry.npmmirror.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
-      "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
-      "peerDependencies": {
-        "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
-      }
-    },
-    "node_modules/acorn-walk": {
-      "version": "7.2.0",
-      "resolved": "https://registry.npmmirror.com/acorn-walk/-/acorn-walk-7.2.0.tgz",
-      "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==",
-      "dev": true,
-      "peer": true,
-      "engines": {
-        "node": ">=0.4.0"
-      }
-    },
-    "node_modules/address": {
-      "version": "1.2.2",
-      "resolved": "https://registry.npmmirror.com/address/-/address-1.2.2.tgz",
-      "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==",
-      "dev": true,
-      "engines": {
-        "node": ">= 10.0.0"
-      }
-    },
-    "node_modules/agent-base": {
-      "version": "6.0.2",
-      "resolved": "https://registry.npmmirror.com/agent-base/-/agent-base-6.0.2.tgz",
-      "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "debug": "4"
-      },
-      "engines": {
-        "node": ">= 6.0.0"
-      }
-    },
-    "node_modules/ajv": {
-      "version": "6.12.6",
-      "resolved": "https://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz",
-      "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
-      "dependencies": {
-        "fast-deep-equal": "^3.1.1",
-        "fast-json-stable-stringify": "^2.0.0",
-        "json-schema-traverse": "^0.4.1",
-        "uri-js": "^4.2.2"
-      }
-    },
-    "node_modules/ajv-keywords": {
-      "version": "3.5.2",
-      "resolved": "https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
-      "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
-      "peer": true,
-      "peerDependencies": {
-        "ajv": "^6.9.1"
-      }
-    },
-    "node_modules/ansi-escapes": {
-      "version": "4.3.2",
-      "resolved": "https://registry.npmmirror.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
-      "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "type-fest": "^0.21.3"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/ansi-regex": {
-      "version": "5.0.1",
-      "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz",
-      "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/ansi-styles": {
-      "version": "3.2.1",
-      "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-3.2.1.tgz",
-      "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
-      "dependencies": {
-        "color-convert": "^1.9.0"
-      },
-      "engines": {
-        "node": ">=4"
-      }
-    },
-    "node_modules/any-base": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmmirror.com/any-base/-/any-base-1.1.0.tgz",
-      "integrity": "sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg=="
-    },
-    "node_modules/anymatch": {
-      "version": "3.1.3",
-      "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz",
-      "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
-      "dependencies": {
-        "normalize-path": "^3.0.0",
-        "picomatch": "^2.0.4"
-      },
-      "engines": {
-        "node": ">= 8"
-      }
-    },
-    "node_modules/argparse": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmmirror.com/argparse/-/argparse-2.0.1.tgz",
-      "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
-    },
-    "node_modules/array-buffer-byte-length": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmmirror.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz",
-      "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==",
-      "dev": true,
-      "dependencies": {
-        "call-bind": "^1.0.5",
-        "is-array-buffer": "^3.0.4"
-      },
-      "engines": {
-        "node": ">= 0.4"
-      }
-    },
-    "node_modules/array-flatten": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmmirror.com/array-flatten/-/array-flatten-1.1.1.tgz",
-      "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==",
-      "dev": true
-    },
-    "node_modules/array-includes": {
-      "version": "3.1.7",
-      "resolved": "https://registry.npmmirror.com/array-includes/-/array-includes-3.1.7.tgz",
-      "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==",
-      "dev": true,
-      "dependencies": {
-        "call-bind": "^1.0.2",
-        "define-properties": "^1.2.0",
-        "es-abstract": "^1.22.1",
-        "get-intrinsic": "^1.2.1",
-        "is-string": "^1.0.7"
-      },
-      "engines": {
-        "node": ">= 0.4"
-      }
-    },
-    "node_modules/array-union": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmmirror.com/array-union/-/array-union-2.1.0.tgz",
-      "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
-      "dev": true,
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/array.prototype.filter": {
-      "version": "1.0.3",
-      "resolved": "https://registry.npmmirror.com/array.prototype.filter/-/array.prototype.filter-1.0.3.tgz",
-      "integrity": "sha512-VizNcj/RGJiUyQBgzwxzE5oHdeuXY5hSbbmKMlphj1cy1Vl7Pn2asCGbSrru6hSQjmCzqTBPVWAF/whmEOVHbw==",
-      "dev": true,
-      "dependencies": {
-        "call-bind": "^1.0.2",
-        "define-properties": "^1.2.0",
-        "es-abstract": "^1.22.1",
-        "es-array-method-boxes-properly": "^1.0.0",
-        "is-string": "^1.0.7"
-      },
-      "engines": {
-        "node": ">= 0.4"
-      }
-    },
-    "node_modules/array.prototype.findlastindex": {
-      "version": "1.2.4",
-      "resolved": "https://registry.npmmirror.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.4.tgz",
-      "integrity": "sha512-hzvSHUshSpCflDR1QMUBLHGHP1VIEBegT4pix9H/Z92Xw3ySoy6c2qh7lJWTJnRJ8JCZ9bJNCgTyYaJGcJu6xQ==",
-      "dev": true,
-      "dependencies": {
-        "call-bind": "^1.0.5",
-        "define-properties": "^1.2.1",
-        "es-abstract": "^1.22.3",
-        "es-errors": "^1.3.0",
-        "es-shim-unscopables": "^1.0.2"
-      },
-      "engines": {
-        "node": ">= 0.4"
-      }
-    },
-    "node_modules/array.prototype.flat": {
-      "version": "1.3.2",
-      "resolved": "https://registry.npmmirror.com/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz",
-      "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==",
-      "dev": true,
-      "dependencies": {
-        "call-bind": "^1.0.2",
-        "define-properties": "^1.2.0",
-        "es-abstract": "^1.22.1",
-        "es-shim-unscopables": "^1.0.0"
-      },
-      "engines": {
-        "node": ">= 0.4"
-      }
-    },
-    "node_modules/array.prototype.flatmap": {
-      "version": "1.3.2",
-      "resolved": "https://registry.npmmirror.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz",
-      "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==",
-      "dev": true,
-      "dependencies": {
-        "call-bind": "^1.0.2",
-        "define-properties": "^1.2.0",
-        "es-abstract": "^1.22.1",
-        "es-shim-unscopables": "^1.0.0"
-      },
-      "engines": {
-        "node": ">= 0.4"
-      }
-    },
-    "node_modules/arraybuffer.prototype.slice": {
-      "version": "1.0.3",
-      "resolved": "https://registry.npmmirror.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz",
-      "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==",
-      "dev": true,
-      "dependencies": {
-        "array-buffer-byte-length": "^1.0.1",
-        "call-bind": "^1.0.5",
-        "define-properties": "^1.2.1",
-        "es-abstract": "^1.22.3",
-        "es-errors": "^1.2.1",
-        "get-intrinsic": "^1.2.3",
-        "is-array-buffer": "^3.0.4",
-        "is-shared-array-buffer": "^1.0.2"
-      },
-      "engines": {
-        "node": ">= 0.4"
-      }
-    },
-    "node_modules/asynckit": {
-      "version": "0.4.0",
-      "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz",
-      "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
-      "dev": true,
-      "peer": true
-    },
-    "node_modules/autoprefixer": {
-      "version": "10.4.17",
-      "resolved": "https://registry.npmmirror.com/autoprefixer/-/autoprefixer-10.4.17.tgz",
-      "integrity": "sha512-/cpVNRLSfhOtcGflT13P2794gVSgmPgTR+erw5ifnMLZb0UnSlkK4tquLmkd3BhA+nLo5tX8Cu0upUsGKvKbmg==",
-      "dependencies": {
-        "browserslist": "^4.22.2",
-        "caniuse-lite": "^1.0.30001578",
-        "fraction.js": "^4.3.7",
-        "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/available-typed-arrays": {
-      "version": "1.0.6",
-      "resolved": "https://registry.npmmirror.com/available-typed-arrays/-/available-typed-arrays-1.0.6.tgz",
-      "integrity": "sha512-j1QzY8iPNPG4o4xmO3ptzpRxTciqD3MgEHtifP/YnJpIo58Xu+ne4BejlbkuaLfXn/nz6HFiw29bLpj2PNMdGg==",
-      "dev": true,
-      "engines": {
-        "node": ">= 0.4"
-      }
-    },
-    "node_modules/babel-jest": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/babel-jest/-/babel-jest-27.5.1.tgz",
-      "integrity": "sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "@jest/transform": "^27.5.1",
-        "@jest/types": "^27.5.1",
-        "@types/babel__core": "^7.1.14",
-        "babel-plugin-istanbul": "^6.1.1",
-        "babel-preset-jest": "^27.5.1",
-        "chalk": "^4.0.0",
-        "graceful-fs": "^4.2.9",
-        "slash": "^3.0.0"
-      },
-      "engines": {
-        "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
-      },
-      "peerDependencies": {
-        "@babel/core": "^7.8.0"
-      }
-    },
-    "node_modules/babel-jest/node_modules/ansi-styles": {
-      "version": "4.3.0",
-      "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
-      "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "color-convert": "^2.0.1"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/babel-jest/node_modules/chalk": {
-      "version": "4.1.2",
-      "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
-      "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "ansi-styles": "^4.1.0",
-        "supports-color": "^7.1.0"
-      },
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/babel-jest/node_modules/color-convert": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
-      "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "color-name": "~1.1.4"
-      },
-      "engines": {
-        "node": ">=7.0.0"
-      }
-    },
-    "node_modules/babel-jest/node_modules/color-name": {
-      "version": "1.1.4",
-      "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
-      "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
-      "dev": true,
-      "peer": true
-    },
-    "node_modules/babel-jest/node_modules/has-flag": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
-      "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
-      "dev": true,
-      "peer": true,
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/babel-jest/node_modules/supports-color": {
-      "version": "7.2.0",
-      "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
-      "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "has-flag": "^4.0.0"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/babel-plugin-istanbul": {
-      "version": "6.1.1",
-      "resolved": "https://registry.npmmirror.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz",
-      "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==",
-      "dev": true,
-      "peer": 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-jest-hoist": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz",
-      "integrity": "sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "@babel/template": "^7.3.3",
-        "@babel/types": "^7.3.3",
-        "@types/babel__core": "^7.0.0",
-        "@types/babel__traverse": "^7.0.6"
-      },
-      "engines": {
-        "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
-      }
-    },
-    "node_modules/babel-plugin-polyfill-corejs2": {
-      "version": "0.4.8",
-      "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.8.tgz",
-      "integrity": "sha512-OtIuQfafSzpo/LhnJaykc0R/MMnuLSSVjVYy9mHArIZ9qTCSZ6TpWCuEKZYVoN//t8HqBNScHrOtCrIK5IaGLg==",
-      "dev": true,
-      "dependencies": {
-        "@babel/compat-data": "^7.22.6",
-        "@babel/helper-define-polyfill-provider": "^0.5.0",
-        "semver": "^6.3.1"
-      },
-      "peerDependencies": {
-        "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
-      }
-    },
-    "node_modules/babel-plugin-polyfill-corejs3": {
-      "version": "0.9.0",
-      "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.9.0.tgz",
-      "integrity": "sha512-7nZPG1uzK2Ymhy/NbaOWTg3uibM2BmGASS4vHS4szRZAIR8R6GwA/xAujpdrXU5iyklrimWnLWU+BLF9suPTqg==",
-      "dev": true,
-      "dependencies": {
-        "@babel/helper-define-polyfill-provider": "^0.5.0",
-        "core-js-compat": "^3.34.0"
-      },
-      "peerDependencies": {
-        "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
-      }
-    },
-    "node_modules/babel-plugin-polyfill-regenerator": {
-      "version": "0.5.5",
-      "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.5.tgz",
-      "integrity": "sha512-OJGYZlhLqBh2DDHeqAxWB1XIvr49CxiJ2gIt61/PU55CQK4Z58OzMqjDe1zwQdQk+rBYsRc+1rJmdajM3gimHg==",
-      "dev": true,
-      "dependencies": {
-        "@babel/helper-define-polyfill-provider": "^0.5.0"
-      },
-      "peerDependencies": {
-        "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
-      }
-    },
-    "node_modules/babel-preset-current-node-syntax": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmmirror.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz",
-      "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "@babel/plugin-syntax-async-generators": "^7.8.4",
-        "@babel/plugin-syntax-bigint": "^7.8.3",
-        "@babel/plugin-syntax-class-properties": "^7.8.3",
-        "@babel/plugin-syntax-import-meta": "^7.8.3",
-        "@babel/plugin-syntax-json-strings": "^7.8.3",
-        "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3",
-        "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3",
-        "@babel/plugin-syntax-numeric-separator": "^7.8.3",
-        "@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-top-level-await": "^7.8.3"
-      },
-      "peerDependencies": {
-        "@babel/core": "^7.0.0"
-      }
-    },
-    "node_modules/babel-preset-jest": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz",
-      "integrity": "sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "babel-plugin-jest-hoist": "^27.5.1",
-        "babel-preset-current-node-syntax": "^1.0.0"
-      },
-      "engines": {
-        "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
-      },
-      "peerDependencies": {
-        "@babel/core": "^7.0.0"
-      }
-    },
-    "node_modules/balanced-match": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz",
-      "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
-    },
-    "node_modules/base64-js": {
-      "version": "1.5.1",
-      "resolved": "https://registry.npmmirror.com/base64-js/-/base64-js-1.5.1.tgz",
-      "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="
-    },
-    "node_modules/base64url": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmmirror.com/base64url/-/base64url-3.0.1.tgz",
-      "integrity": "sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A==",
-      "engines": {
-        "node": ">=6.0.0"
-      }
-    },
-    "node_modules/binary-extensions": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.2.0.tgz",
-      "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/bmp-js": {
-      "version": "0.1.0",
-      "resolved": "https://registry.npmmirror.com/bmp-js/-/bmp-js-0.1.0.tgz",
-      "integrity": "sha512-vHdS19CnY3hwiNdkaqk93DvjVLfbEcI8mys4UjuWrlX1haDmroo8o4xCzh4wD6DGV6HxRCyauwhHRqMTfERtjw=="
-    },
-    "node_modules/body-parser": {
-      "version": "1.20.1",
-      "resolved": "https://registry.npmmirror.com/body-parser/-/body-parser-1.20.1.tgz",
-      "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==",
-      "dev": true,
-      "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.npmmirror.com/debug/-/debug-2.6.9.tgz",
-      "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
-      "dev": true,
-      "dependencies": {
-        "ms": "2.0.0"
-      }
-    },
-    "node_modules/body-parser/node_modules/ms": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz",
-      "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
-      "dev": true
-    },
-    "node_modules/body-parser/node_modules/qs": {
-      "version": "6.11.0",
-      "resolved": "https://registry.npmmirror.com/qs/-/qs-6.11.0.tgz",
-      "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
-      "dev": true,
-      "dependencies": {
-        "side-channel": "^1.0.4"
-      },
-      "engines": {
-        "node": ">=0.6"
-      }
-    },
-    "node_modules/boolbase": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmmirror.com/boolbase/-/boolbase-1.0.0.tgz",
-      "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==",
-      "dev": true
-    },
-    "node_modules/brace-expansion": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz",
-      "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
-      "dev": true,
-      "dependencies": {
-        "balanced-match": "^1.0.0"
-      }
-    },
-    "node_modules/braces": {
-      "version": "3.0.2",
-      "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz",
-      "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
-      "dependencies": {
-        "fill-range": "^7.0.1"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/browser-process-hrtime": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmmirror.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz",
-      "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==",
-      "dev": true,
-      "peer": true
-    },
-    "node_modules/browserslist": {
-      "version": "4.22.3",
-      "resolved": "https://registry.npmmirror.com/browserslist/-/browserslist-4.22.3.tgz",
-      "integrity": "sha512-UAp55yfwNv0klWNapjs/ktHoguxuQNGnOzxYmfnXIS+8AsRDZkSDxg7R1AX3GKzn078SBI5dzwzj/Yx0Or0e3A==",
-      "dependencies": {
-        "caniuse-lite": "^1.0.30001580",
-        "electron-to-chromium": "^1.4.648",
-        "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/bser": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmmirror.com/bser/-/bser-2.1.1.tgz",
-      "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "node-int64": "^0.4.0"
-      }
-    },
-    "node_modules/buffer": {
-      "version": "5.7.1",
-      "resolved": "https://registry.npmmirror.com/buffer/-/buffer-5.7.1.tgz",
-      "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
-      "dependencies": {
-        "base64-js": "^1.3.1",
-        "ieee754": "^1.1.13"
-      }
-    },
-    "node_modules/buffer-equal": {
-      "version": "0.0.1",
-      "resolved": "https://registry.npmmirror.com/buffer-equal/-/buffer-equal-0.0.1.tgz",
-      "integrity": "sha512-RgSV6InVQ9ODPdLWJ5UAqBqJBOg370Nz6ZQtRzpt6nUjc8v0St97uJ4PYC6NztqIScrAXafKM3mZPMygSe1ggA==",
-      "engines": {
-        "node": ">=0.4.0"
-      }
-    },
-    "node_modules/buffer-from": {
-      "version": "1.1.2",
-      "resolved": "https://registry.npmmirror.com/buffer-from/-/buffer-from-1.1.2.tgz",
-      "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="
-    },
-    "node_modules/builtin-modules": {
-      "version": "3.3.0",
-      "resolved": "https://registry.npmmirror.com/builtin-modules/-/builtin-modules-3.3.0.tgz",
-      "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==",
-      "dev": true,
-      "engines": {
-        "node": ">=6"
-      }
-    },
-    "node_modules/builtins": {
-      "version": "5.0.1",
-      "resolved": "https://registry.npmmirror.com/builtins/-/builtins-5.0.1.tgz",
-      "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==",
-      "dev": true,
-      "dependencies": {
-        "semver": "^7.0.0"
-      }
-    },
-    "node_modules/builtins/node_modules/lru-cache": {
-      "version": "6.0.0",
-      "resolved": "https://registry.npmmirror.com/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/builtins/node_modules/semver": {
-      "version": "7.6.0",
-      "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.0.tgz",
-      "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
-      "dev": true,
-      "dependencies": {
-        "lru-cache": "^6.0.0"
-      },
-      "bin": {
-        "semver": "bin/semver.js"
-      },
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/builtins/node_modules/yallist": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz",
-      "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
-      "dev": true
-    },
-    "node_modules/bytes": {
-      "version": "3.1.2",
-      "resolved": "https://registry.npmmirror.com/bytes/-/bytes-3.1.2.tgz",
-      "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
-      "dev": true,
-      "engines": {
-        "node": ">= 0.8"
-      }
-    },
-    "node_modules/cac": {
-      "version": "6.7.9",
-      "resolved": "https://registry.npmmirror.com/cac/-/cac-6.7.9.tgz",
-      "integrity": "sha512-XN5qEpfNQCJ8jRaZgitSkkukjMRCGio+X3Ks5KUbGGlPbV+pSem1l9VuzooCBXOiMFshUZgyYqg6rgN8rjkb/w==",
-      "dev": true,
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/call-bind": {
-      "version": "1.0.6",
-      "resolved": "https://registry.npmmirror.com/call-bind/-/call-bind-1.0.6.tgz",
-      "integrity": "sha512-Mj50FLHtlsoVfRfnHaZvyrooHcrlceNZdL/QBvJJVd9Ta55qCQK0gs4ss2oZDeV9zFCs6ewzYgVE5yfVmfFpVg==",
-      "dependencies": {
-        "es-errors": "^1.3.0",
-        "function-bind": "^1.1.2",
-        "get-intrinsic": "^1.2.3",
-        "set-function-length": "^1.2.0"
-      },
-      "engines": {
-        "node": ">= 0.4"
-      }
-    },
-    "node_modules/callsites": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmmirror.com/callsites/-/callsites-3.1.0.tgz",
-      "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
-      "engines": {
-        "node": ">=6"
-      }
-    },
-    "node_modules/camelcase": {
-      "version": "6.3.0",
-      "resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-6.3.0.tgz",
-      "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
-      "dev": true,
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/caniuse-lite": {
-      "version": "1.0.30001585",
-      "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001585.tgz",
-      "integrity": "sha512-yr2BWR1yLXQ8fMpdS/4ZZXpseBgE7o4g41x3a6AJOqZuOi+iE/WdJYAuZ6Y95i4Ohd2Y+9MzIWRR+uGABH4s3Q=="
-    },
-    "node_modules/chalk": {
-      "version": "2.4.2",
-      "resolved": "https://registry.npmmirror.com/chalk/-/chalk-2.4.2.tgz",
-      "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
-      "dependencies": {
-        "ansi-styles": "^3.2.1",
-        "escape-string-regexp": "^1.0.5",
-        "supports-color": "^5.3.0"
-      },
-      "engines": {
-        "node": ">=4"
-      }
-    },
-    "node_modules/char-regex": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmmirror.com/char-regex/-/char-regex-1.0.2.tgz",
-      "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==",
-      "dev": true,
-      "peer": true,
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/chokidar": {
-      "version": "3.6.0",
-      "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.6.0.tgz",
-      "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
-      "dependencies": {
-        "anymatch": "~3.1.2",
-        "braces": "~3.0.2",
-        "glob-parent": "~5.1.2",
-        "is-binary-path": "~2.1.0",
-        "is-glob": "~4.0.1",
-        "normalize-path": "~3.0.0",
-        "readdirp": "~3.6.0"
-      },
-      "engines": {
-        "node": ">= 8.10.0"
-      },
-      "optionalDependencies": {
-        "fsevents": "~2.3.2"
-      }
-    },
-    "node_modules/chrome-trace-event": {
-      "version": "1.0.3",
-      "resolved": "https://registry.npmmirror.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz",
-      "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==",
-      "peer": true,
-      "engines": {
-        "node": ">=6.0"
-      }
-    },
-    "node_modules/ci-info": {
-      "version": "3.9.0",
-      "resolved": "https://registry.npmmirror.com/ci-info/-/ci-info-3.9.0.tgz",
-      "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==",
-      "dev": true,
-      "peer": true,
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/cjs-module-lexer": {
-      "version": "1.2.3",
-      "resolved": "https://registry.npmmirror.com/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz",
-      "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==",
-      "dev": true,
-      "peer": true
-    },
-    "node_modules/cliui": {
-      "version": "7.0.4",
-      "resolved": "https://registry.npmmirror.com/cliui/-/cliui-7.0.4.tgz",
-      "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "string-width": "^4.2.0",
-        "strip-ansi": "^6.0.0",
-        "wrap-ansi": "^7.0.0"
-      }
-    },
-    "node_modules/co": {
-      "version": "4.6.0",
-      "resolved": "https://registry.npmmirror.com/co/-/co-4.6.0.tgz",
-      "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==",
-      "dev": true,
-      "peer": true,
-      "engines": {
-        "iojs": ">= 1.0.0",
-        "node": ">= 0.12.0"
-      }
-    },
-    "node_modules/collect-v8-coverage": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmmirror.com/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz",
-      "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==",
-      "dev": true,
-      "peer": true
-    },
-    "node_modules/color-convert": {
-      "version": "1.9.3",
-      "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-1.9.3.tgz",
-      "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
-      "dependencies": {
-        "color-name": "1.1.3"
-      }
-    },
-    "node_modules/color-name": {
-      "version": "1.1.3",
-      "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.3.tgz",
-      "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
-    },
-    "node_modules/combined-stream": {
-      "version": "1.0.8",
-      "resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz",
-      "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "delayed-stream": "~1.0.0"
-      },
-      "engines": {
-        "node": ">= 0.8"
-      }
-    },
-    "node_modules/commander": {
-      "version": "2.20.3",
-      "resolved": "https://registry.npmmirror.com/commander/-/commander-2.20.3.tgz",
-      "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="
-    },
-    "node_modules/compare-versions": {
-      "version": "3.6.0",
-      "resolved": "https://registry.npmmirror.com/compare-versions/-/compare-versions-3.6.0.tgz",
-      "integrity": "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA=="
-    },
-    "node_modules/computeds": {
-      "version": "0.0.1",
-      "resolved": "https://registry.npmmirror.com/computeds/-/computeds-0.0.1.tgz",
-      "integrity": "sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==",
-      "dev": true
-    },
-    "node_modules/concat-map": {
-      "version": "0.0.1",
-      "resolved": "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz",
-      "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
-    },
-    "node_modules/content-disposition": {
-      "version": "0.5.4",
-      "resolved": "https://registry.npmmirror.com/content-disposition/-/content-disposition-0.5.4.tgz",
-      "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
-      "dev": true,
-      "dependencies": {
-        "safe-buffer": "5.2.1"
-      },
-      "engines": {
-        "node": ">= 0.6"
-      }
-    },
-    "node_modules/content-type": {
-      "version": "1.0.5",
-      "resolved": "https://registry.npmmirror.com/content-type/-/content-type-1.0.5.tgz",
-      "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
-      "dev": true,
-      "engines": {
-        "node": ">= 0.6"
-      }
-    },
-    "node_modules/convert-source-map": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmmirror.com/convert-source-map/-/convert-source-map-2.0.0.tgz",
-      "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg=="
-    },
-    "node_modules/cookie": {
-      "version": "0.5.0",
-      "resolved": "https://registry.npmmirror.com/cookie/-/cookie-0.5.0.tgz",
-      "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==",
-      "dev": true,
-      "engines": {
-        "node": ">= 0.6"
-      }
-    },
-    "node_modules/cookie-signature": {
-      "version": "1.0.6",
-      "resolved": "https://registry.npmmirror.com/cookie-signature/-/cookie-signature-1.0.6.tgz",
-      "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==",
-      "dev": true
-    },
-    "node_modules/core-js": {
-      "version": "3.35.1",
-      "resolved": "https://registry.npmmirror.com/core-js/-/core-js-3.35.1.tgz",
-      "integrity": "sha512-IgdsbxNyMskrTFxa9lWHyMwAJU5gXOPP+1yO+K59d50VLVAIDAbs7gIv705KzALModfK3ZrSZTPNpC0PQgIZuw==",
-      "hasInstallScript": true
-    },
-    "node_modules/core-js-compat": {
-      "version": "3.35.1",
-      "resolved": "https://registry.npmmirror.com/core-js-compat/-/core-js-compat-3.35.1.tgz",
-      "integrity": "sha512-sftHa5qUJY3rs9Zht1WEnmkvXputCyDBczPnr7QDgL8n3qrF3CMXY4VPSYtOLLiOUJcah2WNXREd48iOl6mQIw==",
-      "dev": true,
-      "dependencies": {
-        "browserslist": "^4.22.2"
-      }
-    },
-    "node_modules/cross-env": {
-      "version": "7.0.3",
-      "resolved": "https://registry.npmmirror.com/cross-env/-/cross-env-7.0.3.tgz",
-      "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==",
-      "dev": true,
-      "dependencies": {
-        "cross-spawn": "^7.0.1"
-      },
-      "bin": {
-        "cross-env": "src/bin/cross-env.js",
-        "cross-env-shell": "src/bin/cross-env-shell.js"
-      },
-      "engines": {
-        "node": ">=10.14",
-        "npm": ">=6",
-        "yarn": ">=1"
-      }
-    },
-    "node_modules/cross-spawn": {
-      "version": "7.0.3",
-      "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.3.tgz",
-      "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
-      "dependencies": {
-        "path-key": "^3.1.0",
-        "shebang-command": "^2.0.0",
-        "which": "^2.0.1"
-      },
-      "engines": {
-        "node": ">= 8"
-      }
-    },
-    "node_modules/css-font-size-keywords": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmmirror.com/css-font-size-keywords/-/css-font-size-keywords-1.0.0.tgz",
-      "integrity": "sha512-Q+svMDbMlelgCfH/RVDKtTDaf5021O486ZThQPIpahnIjUkMUslC+WuOQSWTgGSrNCH08Y7tYNEmmy0hkfMI8Q=="
-    },
-    "node_modules/css-font-stretch-keywords": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmmirror.com/css-font-stretch-keywords/-/css-font-stretch-keywords-1.0.1.tgz",
-      "integrity": "sha512-KmugPO2BNqoyp9zmBIUGwt58UQSfyk1X5DbOlkb2pckDXFSAfjsD5wenb88fNrD6fvS+vu90a/tsPpb9vb0SLg=="
-    },
-    "node_modules/css-font-style-keywords": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmmirror.com/css-font-style-keywords/-/css-font-style-keywords-1.0.1.tgz",
-      "integrity": "sha512-0Fn0aTpcDktnR1RzaBYorIxQily85M2KXRpzmxQPgh8pxUN9Fcn00I8u9I3grNr1QXVgCl9T5Imx0ZwKU973Vg=="
-    },
-    "node_modules/css-font-weight-keywords": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmmirror.com/css-font-weight-keywords/-/css-font-weight-keywords-1.0.0.tgz",
-      "integrity": "sha512-5So8/NH+oDD+EzsnF4iaG4ZFHQ3vaViePkL1ZbZ5iC/KrsCY+WHq/lvOgrtmuOQ9pBBZ1ADGpaf+A4lj1Z9eYA=="
-    },
-    "node_modules/css-list-helpers": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmmirror.com/css-list-helpers/-/css-list-helpers-2.0.0.tgz",
-      "integrity": "sha512-9Bj8tZ0jWbAM3u/U6m/boAzAwLPwtjzFvwivr2piSvyVa3K3rChJzQy4RIHkNkKiZCHrEMWDJWtTR8UyVhdDnQ=="
-    },
-    "node_modules/css-system-font-keywords": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmmirror.com/css-system-font-keywords/-/css-system-font-keywords-1.0.0.tgz",
-      "integrity": "sha512-1umTtVd/fXS25ftfjB71eASCrYhilmEsvDEI6wG/QplnmlfmVM5HkZ/ZX46DT5K3eblFPgLUHt5BRCb0YXkSFA=="
-    },
-    "node_modules/cssesc": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmmirror.com/cssesc/-/cssesc-3.0.0.tgz",
-      "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
-      "bin": {
-        "cssesc": "bin/cssesc"
-      },
-      "engines": {
-        "node": ">=4"
-      }
-    },
-    "node_modules/cssom": {
-      "version": "0.4.4",
-      "resolved": "https://registry.npmmirror.com/cssom/-/cssom-0.4.4.tgz",
-      "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==",
-      "dev": true,
-      "peer": true
-    },
-    "node_modules/cssstyle": {
-      "version": "2.3.0",
-      "resolved": "https://registry.npmmirror.com/cssstyle/-/cssstyle-2.3.0.tgz",
-      "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "cssom": "~0.3.6"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/cssstyle/node_modules/cssom": {
-      "version": "0.3.8",
-      "resolved": "https://registry.npmmirror.com/cssom/-/cssom-0.3.8.tgz",
-      "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==",
-      "dev": true,
-      "peer": true
-    },
-    "node_modules/csstype": {
-      "version": "3.1.3",
-      "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.3.tgz",
-      "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="
-    },
-    "node_modules/data-urls": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmmirror.com/data-urls/-/data-urls-2.0.0.tgz",
-      "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "abab": "^2.0.3",
-        "whatwg-mimetype": "^2.3.0",
-        "whatwg-url": "^8.0.0"
-      },
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/dayjs": {
-      "version": "1.11.10",
-      "resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.10.tgz",
-      "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ=="
-    },
-    "node_modules/de-indent": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmmirror.com/de-indent/-/de-indent-1.0.2.tgz",
-      "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==",
-      "dev": true
-    },
-    "node_modules/debug": {
-      "version": "4.3.4",
-      "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz",
-      "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
-      "dependencies": {
-        "ms": "2.1.2"
-      },
-      "engines": {
-        "node": ">=6.0"
-      },
-      "peerDependenciesMeta": {
-        "supports-color": {
-          "optional": true
-        }
-      }
-    },
-    "node_modules/decimal.js": {
-      "version": "10.4.3",
-      "resolved": "https://registry.npmmirror.com/decimal.js/-/decimal.js-10.4.3.tgz",
-      "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==",
-      "dev": true,
-      "peer": true
-    },
-    "node_modules/dedent": {
-      "version": "0.7.0",
-      "resolved": "https://registry.npmmirror.com/dedent/-/dedent-0.7.0.tgz",
-      "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==",
-      "dev": true,
-      "peer": true
-    },
-    "node_modules/deep-is": {
-      "version": "0.1.4",
-      "resolved": "https://registry.npmmirror.com/deep-is/-/deep-is-0.1.4.tgz",
-      "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="
-    },
-    "node_modules/deepmerge": {
-      "version": "4.3.1",
-      "resolved": "https://registry.npmmirror.com/deepmerge/-/deepmerge-4.3.1.tgz",
-      "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==",
-      "dev": true,
-      "peer": true,
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/default-gateway": {
-      "version": "6.0.3",
-      "resolved": "https://registry.npmmirror.com/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/define-data-property": {
-      "version": "1.1.2",
-      "resolved": "https://registry.npmmirror.com/define-data-property/-/define-data-property-1.1.2.tgz",
-      "integrity": "sha512-SRtsSqsDbgpJBbW3pABMCOt6rQyeM8s8RiyeSN8jYG8sYmt/kGJejbydttUsnDs1tadr19tvhT4ShwMyoqAm4g==",
-      "dependencies": {
-        "es-errors": "^1.3.0",
-        "get-intrinsic": "^1.2.2",
-        "gopd": "^1.0.1",
-        "has-property-descriptors": "^1.0.1"
-      },
-      "engines": {
-        "node": ">= 0.4"
-      }
-    },
-    "node_modules/define-properties": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmmirror.com/define-properties/-/define-properties-1.2.1.tgz",
-      "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==",
-      "dev": true,
-      "dependencies": {
-        "define-data-property": "^1.0.1",
-        "has-property-descriptors": "^1.0.0",
-        "object-keys": "^1.1.1"
-      },
-      "engines": {
-        "node": ">= 0.4"
-      }
-    },
-    "node_modules/delayed-stream": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz",
-      "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
-      "dev": true,
-      "peer": true,
-      "engines": {
-        "node": ">=0.4.0"
-      }
-    },
-    "node_modules/depd": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmmirror.com/depd/-/depd-2.0.0.tgz",
-      "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
-      "dev": true,
-      "engines": {
-        "node": ">= 0.8"
-      }
-    },
-    "node_modules/destroy": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmmirror.com/destroy/-/destroy-1.2.0.tgz",
-      "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
-      "dev": true,
-      "engines": {
-        "node": ">= 0.8",
-        "npm": "1.2.8000 || >= 1.4.16"
-      }
-    },
-    "node_modules/detect-newline": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmmirror.com/detect-newline/-/detect-newline-3.1.0.tgz",
-      "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==",
-      "dev": true,
-      "peer": true,
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/diff-sequences": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/diff-sequences/-/diff-sequences-27.5.1.tgz",
-      "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==",
-      "dev": true,
-      "peer": true,
-      "engines": {
-        "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
-      }
-    },
-    "node_modules/dir-glob": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmmirror.com/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/doctrine": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmmirror.com/doctrine/-/doctrine-3.0.0.tgz",
-      "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
-      "dependencies": {
-        "esutils": "^2.0.2"
-      },
-      "engines": {
-        "node": ">=6.0.0"
-      }
-    },
-    "node_modules/dom-walk": {
-      "version": "0.1.2",
-      "resolved": "https://registry.npmmirror.com/dom-walk/-/dom-walk-0.1.2.tgz",
-      "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w=="
-    },
-    "node_modules/domexception": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmmirror.com/domexception/-/domexception-2.0.1.tgz",
-      "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==",
-      "deprecated": "Use your platform's native DOMException instead",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "webidl-conversions": "^5.0.0"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/domexception/node_modules/webidl-conversions": {
-      "version": "5.0.0",
-      "resolved": "https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz",
-      "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==",
-      "dev": true,
-      "peer": true,
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/ee-first": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmmirror.com/ee-first/-/ee-first-1.1.1.tgz",
-      "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==",
-      "dev": true
-    },
-    "node_modules/electron-to-chromium": {
-      "version": "1.4.665",
-      "resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.665.tgz",
-      "integrity": "sha512-UpyCWObBoD+nSZgOC2ToaIdZB0r9GhqT2WahPKiSki6ckkSuKhQNso8V2PrFcHBMleI/eqbKgVQgVC4Wni4ilw=="
-    },
-    "node_modules/emittery": {
-      "version": "0.8.1",
-      "resolved": "https://registry.npmmirror.com/emittery/-/emittery-0.8.1.tgz",
-      "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==",
-      "dev": true,
-      "peer": true,
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/emoji-regex": {
-      "version": "8.0.0",
-      "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz",
-      "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
-      "dev": true,
-      "peer": true
-    },
-    "node_modules/encodeurl": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmmirror.com/encodeurl/-/encodeurl-1.0.2.tgz",
-      "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
-      "dev": true,
-      "engines": {
-        "node": ">= 0.8"
-      }
-    },
-    "node_modules/enhanced-resolve": {
-      "version": "5.15.0",
-      "resolved": "https://registry.npmmirror.com/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz",
-      "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==",
-      "peer": true,
-      "dependencies": {
-        "graceful-fs": "^4.2.4",
-        "tapable": "^2.2.0"
-      },
-      "engines": {
-        "node": ">=10.13.0"
-      }
-    },
-    "node_modules/entities": {
-      "version": "4.5.0",
-      "resolved": "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz",
-      "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
-      "engines": {
-        "node": ">=0.12"
-      }
-    },
-    "node_modules/error-ex": {
-      "version": "1.3.2",
-      "resolved": "https://registry.npmmirror.com/error-ex/-/error-ex-1.3.2.tgz",
-      "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "is-arrayish": "^0.2.1"
-      }
-    },
-    "node_modules/es-abstract": {
-      "version": "1.22.3",
-      "resolved": "https://registry.npmmirror.com/es-abstract/-/es-abstract-1.22.3.tgz",
-      "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==",
-      "dev": true,
-      "dependencies": {
-        "array-buffer-byte-length": "^1.0.0",
-        "arraybuffer.prototype.slice": "^1.0.2",
-        "available-typed-arrays": "^1.0.5",
-        "call-bind": "^1.0.5",
-        "es-set-tostringtag": "^2.0.1",
-        "es-to-primitive": "^1.2.1",
-        "function.prototype.name": "^1.1.6",
-        "get-intrinsic": "^1.2.2",
-        "get-symbol-description": "^1.0.0",
-        "globalthis": "^1.0.3",
-        "gopd": "^1.0.1",
-        "has-property-descriptors": "^1.0.0",
-        "has-proto": "^1.0.1",
-        "has-symbols": "^1.0.3",
-        "hasown": "^2.0.0",
-        "internal-slot": "^1.0.5",
-        "is-array-buffer": "^3.0.2",
-        "is-callable": "^1.2.7",
-        "is-negative-zero": "^2.0.2",
-        "is-regex": "^1.1.4",
-        "is-shared-array-buffer": "^1.0.2",
-        "is-string": "^1.0.7",
-        "is-typed-array": "^1.1.12",
-        "is-weakref": "^1.0.2",
-        "object-inspect": "^1.13.1",
-        "object-keys": "^1.1.1",
-        "object.assign": "^4.1.4",
-        "regexp.prototype.flags": "^1.5.1",
-        "safe-array-concat": "^1.0.1",
-        "safe-regex-test": "^1.0.0",
-        "string.prototype.trim": "^1.2.8",
-        "string.prototype.trimend": "^1.0.7",
-        "string.prototype.trimstart": "^1.0.7",
-        "typed-array-buffer": "^1.0.0",
-        "typed-array-byte-length": "^1.0.0",
-        "typed-array-byte-offset": "^1.0.0",
-        "typed-array-length": "^1.0.4",
-        "unbox-primitive": "^1.0.2",
-        "which-typed-array": "^1.1.13"
-      },
-      "engines": {
-        "node": ">= 0.4"
-      }
-    },
-    "node_modules/es-array-method-boxes-properly": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmmirror.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz",
-      "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==",
-      "dev": true
-    },
-    "node_modules/es-errors": {
-      "version": "1.3.0",
-      "resolved": "https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz",
-      "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
-      "engines": {
-        "node": ">= 0.4"
-      }
-    },
-    "node_modules/es-module-lexer": {
-      "version": "1.4.1",
-      "resolved": "https://registry.npmmirror.com/es-module-lexer/-/es-module-lexer-1.4.1.tgz",
-      "integrity": "sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w=="
-    },
-    "node_modules/es-set-tostringtag": {
-      "version": "2.0.2",
-      "resolved": "https://registry.npmmirror.com/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz",
-      "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==",
-      "dev": true,
-      "dependencies": {
-        "get-intrinsic": "^1.2.2",
-        "has-tostringtag": "^1.0.0",
-        "hasown": "^2.0.0"
-      },
-      "engines": {
-        "node": ">= 0.4"
-      }
-    },
-    "node_modules/es-shim-unscopables": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmmirror.com/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz",
-      "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==",
-      "dev": true,
-      "dependencies": {
-        "hasown": "^2.0.0"
-      }
-    },
-    "node_modules/es-to-primitive": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmmirror.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
-      "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
-      "dev": true,
-      "dependencies": {
-        "is-callable": "^1.1.4",
-        "is-date-object": "^1.0.1",
-        "is-symbol": "^1.0.2"
-      },
-      "engines": {
-        "node": ">= 0.4"
-      }
-    },
-    "node_modules/esbuild": {
-      "version": "0.17.19",
-      "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.17.19.tgz",
-      "integrity": "sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==",
-      "hasInstallScript": true,
-      "bin": {
-        "esbuild": "bin/esbuild"
-      },
-      "engines": {
-        "node": ">=12"
-      },
-      "optionalDependencies": {
-        "@esbuild/android-arm": "0.17.19",
-        "@esbuild/android-arm64": "0.17.19",
-        "@esbuild/android-x64": "0.17.19",
-        "@esbuild/darwin-arm64": "0.17.19",
-        "@esbuild/darwin-x64": "0.17.19",
-        "@esbuild/freebsd-arm64": "0.17.19",
-        "@esbuild/freebsd-x64": "0.17.19",
-        "@esbuild/linux-arm": "0.17.19",
-        "@esbuild/linux-arm64": "0.17.19",
-        "@esbuild/linux-ia32": "0.17.19",
-        "@esbuild/linux-loong64": "0.17.19",
-        "@esbuild/linux-mips64el": "0.17.19",
-        "@esbuild/linux-ppc64": "0.17.19",
-        "@esbuild/linux-riscv64": "0.17.19",
-        "@esbuild/linux-s390x": "0.17.19",
-        "@esbuild/linux-x64": "0.17.19",
-        "@esbuild/netbsd-x64": "0.17.19",
-        "@esbuild/openbsd-x64": "0.17.19",
-        "@esbuild/sunos-x64": "0.17.19",
-        "@esbuild/win32-arm64": "0.17.19",
-        "@esbuild/win32-ia32": "0.17.19",
-        "@esbuild/win32-x64": "0.17.19"
-      }
-    },
-    "node_modules/escalade": {
-      "version": "3.1.2",
-      "resolved": "https://registry.npmmirror.com/escalade/-/escalade-3.1.2.tgz",
-      "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==",
-      "engines": {
-        "node": ">=6"
-      }
-    },
-    "node_modules/escape-html": {
-      "version": "1.0.3",
-      "resolved": "https://registry.npmmirror.com/escape-html/-/escape-html-1.0.3.tgz",
-      "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==",
-      "dev": true
-    },
-    "node_modules/escape-string-regexp": {
-      "version": "1.0.5",
-      "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
-      "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
-      "engines": {
-        "node": ">=0.8.0"
-      }
-    },
-    "node_modules/escodegen": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmmirror.com/escodegen/-/escodegen-2.1.0.tgz",
-      "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "esprima": "^4.0.1",
-        "estraverse": "^5.2.0",
-        "esutils": "^2.0.2"
-      },
-      "bin": {
-        "escodegen": "bin/escodegen.js",
-        "esgenerate": "bin/esgenerate.js"
-      },
-      "engines": {
-        "node": ">=6.0"
-      },
-      "optionalDependencies": {
-        "source-map": "~0.6.1"
-      }
-    },
-    "node_modules/eslint": {
-      "version": "8.56.0",
-      "resolved": "https://registry.npmmirror.com/eslint/-/eslint-8.56.0.tgz",
-      "integrity": "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==",
-      "dependencies": {
-        "@eslint-community/eslint-utils": "^4.2.0",
-        "@eslint-community/regexpp": "^4.6.1",
-        "@eslint/eslintrc": "^2.1.4",
-        "@eslint/js": "8.56.0",
-        "@humanwhocodes/config-array": "^0.11.13",
-        "@humanwhocodes/module-importer": "^1.0.1",
-        "@nodelib/fs.walk": "^1.2.8",
-        "@ungap/structured-clone": "^1.2.0",
-        "ajv": "^6.12.4",
-        "chalk": "^4.0.0",
-        "cross-spawn": "^7.0.2",
-        "debug": "^4.3.2",
-        "doctrine": "^3.0.0",
-        "escape-string-regexp": "^4.0.0",
-        "eslint-scope": "^7.2.2",
-        "eslint-visitor-keys": "^3.4.3",
-        "espree": "^9.6.1",
-        "esquery": "^1.4.2",
-        "esutils": "^2.0.2",
-        "fast-deep-equal": "^3.1.3",
-        "file-entry-cache": "^6.0.1",
-        "find-up": "^5.0.0",
-        "glob-parent": "^6.0.2",
-        "globals": "^13.19.0",
-        "graphemer": "^1.4.0",
-        "ignore": "^5.2.0",
-        "imurmurhash": "^0.1.4",
-        "is-glob": "^4.0.0",
-        "is-path-inside": "^3.0.3",
-        "js-yaml": "^4.1.0",
-        "json-stable-stringify-without-jsonify": "^1.0.1",
-        "levn": "^0.4.1",
-        "lodash.merge": "^4.6.2",
-        "minimatch": "^3.1.2",
-        "natural-compare": "^1.4.0",
-        "optionator": "^0.9.3",
-        "strip-ansi": "^6.0.1",
-        "text-table": "^0.2.0"
-      },
-      "bin": {
-        "eslint": "bin/eslint.js"
-      },
-      "engines": {
-        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
-      }
-    },
-    "node_modules/eslint-compat-utils": {
-      "version": "0.1.2",
-      "resolved": "https://registry.npmmirror.com/eslint-compat-utils/-/eslint-compat-utils-0.1.2.tgz",
-      "integrity": "sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==",
-      "dev": true,
-      "engines": {
-        "node": ">=12"
-      },
-      "peerDependencies": {
-        "eslint": ">=6.0.0"
-      }
-    },
-    "node_modules/eslint-config-prettier": {
-      "version": "9.1.0",
-      "resolved": "https://registry.npmmirror.com/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz",
-      "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==",
-      "bin": {
-        "eslint-config-prettier": "bin/cli.js"
-      },
-      "peerDependencies": {
-        "eslint": ">=7.0.0"
-      }
-    },
-    "node_modules/eslint-config-standard": {
-      "version": "17.1.0",
-      "resolved": "https://registry.npmmirror.com/eslint-config-standard/-/eslint-config-standard-17.1.0.tgz",
-      "integrity": "sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==",
-      "dev": true,
-      "engines": {
-        "node": ">=12.0.0"
-      },
-      "peerDependencies": {
-        "eslint": "^8.0.1",
-        "eslint-plugin-import": "^2.25.2",
-        "eslint-plugin-n": "^15.0.0 || ^16.0.0 ",
-        "eslint-plugin-promise": "^6.0.0"
-      }
-    },
-    "node_modules/eslint-config-standard-with-typescript": {
-      "version": "39.1.1",
-      "resolved": "https://registry.npmmirror.com/eslint-config-standard-with-typescript/-/eslint-config-standard-with-typescript-39.1.1.tgz",
-      "integrity": "sha512-t6B5Ep8E4I18uuoYeYxINyqcXb2UbC0SOOTxRtBSt2JUs+EzeXbfe2oaiPs71AIdnoWhXDO2fYOHz8df3kV84A==",
-      "dev": true,
-      "dependencies": {
-        "@typescript-eslint/parser": "^6.4.0",
-        "eslint-config-standard": "17.1.0"
-      },
-      "peerDependencies": {
-        "@typescript-eslint/eslint-plugin": "^6.4.0",
-        "eslint": "^8.0.1",
-        "eslint-plugin-import": "^2.25.2",
-        "eslint-plugin-n": "^15.0.0 || ^16.0.0 ",
-        "eslint-plugin-promise": "^6.0.0",
-        "typescript": "*"
-      }
-    },
-    "node_modules/eslint-import-resolver-node": {
-      "version": "0.3.9",
-      "resolved": "https://registry.npmmirror.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz",
-      "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==",
-      "dev": true,
-      "dependencies": {
-        "debug": "^3.2.7",
-        "is-core-module": "^2.13.0",
-        "resolve": "^1.22.4"
-      }
-    },
-    "node_modules/eslint-import-resolver-node/node_modules/debug": {
-      "version": "3.2.7",
-      "resolved": "https://registry.npmmirror.com/debug/-/debug-3.2.7.tgz",
-      "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
-      "dev": true,
-      "dependencies": {
-        "ms": "^2.1.1"
-      }
-    },
-    "node_modules/eslint-module-utils": {
-      "version": "2.8.0",
-      "resolved": "https://registry.npmmirror.com/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz",
-      "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==",
-      "dev": true,
-      "dependencies": {
-        "debug": "^3.2.7"
-      },
-      "engines": {
-        "node": ">=4"
-      },
-      "peerDependenciesMeta": {
-        "eslint": {
-          "optional": true
-        }
-      }
-    },
-    "node_modules/eslint-module-utils/node_modules/debug": {
-      "version": "3.2.7",
-      "resolved": "https://registry.npmmirror.com/debug/-/debug-3.2.7.tgz",
-      "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
-      "dev": true,
-      "dependencies": {
-        "ms": "^2.1.1"
-      }
-    },
-    "node_modules/eslint-plugin-es-x": {
-      "version": "7.5.0",
-      "resolved": "https://registry.npmmirror.com/eslint-plugin-es-x/-/eslint-plugin-es-x-7.5.0.tgz",
-      "integrity": "sha512-ODswlDSO0HJDzXU0XvgZ3lF3lS3XAZEossh15Q2UHjwrJggWeBoKqqEsLTZLXl+dh5eOAozG0zRcYtuE35oTuQ==",
-      "dev": true,
-      "dependencies": {
-        "@eslint-community/eslint-utils": "^4.1.2",
-        "@eslint-community/regexpp": "^4.6.0",
-        "eslint-compat-utils": "^0.1.2"
-      },
-      "engines": {
-        "node": "^14.18.0 || >=16.0.0"
-      },
-      "peerDependencies": {
-        "eslint": ">=8"
-      }
-    },
-    "node_modules/eslint-plugin-import": {
-      "version": "2.29.1",
-      "resolved": "https://registry.npmmirror.com/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz",
-      "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==",
-      "dev": true,
-      "dependencies": {
-        "array-includes": "^3.1.7",
-        "array.prototype.findlastindex": "^1.2.3",
-        "array.prototype.flat": "^1.3.2",
-        "array.prototype.flatmap": "^1.3.2",
-        "debug": "^3.2.7",
-        "doctrine": "^2.1.0",
-        "eslint-import-resolver-node": "^0.3.9",
-        "eslint-module-utils": "^2.8.0",
-        "hasown": "^2.0.0",
-        "is-core-module": "^2.13.1",
-        "is-glob": "^4.0.3",
-        "minimatch": "^3.1.2",
-        "object.fromentries": "^2.0.7",
-        "object.groupby": "^1.0.1",
-        "object.values": "^1.1.7",
-        "semver": "^6.3.1",
-        "tsconfig-paths": "^3.15.0"
-      },
-      "engines": {
-        "node": ">=4"
-      },
-      "peerDependencies": {
-        "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8"
-      }
-    },
-    "node_modules/eslint-plugin-import/node_modules/brace-expansion": {
-      "version": "1.1.11",
-      "resolved": "https://registry.npmmirror.com/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/eslint-plugin-import/node_modules/debug": {
-      "version": "3.2.7",
-      "resolved": "https://registry.npmmirror.com/debug/-/debug-3.2.7.tgz",
-      "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
-      "dev": true,
-      "dependencies": {
-        "ms": "^2.1.1"
-      }
-    },
-    "node_modules/eslint-plugin-import/node_modules/doctrine": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmmirror.com/doctrine/-/doctrine-2.1.0.tgz",
-      "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
-      "dev": true,
-      "dependencies": {
-        "esutils": "^2.0.2"
-      },
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/eslint-plugin-import/node_modules/minimatch": {
-      "version": "3.1.2",
-      "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz",
-      "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
-      "dev": true,
-      "dependencies": {
-        "brace-expansion": "^1.1.7"
-      },
-      "engines": {
-        "node": "*"
-      }
-    },
-    "node_modules/eslint-plugin-n": {
-      "version": "16.6.2",
-      "resolved": "https://registry.npmmirror.com/eslint-plugin-n/-/eslint-plugin-n-16.6.2.tgz",
-      "integrity": "sha512-6TyDmZ1HXoFQXnhCTUjVFULReoBPOAjpuiKELMkeP40yffI/1ZRO+d9ug/VC6fqISo2WkuIBk3cvuRPALaWlOQ==",
-      "dev": true,
-      "dependencies": {
-        "@eslint-community/eslint-utils": "^4.4.0",
-        "builtins": "^5.0.1",
-        "eslint-plugin-es-x": "^7.5.0",
-        "get-tsconfig": "^4.7.0",
-        "globals": "^13.24.0",
-        "ignore": "^5.2.4",
-        "is-builtin-module": "^3.2.1",
-        "is-core-module": "^2.12.1",
-        "minimatch": "^3.1.2",
-        "resolve": "^1.22.2",
-        "semver": "^7.5.3"
-      },
-      "engines": {
-        "node": ">=16.0.0"
-      },
-      "peerDependencies": {
-        "eslint": ">=7.0.0"
-      }
-    },
-    "node_modules/eslint-plugin-n/node_modules/brace-expansion": {
-      "version": "1.1.11",
-      "resolved": "https://registry.npmmirror.com/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/eslint-plugin-n/node_modules/globals": {
-      "version": "13.24.0",
-      "resolved": "https://registry.npmmirror.com/globals/-/globals-13.24.0.tgz",
-      "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
-      "dev": true,
-      "dependencies": {
-        "type-fest": "^0.20.2"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/eslint-plugin-n/node_modules/lru-cache": {
-      "version": "6.0.0",
-      "resolved": "https://registry.npmmirror.com/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/eslint-plugin-n/node_modules/minimatch": {
-      "version": "3.1.2",
-      "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz",
-      "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
-      "dev": true,
-      "dependencies": {
-        "brace-expansion": "^1.1.7"
-      },
-      "engines": {
-        "node": "*"
-      }
-    },
-    "node_modules/eslint-plugin-n/node_modules/semver": {
-      "version": "7.6.0",
-      "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.0.tgz",
-      "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
-      "dev": true,
-      "dependencies": {
-        "lru-cache": "^6.0.0"
-      },
-      "bin": {
-        "semver": "bin/semver.js"
-      },
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/eslint-plugin-n/node_modules/type-fest": {
-      "version": "0.20.2",
-      "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-0.20.2.tgz",
-      "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
-      "dev": true,
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/eslint-plugin-n/node_modules/yallist": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz",
-      "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
-      "dev": true
-    },
-    "node_modules/eslint-plugin-prettier": {
-      "version": "5.1.3",
-      "resolved": "https://registry.npmmirror.com/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.3.tgz",
-      "integrity": "sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==",
-      "dependencies": {
-        "prettier-linter-helpers": "^1.0.0",
-        "synckit": "^0.8.6"
-      },
-      "engines": {
-        "node": "^14.18.0 || >=16.0.0"
-      },
-      "peerDependencies": {
-        "@types/eslint": ">=8.0.0",
-        "eslint": ">=8.0.0",
-        "eslint-config-prettier": "*",
-        "prettier": ">=3.0.0"
-      },
-      "peerDependenciesMeta": {
-        "@types/eslint": {
-          "optional": true
-        },
-        "eslint-config-prettier": {
-          "optional": true
-        }
-      }
-    },
-    "node_modules/eslint-plugin-promise": {
-      "version": "6.1.1",
-      "resolved": "https://registry.npmmirror.com/eslint-plugin-promise/-/eslint-plugin-promise-6.1.1.tgz",
-      "integrity": "sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==",
-      "dev": true,
-      "engines": {
-        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
-      },
-      "peerDependencies": {
-        "eslint": "^7.0.0 || ^8.0.0"
-      }
-    },
-    "node_modules/eslint-plugin-vue": {
-      "version": "9.21.1",
-      "resolved": "https://registry.npmmirror.com/eslint-plugin-vue/-/eslint-plugin-vue-9.21.1.tgz",
-      "integrity": "sha512-XVtI7z39yOVBFJyi8Ljbn7kY9yHzznKXL02qQYn+ta63Iy4A9JFBw6o4OSB9hyD2++tVT+su9kQqetUyCCwhjw==",
-      "dev": true,
-      "dependencies": {
-        "@eslint-community/eslint-utils": "^4.4.0",
-        "natural-compare": "^1.4.0",
-        "nth-check": "^2.1.1",
-        "postcss-selector-parser": "^6.0.13",
-        "semver": "^7.5.4",
-        "vue-eslint-parser": "^9.4.2",
-        "xml-name-validator": "^4.0.0"
-      },
-      "engines": {
-        "node": "^14.17.0 || >=16.0.0"
-      },
-      "peerDependencies": {
-        "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0"
-      }
-    },
-    "node_modules/eslint-plugin-vue/node_modules/lru-cache": {
-      "version": "6.0.0",
-      "resolved": "https://registry.npmmirror.com/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/eslint-plugin-vue/node_modules/semver": {
-      "version": "7.6.0",
-      "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.0.tgz",
-      "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
-      "dev": true,
-      "dependencies": {
-        "lru-cache": "^6.0.0"
-      },
-      "bin": {
-        "semver": "bin/semver.js"
-      },
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/eslint-plugin-vue/node_modules/yallist": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz",
-      "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
-      "dev": true
-    },
-    "node_modules/eslint-scope": {
-      "version": "7.2.2",
-      "resolved": "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-7.2.2.tgz",
-      "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==",
-      "dependencies": {
-        "esrecurse": "^4.3.0",
-        "estraverse": "^5.2.0"
-      },
-      "engines": {
-        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
-      }
-    },
-    "node_modules/eslint-visitor-keys": {
-      "version": "3.4.3",
-      "resolved": "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
-      "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
-      "engines": {
-        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
-      }
-    },
-    "node_modules/eslint/node_modules/ansi-styles": {
-      "version": "4.3.0",
-      "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
-      "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
-      "dependencies": {
-        "color-convert": "^2.0.1"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/eslint/node_modules/brace-expansion": {
-      "version": "1.1.11",
-      "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz",
-      "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
-      "dependencies": {
-        "balanced-match": "^1.0.0",
-        "concat-map": "0.0.1"
-      }
-    },
-    "node_modules/eslint/node_modules/chalk": {
-      "version": "4.1.2",
-      "resolved": "https://registry.npmmirror.com/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"
-      }
-    },
-    "node_modules/eslint/node_modules/color-convert": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmmirror.com/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/eslint/node_modules/color-name": {
-      "version": "1.1.4",
-      "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
-      "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
-    },
-    "node_modules/eslint/node_modules/escape-string-regexp": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
-      "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/eslint/node_modules/glob-parent": {
-      "version": "6.0.2",
-      "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-6.0.2.tgz",
-      "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
-      "dependencies": {
-        "is-glob": "^4.0.3"
-      },
-      "engines": {
-        "node": ">=10.13.0"
-      }
-    },
-    "node_modules/eslint/node_modules/globals": {
-      "version": "13.24.0",
-      "resolved": "https://registry.npmmirror.com/globals/-/globals-13.24.0.tgz",
-      "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
-      "dependencies": {
-        "type-fest": "^0.20.2"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/eslint/node_modules/has-flag": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
-      "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/eslint/node_modules/minimatch": {
-      "version": "3.1.2",
-      "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz",
-      "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
-      "dependencies": {
-        "brace-expansion": "^1.1.7"
-      },
-      "engines": {
-        "node": "*"
-      }
-    },
-    "node_modules/eslint/node_modules/supports-color": {
-      "version": "7.2.0",
-      "resolved": "https://registry.npmmirror.com/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/eslint/node_modules/type-fest": {
-      "version": "0.20.2",
-      "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-0.20.2.tgz",
-      "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/espree": {
-      "version": "9.6.1",
-      "resolved": "https://registry.npmmirror.com/espree/-/espree-9.6.1.tgz",
-      "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==",
-      "dependencies": {
-        "acorn": "^8.9.0",
-        "acorn-jsx": "^5.3.2",
-        "eslint-visitor-keys": "^3.4.1"
-      },
-      "engines": {
-        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
-      }
-    },
-    "node_modules/esprima": {
-      "version": "4.0.1",
-      "resolved": "https://registry.npmmirror.com/esprima/-/esprima-4.0.1.tgz",
-      "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
-      "dev": true,
-      "peer": true,
-      "bin": {
-        "esparse": "bin/esparse.js",
-        "esvalidate": "bin/esvalidate.js"
-      },
-      "engines": {
-        "node": ">=4"
-      }
-    },
-    "node_modules/esquery": {
-      "version": "1.5.0",
-      "resolved": "https://registry.npmmirror.com/esquery/-/esquery-1.5.0.tgz",
-      "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==",
-      "dependencies": {
-        "estraverse": "^5.1.0"
-      },
-      "engines": {
-        "node": ">=0.10"
-      }
-    },
-    "node_modules/esrecurse": {
-      "version": "4.3.0",
-      "resolved": "https://registry.npmmirror.com/esrecurse/-/esrecurse-4.3.0.tgz",
-      "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
-      "dependencies": {
-        "estraverse": "^5.2.0"
-      },
-      "engines": {
-        "node": ">=4.0"
-      }
-    },
-    "node_modules/estraverse": {
-      "version": "5.3.0",
-      "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz",
-      "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
-      "engines": {
-        "node": ">=4.0"
-      }
-    },
-    "node_modules/estree-walker": {
-      "version": "2.0.2",
-      "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz",
-      "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
-    },
-    "node_modules/esutils": {
-      "version": "2.0.3",
-      "resolved": "https://registry.npmmirror.com/esutils/-/esutils-2.0.3.tgz",
-      "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/etag": {
-      "version": "1.8.1",
-      "resolved": "https://registry.npmmirror.com/etag/-/etag-1.8.1.tgz",
-      "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
-      "dev": true,
-      "engines": {
-        "node": ">= 0.6"
-      }
-    },
-    "node_modules/events": {
-      "version": "3.3.0",
-      "resolved": "https://registry.npmmirror.com/events/-/events-3.3.0.tgz",
-      "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
-      "peer": true,
-      "engines": {
-        "node": ">=0.8.x"
-      }
-    },
-    "node_modules/execa": {
-      "version": "5.1.1",
-      "resolved": "https://registry.npmmirror.com/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"
-      }
-    },
-    "node_modules/exif-parser": {
-      "version": "0.1.12",
-      "resolved": "https://registry.npmmirror.com/exif-parser/-/exif-parser-0.1.12.tgz",
-      "integrity": "sha512-c2bQfLNbMzLPmzQuOr8fy0csy84WmwnER81W88DzTp9CYNPJ6yzOj2EZAh9pywYpqHnshVLHQJ8WzldAyfY+Iw=="
-    },
-    "node_modules/exit": {
-      "version": "0.1.2",
-      "resolved": "https://registry.npmmirror.com/exit/-/exit-0.1.2.tgz",
-      "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==",
-      "dev": true,
-      "peer": true,
-      "engines": {
-        "node": ">= 0.8.0"
-      }
-    },
-    "node_modules/expect": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/expect/-/expect-27.5.1.tgz",
-      "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "@jest/types": "^27.5.1",
-        "jest-get-type": "^27.5.1",
-        "jest-matcher-utils": "^27.5.1",
-        "jest-message-util": "^27.5.1"
-      },
-      "engines": {
-        "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
-      }
-    },
-    "node_modules/express": {
-      "version": "4.18.2",
-      "resolved": "https://registry.npmmirror.com/express/-/express-4.18.2.tgz",
-      "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==",
-      "dev": true,
-      "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.npmmirror.com/debug/-/debug-2.6.9.tgz",
-      "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
-      "dev": true,
-      "dependencies": {
-        "ms": "2.0.0"
-      }
-    },
-    "node_modules/express/node_modules/ms": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz",
-      "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
-      "dev": true
-    },
-    "node_modules/express/node_modules/qs": {
-      "version": "6.11.0",
-      "resolved": "https://registry.npmmirror.com/qs/-/qs-6.11.0.tgz",
-      "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
-      "dev": true,
-      "dependencies": {
-        "side-channel": "^1.0.4"
-      },
-      "engines": {
-        "node": ">=0.6"
-      }
-    },
-    "node_modules/fast-deep-equal": {
-      "version": "3.1.3",
-      "resolved": "https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
-      "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
-    },
-    "node_modules/fast-diff": {
-      "version": "1.3.0",
-      "resolved": "https://registry.npmmirror.com/fast-diff/-/fast-diff-1.3.0.tgz",
-      "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw=="
-    },
-    "node_modules/fast-glob": {
-      "version": "3.3.2",
-      "resolved": "https://registry.npmmirror.com/fast-glob/-/fast-glob-3.3.2.tgz",
-      "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
-      "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.npmmirror.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
-      "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
-    },
-    "node_modules/fast-levenshtein": {
-      "version": "2.0.6",
-      "resolved": "https://registry.npmmirror.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
-      "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw=="
-    },
-    "node_modules/fastq": {
-      "version": "1.17.1",
-      "resolved": "https://registry.npmmirror.com/fastq/-/fastq-1.17.1.tgz",
-      "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==",
-      "dependencies": {
-        "reusify": "^1.0.4"
-      }
-    },
-    "node_modules/fb-watchman": {
-      "version": "2.0.2",
-      "resolved": "https://registry.npmmirror.com/fb-watchman/-/fb-watchman-2.0.2.tgz",
-      "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "bser": "2.1.1"
-      }
-    },
-    "node_modules/file-entry-cache": {
-      "version": "6.0.1",
-      "resolved": "https://registry.npmmirror.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
-      "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
-      "dependencies": {
-        "flat-cache": "^3.0.4"
-      },
-      "engines": {
-        "node": "^10.12.0 || >=12.0.0"
-      }
-    },
-    "node_modules/file-type": {
-      "version": "9.0.0",
-      "resolved": "https://registry.npmmirror.com/file-type/-/file-type-9.0.0.tgz",
-      "integrity": "sha512-Qe/5NJrgIOlwijpq3B7BEpzPFcgzggOTagZmkXQY4LA6bsXKTUstK7Wp12lEJ/mLKTpvIZxmIuRcLYWT6ov9lw==",
-      "engines": {
-        "node": ">=6"
-      }
-    },
-    "node_modules/fill-range": {
-      "version": "7.0.1",
-      "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz",
-      "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
-      "dependencies": {
-        "to-regex-range": "^5.0.1"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/finalhandler": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmmirror.com/finalhandler/-/finalhandler-1.2.0.tgz",
-      "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==",
-      "dev": true,
-      "dependencies": {
-        "debug": "2.6.9",
-        "encodeurl": "~1.0.2",
-        "escape-html": "~1.0.3",
-        "on-finished": "2.4.1",
-        "parseurl": "~1.3.3",
-        "statuses": "2.0.1",
-        "unpipe": "~1.0.0"
-      },
-      "engines": {
-        "node": ">= 0.8"
-      }
-    },
-    "node_modules/finalhandler/node_modules/debug": {
-      "version": "2.6.9",
-      "resolved": "https://registry.npmmirror.com/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.npmmirror.com/ms/-/ms-2.0.0.tgz",
-      "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
-      "dev": true
-    },
-    "node_modules/find-up": {
-      "version": "5.0.0",
-      "resolved": "https://registry.npmmirror.com/find-up/-/find-up-5.0.0.tgz",
-      "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
-      "dependencies": {
-        "locate-path": "^6.0.0",
-        "path-exists": "^4.0.0"
-      },
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/flat-cache": {
-      "version": "3.2.0",
-      "resolved": "https://registry.npmmirror.com/flat-cache/-/flat-cache-3.2.0.tgz",
-      "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==",
-      "dependencies": {
-        "flatted": "^3.2.9",
-        "keyv": "^4.5.3",
-        "rimraf": "^3.0.2"
-      },
-      "engines": {
-        "node": "^10.12.0 || >=12.0.0"
-      }
-    },
-    "node_modules/flatted": {
-      "version": "3.2.9",
-      "resolved": "https://registry.npmmirror.com/flatted/-/flatted-3.2.9.tgz",
-      "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ=="
-    },
-    "node_modules/for-each": {
-      "version": "0.3.3",
-      "resolved": "https://registry.npmmirror.com/for-each/-/for-each-0.3.3.tgz",
-      "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
-      "dev": true,
-      "dependencies": {
-        "is-callable": "^1.1.3"
-      }
-    },
-    "node_modules/form-data": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmmirror.com/form-data/-/form-data-3.0.1.tgz",
-      "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "asynckit": "^0.4.0",
-        "combined-stream": "^1.0.8",
-        "mime-types": "^2.1.12"
-      },
-      "engines": {
-        "node": ">= 6"
-      }
-    },
-    "node_modules/forwarded": {
-      "version": "0.2.0",
-      "resolved": "https://registry.npmmirror.com/forwarded/-/forwarded-0.2.0.tgz",
-      "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
-      "dev": true,
-      "engines": {
-        "node": ">= 0.6"
-      }
-    },
-    "node_modules/fraction.js": {
-      "version": "4.3.7",
-      "resolved": "https://registry.npmmirror.com/fraction.js/-/fraction.js-4.3.7.tgz",
-      "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==",
-      "engines": {
-        "node": "*"
-      }
-    },
-    "node_modules/fresh": {
-      "version": "0.5.2",
-      "resolved": "https://registry.npmmirror.com/fresh/-/fresh-0.5.2.tgz",
-      "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
-      "dev": true,
-      "engines": {
-        "node": ">= 0.6"
-      }
-    },
-    "node_modules/fs-extra": {
-      "version": "10.1.0",
-      "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-10.1.0.tgz",
-      "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
-      "dependencies": {
-        "graceful-fs": "^4.2.0",
-        "jsonfile": "^6.0.1",
-        "universalify": "^2.0.0"
-      },
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/fs.realpath": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz",
-      "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
-    },
-    "node_modules/function-bind": {
-      "version": "1.1.2",
-      "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz",
-      "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA=="
-    },
-    "node_modules/function.prototype.name": {
-      "version": "1.1.6",
-      "resolved": "https://registry.npmmirror.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz",
-      "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==",
-      "dev": true,
-      "dependencies": {
-        "call-bind": "^1.0.2",
-        "define-properties": "^1.2.0",
-        "es-abstract": "^1.22.1",
-        "functions-have-names": "^1.2.3"
-      },
-      "engines": {
-        "node": ">= 0.4"
-      }
-    },
-    "node_modules/functions-have-names": {
-      "version": "1.2.3",
-      "resolved": "https://registry.npmmirror.com/functions-have-names/-/functions-have-names-1.2.3.tgz",
-      "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==",
-      "dev": true
-    },
-    "node_modules/generic-names": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmmirror.com/generic-names/-/generic-names-4.0.0.tgz",
-      "integrity": "sha512-ySFolZQfw9FoDb3ed9d80Cm9f0+r7qj+HJkWjeD9RBfpxEVTlVhol+gvaQB/78WbwYfbnNh8nWHHBSlg072y6A==",
-      "dependencies": {
-        "loader-utils": "^3.2.0"
-      }
-    },
-    "node_modules/gensync": {
-      "version": "1.0.0-beta.2",
-      "resolved": "https://registry.npmmirror.com/gensync/-/gensync-1.0.0-beta.2.tgz",
-      "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
-      "engines": {
-        "node": ">=6.9.0"
-      }
-    },
-    "node_modules/get-caller-file": {
-      "version": "2.0.5",
-      "resolved": "https://registry.npmmirror.com/get-caller-file/-/get-caller-file-2.0.5.tgz",
-      "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
-      "dev": true,
-      "peer": true,
-      "engines": {
-        "node": "6.* || 8.* || >= 10.*"
-      }
-    },
-    "node_modules/get-intrinsic": {
-      "version": "1.2.4",
-      "resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz",
-      "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==",
-      "dependencies": {
-        "es-errors": "^1.3.0",
-        "function-bind": "^1.1.2",
-        "has-proto": "^1.0.1",
-        "has-symbols": "^1.0.3",
-        "hasown": "^2.0.0"
-      },
-      "engines": {
-        "node": ">= 0.4"
-      }
-    },
-    "node_modules/get-package-type": {
-      "version": "0.1.0",
-      "resolved": "https://registry.npmmirror.com/get-package-type/-/get-package-type-0.1.0.tgz",
-      "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==",
-      "dev": true,
-      "peer": true,
-      "engines": {
-        "node": ">=8.0.0"
-      }
-    },
-    "node_modules/get-stream": {
-      "version": "6.0.1",
-      "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-6.0.1.tgz",
-      "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
-      "dev": true,
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/get-symbol-description": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmmirror.com/get-symbol-description/-/get-symbol-description-1.0.2.tgz",
-      "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==",
-      "dev": true,
-      "dependencies": {
-        "call-bind": "^1.0.5",
-        "es-errors": "^1.3.0",
-        "get-intrinsic": "^1.2.4"
-      },
-      "engines": {
-        "node": ">= 0.4"
-      }
-    },
-    "node_modules/get-tsconfig": {
-      "version": "4.7.2",
-      "resolved": "https://registry.npmmirror.com/get-tsconfig/-/get-tsconfig-4.7.2.tgz",
-      "integrity": "sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==",
-      "dev": true,
-      "dependencies": {
-        "resolve-pkg-maps": "^1.0.0"
-      }
-    },
-    "node_modules/glob": {
-      "version": "7.2.3",
-      "resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz",
-      "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
-      "dependencies": {
-        "fs.realpath": "^1.0.0",
-        "inflight": "^1.0.4",
-        "inherits": "2",
-        "minimatch": "^3.1.1",
-        "once": "^1.3.0",
-        "path-is-absolute": "^1.0.0"
-      },
-      "engines": {
-        "node": "*"
-      }
-    },
-    "node_modules/glob-parent": {
-      "version": "5.1.2",
-      "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz",
-      "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
-      "dependencies": {
-        "is-glob": "^4.0.1"
-      },
-      "engines": {
-        "node": ">= 6"
-      }
-    },
-    "node_modules/glob-to-regexp": {
-      "version": "0.4.1",
-      "resolved": "https://registry.npmmirror.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz",
-      "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==",
-      "peer": true
-    },
-    "node_modules/glob/node_modules/brace-expansion": {
-      "version": "1.1.11",
-      "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz",
-      "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
-      "dependencies": {
-        "balanced-match": "^1.0.0",
-        "concat-map": "0.0.1"
-      }
-    },
-    "node_modules/glob/node_modules/minimatch": {
-      "version": "3.1.2",
-      "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz",
-      "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
-      "dependencies": {
-        "brace-expansion": "^1.1.7"
-      },
-      "engines": {
-        "node": "*"
-      }
-    },
-    "node_modules/global": {
-      "version": "4.4.0",
-      "resolved": "https://registry.npmmirror.com/global/-/global-4.4.0.tgz",
-      "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==",
-      "dependencies": {
-        "min-document": "^2.19.0",
-        "process": "^0.11.10"
-      }
-    },
-    "node_modules/globals": {
-      "version": "11.12.0",
-      "resolved": "https://registry.npmmirror.com/globals/-/globals-11.12.0.tgz",
-      "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
-      "engines": {
-        "node": ">=4"
-      }
-    },
-    "node_modules/globalthis": {
-      "version": "1.0.3",
-      "resolved": "https://registry.npmmirror.com/globalthis/-/globalthis-1.0.3.tgz",
-      "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==",
-      "dev": true,
-      "dependencies": {
-        "define-properties": "^1.1.3"
-      },
-      "engines": {
-        "node": ">= 0.4"
-      }
-    },
-    "node_modules/globby": {
-      "version": "11.1.0",
-      "resolved": "https://registry.npmmirror.com/globby/-/globby-11.1.0.tgz",
-      "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
-      "dev": true,
-      "dependencies": {
-        "array-union": "^2.1.0",
-        "dir-glob": "^3.0.1",
-        "fast-glob": "^3.2.9",
-        "ignore": "^5.2.0",
-        "merge2": "^1.4.1",
-        "slash": "^3.0.0"
-      },
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/gopd": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmmirror.com/gopd/-/gopd-1.0.1.tgz",
-      "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
-      "dependencies": {
-        "get-intrinsic": "^1.1.3"
-      }
-    },
-    "node_modules/graceful-fs": {
-      "version": "4.2.11",
-      "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz",
-      "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="
-    },
-    "node_modules/graphemer": {
-      "version": "1.4.0",
-      "resolved": "https://registry.npmmirror.com/graphemer/-/graphemer-1.4.0.tgz",
-      "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag=="
-    },
-    "node_modules/has-bigints": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmmirror.com/has-bigints/-/has-bigints-1.0.2.tgz",
-      "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==",
-      "dev": true
-    },
-    "node_modules/has-flag": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-3.0.0.tgz",
-      "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
-      "engines": {
-        "node": ">=4"
-      }
-    },
-    "node_modules/has-property-descriptors": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz",
-      "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==",
-      "dependencies": {
-        "get-intrinsic": "^1.2.2"
-      }
-    },
-    "node_modules/has-proto": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmmirror.com/has-proto/-/has-proto-1.0.1.tgz",
-      "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==",
-      "engines": {
-        "node": ">= 0.4"
-      }
-    },
-    "node_modules/has-symbols": {
-      "version": "1.0.3",
-      "resolved": "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.0.3.tgz",
-      "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
-      "engines": {
-        "node": ">= 0.4"
-      }
-    },
-    "node_modules/has-tostringtag": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmmirror.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
-      "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
-      "dev": true,
-      "dependencies": {
-        "has-symbols": "^1.0.3"
-      },
-      "engines": {
-        "node": ">= 0.4"
-      }
-    },
-    "node_modules/hash-sum": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmmirror.com/hash-sum/-/hash-sum-2.0.0.tgz",
-      "integrity": "sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg=="
-    },
-    "node_modules/hasown": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmmirror.com/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/he": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmmirror.com/he/-/he-1.2.0.tgz",
-      "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
-      "dev": true,
-      "bin": {
-        "he": "bin/he"
-      }
-    },
-    "node_modules/html-encoding-sniffer": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmmirror.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz",
-      "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "whatwg-encoding": "^1.0.5"
-      },
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/html-escaper": {
-      "version": "2.0.2",
-      "resolved": "https://registry.npmmirror.com/html-escaper/-/html-escaper-2.0.2.tgz",
-      "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==",
-      "dev": true,
-      "peer": true
-    },
-    "node_modules/html-tags": {
-      "version": "3.3.1",
-      "resolved": "https://registry.npmmirror.com/html-tags/-/html-tags-3.3.1.tgz",
-      "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==",
-      "dev": true,
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/http-errors": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmmirror.com/http-errors/-/http-errors-2.0.0.tgz",
-      "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
-      "dev": true,
-      "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-proxy-agent": {
-      "version": "4.0.1",
-      "resolved": "https://registry.npmmirror.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz",
-      "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "@tootallnate/once": "1",
-        "agent-base": "6",
-        "debug": "4"
-      },
-      "engines": {
-        "node": ">= 6"
-      }
-    },
-    "node_modules/https-proxy-agent": {
-      "version": "5.0.1",
-      "resolved": "https://registry.npmmirror.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
-      "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "agent-base": "6",
-        "debug": "4"
-      },
-      "engines": {
-        "node": ">= 6"
-      }
-    },
-    "node_modules/human-signals": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmmirror.com/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.npmmirror.com/iconv-lite/-/iconv-lite-0.4.24.tgz",
-      "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
-      "dev": true,
-      "dependencies": {
-        "safer-buffer": ">= 2.1.2 < 3"
-      },
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/icss-replace-symbols": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmmirror.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz",
-      "integrity": "sha512-chIaY3Vh2mh2Q3RGXttaDIzeiPvaVXJ+C4DAh/w3c37SKZ/U6PGMmuicR2EQQp9bKG8zLMCl7I+PtIoOOPp8Gg=="
-    },
-    "node_modules/icss-utils": {
-      "version": "5.1.0",
-      "resolved": "https://registry.npmmirror.com/icss-utils/-/icss-utils-5.1.0.tgz",
-      "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==",
-      "engines": {
-        "node": "^10 || ^12 || >= 14"
-      },
-      "peerDependencies": {
-        "postcss": "^8.1.0"
-      }
-    },
-    "node_modules/ieee754": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmmirror.com/ieee754/-/ieee754-1.2.1.tgz",
-      "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="
-    },
-    "node_modules/ignore": {
-      "version": "5.3.1",
-      "resolved": "https://registry.npmmirror.com/ignore/-/ignore-5.3.1.tgz",
-      "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==",
-      "engines": {
-        "node": ">= 4"
-      }
-    },
-    "node_modules/immutable": {
-      "version": "4.3.5",
-      "resolved": "https://registry.npmmirror.com/immutable/-/immutable-4.3.5.tgz",
-      "integrity": "sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw=="
-    },
-    "node_modules/import-fresh": {
-      "version": "3.3.0",
-      "resolved": "https://registry.npmmirror.com/import-fresh/-/import-fresh-3.3.0.tgz",
-      "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
-      "dependencies": {
-        "parent-module": "^1.0.0",
-        "resolve-from": "^4.0.0"
-      },
-      "engines": {
-        "node": ">=6"
-      }
-    },
-    "node_modules/import-local": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmmirror.com/import-local/-/import-local-3.1.0.tgz",
-      "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "pkg-dir": "^4.2.0",
-        "resolve-cwd": "^3.0.0"
-      },
-      "bin": {
-        "import-local-fixture": "fixtures/cli.js"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/imurmurhash": {
-      "version": "0.1.4",
-      "resolved": "https://registry.npmmirror.com/imurmurhash/-/imurmurhash-0.1.4.tgz",
-      "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
-      "engines": {
-        "node": ">=0.8.19"
-      }
-    },
-    "node_modules/inflight": {
-      "version": "1.0.6",
-      "resolved": "https://registry.npmmirror.com/inflight/-/inflight-1.0.6.tgz",
-      "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
-      "dependencies": {
-        "once": "^1.3.0",
-        "wrappy": "1"
-      }
-    },
-    "node_modules/inherits": {
-      "version": "2.0.4",
-      "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz",
-      "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
-    },
-    "node_modules/internal-slot": {
-      "version": "1.0.7",
-      "resolved": "https://registry.npmmirror.com/internal-slot/-/internal-slot-1.0.7.tgz",
-      "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==",
-      "dev": true,
-      "dependencies": {
-        "es-errors": "^1.3.0",
-        "hasown": "^2.0.0",
-        "side-channel": "^1.0.4"
-      },
-      "engines": {
-        "node": ">= 0.4"
-      }
-    },
-    "node_modules/invert-kv": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmmirror.com/invert-kv/-/invert-kv-3.0.1.tgz",
-      "integrity": "sha512-CYdFeFexxhv/Bcny+Q0BfOV+ltRlJcd4BBZBYFX/O0u4npJrgZtIcjokegtiSMAvlMTJ+Koq0GBCc//3bueQxw==",
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/ipaddr.js": {
-      "version": "1.9.1",
-      "resolved": "https://registry.npmmirror.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
-      "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
-      "dev": true,
-      "engines": {
-        "node": ">= 0.10"
-      }
-    },
-    "node_modules/is-array-buffer": {
-      "version": "3.0.4",
-      "resolved": "https://registry.npmmirror.com/is-array-buffer/-/is-array-buffer-3.0.4.tgz",
-      "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==",
-      "dev": true,
-      "dependencies": {
-        "call-bind": "^1.0.2",
-        "get-intrinsic": "^1.2.1"
-      },
-      "engines": {
-        "node": ">= 0.4"
-      }
-    },
-    "node_modules/is-arrayish": {
-      "version": "0.2.1",
-      "resolved": "https://registry.npmmirror.com/is-arrayish/-/is-arrayish-0.2.1.tgz",
-      "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==",
-      "dev": true,
-      "peer": true
-    },
-    "node_modules/is-bigint": {
-      "version": "1.0.4",
-      "resolved": "https://registry.npmmirror.com/is-bigint/-/is-bigint-1.0.4.tgz",
-      "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==",
-      "dev": true,
-      "dependencies": {
-        "has-bigints": "^1.0.1"
-      }
-    },
-    "node_modules/is-binary-path": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz",
-      "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
-      "dependencies": {
-        "binary-extensions": "^2.0.0"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/is-boolean-object": {
-      "version": "1.1.2",
-      "resolved": "https://registry.npmmirror.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz",
-      "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==",
-      "dev": true,
-      "dependencies": {
-        "call-bind": "^1.0.2",
-        "has-tostringtag": "^1.0.0"
-      },
-      "engines": {
-        "node": ">= 0.4"
-      }
-    },
-    "node_modules/is-builtin-module": {
-      "version": "3.2.1",
-      "resolved": "https://registry.npmmirror.com/is-builtin-module/-/is-builtin-module-3.2.1.tgz",
-      "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==",
-      "dev": true,
-      "dependencies": {
-        "builtin-modules": "^3.3.0"
-      },
-      "engines": {
-        "node": ">=6"
-      }
-    },
-    "node_modules/is-callable": {
-      "version": "1.2.7",
-      "resolved": "https://registry.npmmirror.com/is-callable/-/is-callable-1.2.7.tgz",
-      "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==",
-      "dev": true,
-      "engines": {
-        "node": ">= 0.4"
-      }
-    },
-    "node_modules/is-core-module": {
-      "version": "2.13.1",
-      "resolved": "https://registry.npmmirror.com/is-core-module/-/is-core-module-2.13.1.tgz",
-      "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==",
-      "dependencies": {
-        "hasown": "^2.0.0"
-      }
-    },
-    "node_modules/is-date-object": {
-      "version": "1.0.5",
-      "resolved": "https://registry.npmmirror.com/is-date-object/-/is-date-object-1.0.5.tgz",
-      "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==",
-      "dev": true,
-      "dependencies": {
-        "has-tostringtag": "^1.0.0"
-      },
-      "engines": {
-        "node": ">= 0.4"
-      }
-    },
-    "node_modules/is-extglob": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz",
-      "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/is-fullwidth-code-point": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
-      "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
-      "dev": true,
-      "peer": true,
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/is-function": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmmirror.com/is-function/-/is-function-1.0.2.tgz",
-      "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ=="
-    },
-    "node_modules/is-generator-fn": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmmirror.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz",
-      "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==",
-      "dev": true,
-      "peer": true,
-      "engines": {
-        "node": ">=6"
-      }
-    },
-    "node_modules/is-glob": {
-      "version": "4.0.3",
-      "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz",
-      "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
-      "dependencies": {
-        "is-extglob": "^2.1.1"
-      },
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/is-negative-zero": {
-      "version": "2.0.2",
-      "resolved": "https://registry.npmmirror.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz",
-      "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==",
-      "dev": true,
-      "engines": {
-        "node": ">= 0.4"
-      }
-    },
-    "node_modules/is-number": {
-      "version": "7.0.0",
-      "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz",
-      "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
-      "engines": {
-        "node": ">=0.12.0"
-      }
-    },
-    "node_modules/is-number-object": {
-      "version": "1.0.7",
-      "resolved": "https://registry.npmmirror.com/is-number-object/-/is-number-object-1.0.7.tgz",
-      "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==",
-      "dev": true,
-      "dependencies": {
-        "has-tostringtag": "^1.0.0"
-      },
-      "engines": {
-        "node": ">= 0.4"
-      }
-    },
-    "node_modules/is-path-inside": {
-      "version": "3.0.3",
-      "resolved": "https://registry.npmmirror.com/is-path-inside/-/is-path-inside-3.0.3.tgz",
-      "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/is-potential-custom-element-name": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmmirror.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz",
-      "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==",
-      "dev": true,
-      "peer": true
-    },
-    "node_modules/is-regex": {
-      "version": "1.1.4",
-      "resolved": "https://registry.npmmirror.com/is-regex/-/is-regex-1.1.4.tgz",
-      "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==",
-      "dev": true,
-      "dependencies": {
-        "call-bind": "^1.0.2",
-        "has-tostringtag": "^1.0.0"
-      },
-      "engines": {
-        "node": ">= 0.4"
-      }
-    },
-    "node_modules/is-shared-array-buffer": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmmirror.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz",
-      "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==",
-      "dev": true,
-      "dependencies": {
-        "call-bind": "^1.0.2"
-      }
-    },
-    "node_modules/is-stream": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmmirror.com/is-stream/-/is-stream-2.0.1.tgz",
-      "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
-      "dev": true,
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/is-string": {
-      "version": "1.0.7",
-      "resolved": "https://registry.npmmirror.com/is-string/-/is-string-1.0.7.tgz",
-      "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==",
-      "dev": true,
-      "dependencies": {
-        "has-tostringtag": "^1.0.0"
-      },
-      "engines": {
-        "node": ">= 0.4"
-      }
-    },
-    "node_modules/is-symbol": {
-      "version": "1.0.4",
-      "resolved": "https://registry.npmmirror.com/is-symbol/-/is-symbol-1.0.4.tgz",
-      "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==",
-      "dev": true,
-      "dependencies": {
-        "has-symbols": "^1.0.2"
-      },
-      "engines": {
-        "node": ">= 0.4"
-      }
-    },
-    "node_modules/is-typed-array": {
-      "version": "1.1.13",
-      "resolved": "https://registry.npmmirror.com/is-typed-array/-/is-typed-array-1.1.13.tgz",
-      "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==",
-      "dev": true,
-      "dependencies": {
-        "which-typed-array": "^1.1.14"
-      },
-      "engines": {
-        "node": ">= 0.4"
-      }
-    },
-    "node_modules/is-typedarray": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmmirror.com/is-typedarray/-/is-typedarray-1.0.0.tgz",
-      "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==",
-      "dev": true,
-      "peer": true
-    },
-    "node_modules/is-weakref": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmmirror.com/is-weakref/-/is-weakref-1.0.2.tgz",
-      "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==",
-      "dev": true,
-      "dependencies": {
-        "call-bind": "^1.0.2"
-      }
-    },
-    "node_modules/isarray": {
-      "version": "2.0.5",
-      "resolved": "https://registry.npmmirror.com/isarray/-/isarray-2.0.5.tgz",
-      "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==",
-      "dev": true
-    },
-    "node_modules/isexe": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz",
-      "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="
-    },
-    "node_modules/istanbul-lib-coverage": {
-      "version": "3.2.2",
-      "resolved": "https://registry.npmmirror.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz",
-      "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==",
-      "dev": true,
-      "peer": true,
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/istanbul-lib-instrument": {
-      "version": "5.2.1",
-      "resolved": "https://registry.npmmirror.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz",
-      "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==",
-      "dev": true,
-      "peer": 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-report": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmmirror.com/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz",
-      "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==",
-      "dev": true,
-      "peer": 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.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
-      "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
-      "dev": true,
-      "peer": true,
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/istanbul-lib-report/node_modules/supports-color": {
-      "version": "7.2.0",
-      "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
-      "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "has-flag": "^4.0.0"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/istanbul-lib-source-maps": {
-      "version": "4.0.1",
-      "resolved": "https://registry.npmmirror.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz",
-      "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "debug": "^4.1.1",
-        "istanbul-lib-coverage": "^3.0.0",
-        "source-map": "^0.6.1"
-      },
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/istanbul-reports": {
-      "version": "3.1.6",
-      "resolved": "https://registry.npmmirror.com/istanbul-reports/-/istanbul-reports-3.1.6.tgz",
-      "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "html-escaper": "^2.0.0",
-        "istanbul-lib-report": "^3.0.0"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/jest": {
-      "version": "27.0.4",
-      "resolved": "https://registry.npmmirror.com/jest/-/jest-27.0.4.tgz",
-      "integrity": "sha512-Px1iKFooXgGSkk1H8dJxxBIrM3tsc5SIuI4kfKYK2J+4rvCvPGr/cXktxh0e9zIPQ5g09kOMNfHQEmusBUf/ZA==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "@jest/core": "^27.0.4",
-        "import-local": "^3.0.2",
-        "jest-cli": "^27.0.4"
-      },
-      "bin": {
-        "jest": "bin/jest.js"
-      },
-      "engines": {
-        "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
-      },
-      "peerDependencies": {
-        "node-notifier": "^8.0.1 || ^9.0.0"
-      },
-      "peerDependenciesMeta": {
-        "node-notifier": {
-          "optional": true
-        }
-      }
-    },
-    "node_modules/jest-changed-files": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/jest-changed-files/-/jest-changed-files-27.5.1.tgz",
-      "integrity": "sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "@jest/types": "^27.5.1",
-        "execa": "^5.0.0",
-        "throat": "^6.0.1"
-      },
-      "engines": {
-        "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
-      }
-    },
-    "node_modules/jest-circus": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/jest-circus/-/jest-circus-27.5.1.tgz",
-      "integrity": "sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "@jest/environment": "^27.5.1",
-        "@jest/test-result": "^27.5.1",
-        "@jest/types": "^27.5.1",
-        "@types/node": "*",
-        "chalk": "^4.0.0",
-        "co": "^4.6.0",
-        "dedent": "^0.7.0",
-        "expect": "^27.5.1",
-        "is-generator-fn": "^2.0.0",
-        "jest-each": "^27.5.1",
-        "jest-matcher-utils": "^27.5.1",
-        "jest-message-util": "^27.5.1",
-        "jest-runtime": "^27.5.1",
-        "jest-snapshot": "^27.5.1",
-        "jest-util": "^27.5.1",
-        "pretty-format": "^27.5.1",
-        "slash": "^3.0.0",
-        "stack-utils": "^2.0.3",
-        "throat": "^6.0.1"
-      },
-      "engines": {
-        "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
-      }
-    },
-    "node_modules/jest-circus/node_modules/ansi-styles": {
-      "version": "4.3.0",
-      "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
-      "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "color-convert": "^2.0.1"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/jest-circus/node_modules/chalk": {
-      "version": "4.1.2",
-      "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
-      "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "ansi-styles": "^4.1.0",
-        "supports-color": "^7.1.0"
-      },
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/jest-circus/node_modules/color-convert": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
-      "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "color-name": "~1.1.4"
-      },
-      "engines": {
-        "node": ">=7.0.0"
-      }
-    },
-    "node_modules/jest-circus/node_modules/color-name": {
-      "version": "1.1.4",
-      "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
-      "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
-      "dev": true,
-      "peer": true
-    },
-    "node_modules/jest-circus/node_modules/has-flag": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
-      "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
-      "dev": true,
-      "peer": true,
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/jest-circus/node_modules/supports-color": {
-      "version": "7.2.0",
-      "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
-      "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "has-flag": "^4.0.0"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/jest-cli": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/jest-cli/-/jest-cli-27.5.1.tgz",
-      "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "@jest/core": "^27.5.1",
-        "@jest/test-result": "^27.5.1",
-        "@jest/types": "^27.5.1",
-        "chalk": "^4.0.0",
-        "exit": "^0.1.2",
-        "graceful-fs": "^4.2.9",
-        "import-local": "^3.0.2",
-        "jest-config": "^27.5.1",
-        "jest-util": "^27.5.1",
-        "jest-validate": "^27.5.1",
-        "prompts": "^2.0.1",
-        "yargs": "^16.2.0"
-      },
-      "bin": {
-        "jest": "bin/jest.js"
-      },
-      "engines": {
-        "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
-      },
-      "peerDependencies": {
-        "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
-      },
-      "peerDependenciesMeta": {
-        "node-notifier": {
-          "optional": true
-        }
-      }
-    },
-    "node_modules/jest-cli/node_modules/ansi-styles": {
-      "version": "4.3.0",
-      "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
-      "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "color-convert": "^2.0.1"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/jest-cli/node_modules/chalk": {
-      "version": "4.1.2",
-      "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
-      "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "ansi-styles": "^4.1.0",
-        "supports-color": "^7.1.0"
-      },
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/jest-cli/node_modules/color-convert": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
-      "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "color-name": "~1.1.4"
-      },
-      "engines": {
-        "node": ">=7.0.0"
-      }
-    },
-    "node_modules/jest-cli/node_modules/color-name": {
-      "version": "1.1.4",
-      "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
-      "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
-      "dev": true,
-      "peer": true
-    },
-    "node_modules/jest-cli/node_modules/has-flag": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
-      "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
-      "dev": true,
-      "peer": true,
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/jest-cli/node_modules/supports-color": {
-      "version": "7.2.0",
-      "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
-      "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "has-flag": "^4.0.0"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/jest-config": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/jest-config/-/jest-config-27.5.1.tgz",
-      "integrity": "sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "@babel/core": "^7.8.0",
-        "@jest/test-sequencer": "^27.5.1",
-        "@jest/types": "^27.5.1",
-        "babel-jest": "^27.5.1",
-        "chalk": "^4.0.0",
-        "ci-info": "^3.2.0",
-        "deepmerge": "^4.2.2",
-        "glob": "^7.1.1",
-        "graceful-fs": "^4.2.9",
-        "jest-circus": "^27.5.1",
-        "jest-environment-jsdom": "^27.5.1",
-        "jest-environment-node": "^27.5.1",
-        "jest-get-type": "^27.5.1",
-        "jest-jasmine2": "^27.5.1",
-        "jest-regex-util": "^27.5.1",
-        "jest-resolve": "^27.5.1",
-        "jest-runner": "^27.5.1",
-        "jest-util": "^27.5.1",
-        "jest-validate": "^27.5.1",
-        "micromatch": "^4.0.4",
-        "parse-json": "^5.2.0",
-        "pretty-format": "^27.5.1",
-        "slash": "^3.0.0",
-        "strip-json-comments": "^3.1.1"
-      },
-      "engines": {
-        "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
-      },
-      "peerDependencies": {
-        "ts-node": ">=9.0.0"
-      },
-      "peerDependenciesMeta": {
-        "ts-node": {
-          "optional": true
-        }
-      }
-    },
-    "node_modules/jest-config/node_modules/ansi-styles": {
-      "version": "4.3.0",
-      "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
-      "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "color-convert": "^2.0.1"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/jest-config/node_modules/chalk": {
-      "version": "4.1.2",
-      "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
-      "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "ansi-styles": "^4.1.0",
-        "supports-color": "^7.1.0"
-      },
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/jest-config/node_modules/color-convert": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
-      "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "color-name": "~1.1.4"
-      },
-      "engines": {
-        "node": ">=7.0.0"
-      }
-    },
-    "node_modules/jest-config/node_modules/color-name": {
-      "version": "1.1.4",
-      "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
-      "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
-      "dev": true,
-      "peer": true
-    },
-    "node_modules/jest-config/node_modules/has-flag": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
-      "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
-      "dev": true,
-      "peer": true,
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/jest-config/node_modules/supports-color": {
-      "version": "7.2.0",
-      "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
-      "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "has-flag": "^4.0.0"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/jest-diff": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/jest-diff/-/jest-diff-27.5.1.tgz",
-      "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "chalk": "^4.0.0",
-        "diff-sequences": "^27.5.1",
-        "jest-get-type": "^27.5.1",
-        "pretty-format": "^27.5.1"
-      },
-      "engines": {
-        "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
-      }
-    },
-    "node_modules/jest-diff/node_modules/ansi-styles": {
-      "version": "4.3.0",
-      "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
-      "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "color-convert": "^2.0.1"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/jest-diff/node_modules/chalk": {
-      "version": "4.1.2",
-      "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
-      "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "ansi-styles": "^4.1.0",
-        "supports-color": "^7.1.0"
-      },
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/jest-diff/node_modules/color-convert": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
-      "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "color-name": "~1.1.4"
-      },
-      "engines": {
-        "node": ">=7.0.0"
-      }
-    },
-    "node_modules/jest-diff/node_modules/color-name": {
-      "version": "1.1.4",
-      "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
-      "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
-      "dev": true,
-      "peer": true
-    },
-    "node_modules/jest-diff/node_modules/has-flag": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
-      "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
-      "dev": true,
-      "peer": true,
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/jest-diff/node_modules/supports-color": {
-      "version": "7.2.0",
-      "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
-      "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "has-flag": "^4.0.0"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/jest-docblock": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/jest-docblock/-/jest-docblock-27.5.1.tgz",
-      "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "detect-newline": "^3.0.0"
-      },
-      "engines": {
-        "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
-      }
-    },
-    "node_modules/jest-each": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/jest-each/-/jest-each-27.5.1.tgz",
-      "integrity": "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "@jest/types": "^27.5.1",
-        "chalk": "^4.0.0",
-        "jest-get-type": "^27.5.1",
-        "jest-util": "^27.5.1",
-        "pretty-format": "^27.5.1"
-      },
-      "engines": {
-        "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
-      }
-    },
-    "node_modules/jest-each/node_modules/ansi-styles": {
-      "version": "4.3.0",
-      "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
-      "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "color-convert": "^2.0.1"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/jest-each/node_modules/chalk": {
-      "version": "4.1.2",
-      "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
-      "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "ansi-styles": "^4.1.0",
-        "supports-color": "^7.1.0"
-      },
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/jest-each/node_modules/color-convert": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
-      "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "color-name": "~1.1.4"
-      },
-      "engines": {
-        "node": ">=7.0.0"
-      }
-    },
-    "node_modules/jest-each/node_modules/color-name": {
-      "version": "1.1.4",
-      "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
-      "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
-      "dev": true,
-      "peer": true
-    },
-    "node_modules/jest-each/node_modules/has-flag": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
-      "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
-      "dev": true,
-      "peer": true,
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/jest-each/node_modules/supports-color": {
-      "version": "7.2.0",
-      "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
-      "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "has-flag": "^4.0.0"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/jest-environment-jsdom": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz",
-      "integrity": "sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "@jest/environment": "^27.5.1",
-        "@jest/fake-timers": "^27.5.1",
-        "@jest/types": "^27.5.1",
-        "@types/node": "*",
-        "jest-mock": "^27.5.1",
-        "jest-util": "^27.5.1",
-        "jsdom": "^16.6.0"
-      },
-      "engines": {
-        "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
-      }
-    },
-    "node_modules/jest-environment-node": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/jest-environment-node/-/jest-environment-node-27.5.1.tgz",
-      "integrity": "sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "@jest/environment": "^27.5.1",
-        "@jest/fake-timers": "^27.5.1",
-        "@jest/types": "^27.5.1",
-        "@types/node": "*",
-        "jest-mock": "^27.5.1",
-        "jest-util": "^27.5.1"
-      },
-      "engines": {
-        "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
-      }
-    },
-    "node_modules/jest-get-type": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/jest-get-type/-/jest-get-type-27.5.1.tgz",
-      "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==",
-      "dev": true,
-      "peer": true,
-      "engines": {
-        "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
-      }
-    },
-    "node_modules/jest-haste-map": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/jest-haste-map/-/jest-haste-map-27.5.1.tgz",
-      "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "@jest/types": "^27.5.1",
-        "@types/graceful-fs": "^4.1.2",
-        "@types/node": "*",
-        "anymatch": "^3.0.3",
-        "fb-watchman": "^2.0.0",
-        "graceful-fs": "^4.2.9",
-        "jest-regex-util": "^27.5.1",
-        "jest-serializer": "^27.5.1",
-        "jest-util": "^27.5.1",
-        "jest-worker": "^27.5.1",
-        "micromatch": "^4.0.4",
-        "walker": "^1.0.7"
-      },
-      "engines": {
-        "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
-      },
-      "optionalDependencies": {
-        "fsevents": "^2.3.2"
-      }
-    },
-    "node_modules/jest-jasmine2": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz",
-      "integrity": "sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "@jest/environment": "^27.5.1",
-        "@jest/source-map": "^27.5.1",
-        "@jest/test-result": "^27.5.1",
-        "@jest/types": "^27.5.1",
-        "@types/node": "*",
-        "chalk": "^4.0.0",
-        "co": "^4.6.0",
-        "expect": "^27.5.1",
-        "is-generator-fn": "^2.0.0",
-        "jest-each": "^27.5.1",
-        "jest-matcher-utils": "^27.5.1",
-        "jest-message-util": "^27.5.1",
-        "jest-runtime": "^27.5.1",
-        "jest-snapshot": "^27.5.1",
-        "jest-util": "^27.5.1",
-        "pretty-format": "^27.5.1",
-        "throat": "^6.0.1"
-      },
-      "engines": {
-        "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
-      }
-    },
-    "node_modules/jest-jasmine2/node_modules/ansi-styles": {
-      "version": "4.3.0",
-      "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
-      "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "color-convert": "^2.0.1"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/jest-jasmine2/node_modules/chalk": {
-      "version": "4.1.2",
-      "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
-      "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "ansi-styles": "^4.1.0",
-        "supports-color": "^7.1.0"
-      },
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/jest-jasmine2/node_modules/color-convert": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
-      "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "color-name": "~1.1.4"
-      },
-      "engines": {
-        "node": ">=7.0.0"
-      }
-    },
-    "node_modules/jest-jasmine2/node_modules/color-name": {
-      "version": "1.1.4",
-      "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
-      "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
-      "dev": true,
-      "peer": true
-    },
-    "node_modules/jest-jasmine2/node_modules/has-flag": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
-      "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
-      "dev": true,
-      "peer": true,
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/jest-jasmine2/node_modules/supports-color": {
-      "version": "7.2.0",
-      "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
-      "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "has-flag": "^4.0.0"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/jest-leak-detector": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz",
-      "integrity": "sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "jest-get-type": "^27.5.1",
-        "pretty-format": "^27.5.1"
-      },
-      "engines": {
-        "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
-      }
-    },
-    "node_modules/jest-matcher-utils": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz",
-      "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "chalk": "^4.0.0",
-        "jest-diff": "^27.5.1",
-        "jest-get-type": "^27.5.1",
-        "pretty-format": "^27.5.1"
-      },
-      "engines": {
-        "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
-      }
-    },
-    "node_modules/jest-matcher-utils/node_modules/ansi-styles": {
-      "version": "4.3.0",
-      "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
-      "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "color-convert": "^2.0.1"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/jest-matcher-utils/node_modules/chalk": {
-      "version": "4.1.2",
-      "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
-      "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "ansi-styles": "^4.1.0",
-        "supports-color": "^7.1.0"
-      },
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/jest-matcher-utils/node_modules/color-convert": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
-      "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "color-name": "~1.1.4"
-      },
-      "engines": {
-        "node": ">=7.0.0"
-      }
-    },
-    "node_modules/jest-matcher-utils/node_modules/color-name": {
-      "version": "1.1.4",
-      "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
-      "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
-      "dev": true,
-      "peer": true
-    },
-    "node_modules/jest-matcher-utils/node_modules/has-flag": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
-      "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
-      "dev": true,
-      "peer": true,
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/jest-matcher-utils/node_modules/supports-color": {
-      "version": "7.2.0",
-      "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
-      "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "has-flag": "^4.0.0"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/jest-message-util": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/jest-message-util/-/jest-message-util-27.5.1.tgz",
-      "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "@babel/code-frame": "^7.12.13",
-        "@jest/types": "^27.5.1",
-        "@types/stack-utils": "^2.0.0",
-        "chalk": "^4.0.0",
-        "graceful-fs": "^4.2.9",
-        "micromatch": "^4.0.4",
-        "pretty-format": "^27.5.1",
-        "slash": "^3.0.0",
-        "stack-utils": "^2.0.3"
-      },
-      "engines": {
-        "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
-      }
-    },
-    "node_modules/jest-message-util/node_modules/ansi-styles": {
-      "version": "4.3.0",
-      "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
-      "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "color-convert": "^2.0.1"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/jest-message-util/node_modules/chalk": {
-      "version": "4.1.2",
-      "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
-      "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "ansi-styles": "^4.1.0",
-        "supports-color": "^7.1.0"
-      },
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/jest-message-util/node_modules/color-convert": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
-      "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "color-name": "~1.1.4"
-      },
-      "engines": {
-        "node": ">=7.0.0"
-      }
-    },
-    "node_modules/jest-message-util/node_modules/color-name": {
-      "version": "1.1.4",
-      "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
-      "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
-      "dev": true,
-      "peer": true
-    },
-    "node_modules/jest-message-util/node_modules/has-flag": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
-      "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
-      "dev": true,
-      "peer": true,
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/jest-message-util/node_modules/supports-color": {
-      "version": "7.2.0",
-      "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
-      "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "has-flag": "^4.0.0"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/jest-mock": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/jest-mock/-/jest-mock-27.5.1.tgz",
-      "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "@jest/types": "^27.5.1",
-        "@types/node": "*"
-      },
-      "engines": {
-        "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
-      }
-    },
-    "node_modules/jest-pnp-resolver": {
-      "version": "1.2.3",
-      "resolved": "https://registry.npmmirror.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz",
-      "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==",
-      "dev": true,
-      "peer": true,
-      "engines": {
-        "node": ">=6"
-      },
-      "peerDependencies": {
-        "jest-resolve": "*"
-      },
-      "peerDependenciesMeta": {
-        "jest-resolve": {
-          "optional": true
-        }
-      }
-    },
-    "node_modules/jest-regex-util": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/jest-regex-util/-/jest-regex-util-27.5.1.tgz",
-      "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==",
-      "dev": true,
-      "peer": true,
-      "engines": {
-        "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
-      }
-    },
-    "node_modules/jest-resolve": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/jest-resolve/-/jest-resolve-27.5.1.tgz",
-      "integrity": "sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "@jest/types": "^27.5.1",
-        "chalk": "^4.0.0",
-        "graceful-fs": "^4.2.9",
-        "jest-haste-map": "^27.5.1",
-        "jest-pnp-resolver": "^1.2.2",
-        "jest-util": "^27.5.1",
-        "jest-validate": "^27.5.1",
-        "resolve": "^1.20.0",
-        "resolve.exports": "^1.1.0",
-        "slash": "^3.0.0"
-      },
-      "engines": {
-        "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
-      }
-    },
-    "node_modules/jest-resolve-dependencies": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz",
-      "integrity": "sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "@jest/types": "^27.5.1",
-        "jest-regex-util": "^27.5.1",
-        "jest-snapshot": "^27.5.1"
-      },
-      "engines": {
-        "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
-      }
-    },
-    "node_modules/jest-resolve/node_modules/ansi-styles": {
-      "version": "4.3.0",
-      "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
-      "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "color-convert": "^2.0.1"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/jest-resolve/node_modules/chalk": {
-      "version": "4.1.2",
-      "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
-      "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "ansi-styles": "^4.1.0",
-        "supports-color": "^7.1.0"
-      },
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/jest-resolve/node_modules/color-convert": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
-      "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "color-name": "~1.1.4"
-      },
-      "engines": {
-        "node": ">=7.0.0"
-      }
-    },
-    "node_modules/jest-resolve/node_modules/color-name": {
-      "version": "1.1.4",
-      "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
-      "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
-      "dev": true,
-      "peer": true
-    },
-    "node_modules/jest-resolve/node_modules/has-flag": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
-      "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
-      "dev": true,
-      "peer": true,
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/jest-resolve/node_modules/supports-color": {
-      "version": "7.2.0",
-      "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
-      "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "has-flag": "^4.0.0"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/jest-runner": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/jest-runner/-/jest-runner-27.5.1.tgz",
-      "integrity": "sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "@jest/console": "^27.5.1",
-        "@jest/environment": "^27.5.1",
-        "@jest/test-result": "^27.5.1",
-        "@jest/transform": "^27.5.1",
-        "@jest/types": "^27.5.1",
-        "@types/node": "*",
-        "chalk": "^4.0.0",
-        "emittery": "^0.8.1",
-        "graceful-fs": "^4.2.9",
-        "jest-docblock": "^27.5.1",
-        "jest-environment-jsdom": "^27.5.1",
-        "jest-environment-node": "^27.5.1",
-        "jest-haste-map": "^27.5.1",
-        "jest-leak-detector": "^27.5.1",
-        "jest-message-util": "^27.5.1",
-        "jest-resolve": "^27.5.1",
-        "jest-runtime": "^27.5.1",
-        "jest-util": "^27.5.1",
-        "jest-worker": "^27.5.1",
-        "source-map-support": "^0.5.6",
-        "throat": "^6.0.1"
-      },
-      "engines": {
-        "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
-      }
-    },
-    "node_modules/jest-runner/node_modules/ansi-styles": {
-      "version": "4.3.0",
-      "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
-      "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "color-convert": "^2.0.1"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/jest-runner/node_modules/chalk": {
-      "version": "4.1.2",
-      "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
-      "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "ansi-styles": "^4.1.0",
-        "supports-color": "^7.1.0"
-      },
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/jest-runner/node_modules/color-convert": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
-      "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "color-name": "~1.1.4"
-      },
-      "engines": {
-        "node": ">=7.0.0"
-      }
-    },
-    "node_modules/jest-runner/node_modules/color-name": {
-      "version": "1.1.4",
-      "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
-      "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
-      "dev": true,
-      "peer": true
-    },
-    "node_modules/jest-runner/node_modules/has-flag": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
-      "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
-      "dev": true,
-      "peer": true,
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/jest-runner/node_modules/supports-color": {
-      "version": "7.2.0",
-      "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
-      "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "has-flag": "^4.0.0"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/jest-runtime": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/jest-runtime/-/jest-runtime-27.5.1.tgz",
-      "integrity": "sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "@jest/environment": "^27.5.1",
-        "@jest/fake-timers": "^27.5.1",
-        "@jest/globals": "^27.5.1",
-        "@jest/source-map": "^27.5.1",
-        "@jest/test-result": "^27.5.1",
-        "@jest/transform": "^27.5.1",
-        "@jest/types": "^27.5.1",
-        "chalk": "^4.0.0",
-        "cjs-module-lexer": "^1.0.0",
-        "collect-v8-coverage": "^1.0.0",
-        "execa": "^5.0.0",
-        "glob": "^7.1.3",
-        "graceful-fs": "^4.2.9",
-        "jest-haste-map": "^27.5.1",
-        "jest-message-util": "^27.5.1",
-        "jest-mock": "^27.5.1",
-        "jest-regex-util": "^27.5.1",
-        "jest-resolve": "^27.5.1",
-        "jest-snapshot": "^27.5.1",
-        "jest-util": "^27.5.1",
-        "slash": "^3.0.0",
-        "strip-bom": "^4.0.0"
-      },
-      "engines": {
-        "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
-      }
-    },
-    "node_modules/jest-runtime/node_modules/ansi-styles": {
-      "version": "4.3.0",
-      "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
-      "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "color-convert": "^2.0.1"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/jest-runtime/node_modules/chalk": {
-      "version": "4.1.2",
-      "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
-      "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "ansi-styles": "^4.1.0",
-        "supports-color": "^7.1.0"
-      },
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/jest-runtime/node_modules/color-convert": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
-      "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "color-name": "~1.1.4"
-      },
-      "engines": {
-        "node": ">=7.0.0"
-      }
-    },
-    "node_modules/jest-runtime/node_modules/color-name": {
-      "version": "1.1.4",
-      "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
-      "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
-      "dev": true,
-      "peer": true
-    },
-    "node_modules/jest-runtime/node_modules/has-flag": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
-      "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
-      "dev": true,
-      "peer": true,
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/jest-runtime/node_modules/supports-color": {
-      "version": "7.2.0",
-      "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
-      "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "has-flag": "^4.0.0"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/jest-serializer": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/jest-serializer/-/jest-serializer-27.5.1.tgz",
-      "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "@types/node": "*",
-        "graceful-fs": "^4.2.9"
-      },
-      "engines": {
-        "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
-      }
-    },
-    "node_modules/jest-snapshot": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/jest-snapshot/-/jest-snapshot-27.5.1.tgz",
-      "integrity": "sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "@babel/core": "^7.7.2",
-        "@babel/generator": "^7.7.2",
-        "@babel/plugin-syntax-typescript": "^7.7.2",
-        "@babel/traverse": "^7.7.2",
-        "@babel/types": "^7.0.0",
-        "@jest/transform": "^27.5.1",
-        "@jest/types": "^27.5.1",
-        "@types/babel__traverse": "^7.0.4",
-        "@types/prettier": "^2.1.5",
-        "babel-preset-current-node-syntax": "^1.0.0",
-        "chalk": "^4.0.0",
-        "expect": "^27.5.1",
-        "graceful-fs": "^4.2.9",
-        "jest-diff": "^27.5.1",
-        "jest-get-type": "^27.5.1",
-        "jest-haste-map": "^27.5.1",
-        "jest-matcher-utils": "^27.5.1",
-        "jest-message-util": "^27.5.1",
-        "jest-util": "^27.5.1",
-        "natural-compare": "^1.4.0",
-        "pretty-format": "^27.5.1",
-        "semver": "^7.3.2"
-      },
-      "engines": {
-        "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
-      }
-    },
-    "node_modules/jest-snapshot/node_modules/ansi-styles": {
-      "version": "4.3.0",
-      "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
-      "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "color-convert": "^2.0.1"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/jest-snapshot/node_modules/chalk": {
-      "version": "4.1.2",
-      "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
-      "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "ansi-styles": "^4.1.0",
-        "supports-color": "^7.1.0"
-      },
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/jest-snapshot/node_modules/color-convert": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
-      "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "color-name": "~1.1.4"
-      },
-      "engines": {
-        "node": ">=7.0.0"
-      }
-    },
-    "node_modules/jest-snapshot/node_modules/color-name": {
-      "version": "1.1.4",
-      "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
-      "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
-      "dev": true,
-      "peer": true
-    },
-    "node_modules/jest-snapshot/node_modules/has-flag": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
-      "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
-      "dev": true,
-      "peer": true,
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/jest-snapshot/node_modules/lru-cache": {
-      "version": "6.0.0",
-      "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz",
-      "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "yallist": "^4.0.0"
-      },
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/jest-snapshot/node_modules/semver": {
-      "version": "7.6.0",
-      "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.0.tgz",
-      "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "lru-cache": "^6.0.0"
-      },
-      "bin": {
-        "semver": "bin/semver.js"
-      },
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/jest-snapshot/node_modules/supports-color": {
-      "version": "7.2.0",
-      "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
-      "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "has-flag": "^4.0.0"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/jest-snapshot/node_modules/yallist": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz",
-      "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
-      "dev": true,
-      "peer": true
-    },
-    "node_modules/jest-util": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/jest-util/-/jest-util-27.5.1.tgz",
-      "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "@jest/types": "^27.5.1",
-        "@types/node": "*",
-        "chalk": "^4.0.0",
-        "ci-info": "^3.2.0",
-        "graceful-fs": "^4.2.9",
-        "picomatch": "^2.2.3"
-      },
-      "engines": {
-        "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
-      }
-    },
-    "node_modules/jest-util/node_modules/ansi-styles": {
-      "version": "4.3.0",
-      "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
-      "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "color-convert": "^2.0.1"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/jest-util/node_modules/chalk": {
-      "version": "4.1.2",
-      "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
-      "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "ansi-styles": "^4.1.0",
-        "supports-color": "^7.1.0"
-      },
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/jest-util/node_modules/color-convert": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
-      "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "color-name": "~1.1.4"
-      },
-      "engines": {
-        "node": ">=7.0.0"
-      }
-    },
-    "node_modules/jest-util/node_modules/color-name": {
-      "version": "1.1.4",
-      "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
-      "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
-      "dev": true,
-      "peer": true
-    },
-    "node_modules/jest-util/node_modules/has-flag": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
-      "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
-      "dev": true,
-      "peer": true,
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/jest-util/node_modules/supports-color": {
-      "version": "7.2.0",
-      "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
-      "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "has-flag": "^4.0.0"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/jest-validate": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/jest-validate/-/jest-validate-27.5.1.tgz",
-      "integrity": "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "@jest/types": "^27.5.1",
-        "camelcase": "^6.2.0",
-        "chalk": "^4.0.0",
-        "jest-get-type": "^27.5.1",
-        "leven": "^3.1.0",
-        "pretty-format": "^27.5.1"
-      },
-      "engines": {
-        "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
-      }
-    },
-    "node_modules/jest-validate/node_modules/ansi-styles": {
-      "version": "4.3.0",
-      "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
-      "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "color-convert": "^2.0.1"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/jest-validate/node_modules/chalk": {
-      "version": "4.1.2",
-      "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
-      "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "ansi-styles": "^4.1.0",
-        "supports-color": "^7.1.0"
-      },
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/jest-validate/node_modules/color-convert": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
-      "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "color-name": "~1.1.4"
-      },
-      "engines": {
-        "node": ">=7.0.0"
-      }
-    },
-    "node_modules/jest-validate/node_modules/color-name": {
-      "version": "1.1.4",
-      "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
-      "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
-      "dev": true,
-      "peer": true
-    },
-    "node_modules/jest-validate/node_modules/has-flag": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
-      "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
-      "dev": true,
-      "peer": true,
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/jest-validate/node_modules/supports-color": {
-      "version": "7.2.0",
-      "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
-      "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "has-flag": "^4.0.0"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/jest-watcher": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/jest-watcher/-/jest-watcher-27.5.1.tgz",
-      "integrity": "sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "@jest/test-result": "^27.5.1",
-        "@jest/types": "^27.5.1",
-        "@types/node": "*",
-        "ansi-escapes": "^4.2.1",
-        "chalk": "^4.0.0",
-        "jest-util": "^27.5.1",
-        "string-length": "^4.0.1"
-      },
-      "engines": {
-        "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
-      }
-    },
-    "node_modules/jest-watcher/node_modules/ansi-styles": {
-      "version": "4.3.0",
-      "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
-      "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "color-convert": "^2.0.1"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/jest-watcher/node_modules/chalk": {
-      "version": "4.1.2",
-      "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
-      "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "ansi-styles": "^4.1.0",
-        "supports-color": "^7.1.0"
-      },
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/jest-watcher/node_modules/color-convert": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
-      "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "color-name": "~1.1.4"
-      },
-      "engines": {
-        "node": ">=7.0.0"
-      }
-    },
-    "node_modules/jest-watcher/node_modules/color-name": {
-      "version": "1.1.4",
-      "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
-      "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
-      "dev": true,
-      "peer": true
-    },
-    "node_modules/jest-watcher/node_modules/has-flag": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
-      "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
-      "dev": true,
-      "peer": true,
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/jest-watcher/node_modules/supports-color": {
-      "version": "7.2.0",
-      "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
-      "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "has-flag": "^4.0.0"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/jest-worker": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/jest-worker/-/jest-worker-27.5.1.tgz",
-      "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==",
-      "peer": 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.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
-      "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
-      "peer": true,
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/jest-worker/node_modules/supports-color": {
-      "version": "8.1.1",
-      "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-8.1.1.tgz",
-      "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
-      "peer": true,
-      "dependencies": {
-        "has-flag": "^4.0.0"
-      },
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/jimp": {
-      "version": "0.10.3",
-      "resolved": "https://registry.npmmirror.com/jimp/-/jimp-0.10.3.tgz",
-      "integrity": "sha512-meVWmDMtyUG5uYjFkmzu0zBgnCvvxwWNi27c4cg55vWNVC9ES4Lcwb+ogx+uBBQE3Q+dLKjXaLl0JVW+nUNwbQ==",
-      "dependencies": {
-        "@babel/runtime": "^7.7.2",
-        "@jimp/custom": "^0.10.3",
-        "@jimp/plugins": "^0.10.3",
-        "@jimp/types": "^0.10.3",
-        "core-js": "^3.4.1",
-        "regenerator-runtime": "^0.13.3"
-      }
-    },
-    "node_modules/jpeg-js": {
-      "version": "0.3.7",
-      "resolved": "https://registry.npmmirror.com/jpeg-js/-/jpeg-js-0.3.7.tgz",
-      "integrity": "sha512-9IXdWudL61npZjvLuVe/ktHiA41iE8qFyLB+4VDTblEsWBzeg8WQTlktdUK4CdncUqtUgUg0bbOmTE2bKBKaBQ=="
-    },
-    "node_modules/js-tokens": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz",
-      "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
-    },
-    "node_modules/js-yaml": {
-      "version": "4.1.0",
-      "resolved": "https://registry.npmmirror.com/js-yaml/-/js-yaml-4.1.0.tgz",
-      "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
-      "dependencies": {
-        "argparse": "^2.0.1"
-      },
-      "bin": {
-        "js-yaml": "bin/js-yaml.js"
-      }
-    },
-    "node_modules/jsdom": {
-      "version": "16.7.0",
-      "resolved": "https://registry.npmmirror.com/jsdom/-/jsdom-16.7.0.tgz",
-      "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "abab": "^2.0.5",
-        "acorn": "^8.2.4",
-        "acorn-globals": "^6.0.0",
-        "cssom": "^0.4.4",
-        "cssstyle": "^2.3.0",
-        "data-urls": "^2.0.0",
-        "decimal.js": "^10.2.1",
-        "domexception": "^2.0.1",
-        "escodegen": "^2.0.0",
-        "form-data": "^3.0.0",
-        "html-encoding-sniffer": "^2.0.1",
-        "http-proxy-agent": "^4.0.1",
-        "https-proxy-agent": "^5.0.0",
-        "is-potential-custom-element-name": "^1.0.1",
-        "nwsapi": "^2.2.0",
-        "parse5": "6.0.1",
-        "saxes": "^5.0.1",
-        "symbol-tree": "^3.2.4",
-        "tough-cookie": "^4.0.0",
-        "w3c-hr-time": "^1.0.2",
-        "w3c-xmlserializer": "^2.0.0",
-        "webidl-conversions": "^6.1.0",
-        "whatwg-encoding": "^1.0.5",
-        "whatwg-mimetype": "^2.3.0",
-        "whatwg-url": "^8.5.0",
-        "ws": "^7.4.6",
-        "xml-name-validator": "^3.0.0"
-      },
-      "engines": {
-        "node": ">=10"
-      },
-      "peerDependencies": {
-        "canvas": "^2.5.0"
-      },
-      "peerDependenciesMeta": {
-        "canvas": {
-          "optional": true
-        }
-      }
-    },
-    "node_modules/jsdom/node_modules/ws": {
-      "version": "7.5.9",
-      "resolved": "https://registry.npmmirror.com/ws/-/ws-7.5.9.tgz",
-      "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==",
-      "dev": true,
-      "peer": true,
-      "engines": {
-        "node": ">=8.3.0"
-      },
-      "peerDependencies": {
-        "bufferutil": "^4.0.1",
-        "utf-8-validate": "^5.0.2"
-      },
-      "peerDependenciesMeta": {
-        "bufferutil": {
-          "optional": true
-        },
-        "utf-8-validate": {
-          "optional": true
-        }
-      }
-    },
-    "node_modules/jsdom/node_modules/xml-name-validator": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmmirror.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz",
-      "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==",
-      "dev": true,
-      "peer": true
-    },
-    "node_modules/jsesc": {
-      "version": "2.5.2",
-      "resolved": "https://registry.npmmirror.com/jsesc/-/jsesc-2.5.2.tgz",
-      "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
-      "bin": {
-        "jsesc": "bin/jsesc"
-      },
-      "engines": {
-        "node": ">=4"
-      }
-    },
-    "node_modules/json-buffer": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmmirror.com/json-buffer/-/json-buffer-3.0.1.tgz",
-      "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ=="
-    },
-    "node_modules/json-parse-even-better-errors": {
-      "version": "2.3.1",
-      "resolved": "https://registry.npmmirror.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
-      "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
-      "peer": true
-    },
-    "node_modules/json-schema-traverse": {
-      "version": "0.4.1",
-      "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
-      "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
-    },
-    "node_modules/json-stable-stringify-without-jsonify": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmmirror.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
-      "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw=="
-    },
-    "node_modules/json5": {
-      "version": "2.2.3",
-      "resolved": "https://registry.npmmirror.com/json5/-/json5-2.2.3.tgz",
-      "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
-      "bin": {
-        "json5": "lib/cli.js"
-      },
-      "engines": {
-        "node": ">=6"
-      }
-    },
-    "node_modules/jsonc-parser": {
-      "version": "3.2.1",
-      "resolved": "https://registry.npmmirror.com/jsonc-parser/-/jsonc-parser-3.2.1.tgz",
-      "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA=="
-    },
-    "node_modules/jsonfile": {
-      "version": "6.1.0",
-      "resolved": "https://registry.npmmirror.com/jsonfile/-/jsonfile-6.1.0.tgz",
-      "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
-      "dependencies": {
-        "universalify": "^2.0.0"
-      },
-      "optionalDependencies": {
-        "graceful-fs": "^4.1.6"
-      }
-    },
-    "node_modules/keyv": {
-      "version": "4.5.4",
-      "resolved": "https://registry.npmmirror.com/keyv/-/keyv-4.5.4.tgz",
-      "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
-      "dependencies": {
-        "json-buffer": "3.0.1"
-      }
-    },
-    "node_modules/kleur": {
-      "version": "3.0.3",
-      "resolved": "https://registry.npmmirror.com/kleur/-/kleur-3.0.3.tgz",
-      "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==",
-      "dev": true,
-      "peer": true,
-      "engines": {
-        "node": ">=6"
-      }
-    },
-    "node_modules/lcid": {
-      "version": "3.1.1",
-      "resolved": "https://registry.npmmirror.com/lcid/-/lcid-3.1.1.tgz",
-      "integrity": "sha512-M6T051+5QCGLBQb8id3hdvIW8+zeFV2FyBGFS9IEK5H9Wt4MueD4bW1eWikpHgZp+5xR3l5c8pZUkQsIA0BFZg==",
-      "dependencies": {
-        "invert-kv": "^3.0.0"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/leven": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmmirror.com/leven/-/leven-3.1.0.tgz",
-      "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==",
-      "dev": true,
-      "peer": true,
-      "engines": {
-        "node": ">=6"
-      }
-    },
-    "node_modules/levn": {
-      "version": "0.4.1",
-      "resolved": "https://registry.npmmirror.com/levn/-/levn-0.4.1.tgz",
-      "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
-      "dependencies": {
-        "prelude-ls": "^1.2.1",
-        "type-check": "~0.4.0"
-      },
-      "engines": {
-        "node": ">= 0.8.0"
-      }
-    },
-    "node_modules/licia": {
-      "version": "1.39.2",
-      "resolved": "https://registry.npmmirror.com/licia/-/licia-1.39.2.tgz",
-      "integrity": "sha512-4pte7gXufSAa3JcsR0iT+2Lj2RX5Qpj+Nc0n84xs0ynNmw7eJmeZzk2oPTEtsQqwHwtT+NiX0arGkL5HPjTs7g=="
-    },
-    "node_modules/lilconfig": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmmirror.com/lilconfig/-/lilconfig-2.1.0.tgz",
-      "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==",
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/lines-and-columns": {
-      "version": "1.2.4",
-      "resolved": "https://registry.npmmirror.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
-      "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
-      "dev": true,
-      "peer": true
-    },
-    "node_modules/load-bmfont": {
-      "version": "1.4.1",
-      "resolved": "https://registry.npmmirror.com/load-bmfont/-/load-bmfont-1.4.1.tgz",
-      "integrity": "sha512-8UyQoYmdRDy81Brz6aLAUhfZLwr5zV0L3taTQ4hju7m6biuwiWiJXjPhBJxbUQJA8PrkvJ/7Enqmwk2sM14soA==",
-      "dependencies": {
-        "buffer-equal": "0.0.1",
-        "mime": "^1.3.4",
-        "parse-bmfont-ascii": "^1.0.3",
-        "parse-bmfont-binary": "^1.0.5",
-        "parse-bmfont-xml": "^1.1.4",
-        "phin": "^2.9.1",
-        "xhr": "^2.0.1",
-        "xtend": "^4.0.0"
-      }
-    },
-    "node_modules/load-bmfont/node_modules/mime": {
-      "version": "1.6.0",
-      "resolved": "https://registry.npmmirror.com/mime/-/mime-1.6.0.tgz",
-      "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
-      "bin": {
-        "mime": "cli.js"
-      },
-      "engines": {
-        "node": ">=4"
-      }
-    },
-    "node_modules/loader-runner": {
-      "version": "4.3.0",
-      "resolved": "https://registry.npmmirror.com/loader-runner/-/loader-runner-4.3.0.tgz",
-      "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==",
-      "peer": true,
-      "engines": {
-        "node": ">=6.11.5"
-      }
-    },
-    "node_modules/loader-utils": {
-      "version": "3.2.1",
-      "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-3.2.1.tgz",
-      "integrity": "sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==",
-      "engines": {
-        "node": ">= 12.13.0"
-      }
-    },
-    "node_modules/localstorage-polyfill": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmmirror.com/localstorage-polyfill/-/localstorage-polyfill-1.0.1.tgz",
-      "integrity": "sha512-m4iHVZxFH5734oQcPKU08025gIz2+4bjWR9lulP8ZYxEJR0BpA0w32oJmkzh8y3UI9ci7xCBehQDc3oA1X+VHw==",
-      "engines": {
-        "node": ">=6"
-      }
-    },
-    "node_modules/locate-path": {
-      "version": "6.0.0",
-      "resolved": "https://registry.npmmirror.com/locate-path/-/locate-path-6.0.0.tgz",
-      "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
-      "dependencies": {
-        "p-locate": "^5.0.0"
-      },
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/lodash": {
-      "version": "4.17.21",
-      "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz",
-      "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
-      "dev": true
-    },
-    "node_modules/lodash.camelcase": {
-      "version": "4.3.0",
-      "resolved": "https://registry.npmmirror.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz",
-      "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA=="
-    },
-    "node_modules/lodash.debounce": {
-      "version": "4.0.8",
-      "resolved": "https://registry.npmmirror.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
-      "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==",
-      "dev": true
-    },
-    "node_modules/lodash.merge": {
-      "version": "4.6.2",
-      "resolved": "https://registry.npmmirror.com/lodash.merge/-/lodash.merge-4.6.2.tgz",
-      "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="
-    },
-    "node_modules/lru-cache": {
-      "version": "5.1.1",
-      "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-5.1.1.tgz",
-      "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
-      "dependencies": {
-        "yallist": "^3.0.2"
-      }
-    },
-    "node_modules/magic-string": {
-      "version": "0.30.7",
-      "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.7.tgz",
-      "integrity": "sha512-8vBuFF/I/+OSLRmdf2wwFCJCz+nSn0m6DPvGH1fS/KiQoSaR+sETbov0eIk9KhEKy8CYqIkIAnbohxT/4H0kuA==",
-      "dependencies": {
-        "@jridgewell/sourcemap-codec": "^1.4.15"
-      },
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/make-dir": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmmirror.com/make-dir/-/make-dir-4.0.0.tgz",
-      "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "semver": "^7.5.3"
-      },
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/make-dir/node_modules/lru-cache": {
-      "version": "6.0.0",
-      "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz",
-      "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "yallist": "^4.0.0"
-      },
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/make-dir/node_modules/semver": {
-      "version": "7.6.0",
-      "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.0.tgz",
-      "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "lru-cache": "^6.0.0"
-      },
-      "bin": {
-        "semver": "bin/semver.js"
-      },
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/make-dir/node_modules/yallist": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz",
-      "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
-      "dev": true,
-      "peer": true
-    },
-    "node_modules/makeerror": {
-      "version": "1.0.12",
-      "resolved": "https://registry.npmmirror.com/makeerror/-/makeerror-1.0.12.tgz",
-      "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "tmpl": "1.0.5"
-      }
-    },
-    "node_modules/media-typer": {
-      "version": "0.3.0",
-      "resolved": "https://registry.npmmirror.com/media-typer/-/media-typer-0.3.0.tgz",
-      "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
-      "dev": true,
-      "engines": {
-        "node": ">= 0.6"
-      }
-    },
-    "node_modules/merge": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmmirror.com/merge/-/merge-2.1.1.tgz",
-      "integrity": "sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w=="
-    },
-    "node_modules/merge-descriptors": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmmirror.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
-      "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==",
-      "dev": true
-    },
-    "node_modules/merge-stream": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmmirror.com/merge-stream/-/merge-stream-2.0.0.tgz",
-      "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w=="
-    },
-    "node_modules/merge2": {
-      "version": "1.4.1",
-      "resolved": "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz",
-      "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
-      "engines": {
-        "node": ">= 8"
-      }
-    },
-    "node_modules/methods": {
-      "version": "1.1.2",
-      "resolved": "https://registry.npmmirror.com/methods/-/methods-1.1.2.tgz",
-      "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==",
-      "dev": true,
-      "engines": {
-        "node": ">= 0.6"
-      }
-    },
-    "node_modules/micromatch": {
-      "version": "4.0.5",
-      "resolved": "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.5.tgz",
-      "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
-      "dependencies": {
-        "braces": "^3.0.2",
-        "picomatch": "^2.3.1"
-      },
-      "engines": {
-        "node": ">=8.6"
-      }
-    },
-    "node_modules/mime": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmmirror.com/mime/-/mime-3.0.0.tgz",
-      "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==",
-      "bin": {
-        "mime": "cli.js"
-      },
-      "engines": {
-        "node": ">=10.0.0"
-      }
-    },
-    "node_modules/mime-db": {
-      "version": "1.52.0",
-      "resolved": "https://registry.npmmirror.com/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.npmmirror.com/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.npmmirror.com/mimic-fn/-/mimic-fn-2.1.0.tgz",
-      "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
-      "dev": true,
-      "engines": {
-        "node": ">=6"
-      }
-    },
-    "node_modules/min-document": {
-      "version": "2.19.0",
-      "resolved": "https://registry.npmmirror.com/min-document/-/min-document-2.19.0.tgz",
-      "integrity": "sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==",
-      "dependencies": {
-        "dom-walk": "^0.1.0"
-      }
-    },
-    "node_modules/minimatch": {
-      "version": "9.0.3",
-      "resolved": "https://registry.npmmirror.com/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"
-      }
-    },
-    "node_modules/minimist": {
-      "version": "1.2.8",
-      "resolved": "https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz",
-      "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA=="
-    },
-    "node_modules/mkdirp": {
-      "version": "0.5.6",
-      "resolved": "https://registry.npmmirror.com/mkdirp/-/mkdirp-0.5.6.tgz",
-      "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
-      "dependencies": {
-        "minimist": "^1.2.6"
-      },
-      "bin": {
-        "mkdirp": "bin/cmd.js"
-      }
-    },
-    "node_modules/module-alias": {
-      "version": "2.2.3",
-      "resolved": "https://registry.npmmirror.com/module-alias/-/module-alias-2.2.3.tgz",
-      "integrity": "sha512-23g5BFj4zdQL/b6tor7Ji+QY4pEfNH784BMslY9Qb0UnJWRAt+lQGLYmRaM0KDBwIG23ffEBELhZDP2rhi9f/Q=="
-    },
-    "node_modules/ms": {
-      "version": "2.1.2",
-      "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz",
-      "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
-    },
-    "node_modules/muggle-string": {
-      "version": "0.3.1",
-      "resolved": "https://registry.npmmirror.com/muggle-string/-/muggle-string-0.3.1.tgz",
-      "integrity": "sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==",
-      "dev": true
-    },
-    "node_modules/nanoid": {
-      "version": "3.3.7",
-      "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.7.tgz",
-      "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
-      "bin": {
-        "nanoid": "bin/nanoid.cjs"
-      },
-      "engines": {
-        "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
-      }
-    },
-    "node_modules/natural-compare": {
-      "version": "1.4.0",
-      "resolved": "https://registry.npmmirror.com/natural-compare/-/natural-compare-1.4.0.tgz",
-      "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw=="
-    },
-    "node_modules/negotiator": {
-      "version": "0.6.3",
-      "resolved": "https://registry.npmmirror.com/negotiator/-/negotiator-0.6.3.tgz",
-      "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
-      "dev": true,
-      "engines": {
-        "node": ">= 0.6"
-      }
-    },
-    "node_modules/neo-async": {
-      "version": "2.6.2",
-      "resolved": "https://registry.npmmirror.com/neo-async/-/neo-async-2.6.2.tgz",
-      "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw=="
-    },
-    "node_modules/node-int64": {
-      "version": "0.4.0",
-      "resolved": "https://registry.npmmirror.com/node-int64/-/node-int64-0.4.0.tgz",
-      "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==",
-      "dev": true,
-      "peer": true
-    },
-    "node_modules/node-releases": {
-      "version": "2.0.14",
-      "resolved": "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.14.tgz",
-      "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw=="
-    },
-    "node_modules/normalize-path": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz",
-      "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/normalize-range": {
-      "version": "0.1.2",
-      "resolved": "https://registry.npmmirror.com/normalize-range/-/normalize-range-0.1.2.tgz",
-      "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==",
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/npm-run-path": {
-      "version": "4.0.1",
-      "resolved": "https://registry.npmmirror.com/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.npmmirror.com/nth-check/-/nth-check-2.1.1.tgz",
-      "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==",
-      "dev": true,
-      "dependencies": {
-        "boolbase": "^1.0.0"
-      }
-    },
-    "node_modules/nwsapi": {
-      "version": "2.2.7",
-      "resolved": "https://registry.npmmirror.com/nwsapi/-/nwsapi-2.2.7.tgz",
-      "integrity": "sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==",
-      "dev": true,
-      "peer": true
-    },
-    "node_modules/object-inspect": {
-      "version": "1.13.1",
-      "resolved": "https://registry.npmmirror.com/object-inspect/-/object-inspect-1.13.1.tgz",
-      "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ=="
-    },
-    "node_modules/object-keys": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmmirror.com/object-keys/-/object-keys-1.1.1.tgz",
-      "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
-      "dev": true,
-      "engines": {
-        "node": ">= 0.4"
-      }
-    },
-    "node_modules/object.assign": {
-      "version": "4.1.5",
-      "resolved": "https://registry.npmmirror.com/object.assign/-/object.assign-4.1.5.tgz",
-      "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==",
-      "dev": true,
-      "dependencies": {
-        "call-bind": "^1.0.5",
-        "define-properties": "^1.2.1",
-        "has-symbols": "^1.0.3",
-        "object-keys": "^1.1.1"
-      },
-      "engines": {
-        "node": ">= 0.4"
-      }
-    },
-    "node_modules/object.fromentries": {
-      "version": "2.0.7",
-      "resolved": "https://registry.npmmirror.com/object.fromentries/-/object.fromentries-2.0.7.tgz",
-      "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==",
-      "dev": true,
-      "dependencies": {
-        "call-bind": "^1.0.2",
-        "define-properties": "^1.2.0",
-        "es-abstract": "^1.22.1"
-      },
-      "engines": {
-        "node": ">= 0.4"
-      }
-    },
-    "node_modules/object.groupby": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmmirror.com/object.groupby/-/object.groupby-1.0.2.tgz",
-      "integrity": "sha512-bzBq58S+x+uo0VjurFT0UktpKHOZmv4/xePiOA1nbB9pMqpGK7rUPNgf+1YC+7mE+0HzhTMqNUuCqvKhj6FnBw==",
-      "dev": true,
-      "dependencies": {
-        "array.prototype.filter": "^1.0.3",
-        "call-bind": "^1.0.5",
-        "define-properties": "^1.2.1",
-        "es-abstract": "^1.22.3",
-        "es-errors": "^1.0.0"
-      }
-    },
-    "node_modules/object.values": {
-      "version": "1.1.7",
-      "resolved": "https://registry.npmmirror.com/object.values/-/object.values-1.1.7.tgz",
-      "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==",
-      "dev": true,
-      "dependencies": {
-        "call-bind": "^1.0.2",
-        "define-properties": "^1.2.0",
-        "es-abstract": "^1.22.1"
-      },
-      "engines": {
-        "node": ">= 0.4"
-      }
-    },
-    "node_modules/omggif": {
-      "version": "1.0.10",
-      "resolved": "https://registry.npmmirror.com/omggif/-/omggif-1.0.10.tgz",
-      "integrity": "sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw=="
-    },
-    "node_modules/on-finished": {
-      "version": "2.4.1",
-      "resolved": "https://registry.npmmirror.com/on-finished/-/on-finished-2.4.1.tgz",
-      "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
-      "dev": true,
-      "dependencies": {
-        "ee-first": "1.1.1"
-      },
-      "engines": {
-        "node": ">= 0.8"
-      }
-    },
-    "node_modules/once": {
-      "version": "1.4.0",
-      "resolved": "https://registry.npmmirror.com/once/-/once-1.4.0.tgz",
-      "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
-      "dependencies": {
-        "wrappy": "1"
-      }
-    },
-    "node_modules/onetime": {
-      "version": "5.1.2",
-      "resolved": "https://registry.npmmirror.com/onetime/-/onetime-5.1.2.tgz",
-      "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
-      "dev": true,
-      "dependencies": {
-        "mimic-fn": "^2.1.0"
-      },
-      "engines": {
-        "node": ">=6"
-      }
-    },
-    "node_modules/optionator": {
-      "version": "0.9.3",
-      "resolved": "https://registry.npmmirror.com/optionator/-/optionator-0.9.3.tgz",
-      "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==",
-      "dependencies": {
-        "@aashutoshrathi/word-wrap": "^1.2.3",
-        "deep-is": "^0.1.3",
-        "fast-levenshtein": "^2.0.6",
-        "levn": "^0.4.1",
-        "prelude-ls": "^1.2.1",
-        "type-check": "^0.4.0"
-      },
-      "engines": {
-        "node": ">= 0.8.0"
-      }
-    },
-    "node_modules/os-locale-s-fix": {
-      "version": "1.0.8-fix-1",
-      "resolved": "https://registry.npmmirror.com/os-locale-s-fix/-/os-locale-s-fix-1.0.8-fix-1.tgz",
-      "integrity": "sha512-Sv0OvhPiMutICiwORAUefv02DCPb62IelBmo8ZsSrRHyI3FStqIWZvjqDkvtjU+lcujo7UNir+dCwKSqlEQ/5w==",
-      "dependencies": {
-        "lcid": "^3.0.0"
-      },
-      "engines": {
-        "node": ">=10",
-        "yarn": "^1.22.4"
-      }
-    },
-    "node_modules/p-limit": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmmirror.com/p-limit/-/p-limit-3.1.0.tgz",
-      "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
-      "dependencies": {
-        "yocto-queue": "^0.1.0"
-      },
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/p-locate": {
-      "version": "5.0.0",
-      "resolved": "https://registry.npmmirror.com/p-locate/-/p-locate-5.0.0.tgz",
-      "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
-      "dependencies": {
-        "p-limit": "^3.0.2"
-      },
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/p-try": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npmmirror.com/p-try/-/p-try-2.2.0.tgz",
-      "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
-      "dev": true,
-      "peer": true,
-      "engines": {
-        "node": ">=6"
-      }
-    },
-    "node_modules/pako": {
-      "version": "1.0.11",
-      "resolved": "https://registry.npmmirror.com/pako/-/pako-1.0.11.tgz",
-      "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw=="
-    },
-    "node_modules/parent-module": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmmirror.com/parent-module/-/parent-module-1.0.1.tgz",
-      "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
-      "dependencies": {
-        "callsites": "^3.0.0"
-      },
-      "engines": {
-        "node": ">=6"
-      }
-    },
-    "node_modules/parse-bmfont-ascii": {
-      "version": "1.0.6",
-      "resolved": "https://registry.npmmirror.com/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz",
-      "integrity": "sha512-U4RrVsUFCleIOBsIGYOMKjn9PavsGOXxbvYGtMOEfnId0SVNsgehXh1DxUdVPLoxd5mvcEtvmKs2Mmf0Mpa1ZA=="
-    },
-    "node_modules/parse-bmfont-binary": {
-      "version": "1.0.6",
-      "resolved": "https://registry.npmmirror.com/parse-bmfont-binary/-/parse-bmfont-binary-1.0.6.tgz",
-      "integrity": "sha512-GxmsRea0wdGdYthjuUeWTMWPqm2+FAd4GI8vCvhgJsFnoGhTrLhXDDupwTo7rXVAgaLIGoVHDZS9p/5XbSqeWA=="
-    },
-    "node_modules/parse-bmfont-xml": {
-      "version": "1.1.4",
-      "resolved": "https://registry.npmmirror.com/parse-bmfont-xml/-/parse-bmfont-xml-1.1.4.tgz",
-      "integrity": "sha512-bjnliEOmGv3y1aMEfREMBJ9tfL3WR0i0CKPj61DnSLaoxWR3nLrsQrEbCId/8rF4NyRF0cCqisSVXyQYWM+mCQ==",
-      "dependencies": {
-        "xml-parse-from-string": "^1.0.0",
-        "xml2js": "^0.4.5"
-      }
-    },
-    "node_modules/parse-css-font": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmmirror.com/parse-css-font/-/parse-css-font-4.0.0.tgz",
-      "integrity": "sha512-lnY7dTUfjRXsSo5G5C639L8RaBBaVSgL+5hacIFKsNHzeCJQ5SFSZv1DZmc7+wZv/22PFGOq2YbaEHLdaCS/mQ==",
-      "dependencies": {
-        "css-font-size-keywords": "^1.0.0",
-        "css-font-stretch-keywords": "^1.0.1",
-        "css-font-style-keywords": "^1.0.1",
-        "css-font-weight-keywords": "^1.0.0",
-        "css-list-helpers": "^2.0.0",
-        "css-system-font-keywords": "^1.0.0",
-        "unquote": "^1.1.1"
-      }
-    },
-    "node_modules/parse-headers": {
-      "version": "2.0.5",
-      "resolved": "https://registry.npmmirror.com/parse-headers/-/parse-headers-2.0.5.tgz",
-      "integrity": "sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA=="
-    },
-    "node_modules/parse-json": {
-      "version": "5.2.0",
-      "resolved": "https://registry.npmmirror.com/parse-json/-/parse-json-5.2.0.tgz",
-      "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
-      "dev": true,
-      "peer": 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"
-      }
-    },
-    "node_modules/parse5": {
-      "version": "6.0.1",
-      "resolved": "https://registry.npmmirror.com/parse5/-/parse5-6.0.1.tgz",
-      "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==",
-      "dev": true,
-      "peer": true
-    },
-    "node_modules/parseurl": {
-      "version": "1.3.3",
-      "resolved": "https://registry.npmmirror.com/parseurl/-/parseurl-1.3.3.tgz",
-      "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
-      "dev": true,
-      "engines": {
-        "node": ">= 0.8"
-      }
-    },
-    "node_modules/path-browserify": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmmirror.com/path-browserify/-/path-browserify-1.0.1.tgz",
-      "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==",
-      "dev": true
-    },
-    "node_modules/path-exists": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmmirror.com/path-exists/-/path-exists-4.0.0.tgz",
-      "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/path-is-absolute": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmmirror.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
-      "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/path-key": {
-      "version": "3.1.1",
-      "resolved": "https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz",
-      "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/path-parse": {
-      "version": "1.0.7",
-      "resolved": "https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz",
-      "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="
-    },
-    "node_modules/path-to-regexp": {
-      "version": "0.1.7",
-      "resolved": "https://registry.npmmirror.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
-      "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==",
-      "dev": true
-    },
-    "node_modules/path-type": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmmirror.com/path-type/-/path-type-4.0.0.tgz",
-      "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
-      "dev": true,
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/phin": {
-      "version": "2.9.3",
-      "resolved": "https://registry.npmmirror.com/phin/-/phin-2.9.3.tgz",
-      "integrity": "sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA=="
-    },
-    "node_modules/picocolors": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz",
-      "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
-    },
-    "node_modules/picomatch": {
-      "version": "2.3.1",
-      "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz",
-      "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
-      "engines": {
-        "node": ">=8.6"
-      }
-    },
-    "node_modules/pify": {
-      "version": "2.3.0",
-      "resolved": "https://registry.npmmirror.com/pify/-/pify-2.3.0.tgz",
-      "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/pinia": {
-      "version": "2.0.36",
-      "resolved": "https://registry.npmmirror.com/pinia/-/pinia-2.0.36.tgz",
-      "integrity": "sha512-4UKApwjlmJH+VuHKgA+zQMddcCb3ezYnyewQ9NVrsDqZ/j9dMv5+rh+1r48whKNdpFkZAWVxhBp5ewYaYX9JcQ==",
-      "dependencies": {
-        "@vue/devtools-api": "^6.5.0",
-        "vue-demi": "*"
-      },
-      "peerDependencies": {
-        "@vue/composition-api": "^1.4.0",
-        "typescript": ">=4.4.4",
-        "vue": "^2.6.14 || ^3.2.0"
-      },
-      "peerDependenciesMeta": {
-        "@vue/composition-api": {
-          "optional": true
-        },
-        "typescript": {
-          "optional": true
-        }
-      }
-    },
-    "node_modules/pinia-plugin-persistedstate": {
-      "version": "3.2.1",
-      "resolved": "https://registry.npmmirror.com/pinia-plugin-persistedstate/-/pinia-plugin-persistedstate-3.2.1.tgz",
-      "integrity": "sha512-MK++8LRUsGF7r45PjBFES82ISnPzyO6IZx3CH5vyPseFLZCk1g2kgx6l/nW8pEBKxxd4do0P6bJw+mUSZIEZUQ==",
-      "peerDependencies": {
-        "pinia": "^2.0.0"
-      }
-    },
-    "node_modules/pinia/node_modules/vue-demi": {
-      "version": "0.14.7",
-      "resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.14.7.tgz",
-      "integrity": "sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA==",
-      "hasInstallScript": true,
-      "bin": {
-        "vue-demi-fix": "bin/vue-demi-fix.js",
-        "vue-demi-switch": "bin/vue-demi-switch.js"
-      },
-      "engines": {
-        "node": ">=12"
-      },
-      "peerDependencies": {
-        "@vue/composition-api": "^1.0.0-rc.1",
-        "vue": "^3.0.0-0 || ^2.6.0"
-      },
-      "peerDependenciesMeta": {
-        "@vue/composition-api": {
-          "optional": true
-        }
-      }
-    },
-    "node_modules/pirates": {
-      "version": "4.0.6",
-      "resolved": "https://registry.npmmirror.com/pirates/-/pirates-4.0.6.tgz",
-      "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==",
-      "dev": true,
-      "peer": true,
-      "engines": {
-        "node": ">= 6"
-      }
-    },
-    "node_modules/pixelmatch": {
-      "version": "4.0.2",
-      "resolved": "https://registry.npmmirror.com/pixelmatch/-/pixelmatch-4.0.2.tgz",
-      "integrity": "sha512-J8B6xqiO37sU/gkcMglv6h5Jbd9xNER7aHzpfRdNmV4IbQBzBpe4l9XmbG+xPF/znacgu2jfEw+wHffaq/YkXA==",
-      "dependencies": {
-        "pngjs": "^3.0.0"
-      },
-      "bin": {
-        "pixelmatch": "bin/pixelmatch"
-      }
-    },
-    "node_modules/pkg-dir": {
-      "version": "4.2.0",
-      "resolved": "https://registry.npmmirror.com/pkg-dir/-/pkg-dir-4.2.0.tgz",
-      "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "find-up": "^4.0.0"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/pkg-dir/node_modules/find-up": {
-      "version": "4.1.0",
-      "resolved": "https://registry.npmmirror.com/find-up/-/find-up-4.1.0.tgz",
-      "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "locate-path": "^5.0.0",
-        "path-exists": "^4.0.0"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/pkg-dir/node_modules/locate-path": {
-      "version": "5.0.0",
-      "resolved": "https://registry.npmmirror.com/locate-path/-/locate-path-5.0.0.tgz",
-      "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "p-locate": "^4.1.0"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/pkg-dir/node_modules/p-limit": {
-      "version": "2.3.0",
-      "resolved": "https://registry.npmmirror.com/p-limit/-/p-limit-2.3.0.tgz",
-      "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "p-try": "^2.0.0"
-      },
-      "engines": {
-        "node": ">=6"
-      }
-    },
-    "node_modules/pkg-dir/node_modules/p-locate": {
-      "version": "4.1.0",
-      "resolved": "https://registry.npmmirror.com/p-locate/-/p-locate-4.1.0.tgz",
-      "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "p-limit": "^2.2.0"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/pngjs": {
-      "version": "3.4.0",
-      "resolved": "https://registry.npmmirror.com/pngjs/-/pngjs-3.4.0.tgz",
-      "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==",
-      "engines": {
-        "node": ">=4.0.0"
-      }
-    },
-    "node_modules/postcss": {
-      "version": "8.4.35",
-      "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.35.tgz",
-      "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==",
-      "dependencies": {
-        "nanoid": "^3.3.7",
-        "picocolors": "^1.0.0",
-        "source-map-js": "^1.0.2"
-      },
-      "engines": {
-        "node": "^10 || ^12 || >=14"
-      }
-    },
-    "node_modules/postcss-import": {
-      "version": "14.1.0",
-      "resolved": "https://registry.npmmirror.com/postcss-import/-/postcss-import-14.1.0.tgz",
-      "integrity": "sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==",
-      "dependencies": {
-        "postcss-value-parser": "^4.0.0",
-        "read-cache": "^1.0.0",
-        "resolve": "^1.1.7"
-      },
-      "engines": {
-        "node": ">=10.0.0"
-      },
-      "peerDependencies": {
-        "postcss": "^8.0.0"
-      }
-    },
-    "node_modules/postcss-load-config": {
-      "version": "3.1.4",
-      "resolved": "https://registry.npmmirror.com/postcss-load-config/-/postcss-load-config-3.1.4.tgz",
-      "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==",
-      "dependencies": {
-        "lilconfig": "^2.0.5",
-        "yaml": "^1.10.2"
-      },
-      "engines": {
-        "node": ">= 10"
-      },
-      "peerDependencies": {
-        "postcss": ">=8.0.9",
-        "ts-node": ">=9.0.0"
-      },
-      "peerDependenciesMeta": {
-        "postcss": {
-          "optional": true
-        },
-        "ts-node": {
-          "optional": true
-        }
-      }
-    },
-    "node_modules/postcss-modules": {
-      "version": "4.3.1",
-      "resolved": "https://registry.npmmirror.com/postcss-modules/-/postcss-modules-4.3.1.tgz",
-      "integrity": "sha512-ItUhSUxBBdNamkT3KzIZwYNNRFKmkJrofvC2nWab3CPKhYBQ1f27XXh1PAPE27Psx58jeelPsxWB/+og+KEH0Q==",
-      "dependencies": {
-        "generic-names": "^4.0.0",
-        "icss-replace-symbols": "^1.1.0",
-        "lodash.camelcase": "^4.3.0",
-        "postcss-modules-extract-imports": "^3.0.0",
-        "postcss-modules-local-by-default": "^4.0.0",
-        "postcss-modules-scope": "^3.0.0",
-        "postcss-modules-values": "^4.0.0",
-        "string-hash": "^1.1.1"
-      },
-      "peerDependencies": {
-        "postcss": "^8.0.0"
-      }
-    },
-    "node_modules/postcss-modules-extract-imports": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmmirror.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz",
-      "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==",
-      "engines": {
-        "node": "^10 || ^12 || >= 14"
-      },
-      "peerDependencies": {
-        "postcss": "^8.1.0"
-      }
-    },
-    "node_modules/postcss-modules-local-by-default": {
-      "version": "4.0.4",
-      "resolved": "https://registry.npmmirror.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.4.tgz",
-      "integrity": "sha512-L4QzMnOdVwRm1Qb8m4x8jsZzKAaPAgrUF1r/hjDR2Xj7R+8Zsf97jAlSQzWtKx5YNiNGN8QxmPFIc/sh+RQl+Q==",
-      "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.1.1",
-      "resolved": "https://registry.npmmirror.com/postcss-modules-scope/-/postcss-modules-scope-3.1.1.tgz",
-      "integrity": "sha512-uZgqzdTleelWjzJY+Fhti6F3C9iF1JR/dODLs/JDefozYcKTBCdD8BIl6nNPbTbcLnGrk56hzwZC2DaGNvYjzA==",
-      "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.npmmirror.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz",
-      "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==",
-      "dependencies": {
-        "icss-utils": "^5.0.0"
-      },
-      "engines": {
-        "node": "^10 || ^12 || >= 14"
-      },
-      "peerDependencies": {
-        "postcss": "^8.1.0"
-      }
-    },
-    "node_modules/postcss-selector-parser": {
-      "version": "6.0.15",
-      "resolved": "https://registry.npmmirror.com/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz",
-      "integrity": "sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==",
-      "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.npmmirror.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
-      "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ=="
-    },
-    "node_modules/prelude-ls": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmmirror.com/prelude-ls/-/prelude-ls-1.2.1.tgz",
-      "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
-      "engines": {
-        "node": ">= 0.8.0"
-      }
-    },
-    "node_modules/prettier": {
-      "version": "3.2.5",
-      "resolved": "https://registry.npmmirror.com/prettier/-/prettier-3.2.5.tgz",
-      "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==",
-      "bin": {
-        "prettier": "bin/prettier.cjs"
-      },
-      "engines": {
-        "node": ">=14"
-      }
-    },
-    "node_modules/prettier-linter-helpers": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmmirror.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz",
-      "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==",
-      "dependencies": {
-        "fast-diff": "^1.1.2"
-      },
-      "engines": {
-        "node": ">=6.0.0"
-      }
-    },
-    "node_modules/pretty-format": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/pretty-format/-/pretty-format-27.5.1.tgz",
-      "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "ansi-regex": "^5.0.1",
-        "ansi-styles": "^5.0.0",
-        "react-is": "^17.0.1"
-      },
-      "engines": {
-        "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
-      }
-    },
-    "node_modules/pretty-format/node_modules/ansi-styles": {
-      "version": "5.2.0",
-      "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-5.2.0.tgz",
-      "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
-      "dev": true,
-      "peer": true,
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/process": {
-      "version": "0.11.10",
-      "resolved": "https://registry.npmmirror.com/process/-/process-0.11.10.tgz",
-      "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==",
-      "engines": {
-        "node": ">= 0.6.0"
-      }
-    },
-    "node_modules/prompts": {
-      "version": "2.4.2",
-      "resolved": "https://registry.npmmirror.com/prompts/-/prompts-2.4.2.tgz",
-      "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "kleur": "^3.0.3",
-        "sisteransi": "^1.0.5"
-      },
-      "engines": {
-        "node": ">= 6"
-      }
-    },
-    "node_modules/proxy-addr": {
-      "version": "2.0.7",
-      "resolved": "https://registry.npmmirror.com/proxy-addr/-/proxy-addr-2.0.7.tgz",
-      "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
-      "dev": true,
-      "dependencies": {
-        "forwarded": "0.2.0",
-        "ipaddr.js": "1.9.1"
-      },
-      "engines": {
-        "node": ">= 0.10"
-      }
-    },
-    "node_modules/psl": {
-      "version": "1.9.0",
-      "resolved": "https://registry.npmmirror.com/psl/-/psl-1.9.0.tgz",
-      "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==",
-      "dev": true,
-      "peer": true
-    },
-    "node_modules/punycode": {
-      "version": "2.3.1",
-      "resolved": "https://registry.npmmirror.com/punycode/-/punycode-2.3.1.tgz",
-      "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
-      "engines": {
-        "node": ">=6"
-      }
-    },
-    "node_modules/qrcode-reader": {
-      "version": "1.0.4",
-      "resolved": "https://registry.npmmirror.com/qrcode-reader/-/qrcode-reader-1.0.4.tgz",
-      "integrity": "sha512-rRjALGNh9zVqvweg1j5OKIQKNsw3bLC+7qwlnead5K/9cb1cEIAGkwikt/09U0K+2IDWGD9CC6SP7tHAjUeqvQ=="
-    },
-    "node_modules/qrcode-terminal": {
-      "version": "0.12.0",
-      "resolved": "https://registry.npmmirror.com/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz",
-      "integrity": "sha512-EXtzRZmC+YGmGlDFbXKxQiMZNwCLEO6BANKXG4iCtSIM0yqc/pappSx3RIKr4r0uh5JsBckOXeKrB3Iz7mdQpQ==",
-      "bin": {
-        "qrcode-terminal": "bin/qrcode-terminal.js"
-      }
-    },
-    "node_modules/qs": {
-      "version": "6.11.2",
-      "resolved": "https://registry.npmmirror.com/qs/-/qs-6.11.2.tgz",
-      "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==",
-      "dependencies": {
-        "side-channel": "^1.0.4"
-      },
-      "engines": {
-        "node": ">=0.6"
-      }
-    },
-    "node_modules/querystringify": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npmmirror.com/querystringify/-/querystringify-2.2.0.tgz",
-      "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==",
-      "dev": true,
-      "peer": true
-    },
-    "node_modules/queue-microtask": {
-      "version": "1.2.3",
-      "resolved": "https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz",
-      "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A=="
-    },
-    "node_modules/randombytes": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmmirror.com/randombytes/-/randombytes-2.1.0.tgz",
-      "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
-      "peer": true,
-      "dependencies": {
-        "safe-buffer": "^5.1.0"
-      }
-    },
-    "node_modules/range-parser": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmmirror.com/range-parser/-/range-parser-1.2.1.tgz",
-      "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
-      "dev": true,
-      "engines": {
-        "node": ">= 0.6"
-      }
-    },
-    "node_modules/raw-body": {
-      "version": "2.5.1",
-      "resolved": "https://registry.npmmirror.com/raw-body/-/raw-body-2.5.1.tgz",
-      "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==",
-      "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/react-is": {
-      "version": "17.0.2",
-      "resolved": "https://registry.npmmirror.com/react-is/-/react-is-17.0.2.tgz",
-      "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==",
-      "dev": true,
-      "peer": true
-    },
-    "node_modules/read-cache": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmmirror.com/read-cache/-/read-cache-1.0.0.tgz",
-      "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==",
-      "dependencies": {
-        "pify": "^2.3.0"
-      }
-    },
-    "node_modules/readdirp": {
-      "version": "3.6.0",
-      "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz",
-      "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
-      "dependencies": {
-        "picomatch": "^2.2.1"
-      },
-      "engines": {
-        "node": ">=8.10.0"
-      }
-    },
-    "node_modules/regenerate": {
-      "version": "1.4.2",
-      "resolved": "https://registry.npmmirror.com/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.npmmirror.com/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.13.11",
-      "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
-      "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg=="
-    },
-    "node_modules/regenerator-transform": {
-      "version": "0.15.2",
-      "resolved": "https://registry.npmmirror.com/regenerator-transform/-/regenerator-transform-0.15.2.tgz",
-      "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==",
-      "dev": true,
-      "dependencies": {
-        "@babel/runtime": "^7.8.4"
-      }
-    },
-    "node_modules/regexp.prototype.flags": {
-      "version": "1.5.1",
-      "resolved": "https://registry.npmmirror.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz",
-      "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==",
-      "dev": true,
-      "dependencies": {
-        "call-bind": "^1.0.2",
-        "define-properties": "^1.2.0",
-        "set-function-name": "^2.0.0"
-      },
-      "engines": {
-        "node": ">= 0.4"
-      }
-    },
-    "node_modules/regexpu-core": {
-      "version": "5.3.2",
-      "resolved": "https://registry.npmmirror.com/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.npmmirror.com/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.npmmirror.com/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.npmmirror.com/require-directory/-/require-directory-2.1.1.tgz",
-      "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
-      "dev": true,
-      "peer": true,
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/requires-port": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmmirror.com/requires-port/-/requires-port-1.0.0.tgz",
-      "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==",
-      "dev": true,
-      "peer": true
-    },
-    "node_modules/resolve": {
-      "version": "1.22.8",
-      "resolved": "https://registry.npmmirror.com/resolve/-/resolve-1.22.8.tgz",
-      "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
-      "dependencies": {
-        "is-core-module": "^2.13.0",
-        "path-parse": "^1.0.7",
-        "supports-preserve-symlinks-flag": "^1.0.0"
-      },
-      "bin": {
-        "resolve": "bin/resolve"
-      }
-    },
-    "node_modules/resolve-cwd": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmmirror.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz",
-      "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "resolve-from": "^5.0.0"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/resolve-cwd/node_modules/resolve-from": {
-      "version": "5.0.0",
-      "resolved": "https://registry.npmmirror.com/resolve-from/-/resolve-from-5.0.0.tgz",
-      "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
-      "dev": true,
-      "peer": true,
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/resolve-from": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmmirror.com/resolve-from/-/resolve-from-4.0.0.tgz",
-      "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
-      "engines": {
-        "node": ">=4"
-      }
-    },
-    "node_modules/resolve-pkg-maps": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmmirror.com/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz",
-      "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==",
-      "dev": true
-    },
-    "node_modules/resolve.exports": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmmirror.com/resolve.exports/-/resolve.exports-1.1.1.tgz",
-      "integrity": "sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ==",
-      "dev": true,
-      "peer": true,
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/reusify": {
-      "version": "1.0.4",
-      "resolved": "https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz",
-      "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
-      "engines": {
-        "iojs": ">=1.0.0",
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/rimraf": {
-      "version": "3.0.2",
-      "resolved": "https://registry.npmmirror.com/rimraf/-/rimraf-3.0.2.tgz",
-      "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
-      "dependencies": {
-        "glob": "^7.1.3"
-      },
-      "bin": {
-        "rimraf": "bin.js"
-      }
-    },
-    "node_modules/rollup": {
-      "version": "3.29.4",
-      "resolved": "https://registry.npmmirror.com/rollup/-/rollup-3.29.4.tgz",
-      "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==",
-      "bin": {
-        "rollup": "dist/bin/rollup"
-      },
-      "engines": {
-        "node": ">=14.18.0",
-        "npm": ">=8.0.0"
-      },
-      "optionalDependencies": {
-        "fsevents": "~2.3.2"
-      }
-    },
-    "node_modules/run-parallel": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz",
-      "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
-      "dependencies": {
-        "queue-microtask": "^1.2.2"
-      }
-    },
-    "node_modules/safe-area-insets": {
-      "version": "1.4.1",
-      "resolved": "https://registry.npmmirror.com/safe-area-insets/-/safe-area-insets-1.4.1.tgz",
-      "integrity": "sha512-r/nRWTjFGhhm3w1Z6Kd/jY11srN+lHt2mNl1E/emQGW8ic7n3Avu4noibklfSM+Y34peNphHD/BSZecav0sXYQ=="
-    },
-    "node_modules/safe-array-concat": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmmirror.com/safe-array-concat/-/safe-array-concat-1.1.0.tgz",
-      "integrity": "sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg==",
-      "dev": true,
-      "dependencies": {
-        "call-bind": "^1.0.5",
-        "get-intrinsic": "^1.2.2",
-        "has-symbols": "^1.0.3",
-        "isarray": "^2.0.5"
-      },
-      "engines": {
-        "node": ">=0.4"
-      }
-    },
-    "node_modules/safe-buffer": {
-      "version": "5.2.1",
-      "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz",
-      "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
-    },
-    "node_modules/safe-regex-test": {
-      "version": "1.0.3",
-      "resolved": "https://registry.npmmirror.com/safe-regex-test/-/safe-regex-test-1.0.3.tgz",
-      "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==",
-      "dev": true,
-      "dependencies": {
-        "call-bind": "^1.0.6",
-        "es-errors": "^1.3.0",
-        "is-regex": "^1.1.4"
-      },
-      "engines": {
-        "node": ">= 0.4"
-      }
-    },
-    "node_modules/safer-buffer": {
-      "version": "2.1.2",
-      "resolved": "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz",
-      "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
-      "dev": true
-    },
-    "node_modules/sass": {
-      "version": "1.70.0",
-      "resolved": "https://registry.npmmirror.com/sass/-/sass-1.70.0.tgz",
-      "integrity": "sha512-uUxNQ3zAHeAx5nRFskBnrWzDUJrrvpCPD5FNAoRvTi0WwremlheES3tg+56PaVtCs5QDRX5CBLxxKMDJMEa1WQ==",
-      "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.3",
-      "resolved": "https://registry.npmmirror.com/sass-loader/-/sass-loader-13.3.3.tgz",
-      "integrity": "sha512-mt5YN2F1MOZr3d/wBRcZxeFgwgkH44wVc2zohO2YF6JiOMkiXe4BYRZpSu2sO1g71mo/j16txzUhsKZlqjVGzA==",
-      "dependencies": {
-        "neo-async": "^2.6.2"
-      },
-      "engines": {
-        "node": ">= 14.15.0"
-      },
-      "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/sax": {
-      "version": "1.3.0",
-      "resolved": "https://registry.npmmirror.com/sax/-/sax-1.3.0.tgz",
-      "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA=="
-    },
-    "node_modules/saxes": {
-      "version": "5.0.1",
-      "resolved": "https://registry.npmmirror.com/saxes/-/saxes-5.0.1.tgz",
-      "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "xmlchars": "^2.2.0"
-      },
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/schema-utils": {
-      "version": "3.3.0",
-      "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-3.3.0.tgz",
-      "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
-      "peer": true,
-      "dependencies": {
-        "@types/json-schema": "^7.0.8",
-        "ajv": "^6.12.5",
-        "ajv-keywords": "^3.5.2"
-      },
-      "engines": {
-        "node": ">= 10.13.0"
-      }
-    },
-    "node_modules/semver": {
-      "version": "6.3.1",
-      "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz",
-      "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
-      "bin": {
-        "semver": "bin/semver.js"
-      }
-    },
-    "node_modules/send": {
-      "version": "0.18.0",
-      "resolved": "https://registry.npmmirror.com/send/-/send-0.18.0.tgz",
-      "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
-      "dev": true,
-      "dependencies": {
-        "debug": "2.6.9",
-        "depd": "2.0.0",
-        "destroy": "1.2.0",
-        "encodeurl": "~1.0.2",
-        "escape-html": "~1.0.3",
-        "etag": "~1.8.1",
-        "fresh": "0.5.2",
-        "http-errors": "2.0.0",
-        "mime": "1.6.0",
-        "ms": "2.1.3",
-        "on-finished": "2.4.1",
-        "range-parser": "~1.2.1",
-        "statuses": "2.0.1"
-      },
-      "engines": {
-        "node": ">= 0.8.0"
-      }
-    },
-    "node_modules/send/node_modules/debug": {
-      "version": "2.6.9",
-      "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz",
-      "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
-      "dev": true,
-      "dependencies": {
-        "ms": "2.0.0"
-      }
-    },
-    "node_modules/send/node_modules/debug/node_modules/ms": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz",
-      "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
-      "dev": true
-    },
-    "node_modules/send/node_modules/mime": {
-      "version": "1.6.0",
-      "resolved": "https://registry.npmmirror.com/mime/-/mime-1.6.0.tgz",
-      "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
-      "dev": true,
-      "bin": {
-        "mime": "cli.js"
-      },
-      "engines": {
-        "node": ">=4"
-      }
-    },
-    "node_modules/send/node_modules/ms": {
-      "version": "2.1.3",
-      "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz",
-      "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
-      "dev": true
-    },
-    "node_modules/serialize-javascript": {
-      "version": "6.0.2",
-      "resolved": "https://registry.npmmirror.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz",
-      "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==",
-      "peer": true,
-      "dependencies": {
-        "randombytes": "^2.1.0"
-      }
-    },
-    "node_modules/serve-static": {
-      "version": "1.15.0",
-      "resolved": "https://registry.npmmirror.com/serve-static/-/serve-static-1.15.0.tgz",
-      "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==",
-      "dev": true,
-      "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/set-function-length": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmmirror.com/set-function-length/-/set-function-length-1.2.1.tgz",
-      "integrity": "sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==",
-      "dependencies": {
-        "define-data-property": "^1.1.2",
-        "es-errors": "^1.3.0",
-        "function-bind": "^1.1.2",
-        "get-intrinsic": "^1.2.3",
-        "gopd": "^1.0.1",
-        "has-property-descriptors": "^1.0.1"
-      },
-      "engines": {
-        "node": ">= 0.4"
-      }
-    },
-    "node_modules/set-function-name": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmmirror.com/set-function-name/-/set-function-name-2.0.1.tgz",
-      "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==",
-      "dev": true,
-      "dependencies": {
-        "define-data-property": "^1.0.1",
-        "functions-have-names": "^1.2.3",
-        "has-property-descriptors": "^1.0.0"
-      },
-      "engines": {
-        "node": ">= 0.4"
-      }
-    },
-    "node_modules/setprototypeof": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmmirror.com/setprototypeof/-/setprototypeof-1.2.0.tgz",
-      "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==",
-      "dev": true
-    },
-    "node_modules/shebang-command": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz",
-      "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
-      "dependencies": {
-        "shebang-regex": "^3.0.0"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/shebang-regex": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmmirror.com/shebang-regex/-/shebang-regex-3.0.0.tgz",
-      "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/side-channel": {
-      "version": "1.0.5",
-      "resolved": "https://registry.npmmirror.com/side-channel/-/side-channel-1.0.5.tgz",
-      "integrity": "sha512-QcgiIWV4WV7qWExbN5llt6frQB/lBven9pqliLXfGPB+K9ZYXxDozp0wLkHS24kWCm+6YXH/f0HhnObZnZOBnQ==",
-      "dependencies": {
-        "call-bind": "^1.0.6",
-        "es-errors": "^1.3.0",
-        "get-intrinsic": "^1.2.4",
-        "object-inspect": "^1.13.1"
-      },
-      "engines": {
-        "node": ">= 0.4"
-      }
-    },
-    "node_modules/signal-exit": {
-      "version": "3.0.7",
-      "resolved": "https://registry.npmmirror.com/signal-exit/-/signal-exit-3.0.7.tgz",
-      "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
-      "dev": true
-    },
-    "node_modules/sisteransi": {
-      "version": "1.0.5",
-      "resolved": "https://registry.npmmirror.com/sisteransi/-/sisteransi-1.0.5.tgz",
-      "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==",
-      "dev": true,
-      "peer": true
-    },
-    "node_modules/slash": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmmirror.com/slash/-/slash-3.0.0.tgz",
-      "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
-      "dev": true,
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/source-map": {
-      "version": "0.6.1",
-      "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz",
-      "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/source-map-js": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz",
-      "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/source-map-support": {
-      "version": "0.5.21",
-      "resolved": "https://registry.npmmirror.com/source-map-support/-/source-map-support-0.5.21.tgz",
-      "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
-      "dependencies": {
-        "buffer-from": "^1.0.0",
-        "source-map": "^0.6.0"
-      }
-    },
-    "node_modules/sourcemap-codec": {
-      "version": "1.4.8",
-      "resolved": "https://registry.npmmirror.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz",
-      "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==",
-      "deprecated": "Please use @jridgewell/sourcemap-codec instead"
-    },
-    "node_modules/sprintf-js": {
-      "version": "1.0.3",
-      "resolved": "https://registry.npmmirror.com/sprintf-js/-/sprintf-js-1.0.3.tgz",
-      "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
-      "dev": true,
-      "peer": true
-    },
-    "node_modules/stack-utils": {
-      "version": "2.0.6",
-      "resolved": "https://registry.npmmirror.com/stack-utils/-/stack-utils-2.0.6.tgz",
-      "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "escape-string-regexp": "^2.0.0"
-      },
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/stack-utils/node_modules/escape-string-regexp": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
-      "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==",
-      "dev": true,
-      "peer": true,
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/statuses": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmmirror.com/statuses/-/statuses-2.0.1.tgz",
-      "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
-      "dev": true,
-      "engines": {
-        "node": ">= 0.8"
-      }
-    },
-    "node_modules/string-hash": {
-      "version": "1.1.3",
-      "resolved": "https://registry.npmmirror.com/string-hash/-/string-hash-1.1.3.tgz",
-      "integrity": "sha512-kJUvRUFK49aub+a7T1nNE66EJbZBMnBgoC1UbCZ5n6bsZKBRga4KgBRTMn/pFkeCZSYtNeSyMxPDM0AXWELk2A=="
-    },
-    "node_modules/string-length": {
-      "version": "4.0.2",
-      "resolved": "https://registry.npmmirror.com/string-length/-/string-length-4.0.2.tgz",
-      "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "char-regex": "^1.0.2",
-        "strip-ansi": "^6.0.0"
-      },
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/string-width": {
-      "version": "4.2.3",
-      "resolved": "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz",
-      "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
-      "dev": true,
-      "peer": 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.prototype.trim": {
-      "version": "1.2.8",
-      "resolved": "https://registry.npmmirror.com/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz",
-      "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==",
-      "dev": true,
-      "dependencies": {
-        "call-bind": "^1.0.2",
-        "define-properties": "^1.2.0",
-        "es-abstract": "^1.22.1"
-      },
-      "engines": {
-        "node": ">= 0.4"
-      }
-    },
-    "node_modules/string.prototype.trimend": {
-      "version": "1.0.7",
-      "resolved": "https://registry.npmmirror.com/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz",
-      "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==",
-      "dev": true,
-      "dependencies": {
-        "call-bind": "^1.0.2",
-        "define-properties": "^1.2.0",
-        "es-abstract": "^1.22.1"
-      }
-    },
-    "node_modules/string.prototype.trimstart": {
-      "version": "1.0.7",
-      "resolved": "https://registry.npmmirror.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz",
-      "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==",
-      "dev": true,
-      "dependencies": {
-        "call-bind": "^1.0.2",
-        "define-properties": "^1.2.0",
-        "es-abstract": "^1.22.1"
-      }
-    },
-    "node_modules/strip-ansi": {
-      "version": "6.0.1",
-      "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz",
-      "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
-      "dependencies": {
-        "ansi-regex": "^5.0.1"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/strip-bom": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmmirror.com/strip-bom/-/strip-bom-4.0.0.tgz",
-      "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==",
-      "dev": true,
-      "peer": true,
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/strip-final-newline": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmmirror.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
-      "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
-      "dev": true,
-      "engines": {
-        "node": ">=6"
-      }
-    },
-    "node_modules/strip-json-comments": {
-      "version": "3.1.1",
-      "resolved": "https://registry.npmmirror.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
-      "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/supports-color": {
-      "version": "5.5.0",
-      "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz",
-      "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
-      "dependencies": {
-        "has-flag": "^3.0.0"
-      },
-      "engines": {
-        "node": ">=4"
-      }
-    },
-    "node_modules/supports-hyperlinks": {
-      "version": "2.3.0",
-      "resolved": "https://registry.npmmirror.com/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz",
-      "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "has-flag": "^4.0.0",
-        "supports-color": "^7.0.0"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/supports-hyperlinks/node_modules/has-flag": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
-      "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
-      "dev": true,
-      "peer": true,
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/supports-hyperlinks/node_modules/supports-color": {
-      "version": "7.2.0",
-      "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
-      "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "has-flag": "^4.0.0"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/supports-preserve-symlinks-flag": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
-      "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
-      "engines": {
-        "node": ">= 0.4"
-      }
-    },
-    "node_modules/svg-tags": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmmirror.com/svg-tags/-/svg-tags-1.0.0.tgz",
-      "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==",
-      "dev": true
-    },
-    "node_modules/symbol-tree": {
-      "version": "3.2.4",
-      "resolved": "https://registry.npmmirror.com/symbol-tree/-/symbol-tree-3.2.4.tgz",
-      "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==",
-      "dev": true,
-      "peer": true
-    },
-    "node_modules/synckit": {
-      "version": "0.8.8",
-      "resolved": "https://registry.npmmirror.com/synckit/-/synckit-0.8.8.tgz",
-      "integrity": "sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==",
-      "dependencies": {
-        "@pkgr/core": "^0.1.0",
-        "tslib": "^2.6.2"
-      },
-      "engines": {
-        "node": "^14.18.0 || >=16.0.0"
-      }
-    },
-    "node_modules/systemjs": {
-      "version": "6.14.3",
-      "resolved": "https://registry.npmmirror.com/systemjs/-/systemjs-6.14.3.tgz",
-      "integrity": "sha512-hQv45irdhXudAOr8r6SVSpJSGtogdGZUbJBRKCE5nsIS7tsxxvnIHqT4IOPWj+P+HcSzeWzHlGCGpmhPDIKe+w==",
-      "dev": true
-    },
-    "node_modules/tapable": {
-      "version": "2.2.1",
-      "resolved": "https://registry.npmmirror.com/tapable/-/tapable-2.2.1.tgz",
-      "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==",
-      "engines": {
-        "node": ">=6"
-      }
-    },
-    "node_modules/terminal-link": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmmirror.com/terminal-link/-/terminal-link-2.1.1.tgz",
-      "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "ansi-escapes": "^4.2.1",
-        "supports-hyperlinks": "^2.0.0"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/terser": {
-      "version": "5.27.0",
-      "resolved": "https://registry.npmmirror.com/terser/-/terser-5.27.0.tgz",
-      "integrity": "sha512-bi1HRwVRskAjheeYl291n3JC4GgO/Ty4z1nVs5AAsmonJulGxpSektecnNedrwK9C7vpvVtcX3cw00VSLt7U2A==",
-      "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.10",
-      "resolved": "https://registry.npmmirror.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz",
-      "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==",
-      "peer": true,
-      "dependencies": {
-        "@jridgewell/trace-mapping": "^0.3.20",
-        "jest-worker": "^27.4.5",
-        "schema-utils": "^3.1.1",
-        "serialize-javascript": "^6.0.1",
-        "terser": "^5.26.0"
-      },
-      "engines": {
-        "node": ">= 10.13.0"
-      },
-      "peerDependencies": {
-        "webpack": "^5.1.0"
-      },
-      "peerDependenciesMeta": {
-        "@swc/core": {
-          "optional": true
-        },
-        "esbuild": {
-          "optional": true
-        },
-        "uglify-js": {
-          "optional": true
-        }
-      }
-    },
-    "node_modules/test-exclude": {
-      "version": "6.0.0",
-      "resolved": "https://registry.npmmirror.com/test-exclude/-/test-exclude-6.0.0.tgz",
-      "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "@istanbuljs/schema": "^0.1.2",
-        "glob": "^7.1.4",
-        "minimatch": "^3.0.4"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/test-exclude/node_modules/brace-expansion": {
-      "version": "1.1.11",
-      "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz",
-      "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "balanced-match": "^1.0.0",
-        "concat-map": "0.0.1"
-      }
-    },
-    "node_modules/test-exclude/node_modules/minimatch": {
-      "version": "3.1.2",
-      "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz",
-      "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "brace-expansion": "^1.1.7"
-      },
-      "engines": {
-        "node": "*"
-      }
-    },
-    "node_modules/text-table": {
-      "version": "0.2.0",
-      "resolved": "https://registry.npmmirror.com/text-table/-/text-table-0.2.0.tgz",
-      "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw=="
-    },
-    "node_modules/throat": {
-      "version": "6.0.2",
-      "resolved": "https://registry.npmmirror.com/throat/-/throat-6.0.2.tgz",
-      "integrity": "sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ==",
-      "dev": true,
-      "peer": true
-    },
-    "node_modules/timm": {
-      "version": "1.7.1",
-      "resolved": "https://registry.npmmirror.com/timm/-/timm-1.7.1.tgz",
-      "integrity": "sha512-IjZc9KIotudix8bMaBW6QvMuq64BrJWFs1+4V0lXwWGQZwH+LnX87doAYhem4caOEusRP9/g6jVDQmZ8XOk1nw=="
-    },
-    "node_modules/tinycolor2": {
-      "version": "1.6.0",
-      "resolved": "https://registry.npmmirror.com/tinycolor2/-/tinycolor2-1.6.0.tgz",
-      "integrity": "sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw=="
-    },
-    "node_modules/tmpl": {
-      "version": "1.0.5",
-      "resolved": "https://registry.npmmirror.com/tmpl/-/tmpl-1.0.5.tgz",
-      "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==",
-      "dev": true,
-      "peer": true
-    },
-    "node_modules/to-fast-properties": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmmirror.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
-      "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
-      "engines": {
-        "node": ">=4"
-      }
-    },
-    "node_modules/to-regex-range": {
-      "version": "5.0.1",
-      "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz",
-      "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
-      "dependencies": {
-        "is-number": "^7.0.0"
-      },
-      "engines": {
-        "node": ">=8.0"
-      }
-    },
-    "node_modules/toidentifier": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmmirror.com/toidentifier/-/toidentifier-1.0.1.tgz",
-      "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
-      "dev": true,
-      "engines": {
-        "node": ">=0.6"
-      }
-    },
-    "node_modules/tough-cookie": {
-      "version": "4.1.3",
-      "resolved": "https://registry.npmmirror.com/tough-cookie/-/tough-cookie-4.1.3.tgz",
-      "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "psl": "^1.1.33",
-        "punycode": "^2.1.1",
-        "universalify": "^0.2.0",
-        "url-parse": "^1.5.3"
-      },
-      "engines": {
-        "node": ">=6"
-      }
-    },
-    "node_modules/tough-cookie/node_modules/universalify": {
-      "version": "0.2.0",
-      "resolved": "https://registry.npmmirror.com/universalify/-/universalify-0.2.0.tgz",
-      "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==",
-      "dev": true,
-      "peer": true,
-      "engines": {
-        "node": ">= 4.0.0"
-      }
-    },
-    "node_modules/tr46": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmmirror.com/tr46/-/tr46-2.1.0.tgz",
-      "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "punycode": "^2.1.1"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/ts-api-utils": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmmirror.com/ts-api-utils/-/ts-api-utils-1.2.1.tgz",
-      "integrity": "sha512-RIYA36cJn2WiH9Hy77hdF9r7oEwxAtB/TS9/S4Qd90Ap4z5FSiin5zEiTL44OII1Y3IIlEvxwxFUVgrHSZ/UpA==",
-      "dev": true,
-      "engines": {
-        "node": ">=16"
-      },
-      "peerDependencies": {
-        "typescript": ">=4.2.0"
-      }
-    },
-    "node_modules/tsconfig-paths": {
-      "version": "3.15.0",
-      "resolved": "https://registry.npmmirror.com/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz",
-      "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==",
-      "dev": true,
-      "dependencies": {
-        "@types/json5": "^0.0.29",
-        "json5": "^1.0.2",
-        "minimist": "^1.2.6",
-        "strip-bom": "^3.0.0"
-      }
-    },
-    "node_modules/tsconfig-paths/node_modules/json5": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmmirror.com/json5/-/json5-1.0.2.tgz",
-      "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
-      "dev": true,
-      "dependencies": {
-        "minimist": "^1.2.0"
-      },
-      "bin": {
-        "json5": "lib/cli.js"
-      }
-    },
-    "node_modules/tsconfig-paths/node_modules/strip-bom": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmmirror.com/strip-bom/-/strip-bom-3.0.0.tgz",
-      "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==",
-      "dev": true,
-      "engines": {
-        "node": ">=4"
-      }
-    },
-    "node_modules/tslib": {
-      "version": "2.6.2",
-      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.6.2.tgz",
-      "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q=="
-    },
-    "node_modules/type-check": {
-      "version": "0.4.0",
-      "resolved": "https://registry.npmmirror.com/type-check/-/type-check-0.4.0.tgz",
-      "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
-      "dependencies": {
-        "prelude-ls": "^1.2.1"
-      },
-      "engines": {
-        "node": ">= 0.8.0"
-      }
-    },
-    "node_modules/type-detect": {
-      "version": "4.0.8",
-      "resolved": "https://registry.npmmirror.com/type-detect/-/type-detect-4.0.8.tgz",
-      "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
-      "dev": true,
-      "peer": true,
-      "engines": {
-        "node": ">=4"
-      }
-    },
-    "node_modules/type-fest": {
-      "version": "0.21.3",
-      "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-0.21.3.tgz",
-      "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
-      "dev": true,
-      "peer": true,
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/type-is": {
-      "version": "1.6.18",
-      "resolved": "https://registry.npmmirror.com/type-is/-/type-is-1.6.18.tgz",
-      "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
-      "dev": true,
-      "dependencies": {
-        "media-typer": "0.3.0",
-        "mime-types": "~2.1.24"
-      },
-      "engines": {
-        "node": ">= 0.6"
-      }
-    },
-    "node_modules/typed-array-buffer": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmmirror.com/typed-array-buffer/-/typed-array-buffer-1.0.1.tgz",
-      "integrity": "sha512-RSqu1UEuSlrBhHTWC8O9FnPjOduNs4M7rJ4pRKoEjtx1zUNOPN2sSXHLDX+Y2WPbHIxbvg4JFo2DNAEfPIKWoQ==",
-      "dev": true,
-      "dependencies": {
-        "call-bind": "^1.0.6",
-        "es-errors": "^1.3.0",
-        "is-typed-array": "^1.1.13"
-      },
-      "engines": {
-        "node": ">= 0.4"
-      }
-    },
-    "node_modules/typed-array-byte-length": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmmirror.com/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz",
-      "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==",
-      "dev": true,
-      "dependencies": {
-        "call-bind": "^1.0.2",
-        "for-each": "^0.3.3",
-        "has-proto": "^1.0.1",
-        "is-typed-array": "^1.1.10"
-      },
-      "engines": {
-        "node": ">= 0.4"
-      }
-    },
-    "node_modules/typed-array-byte-offset": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmmirror.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz",
-      "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==",
-      "dev": true,
-      "dependencies": {
-        "available-typed-arrays": "^1.0.5",
-        "call-bind": "^1.0.2",
-        "for-each": "^0.3.3",
-        "has-proto": "^1.0.1",
-        "is-typed-array": "^1.1.10"
-      },
-      "engines": {
-        "node": ">= 0.4"
-      }
-    },
-    "node_modules/typed-array-length": {
-      "version": "1.0.4",
-      "resolved": "https://registry.npmmirror.com/typed-array-length/-/typed-array-length-1.0.4.tgz",
-      "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==",
-      "dev": true,
-      "dependencies": {
-        "call-bind": "^1.0.2",
-        "for-each": "^0.3.3",
-        "is-typed-array": "^1.1.9"
-      }
-    },
-    "node_modules/typedarray-to-buffer": {
-      "version": "3.1.5",
-      "resolved": "https://registry.npmmirror.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz",
-      "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "is-typedarray": "^1.0.0"
-      }
-    },
-    "node_modules/typescript": {
-      "version": "5.3.3",
-      "resolved": "https://registry.npmmirror.com/typescript/-/typescript-5.3.3.tgz",
-      "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==",
-      "devOptional": true,
-      "bin": {
-        "tsc": "bin/tsc",
-        "tsserver": "bin/tsserver"
-      },
-      "engines": {
-        "node": ">=14.17"
-      }
-    },
-    "node_modules/unbox-primitive": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmmirror.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz",
-      "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==",
-      "dev": true,
-      "dependencies": {
-        "call-bind": "^1.0.2",
-        "has-bigints": "^1.0.2",
-        "has-symbols": "^1.0.3",
-        "which-boxed-primitive": "^1.0.2"
-      }
-    },
-    "node_modules/undici-types": {
-      "version": "5.26.5",
-      "resolved": "https://registry.npmmirror.com/undici-types/-/undici-types-5.26.5.tgz",
-      "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA=="
-    },
-    "node_modules/unicode-canonical-property-names-ecmascript": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmmirror.com/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.npmmirror.com/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.npmmirror.com/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.npmmirror.com/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/universalify": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmmirror.com/universalify/-/universalify-2.0.1.tgz",
-      "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==",
-      "engines": {
-        "node": ">= 10.0.0"
-      }
-    },
-    "node_modules/unpipe": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmmirror.com/unpipe/-/unpipe-1.0.0.tgz",
-      "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
-      "dev": true,
-      "engines": {
-        "node": ">= 0.8"
-      }
-    },
-    "node_modules/unquote": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmmirror.com/unquote/-/unquote-1.1.1.tgz",
-      "integrity": "sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg=="
-    },
-    "node_modules/update-browserslist-db": {
-      "version": "1.0.13",
-      "resolved": "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz",
-      "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==",
-      "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.npmmirror.com/uri-js/-/uri-js-4.4.1.tgz",
-      "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
-      "dependencies": {
-        "punycode": "^2.1.0"
-      }
-    },
-    "node_modules/url-parse": {
-      "version": "1.5.10",
-      "resolved": "https://registry.npmmirror.com/url-parse/-/url-parse-1.5.10.tgz",
-      "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "querystringify": "^2.1.1",
-        "requires-port": "^1.0.0"
-      }
-    },
-    "node_modules/utif": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmmirror.com/utif/-/utif-2.0.1.tgz",
-      "integrity": "sha512-Z/S1fNKCicQTf375lIP9G8Sa1H/phcysstNrrSdZKj1f9g58J4NMgb5IgiEZN9/nLMPDwF0W7hdOe9Qq2IYoLg==",
-      "dependencies": {
-        "pako": "^1.0.5"
-      }
-    },
-    "node_modules/util-deprecate": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz",
-      "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
-    },
-    "node_modules/utils-merge": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmmirror.com/utils-merge/-/utils-merge-1.0.1.tgz",
-      "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
-      "dev": true,
-      "engines": {
-        "node": ">= 0.4.0"
-      }
-    },
-    "node_modules/v8-to-istanbul": {
-      "version": "8.1.1",
-      "resolved": "https://registry.npmmirror.com/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz",
-      "integrity": "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "@types/istanbul-lib-coverage": "^2.0.1",
-        "convert-source-map": "^1.6.0",
-        "source-map": "^0.7.3"
-      },
-      "engines": {
-        "node": ">=10.12.0"
-      }
-    },
-    "node_modules/v8-to-istanbul/node_modules/convert-source-map": {
-      "version": "1.9.0",
-      "resolved": "https://registry.npmmirror.com/convert-source-map/-/convert-source-map-1.9.0.tgz",
-      "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==",
-      "dev": true,
-      "peer": true
-    },
-    "node_modules/v8-to-istanbul/node_modules/source-map": {
-      "version": "0.7.4",
-      "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.7.4.tgz",
-      "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==",
-      "dev": true,
-      "peer": true,
-      "engines": {
-        "node": ">= 8"
-      }
-    },
-    "node_modules/vary": {
-      "version": "1.1.2",
-      "resolved": "https://registry.npmmirror.com/vary/-/vary-1.1.2.tgz",
-      "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
-      "dev": true,
-      "engines": {
-        "node": ">= 0.8"
-      }
-    },
-    "node_modules/vite": {
-      "version": "4.1.5",
-      "resolved": "https://registry.npmmirror.com/vite/-/vite-4.1.5.tgz",
-      "integrity": "sha512-zJ0RiVkf61kpd7O+VtU6r766xgnTaIknP/lR6sJTZq3HtVJ3HGnTo5DaJhTUtYoTyS/CQwZ6yEVdc/lrmQT7dQ==",
-      "dependencies": {
-        "esbuild": "^0.16.14",
-        "postcss": "^8.4.21",
-        "resolve": "^1.22.1",
-        "rollup": "^3.10.0"
-      },
-      "bin": {
-        "vite": "bin/vite.js"
-      },
-      "engines": {
-        "node": "^14.18.0 || >=16.0.0"
-      },
-      "optionalDependencies": {
-        "fsevents": "~2.3.2"
-      },
-      "peerDependencies": {
-        "@types/node": ">= 14",
-        "less": "*",
-        "sass": "*",
-        "stylus": "*",
-        "sugarss": "*",
-        "terser": "^5.4.0"
-      },
-      "peerDependenciesMeta": {
-        "@types/node": {
-          "optional": true
-        },
-        "less": {
-          "optional": true
-        },
-        "sass": {
-          "optional": true
-        },
-        "stylus": {
-          "optional": true
-        },
-        "sugarss": {
-          "optional": true
-        },
-        "terser": {
-          "optional": true
-        }
-      }
-    },
-    "node_modules/vite/node_modules/@esbuild/win32-x64": {
-      "version": "0.16.17",
-      "resolved": "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.16.17.tgz",
-      "integrity": "sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q==",
-      "cpu": [
-        "x64"
-      ],
-      "optional": true,
-      "os": [
-        "win32"
-      ],
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/vite/node_modules/esbuild": {
-      "version": "0.16.17",
-      "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.16.17.tgz",
-      "integrity": "sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg==",
-      "hasInstallScript": true,
-      "bin": {
-        "esbuild": "bin/esbuild"
-      },
-      "engines": {
-        "node": ">=12"
-      },
-      "optionalDependencies": {
-        "@esbuild/android-arm": "0.16.17",
-        "@esbuild/android-arm64": "0.16.17",
-        "@esbuild/android-x64": "0.16.17",
-        "@esbuild/darwin-arm64": "0.16.17",
-        "@esbuild/darwin-x64": "0.16.17",
-        "@esbuild/freebsd-arm64": "0.16.17",
-        "@esbuild/freebsd-x64": "0.16.17",
-        "@esbuild/linux-arm": "0.16.17",
-        "@esbuild/linux-arm64": "0.16.17",
-        "@esbuild/linux-ia32": "0.16.17",
-        "@esbuild/linux-loong64": "0.16.17",
-        "@esbuild/linux-mips64el": "0.16.17",
-        "@esbuild/linux-ppc64": "0.16.17",
-        "@esbuild/linux-riscv64": "0.16.17",
-        "@esbuild/linux-s390x": "0.16.17",
-        "@esbuild/linux-x64": "0.16.17",
-        "@esbuild/netbsd-x64": "0.16.17",
-        "@esbuild/openbsd-x64": "0.16.17",
-        "@esbuild/sunos-x64": "0.16.17",
-        "@esbuild/win32-arm64": "0.16.17",
-        "@esbuild/win32-ia32": "0.16.17",
-        "@esbuild/win32-x64": "0.16.17"
-      }
-    },
-    "node_modules/vue": {
-      "version": "3.4.18",
-      "resolved": "https://registry.npmmirror.com/vue/-/vue-3.4.18.tgz",
-      "integrity": "sha512-0zLRYamFRe0wF4q2L3O24KQzLyLpL64ye1RUToOgOxuWZsb/FhaNRdGmeozdtVYLz6tl94OXLaK7/WQIrVCw1A==",
-      "dependencies": {
-        "@vue/compiler-dom": "3.4.18",
-        "@vue/compiler-sfc": "3.4.18",
-        "@vue/runtime-dom": "3.4.18",
-        "@vue/server-renderer": "3.4.18",
-        "@vue/shared": "3.4.18"
-      },
-      "peerDependencies": {
-        "typescript": "*"
-      },
-      "peerDependenciesMeta": {
-        "typescript": {
-          "optional": true
-        }
-      }
-    },
-    "node_modules/vue-eslint-parser": {
-      "version": "9.4.2",
-      "resolved": "https://registry.npmmirror.com/vue-eslint-parser/-/vue-eslint-parser-9.4.2.tgz",
-      "integrity": "sha512-Ry9oiGmCAK91HrKMtCrKFWmSFWvYkpGglCeFAIqDdr9zdXmMMpJOmUJS7WWsW7fX81h6mwHmUZCQQ1E0PkSwYQ==",
-      "dev": true,
-      "dependencies": {
-        "debug": "^4.3.4",
-        "eslint-scope": "^7.1.1",
-        "eslint-visitor-keys": "^3.3.0",
-        "espree": "^9.3.1",
-        "esquery": "^1.4.0",
-        "lodash": "^4.17.21",
-        "semver": "^7.3.6"
-      },
-      "engines": {
-        "node": "^14.17.0 || >=16.0.0"
-      },
-      "peerDependencies": {
-        "eslint": ">=6.0.0"
-      }
-    },
-    "node_modules/vue-eslint-parser/node_modules/lru-cache": {
-      "version": "6.0.0",
-      "resolved": "https://registry.npmmirror.com/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/vue-eslint-parser/node_modules/semver": {
-      "version": "7.6.0",
-      "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.0.tgz",
-      "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
-      "dev": true,
-      "dependencies": {
-        "lru-cache": "^6.0.0"
-      },
-      "bin": {
-        "semver": "bin/semver.js"
-      },
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/vue-eslint-parser/node_modules/yallist": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz",
-      "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
-      "dev": true
-    },
-    "node_modules/vue-i18n": {
-      "version": "9.9.1",
-      "resolved": "https://registry.npmmirror.com/vue-i18n/-/vue-i18n-9.9.1.tgz",
-      "integrity": "sha512-xyQ4VspLdNSPTKBFBPWa1tvtj+9HuockZwgFeD2OhxxXuC2CWeNvV4seu2o9+vbQOyQbhAM5Ez56oxUrrnTWdw==",
-      "dependencies": {
-        "@intlify/core-base": "9.9.1",
-        "@intlify/shared": "9.9.1",
-        "@vue/devtools-api": "^6.5.0"
-      },
-      "engines": {
-        "node": ">= 16"
-      },
-      "peerDependencies": {
-        "vue": "^3.0.0"
-      }
-    },
-    "node_modules/vue-i18n/node_modules/@intlify/core-base": {
-      "version": "9.9.1",
-      "resolved": "https://registry.npmmirror.com/@intlify/core-base/-/core-base-9.9.1.tgz",
-      "integrity": "sha512-qsV15dg7jNX2faBRyKMgZS8UcFJViWEUPLdzZ9UR0kQZpFVeIpc0AG7ZOfeP7pX2T9SQ5jSiorq/tii9nkkafA==",
-      "dependencies": {
-        "@intlify/message-compiler": "9.9.1",
-        "@intlify/shared": "9.9.1"
-      },
-      "engines": {
-        "node": ">= 16"
-      }
-    },
-    "node_modules/vue-i18n/node_modules/@intlify/message-compiler": {
-      "version": "9.9.1",
-      "resolved": "https://registry.npmmirror.com/@intlify/message-compiler/-/message-compiler-9.9.1.tgz",
-      "integrity": "sha512-zTvP6X6HeumHOXuAE1CMMsV6tTX+opKMOxO1OHTCg5N5Sm/F7d8o2jdT6W6L5oHUsJ/vvkGefHIs7Q3hfowmsA==",
-      "dependencies": {
-        "@intlify/shared": "9.9.1",
-        "source-map-js": "^1.0.2"
-      },
-      "engines": {
-        "node": ">= 16"
-      }
-    },
-    "node_modules/vue-i18n/node_modules/@intlify/shared": {
-      "version": "9.9.1",
-      "resolved": "https://registry.npmmirror.com/@intlify/shared/-/shared-9.9.1.tgz",
-      "integrity": "sha512-b3Pta1nwkz5rGq434v0psHwEwHGy1pYCttfcM22IE//K9owbpkEvFptx9VcuRAxjQdrO2If249cmDDjBu5wMDA==",
-      "engines": {
-        "node": ">= 16"
-      }
-    },
-    "node_modules/vue-router": {
-      "version": "4.2.5",
-      "resolved": "https://registry.npmmirror.com/vue-router/-/vue-router-4.2.5.tgz",
-      "integrity": "sha512-DIUpKcyg4+PTQKfFPX88UWhlagBEBEfJ5A8XDXRJLUnZOvcpMF8o/dnL90vpVkGaPbjvXazV/rC1qBKrZlFugw==",
-      "dependencies": {
-        "@vue/devtools-api": "^6.5.0"
-      },
-      "peerDependencies": {
-        "vue": "^3.2.0"
-      }
-    },
-    "node_modules/vue-template-compiler": {
-      "version": "2.7.16",
-      "resolved": "https://registry.npmmirror.com/vue-template-compiler/-/vue-template-compiler-2.7.16.tgz",
-      "integrity": "sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==",
-      "dev": true,
-      "dependencies": {
-        "de-indent": "^1.0.2",
-        "he": "^1.2.0"
-      }
-    },
-    "node_modules/vue-tsc": {
-      "version": "1.8.27",
-      "resolved": "https://registry.npmmirror.com/vue-tsc/-/vue-tsc-1.8.27.tgz",
-      "integrity": "sha512-WesKCAZCRAbmmhuGl3+VrdWItEvfoFIPXOvUJkjULi+x+6G/Dy69yO3TBRJDr9eUlmsNAwVmxsNZxvHKzbkKdg==",
-      "dev": true,
-      "dependencies": {
-        "@volar/typescript": "~1.11.1",
-        "@vue/language-core": "1.8.27",
-        "semver": "^7.5.4"
-      },
-      "bin": {
-        "vue-tsc": "bin/vue-tsc.js"
-      },
-      "peerDependencies": {
-        "typescript": "*"
-      }
-    },
-    "node_modules/vue-tsc/node_modules/lru-cache": {
-      "version": "6.0.0",
-      "resolved": "https://registry.npmmirror.com/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/vue-tsc/node_modules/semver": {
-      "version": "7.6.0",
-      "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.0.tgz",
-      "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
-      "dev": true,
-      "dependencies": {
-        "lru-cache": "^6.0.0"
-      },
-      "bin": {
-        "semver": "bin/semver.js"
-      },
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/vue-tsc/node_modules/yallist": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz",
-      "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
-      "dev": true
-    },
-    "node_modules/vue/node_modules/@vue/compiler-core": {
-      "version": "3.4.18",
-      "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.4.18.tgz",
-      "integrity": "sha512-F7YK8lMK0iv6b9/Gdk15A67wM0KKZvxDxed0RR60C1z9tIJTKta+urs4j0RTN5XqHISzI3etN3mX0uHhjmoqjQ==",
-      "dependencies": {
-        "@babel/parser": "^7.23.9",
-        "@vue/shared": "3.4.18",
-        "entities": "^4.5.0",
-        "estree-walker": "^2.0.2",
-        "source-map-js": "^1.0.2"
-      }
-    },
-    "node_modules/vue/node_modules/@vue/compiler-dom": {
-      "version": "3.4.18",
-      "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.4.18.tgz",
-      "integrity": "sha512-24Eb8lcMfInefvQ6YlEVS18w5Q66f4+uXWVA+yb7praKbyjHRNuKVWGuinfSSjM0ZIiPi++QWukhkgznBaqpEA==",
-      "dependencies": {
-        "@vue/compiler-core": "3.4.18",
-        "@vue/shared": "3.4.18"
-      }
-    },
-    "node_modules/vue/node_modules/@vue/compiler-sfc": {
-      "version": "3.4.18",
-      "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.4.18.tgz",
-      "integrity": "sha512-rG5tqtnzwrVpMqAQ7FHtvHaV70G6LLfJIWLYZB/jZ9m/hrnZmIQh+H3ewnC5onwe/ibljm9+ZupxeElzqCkTAw==",
-      "dependencies": {
-        "@babel/parser": "^7.23.9",
-        "@vue/compiler-core": "3.4.18",
-        "@vue/compiler-dom": "3.4.18",
-        "@vue/compiler-ssr": "3.4.18",
-        "@vue/shared": "3.4.18",
-        "estree-walker": "^2.0.2",
-        "magic-string": "^0.30.6",
-        "postcss": "^8.4.33",
-        "source-map-js": "^1.0.2"
-      }
-    },
-    "node_modules/vue/node_modules/@vue/compiler-ssr": {
-      "version": "3.4.18",
-      "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.4.18.tgz",
-      "integrity": "sha512-hSlv20oUhPxo2UYUacHgGaxtqP0tvFo6ixxxD6JlXIkwzwoZ9eKK6PFQN4hNK/R13JlNyldwWt/fqGBKgWJ6nQ==",
-      "dependencies": {
-        "@vue/compiler-dom": "3.4.18",
-        "@vue/shared": "3.4.18"
-      }
-    },
-    "node_modules/vue/node_modules/@vue/shared": {
-      "version": "3.4.18",
-      "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.4.18.tgz",
-      "integrity": "sha512-CxouGFxxaW5r1WbrSmWwck3No58rApXgRSBxrqgnY1K+jk20F6DrXJkHdH9n4HVT+/B6G2CAn213Uq3npWiy8Q=="
-    },
-    "node_modules/w3c-hr-time": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmmirror.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz",
-      "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==",
-      "deprecated": "Use your platform's native performance.now() and performance.timeOrigin.",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "browser-process-hrtime": "^1.0.0"
-      }
-    },
-    "node_modules/w3c-xmlserializer": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmmirror.com/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz",
-      "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "xml-name-validator": "^3.0.0"
-      },
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/w3c-xmlserializer/node_modules/xml-name-validator": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmmirror.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz",
-      "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==",
-      "dev": true,
-      "peer": true
-    },
-    "node_modules/walker": {
-      "version": "1.0.8",
-      "resolved": "https://registry.npmmirror.com/walker/-/walker-1.0.8.tgz",
-      "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "makeerror": "1.0.12"
-      }
-    },
-    "node_modules/watchpack": {
-      "version": "2.4.0",
-      "resolved": "https://registry.npmmirror.com/watchpack/-/watchpack-2.4.0.tgz",
-      "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==",
-      "peer": true,
-      "dependencies": {
-        "glob-to-regexp": "^0.4.1",
-        "graceful-fs": "^4.1.2"
-      },
-      "engines": {
-        "node": ">=10.13.0"
-      }
-    },
-    "node_modules/webidl-conversions": {
-      "version": "6.1.0",
-      "resolved": "https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz",
-      "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==",
-      "dev": true,
-      "peer": true,
-      "engines": {
-        "node": ">=10.4"
-      }
-    },
-    "node_modules/webpack": {
-      "version": "5.90.1",
-      "resolved": "https://registry.npmmirror.com/webpack/-/webpack-5.90.1.tgz",
-      "integrity": "sha512-SstPdlAC5IvgFnhiRok8hqJo/+ArAbNv7rhU4fnWGHNVfN59HSQFaxZDSAL3IFG2YmqxuRs+IU33milSxbPlog==",
-      "peer": true,
-      "dependencies": {
-        "@types/eslint-scope": "^3.7.3",
-        "@types/estree": "^1.0.5",
-        "@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.21.10",
-        "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.10",
-        "watchpack": "^2.4.0",
-        "webpack-sources": "^3.2.3"
-      },
-      "bin": {
-        "webpack": "bin/webpack.js"
-      },
-      "engines": {
-        "node": ">=10.13.0"
-      },
-      "peerDependenciesMeta": {
-        "webpack-cli": {
-          "optional": true
-        }
-      }
-    },
-    "node_modules/webpack-sources": {
-      "version": "3.2.3",
-      "resolved": "https://registry.npmmirror.com/webpack-sources/-/webpack-sources-3.2.3.tgz",
-      "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==",
-      "peer": true,
-      "engines": {
-        "node": ">=10.13.0"
-      }
-    },
-    "node_modules/webpack/node_modules/eslint-scope": {
-      "version": "5.1.1",
-      "resolved": "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-5.1.1.tgz",
-      "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
-      "peer": true,
-      "dependencies": {
-        "esrecurse": "^4.3.0",
-        "estraverse": "^4.1.1"
-      },
-      "engines": {
-        "node": ">=8.0.0"
-      }
-    },
-    "node_modules/webpack/node_modules/estraverse": {
-      "version": "4.3.0",
-      "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-4.3.0.tgz",
-      "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
-      "peer": true,
-      "engines": {
-        "node": ">=4.0"
-      }
-    },
-    "node_modules/whatwg-encoding": {
-      "version": "1.0.5",
-      "resolved": "https://registry.npmmirror.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz",
-      "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "iconv-lite": "0.4.24"
-      }
-    },
-    "node_modules/whatwg-mimetype": {
-      "version": "2.3.0",
-      "resolved": "https://registry.npmmirror.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz",
-      "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==",
-      "dev": true,
-      "peer": true
-    },
-    "node_modules/whatwg-url": {
-      "version": "8.7.0",
-      "resolved": "https://registry.npmmirror.com/whatwg-url/-/whatwg-url-8.7.0.tgz",
-      "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "lodash": "^4.7.0",
-        "tr46": "^2.1.0",
-        "webidl-conversions": "^6.1.0"
-      },
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/which": {
-      "version": "2.0.2",
-      "resolved": "https://registry.npmmirror.com/which/-/which-2.0.2.tgz",
-      "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
-      "dependencies": {
-        "isexe": "^2.0.0"
-      },
-      "bin": {
-        "node-which": "bin/node-which"
-      },
-      "engines": {
-        "node": ">= 8"
-      }
-    },
-    "node_modules/which-boxed-primitive": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmmirror.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz",
-      "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==",
-      "dev": true,
-      "dependencies": {
-        "is-bigint": "^1.0.1",
-        "is-boolean-object": "^1.1.0",
-        "is-number-object": "^1.0.4",
-        "is-string": "^1.0.5",
-        "is-symbol": "^1.0.3"
-      }
-    },
-    "node_modules/which-typed-array": {
-      "version": "1.1.14",
-      "resolved": "https://registry.npmmirror.com/which-typed-array/-/which-typed-array-1.1.14.tgz",
-      "integrity": "sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg==",
-      "dev": true,
-      "dependencies": {
-        "available-typed-arrays": "^1.0.6",
-        "call-bind": "^1.0.5",
-        "for-each": "^0.3.3",
-        "gopd": "^1.0.1",
-        "has-tostringtag": "^1.0.1"
-      },
-      "engines": {
-        "node": ">= 0.4"
-      }
-    },
-    "node_modules/wrap-ansi": {
-      "version": "7.0.0",
-      "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
-      "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "ansi-styles": "^4.0.0",
-        "string-width": "^4.1.0",
-        "strip-ansi": "^6.0.0"
-      },
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/wrap-ansi/node_modules/ansi-styles": {
-      "version": "4.3.0",
-      "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
-      "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "color-convert": "^2.0.1"
-      },
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/wrap-ansi/node_modules/color-convert": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
-      "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
-      "dev": true,
-      "peer": 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.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
-      "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
-      "dev": true,
-      "peer": true
-    },
-    "node_modules/wrappy": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz",
-      "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
-    },
-    "node_modules/write-file-atomic": {
-      "version": "3.0.3",
-      "resolved": "https://registry.npmmirror.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz",
-      "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==",
-      "dev": true,
-      "peer": true,
-      "dependencies": {
-        "imurmurhash": "^0.1.4",
-        "is-typedarray": "^1.0.0",
-        "signal-exit": "^3.0.2",
-        "typedarray-to-buffer": "^3.1.5"
-      }
-    },
-    "node_modules/ws": {
-      "version": "8.16.0",
-      "resolved": "https://registry.npmmirror.com/ws/-/ws-8.16.0.tgz",
-      "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==",
-      "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/xhr": {
-      "version": "2.6.0",
-      "resolved": "https://registry.npmmirror.com/xhr/-/xhr-2.6.0.tgz",
-      "integrity": "sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==",
-      "dependencies": {
-        "global": "~4.4.0",
-        "is-function": "^1.0.1",
-        "parse-headers": "^2.0.0",
-        "xtend": "^4.0.0"
-      }
-    },
-    "node_modules/xml-name-validator": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmmirror.com/xml-name-validator/-/xml-name-validator-4.0.0.tgz",
-      "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==",
-      "dev": true,
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/xml-parse-from-string": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmmirror.com/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz",
-      "integrity": "sha512-ErcKwJTF54uRzzNMXq2X5sMIy88zJvfN2DmdoQvy7PAFJ+tPRU6ydWuOKNMyfmOjdyBQTFREi60s0Y0SyI0G0g=="
-    },
-    "node_modules/xml2js": {
-      "version": "0.4.23",
-      "resolved": "https://registry.npmmirror.com/xml2js/-/xml2js-0.4.23.tgz",
-      "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==",
-      "dependencies": {
-        "sax": ">=0.6.0",
-        "xmlbuilder": "~11.0.0"
-      },
-      "engines": {
-        "node": ">=4.0.0"
-      }
-    },
-    "node_modules/xmlbuilder": {
-      "version": "11.0.1",
-      "resolved": "https://registry.npmmirror.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz",
-      "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==",
-      "engines": {
-        "node": ">=4.0"
-      }
-    },
-    "node_modules/xmlchars": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npmmirror.com/xmlchars/-/xmlchars-2.2.0.tgz",
-      "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==",
-      "dev": true,
-      "peer": true
-    },
-    "node_modules/xmlhttprequest": {
-      "version": "1.8.0",
-      "resolved": "https://registry.npmmirror.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz",
-      "integrity": "sha512-58Im/U0mlVBLM38NdZjHyhuMtCqa61469k2YP/AaPbvCoV9aQGUpbJBj1QRm2ytRiVQBD/fsw7L2bJGDVQswBA==",
-      "engines": {
-        "node": ">=0.4.0"
-      }
-    },
-    "node_modules/xregexp": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmmirror.com/xregexp/-/xregexp-3.1.0.tgz",
-      "integrity": "sha512-4Y1x6DyB8xRoxosooa6PlGWqmmSKatbzhrftZ7Purmm4B8R4qIEJG1A2hZsdz5DhmIqS0msC0I7KEq93GphEVg=="
-    },
-    "node_modules/xtend": {
-      "version": "4.0.2",
-      "resolved": "https://registry.npmmirror.com/xtend/-/xtend-4.0.2.tgz",
-      "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
-      "engines": {
-        "node": ">=0.4"
-      }
-    },
-    "node_modules/y18n": {
-      "version": "5.0.8",
-      "resolved": "https://registry.npmmirror.com/y18n/-/y18n-5.0.8.tgz",
-      "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
-      "dev": true,
-      "peer": true,
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/yallist": {
-      "version": "3.1.1",
-      "resolved": "https://registry.npmmirror.com/yallist/-/yallist-3.1.1.tgz",
-      "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="
-    },
-    "node_modules/yaml": {
-      "version": "1.10.2",
-      "resolved": "https://registry.npmmirror.com/yaml/-/yaml-1.10.2.tgz",
-      "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
-      "engines": {
-        "node": ">= 6"
-      }
-    },
-    "node_modules/yargs": {
-      "version": "16.2.0",
-      "resolved": "https://registry.npmmirror.com/yargs/-/yargs-16.2.0.tgz",
-      "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
-      "dev": true,
-      "peer": 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/yargs-parser": {
-      "version": "20.2.9",
-      "resolved": "https://registry.npmmirror.com/yargs-parser/-/yargs-parser-20.2.9.tgz",
-      "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
-      "dev": true,
-      "peer": true,
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/yocto-queue": {
-      "version": "0.1.0",
-      "resolved": "https://registry.npmmirror.com/yocto-queue/-/yocto-queue-0.1.0.tgz",
-      "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
-      "engines": {
-        "node": ">=10"
-      }
-    }
-  },
-  "dependencies": {
-    "@aashutoshrathi/word-wrap": {
-      "version": "1.2.6",
-      "resolved": "https://registry.npmmirror.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz",
-      "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA=="
-    },
-    "@ampproject/remapping": {
-      "version": "2.2.1",
-      "resolved": "https://registry.npmmirror.com/@ampproject/remapping/-/remapping-2.2.1.tgz",
-      "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==",
-      "requires": {
-        "@jridgewell/gen-mapping": "^0.3.0",
-        "@jridgewell/trace-mapping": "^0.3.9"
-      }
-    },
-    "@babel/code-frame": {
-      "version": "7.23.5",
-      "resolved": "https://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.23.5.tgz",
-      "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==",
-      "requires": {
-        "@babel/highlight": "^7.23.4",
-        "chalk": "^2.4.2"
-      }
-    },
-    "@babel/compat-data": {
-      "version": "7.23.5",
-      "resolved": "https://registry.npmmirror.com/@babel/compat-data/-/compat-data-7.23.5.tgz",
-      "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw=="
-    },
-    "@babel/core": {
-      "version": "7.23.9",
-      "resolved": "https://registry.npmmirror.com/@babel/core/-/core-7.23.9.tgz",
-      "integrity": "sha512-5q0175NOjddqpvvzU+kDiSOAk4PfdO6FvwCWoQ6RO7rTzEe8vlo+4HVfcnAREhD4npMs0e9uZypjTwzZPCf/cw==",
-      "requires": {
-        "@ampproject/remapping": "^2.2.0",
-        "@babel/code-frame": "^7.23.5",
-        "@babel/generator": "^7.23.6",
-        "@babel/helper-compilation-targets": "^7.23.6",
-        "@babel/helper-module-transforms": "^7.23.3",
-        "@babel/helpers": "^7.23.9",
-        "@babel/parser": "^7.23.9",
-        "@babel/template": "^7.23.9",
-        "@babel/traverse": "^7.23.9",
-        "@babel/types": "^7.23.9",
-        "convert-source-map": "^2.0.0",
-        "debug": "^4.1.0",
-        "gensync": "^1.0.0-beta.2",
-        "json5": "^2.2.3",
-        "semver": "^6.3.1"
-      }
-    },
-    "@babel/generator": {
-      "version": "7.23.6",
-      "resolved": "https://registry.npmmirror.com/@babel/generator/-/generator-7.23.6.tgz",
-      "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==",
-      "requires": {
-        "@babel/types": "^7.23.6",
-        "@jridgewell/gen-mapping": "^0.3.2",
-        "@jridgewell/trace-mapping": "^0.3.17",
-        "jsesc": "^2.5.1"
-      }
-    },
-    "@babel/helper-annotate-as-pure": {
-      "version": "7.22.5",
-      "resolved": "https://registry.npmmirror.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz",
-      "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==",
-      "dev": true,
-      "requires": {
-        "@babel/types": "^7.22.5"
-      }
-    },
-    "@babel/helper-builder-binary-assignment-operator-visitor": {
-      "version": "7.22.15",
-      "resolved": "https://registry.npmmirror.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz",
-      "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==",
-      "dev": true,
-      "requires": {
-        "@babel/types": "^7.22.15"
-      }
-    },
-    "@babel/helper-compilation-targets": {
-      "version": "7.23.6",
-      "resolved": "https://registry.npmmirror.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz",
-      "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==",
-      "requires": {
-        "@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"
-      }
-    },
-    "@babel/helper-create-class-features-plugin": {
-      "version": "7.23.10",
-      "resolved": "https://registry.npmmirror.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.10.tgz",
-      "integrity": "sha512-2XpP2XhkXzgxecPNEEK8Vz8Asj9aRxt08oKOqtiZoqV2UGZ5T+EkyP9sXQ9nwMxBIG34a7jmasVqoMop7VdPUw==",
-      "dev": true,
-      "requires": {
-        "@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"
-      }
-    },
-    "@babel/helper-create-regexp-features-plugin": {
-      "version": "7.22.15",
-      "resolved": "https://registry.npmmirror.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz",
-      "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-annotate-as-pure": "^7.22.5",
-        "regexpu-core": "^5.3.1",
-        "semver": "^6.3.1"
-      }
-    },
-    "@babel/helper-define-polyfill-provider": {
-      "version": "0.5.0",
-      "resolved": "https://registry.npmmirror.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.5.0.tgz",
-      "integrity": "sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q==",
-      "dev": true,
-      "requires": {
-        "@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"
-      }
-    },
-    "@babel/helper-environment-visitor": {
-      "version": "7.22.20",
-      "resolved": "https://registry.npmmirror.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz",
-      "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA=="
-    },
-    "@babel/helper-function-name": {
-      "version": "7.23.0",
-      "resolved": "https://registry.npmmirror.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz",
-      "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==",
-      "requires": {
-        "@babel/template": "^7.22.15",
-        "@babel/types": "^7.23.0"
-      }
-    },
-    "@babel/helper-hoist-variables": {
-      "version": "7.22.5",
-      "resolved": "https://registry.npmmirror.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz",
-      "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==",
-      "requires": {
-        "@babel/types": "^7.22.5"
-      }
-    },
-    "@babel/helper-member-expression-to-functions": {
-      "version": "7.23.0",
-      "resolved": "https://registry.npmmirror.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz",
-      "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==",
-      "dev": true,
-      "requires": {
-        "@babel/types": "^7.23.0"
-      }
-    },
-    "@babel/helper-module-imports": {
-      "version": "7.22.15",
-      "resolved": "https://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz",
-      "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==",
-      "requires": {
-        "@babel/types": "^7.22.15"
-      }
-    },
-    "@babel/helper-module-transforms": {
-      "version": "7.23.3",
-      "resolved": "https://registry.npmmirror.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz",
-      "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==",
-      "requires": {
-        "@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"
-      }
-    },
-    "@babel/helper-optimise-call-expression": {
-      "version": "7.22.5",
-      "resolved": "https://registry.npmmirror.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz",
-      "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==",
-      "dev": true,
-      "requires": {
-        "@babel/types": "^7.22.5"
-      }
-    },
-    "@babel/helper-plugin-utils": {
-      "version": "7.22.5",
-      "resolved": "https://registry.npmmirror.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz",
-      "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==",
-      "dev": true
-    },
-    "@babel/helper-remap-async-to-generator": {
-      "version": "7.22.20",
-      "resolved": "https://registry.npmmirror.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz",
-      "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-annotate-as-pure": "^7.22.5",
-        "@babel/helper-environment-visitor": "^7.22.20",
-        "@babel/helper-wrap-function": "^7.22.20"
-      }
-    },
-    "@babel/helper-replace-supers": {
-      "version": "7.22.20",
-      "resolved": "https://registry.npmmirror.com/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz",
-      "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-environment-visitor": "^7.22.20",
-        "@babel/helper-member-expression-to-functions": "^7.22.15",
-        "@babel/helper-optimise-call-expression": "^7.22.5"
-      }
-    },
-    "@babel/helper-simple-access": {
-      "version": "7.22.5",
-      "resolved": "https://registry.npmmirror.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz",
-      "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==",
-      "requires": {
-        "@babel/types": "^7.22.5"
-      }
-    },
-    "@babel/helper-skip-transparent-expression-wrappers": {
-      "version": "7.22.5",
-      "resolved": "https://registry.npmmirror.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz",
-      "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==",
-      "dev": true,
-      "requires": {
-        "@babel/types": "^7.22.5"
-      }
-    },
-    "@babel/helper-split-export-declaration": {
-      "version": "7.22.6",
-      "resolved": "https://registry.npmmirror.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz",
-      "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==",
-      "requires": {
-        "@babel/types": "^7.22.5"
-      }
-    },
-    "@babel/helper-string-parser": {
-      "version": "7.23.4",
-      "resolved": "https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz",
-      "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ=="
-    },
-    "@babel/helper-validator-identifier": {
-      "version": "7.22.20",
-      "resolved": "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz",
-      "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A=="
-    },
-    "@babel/helper-validator-option": {
-      "version": "7.23.5",
-      "resolved": "https://registry.npmmirror.com/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz",
-      "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw=="
-    },
-    "@babel/helper-wrap-function": {
-      "version": "7.22.20",
-      "resolved": "https://registry.npmmirror.com/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz",
-      "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-function-name": "^7.22.5",
-        "@babel/template": "^7.22.15",
-        "@babel/types": "^7.22.19"
-      }
-    },
-    "@babel/helpers": {
-      "version": "7.23.9",
-      "resolved": "https://registry.npmmirror.com/@babel/helpers/-/helpers-7.23.9.tgz",
-      "integrity": "sha512-87ICKgU5t5SzOT7sBMfCOZQ2rHjRU+Pcb9BoILMYz600W6DkVRLFBPwQ18gwUVvggqXivaUakpnxWQGbpywbBQ==",
-      "requires": {
-        "@babel/template": "^7.23.9",
-        "@babel/traverse": "^7.23.9",
-        "@babel/types": "^7.23.9"
-      }
-    },
-    "@babel/highlight": {
-      "version": "7.23.4",
-      "resolved": "https://registry.npmmirror.com/@babel/highlight/-/highlight-7.23.4.tgz",
-      "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==",
-      "requires": {
-        "@babel/helper-validator-identifier": "^7.22.20",
-        "chalk": "^2.4.2",
-        "js-tokens": "^4.0.0"
-      }
-    },
-    "@babel/parser": {
-      "version": "7.23.9",
-      "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.23.9.tgz",
-      "integrity": "sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA=="
-    },
-    "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": {
-      "version": "7.23.3",
-      "resolved": "https://registry.npmmirror.com/@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,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.22.5"
-      }
-    },
-    "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": {
-      "version": "7.23.3",
-      "resolved": "https://registry.npmmirror.com/@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,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.22.5",
-        "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5",
-        "@babel/plugin-transform-optional-chaining": "^7.23.3"
-      }
-    },
-    "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": {
-      "version": "7.23.7",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.7.tgz",
-      "integrity": "sha512-LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-environment-visitor": "^7.22.20",
-        "@babel/helper-plugin-utils": "^7.22.5"
-      }
-    },
-    "@babel/plugin-proposal-private-property-in-object": {
-      "version": "7.21.0-placeholder-for-preset-env.2",
-      "resolved": "https://registry.npmmirror.com/@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,
-      "requires": {}
-    },
-    "@babel/plugin-syntax-async-generators": {
-      "version": "7.8.4",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz",
-      "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.8.0"
-      }
-    },
-    "@babel/plugin-syntax-bigint": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz",
-      "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.8.0"
-      }
-    },
-    "@babel/plugin-syntax-class-properties": {
-      "version": "7.12.13",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz",
-      "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.12.13"
-      }
-    },
-    "@babel/plugin-syntax-class-static-block": {
-      "version": "7.14.5",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz",
-      "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.14.5"
-      }
-    },
-    "@babel/plugin-syntax-dynamic-import": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz",
-      "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.8.0"
-      }
-    },
-    "@babel/plugin-syntax-export-namespace-from": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz",
-      "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.8.3"
-      }
-    },
-    "@babel/plugin-syntax-import-assertions": {
-      "version": "7.23.3",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz",
-      "integrity": "sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.22.5"
-      }
-    },
-    "@babel/plugin-syntax-import-attributes": {
-      "version": "7.23.3",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz",
-      "integrity": "sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.22.5"
-      }
-    },
-    "@babel/plugin-syntax-import-meta": {
-      "version": "7.10.4",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz",
-      "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.10.4"
-      }
-    },
-    "@babel/plugin-syntax-json-strings": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz",
-      "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.8.0"
-      }
-    },
-    "@babel/plugin-syntax-jsx": {
-      "version": "7.23.3",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz",
-      "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.22.5"
-      }
-    },
-    "@babel/plugin-syntax-logical-assignment-operators": {
-      "version": "7.10.4",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz",
-      "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.10.4"
-      }
-    },
-    "@babel/plugin-syntax-nullish-coalescing-operator": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz",
-      "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.8.0"
-      }
-    },
-    "@babel/plugin-syntax-numeric-separator": {
-      "version": "7.10.4",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz",
-      "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.10.4"
-      }
-    },
-    "@babel/plugin-syntax-object-rest-spread": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz",
-      "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.8.0"
-      }
-    },
-    "@babel/plugin-syntax-optional-catch-binding": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz",
-      "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.8.0"
-      }
-    },
-    "@babel/plugin-syntax-optional-chaining": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz",
-      "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.8.0"
-      }
-    },
-    "@babel/plugin-syntax-private-property-in-object": {
-      "version": "7.14.5",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz",
-      "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.14.5"
-      }
-    },
-    "@babel/plugin-syntax-top-level-await": {
-      "version": "7.14.5",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz",
-      "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.14.5"
-      }
-    },
-    "@babel/plugin-syntax-typescript": {
-      "version": "7.23.3",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz",
-      "integrity": "sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.22.5"
-      }
-    },
-    "@babel/plugin-syntax-unicode-sets-regex": {
-      "version": "7.18.6",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz",
-      "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-create-regexp-features-plugin": "^7.18.6",
-        "@babel/helper-plugin-utils": "^7.18.6"
-      }
-    },
-    "@babel/plugin-transform-arrow-functions": {
-      "version": "7.23.3",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz",
-      "integrity": "sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.22.5"
-      }
-    },
-    "@babel/plugin-transform-async-generator-functions": {
-      "version": "7.23.9",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.9.tgz",
-      "integrity": "sha512-8Q3veQEDGe14dTYuwagbRtwxQDnytyg1JFu4/HwEMETeofocrB0U0ejBJIXoeG/t2oXZ8kzCyI0ZZfbT80VFNQ==",
-      "dev": true,
-      "requires": {
-        "@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"
-      }
-    },
-    "@babel/plugin-transform-async-to-generator": {
-      "version": "7.23.3",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz",
-      "integrity": "sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-module-imports": "^7.22.15",
-        "@babel/helper-plugin-utils": "^7.22.5",
-        "@babel/helper-remap-async-to-generator": "^7.22.20"
-      }
-    },
-    "@babel/plugin-transform-block-scoped-functions": {
-      "version": "7.23.3",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz",
-      "integrity": "sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.22.5"
-      }
-    },
-    "@babel/plugin-transform-block-scoping": {
-      "version": "7.23.4",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz",
-      "integrity": "sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.22.5"
-      }
-    },
-    "@babel/plugin-transform-class-properties": {
-      "version": "7.23.3",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz",
-      "integrity": "sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-create-class-features-plugin": "^7.22.15",
-        "@babel/helper-plugin-utils": "^7.22.5"
-      }
-    },
-    "@babel/plugin-transform-class-static-block": {
-      "version": "7.23.4",
-      "resolved": "https://registry.npmmirror.com/@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,
-      "requires": {
-        "@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"
-      }
-    },
-    "@babel/plugin-transform-classes": {
-      "version": "7.23.8",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.8.tgz",
-      "integrity": "sha512-yAYslGsY1bX6Knmg46RjiCiNSwJKv2IUC8qOdYKqMMr0491SXFhcHqOdRDeCRohOOIzwN/90C6mQ9qAKgrP7dg==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-annotate-as-pure": "^7.22.5",
-        "@babel/helper-compilation-targets": "^7.23.6",
-        "@babel/helper-environment-visitor": "^7.22.20",
-        "@babel/helper-function-name": "^7.23.0",
-        "@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"
-      }
-    },
-    "@babel/plugin-transform-computed-properties": {
-      "version": "7.23.3",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz",
-      "integrity": "sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.22.5",
-        "@babel/template": "^7.22.15"
-      }
-    },
-    "@babel/plugin-transform-destructuring": {
-      "version": "7.23.3",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz",
-      "integrity": "sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.22.5"
-      }
-    },
-    "@babel/plugin-transform-dotall-regex": {
-      "version": "7.23.3",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz",
-      "integrity": "sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-create-regexp-features-plugin": "^7.22.15",
-        "@babel/helper-plugin-utils": "^7.22.5"
-      }
-    },
-    "@babel/plugin-transform-duplicate-keys": {
-      "version": "7.23.3",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz",
-      "integrity": "sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.22.5"
-      }
-    },
-    "@babel/plugin-transform-dynamic-import": {
-      "version": "7.23.4",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz",
-      "integrity": "sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.22.5",
-        "@babel/plugin-syntax-dynamic-import": "^7.8.3"
-      }
-    },
-    "@babel/plugin-transform-exponentiation-operator": {
-      "version": "7.23.3",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz",
-      "integrity": "sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15",
-        "@babel/helper-plugin-utils": "^7.22.5"
-      }
-    },
-    "@babel/plugin-transform-export-namespace-from": {
-      "version": "7.23.4",
-      "resolved": "https://registry.npmmirror.com/@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,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.22.5",
-        "@babel/plugin-syntax-export-namespace-from": "^7.8.3"
-      }
-    },
-    "@babel/plugin-transform-for-of": {
-      "version": "7.23.6",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.6.tgz",
-      "integrity": "sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.22.5",
-        "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5"
-      }
-    },
-    "@babel/plugin-transform-function-name": {
-      "version": "7.23.3",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz",
-      "integrity": "sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-compilation-targets": "^7.22.15",
-        "@babel/helper-function-name": "^7.23.0",
-        "@babel/helper-plugin-utils": "^7.22.5"
-      }
-    },
-    "@babel/plugin-transform-json-strings": {
-      "version": "7.23.4",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz",
-      "integrity": "sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.22.5",
-        "@babel/plugin-syntax-json-strings": "^7.8.3"
-      }
-    },
-    "@babel/plugin-transform-literals": {
-      "version": "7.23.3",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz",
-      "integrity": "sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.22.5"
-      }
-    },
-    "@babel/plugin-transform-logical-assignment-operators": {
-      "version": "7.23.4",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz",
-      "integrity": "sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.22.5",
-        "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4"
-      }
-    },
-    "@babel/plugin-transform-member-expression-literals": {
-      "version": "7.23.3",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz",
-      "integrity": "sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.22.5"
-      }
-    },
-    "@babel/plugin-transform-modules-amd": {
-      "version": "7.23.3",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz",
-      "integrity": "sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-module-transforms": "^7.23.3",
-        "@babel/helper-plugin-utils": "^7.22.5"
-      }
-    },
-    "@babel/plugin-transform-modules-commonjs": {
-      "version": "7.23.3",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz",
-      "integrity": "sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-module-transforms": "^7.23.3",
-        "@babel/helper-plugin-utils": "^7.22.5",
-        "@babel/helper-simple-access": "^7.22.5"
-      }
-    },
-    "@babel/plugin-transform-modules-systemjs": {
-      "version": "7.23.9",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.9.tgz",
-      "integrity": "sha512-KDlPRM6sLo4o1FkiSlXoAa8edLXFsKKIda779fbLrvmeuc3itnjCtaO6RrtoaANsIJANj+Vk1zqbZIMhkCAHVw==",
-      "dev": true,
-      "requires": {
-        "@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"
-      }
-    },
-    "@babel/plugin-transform-modules-umd": {
-      "version": "7.23.3",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz",
-      "integrity": "sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-module-transforms": "^7.23.3",
-        "@babel/helper-plugin-utils": "^7.22.5"
-      }
-    },
-    "@babel/plugin-transform-named-capturing-groups-regex": {
-      "version": "7.22.5",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz",
-      "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-create-regexp-features-plugin": "^7.22.5",
-        "@babel/helper-plugin-utils": "^7.22.5"
-      }
-    },
-    "@babel/plugin-transform-new-target": {
-      "version": "7.23.3",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz",
-      "integrity": "sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.22.5"
-      }
-    },
-    "@babel/plugin-transform-nullish-coalescing-operator": {
-      "version": "7.23.4",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz",
-      "integrity": "sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.22.5",
-        "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3"
-      }
-    },
-    "@babel/plugin-transform-numeric-separator": {
-      "version": "7.23.4",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz",
-      "integrity": "sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.22.5",
-        "@babel/plugin-syntax-numeric-separator": "^7.10.4"
-      }
-    },
-    "@babel/plugin-transform-object-rest-spread": {
-      "version": "7.23.4",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.4.tgz",
-      "integrity": "sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==",
-      "dev": true,
-      "requires": {
-        "@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"
-      }
-    },
-    "@babel/plugin-transform-object-super": {
-      "version": "7.23.3",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz",
-      "integrity": "sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.22.5",
-        "@babel/helper-replace-supers": "^7.22.20"
-      }
-    },
-    "@babel/plugin-transform-optional-catch-binding": {
-      "version": "7.23.4",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz",
-      "integrity": "sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.22.5",
-        "@babel/plugin-syntax-optional-catch-binding": "^7.8.3"
-      }
-    },
-    "@babel/plugin-transform-optional-chaining": {
-      "version": "7.23.4",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz",
-      "integrity": "sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.22.5",
-        "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5",
-        "@babel/plugin-syntax-optional-chaining": "^7.8.3"
-      }
-    },
-    "@babel/plugin-transform-parameters": {
-      "version": "7.23.3",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz",
-      "integrity": "sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.22.5"
-      }
-    },
-    "@babel/plugin-transform-private-methods": {
-      "version": "7.23.3",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz",
-      "integrity": "sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-create-class-features-plugin": "^7.22.15",
-        "@babel/helper-plugin-utils": "^7.22.5"
-      }
-    },
-    "@babel/plugin-transform-private-property-in-object": {
-      "version": "7.23.4",
-      "resolved": "https://registry.npmmirror.com/@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,
-      "requires": {
-        "@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"
-      }
-    },
-    "@babel/plugin-transform-property-literals": {
-      "version": "7.23.3",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz",
-      "integrity": "sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.22.5"
-      }
-    },
-    "@babel/plugin-transform-regenerator": {
-      "version": "7.23.3",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz",
-      "integrity": "sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.22.5",
-        "regenerator-transform": "^0.15.2"
-      }
-    },
-    "@babel/plugin-transform-reserved-words": {
-      "version": "7.23.3",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz",
-      "integrity": "sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.22.5"
-      }
-    },
-    "@babel/plugin-transform-shorthand-properties": {
-      "version": "7.23.3",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz",
-      "integrity": "sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.22.5"
-      }
-    },
-    "@babel/plugin-transform-spread": {
-      "version": "7.23.3",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz",
-      "integrity": "sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.22.5",
-        "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5"
-      }
-    },
-    "@babel/plugin-transform-sticky-regex": {
-      "version": "7.23.3",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz",
-      "integrity": "sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.22.5"
-      }
-    },
-    "@babel/plugin-transform-template-literals": {
-      "version": "7.23.3",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz",
-      "integrity": "sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.22.5"
-      }
-    },
-    "@babel/plugin-transform-typeof-symbol": {
-      "version": "7.23.3",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz",
-      "integrity": "sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.22.5"
-      }
-    },
-    "@babel/plugin-transform-typescript": {
-      "version": "7.23.6",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.23.6.tgz",
-      "integrity": "sha512-6cBG5mBvUu4VUD04OHKnYzbuHNP8huDsD3EDqqpIpsswTDoqHCjLoHb6+QgsV1WsT2nipRqCPgxD3LXnEO7XfA==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-annotate-as-pure": "^7.22.5",
-        "@babel/helper-create-class-features-plugin": "^7.23.6",
-        "@babel/helper-plugin-utils": "^7.22.5",
-        "@babel/plugin-syntax-typescript": "^7.23.3"
-      }
-    },
-    "@babel/plugin-transform-unicode-escapes": {
-      "version": "7.23.3",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz",
-      "integrity": "sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.22.5"
-      }
-    },
-    "@babel/plugin-transform-unicode-property-regex": {
-      "version": "7.23.3",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz",
-      "integrity": "sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-create-regexp-features-plugin": "^7.22.15",
-        "@babel/helper-plugin-utils": "^7.22.5"
-      }
-    },
-    "@babel/plugin-transform-unicode-regex": {
-      "version": "7.23.3",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz",
-      "integrity": "sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-create-regexp-features-plugin": "^7.22.15",
-        "@babel/helper-plugin-utils": "^7.22.5"
-      }
-    },
-    "@babel/plugin-transform-unicode-sets-regex": {
-      "version": "7.23.3",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz",
-      "integrity": "sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-create-regexp-features-plugin": "^7.22.15",
-        "@babel/helper-plugin-utils": "^7.22.5"
-      }
-    },
-    "@babel/preset-env": {
-      "version": "7.23.9",
-      "resolved": "https://registry.npmmirror.com/@babel/preset-env/-/preset-env-7.23.9.tgz",
-      "integrity": "sha512-3kBGTNBBk9DQiPoXYS0g0BYlwTQYUTifqgKTjxUwEUkduRT2QOa0FPGBJ+NROQhGyYO5BuTJwGvBnqKDykac6A==",
-      "dev": true,
-      "requires": {
-        "@babel/compat-data": "^7.23.5",
-        "@babel/helper-compilation-targets": "^7.23.6",
-        "@babel/helper-plugin-utils": "^7.22.5",
-        "@babel/helper-validator-option": "^7.23.5",
-        "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.23.3",
-        "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.23.3",
-        "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.23.7",
-        "@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.23.3",
-        "@babel/plugin-syntax-import-attributes": "^7.23.3",
-        "@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.23.3",
-        "@babel/plugin-transform-async-generator-functions": "^7.23.9",
-        "@babel/plugin-transform-async-to-generator": "^7.23.3",
-        "@babel/plugin-transform-block-scoped-functions": "^7.23.3",
-        "@babel/plugin-transform-block-scoping": "^7.23.4",
-        "@babel/plugin-transform-class-properties": "^7.23.3",
-        "@babel/plugin-transform-class-static-block": "^7.23.4",
-        "@babel/plugin-transform-classes": "^7.23.8",
-        "@babel/plugin-transform-computed-properties": "^7.23.3",
-        "@babel/plugin-transform-destructuring": "^7.23.3",
-        "@babel/plugin-transform-dotall-regex": "^7.23.3",
-        "@babel/plugin-transform-duplicate-keys": "^7.23.3",
-        "@babel/plugin-transform-dynamic-import": "^7.23.4",
-        "@babel/plugin-transform-exponentiation-operator": "^7.23.3",
-        "@babel/plugin-transform-export-namespace-from": "^7.23.4",
-        "@babel/plugin-transform-for-of": "^7.23.6",
-        "@babel/plugin-transform-function-name": "^7.23.3",
-        "@babel/plugin-transform-json-strings": "^7.23.4",
-        "@babel/plugin-transform-literals": "^7.23.3",
-        "@babel/plugin-transform-logical-assignment-operators": "^7.23.4",
-        "@babel/plugin-transform-member-expression-literals": "^7.23.3",
-        "@babel/plugin-transform-modules-amd": "^7.23.3",
-        "@babel/plugin-transform-modules-commonjs": "^7.23.3",
-        "@babel/plugin-transform-modules-systemjs": "^7.23.9",
-        "@babel/plugin-transform-modules-umd": "^7.23.3",
-        "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5",
-        "@babel/plugin-transform-new-target": "^7.23.3",
-        "@babel/plugin-transform-nullish-coalescing-operator": "^7.23.4",
-        "@babel/plugin-transform-numeric-separator": "^7.23.4",
-        "@babel/plugin-transform-object-rest-spread": "^7.23.4",
-        "@babel/plugin-transform-object-super": "^7.23.3",
-        "@babel/plugin-transform-optional-catch-binding": "^7.23.4",
-        "@babel/plugin-transform-optional-chaining": "^7.23.4",
-        "@babel/plugin-transform-parameters": "^7.23.3",
-        "@babel/plugin-transform-private-methods": "^7.23.3",
-        "@babel/plugin-transform-private-property-in-object": "^7.23.4",
-        "@babel/plugin-transform-property-literals": "^7.23.3",
-        "@babel/plugin-transform-regenerator": "^7.23.3",
-        "@babel/plugin-transform-reserved-words": "^7.23.3",
-        "@babel/plugin-transform-shorthand-properties": "^7.23.3",
-        "@babel/plugin-transform-spread": "^7.23.3",
-        "@babel/plugin-transform-sticky-regex": "^7.23.3",
-        "@babel/plugin-transform-template-literals": "^7.23.3",
-        "@babel/plugin-transform-typeof-symbol": "^7.23.3",
-        "@babel/plugin-transform-unicode-escapes": "^7.23.3",
-        "@babel/plugin-transform-unicode-property-regex": "^7.23.3",
-        "@babel/plugin-transform-unicode-regex": "^7.23.3",
-        "@babel/plugin-transform-unicode-sets-regex": "^7.23.3",
-        "@babel/preset-modules": "0.1.6-no-external-plugins",
-        "babel-plugin-polyfill-corejs2": "^0.4.8",
-        "babel-plugin-polyfill-corejs3": "^0.9.0",
-        "babel-plugin-polyfill-regenerator": "^0.5.5",
-        "core-js-compat": "^3.31.0",
-        "semver": "^6.3.1"
-      }
-    },
-    "@babel/preset-modules": {
-      "version": "0.1.6-no-external-plugins",
-      "resolved": "https://registry.npmmirror.com/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz",
-      "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.0.0",
-        "@babel/types": "^7.4.4",
-        "esutils": "^2.0.2"
-      }
-    },
-    "@babel/regjsgen": {
-      "version": "0.8.0",
-      "resolved": "https://registry.npmmirror.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz",
-      "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==",
-      "dev": true
-    },
-    "@babel/runtime": {
-      "version": "7.23.9",
-      "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.23.9.tgz",
-      "integrity": "sha512-0CX6F+BI2s9dkUqr08KFrAIZgNFj75rdBU/DjCyYLIaV/quFjkk6T+EJ2LkZHyZTbEV4L5p97mNkUsHl2wLFAw==",
-      "requires": {
-        "regenerator-runtime": "^0.14.0"
-      },
-      "dependencies": {
-        "regenerator-runtime": {
-          "version": "0.14.1",
-          "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz",
-          "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw=="
-        }
-      }
-    },
-    "@babel/template": {
-      "version": "7.23.9",
-      "resolved": "https://registry.npmmirror.com/@babel/template/-/template-7.23.9.tgz",
-      "integrity": "sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA==",
-      "requires": {
-        "@babel/code-frame": "^7.23.5",
-        "@babel/parser": "^7.23.9",
-        "@babel/types": "^7.23.9"
-      }
-    },
-    "@babel/traverse": {
-      "version": "7.23.9",
-      "resolved": "https://registry.npmmirror.com/@babel/traverse/-/traverse-7.23.9.tgz",
-      "integrity": "sha512-I/4UJ9vs90OkBtY6iiiTORVMyIhJ4kAVmsKo9KFc8UOxMeUfi2hvtIBsET5u9GizXE6/GFSuKCTNfgCswuEjRg==",
-      "requires": {
-        "@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.9",
-        "@babel/types": "^7.23.9",
-        "debug": "^4.3.1",
-        "globals": "^11.1.0"
-      }
-    },
-    "@babel/types": {
-      "version": "7.23.9",
-      "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.23.9.tgz",
-      "integrity": "sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==",
-      "requires": {
-        "@babel/helper-string-parser": "^7.23.4",
-        "@babel/helper-validator-identifier": "^7.22.20",
-        "to-fast-properties": "^2.0.0"
-      }
-    },
-    "@bcoe/v8-coverage": {
-      "version": "0.2.3",
-      "resolved": "https://registry.npmmirror.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz",
-      "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==",
-      "dev": true,
-      "peer": true
-    },
-    "@climblee/uv-ui": {
-      "version": "1.1.20",
-      "resolved": "https://registry.npmmirror.com/@climblee/uv-ui/-/uv-ui-1.1.20.tgz",
-      "integrity": "sha512-jkyesHJsPJkF4Nap9ZmG1/ibKlxXA5M8+ntqKXwwloIsYSYL5SOKb0gyPj17aBOU1PkJpmeiZ8PwnTolhK2/HA=="
-    },
-    "@dcloudio/types": {
-      "version": "3.4.7",
-      "resolved": "https://registry.npmmirror.com/@dcloudio/types/-/types-3.4.7.tgz",
-      "integrity": "sha512-RuErDYDAWY3KMlACT5NhJAKPxwjFjdzt7I/n50xCBvCSnH/84CzDPDJHRmmP6c0VOfMDHmV88V+sRBvBQRSp+w=="
-    },
-    "@dcloudio/uni-app": {
-      "version": "3.0.0-3081220230817001",
-      "resolved": "https://registry.npmmirror.com/@dcloudio/uni-app/-/uni-app-3.0.0-3081220230817001.tgz",
-      "integrity": "sha512-sf8PzXHSd/VFCn7X9+QbD4nrY21FnIwjrhyX2hFit7PZK9kpyQluqCmG7YuotuXJzsNML8c8u2O9q5FaeOyTHg==",
-      "requires": {
-        "@dcloudio/uni-cloud": "3.0.0-3081220230817001",
-        "@dcloudio/uni-components": "3.0.0-3081220230817001",
-        "@dcloudio/uni-i18n": "3.0.0-3081220230817001",
-        "@dcloudio/uni-push": "3.0.0-3081220230817001",
-        "@dcloudio/uni-shared": "3.0.0-3081220230817001",
-        "@dcloudio/uni-stat": "3.0.0-3081220230817001",
-        "@vue/shared": "3.2.47"
-      }
-    },
-    "@dcloudio/uni-app-plus": {
-      "version": "3.0.0-3081220230817001",
-      "resolved": "https://registry.npmmirror.com/@dcloudio/uni-app-plus/-/uni-app-plus-3.0.0-3081220230817001.tgz",
-      "integrity": "sha512-GpQobx3WbcyOZ49f8JM+febzKvlthFBAxcs4xrbtNVzmkj0jLJoh9GoH37oa7m5DI1k4l5wUuwvg4/JxBbhOSA==",
-      "requires": {
-        "@dcloudio/uni-app-uts": "3.0.0-3081220230817001",
-        "@dcloudio/uni-app-vite": "3.0.0-3081220230817001",
-        "@dcloudio/uni-app-vue": "3.0.0-3081220230817001",
-        "debug": "^4.3.3",
-        "fs-extra": "^10.0.0",
-        "licia": "^1.29.0",
-        "postcss-selector-parser": "^6.0.6"
-      }
-    },
-    "@dcloudio/uni-app-uts": {
-      "version": "3.0.0-3081220230817001",
-      "resolved": "https://registry.npmmirror.com/@dcloudio/uni-app-uts/-/uni-app-uts-3.0.0-3081220230817001.tgz",
-      "integrity": "sha512-snMFEpTw5T0TT5uFwp0piytLRB0FBRHDM5ML00E1nrzfts0XlaFKoB4UsvLySG5sE5+Xt8F5/uzKxid3mcgTLQ==",
-      "requires": {
-        "@babel/parser": "^7.16.4",
-        "@babel/types": "^7.20.7",
-        "@dcloudio/uni-cli-shared": "3.0.0-3081220230817001",
-        "@dcloudio/uni-i18n": "3.0.0-3081220230817001",
-        "@dcloudio/uni-nvue-styler": "3.0.0-3081220230817001",
-        "@dcloudio/uni-shared": "3.0.0-3081220230817001",
-        "@rollup/pluginutils": "^4.2.0",
-        "@vue/compiler-core": "3.2.47",
-        "@vue/compiler-sfc": "3.2.47",
-        "@vue/shared": "3.2.47",
-        "debug": "^4.3.3",
-        "es-module-lexer": "^1.2.1",
-        "fs-extra": "^10.0.0",
-        "picocolors": "^1.0.0",
-        "source-map": "^0.6.1"
-      }
-    },
-    "@dcloudio/uni-app-vite": {
-      "version": "3.0.0-3081220230817001",
-      "resolved": "https://registry.npmmirror.com/@dcloudio/uni-app-vite/-/uni-app-vite-3.0.0-3081220230817001.tgz",
-      "integrity": "sha512-iHmKh6hjPGh+FC6Fi4qqwT5N31QiWv9JymCLdbkOJRi71A3byDjxoH7ScSEEEg+A5AAPky6LHbmFmznPMeSwAg==",
-      "requires": {
-        "@dcloudio/uni-cli-shared": "3.0.0-3081220230817001",
-        "@dcloudio/uni-i18n": "3.0.0-3081220230817001",
-        "@dcloudio/uni-nvue-styler": "3.0.0-3081220230817001",
-        "@dcloudio/uni-shared": "3.0.0-3081220230817001",
-        "@rollup/pluginutils": "^4.2.0",
-        "@vitejs/plugin-vue": "^4.2.1",
-        "@vue/compiler-dom": "3.2.47",
-        "@vue/compiler-sfc": "3.2.47",
-        "debug": "^4.3.3",
-        "fs-extra": "^10.0.0",
-        "picocolors": "^1.0.0"
-      }
-    },
-    "@dcloudio/uni-app-vue": {
-      "version": "3.0.0-3081220230817001",
-      "resolved": "https://registry.npmmirror.com/@dcloudio/uni-app-vue/-/uni-app-vue-3.0.0-3081220230817001.tgz",
-      "integrity": "sha512-08ZUIn2a+OZWjqvjTbLygWZOY9YXbf2J1ns2letBI9aoMZDx+Sgx2lUFWHDksmOhvApPLKrRjJM0Hmmxi2mjJw=="
-    },
-    "@dcloudio/uni-automator": {
-      "version": "3.0.0-3081220230817001",
-      "resolved": "https://registry.npmmirror.com/@dcloudio/uni-automator/-/uni-automator-3.0.0-3081220230817001.tgz",
-      "integrity": "sha512-boaRlUAAXsEh4aN5PbtMVvzdmvXqoEWa8eQBD4oCH36lyGgK8q75vsjLRi4LBFFwNlCNMrYepTNbBCjP+Sgt0g==",
-      "dev": true,
-      "requires": {
-        "@dcloudio/uni-cli-shared": "3.0.0-3081220230817001",
-        "address": "^1.1.2",
-        "cross-env": "^7.0.3",
-        "debug": "^4.3.3",
-        "default-gateway": "^6.0.3",
-        "fs-extra": "^10.0.0",
-        "jsonc-parser": "^3.2.0",
-        "licia": "^1.29.0",
-        "qrcode-reader": "^1.0.4",
-        "qrcode-terminal": "^0.12.0",
-        "ws": "^8.4.2"
-      }
-    },
-    "@dcloudio/uni-cli-shared": {
-      "version": "3.0.0-3081220230817001",
-      "resolved": "https://registry.npmmirror.com/@dcloudio/uni-cli-shared/-/uni-cli-shared-3.0.0-3081220230817001.tgz",
-      "integrity": "sha512-FOeydfIdKZg+MnQsHSFLXBzzmXtgCWnmEyjw3MHNN5mGwQB6+f7vK8sLw+yjizD/j71eMnh8XXCk+dV3nD/Vzg==",
-      "requires": {
-        "@ampproject/remapping": "^2.1.2",
-        "@babel/core": "^7.21.3",
-        "@babel/parser": "^7.16.4",
-        "@babel/types": "^7.20.7",
-        "@dcloudio/uni-i18n": "3.0.0-3081220230817001",
-        "@dcloudio/uni-shared": "3.0.0-3081220230817001",
-        "@intlify/core-base": "9.1.9",
-        "@intlify/shared": "9.1.9",
-        "@intlify/vue-devtools": "9.1.9",
-        "@rollup/pluginutils": "^4.2.0",
-        "@vue/compiler-core": "3.2.47",
-        "@vue/compiler-dom": "3.2.47",
-        "@vue/compiler-sfc": "3.2.47",
-        "@vue/server-renderer": "3.2.47",
-        "@vue/shared": "3.2.47",
-        "autoprefixer": "^10.4.14",
-        "base64url": "^3.0.1",
-        "chokidar": "^3.5.3",
-        "compare-versions": "^3.6.0",
-        "debug": "^4.3.3",
-        "es-module-lexer": "^1.2.1",
-        "esbuild": "^0.17.5",
-        "estree-walker": "^2.0.2",
-        "fast-glob": "^3.2.11",
-        "fs-extra": "^10.0.0",
-        "hash-sum": "^2.0.0",
-        "jsonc-parser": "^3.0.0",
-        "magic-string": "^0.30.0",
-        "merge": "^2.1.1",
-        "mime": "^3.0.0",
-        "module-alias": "^2.2.2",
-        "os-locale-s-fix": "^1.0.8-fix-1",
-        "picocolors": "^1.0.0",
-        "postcss-import": "^14.0.2",
-        "postcss-load-config": "^3.1.1",
-        "postcss-modules": "^4.3.0",
-        "postcss-selector-parser": "^6.0.6",
-        "resolve": "^1.22.1",
-        "tapable": "^2.2.0",
-        "xregexp": "3.1.0"
-      },
-      "dependencies": {
-        "@vue/reactivity": {
-          "version": "3.2.47",
-          "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.2.47.tgz",
-          "integrity": "sha512-7khqQ/75oyyg+N/e+iwV6lpy1f5wq759NdlS1fpAhFXa8VeAIKGgk2E/C4VF59lx5b+Ezs5fpp/5WsRYXQiKxQ==",
-          "peer": true,
-          "requires": {
-            "@vue/shared": "3.2.47"
-          }
-        },
-        "@vue/runtime-core": {
-          "version": "3.2.47",
-          "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.2.47.tgz",
-          "integrity": "sha512-RZxbLQIRB/K0ev0K9FXhNbBzT32H9iRtYbaXb0ZIz2usLms/D55dJR2t6cIEUn6vyhS3ALNvNthI+Q95C+NOpA==",
-          "peer": true,
-          "requires": {
-            "@vue/reactivity": "3.2.47",
-            "@vue/shared": "3.2.47"
-          }
-        },
-        "@vue/runtime-dom": {
-          "version": "3.2.47",
-          "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.2.47.tgz",
-          "integrity": "sha512-ArXrFTjS6TsDei4qwNvgrdmHtD930KgSKGhS5M+j8QxXrDJYLqYw4RRcDy1bz1m1wMmb6j+zGLifdVHtkXA7gA==",
-          "peer": true,
-          "requires": {
-            "@vue/runtime-core": "3.2.47",
-            "@vue/shared": "3.2.47",
-            "csstype": "^2.6.8"
-          }
-        },
-        "@vue/server-renderer": {
-          "version": "3.2.47",
-          "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.2.47.tgz",
-          "integrity": "sha512-dN9gc1i8EvmP9RCzvneONXsKfBRgqFeFZLurmHOveL7oH6HiFXJw5OGu294n1nHc/HMgTy6LulU/tv5/A7f/LA==",
-          "requires": {
-            "@vue/compiler-ssr": "3.2.47",
-            "@vue/shared": "3.2.47"
-          }
-        },
-        "csstype": {
-          "version": "2.6.21",
-          "resolved": "https://registry.npmmirror.com/csstype/-/csstype-2.6.21.tgz",
-          "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==",
-          "peer": true
-        },
-        "vue": {
-          "version": "3.2.47",
-          "resolved": "https://registry.npmmirror.com/vue/-/vue-3.2.47.tgz",
-          "integrity": "sha512-60188y/9Dc9WVrAZeUVSDxRQOZ+z+y5nO2ts9jWXSTkMvayiWxCWOWtBQoYjLeccfXkiiPZWAHcV+WTPhkqJHQ==",
-          "peer": true,
-          "requires": {
-            "@vue/compiler-dom": "3.2.47",
-            "@vue/compiler-sfc": "3.2.47",
-            "@vue/runtime-dom": "3.2.47",
-            "@vue/server-renderer": "3.2.47",
-            "@vue/shared": "3.2.47"
-          }
-        }
-      }
-    },
-    "@dcloudio/uni-cloud": {
-      "version": "3.0.0-3081220230817001",
-      "resolved": "https://registry.npmmirror.com/@dcloudio/uni-cloud/-/uni-cloud-3.0.0-3081220230817001.tgz",
-      "integrity": "sha512-rrHN4PvvylrhmivAoSv4h8ZcQ3ZWHnMRXhQWPC9FBR1TInrrxrrAHuMqSZn6pTIXhCiRA3Kuy6aDNVCbt6VA+g==",
-      "requires": {
-        "@dcloudio/uni-cli-shared": "3.0.0-3081220230817001",
-        "@dcloudio/uni-i18n": "3.0.0-3081220230817001",
-        "@dcloudio/uni-shared": "3.0.0-3081220230817001",
-        "@vue/shared": "3.2.47",
-        "fast-glob": "^3.2.11"
-      }
-    },
-    "@dcloudio/uni-components": {
-      "version": "3.0.0-3081220230817001",
-      "resolved": "https://registry.npmmirror.com/@dcloudio/uni-components/-/uni-components-3.0.0-3081220230817001.tgz",
-      "integrity": "sha512-FlIrTgR/9Yp8FWYfhXfLPd0jJtBwJwRBAWWmLNaufkTojm6X7rX8wQOd13n+7gJGKzfXcEV8npOYpVou4P46Pw==",
-      "requires": {
-        "@dcloudio/uni-cloud": "3.0.0-3081220230817001",
-        "@dcloudio/uni-h5": "3.0.0-3081220230817001",
-        "@dcloudio/uni-i18n": "3.0.0-3081220230817001"
-      }
-    },
-    "@dcloudio/uni-h5": {
-      "version": "3.0.0-3081220230817001",
-      "resolved": "https://registry.npmmirror.com/@dcloudio/uni-h5/-/uni-h5-3.0.0-3081220230817001.tgz",
-      "integrity": "sha512-m2RCZpYxuAGnXlQKSQ8FGy4OlnUJJ8XMx2HNQWriDwtjDpAGDU8I2LZQZ7MHCNPIUd503y+mgU2NPlSQHnrlkQ==",
-      "requires": {
-        "@dcloudio/uni-h5-vite": "3.0.0-3081220230817001",
-        "@dcloudio/uni-h5-vue": "3.0.0-3081220230817001",
-        "@dcloudio/uni-i18n": "3.0.0-3081220230817001",
-        "@dcloudio/uni-shared": "3.0.0-3081220230817001",
-        "@vue/server-renderer": "3.2.47",
-        "@vue/shared": "3.2.47",
-        "debug": "^4.3.3",
-        "localstorage-polyfill": "^1.0.1",
-        "postcss-selector-parser": "^6.0.6",
-        "safe-area-insets": "^1.4.1",
-        "vue-router": "^4.1.6",
-        "xmlhttprequest": "^1.8.0"
-      },
-      "dependencies": {
-        "@vue/reactivity": {
-          "version": "3.2.47",
-          "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.2.47.tgz",
-          "integrity": "sha512-7khqQ/75oyyg+N/e+iwV6lpy1f5wq759NdlS1fpAhFXa8VeAIKGgk2E/C4VF59lx5b+Ezs5fpp/5WsRYXQiKxQ==",
-          "peer": true,
-          "requires": {
-            "@vue/shared": "3.2.47"
-          }
-        },
-        "@vue/runtime-core": {
-          "version": "3.2.47",
-          "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.2.47.tgz",
-          "integrity": "sha512-RZxbLQIRB/K0ev0K9FXhNbBzT32H9iRtYbaXb0ZIz2usLms/D55dJR2t6cIEUn6vyhS3ALNvNthI+Q95C+NOpA==",
-          "peer": true,
-          "requires": {
-            "@vue/reactivity": "3.2.47",
-            "@vue/shared": "3.2.47"
-          }
-        },
-        "@vue/runtime-dom": {
-          "version": "3.2.47",
-          "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.2.47.tgz",
-          "integrity": "sha512-ArXrFTjS6TsDei4qwNvgrdmHtD930KgSKGhS5M+j8QxXrDJYLqYw4RRcDy1bz1m1wMmb6j+zGLifdVHtkXA7gA==",
-          "peer": true,
-          "requires": {
-            "@vue/runtime-core": "3.2.47",
-            "@vue/shared": "3.2.47",
-            "csstype": "^2.6.8"
-          }
-        },
-        "@vue/server-renderer": {
-          "version": "3.2.47",
-          "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.2.47.tgz",
-          "integrity": "sha512-dN9gc1i8EvmP9RCzvneONXsKfBRgqFeFZLurmHOveL7oH6HiFXJw5OGu294n1nHc/HMgTy6LulU/tv5/A7f/LA==",
-          "requires": {
-            "@vue/compiler-ssr": "3.2.47",
-            "@vue/shared": "3.2.47"
-          }
-        },
-        "csstype": {
-          "version": "2.6.21",
-          "resolved": "https://registry.npmmirror.com/csstype/-/csstype-2.6.21.tgz",
-          "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==",
-          "peer": true
-        },
-        "vue": {
-          "version": "3.2.47",
-          "resolved": "https://registry.npmmirror.com/vue/-/vue-3.2.47.tgz",
-          "integrity": "sha512-60188y/9Dc9WVrAZeUVSDxRQOZ+z+y5nO2ts9jWXSTkMvayiWxCWOWtBQoYjLeccfXkiiPZWAHcV+WTPhkqJHQ==",
-          "peer": true,
-          "requires": {
-            "@vue/compiler-dom": "3.2.47",
-            "@vue/compiler-sfc": "3.2.47",
-            "@vue/runtime-dom": "3.2.47",
-            "@vue/server-renderer": "3.2.47",
-            "@vue/shared": "3.2.47"
-          }
-        }
-      }
-    },
-    "@dcloudio/uni-h5-vite": {
-      "version": "3.0.0-3081220230817001",
-      "resolved": "https://registry.npmmirror.com/@dcloudio/uni-h5-vite/-/uni-h5-vite-3.0.0-3081220230817001.tgz",
-      "integrity": "sha512-x7F6mUTjHiOx7+lj5yIrzhD7gr0HTNJaku5gV3O8bFjxKLcIkFkAyliKPbqJ4QZCmCCmEfJpOGKrDhk35tlibg==",
-      "requires": {
-        "@dcloudio/uni-cli-shared": "3.0.0-3081220230817001",
-        "@dcloudio/uni-shared": "3.0.0-3081220230817001",
-        "@rollup/pluginutils": "^4.2.0",
-        "@vue/compiler-dom": "3.2.47",
-        "@vue/compiler-sfc": "3.2.47",
-        "@vue/server-renderer": "3.2.47",
-        "@vue/shared": "3.2.47",
-        "debug": "^4.3.3",
-        "fs-extra": "^10.0.0",
-        "mime": "^3.0.0",
-        "module-alias": "^2.2.2"
-      },
-      "dependencies": {
-        "@vue/reactivity": {
-          "version": "3.2.47",
-          "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.2.47.tgz",
-          "integrity": "sha512-7khqQ/75oyyg+N/e+iwV6lpy1f5wq759NdlS1fpAhFXa8VeAIKGgk2E/C4VF59lx5b+Ezs5fpp/5WsRYXQiKxQ==",
-          "peer": true,
-          "requires": {
-            "@vue/shared": "3.2.47"
-          }
-        },
-        "@vue/runtime-core": {
-          "version": "3.2.47",
-          "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.2.47.tgz",
-          "integrity": "sha512-RZxbLQIRB/K0ev0K9FXhNbBzT32H9iRtYbaXb0ZIz2usLms/D55dJR2t6cIEUn6vyhS3ALNvNthI+Q95C+NOpA==",
-          "peer": true,
-          "requires": {
-            "@vue/reactivity": "3.2.47",
-            "@vue/shared": "3.2.47"
-          }
-        },
-        "@vue/runtime-dom": {
-          "version": "3.2.47",
-          "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.2.47.tgz",
-          "integrity": "sha512-ArXrFTjS6TsDei4qwNvgrdmHtD930KgSKGhS5M+j8QxXrDJYLqYw4RRcDy1bz1m1wMmb6j+zGLifdVHtkXA7gA==",
-          "peer": true,
-          "requires": {
-            "@vue/runtime-core": "3.2.47",
-            "@vue/shared": "3.2.47",
-            "csstype": "^2.6.8"
-          }
-        },
-        "@vue/server-renderer": {
-          "version": "3.2.47",
-          "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.2.47.tgz",
-          "integrity": "sha512-dN9gc1i8EvmP9RCzvneONXsKfBRgqFeFZLurmHOveL7oH6HiFXJw5OGu294n1nHc/HMgTy6LulU/tv5/A7f/LA==",
-          "requires": {
-            "@vue/compiler-ssr": "3.2.47",
-            "@vue/shared": "3.2.47"
-          }
-        },
-        "csstype": {
-          "version": "2.6.21",
-          "resolved": "https://registry.npmmirror.com/csstype/-/csstype-2.6.21.tgz",
-          "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==",
-          "peer": true
-        },
-        "vue": {
-          "version": "3.2.47",
-          "resolved": "https://registry.npmmirror.com/vue/-/vue-3.2.47.tgz",
-          "integrity": "sha512-60188y/9Dc9WVrAZeUVSDxRQOZ+z+y5nO2ts9jWXSTkMvayiWxCWOWtBQoYjLeccfXkiiPZWAHcV+WTPhkqJHQ==",
-          "peer": true,
-          "requires": {
-            "@vue/compiler-dom": "3.2.47",
-            "@vue/compiler-sfc": "3.2.47",
-            "@vue/runtime-dom": "3.2.47",
-            "@vue/server-renderer": "3.2.47",
-            "@vue/shared": "3.2.47"
-          }
-        }
-      }
-    },
-    "@dcloudio/uni-h5-vue": {
-      "version": "3.0.0-3081220230817001",
-      "resolved": "https://registry.npmmirror.com/@dcloudio/uni-h5-vue/-/uni-h5-vue-3.0.0-3081220230817001.tgz",
-      "integrity": "sha512-q1eFoXb5/4whNIJ1CumKmeypPjZofw8xDQRHZeGZ7NVRQ0/MYnEm6A0n/vkmEo1IgTZIY83m/jr6RNg7a9Ko/A==",
-      "requires": {
-        "@dcloudio/uni-shared": "3.0.0-3081220230817001",
-        "@vue/server-renderer": "3.2.47"
-      },
-      "dependencies": {
-        "@vue/reactivity": {
-          "version": "3.2.47",
-          "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.2.47.tgz",
-          "integrity": "sha512-7khqQ/75oyyg+N/e+iwV6lpy1f5wq759NdlS1fpAhFXa8VeAIKGgk2E/C4VF59lx5b+Ezs5fpp/5WsRYXQiKxQ==",
-          "peer": true,
-          "requires": {
-            "@vue/shared": "3.2.47"
-          }
-        },
-        "@vue/runtime-core": {
-          "version": "3.2.47",
-          "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.2.47.tgz",
-          "integrity": "sha512-RZxbLQIRB/K0ev0K9FXhNbBzT32H9iRtYbaXb0ZIz2usLms/D55dJR2t6cIEUn6vyhS3ALNvNthI+Q95C+NOpA==",
-          "peer": true,
-          "requires": {
-            "@vue/reactivity": "3.2.47",
-            "@vue/shared": "3.2.47"
-          }
-        },
-        "@vue/runtime-dom": {
-          "version": "3.2.47",
-          "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.2.47.tgz",
-          "integrity": "sha512-ArXrFTjS6TsDei4qwNvgrdmHtD930KgSKGhS5M+j8QxXrDJYLqYw4RRcDy1bz1m1wMmb6j+zGLifdVHtkXA7gA==",
-          "peer": true,
-          "requires": {
-            "@vue/runtime-core": "3.2.47",
-            "@vue/shared": "3.2.47",
-            "csstype": "^2.6.8"
-          }
-        },
-        "@vue/server-renderer": {
-          "version": "3.2.47",
-          "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.2.47.tgz",
-          "integrity": "sha512-dN9gc1i8EvmP9RCzvneONXsKfBRgqFeFZLurmHOveL7oH6HiFXJw5OGu294n1nHc/HMgTy6LulU/tv5/A7f/LA==",
-          "requires": {
-            "@vue/compiler-ssr": "3.2.47",
-            "@vue/shared": "3.2.47"
-          }
-        },
-        "csstype": {
-          "version": "2.6.21",
-          "resolved": "https://registry.npmmirror.com/csstype/-/csstype-2.6.21.tgz",
-          "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==",
-          "peer": true
-        },
-        "vue": {
-          "version": "3.2.47",
-          "resolved": "https://registry.npmmirror.com/vue/-/vue-3.2.47.tgz",
-          "integrity": "sha512-60188y/9Dc9WVrAZeUVSDxRQOZ+z+y5nO2ts9jWXSTkMvayiWxCWOWtBQoYjLeccfXkiiPZWAHcV+WTPhkqJHQ==",
-          "peer": true,
-          "requires": {
-            "@vue/compiler-dom": "3.2.47",
-            "@vue/compiler-sfc": "3.2.47",
-            "@vue/runtime-dom": "3.2.47",
-            "@vue/server-renderer": "3.2.47",
-            "@vue/shared": "3.2.47"
-          }
-        }
-      }
-    },
-    "@dcloudio/uni-i18n": {
-      "version": "3.0.0-3081220230817001",
-      "resolved": "https://registry.npmmirror.com/@dcloudio/uni-i18n/-/uni-i18n-3.0.0-3081220230817001.tgz",
-      "integrity": "sha512-ooAIoNCy+DPlMtA4k9eoaJJsYQtici85le+ietIIzLdJoa2YUnudYv9CvG9Mw/RsKQI+MLl96ADAPgUpGzounw=="
-    },
-    "@dcloudio/uni-mp-alipay": {
-      "version": "3.0.0-3081220230817001",
-      "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-alipay/-/uni-mp-alipay-3.0.0-3081220230817001.tgz",
-      "integrity": "sha512-lZR2u8sxJ/ZaDqaxEmGzgWWKHcjnLGedDTrMh8kOEPLHO6THVNe5TP6XeiTcE0HKJfWEXv6X13erjn0FCstz3A==",
-      "requires": {
-        "@dcloudio/uni-cli-shared": "3.0.0-3081220230817001",
-        "@dcloudio/uni-mp-vite": "3.0.0-3081220230817001",
-        "@dcloudio/uni-mp-vue": "3.0.0-3081220230817001",
-        "@dcloudio/uni-shared": "3.0.0-3081220230817001",
-        "@vue/compiler-core": "3.2.47",
-        "@vue/shared": "3.2.47"
-      }
-    },
-    "@dcloudio/uni-mp-baidu": {
-      "version": "3.0.0-3081220230817001",
-      "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-baidu/-/uni-mp-baidu-3.0.0-3081220230817001.tgz",
-      "integrity": "sha512-FYwK1AqSc+NvtvaCia/fOP57ELx5O5icHjuwPKMsJv5eGtqlwhXzyvSCoGEFyYQcsWP9ZqYSb3fTuxVlbiEYdA==",
-      "requires": {
-        "@dcloudio/uni-cli-shared": "3.0.0-3081220230817001",
-        "@dcloudio/uni-mp-compiler": "3.0.0-3081220230817001",
-        "@dcloudio/uni-mp-vite": "3.0.0-3081220230817001",
-        "@dcloudio/uni-mp-vue": "3.0.0-3081220230817001",
-        "@dcloudio/uni-mp-weixin": "3.0.0-3081220230817001",
-        "@dcloudio/uni-shared": "3.0.0-3081220230817001",
-        "@vue/compiler-core": "3.2.47",
-        "@vue/shared": "3.2.47",
-        "jimp": "^0.10.1",
-        "licia": "^1.29.0",
-        "qrcode-reader": "^1.0.4",
-        "qrcode-terminal": "^0.12.0",
-        "ws": "^8.4.2"
-      }
-    },
-    "@dcloudio/uni-mp-compiler": {
-      "version": "3.0.0-3081220230817001",
-      "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-compiler/-/uni-mp-compiler-3.0.0-3081220230817001.tgz",
-      "integrity": "sha512-KDfwEr9jFNSkNbYmdDc+zfGuZwXGkz3bW3c4cuV44IncTf/UW2m594Z2UzhJkx/p662aQ2W9M4BFZ0o5QSfQDw==",
-      "requires": {
-        "@babel/generator": "^7.20.5",
-        "@babel/parser": "^7.16.4",
-        "@babel/types": "^7.20.7",
-        "@dcloudio/uni-cli-shared": "3.0.0-3081220230817001",
-        "@dcloudio/uni-shared": "3.0.0-3081220230817001",
-        "@vue/compiler-core": "3.2.47",
-        "@vue/compiler-dom": "3.2.47",
-        "@vue/shared": "3.2.47",
-        "estree-walker": "^2.0.2"
-      }
-    },
-    "@dcloudio/uni-mp-jd": {
-      "version": "3.0.0-3081220230817001",
-      "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-jd/-/uni-mp-jd-3.0.0-3081220230817001.tgz",
-      "integrity": "sha512-sKDppXhk7k8Euce9v7ItQ2cs3+XpQV/DX8FjXzfO9DfjQEKiR/Pyfis7e3ANQrF4V/W3uwK5wgN/PyI3/NRloQ==",
-      "requires": {
-        "@dcloudio/uni-cli-shared": "3.0.0-3081220230817001",
-        "@dcloudio/uni-mp-compiler": "3.0.0-3081220230817001",
-        "@dcloudio/uni-mp-vite": "3.0.0-3081220230817001",
-        "@dcloudio/uni-mp-vue": "3.0.0-3081220230817001",
-        "@dcloudio/uni-shared": "3.0.0-3081220230817001",
-        "@vue/shared": "3.2.47"
-      }
-    },
-    "@dcloudio/uni-mp-kuaishou": {
-      "version": "3.0.0-3081220230817001",
-      "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-kuaishou/-/uni-mp-kuaishou-3.0.0-3081220230817001.tgz",
-      "integrity": "sha512-wYXwoxcdms8PviNsKg2Y9oqHawKqseoD97sYs94RLDVSnyO9c6NOoUMsYjXwIZXt05E56bJ9EbxDqYDwwJhEKw==",
-      "requires": {
-        "@dcloudio/uni-cli-shared": "3.0.0-3081220230817001",
-        "@dcloudio/uni-mp-compiler": "3.0.0-3081220230817001",
-        "@dcloudio/uni-mp-vite": "3.0.0-3081220230817001",
-        "@dcloudio/uni-mp-vue": "3.0.0-3081220230817001",
-        "@dcloudio/uni-mp-weixin": "3.0.0-3081220230817001",
-        "@dcloudio/uni-shared": "3.0.0-3081220230817001",
-        "@vue/compiler-core": "3.2.47",
-        "@vue/shared": "3.2.47"
-      }
-    },
-    "@dcloudio/uni-mp-lark": {
-      "version": "3.0.0-3081220230817001",
-      "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-lark/-/uni-mp-lark-3.0.0-3081220230817001.tgz",
-      "integrity": "sha512-4aHwULp+Nx55BoJvj1jCXWnVJrzl0ACEbDlXVvxmNUI5tkqn2kYL4AZgrXP1vCx8MHKVPI4E34Z+lrBTfSfKMA==",
-      "requires": {
-        "@dcloudio/uni-cli-shared": "3.0.0-3081220230817001",
-        "@dcloudio/uni-mp-compiler": "3.0.0-3081220230817001",
-        "@dcloudio/uni-mp-toutiao": "3.0.0-3081220230817001",
-        "@dcloudio/uni-mp-vite": "3.0.0-3081220230817001",
-        "@dcloudio/uni-mp-vue": "3.0.0-3081220230817001",
-        "@dcloudio/uni-shared": "3.0.0-3081220230817001",
-        "@vue/compiler-core": "3.2.47",
-        "@vue/shared": "3.2.47"
-      }
-    },
-    "@dcloudio/uni-mp-qq": {
-      "version": "3.0.0-3081220230817001",
-      "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-qq/-/uni-mp-qq-3.0.0-3081220230817001.tgz",
-      "integrity": "sha512-StSsxCCKMdZCghUZ+wdX1otCmlYkIV+O2Z/AxMv772HfIKlpDp44PPaxlKBG4L6+X7h2JsCvyZW1iSznM5A3CQ==",
-      "requires": {
-        "@dcloudio/uni-cli-shared": "3.0.0-3081220230817001",
-        "@dcloudio/uni-mp-vite": "3.0.0-3081220230817001",
-        "@dcloudio/uni-mp-vue": "3.0.0-3081220230817001",
-        "@dcloudio/uni-shared": "3.0.0-3081220230817001",
-        "@vue/shared": "3.2.47",
-        "fs-extra": "^10.0.0"
-      }
-    },
-    "@dcloudio/uni-mp-toutiao": {
-      "version": "3.0.0-3081220230817001",
-      "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-toutiao/-/uni-mp-toutiao-3.0.0-3081220230817001.tgz",
-      "integrity": "sha512-ZMSNNjQpCV4z+76OA8rDKKhqr+vQmTvKNUOzKfND5KPYhgWbqviEBZ8ptiDT5gaWXMpkUHNfWz32hdi5CLbj5Q==",
-      "requires": {
-        "@dcloudio/uni-cli-shared": "3.0.0-3081220230817001",
-        "@dcloudio/uni-mp-compiler": "3.0.0-3081220230817001",
-        "@dcloudio/uni-mp-vite": "3.0.0-3081220230817001",
-        "@dcloudio/uni-mp-vue": "3.0.0-3081220230817001",
-        "@dcloudio/uni-shared": "3.0.0-3081220230817001",
-        "@vue/compiler-core": "3.2.47",
-        "@vue/shared": "3.2.47"
-      }
-    },
-    "@dcloudio/uni-mp-vite": {
-      "version": "3.0.0-3081220230817001",
-      "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-vite/-/uni-mp-vite-3.0.0-3081220230817001.tgz",
-      "integrity": "sha512-jmEbsVOJ1dlj46QiSFMB2C3zbgGivkGf1KXoPTAprv0WZrkmjF1uNLj0pHFOOUnnyHwHPViEApsMOPS4twIjIQ==",
-      "requires": {
-        "@dcloudio/uni-cli-shared": "3.0.0-3081220230817001",
-        "@dcloudio/uni-i18n": "3.0.0-3081220230817001",
-        "@dcloudio/uni-mp-compiler": "3.0.0-3081220230817001",
-        "@dcloudio/uni-mp-vue": "3.0.0-3081220230817001",
-        "@dcloudio/uni-shared": "3.0.0-3081220230817001",
-        "@vue/compiler-sfc": "3.2.47",
-        "@vue/shared": "3.2.47",
-        "debug": "^4.3.3"
-      }
-    },
-    "@dcloudio/uni-mp-vue": {
-      "version": "3.0.0-3081220230817001",
-      "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-vue/-/uni-mp-vue-3.0.0-3081220230817001.tgz",
-      "integrity": "sha512-EfdTH6+qGXRh3402+psl8X4K34/gHfBPaMfxbwMsne1rGnB8ZVXiN73gVXKfCWeznvJqdWuTWmmjqaLoBhjOjA==",
-      "requires": {
-        "@dcloudio/uni-shared": "3.0.0-3081220230817001",
-        "@vue/shared": "3.2.47"
-      }
-    },
-    "@dcloudio/uni-mp-weixin": {
-      "version": "3.0.0-3081220230817001",
-      "resolved": "https://registry.npmmirror.com/@dcloudio/uni-mp-weixin/-/uni-mp-weixin-3.0.0-3081220230817001.tgz",
-      "integrity": "sha512-vo2k8OaWFOvoXuRX83UCR0AOOKXXwjRDIOX0y/jUC9TX63Ne5OTdRKH9253D9109FrwtrtsUWqnpfn1ynKXl9g==",
-      "requires": {
-        "@dcloudio/uni-cli-shared": "3.0.0-3081220230817001",
-        "@dcloudio/uni-mp-vite": "3.0.0-3081220230817001",
-        "@dcloudio/uni-mp-vue": "3.0.0-3081220230817001",
-        "@dcloudio/uni-shared": "3.0.0-3081220230817001",
-        "@vue/shared": "3.2.47",
-        "jimp": "^0.10.1",
-        "licia": "^1.29.0",
-        "qrcode-reader": "^1.0.4",
-        "qrcode-terminal": "^0.12.0",
-        "ws": "^8.4.2"
-      }
-    },
-    "@dcloudio/uni-nvue-styler": {
-      "version": "3.0.0-3081220230817001",
-      "resolved": "https://registry.npmmirror.com/@dcloudio/uni-nvue-styler/-/uni-nvue-styler-3.0.0-3081220230817001.tgz",
-      "integrity": "sha512-EImnyrYHmAc7ibKfIMkBG1uMavS5sPdrtQj52m40o/QNU5kcsqUk2Od9c1ULkQloxhmK2E4FZvXo4cgszE/Txw==",
-      "requires": {
-        "@vue/shared": "3.2.47",
-        "parse-css-font": "^4.0.0",
-        "postcss": "^8.4.23"
-      }
-    },
-    "@dcloudio/uni-push": {
-      "version": "3.0.0-3081220230817001",
-      "resolved": "https://registry.npmmirror.com/@dcloudio/uni-push/-/uni-push-3.0.0-3081220230817001.tgz",
-      "integrity": "sha512-1IyVJlBnZVVvY49SQKpZG5Oxak5Wl51NvYEozuYoeBaaTeZObm7B6eyd722sXi0Dd6N1sE3kIdm/XReprK53eg==",
-      "requires": {
-        "@dcloudio/uni-cli-shared": "3.0.0-3081220230817001"
-      }
-    },
-    "@dcloudio/uni-quickapp-webview": {
-      "version": "3.0.0-3081220230817001",
-      "resolved": "https://registry.npmmirror.com/@dcloudio/uni-quickapp-webview/-/uni-quickapp-webview-3.0.0-3081220230817001.tgz",
-      "integrity": "sha512-w6yitVyCKEFSO+UDsJPjc5RfAstIdOEbBHgim0gInTfOl90odmyUPKDxWhwQgS5vqezBXpCj0/6ywVMHvZu+7A==",
-      "requires": {
-        "@dcloudio/uni-cli-shared": "3.0.0-3081220230817001",
-        "@dcloudio/uni-mp-vite": "3.0.0-3081220230817001",
-        "@dcloudio/uni-mp-vue": "3.0.0-3081220230817001",
-        "@dcloudio/uni-shared": "3.0.0-3081220230817001",
-        "@vue/shared": "3.2.47"
-      }
-    },
-    "@dcloudio/uni-shared": {
-      "version": "3.0.0-3081220230817001",
-      "resolved": "https://registry.npmmirror.com/@dcloudio/uni-shared/-/uni-shared-3.0.0-3081220230817001.tgz",
-      "integrity": "sha512-NI1pBO40VqvnWjwNXad3CqrUYvr4ffGjiDMgJGMP13rgOEAqamU7ozBimoASDVPKyyfSHTeuYuh0gtaaLu4CsQ==",
-      "requires": {
-        "@vue/shared": "3.2.47"
-      }
-    },
-    "@dcloudio/uni-stacktracey": {
-      "version": "3.0.0-3081220230817001",
-      "resolved": "https://registry.npmmirror.com/@dcloudio/uni-stacktracey/-/uni-stacktracey-3.0.0-3081220230817001.tgz",
-      "integrity": "sha512-DUTTN8JWXxjO3ryz7uhD3+vazHVMflln15+r0ycWBjXO0p0MepRY3gX5gKCyiq9D3NUIxazcFAUJ6agFVUbDog==",
-      "dev": true
-    },
-    "@dcloudio/uni-stat": {
-      "version": "3.0.0-3081220230817001",
-      "resolved": "https://registry.npmmirror.com/@dcloudio/uni-stat/-/uni-stat-3.0.0-3081220230817001.tgz",
-      "integrity": "sha512-xpbsor5WKU1eCbo0dmQ0hBUX6RrdG7DNDzCSD6oimndIXVGLkFhWrIC3brQ7S1G2GQvXdXnXJpUVskI3qNe/uw==",
-      "requires": {
-        "@dcloudio/uni-cli-shared": "3.0.0-3081220230817001",
-        "@dcloudio/uni-shared": "3.0.0-3081220230817001",
-        "debug": "^4.3.3"
-      }
-    },
-    "@dcloudio/uni-ui": {
-      "version": "1.5.0",
-      "resolved": "https://registry.npmmirror.com/@dcloudio/uni-ui/-/uni-ui-1.5.0.tgz",
-      "integrity": "sha512-E7D37VbRZeh1E2yzrIie8psBckIrErdkUbUA751rlG8zdioGovW3zOuUsKgY+Gh7csMvi6XMEoSacvboe8o4Gw=="
-    },
-    "@dcloudio/vite-plugin-uni": {
-      "version": "3.0.0-3081220230817001",
-      "resolved": "https://registry.npmmirror.com/@dcloudio/vite-plugin-uni/-/vite-plugin-uni-3.0.0-3081220230817001.tgz",
-      "integrity": "sha512-dLeqqyrNNUBTZfI0ppPk4YoD+DBI0gJLeTjpN6bK5i3nFKkju9g2K6IWl62YMObjTiXwQF8qAEDb+fyWoe4Ksw==",
-      "dev": true,
-      "requires": {
-        "@babel/core": "^7.21.3",
-        "@babel/plugin-syntax-import-meta": "^7.10.4",
-        "@babel/plugin-transform-typescript": "^7.20.7",
-        "@dcloudio/uni-cli-shared": "3.0.0-3081220230817001",
-        "@dcloudio/uni-shared": "3.0.0-3081220230817001",
-        "@rollup/pluginutils": "^4.2.0",
-        "@vitejs/plugin-legacy": "^4.0.3",
-        "@vitejs/plugin-vue": "^4.2.1",
-        "@vitejs/plugin-vue-jsx": "^3.0.1",
-        "@vue/compiler-core": "3.2.47",
-        "@vue/compiler-dom": "3.2.47",
-        "@vue/compiler-sfc": "3.2.47",
-        "@vue/shared": "3.2.47",
-        "cac": "6.7.9",
-        "debug": "^4.3.3",
-        "estree-walker": "^2.0.2",
-        "express": "^4.17.1",
-        "fast-glob": "^3.2.11",
-        "fs-extra": "^10.0.0",
-        "hash-sum": "^2.0.0",
-        "jsonc-parser": "^3.0.0",
-        "magic-string": "^0.30.0",
-        "picocolors": "^1.0.0",
-        "terser": "^5.4.0"
-      }
-    },
-    "@esbuild/win32-x64": {
-      "version": "0.17.19",
-      "resolved": "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz",
-      "integrity": "sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==",
-      "optional": true
-    },
-    "@eslint-community/eslint-utils": {
-      "version": "4.4.0",
-      "resolved": "https://registry.npmmirror.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz",
-      "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==",
-      "requires": {
-        "eslint-visitor-keys": "^3.3.0"
-      }
-    },
-    "@eslint-community/regexpp": {
-      "version": "4.10.0",
-      "resolved": "https://registry.npmmirror.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz",
-      "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA=="
-    },
-    "@eslint/eslintrc": {
-      "version": "2.1.4",
-      "resolved": "https://registry.npmmirror.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz",
-      "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==",
-      "requires": {
-        "ajv": "^6.12.4",
-        "debug": "^4.3.2",
-        "espree": "^9.6.0",
-        "globals": "^13.19.0",
-        "ignore": "^5.2.0",
-        "import-fresh": "^3.2.1",
-        "js-yaml": "^4.1.0",
-        "minimatch": "^3.1.2",
-        "strip-json-comments": "^3.1.1"
-      },
-      "dependencies": {
-        "brace-expansion": {
-          "version": "1.1.11",
-          "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz",
-          "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
-          "requires": {
-            "balanced-match": "^1.0.0",
-            "concat-map": "0.0.1"
-          }
-        },
-        "globals": {
-          "version": "13.24.0",
-          "resolved": "https://registry.npmmirror.com/globals/-/globals-13.24.0.tgz",
-          "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
-          "requires": {
-            "type-fest": "^0.20.2"
-          }
-        },
-        "minimatch": {
-          "version": "3.1.2",
-          "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz",
-          "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
-          "requires": {
-            "brace-expansion": "^1.1.7"
-          }
-        },
-        "type-fest": {
-          "version": "0.20.2",
-          "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-0.20.2.tgz",
-          "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ=="
-        }
-      }
-    },
-    "@eslint/js": {
-      "version": "8.56.0",
-      "resolved": "https://registry.npmmirror.com/@eslint/js/-/js-8.56.0.tgz",
-      "integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A=="
-    },
-    "@humanwhocodes/config-array": {
-      "version": "0.11.14",
-      "resolved": "https://registry.npmmirror.com/@humanwhocodes/config-array/-/config-array-0.11.14.tgz",
-      "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==",
-      "requires": {
-        "@humanwhocodes/object-schema": "^2.0.2",
-        "debug": "^4.3.1",
-        "minimatch": "^3.0.5"
-      },
-      "dependencies": {
-        "brace-expansion": {
-          "version": "1.1.11",
-          "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz",
-          "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
-          "requires": {
-            "balanced-match": "^1.0.0",
-            "concat-map": "0.0.1"
-          }
-        },
-        "minimatch": {
-          "version": "3.1.2",
-          "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz",
-          "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
-          "requires": {
-            "brace-expansion": "^1.1.7"
-          }
-        }
-      }
-    },
-    "@humanwhocodes/module-importer": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmmirror.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
-      "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA=="
-    },
-    "@humanwhocodes/object-schema": {
-      "version": "2.0.2",
-      "resolved": "https://registry.npmmirror.com/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz",
-      "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw=="
-    },
-    "@intlify/core-base": {
-      "version": "9.1.9",
-      "resolved": "https://registry.npmmirror.com/@intlify/core-base/-/core-base-9.1.9.tgz",
-      "integrity": "sha512-x5T0p/Ja0S8hs5xs+ImKyYckVkL4CzcEXykVYYV6rcbXxJTe2o58IquSqX9bdncVKbRZP7GlBU1EcRaQEEJ+vw==",
-      "requires": {
-        "@intlify/devtools-if": "9.1.9",
-        "@intlify/message-compiler": "9.1.9",
-        "@intlify/message-resolver": "9.1.9",
-        "@intlify/runtime": "9.1.9",
-        "@intlify/shared": "9.1.9",
-        "@intlify/vue-devtools": "9.1.9"
-      }
-    },
-    "@intlify/devtools-if": {
-      "version": "9.1.9",
-      "resolved": "https://registry.npmmirror.com/@intlify/devtools-if/-/devtools-if-9.1.9.tgz",
-      "integrity": "sha512-oKSMKjttG3Ut/1UGEZjSdghuP3fwA15zpDPcjkf/1FjlOIm6uIBGMNS5jXzsZy593u+P/YcnrZD6cD3IVFz9vQ==",
-      "requires": {
-        "@intlify/shared": "9.1.9"
-      }
-    },
-    "@intlify/message-compiler": {
-      "version": "9.1.9",
-      "resolved": "https://registry.npmmirror.com/@intlify/message-compiler/-/message-compiler-9.1.9.tgz",
-      "integrity": "sha512-6YgCMF46Xd0IH2hMRLCssZI3gFG4aywidoWQ3QP4RGYQXQYYfFC54DxhSgfIPpVoPLQ+4AD29eoYmhiHZ+qLFQ==",
-      "requires": {
-        "@intlify/message-resolver": "9.1.9",
-        "@intlify/shared": "9.1.9",
-        "source-map": "0.6.1"
-      }
-    },
-    "@intlify/message-resolver": {
-      "version": "9.1.9",
-      "resolved": "https://registry.npmmirror.com/@intlify/message-resolver/-/message-resolver-9.1.9.tgz",
-      "integrity": "sha512-Lx/DBpigeK0sz2BBbzv5mu9/dAlt98HxwbG7xLawC3O2xMF9MNWU5FtOziwYG6TDIjNq0O/3ZbOJAxwITIWXEA=="
-    },
-    "@intlify/runtime": {
-      "version": "9.1.9",
-      "resolved": "https://registry.npmmirror.com/@intlify/runtime/-/runtime-9.1.9.tgz",
-      "integrity": "sha512-XgPw8+UlHCiie3fI41HPVa/VDJb3/aSH7bLhY1hJvlvNV713PFtb4p4Jo+rlE0gAoMsMCGcsiT982fImolSltg==",
-      "requires": {
-        "@intlify/message-compiler": "9.1.9",
-        "@intlify/message-resolver": "9.1.9",
-        "@intlify/shared": "9.1.9"
-      }
-    },
-    "@intlify/shared": {
-      "version": "9.1.9",
-      "resolved": "https://registry.npmmirror.com/@intlify/shared/-/shared-9.1.9.tgz",
-      "integrity": "sha512-xKGM1d0EAxdDFCWedcYXOm6V5Pfw/TMudd6/qCdEb4tv0hk9EKeg7lwQF1azE0dP2phvx0yXxrt7UQK+IZjNdw=="
-    },
-    "@intlify/vue-devtools": {
-      "version": "9.1.9",
-      "resolved": "https://registry.npmmirror.com/@intlify/vue-devtools/-/vue-devtools-9.1.9.tgz",
-      "integrity": "sha512-YPehH9uL4vZcGXky4Ev5qQIITnHKIvsD2GKGXgqf+05osMUI6WSEQHaN9USRa318Rs8RyyPCiDfmA0hRu3k7og==",
-      "requires": {
-        "@intlify/message-resolver": "9.1.9",
-        "@intlify/runtime": "9.1.9",
-        "@intlify/shared": "9.1.9"
-      }
-    },
-    "@istanbuljs/load-nyc-config": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmmirror.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz",
-      "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "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"
-      },
-      "dependencies": {
-        "argparse": {
-          "version": "1.0.10",
-          "resolved": "https://registry.npmmirror.com/argparse/-/argparse-1.0.10.tgz",
-          "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "sprintf-js": "~1.0.2"
-          }
-        },
-        "camelcase": {
-          "version": "5.3.1",
-          "resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-5.3.1.tgz",
-          "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
-          "dev": true,
-          "peer": true
-        },
-        "find-up": {
-          "version": "4.1.0",
-          "resolved": "https://registry.npmmirror.com/find-up/-/find-up-4.1.0.tgz",
-          "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "locate-path": "^5.0.0",
-            "path-exists": "^4.0.0"
-          }
-        },
-        "js-yaml": {
-          "version": "3.14.1",
-          "resolved": "https://registry.npmmirror.com/js-yaml/-/js-yaml-3.14.1.tgz",
-          "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "argparse": "^1.0.7",
-            "esprima": "^4.0.0"
-          }
-        },
-        "locate-path": {
-          "version": "5.0.0",
-          "resolved": "https://registry.npmmirror.com/locate-path/-/locate-path-5.0.0.tgz",
-          "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "p-locate": "^4.1.0"
-          }
-        },
-        "p-limit": {
-          "version": "2.3.0",
-          "resolved": "https://registry.npmmirror.com/p-limit/-/p-limit-2.3.0.tgz",
-          "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "p-try": "^2.0.0"
-          }
-        },
-        "p-locate": {
-          "version": "4.1.0",
-          "resolved": "https://registry.npmmirror.com/p-locate/-/p-locate-4.1.0.tgz",
-          "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "p-limit": "^2.2.0"
-          }
-        },
-        "resolve-from": {
-          "version": "5.0.0",
-          "resolved": "https://registry.npmmirror.com/resolve-from/-/resolve-from-5.0.0.tgz",
-          "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
-          "dev": true,
-          "peer": true
-        }
-      }
-    },
-    "@istanbuljs/schema": {
-      "version": "0.1.3",
-      "resolved": "https://registry.npmmirror.com/@istanbuljs/schema/-/schema-0.1.3.tgz",
-      "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==",
-      "dev": true,
-      "peer": true
-    },
-    "@jest/console": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/@jest/console/-/console-27.5.1.tgz",
-      "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "@jest/types": "^27.5.1",
-        "@types/node": "*",
-        "chalk": "^4.0.0",
-        "jest-message-util": "^27.5.1",
-        "jest-util": "^27.5.1",
-        "slash": "^3.0.0"
-      },
-      "dependencies": {
-        "ansi-styles": {
-          "version": "4.3.0",
-          "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
-          "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "color-convert": "^2.0.1"
-          }
-        },
-        "chalk": {
-          "version": "4.1.2",
-          "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
-          "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "ansi-styles": "^4.1.0",
-            "supports-color": "^7.1.0"
-          }
-        },
-        "color-convert": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
-          "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "color-name": "~1.1.4"
-          }
-        },
-        "color-name": {
-          "version": "1.1.4",
-          "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
-          "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
-          "dev": true,
-          "peer": true
-        },
-        "has-flag": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
-          "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
-          "dev": true,
-          "peer": true
-        },
-        "supports-color": {
-          "version": "7.2.0",
-          "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
-          "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "has-flag": "^4.0.0"
-          }
-        }
-      }
-    },
-    "@jest/core": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/@jest/core/-/core-27.5.1.tgz",
-      "integrity": "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "@jest/console": "^27.5.1",
-        "@jest/reporters": "^27.5.1",
-        "@jest/test-result": "^27.5.1",
-        "@jest/transform": "^27.5.1",
-        "@jest/types": "^27.5.1",
-        "@types/node": "*",
-        "ansi-escapes": "^4.2.1",
-        "chalk": "^4.0.0",
-        "emittery": "^0.8.1",
-        "exit": "^0.1.2",
-        "graceful-fs": "^4.2.9",
-        "jest-changed-files": "^27.5.1",
-        "jest-config": "^27.5.1",
-        "jest-haste-map": "^27.5.1",
-        "jest-message-util": "^27.5.1",
-        "jest-regex-util": "^27.5.1",
-        "jest-resolve": "^27.5.1",
-        "jest-resolve-dependencies": "^27.5.1",
-        "jest-runner": "^27.5.1",
-        "jest-runtime": "^27.5.1",
-        "jest-snapshot": "^27.5.1",
-        "jest-util": "^27.5.1",
-        "jest-validate": "^27.5.1",
-        "jest-watcher": "^27.5.1",
-        "micromatch": "^4.0.4",
-        "rimraf": "^3.0.0",
-        "slash": "^3.0.0",
-        "strip-ansi": "^6.0.0"
-      },
-      "dependencies": {
-        "ansi-styles": {
-          "version": "4.3.0",
-          "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
-          "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "color-convert": "^2.0.1"
-          }
-        },
-        "chalk": {
-          "version": "4.1.2",
-          "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
-          "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "ansi-styles": "^4.1.0",
-            "supports-color": "^7.1.0"
-          }
-        },
-        "color-convert": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
-          "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "color-name": "~1.1.4"
-          }
-        },
-        "color-name": {
-          "version": "1.1.4",
-          "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
-          "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
-          "dev": true,
-          "peer": true
-        },
-        "has-flag": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
-          "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
-          "dev": true,
-          "peer": true
-        },
-        "supports-color": {
-          "version": "7.2.0",
-          "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
-          "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "has-flag": "^4.0.0"
-          }
-        }
-      }
-    },
-    "@jest/environment": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/@jest/environment/-/environment-27.5.1.tgz",
-      "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "@jest/fake-timers": "^27.5.1",
-        "@jest/types": "^27.5.1",
-        "@types/node": "*",
-        "jest-mock": "^27.5.1"
-      }
-    },
-    "@jest/fake-timers": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/@jest/fake-timers/-/fake-timers-27.5.1.tgz",
-      "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "@jest/types": "^27.5.1",
-        "@sinonjs/fake-timers": "^8.0.1",
-        "@types/node": "*",
-        "jest-message-util": "^27.5.1",
-        "jest-mock": "^27.5.1",
-        "jest-util": "^27.5.1"
-      }
-    },
-    "@jest/globals": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/@jest/globals/-/globals-27.5.1.tgz",
-      "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "@jest/environment": "^27.5.1",
-        "@jest/types": "^27.5.1",
-        "expect": "^27.5.1"
-      }
-    },
-    "@jest/reporters": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/@jest/reporters/-/reporters-27.5.1.tgz",
-      "integrity": "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "@bcoe/v8-coverage": "^0.2.3",
-        "@jest/console": "^27.5.1",
-        "@jest/test-result": "^27.5.1",
-        "@jest/transform": "^27.5.1",
-        "@jest/types": "^27.5.1",
-        "@types/node": "*",
-        "chalk": "^4.0.0",
-        "collect-v8-coverage": "^1.0.0",
-        "exit": "^0.1.2",
-        "glob": "^7.1.2",
-        "graceful-fs": "^4.2.9",
-        "istanbul-lib-coverage": "^3.0.0",
-        "istanbul-lib-instrument": "^5.1.0",
-        "istanbul-lib-report": "^3.0.0",
-        "istanbul-lib-source-maps": "^4.0.0",
-        "istanbul-reports": "^3.1.3",
-        "jest-haste-map": "^27.5.1",
-        "jest-resolve": "^27.5.1",
-        "jest-util": "^27.5.1",
-        "jest-worker": "^27.5.1",
-        "slash": "^3.0.0",
-        "source-map": "^0.6.0",
-        "string-length": "^4.0.1",
-        "terminal-link": "^2.0.0",
-        "v8-to-istanbul": "^8.1.0"
-      },
-      "dependencies": {
-        "ansi-styles": {
-          "version": "4.3.0",
-          "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
-          "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "color-convert": "^2.0.1"
-          }
-        },
-        "chalk": {
-          "version": "4.1.2",
-          "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
-          "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "ansi-styles": "^4.1.0",
-            "supports-color": "^7.1.0"
-          }
-        },
-        "color-convert": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
-          "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "color-name": "~1.1.4"
-          }
-        },
-        "color-name": {
-          "version": "1.1.4",
-          "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
-          "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
-          "dev": true,
-          "peer": true
-        },
-        "has-flag": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
-          "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
-          "dev": true,
-          "peer": true
-        },
-        "supports-color": {
-          "version": "7.2.0",
-          "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
-          "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "has-flag": "^4.0.0"
-          }
-        }
-      }
-    },
-    "@jest/source-map": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/@jest/source-map/-/source-map-27.5.1.tgz",
-      "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "callsites": "^3.0.0",
-        "graceful-fs": "^4.2.9",
-        "source-map": "^0.6.0"
-      }
-    },
-    "@jest/test-result": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/@jest/test-result/-/test-result-27.5.1.tgz",
-      "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "@jest/console": "^27.5.1",
-        "@jest/types": "^27.5.1",
-        "@types/istanbul-lib-coverage": "^2.0.0",
-        "collect-v8-coverage": "^1.0.0"
-      }
-    },
-    "@jest/test-sequencer": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz",
-      "integrity": "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "@jest/test-result": "^27.5.1",
-        "graceful-fs": "^4.2.9",
-        "jest-haste-map": "^27.5.1",
-        "jest-runtime": "^27.5.1"
-      }
-    },
-    "@jest/transform": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/@jest/transform/-/transform-27.5.1.tgz",
-      "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "@babel/core": "^7.1.0",
-        "@jest/types": "^27.5.1",
-        "babel-plugin-istanbul": "^6.1.1",
-        "chalk": "^4.0.0",
-        "convert-source-map": "^1.4.0",
-        "fast-json-stable-stringify": "^2.0.0",
-        "graceful-fs": "^4.2.9",
-        "jest-haste-map": "^27.5.1",
-        "jest-regex-util": "^27.5.1",
-        "jest-util": "^27.5.1",
-        "micromatch": "^4.0.4",
-        "pirates": "^4.0.4",
-        "slash": "^3.0.0",
-        "source-map": "^0.6.1",
-        "write-file-atomic": "^3.0.0"
-      },
-      "dependencies": {
-        "ansi-styles": {
-          "version": "4.3.0",
-          "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
-          "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "color-convert": "^2.0.1"
-          }
-        },
-        "chalk": {
-          "version": "4.1.2",
-          "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
-          "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "ansi-styles": "^4.1.0",
-            "supports-color": "^7.1.0"
-          }
-        },
-        "color-convert": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
-          "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "color-name": "~1.1.4"
-          }
-        },
-        "color-name": {
-          "version": "1.1.4",
-          "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
-          "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
-          "dev": true,
-          "peer": true
-        },
-        "convert-source-map": {
-          "version": "1.9.0",
-          "resolved": "https://registry.npmmirror.com/convert-source-map/-/convert-source-map-1.9.0.tgz",
-          "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==",
-          "dev": true,
-          "peer": true
-        },
-        "has-flag": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
-          "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
-          "dev": true,
-          "peer": true
-        },
-        "supports-color": {
-          "version": "7.2.0",
-          "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
-          "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "has-flag": "^4.0.0"
-          }
-        }
-      }
-    },
-    "@jest/types": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/@jest/types/-/types-27.5.1.tgz",
-      "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "@types/istanbul-lib-coverage": "^2.0.0",
-        "@types/istanbul-reports": "^3.0.0",
-        "@types/node": "*",
-        "@types/yargs": "^16.0.0",
-        "chalk": "^4.0.0"
-      },
-      "dependencies": {
-        "ansi-styles": {
-          "version": "4.3.0",
-          "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
-          "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "color-convert": "^2.0.1"
-          }
-        },
-        "chalk": {
-          "version": "4.1.2",
-          "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
-          "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "ansi-styles": "^4.1.0",
-            "supports-color": "^7.1.0"
-          }
-        },
-        "color-convert": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
-          "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "color-name": "~1.1.4"
-          }
-        },
-        "color-name": {
-          "version": "1.1.4",
-          "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
-          "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
-          "dev": true,
-          "peer": true
-        },
-        "has-flag": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
-          "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
-          "dev": true,
-          "peer": true
-        },
-        "supports-color": {
-          "version": "7.2.0",
-          "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
-          "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "has-flag": "^4.0.0"
-          }
-        }
-      }
-    },
-    "@jimp/bmp": {
-      "version": "0.10.3",
-      "resolved": "https://registry.npmmirror.com/@jimp/bmp/-/bmp-0.10.3.tgz",
-      "integrity": "sha512-keMOc5woiDmONXsB/6aXLR4Z5Q+v8lFq3EY2rcj2FmstbDMhRuGbmcBxlEgOqfRjwvtf/wOtJ3Of37oAWtVfLg==",
-      "requires": {
-        "@babel/runtime": "^7.7.2",
-        "@jimp/utils": "^0.10.3",
-        "bmp-js": "^0.1.0",
-        "core-js": "^3.4.1"
-      }
-    },
-    "@jimp/core": {
-      "version": "0.10.3",
-      "resolved": "https://registry.npmmirror.com/@jimp/core/-/core-0.10.3.tgz",
-      "integrity": "sha512-Gd5IpL3U2bFIO57Fh/OA3HCpWm4uW/pU01E75rI03BXfTdz3T+J7TwvyG1XaqsQ7/DSlS99GXtLQPlfFIe28UA==",
-      "requires": {
-        "@babel/runtime": "^7.7.2",
-        "@jimp/utils": "^0.10.3",
-        "any-base": "^1.1.0",
-        "buffer": "^5.2.0",
-        "core-js": "^3.4.1",
-        "exif-parser": "^0.1.12",
-        "file-type": "^9.0.0",
-        "load-bmfont": "^1.3.1",
-        "mkdirp": "^0.5.1",
-        "phin": "^2.9.1",
-        "pixelmatch": "^4.0.2",
-        "tinycolor2": "^1.4.1"
-      }
-    },
-    "@jimp/custom": {
-      "version": "0.10.3",
-      "resolved": "https://registry.npmmirror.com/@jimp/custom/-/custom-0.10.3.tgz",
-      "integrity": "sha512-nZmSI+jwTi5IRyNLbKSXQovoeqsw+D0Jn0SxW08wYQvdkiWA8bTlDQFgQ7HVwCAKBm8oKkDB/ZEo9qvHJ+1gAQ==",
-      "requires": {
-        "@babel/runtime": "^7.7.2",
-        "@jimp/core": "^0.10.3",
-        "core-js": "^3.4.1"
-      }
-    },
-    "@jimp/gif": {
-      "version": "0.10.3",
-      "resolved": "https://registry.npmmirror.com/@jimp/gif/-/gif-0.10.3.tgz",
-      "integrity": "sha512-vjlRodSfz1CrUvvrnUuD/DsLK1GHB/yDZXHthVdZu23zYJIW7/WrIiD1IgQ5wOMV7NocfrvPn2iqUfBP81/WWA==",
-      "requires": {
-        "@babel/runtime": "^7.7.2",
-        "@jimp/utils": "^0.10.3",
-        "core-js": "^3.4.1",
-        "omggif": "^1.0.9"
-      }
-    },
-    "@jimp/jpeg": {
-      "version": "0.10.3",
-      "resolved": "https://registry.npmmirror.com/@jimp/jpeg/-/jpeg-0.10.3.tgz",
-      "integrity": "sha512-AAANwgUZOt6f6P7LZxY9lyJ9xclqutYJlsxt3JbriXUGJgrrFAIkcKcqv1nObgmQASSAQKYaMV9KdHjMlWFKlQ==",
-      "requires": {
-        "@babel/runtime": "^7.7.2",
-        "@jimp/utils": "^0.10.3",
-        "core-js": "^3.4.1",
-        "jpeg-js": "^0.3.4"
-      }
-    },
-    "@jimp/plugin-blit": {
-      "version": "0.10.3",
-      "resolved": "https://registry.npmmirror.com/@jimp/plugin-blit/-/plugin-blit-0.10.3.tgz",
-      "integrity": "sha512-5zlKlCfx4JWw9qUVC7GI4DzXyxDWyFvgZLaoGFoT00mlXlN75SarlDwc9iZ/2e2kp4bJWxz3cGgG4G/WXrbg3Q==",
-      "requires": {
-        "@babel/runtime": "^7.7.2",
-        "@jimp/utils": "^0.10.3",
-        "core-js": "^3.4.1"
-      }
-    },
-    "@jimp/plugin-blur": {
-      "version": "0.10.3",
-      "resolved": "https://registry.npmmirror.com/@jimp/plugin-blur/-/plugin-blur-0.10.3.tgz",
-      "integrity": "sha512-cTOK3rjh1Yjh23jSfA6EHCHjsPJDEGLC8K2y9gM7dnTUK1y9NNmkFS23uHpyjgsWFIoH9oRh2SpEs3INjCpZhQ==",
-      "requires": {
-        "@babel/runtime": "^7.7.2",
-        "@jimp/utils": "^0.10.3",
-        "core-js": "^3.4.1"
-      }
-    },
-    "@jimp/plugin-circle": {
-      "version": "0.10.3",
-      "resolved": "https://registry.npmmirror.com/@jimp/plugin-circle/-/plugin-circle-0.10.3.tgz",
-      "integrity": "sha512-51GAPIVelqAcfuUpaM5JWJ0iWl4vEjNXB7p4P7SX5udugK5bxXUjO6KA2qgWmdpHuCKtoNgkzWU9fNSuYp7tCA==",
-      "requires": {
-        "@babel/runtime": "^7.7.2",
-        "@jimp/utils": "^0.10.3",
-        "core-js": "^3.4.1"
-      }
-    },
-    "@jimp/plugin-color": {
-      "version": "0.10.3",
-      "resolved": "https://registry.npmmirror.com/@jimp/plugin-color/-/plugin-color-0.10.3.tgz",
-      "integrity": "sha512-RgeHUElmlTH7vpI4WyQrz6u59spiKfVQbsG/XUzfWGamFSixa24ZDwX/yV/Ts+eNaz7pZeIuv533qmKPvw2ujg==",
-      "requires": {
-        "@babel/runtime": "^7.7.2",
-        "@jimp/utils": "^0.10.3",
-        "core-js": "^3.4.1",
-        "tinycolor2": "^1.4.1"
-      }
-    },
-    "@jimp/plugin-contain": {
-      "version": "0.10.3",
-      "resolved": "https://registry.npmmirror.com/@jimp/plugin-contain/-/plugin-contain-0.10.3.tgz",
-      "integrity": "sha512-bYJKW9dqzcB0Ihc6u7jSyKa3juStzbLs2LFr6fu8TzA2WkMS/R8h+ddkiO36+F9ILTWHP0CIA3HFe5OdOGcigw==",
-      "requires": {
-        "@babel/runtime": "^7.7.2",
-        "@jimp/utils": "^0.10.3",
-        "core-js": "^3.4.1"
-      }
-    },
-    "@jimp/plugin-cover": {
-      "version": "0.10.3",
-      "resolved": "https://registry.npmmirror.com/@jimp/plugin-cover/-/plugin-cover-0.10.3.tgz",
-      "integrity": "sha512-pOxu0cM0BRPzdV468n4dMocJXoMbTnARDY/EpC3ZW15SpMuc/dr1KhWQHgoQX5kVW1Wt8zgqREAJJCQ5KuPKDA==",
-      "requires": {
-        "@babel/runtime": "^7.7.2",
-        "@jimp/utils": "^0.10.3",
-        "core-js": "^3.4.1"
-      }
-    },
-    "@jimp/plugin-crop": {
-      "version": "0.10.3",
-      "resolved": "https://registry.npmmirror.com/@jimp/plugin-crop/-/plugin-crop-0.10.3.tgz",
-      "integrity": "sha512-nB7HgOjjl9PgdHr076xZ3Sr6qHYzeBYBs9qvs3tfEEUeYMNnvzgCCGtUl6eMakazZFCMk3mhKmcB9zQuHFOvkg==",
-      "requires": {
-        "@babel/runtime": "^7.7.2",
-        "@jimp/utils": "^0.10.3",
-        "core-js": "^3.4.1"
-      }
-    },
-    "@jimp/plugin-displace": {
-      "version": "0.10.3",
-      "resolved": "https://registry.npmmirror.com/@jimp/plugin-displace/-/plugin-displace-0.10.3.tgz",
-      "integrity": "sha512-8t3fVKCH5IVqI4lewe4lFFjpxxr69SQCz5/tlpDLQZsrNScNJivHdQ09zljTrVTCSgeCqQJIKgH2Q7Sk/pAZ0w==",
-      "requires": {
-        "@babel/runtime": "^7.7.2",
-        "@jimp/utils": "^0.10.3",
-        "core-js": "^3.4.1"
-      }
-    },
-    "@jimp/plugin-dither": {
-      "version": "0.10.3",
-      "resolved": "https://registry.npmmirror.com/@jimp/plugin-dither/-/plugin-dither-0.10.3.tgz",
-      "integrity": "sha512-JCX/oNSnEg1kGQ8ffZ66bEgQOLCY3Rn+lrd6v1jjLy/mn9YVZTMsxLtGCXpiCDC2wG/KTmi4862ysmP9do9dAQ==",
-      "requires": {
-        "@babel/runtime": "^7.7.2",
-        "@jimp/utils": "^0.10.3",
-        "core-js": "^3.4.1"
-      }
-    },
-    "@jimp/plugin-fisheye": {
-      "version": "0.10.3",
-      "resolved": "https://registry.npmmirror.com/@jimp/plugin-fisheye/-/plugin-fisheye-0.10.3.tgz",
-      "integrity": "sha512-RRZb1wqe+xdocGcFtj2xHU7sF7xmEZmIa6BmrfSchjyA2b32TGPWKnP3qyj7p6LWEsXn+19hRYbjfyzyebPElQ==",
-      "requires": {
-        "@babel/runtime": "^7.7.2",
-        "@jimp/utils": "^0.10.3",
-        "core-js": "^3.4.1"
-      }
-    },
-    "@jimp/plugin-flip": {
-      "version": "0.10.3",
-      "resolved": "https://registry.npmmirror.com/@jimp/plugin-flip/-/plugin-flip-0.10.3.tgz",
-      "integrity": "sha512-0epbi8XEzp0wmSjoW9IB0iMu0yNF17aZOxLdURCN3Zr+8nWPs5VNIMqSVa1Y62GSyiMDpVpKF/ITiXre+EqrPg==",
-      "requires": {
-        "@babel/runtime": "^7.7.2",
-        "@jimp/utils": "^0.10.3",
-        "core-js": "^3.4.1"
-      }
-    },
-    "@jimp/plugin-gaussian": {
-      "version": "0.10.3",
-      "resolved": "https://registry.npmmirror.com/@jimp/plugin-gaussian/-/plugin-gaussian-0.10.3.tgz",
-      "integrity": "sha512-25eHlFbHUDnMMGpgRBBeQ2AMI4wsqCg46sue0KklI+c2BaZ+dGXmJA5uT8RTOrt64/K9Wz5E+2n7eBnny4dfpQ==",
-      "requires": {
-        "@babel/runtime": "^7.7.2",
-        "@jimp/utils": "^0.10.3",
-        "core-js": "^3.4.1"
-      }
-    },
-    "@jimp/plugin-invert": {
-      "version": "0.10.3",
-      "resolved": "https://registry.npmmirror.com/@jimp/plugin-invert/-/plugin-invert-0.10.3.tgz",
-      "integrity": "sha512-effYSApWY/FbtlzqsKXlTLkgloKUiHBKjkQnqh5RL4oQxh/33j6aX+HFdDyQKtsXb8CMd4xd7wyiD2YYabTa0g==",
-      "requires": {
-        "@babel/runtime": "^7.7.2",
-        "@jimp/utils": "^0.10.3",
-        "core-js": "^3.4.1"
-      }
-    },
-    "@jimp/plugin-mask": {
-      "version": "0.10.3",
-      "resolved": "https://registry.npmmirror.com/@jimp/plugin-mask/-/plugin-mask-0.10.3.tgz",
-      "integrity": "sha512-twrg8q8TIhM9Z6Jcu9/5f+OCAPaECb0eKrrbbIajJqJ3bCUlj5zbfgIhiQIzjPJ6KjpnFPSqHQfHkU1Vvk/nVw==",
-      "requires": {
-        "@babel/runtime": "^7.7.2",
-        "@jimp/utils": "^0.10.3",
-        "core-js": "^3.4.1"
-      }
-    },
-    "@jimp/plugin-normalize": {
-      "version": "0.10.3",
-      "resolved": "https://registry.npmmirror.com/@jimp/plugin-normalize/-/plugin-normalize-0.10.3.tgz",
-      "integrity": "sha512-xkb5eZI/mMlbwKkDN79+1/t/+DBo8bBXZUMsT4gkFgMRKNRZ6NQPxlv1d3QpRzlocsl6UMxrHnhgnXdLAcgrXw==",
-      "requires": {
-        "@babel/runtime": "^7.7.2",
-        "@jimp/utils": "^0.10.3",
-        "core-js": "^3.4.1"
-      }
-    },
-    "@jimp/plugin-print": {
-      "version": "0.10.3",
-      "resolved": "https://registry.npmmirror.com/@jimp/plugin-print/-/plugin-print-0.10.3.tgz",
-      "integrity": "sha512-wjRiI6yjXsAgMe6kVjizP+RgleUCLkH256dskjoNvJzmzbEfO7xQw9g6M02VET+emnbY0CO83IkrGm2q43VRyg==",
-      "requires": {
-        "@babel/runtime": "^7.7.2",
-        "@jimp/utils": "^0.10.3",
-        "core-js": "^3.4.1",
-        "load-bmfont": "^1.4.0"
-      }
-    },
-    "@jimp/plugin-resize": {
-      "version": "0.10.3",
-      "resolved": "https://registry.npmmirror.com/@jimp/plugin-resize/-/plugin-resize-0.10.3.tgz",
-      "integrity": "sha512-rf8YmEB1d7Sg+g4LpqF0Mp+dfXfb6JFJkwlAIWPUOR7lGsPWALavEwTW91c0etEdnp0+JB9AFpy6zqq7Lwkq6w==",
-      "requires": {
-        "@babel/runtime": "^7.7.2",
-        "@jimp/utils": "^0.10.3",
-        "core-js": "^3.4.1"
-      }
-    },
-    "@jimp/plugin-rotate": {
-      "version": "0.10.3",
-      "resolved": "https://registry.npmmirror.com/@jimp/plugin-rotate/-/plugin-rotate-0.10.3.tgz",
-      "integrity": "sha512-YXLlRjm18fkW9MOHUaVAxWjvgZM851ofOipytz5FyKp4KZWDLk+dZK1JNmVmK7MyVmAzZ5jsgSLhIgj+GgN0Eg==",
-      "requires": {
-        "@babel/runtime": "^7.7.2",
-        "@jimp/utils": "^0.10.3",
-        "core-js": "^3.4.1"
-      }
-    },
-    "@jimp/plugin-scale": {
-      "version": "0.10.3",
-      "resolved": "https://registry.npmmirror.com/@jimp/plugin-scale/-/plugin-scale-0.10.3.tgz",
-      "integrity": "sha512-5DXD7x7WVcX1gUgnlFXQa8F+Q3ThRYwJm+aesgrYvDOY+xzRoRSdQvhmdd4JEEue3lyX44DvBSgCIHPtGcEPaw==",
-      "requires": {
-        "@babel/runtime": "^7.7.2",
-        "@jimp/utils": "^0.10.3",
-        "core-js": "^3.4.1"
-      }
-    },
-    "@jimp/plugin-shadow": {
-      "version": "0.10.3",
-      "resolved": "https://registry.npmmirror.com/@jimp/plugin-shadow/-/plugin-shadow-0.10.3.tgz",
-      "integrity": "sha512-/nkFXpt2zVcdP4ETdkAUL0fSzyrC5ZFxdcphbYBodqD7fXNqChS/Un1eD4xCXWEpW8cnG9dixZgQgStjywH0Mg==",
-      "requires": {
-        "@babel/runtime": "^7.7.2",
-        "@jimp/utils": "^0.10.3",
-        "core-js": "^3.4.1"
-      }
-    },
-    "@jimp/plugin-threshold": {
-      "version": "0.10.3",
-      "resolved": "https://registry.npmmirror.com/@jimp/plugin-threshold/-/plugin-threshold-0.10.3.tgz",
-      "integrity": "sha512-Dzh0Yq2wXP2SOnxcbbiyA4LJ2luwrdf1MghNIt9H+NX7B+IWw/N8qA2GuSm9n4BPGSLluuhdAWJqHcTiREriVA==",
-      "requires": {
-        "@babel/runtime": "^7.7.2",
-        "@jimp/utils": "^0.10.3",
-        "core-js": "^3.4.1"
-      }
-    },
-    "@jimp/plugins": {
-      "version": "0.10.3",
-      "resolved": "https://registry.npmmirror.com/@jimp/plugins/-/plugins-0.10.3.tgz",
-      "integrity": "sha512-jTT3/7hOScf0EIKiAXmxwayHhryhc1wWuIe3FrchjDjr9wgIGNN2a7XwCgPl3fML17DXK1x8EzDneCdh261bkw==",
-      "requires": {
-        "@babel/runtime": "^7.7.2",
-        "@jimp/plugin-blit": "^0.10.3",
-        "@jimp/plugin-blur": "^0.10.3",
-        "@jimp/plugin-circle": "^0.10.3",
-        "@jimp/plugin-color": "^0.10.3",
-        "@jimp/plugin-contain": "^0.10.3",
-        "@jimp/plugin-cover": "^0.10.3",
-        "@jimp/plugin-crop": "^0.10.3",
-        "@jimp/plugin-displace": "^0.10.3",
-        "@jimp/plugin-dither": "^0.10.3",
-        "@jimp/plugin-fisheye": "^0.10.3",
-        "@jimp/plugin-flip": "^0.10.3",
-        "@jimp/plugin-gaussian": "^0.10.3",
-        "@jimp/plugin-invert": "^0.10.3",
-        "@jimp/plugin-mask": "^0.10.3",
-        "@jimp/plugin-normalize": "^0.10.3",
-        "@jimp/plugin-print": "^0.10.3",
-        "@jimp/plugin-resize": "^0.10.3",
-        "@jimp/plugin-rotate": "^0.10.3",
-        "@jimp/plugin-scale": "^0.10.3",
-        "@jimp/plugin-shadow": "^0.10.3",
-        "@jimp/plugin-threshold": "^0.10.3",
-        "core-js": "^3.4.1",
-        "timm": "^1.6.1"
-      }
-    },
-    "@jimp/png": {
-      "version": "0.10.3",
-      "resolved": "https://registry.npmmirror.com/@jimp/png/-/png-0.10.3.tgz",
-      "integrity": "sha512-YKqk/dkl+nGZxSYIDQrqhmaP8tC3IK8H7dFPnnzFVvbhDnyYunqBZZO3SaZUKTichClRw8k/CjBhbc+hifSGWg==",
-      "requires": {
-        "@babel/runtime": "^7.7.2",
-        "@jimp/utils": "^0.10.3",
-        "core-js": "^3.4.1",
-        "pngjs": "^3.3.3"
-      }
-    },
-    "@jimp/tiff": {
-      "version": "0.10.3",
-      "resolved": "https://registry.npmmirror.com/@jimp/tiff/-/tiff-0.10.3.tgz",
-      "integrity": "sha512-7EsJzZ5Y/EtinkBGuwX3Bi4S+zgbKouxjt9c82VJTRJOQgLWsE/RHqcyRCOQBhHAZ9QexYmDz34medfLKdoX0g==",
-      "requires": {
-        "@babel/runtime": "^7.7.2",
-        "core-js": "^3.4.1",
-        "utif": "^2.0.1"
-      }
-    },
-    "@jimp/types": {
-      "version": "0.10.3",
-      "resolved": "https://registry.npmmirror.com/@jimp/types/-/types-0.10.3.tgz",
-      "integrity": "sha512-XGmBakiHZqseSWr/puGN+CHzx0IKBSpsKlmEmsNV96HKDiP6eu8NSnwdGCEq2mmIHe0JNcg1hqg59hpwtQ7Tiw==",
-      "requires": {
-        "@babel/runtime": "^7.7.2",
-        "@jimp/bmp": "^0.10.3",
-        "@jimp/gif": "^0.10.3",
-        "@jimp/jpeg": "^0.10.3",
-        "@jimp/png": "^0.10.3",
-        "@jimp/tiff": "^0.10.3",
-        "core-js": "^3.4.1",
-        "timm": "^1.6.1"
-      }
-    },
-    "@jimp/utils": {
-      "version": "0.10.3",
-      "resolved": "https://registry.npmmirror.com/@jimp/utils/-/utils-0.10.3.tgz",
-      "integrity": "sha512-VcSlQhkil4ReYmg1KkN+WqHyYfZ2XfZxDsKAHSfST1GEz/RQHxKZbX+KhFKtKflnL0F4e6DlNQj3vznMNXCR2w==",
-      "requires": {
-        "@babel/runtime": "^7.7.2",
-        "core-js": "^3.4.1",
-        "regenerator-runtime": "^0.13.3"
-      }
-    },
-    "@jridgewell/gen-mapping": {
-      "version": "0.3.3",
-      "resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
-      "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==",
-      "requires": {
-        "@jridgewell/set-array": "^1.0.1",
-        "@jridgewell/sourcemap-codec": "^1.4.10",
-        "@jridgewell/trace-mapping": "^0.3.9"
-      }
-    },
-    "@jridgewell/resolve-uri": {
-      "version": "3.1.1",
-      "resolved": "https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz",
-      "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA=="
-    },
-    "@jridgewell/set-array": {
-      "version": "1.1.2",
-      "resolved": "https://registry.npmmirror.com/@jridgewell/set-array/-/set-array-1.1.2.tgz",
-      "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw=="
-    },
-    "@jridgewell/source-map": {
-      "version": "0.3.5",
-      "resolved": "https://registry.npmmirror.com/@jridgewell/source-map/-/source-map-0.3.5.tgz",
-      "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==",
-      "requires": {
-        "@jridgewell/gen-mapping": "^0.3.0",
-        "@jridgewell/trace-mapping": "^0.3.9"
-      }
-    },
-    "@jridgewell/sourcemap-codec": {
-      "version": "1.4.15",
-      "resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
-      "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg=="
-    },
-    "@jridgewell/trace-mapping": {
-      "version": "0.3.22",
-      "resolved": "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.22.tgz",
-      "integrity": "sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==",
-      "requires": {
-        "@jridgewell/resolve-uri": "^3.1.0",
-        "@jridgewell/sourcemap-codec": "^1.4.14"
-      }
-    },
-    "@nodelib/fs.scandir": {
-      "version": "2.1.5",
-      "resolved": "https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
-      "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
-      "requires": {
-        "@nodelib/fs.stat": "2.0.5",
-        "run-parallel": "^1.1.9"
-      }
-    },
-    "@nodelib/fs.stat": {
-      "version": "2.0.5",
-      "resolved": "https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
-      "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A=="
-    },
-    "@nodelib/fs.walk": {
-      "version": "1.2.8",
-      "resolved": "https://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
-      "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
-      "requires": {
-        "@nodelib/fs.scandir": "2.1.5",
-        "fastq": "^1.6.0"
-      }
-    },
-    "@pkgr/core": {
-      "version": "0.1.1",
-      "resolved": "https://registry.npmmirror.com/@pkgr/core/-/core-0.1.1.tgz",
-      "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA=="
-    },
-    "@rollup/pluginutils": {
-      "version": "4.2.1",
-      "resolved": "https://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-4.2.1.tgz",
-      "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==",
-      "requires": {
-        "estree-walker": "^2.0.1",
-        "picomatch": "^2.2.2"
-      }
-    },
-    "@sinonjs/commons": {
-      "version": "1.8.6",
-      "resolved": "https://registry.npmmirror.com/@sinonjs/commons/-/commons-1.8.6.tgz",
-      "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "type-detect": "4.0.8"
-      }
-    },
-    "@sinonjs/fake-timers": {
-      "version": "8.1.0",
-      "resolved": "https://registry.npmmirror.com/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz",
-      "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "@sinonjs/commons": "^1.7.0"
-      }
-    },
-    "@tootallnate/once": {
-      "version": "1.1.2",
-      "resolved": "https://registry.npmmirror.com/@tootallnate/once/-/once-1.1.2.tgz",
-      "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==",
-      "dev": true,
-      "peer": true
-    },
-    "@types/babel__core": {
-      "version": "7.20.5",
-      "resolved": "https://registry.npmmirror.com/@types/babel__core/-/babel__core-7.20.5.tgz",
-      "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "@babel/parser": "^7.20.7",
-        "@babel/types": "^7.20.7",
-        "@types/babel__generator": "*",
-        "@types/babel__template": "*",
-        "@types/babel__traverse": "*"
-      }
-    },
-    "@types/babel__generator": {
-      "version": "7.6.8",
-      "resolved": "https://registry.npmmirror.com/@types/babel__generator/-/babel__generator-7.6.8.tgz",
-      "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "@babel/types": "^7.0.0"
-      }
-    },
-    "@types/babel__template": {
-      "version": "7.4.4",
-      "resolved": "https://registry.npmmirror.com/@types/babel__template/-/babel__template-7.4.4.tgz",
-      "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "@babel/parser": "^7.1.0",
-        "@babel/types": "^7.0.0"
-      }
-    },
-    "@types/babel__traverse": {
-      "version": "7.20.5",
-      "resolved": "https://registry.npmmirror.com/@types/babel__traverse/-/babel__traverse-7.20.5.tgz",
-      "integrity": "sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "@babel/types": "^7.20.7"
-      }
-    },
-    "@types/eslint": {
-      "version": "8.56.2",
-      "resolved": "https://registry.npmmirror.com/@types/eslint/-/eslint-8.56.2.tgz",
-      "integrity": "sha512-uQDwm1wFHmbBbCZCqAlq6Do9LYwByNZHWzXppSnay9SuwJ+VRbjkbLABer54kcPnMSlG6Fdiy2yaFXm/z9Z5gw==",
-      "peer": true,
-      "requires": {
-        "@types/estree": "*",
-        "@types/json-schema": "*"
-      }
-    },
-    "@types/eslint-scope": {
-      "version": "3.7.7",
-      "resolved": "https://registry.npmmirror.com/@types/eslint-scope/-/eslint-scope-3.7.7.tgz",
-      "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==",
-      "peer": true,
-      "requires": {
-        "@types/eslint": "*",
-        "@types/estree": "*"
-      }
-    },
-    "@types/estree": {
-      "version": "1.0.5",
-      "resolved": "https://registry.npmmirror.com/@types/estree/-/estree-1.0.5.tgz",
-      "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==",
-      "peer": true
-    },
-    "@types/graceful-fs": {
-      "version": "4.1.9",
-      "resolved": "https://registry.npmmirror.com/@types/graceful-fs/-/graceful-fs-4.1.9.tgz",
-      "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "@types/node": "*"
-      }
-    },
-    "@types/istanbul-lib-coverage": {
-      "version": "2.0.6",
-      "resolved": "https://registry.npmmirror.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz",
-      "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==",
-      "dev": true,
-      "peer": true
-    },
-    "@types/istanbul-lib-report": {
-      "version": "3.0.3",
-      "resolved": "https://registry.npmmirror.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz",
-      "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "@types/istanbul-lib-coverage": "*"
-      }
-    },
-    "@types/istanbul-reports": {
-      "version": "3.0.4",
-      "resolved": "https://registry.npmmirror.com/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz",
-      "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "@types/istanbul-lib-report": "*"
-      }
-    },
-    "@types/json-schema": {
-      "version": "7.0.15",
-      "resolved": "https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.15.tgz",
-      "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA=="
-    },
-    "@types/json5": {
-      "version": "0.0.29",
-      "resolved": "https://registry.npmmirror.com/@types/json5/-/json5-0.0.29.tgz",
-      "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==",
-      "dev": true
-    },
-    "@types/node": {
-      "version": "20.11.17",
-      "resolved": "https://registry.npmmirror.com/@types/node/-/node-20.11.17.tgz",
-      "integrity": "sha512-QmgQZGWu1Yw9TDyAP9ZzpFJKynYNeOvwMJmaxABfieQoVoiVOS6MN1WSpqpRcbeA5+RW82kraAVxCCJg+780Qw==",
-      "requires": {
-        "undici-types": "~5.26.4"
-      }
-    },
-    "@types/prettier": {
-      "version": "2.7.3",
-      "resolved": "https://registry.npmmirror.com/@types/prettier/-/prettier-2.7.3.tgz",
-      "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==",
-      "dev": true,
-      "peer": true
-    },
-    "@types/qs": {
-      "version": "6.9.11",
-      "resolved": "https://registry.npmmirror.com/@types/qs/-/qs-6.9.11.tgz",
-      "integrity": "sha512-oGk0gmhnEJK4Yyk+oI7EfXsLayXatCWPHary1MtcmbAifkobT9cM9yutG/hZKIseOU0MqbIwQ/u2nn/Gb+ltuQ==",
-      "dev": true
-    },
-    "@types/semver": {
-      "version": "7.5.6",
-      "resolved": "https://registry.npmmirror.com/@types/semver/-/semver-7.5.6.tgz",
-      "integrity": "sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==",
-      "dev": true
-    },
-    "@types/stack-utils": {
-      "version": "2.0.3",
-      "resolved": "https://registry.npmmirror.com/@types/stack-utils/-/stack-utils-2.0.3.tgz",
-      "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==",
-      "dev": true,
-      "peer": true
-    },
-    "@types/yargs": {
-      "version": "16.0.9",
-      "resolved": "https://registry.npmmirror.com/@types/yargs/-/yargs-16.0.9.tgz",
-      "integrity": "sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "@types/yargs-parser": "*"
-      }
-    },
-    "@types/yargs-parser": {
-      "version": "21.0.3",
-      "resolved": "https://registry.npmmirror.com/@types/yargs-parser/-/yargs-parser-21.0.3.tgz",
-      "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==",
-      "dev": true,
-      "peer": true
-    },
-    "@typescript-eslint/eslint-plugin": {
-      "version": "6.21.0",
-      "resolved": "https://registry.npmmirror.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz",
-      "integrity": "sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==",
-      "dev": true,
-      "requires": {
-        "@eslint-community/regexpp": "^4.5.1",
-        "@typescript-eslint/scope-manager": "6.21.0",
-        "@typescript-eslint/type-utils": "6.21.0",
-        "@typescript-eslint/utils": "6.21.0",
-        "@typescript-eslint/visitor-keys": "6.21.0",
-        "debug": "^4.3.4",
-        "graphemer": "^1.4.0",
-        "ignore": "^5.2.4",
-        "natural-compare": "^1.4.0",
-        "semver": "^7.5.4",
-        "ts-api-utils": "^1.0.1"
-      },
-      "dependencies": {
-        "lru-cache": {
-          "version": "6.0.0",
-          "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz",
-          "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
-          "dev": true,
-          "requires": {
-            "yallist": "^4.0.0"
-          }
-        },
-        "semver": {
-          "version": "7.6.0",
-          "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.0.tgz",
-          "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
-          "dev": true,
-          "requires": {
-            "lru-cache": "^6.0.0"
-          }
-        },
-        "yallist": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz",
-          "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
-          "dev": true
-        }
-      }
-    },
-    "@typescript-eslint/parser": {
-      "version": "6.21.0",
-      "resolved": "https://registry.npmmirror.com/@typescript-eslint/parser/-/parser-6.21.0.tgz",
-      "integrity": "sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==",
-      "dev": true,
-      "requires": {
-        "@typescript-eslint/scope-manager": "6.21.0",
-        "@typescript-eslint/types": "6.21.0",
-        "@typescript-eslint/typescript-estree": "6.21.0",
-        "@typescript-eslint/visitor-keys": "6.21.0",
-        "debug": "^4.3.4"
-      }
-    },
-    "@typescript-eslint/scope-manager": {
-      "version": "6.21.0",
-      "resolved": "https://registry.npmmirror.com/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz",
-      "integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==",
-      "dev": true,
-      "requires": {
-        "@typescript-eslint/types": "6.21.0",
-        "@typescript-eslint/visitor-keys": "6.21.0"
-      }
-    },
-    "@typescript-eslint/type-utils": {
-      "version": "6.21.0",
-      "resolved": "https://registry.npmmirror.com/@typescript-eslint/type-utils/-/type-utils-6.21.0.tgz",
-      "integrity": "sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==",
-      "dev": true,
-      "requires": {
-        "@typescript-eslint/typescript-estree": "6.21.0",
-        "@typescript-eslint/utils": "6.21.0",
-        "debug": "^4.3.4",
-        "ts-api-utils": "^1.0.1"
-      }
-    },
-    "@typescript-eslint/types": {
-      "version": "6.21.0",
-      "resolved": "https://registry.npmmirror.com/@typescript-eslint/types/-/types-6.21.0.tgz",
-      "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==",
-      "dev": true
-    },
-    "@typescript-eslint/typescript-estree": {
-      "version": "6.21.0",
-      "resolved": "https://registry.npmmirror.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz",
-      "integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==",
-      "dev": true,
-      "requires": {
-        "@typescript-eslint/types": "6.21.0",
-        "@typescript-eslint/visitor-keys": "6.21.0",
-        "debug": "^4.3.4",
-        "globby": "^11.1.0",
-        "is-glob": "^4.0.3",
-        "minimatch": "9.0.3",
-        "semver": "^7.5.4",
-        "ts-api-utils": "^1.0.1"
-      },
-      "dependencies": {
-        "lru-cache": {
-          "version": "6.0.0",
-          "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz",
-          "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
-          "dev": true,
-          "requires": {
-            "yallist": "^4.0.0"
-          }
-        },
-        "semver": {
-          "version": "7.6.0",
-          "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.0.tgz",
-          "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
-          "dev": true,
-          "requires": {
-            "lru-cache": "^6.0.0"
-          }
-        },
-        "yallist": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz",
-          "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
-          "dev": true
-        }
-      }
-    },
-    "@typescript-eslint/utils": {
-      "version": "6.21.0",
-      "resolved": "https://registry.npmmirror.com/@typescript-eslint/utils/-/utils-6.21.0.tgz",
-      "integrity": "sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==",
-      "dev": true,
-      "requires": {
-        "@eslint-community/eslint-utils": "^4.4.0",
-        "@types/json-schema": "^7.0.12",
-        "@types/semver": "^7.5.0",
-        "@typescript-eslint/scope-manager": "6.21.0",
-        "@typescript-eslint/types": "6.21.0",
-        "@typescript-eslint/typescript-estree": "6.21.0",
-        "semver": "^7.5.4"
-      },
-      "dependencies": {
-        "lru-cache": {
-          "version": "6.0.0",
-          "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz",
-          "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
-          "dev": true,
-          "requires": {
-            "yallist": "^4.0.0"
-          }
-        },
-        "semver": {
-          "version": "7.6.0",
-          "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.0.tgz",
-          "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
-          "dev": true,
-          "requires": {
-            "lru-cache": "^6.0.0"
-          }
-        },
-        "yallist": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz",
-          "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
-          "dev": true
-        }
-      }
-    },
-    "@typescript-eslint/visitor-keys": {
-      "version": "6.21.0",
-      "resolved": "https://registry.npmmirror.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz",
-      "integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==",
-      "dev": true,
-      "requires": {
-        "@typescript-eslint/types": "6.21.0",
-        "eslint-visitor-keys": "^3.4.1"
-      }
-    },
-    "@ungap/structured-clone": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmmirror.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz",
-      "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ=="
-    },
-    "@vitejs/plugin-legacy": {
-      "version": "4.1.1",
-      "resolved": "https://registry.npmmirror.com/@vitejs/plugin-legacy/-/plugin-legacy-4.1.1.tgz",
-      "integrity": "sha512-um3gbVouD2Q/g19C0qpDfHwveXDCAHzs8OC3e9g6aXpKoD1H14himgs7wkMnhAynBJy7QqUoZNAXDuqN8zLR2g==",
-      "dev": true,
-      "requires": {
-        "@babel/core": "^7.22.9",
-        "@babel/preset-env": "^7.22.9",
-        "browserslist": "^4.21.9",
-        "core-js": "^3.31.1",
-        "magic-string": "^0.30.1",
-        "regenerator-runtime": "^0.13.11",
-        "systemjs": "^6.14.1"
-      }
-    },
-    "@vitejs/plugin-vue": {
-      "version": "4.6.2",
-      "resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-4.6.2.tgz",
-      "integrity": "sha512-kqf7SGFoG+80aZG6Pf+gsZIVvGSCKE98JbiWqcCV9cThtg91Jav0yvYFC9Zb+jKetNGF6ZKeoaxgZfND21fWKw==",
-      "requires": {}
-    },
-    "@vitejs/plugin-vue-jsx": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue-jsx/-/plugin-vue-jsx-3.1.0.tgz",
-      "integrity": "sha512-w9M6F3LSEU5kszVb9An2/MmXNxocAnUb3WhRr8bHlimhDrXNt6n6D2nJQR3UXpGlZHh/EsgouOHCsM8V3Ln+WA==",
-      "dev": true,
-      "requires": {
-        "@babel/core": "^7.23.3",
-        "@babel/plugin-transform-typescript": "^7.23.3",
-        "@vue/babel-plugin-jsx": "^1.1.5"
-      }
-    },
-    "@volar/language-core": {
-      "version": "1.11.1",
-      "resolved": "https://registry.npmmirror.com/@volar/language-core/-/language-core-1.11.1.tgz",
-      "integrity": "sha512-dOcNn3i9GgZAcJt43wuaEykSluAuOkQgzni1cuxLxTV0nJKanQztp7FxyswdRILaKH+P2XZMPRp2S4MV/pElCw==",
-      "dev": true,
-      "requires": {
-        "@volar/source-map": "1.11.1"
-      }
-    },
-    "@volar/source-map": {
-      "version": "1.11.1",
-      "resolved": "https://registry.npmmirror.com/@volar/source-map/-/source-map-1.11.1.tgz",
-      "integrity": "sha512-hJnOnwZ4+WT5iupLRnuzbULZ42L7BWWPMmruzwtLhJfpDVoZLjNBxHDi2sY2bgZXCKlpU5XcsMFoYrsQmPhfZg==",
-      "dev": true,
-      "requires": {
-        "muggle-string": "^0.3.1"
-      }
-    },
-    "@volar/typescript": {
-      "version": "1.11.1",
-      "resolved": "https://registry.npmmirror.com/@volar/typescript/-/typescript-1.11.1.tgz",
-      "integrity": "sha512-iU+t2mas/4lYierSnoFOeRFQUhAEMgsFuQxoxvwn5EdQopw43j+J27a4lt9LMInx1gLJBC6qL14WYGlgymaSMQ==",
-      "dev": true,
-      "requires": {
-        "@volar/language-core": "1.11.1",
-        "path-browserify": "^1.0.1"
-      }
-    },
-    "@vue/babel-helper-vue-transform-on": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmmirror.com/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.2.1.tgz",
-      "integrity": "sha512-jtEXim+pfyHWwvheYwUwSXm43KwQo8nhOBDyjrUITV6X2tB7lJm6n/+4sqR8137UVZZul5hBzWHdZ2uStYpyRQ==",
-      "dev": true
-    },
-    "@vue/babel-plugin-jsx": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmmirror.com/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.2.1.tgz",
-      "integrity": "sha512-Yy9qGktktXhB39QE99So/BO2Uwm/ZG+gpL9vMg51ijRRbINvgbuhyJEi4WYmGRMx/MSTfK0xjgZ3/MyY+iLCEg==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-module-imports": "^7.22.15",
-        "@babel/helper-plugin-utils": "^7.22.5",
-        "@babel/plugin-syntax-jsx": "^7.23.3",
-        "@babel/template": "^7.22.15",
-        "@babel/traverse": "^7.23.7",
-        "@babel/types": "^7.23.6",
-        "@vue/babel-helper-vue-transform-on": "1.2.1",
-        "@vue/babel-plugin-resolve-type": "1.2.1",
-        "camelcase": "^6.3.0",
-        "html-tags": "^3.3.1",
-        "svg-tags": "^1.0.0"
-      }
-    },
-    "@vue/babel-plugin-resolve-type": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmmirror.com/@vue/babel-plugin-resolve-type/-/babel-plugin-resolve-type-1.2.1.tgz",
-      "integrity": "sha512-IOtnI7pHunUzHS/y+EG/yPABIAp0VN8QhQ0UCS09jeMVxgAnI9qdOzO85RXdQGxq+aWCdv8/+k3W0aYO6j/8fQ==",
-      "dev": true,
-      "requires": {
-        "@babel/code-frame": "^7.23.5",
-        "@babel/helper-module-imports": "^7.22.15",
-        "@babel/helper-plugin-utils": "^7.22.5",
-        "@babel/parser": "^7.23.6",
-        "@vue/compiler-sfc": "^3.4.15"
-      },
-      "dependencies": {
-        "@vue/compiler-core": {
-          "version": "3.4.18",
-          "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.4.18.tgz",
-          "integrity": "sha512-F7YK8lMK0iv6b9/Gdk15A67wM0KKZvxDxed0RR60C1z9tIJTKta+urs4j0RTN5XqHISzI3etN3mX0uHhjmoqjQ==",
-          "dev": true,
-          "requires": {
-            "@babel/parser": "^7.23.9",
-            "@vue/shared": "3.4.18",
-            "entities": "^4.5.0",
-            "estree-walker": "^2.0.2",
-            "source-map-js": "^1.0.2"
-          }
-        },
-        "@vue/compiler-dom": {
-          "version": "3.4.18",
-          "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.4.18.tgz",
-          "integrity": "sha512-24Eb8lcMfInefvQ6YlEVS18w5Q66f4+uXWVA+yb7praKbyjHRNuKVWGuinfSSjM0ZIiPi++QWukhkgznBaqpEA==",
-          "dev": true,
-          "requires": {
-            "@vue/compiler-core": "3.4.18",
-            "@vue/shared": "3.4.18"
-          }
-        },
-        "@vue/compiler-sfc": {
-          "version": "3.4.18",
-          "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.4.18.tgz",
-          "integrity": "sha512-rG5tqtnzwrVpMqAQ7FHtvHaV70G6LLfJIWLYZB/jZ9m/hrnZmIQh+H3ewnC5onwe/ibljm9+ZupxeElzqCkTAw==",
-          "dev": true,
-          "requires": {
-            "@babel/parser": "^7.23.9",
-            "@vue/compiler-core": "3.4.18",
-            "@vue/compiler-dom": "3.4.18",
-            "@vue/compiler-ssr": "3.4.18",
-            "@vue/shared": "3.4.18",
-            "estree-walker": "^2.0.2",
-            "magic-string": "^0.30.6",
-            "postcss": "^8.4.33",
-            "source-map-js": "^1.0.2"
-          }
-        },
-        "@vue/compiler-ssr": {
-          "version": "3.4.18",
-          "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.4.18.tgz",
-          "integrity": "sha512-hSlv20oUhPxo2UYUacHgGaxtqP0tvFo6ixxxD6JlXIkwzwoZ9eKK6PFQN4hNK/R13JlNyldwWt/fqGBKgWJ6nQ==",
-          "dev": true,
-          "requires": {
-            "@vue/compiler-dom": "3.4.18",
-            "@vue/shared": "3.4.18"
-          }
-        },
-        "@vue/shared": {
-          "version": "3.4.18",
-          "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.4.18.tgz",
-          "integrity": "sha512-CxouGFxxaW5r1WbrSmWwck3No58rApXgRSBxrqgnY1K+jk20F6DrXJkHdH9n4HVT+/B6G2CAn213Uq3npWiy8Q==",
-          "dev": true
-        }
-      }
-    },
-    "@vue/compiler-core": {
-      "version": "3.2.47",
-      "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.2.47.tgz",
-      "integrity": "sha512-p4D7FDnQb7+YJmO2iPEv0SQNeNzcbHdGByJDsT4lynf63AFkOTFN07HsiRSvjGo0QrxR/o3d0hUyNCUnBU2Tig==",
-      "requires": {
-        "@babel/parser": "^7.16.4",
-        "@vue/shared": "3.2.47",
-        "estree-walker": "^2.0.2",
-        "source-map": "^0.6.1"
-      }
-    },
-    "@vue/compiler-dom": {
-      "version": "3.2.47",
-      "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.2.47.tgz",
-      "integrity": "sha512-dBBnEHEPoftUiS03a4ggEig74J2YBZ2UIeyfpcRM2tavgMWo4bsEfgCGsu+uJIL/vax9S+JztH8NmQerUo7shQ==",
-      "requires": {
-        "@vue/compiler-core": "3.2.47",
-        "@vue/shared": "3.2.47"
-      }
-    },
-    "@vue/compiler-sfc": {
-      "version": "3.2.47",
-      "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.2.47.tgz",
-      "integrity": "sha512-rog05W+2IFfxjMcFw10tM9+f7i/+FFpZJJ5XHX72NP9eC2uRD+42M3pYcQqDXVYoj74kHMSEdQ/WmCjt8JFksQ==",
-      "requires": {
-        "@babel/parser": "^7.16.4",
-        "@vue/compiler-core": "3.2.47",
-        "@vue/compiler-dom": "3.2.47",
-        "@vue/compiler-ssr": "3.2.47",
-        "@vue/reactivity-transform": "3.2.47",
-        "@vue/shared": "3.2.47",
-        "estree-walker": "^2.0.2",
-        "magic-string": "^0.25.7",
-        "postcss": "^8.1.10",
-        "source-map": "^0.6.1"
-      },
-      "dependencies": {
-        "magic-string": {
-          "version": "0.25.9",
-          "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.25.9.tgz",
-          "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==",
-          "requires": {
-            "sourcemap-codec": "^1.4.8"
-          }
-        }
-      }
-    },
-    "@vue/compiler-ssr": {
-      "version": "3.2.47",
-      "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.2.47.tgz",
-      "integrity": "sha512-wVXC+gszhulcMD8wpxMsqSOpvDZ6xKXSVWkf50Guf/S+28hTAXPDYRTbLQ3EDkOP5Xz/+SY37YiwDquKbJOgZw==",
-      "requires": {
-        "@vue/compiler-dom": "3.2.47",
-        "@vue/shared": "3.2.47"
-      }
-    },
-    "@vue/devtools-api": {
-      "version": "6.5.1",
-      "resolved": "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.5.1.tgz",
-      "integrity": "sha512-+KpckaAQyfbvshdDW5xQylLni1asvNSGme1JFs8I1+/H5pHEhqUKMEQD/qn3Nx5+/nycBq11qAEi8lk+LXI2dA=="
-    },
-    "@vue/eslint-config-prettier": {
-      "version": "8.0.0",
-      "resolved": "https://registry.npmmirror.com/@vue/eslint-config-prettier/-/eslint-config-prettier-8.0.0.tgz",
-      "integrity": "sha512-55dPqtC4PM/yBjhAr+yEw6+7KzzdkBuLmnhBrDfp4I48+wy+Giqqj9yUr5T2uD/BkBROjjmqnLZmXRdOx/VtQg==",
-      "dev": true,
-      "requires": {
-        "eslint-config-prettier": "^8.8.0",
-        "eslint-plugin-prettier": "^5.0.0"
-      },
-      "dependencies": {
-        "eslint-config-prettier": {
-          "version": "8.10.0",
-          "resolved": "https://registry.npmmirror.com/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz",
-          "integrity": "sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==",
-          "dev": true,
-          "requires": {}
-        }
-      }
-    },
-    "@vue/eslint-config-typescript": {
-      "version": "12.0.0",
-      "resolved": "https://registry.npmmirror.com/@vue/eslint-config-typescript/-/eslint-config-typescript-12.0.0.tgz",
-      "integrity": "sha512-StxLFet2Qe97T8+7L8pGlhYBBr8Eg05LPuTDVopQV6il+SK6qqom59BA/rcFipUef2jD8P2X44Vd8tMFytfvlg==",
-      "dev": true,
-      "requires": {
-        "@typescript-eslint/eslint-plugin": "^6.7.0",
-        "@typescript-eslint/parser": "^6.7.0",
-        "vue-eslint-parser": "^9.3.1"
-      }
-    },
-    "@vue/language-core": {
-      "version": "1.8.27",
-      "resolved": "https://registry.npmmirror.com/@vue/language-core/-/language-core-1.8.27.tgz",
-      "integrity": "sha512-L8Kc27VdQserNaCUNiSFdDl9LWT24ly8Hpwf1ECy3aFb9m6bDhBGQYOujDm21N7EW3moKIOKEanQwe1q5BK+mA==",
-      "dev": true,
-      "requires": {
-        "@volar/language-core": "~1.11.1",
-        "@volar/source-map": "~1.11.1",
-        "@vue/compiler-dom": "^3.3.0",
-        "@vue/shared": "^3.3.0",
-        "computeds": "^0.0.1",
-        "minimatch": "^9.0.3",
-        "muggle-string": "^0.3.1",
-        "path-browserify": "^1.0.1",
-        "vue-template-compiler": "^2.7.14"
-      },
-      "dependencies": {
-        "@vue/compiler-core": {
-          "version": "3.4.18",
-          "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.4.18.tgz",
-          "integrity": "sha512-F7YK8lMK0iv6b9/Gdk15A67wM0KKZvxDxed0RR60C1z9tIJTKta+urs4j0RTN5XqHISzI3etN3mX0uHhjmoqjQ==",
-          "dev": true,
-          "requires": {
-            "@babel/parser": "^7.23.9",
-            "@vue/shared": "3.4.18",
-            "entities": "^4.5.0",
-            "estree-walker": "^2.0.2",
-            "source-map-js": "^1.0.2"
-          }
-        },
-        "@vue/compiler-dom": {
-          "version": "3.4.18",
-          "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.4.18.tgz",
-          "integrity": "sha512-24Eb8lcMfInefvQ6YlEVS18w5Q66f4+uXWVA+yb7praKbyjHRNuKVWGuinfSSjM0ZIiPi++QWukhkgznBaqpEA==",
-          "dev": true,
-          "requires": {
-            "@vue/compiler-core": "3.4.18",
-            "@vue/shared": "3.4.18"
-          }
-        },
-        "@vue/shared": {
-          "version": "3.4.18",
-          "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.4.18.tgz",
-          "integrity": "sha512-CxouGFxxaW5r1WbrSmWwck3No58rApXgRSBxrqgnY1K+jk20F6DrXJkHdH9n4HVT+/B6G2CAn213Uq3npWiy8Q==",
-          "dev": true
-        }
-      }
-    },
-    "@vue/reactivity": {
-      "version": "3.4.18",
-      "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.4.18.tgz",
-      "integrity": "sha512-7uda2/I0jpLiRygprDo5Jxs2HJkOVXcOMlyVlY54yRLxoycBpwGJRwJT9EdGB4adnoqJDXVT2BilUAYwI7qvmg==",
-      "requires": {
-        "@vue/shared": "3.4.18"
-      },
-      "dependencies": {
-        "@vue/shared": {
-          "version": "3.4.18",
-          "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.4.18.tgz",
-          "integrity": "sha512-CxouGFxxaW5r1WbrSmWwck3No58rApXgRSBxrqgnY1K+jk20F6DrXJkHdH9n4HVT+/B6G2CAn213Uq3npWiy8Q=="
-        }
-      }
-    },
-    "@vue/reactivity-transform": {
-      "version": "3.2.47",
-      "resolved": "https://registry.npmmirror.com/@vue/reactivity-transform/-/reactivity-transform-3.2.47.tgz",
-      "integrity": "sha512-m8lGXw8rdnPVVIdIFhf0LeQ/ixyHkH5plYuS83yop5n7ggVJU+z5v0zecwEnX7fa7HNLBhh2qngJJkxpwEEmYA==",
-      "requires": {
-        "@babel/parser": "^7.16.4",
-        "@vue/compiler-core": "3.2.47",
-        "@vue/shared": "3.2.47",
-        "estree-walker": "^2.0.2",
-        "magic-string": "^0.25.7"
-      },
-      "dependencies": {
-        "magic-string": {
-          "version": "0.25.9",
-          "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.25.9.tgz",
-          "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==",
-          "requires": {
-            "sourcemap-codec": "^1.4.8"
-          }
-        }
-      }
-    },
-    "@vue/runtime-core": {
-      "version": "3.4.18",
-      "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.4.18.tgz",
-      "integrity": "sha512-7mU9diCa+4e+8/wZ7Udw5pwTH10A11sZ1nldmHOUKJnzCwvZxfJqAtw31mIf4T5H2FsLCSBQT3xgioA9vIjyDQ==",
-      "requires": {
-        "@vue/reactivity": "3.4.18",
-        "@vue/shared": "3.4.18"
-      },
-      "dependencies": {
-        "@vue/shared": {
-          "version": "3.4.18",
-          "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.4.18.tgz",
-          "integrity": "sha512-CxouGFxxaW5r1WbrSmWwck3No58rApXgRSBxrqgnY1K+jk20F6DrXJkHdH9n4HVT+/B6G2CAn213Uq3npWiy8Q=="
-        }
-      }
-    },
-    "@vue/runtime-dom": {
-      "version": "3.4.18",
-      "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.4.18.tgz",
-      "integrity": "sha512-2y1Mkzcw1niSfG7z3Qx+2ir9Gb4hdTkZe5p/I8x1aTIKQE0vY0tPAEUPhZm5tx6183gG3D/KwHG728UR0sIufA==",
-      "requires": {
-        "@vue/runtime-core": "3.4.18",
-        "@vue/shared": "3.4.18",
-        "csstype": "^3.1.3"
-      },
-      "dependencies": {
-        "@vue/shared": {
-          "version": "3.4.18",
-          "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.4.18.tgz",
-          "integrity": "sha512-CxouGFxxaW5r1WbrSmWwck3No58rApXgRSBxrqgnY1K+jk20F6DrXJkHdH9n4HVT+/B6G2CAn213Uq3npWiy8Q=="
-        }
-      }
-    },
-    "@vue/server-renderer": {
-      "version": "3.4.18",
-      "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.4.18.tgz",
-      "integrity": "sha512-YJd1wa7mzUN3NRqLEsrwEYWyO+PUBSROIGlCc3J/cvn7Zu6CxhNLgXa8Z4zZ5ja5/nviYO79J1InoPeXgwBTZA==",
-      "requires": {
-        "@vue/compiler-ssr": "3.4.18",
-        "@vue/shared": "3.4.18"
-      },
-      "dependencies": {
-        "@vue/compiler-core": {
-          "version": "3.4.18",
-          "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.4.18.tgz",
-          "integrity": "sha512-F7YK8lMK0iv6b9/Gdk15A67wM0KKZvxDxed0RR60C1z9tIJTKta+urs4j0RTN5XqHISzI3etN3mX0uHhjmoqjQ==",
-          "requires": {
-            "@babel/parser": "^7.23.9",
-            "@vue/shared": "3.4.18",
-            "entities": "^4.5.0",
-            "estree-walker": "^2.0.2",
-            "source-map-js": "^1.0.2"
-          }
-        },
-        "@vue/compiler-dom": {
-          "version": "3.4.18",
-          "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.4.18.tgz",
-          "integrity": "sha512-24Eb8lcMfInefvQ6YlEVS18w5Q66f4+uXWVA+yb7praKbyjHRNuKVWGuinfSSjM0ZIiPi++QWukhkgznBaqpEA==",
-          "requires": {
-            "@vue/compiler-core": "3.4.18",
-            "@vue/shared": "3.4.18"
-          }
-        },
-        "@vue/compiler-ssr": {
-          "version": "3.4.18",
-          "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.4.18.tgz",
-          "integrity": "sha512-hSlv20oUhPxo2UYUacHgGaxtqP0tvFo6ixxxD6JlXIkwzwoZ9eKK6PFQN4hNK/R13JlNyldwWt/fqGBKgWJ6nQ==",
-          "requires": {
-            "@vue/compiler-dom": "3.4.18",
-            "@vue/shared": "3.4.18"
-          }
-        },
-        "@vue/shared": {
-          "version": "3.4.18",
-          "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.4.18.tgz",
-          "integrity": "sha512-CxouGFxxaW5r1WbrSmWwck3No58rApXgRSBxrqgnY1K+jk20F6DrXJkHdH9n4HVT+/B6G2CAn213Uq3npWiy8Q=="
-        }
-      }
-    },
-    "@vue/shared": {
-      "version": "3.2.47",
-      "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.2.47.tgz",
-      "integrity": "sha512-BHGyyGN3Q97EZx0taMQ+OLNuZcW3d37ZEVmEAyeoA9ERdGvm9Irc/0Fua8SNyOtV1w6BS4q25wbMzJujO9HIfQ=="
-    },
-    "@vue/tsconfig": {
-      "version": "0.1.3",
-      "resolved": "https://registry.npmmirror.com/@vue/tsconfig/-/tsconfig-0.1.3.tgz",
-      "integrity": "sha512-kQVsh8yyWPvHpb8gIc9l/HIDiiVUy1amynLNpCy8p+FoCiZXCo6fQos5/097MmnNZc9AtseDsCrfkhqCrJ8Olg==",
-      "dev": true,
-      "requires": {}
-    },
-    "@webassemblyjs/ast": {
-      "version": "1.11.6",
-      "resolved": "https://registry.npmmirror.com/@webassemblyjs/ast/-/ast-1.11.6.tgz",
-      "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==",
-      "peer": true,
-      "requires": {
-        "@webassemblyjs/helper-numbers": "1.11.6",
-        "@webassemblyjs/helper-wasm-bytecode": "1.11.6"
-      }
-    },
-    "@webassemblyjs/floating-point-hex-parser": {
-      "version": "1.11.6",
-      "resolved": "https://registry.npmmirror.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz",
-      "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==",
-      "peer": true
-    },
-    "@webassemblyjs/helper-api-error": {
-      "version": "1.11.6",
-      "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz",
-      "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==",
-      "peer": true
-    },
-    "@webassemblyjs/helper-buffer": {
-      "version": "1.11.6",
-      "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz",
-      "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==",
-      "peer": true
-    },
-    "@webassemblyjs/helper-numbers": {
-      "version": "1.11.6",
-      "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz",
-      "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==",
-      "peer": true,
-      "requires": {
-        "@webassemblyjs/floating-point-hex-parser": "1.11.6",
-        "@webassemblyjs/helper-api-error": "1.11.6",
-        "@xtuc/long": "4.2.2"
-      }
-    },
-    "@webassemblyjs/helper-wasm-bytecode": {
-      "version": "1.11.6",
-      "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz",
-      "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==",
-      "peer": true
-    },
-    "@webassemblyjs/helper-wasm-section": {
-      "version": "1.11.6",
-      "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz",
-      "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==",
-      "peer": true,
-      "requires": {
-        "@webassemblyjs/ast": "1.11.6",
-        "@webassemblyjs/helper-buffer": "1.11.6",
-        "@webassemblyjs/helper-wasm-bytecode": "1.11.6",
-        "@webassemblyjs/wasm-gen": "1.11.6"
-      }
-    },
-    "@webassemblyjs/ieee754": {
-      "version": "1.11.6",
-      "resolved": "https://registry.npmmirror.com/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz",
-      "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==",
-      "peer": true,
-      "requires": {
-        "@xtuc/ieee754": "^1.2.0"
-      }
-    },
-    "@webassemblyjs/leb128": {
-      "version": "1.11.6",
-      "resolved": "https://registry.npmmirror.com/@webassemblyjs/leb128/-/leb128-1.11.6.tgz",
-      "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==",
-      "peer": true,
-      "requires": {
-        "@xtuc/long": "4.2.2"
-      }
-    },
-    "@webassemblyjs/utf8": {
-      "version": "1.11.6",
-      "resolved": "https://registry.npmmirror.com/@webassemblyjs/utf8/-/utf8-1.11.6.tgz",
-      "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==",
-      "peer": true
-    },
-    "@webassemblyjs/wasm-edit": {
-      "version": "1.11.6",
-      "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz",
-      "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==",
-      "peer": true,
-      "requires": {
-        "@webassemblyjs/ast": "1.11.6",
-        "@webassemblyjs/helper-buffer": "1.11.6",
-        "@webassemblyjs/helper-wasm-bytecode": "1.11.6",
-        "@webassemblyjs/helper-wasm-section": "1.11.6",
-        "@webassemblyjs/wasm-gen": "1.11.6",
-        "@webassemblyjs/wasm-opt": "1.11.6",
-        "@webassemblyjs/wasm-parser": "1.11.6",
-        "@webassemblyjs/wast-printer": "1.11.6"
-      }
-    },
-    "@webassemblyjs/wasm-gen": {
-      "version": "1.11.6",
-      "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz",
-      "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==",
-      "peer": true,
-      "requires": {
-        "@webassemblyjs/ast": "1.11.6",
-        "@webassemblyjs/helper-wasm-bytecode": "1.11.6",
-        "@webassemblyjs/ieee754": "1.11.6",
-        "@webassemblyjs/leb128": "1.11.6",
-        "@webassemblyjs/utf8": "1.11.6"
-      }
-    },
-    "@webassemblyjs/wasm-opt": {
-      "version": "1.11.6",
-      "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz",
-      "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==",
-      "peer": true,
-      "requires": {
-        "@webassemblyjs/ast": "1.11.6",
-        "@webassemblyjs/helper-buffer": "1.11.6",
-        "@webassemblyjs/wasm-gen": "1.11.6",
-        "@webassemblyjs/wasm-parser": "1.11.6"
-      }
-    },
-    "@webassemblyjs/wasm-parser": {
-      "version": "1.11.6",
-      "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz",
-      "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==",
-      "peer": true,
-      "requires": {
-        "@webassemblyjs/ast": "1.11.6",
-        "@webassemblyjs/helper-api-error": "1.11.6",
-        "@webassemblyjs/helper-wasm-bytecode": "1.11.6",
-        "@webassemblyjs/ieee754": "1.11.6",
-        "@webassemblyjs/leb128": "1.11.6",
-        "@webassemblyjs/utf8": "1.11.6"
-      }
-    },
-    "@webassemblyjs/wast-printer": {
-      "version": "1.11.6",
-      "resolved": "https://registry.npmmirror.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz",
-      "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==",
-      "peer": true,
-      "requires": {
-        "@webassemblyjs/ast": "1.11.6",
-        "@xtuc/long": "4.2.2"
-      }
-    },
-    "@xtuc/ieee754": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmmirror.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
-      "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==",
-      "peer": true
-    },
-    "@xtuc/long": {
-      "version": "4.2.2",
-      "resolved": "https://registry.npmmirror.com/@xtuc/long/-/long-4.2.2.tgz",
-      "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==",
-      "peer": true
-    },
-    "abab": {
-      "version": "2.0.6",
-      "resolved": "https://registry.npmmirror.com/abab/-/abab-2.0.6.tgz",
-      "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==",
-      "dev": true,
-      "peer": true
-    },
-    "accepts": {
-      "version": "1.3.8",
-      "resolved": "https://registry.npmmirror.com/accepts/-/accepts-1.3.8.tgz",
-      "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
-      "dev": true,
-      "requires": {
-        "mime-types": "~2.1.34",
-        "negotiator": "0.6.3"
-      }
-    },
-    "acorn": {
-      "version": "8.11.3",
-      "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.11.3.tgz",
-      "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg=="
-    },
-    "acorn-globals": {
-      "version": "6.0.0",
-      "resolved": "https://registry.npmmirror.com/acorn-globals/-/acorn-globals-6.0.0.tgz",
-      "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "acorn": "^7.1.1",
-        "acorn-walk": "^7.1.1"
-      },
-      "dependencies": {
-        "acorn": {
-          "version": "7.4.1",
-          "resolved": "https://registry.npmmirror.com/acorn/-/acorn-7.4.1.tgz",
-          "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
-          "dev": true,
-          "peer": true
-        }
-      }
-    },
-    "acorn-import-assertions": {
-      "version": "1.9.0",
-      "resolved": "https://registry.npmmirror.com/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz",
-      "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==",
-      "peer": true,
-      "requires": {}
-    },
-    "acorn-jsx": {
-      "version": "5.3.2",
-      "resolved": "https://registry.npmmirror.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
-      "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
-      "requires": {}
-    },
-    "acorn-walk": {
-      "version": "7.2.0",
-      "resolved": "https://registry.npmmirror.com/acorn-walk/-/acorn-walk-7.2.0.tgz",
-      "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==",
-      "dev": true,
-      "peer": true
-    },
-    "address": {
-      "version": "1.2.2",
-      "resolved": "https://registry.npmmirror.com/address/-/address-1.2.2.tgz",
-      "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==",
-      "dev": true
-    },
-    "agent-base": {
-      "version": "6.0.2",
-      "resolved": "https://registry.npmmirror.com/agent-base/-/agent-base-6.0.2.tgz",
-      "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "debug": "4"
-      }
-    },
-    "ajv": {
-      "version": "6.12.6",
-      "resolved": "https://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz",
-      "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
-      "requires": {
-        "fast-deep-equal": "^3.1.1",
-        "fast-json-stable-stringify": "^2.0.0",
-        "json-schema-traverse": "^0.4.1",
-        "uri-js": "^4.2.2"
-      }
-    },
-    "ajv-keywords": {
-      "version": "3.5.2",
-      "resolved": "https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
-      "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
-      "peer": true,
-      "requires": {}
-    },
-    "ansi-escapes": {
-      "version": "4.3.2",
-      "resolved": "https://registry.npmmirror.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
-      "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "type-fest": "^0.21.3"
-      }
-    },
-    "ansi-regex": {
-      "version": "5.0.1",
-      "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz",
-      "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
-    },
-    "ansi-styles": {
-      "version": "3.2.1",
-      "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-3.2.1.tgz",
-      "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
-      "requires": {
-        "color-convert": "^1.9.0"
-      }
-    },
-    "any-base": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmmirror.com/any-base/-/any-base-1.1.0.tgz",
-      "integrity": "sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg=="
-    },
-    "anymatch": {
-      "version": "3.1.3",
-      "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz",
-      "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
-      "requires": {
-        "normalize-path": "^3.0.0",
-        "picomatch": "^2.0.4"
-      }
-    },
-    "argparse": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmmirror.com/argparse/-/argparse-2.0.1.tgz",
-      "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
-    },
-    "array-buffer-byte-length": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmmirror.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz",
-      "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==",
-      "dev": true,
-      "requires": {
-        "call-bind": "^1.0.5",
-        "is-array-buffer": "^3.0.4"
-      }
-    },
-    "array-flatten": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmmirror.com/array-flatten/-/array-flatten-1.1.1.tgz",
-      "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==",
-      "dev": true
-    },
-    "array-includes": {
-      "version": "3.1.7",
-      "resolved": "https://registry.npmmirror.com/array-includes/-/array-includes-3.1.7.tgz",
-      "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==",
-      "dev": true,
-      "requires": {
-        "call-bind": "^1.0.2",
-        "define-properties": "^1.2.0",
-        "es-abstract": "^1.22.1",
-        "get-intrinsic": "^1.2.1",
-        "is-string": "^1.0.7"
-      }
-    },
-    "array-union": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmmirror.com/array-union/-/array-union-2.1.0.tgz",
-      "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
-      "dev": true
-    },
-    "array.prototype.filter": {
-      "version": "1.0.3",
-      "resolved": "https://registry.npmmirror.com/array.prototype.filter/-/array.prototype.filter-1.0.3.tgz",
-      "integrity": "sha512-VizNcj/RGJiUyQBgzwxzE5oHdeuXY5hSbbmKMlphj1cy1Vl7Pn2asCGbSrru6hSQjmCzqTBPVWAF/whmEOVHbw==",
-      "dev": true,
-      "requires": {
-        "call-bind": "^1.0.2",
-        "define-properties": "^1.2.0",
-        "es-abstract": "^1.22.1",
-        "es-array-method-boxes-properly": "^1.0.0",
-        "is-string": "^1.0.7"
-      }
-    },
-    "array.prototype.findlastindex": {
-      "version": "1.2.4",
-      "resolved": "https://registry.npmmirror.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.4.tgz",
-      "integrity": "sha512-hzvSHUshSpCflDR1QMUBLHGHP1VIEBegT4pix9H/Z92Xw3ySoy6c2qh7lJWTJnRJ8JCZ9bJNCgTyYaJGcJu6xQ==",
-      "dev": true,
-      "requires": {
-        "call-bind": "^1.0.5",
-        "define-properties": "^1.2.1",
-        "es-abstract": "^1.22.3",
-        "es-errors": "^1.3.0",
-        "es-shim-unscopables": "^1.0.2"
-      }
-    },
-    "array.prototype.flat": {
-      "version": "1.3.2",
-      "resolved": "https://registry.npmmirror.com/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz",
-      "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==",
-      "dev": true,
-      "requires": {
-        "call-bind": "^1.0.2",
-        "define-properties": "^1.2.0",
-        "es-abstract": "^1.22.1",
-        "es-shim-unscopables": "^1.0.0"
-      }
-    },
-    "array.prototype.flatmap": {
-      "version": "1.3.2",
-      "resolved": "https://registry.npmmirror.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz",
-      "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==",
-      "dev": true,
-      "requires": {
-        "call-bind": "^1.0.2",
-        "define-properties": "^1.2.0",
-        "es-abstract": "^1.22.1",
-        "es-shim-unscopables": "^1.0.0"
-      }
-    },
-    "arraybuffer.prototype.slice": {
-      "version": "1.0.3",
-      "resolved": "https://registry.npmmirror.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz",
-      "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==",
-      "dev": true,
-      "requires": {
-        "array-buffer-byte-length": "^1.0.1",
-        "call-bind": "^1.0.5",
-        "define-properties": "^1.2.1",
-        "es-abstract": "^1.22.3",
-        "es-errors": "^1.2.1",
-        "get-intrinsic": "^1.2.3",
-        "is-array-buffer": "^3.0.4",
-        "is-shared-array-buffer": "^1.0.2"
-      }
-    },
-    "asynckit": {
-      "version": "0.4.0",
-      "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz",
-      "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
-      "dev": true,
-      "peer": true
-    },
-    "autoprefixer": {
-      "version": "10.4.17",
-      "resolved": "https://registry.npmmirror.com/autoprefixer/-/autoprefixer-10.4.17.tgz",
-      "integrity": "sha512-/cpVNRLSfhOtcGflT13P2794gVSgmPgTR+erw5ifnMLZb0UnSlkK4tquLmkd3BhA+nLo5tX8Cu0upUsGKvKbmg==",
-      "requires": {
-        "browserslist": "^4.22.2",
-        "caniuse-lite": "^1.0.30001578",
-        "fraction.js": "^4.3.7",
-        "normalize-range": "^0.1.2",
-        "picocolors": "^1.0.0",
-        "postcss-value-parser": "^4.2.0"
-      }
-    },
-    "available-typed-arrays": {
-      "version": "1.0.6",
-      "resolved": "https://registry.npmmirror.com/available-typed-arrays/-/available-typed-arrays-1.0.6.tgz",
-      "integrity": "sha512-j1QzY8iPNPG4o4xmO3ptzpRxTciqD3MgEHtifP/YnJpIo58Xu+ne4BejlbkuaLfXn/nz6HFiw29bLpj2PNMdGg==",
-      "dev": true
-    },
-    "babel-jest": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/babel-jest/-/babel-jest-27.5.1.tgz",
-      "integrity": "sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "@jest/transform": "^27.5.1",
-        "@jest/types": "^27.5.1",
-        "@types/babel__core": "^7.1.14",
-        "babel-plugin-istanbul": "^6.1.1",
-        "babel-preset-jest": "^27.5.1",
-        "chalk": "^4.0.0",
-        "graceful-fs": "^4.2.9",
-        "slash": "^3.0.0"
-      },
-      "dependencies": {
-        "ansi-styles": {
-          "version": "4.3.0",
-          "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
-          "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "color-convert": "^2.0.1"
-          }
-        },
-        "chalk": {
-          "version": "4.1.2",
-          "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
-          "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "ansi-styles": "^4.1.0",
-            "supports-color": "^7.1.0"
-          }
-        },
-        "color-convert": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
-          "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "color-name": "~1.1.4"
-          }
-        },
-        "color-name": {
-          "version": "1.1.4",
-          "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
-          "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
-          "dev": true,
-          "peer": true
-        },
-        "has-flag": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
-          "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
-          "dev": true,
-          "peer": true
-        },
-        "supports-color": {
-          "version": "7.2.0",
-          "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
-          "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "has-flag": "^4.0.0"
-          }
-        }
-      }
-    },
-    "babel-plugin-istanbul": {
-      "version": "6.1.1",
-      "resolved": "https://registry.npmmirror.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz",
-      "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "@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"
-      }
-    },
-    "babel-plugin-jest-hoist": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz",
-      "integrity": "sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "@babel/template": "^7.3.3",
-        "@babel/types": "^7.3.3",
-        "@types/babel__core": "^7.0.0",
-        "@types/babel__traverse": "^7.0.6"
-      }
-    },
-    "babel-plugin-polyfill-corejs2": {
-      "version": "0.4.8",
-      "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.8.tgz",
-      "integrity": "sha512-OtIuQfafSzpo/LhnJaykc0R/MMnuLSSVjVYy9mHArIZ9qTCSZ6TpWCuEKZYVoN//t8HqBNScHrOtCrIK5IaGLg==",
-      "dev": true,
-      "requires": {
-        "@babel/compat-data": "^7.22.6",
-        "@babel/helper-define-polyfill-provider": "^0.5.0",
-        "semver": "^6.3.1"
-      }
-    },
-    "babel-plugin-polyfill-corejs3": {
-      "version": "0.9.0",
-      "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.9.0.tgz",
-      "integrity": "sha512-7nZPG1uzK2Ymhy/NbaOWTg3uibM2BmGASS4vHS4szRZAIR8R6GwA/xAujpdrXU5iyklrimWnLWU+BLF9suPTqg==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-define-polyfill-provider": "^0.5.0",
-        "core-js-compat": "^3.34.0"
-      }
-    },
-    "babel-plugin-polyfill-regenerator": {
-      "version": "0.5.5",
-      "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.5.tgz",
-      "integrity": "sha512-OJGYZlhLqBh2DDHeqAxWB1XIvr49CxiJ2gIt61/PU55CQK4Z58OzMqjDe1zwQdQk+rBYsRc+1rJmdajM3gimHg==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-define-polyfill-provider": "^0.5.0"
-      }
-    },
-    "babel-preset-current-node-syntax": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmmirror.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz",
-      "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "@babel/plugin-syntax-async-generators": "^7.8.4",
-        "@babel/plugin-syntax-bigint": "^7.8.3",
-        "@babel/plugin-syntax-class-properties": "^7.8.3",
-        "@babel/plugin-syntax-import-meta": "^7.8.3",
-        "@babel/plugin-syntax-json-strings": "^7.8.3",
-        "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3",
-        "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3",
-        "@babel/plugin-syntax-numeric-separator": "^7.8.3",
-        "@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-top-level-await": "^7.8.3"
-      }
-    },
-    "babel-preset-jest": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz",
-      "integrity": "sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "babel-plugin-jest-hoist": "^27.5.1",
-        "babel-preset-current-node-syntax": "^1.0.0"
-      }
-    },
-    "balanced-match": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz",
-      "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
-    },
-    "base64-js": {
-      "version": "1.5.1",
-      "resolved": "https://registry.npmmirror.com/base64-js/-/base64-js-1.5.1.tgz",
-      "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="
-    },
-    "base64url": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmmirror.com/base64url/-/base64url-3.0.1.tgz",
-      "integrity": "sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A=="
-    },
-    "binary-extensions": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.2.0.tgz",
-      "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA=="
-    },
-    "bmp-js": {
-      "version": "0.1.0",
-      "resolved": "https://registry.npmmirror.com/bmp-js/-/bmp-js-0.1.0.tgz",
-      "integrity": "sha512-vHdS19CnY3hwiNdkaqk93DvjVLfbEcI8mys4UjuWrlX1haDmroo8o4xCzh4wD6DGV6HxRCyauwhHRqMTfERtjw=="
-    },
-    "body-parser": {
-      "version": "1.20.1",
-      "resolved": "https://registry.npmmirror.com/body-parser/-/body-parser-1.20.1.tgz",
-      "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==",
-      "dev": true,
-      "requires": {
-        "bytes": "3.1.2",
-        "content-type": "~1.0.4",
-        "debug": "2.6.9",
-        "depd": "2.0.0",
-        "destroy": "1.2.0",
-        "http-errors": "2.0.0",
-        "iconv-lite": "0.4.24",
-        "on-finished": "2.4.1",
-        "qs": "6.11.0",
-        "raw-body": "2.5.1",
-        "type-is": "~1.6.18",
-        "unpipe": "1.0.0"
-      },
-      "dependencies": {
-        "debug": {
-          "version": "2.6.9",
-          "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz",
-          "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
-          "dev": true,
-          "requires": {
-            "ms": "2.0.0"
-          }
-        },
-        "ms": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz",
-          "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
-          "dev": true
-        },
-        "qs": {
-          "version": "6.11.0",
-          "resolved": "https://registry.npmmirror.com/qs/-/qs-6.11.0.tgz",
-          "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
-          "dev": true,
-          "requires": {
-            "side-channel": "^1.0.4"
-          }
-        }
-      }
-    },
-    "boolbase": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmmirror.com/boolbase/-/boolbase-1.0.0.tgz",
-      "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==",
-      "dev": true
-    },
-    "brace-expansion": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz",
-      "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
-      "dev": true,
-      "requires": {
-        "balanced-match": "^1.0.0"
-      }
-    },
-    "braces": {
-      "version": "3.0.2",
-      "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz",
-      "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
-      "requires": {
-        "fill-range": "^7.0.1"
-      }
-    },
-    "browser-process-hrtime": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmmirror.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz",
-      "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==",
-      "dev": true,
-      "peer": true
-    },
-    "browserslist": {
-      "version": "4.22.3",
-      "resolved": "https://registry.npmmirror.com/browserslist/-/browserslist-4.22.3.tgz",
-      "integrity": "sha512-UAp55yfwNv0klWNapjs/ktHoguxuQNGnOzxYmfnXIS+8AsRDZkSDxg7R1AX3GKzn078SBI5dzwzj/Yx0Or0e3A==",
-      "requires": {
-        "caniuse-lite": "^1.0.30001580",
-        "electron-to-chromium": "^1.4.648",
-        "node-releases": "^2.0.14",
-        "update-browserslist-db": "^1.0.13"
-      }
-    },
-    "bser": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmmirror.com/bser/-/bser-2.1.1.tgz",
-      "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "node-int64": "^0.4.0"
-      }
-    },
-    "buffer": {
-      "version": "5.7.1",
-      "resolved": "https://registry.npmmirror.com/buffer/-/buffer-5.7.1.tgz",
-      "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
-      "requires": {
-        "base64-js": "^1.3.1",
-        "ieee754": "^1.1.13"
-      }
-    },
-    "buffer-equal": {
-      "version": "0.0.1",
-      "resolved": "https://registry.npmmirror.com/buffer-equal/-/buffer-equal-0.0.1.tgz",
-      "integrity": "sha512-RgSV6InVQ9ODPdLWJ5UAqBqJBOg370Nz6ZQtRzpt6nUjc8v0St97uJ4PYC6NztqIScrAXafKM3mZPMygSe1ggA=="
-    },
-    "buffer-from": {
-      "version": "1.1.2",
-      "resolved": "https://registry.npmmirror.com/buffer-from/-/buffer-from-1.1.2.tgz",
-      "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="
-    },
-    "builtin-modules": {
-      "version": "3.3.0",
-      "resolved": "https://registry.npmmirror.com/builtin-modules/-/builtin-modules-3.3.0.tgz",
-      "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==",
-      "dev": true
-    },
-    "builtins": {
-      "version": "5.0.1",
-      "resolved": "https://registry.npmmirror.com/builtins/-/builtins-5.0.1.tgz",
-      "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==",
-      "dev": true,
-      "requires": {
-        "semver": "^7.0.0"
-      },
-      "dependencies": {
-        "lru-cache": {
-          "version": "6.0.0",
-          "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz",
-          "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
-          "dev": true,
-          "requires": {
-            "yallist": "^4.0.0"
-          }
-        },
-        "semver": {
-          "version": "7.6.0",
-          "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.0.tgz",
-          "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
-          "dev": true,
-          "requires": {
-            "lru-cache": "^6.0.0"
-          }
-        },
-        "yallist": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz",
-          "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
-          "dev": true
-        }
-      }
-    },
-    "bytes": {
-      "version": "3.1.2",
-      "resolved": "https://registry.npmmirror.com/bytes/-/bytes-3.1.2.tgz",
-      "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
-      "dev": true
-    },
-    "cac": {
-      "version": "6.7.9",
-      "resolved": "https://registry.npmmirror.com/cac/-/cac-6.7.9.tgz",
-      "integrity": "sha512-XN5qEpfNQCJ8jRaZgitSkkukjMRCGio+X3Ks5KUbGGlPbV+pSem1l9VuzooCBXOiMFshUZgyYqg6rgN8rjkb/w==",
-      "dev": true
-    },
-    "call-bind": {
-      "version": "1.0.6",
-      "resolved": "https://registry.npmmirror.com/call-bind/-/call-bind-1.0.6.tgz",
-      "integrity": "sha512-Mj50FLHtlsoVfRfnHaZvyrooHcrlceNZdL/QBvJJVd9Ta55qCQK0gs4ss2oZDeV9zFCs6ewzYgVE5yfVmfFpVg==",
-      "requires": {
-        "es-errors": "^1.3.0",
-        "function-bind": "^1.1.2",
-        "get-intrinsic": "^1.2.3",
-        "set-function-length": "^1.2.0"
-      }
-    },
-    "callsites": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmmirror.com/callsites/-/callsites-3.1.0.tgz",
-      "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ=="
-    },
-    "camelcase": {
-      "version": "6.3.0",
-      "resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-6.3.0.tgz",
-      "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
-      "dev": true
-    },
-    "caniuse-lite": {
-      "version": "1.0.30001585",
-      "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001585.tgz",
-      "integrity": "sha512-yr2BWR1yLXQ8fMpdS/4ZZXpseBgE7o4g41x3a6AJOqZuOi+iE/WdJYAuZ6Y95i4Ohd2Y+9MzIWRR+uGABH4s3Q=="
-    },
-    "chalk": {
-      "version": "2.4.2",
-      "resolved": "https://registry.npmmirror.com/chalk/-/chalk-2.4.2.tgz",
-      "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
-      "requires": {
-        "ansi-styles": "^3.2.1",
-        "escape-string-regexp": "^1.0.5",
-        "supports-color": "^5.3.0"
-      }
-    },
-    "char-regex": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmmirror.com/char-regex/-/char-regex-1.0.2.tgz",
-      "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==",
-      "dev": true,
-      "peer": true
-    },
-    "chokidar": {
-      "version": "3.6.0",
-      "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.6.0.tgz",
-      "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
-      "requires": {
-        "anymatch": "~3.1.2",
-        "braces": "~3.0.2",
-        "fsevents": "~2.3.2",
-        "glob-parent": "~5.1.2",
-        "is-binary-path": "~2.1.0",
-        "is-glob": "~4.0.1",
-        "normalize-path": "~3.0.0",
-        "readdirp": "~3.6.0"
-      }
-    },
-    "chrome-trace-event": {
-      "version": "1.0.3",
-      "resolved": "https://registry.npmmirror.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz",
-      "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==",
-      "peer": true
-    },
-    "ci-info": {
-      "version": "3.9.0",
-      "resolved": "https://registry.npmmirror.com/ci-info/-/ci-info-3.9.0.tgz",
-      "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==",
-      "dev": true,
-      "peer": true
-    },
-    "cjs-module-lexer": {
-      "version": "1.2.3",
-      "resolved": "https://registry.npmmirror.com/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz",
-      "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==",
-      "dev": true,
-      "peer": true
-    },
-    "cliui": {
-      "version": "7.0.4",
-      "resolved": "https://registry.npmmirror.com/cliui/-/cliui-7.0.4.tgz",
-      "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "string-width": "^4.2.0",
-        "strip-ansi": "^6.0.0",
-        "wrap-ansi": "^7.0.0"
-      }
-    },
-    "co": {
-      "version": "4.6.0",
-      "resolved": "https://registry.npmmirror.com/co/-/co-4.6.0.tgz",
-      "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==",
-      "dev": true,
-      "peer": true
-    },
-    "collect-v8-coverage": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmmirror.com/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz",
-      "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==",
-      "dev": true,
-      "peer": true
-    },
-    "color-convert": {
-      "version": "1.9.3",
-      "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-1.9.3.tgz",
-      "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
-      "requires": {
-        "color-name": "1.1.3"
-      }
-    },
-    "color-name": {
-      "version": "1.1.3",
-      "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.3.tgz",
-      "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
-    },
-    "combined-stream": {
-      "version": "1.0.8",
-      "resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz",
-      "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "delayed-stream": "~1.0.0"
-      }
-    },
-    "commander": {
-      "version": "2.20.3",
-      "resolved": "https://registry.npmmirror.com/commander/-/commander-2.20.3.tgz",
-      "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="
-    },
-    "compare-versions": {
-      "version": "3.6.0",
-      "resolved": "https://registry.npmmirror.com/compare-versions/-/compare-versions-3.6.0.tgz",
-      "integrity": "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA=="
-    },
-    "computeds": {
-      "version": "0.0.1",
-      "resolved": "https://registry.npmmirror.com/computeds/-/computeds-0.0.1.tgz",
-      "integrity": "sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==",
-      "dev": true
-    },
-    "concat-map": {
-      "version": "0.0.1",
-      "resolved": "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz",
-      "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
-    },
-    "content-disposition": {
-      "version": "0.5.4",
-      "resolved": "https://registry.npmmirror.com/content-disposition/-/content-disposition-0.5.4.tgz",
-      "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
-      "dev": true,
-      "requires": {
-        "safe-buffer": "5.2.1"
-      }
-    },
-    "content-type": {
-      "version": "1.0.5",
-      "resolved": "https://registry.npmmirror.com/content-type/-/content-type-1.0.5.tgz",
-      "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
-      "dev": true
-    },
-    "convert-source-map": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmmirror.com/convert-source-map/-/convert-source-map-2.0.0.tgz",
-      "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg=="
-    },
-    "cookie": {
-      "version": "0.5.0",
-      "resolved": "https://registry.npmmirror.com/cookie/-/cookie-0.5.0.tgz",
-      "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==",
-      "dev": true
-    },
-    "cookie-signature": {
-      "version": "1.0.6",
-      "resolved": "https://registry.npmmirror.com/cookie-signature/-/cookie-signature-1.0.6.tgz",
-      "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==",
-      "dev": true
-    },
-    "core-js": {
-      "version": "3.35.1",
-      "resolved": "https://registry.npmmirror.com/core-js/-/core-js-3.35.1.tgz",
-      "integrity": "sha512-IgdsbxNyMskrTFxa9lWHyMwAJU5gXOPP+1yO+K59d50VLVAIDAbs7gIv705KzALModfK3ZrSZTPNpC0PQgIZuw=="
-    },
-    "core-js-compat": {
-      "version": "3.35.1",
-      "resolved": "https://registry.npmmirror.com/core-js-compat/-/core-js-compat-3.35.1.tgz",
-      "integrity": "sha512-sftHa5qUJY3rs9Zht1WEnmkvXputCyDBczPnr7QDgL8n3qrF3CMXY4VPSYtOLLiOUJcah2WNXREd48iOl6mQIw==",
-      "dev": true,
-      "requires": {
-        "browserslist": "^4.22.2"
-      }
-    },
-    "cross-env": {
-      "version": "7.0.3",
-      "resolved": "https://registry.npmmirror.com/cross-env/-/cross-env-7.0.3.tgz",
-      "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==",
-      "dev": true,
-      "requires": {
-        "cross-spawn": "^7.0.1"
-      }
-    },
-    "cross-spawn": {
-      "version": "7.0.3",
-      "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.3.tgz",
-      "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
-      "requires": {
-        "path-key": "^3.1.0",
-        "shebang-command": "^2.0.0",
-        "which": "^2.0.1"
-      }
-    },
-    "css-font-size-keywords": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmmirror.com/css-font-size-keywords/-/css-font-size-keywords-1.0.0.tgz",
-      "integrity": "sha512-Q+svMDbMlelgCfH/RVDKtTDaf5021O486ZThQPIpahnIjUkMUslC+WuOQSWTgGSrNCH08Y7tYNEmmy0hkfMI8Q=="
-    },
-    "css-font-stretch-keywords": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmmirror.com/css-font-stretch-keywords/-/css-font-stretch-keywords-1.0.1.tgz",
-      "integrity": "sha512-KmugPO2BNqoyp9zmBIUGwt58UQSfyk1X5DbOlkb2pckDXFSAfjsD5wenb88fNrD6fvS+vu90a/tsPpb9vb0SLg=="
-    },
-    "css-font-style-keywords": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmmirror.com/css-font-style-keywords/-/css-font-style-keywords-1.0.1.tgz",
-      "integrity": "sha512-0Fn0aTpcDktnR1RzaBYorIxQily85M2KXRpzmxQPgh8pxUN9Fcn00I8u9I3grNr1QXVgCl9T5Imx0ZwKU973Vg=="
-    },
-    "css-font-weight-keywords": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmmirror.com/css-font-weight-keywords/-/css-font-weight-keywords-1.0.0.tgz",
-      "integrity": "sha512-5So8/NH+oDD+EzsnF4iaG4ZFHQ3vaViePkL1ZbZ5iC/KrsCY+WHq/lvOgrtmuOQ9pBBZ1ADGpaf+A4lj1Z9eYA=="
-    },
-    "css-list-helpers": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmmirror.com/css-list-helpers/-/css-list-helpers-2.0.0.tgz",
-      "integrity": "sha512-9Bj8tZ0jWbAM3u/U6m/boAzAwLPwtjzFvwivr2piSvyVa3K3rChJzQy4RIHkNkKiZCHrEMWDJWtTR8UyVhdDnQ=="
-    },
-    "css-system-font-keywords": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmmirror.com/css-system-font-keywords/-/css-system-font-keywords-1.0.0.tgz",
-      "integrity": "sha512-1umTtVd/fXS25ftfjB71eASCrYhilmEsvDEI6wG/QplnmlfmVM5HkZ/ZX46DT5K3eblFPgLUHt5BRCb0YXkSFA=="
-    },
-    "cssesc": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmmirror.com/cssesc/-/cssesc-3.0.0.tgz",
-      "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg=="
-    },
-    "cssom": {
-      "version": "0.4.4",
-      "resolved": "https://registry.npmmirror.com/cssom/-/cssom-0.4.4.tgz",
-      "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==",
-      "dev": true,
-      "peer": true
-    },
-    "cssstyle": {
-      "version": "2.3.0",
-      "resolved": "https://registry.npmmirror.com/cssstyle/-/cssstyle-2.3.0.tgz",
-      "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "cssom": "~0.3.6"
-      },
-      "dependencies": {
-        "cssom": {
-          "version": "0.3.8",
-          "resolved": "https://registry.npmmirror.com/cssom/-/cssom-0.3.8.tgz",
-          "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==",
-          "dev": true,
-          "peer": true
-        }
-      }
-    },
-    "csstype": {
-      "version": "3.1.3",
-      "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.3.tgz",
-      "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="
-    },
-    "data-urls": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmmirror.com/data-urls/-/data-urls-2.0.0.tgz",
-      "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "abab": "^2.0.3",
-        "whatwg-mimetype": "^2.3.0",
-        "whatwg-url": "^8.0.0"
-      }
-    },
-    "dayjs": {
-      "version": "1.11.10",
-      "resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.10.tgz",
-      "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ=="
-    },
-    "de-indent": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmmirror.com/de-indent/-/de-indent-1.0.2.tgz",
-      "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==",
-      "dev": true
-    },
-    "debug": {
-      "version": "4.3.4",
-      "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz",
-      "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
-      "requires": {
-        "ms": "2.1.2"
-      }
-    },
-    "decimal.js": {
-      "version": "10.4.3",
-      "resolved": "https://registry.npmmirror.com/decimal.js/-/decimal.js-10.4.3.tgz",
-      "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==",
-      "dev": true,
-      "peer": true
-    },
-    "dedent": {
-      "version": "0.7.0",
-      "resolved": "https://registry.npmmirror.com/dedent/-/dedent-0.7.0.tgz",
-      "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==",
-      "dev": true,
-      "peer": true
-    },
-    "deep-is": {
-      "version": "0.1.4",
-      "resolved": "https://registry.npmmirror.com/deep-is/-/deep-is-0.1.4.tgz",
-      "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="
-    },
-    "deepmerge": {
-      "version": "4.3.1",
-      "resolved": "https://registry.npmmirror.com/deepmerge/-/deepmerge-4.3.1.tgz",
-      "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==",
-      "dev": true,
-      "peer": true
-    },
-    "default-gateway": {
-      "version": "6.0.3",
-      "resolved": "https://registry.npmmirror.com/default-gateway/-/default-gateway-6.0.3.tgz",
-      "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==",
-      "dev": true,
-      "requires": {
-        "execa": "^5.0.0"
-      }
-    },
-    "define-data-property": {
-      "version": "1.1.2",
-      "resolved": "https://registry.npmmirror.com/define-data-property/-/define-data-property-1.1.2.tgz",
-      "integrity": "sha512-SRtsSqsDbgpJBbW3pABMCOt6rQyeM8s8RiyeSN8jYG8sYmt/kGJejbydttUsnDs1tadr19tvhT4ShwMyoqAm4g==",
-      "requires": {
-        "es-errors": "^1.3.0",
-        "get-intrinsic": "^1.2.2",
-        "gopd": "^1.0.1",
-        "has-property-descriptors": "^1.0.1"
-      }
-    },
-    "define-properties": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmmirror.com/define-properties/-/define-properties-1.2.1.tgz",
-      "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==",
-      "dev": true,
-      "requires": {
-        "define-data-property": "^1.0.1",
-        "has-property-descriptors": "^1.0.0",
-        "object-keys": "^1.1.1"
-      }
-    },
-    "delayed-stream": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz",
-      "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
-      "dev": true,
-      "peer": true
-    },
-    "depd": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmmirror.com/depd/-/depd-2.0.0.tgz",
-      "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
-      "dev": true
-    },
-    "destroy": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmmirror.com/destroy/-/destroy-1.2.0.tgz",
-      "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
-      "dev": true
-    },
-    "detect-newline": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmmirror.com/detect-newline/-/detect-newline-3.1.0.tgz",
-      "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==",
-      "dev": true,
-      "peer": true
-    },
-    "diff-sequences": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/diff-sequences/-/diff-sequences-27.5.1.tgz",
-      "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==",
-      "dev": true,
-      "peer": true
-    },
-    "dir-glob": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmmirror.com/dir-glob/-/dir-glob-3.0.1.tgz",
-      "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
-      "dev": true,
-      "requires": {
-        "path-type": "^4.0.0"
-      }
-    },
-    "doctrine": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmmirror.com/doctrine/-/doctrine-3.0.0.tgz",
-      "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
-      "requires": {
-        "esutils": "^2.0.2"
-      }
-    },
-    "dom-walk": {
-      "version": "0.1.2",
-      "resolved": "https://registry.npmmirror.com/dom-walk/-/dom-walk-0.1.2.tgz",
-      "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w=="
-    },
-    "domexception": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmmirror.com/domexception/-/domexception-2.0.1.tgz",
-      "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "webidl-conversions": "^5.0.0"
-      },
-      "dependencies": {
-        "webidl-conversions": {
-          "version": "5.0.0",
-          "resolved": "https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz",
-          "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==",
-          "dev": true,
-          "peer": true
-        }
-      }
-    },
-    "ee-first": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmmirror.com/ee-first/-/ee-first-1.1.1.tgz",
-      "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==",
-      "dev": true
-    },
-    "electron-to-chromium": {
-      "version": "1.4.665",
-      "resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.665.tgz",
-      "integrity": "sha512-UpyCWObBoD+nSZgOC2ToaIdZB0r9GhqT2WahPKiSki6ckkSuKhQNso8V2PrFcHBMleI/eqbKgVQgVC4Wni4ilw=="
-    },
-    "emittery": {
-      "version": "0.8.1",
-      "resolved": "https://registry.npmmirror.com/emittery/-/emittery-0.8.1.tgz",
-      "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==",
-      "dev": true,
-      "peer": true
-    },
-    "emoji-regex": {
-      "version": "8.0.0",
-      "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz",
-      "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
-      "dev": true,
-      "peer": true
-    },
-    "encodeurl": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmmirror.com/encodeurl/-/encodeurl-1.0.2.tgz",
-      "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
-      "dev": true
-    },
-    "enhanced-resolve": {
-      "version": "5.15.0",
-      "resolved": "https://registry.npmmirror.com/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz",
-      "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==",
-      "peer": true,
-      "requires": {
-        "graceful-fs": "^4.2.4",
-        "tapable": "^2.2.0"
-      }
-    },
-    "entities": {
-      "version": "4.5.0",
-      "resolved": "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz",
-      "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw=="
-    },
-    "error-ex": {
-      "version": "1.3.2",
-      "resolved": "https://registry.npmmirror.com/error-ex/-/error-ex-1.3.2.tgz",
-      "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "is-arrayish": "^0.2.1"
-      }
-    },
-    "es-abstract": {
-      "version": "1.22.3",
-      "resolved": "https://registry.npmmirror.com/es-abstract/-/es-abstract-1.22.3.tgz",
-      "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==",
-      "dev": true,
-      "requires": {
-        "array-buffer-byte-length": "^1.0.0",
-        "arraybuffer.prototype.slice": "^1.0.2",
-        "available-typed-arrays": "^1.0.5",
-        "call-bind": "^1.0.5",
-        "es-set-tostringtag": "^2.0.1",
-        "es-to-primitive": "^1.2.1",
-        "function.prototype.name": "^1.1.6",
-        "get-intrinsic": "^1.2.2",
-        "get-symbol-description": "^1.0.0",
-        "globalthis": "^1.0.3",
-        "gopd": "^1.0.1",
-        "has-property-descriptors": "^1.0.0",
-        "has-proto": "^1.0.1",
-        "has-symbols": "^1.0.3",
-        "hasown": "^2.0.0",
-        "internal-slot": "^1.0.5",
-        "is-array-buffer": "^3.0.2",
-        "is-callable": "^1.2.7",
-        "is-negative-zero": "^2.0.2",
-        "is-regex": "^1.1.4",
-        "is-shared-array-buffer": "^1.0.2",
-        "is-string": "^1.0.7",
-        "is-typed-array": "^1.1.12",
-        "is-weakref": "^1.0.2",
-        "object-inspect": "^1.13.1",
-        "object-keys": "^1.1.1",
-        "object.assign": "^4.1.4",
-        "regexp.prototype.flags": "^1.5.1",
-        "safe-array-concat": "^1.0.1",
-        "safe-regex-test": "^1.0.0",
-        "string.prototype.trim": "^1.2.8",
-        "string.prototype.trimend": "^1.0.7",
-        "string.prototype.trimstart": "^1.0.7",
-        "typed-array-buffer": "^1.0.0",
-        "typed-array-byte-length": "^1.0.0",
-        "typed-array-byte-offset": "^1.0.0",
-        "typed-array-length": "^1.0.4",
-        "unbox-primitive": "^1.0.2",
-        "which-typed-array": "^1.1.13"
-      }
-    },
-    "es-array-method-boxes-properly": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmmirror.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz",
-      "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==",
-      "dev": true
-    },
-    "es-errors": {
-      "version": "1.3.0",
-      "resolved": "https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz",
-      "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw=="
-    },
-    "es-module-lexer": {
-      "version": "1.4.1",
-      "resolved": "https://registry.npmmirror.com/es-module-lexer/-/es-module-lexer-1.4.1.tgz",
-      "integrity": "sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w=="
-    },
-    "es-set-tostringtag": {
-      "version": "2.0.2",
-      "resolved": "https://registry.npmmirror.com/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz",
-      "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==",
-      "dev": true,
-      "requires": {
-        "get-intrinsic": "^1.2.2",
-        "has-tostringtag": "^1.0.0",
-        "hasown": "^2.0.0"
-      }
-    },
-    "es-shim-unscopables": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmmirror.com/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz",
-      "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==",
-      "dev": true,
-      "requires": {
-        "hasown": "^2.0.0"
-      }
-    },
-    "es-to-primitive": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmmirror.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
-      "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
-      "dev": true,
-      "requires": {
-        "is-callable": "^1.1.4",
-        "is-date-object": "^1.0.1",
-        "is-symbol": "^1.0.2"
-      }
-    },
-    "esbuild": {
-      "version": "0.17.19",
-      "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.17.19.tgz",
-      "integrity": "sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==",
-      "requires": {
-        "@esbuild/android-arm": "0.17.19",
-        "@esbuild/android-arm64": "0.17.19",
-        "@esbuild/android-x64": "0.17.19",
-        "@esbuild/darwin-arm64": "0.17.19",
-        "@esbuild/darwin-x64": "0.17.19",
-        "@esbuild/freebsd-arm64": "0.17.19",
-        "@esbuild/freebsd-x64": "0.17.19",
-        "@esbuild/linux-arm": "0.17.19",
-        "@esbuild/linux-arm64": "0.17.19",
-        "@esbuild/linux-ia32": "0.17.19",
-        "@esbuild/linux-loong64": "0.17.19",
-        "@esbuild/linux-mips64el": "0.17.19",
-        "@esbuild/linux-ppc64": "0.17.19",
-        "@esbuild/linux-riscv64": "0.17.19",
-        "@esbuild/linux-s390x": "0.17.19",
-        "@esbuild/linux-x64": "0.17.19",
-        "@esbuild/netbsd-x64": "0.17.19",
-        "@esbuild/openbsd-x64": "0.17.19",
-        "@esbuild/sunos-x64": "0.17.19",
-        "@esbuild/win32-arm64": "0.17.19",
-        "@esbuild/win32-ia32": "0.17.19",
-        "@esbuild/win32-x64": "0.17.19"
-      }
-    },
-    "escalade": {
-      "version": "3.1.2",
-      "resolved": "https://registry.npmmirror.com/escalade/-/escalade-3.1.2.tgz",
-      "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA=="
-    },
-    "escape-html": {
-      "version": "1.0.3",
-      "resolved": "https://registry.npmmirror.com/escape-html/-/escape-html-1.0.3.tgz",
-      "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==",
-      "dev": true
-    },
-    "escape-string-regexp": {
-      "version": "1.0.5",
-      "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
-      "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg=="
-    },
-    "escodegen": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmmirror.com/escodegen/-/escodegen-2.1.0.tgz",
-      "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "esprima": "^4.0.1",
-        "estraverse": "^5.2.0",
-        "esutils": "^2.0.2",
-        "source-map": "~0.6.1"
-      }
-    },
-    "eslint": {
-      "version": "8.56.0",
-      "resolved": "https://registry.npmmirror.com/eslint/-/eslint-8.56.0.tgz",
-      "integrity": "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==",
-      "requires": {
-        "@eslint-community/eslint-utils": "^4.2.0",
-        "@eslint-community/regexpp": "^4.6.1",
-        "@eslint/eslintrc": "^2.1.4",
-        "@eslint/js": "8.56.0",
-        "@humanwhocodes/config-array": "^0.11.13",
-        "@humanwhocodes/module-importer": "^1.0.1",
-        "@nodelib/fs.walk": "^1.2.8",
-        "@ungap/structured-clone": "^1.2.0",
-        "ajv": "^6.12.4",
-        "chalk": "^4.0.0",
-        "cross-spawn": "^7.0.2",
-        "debug": "^4.3.2",
-        "doctrine": "^3.0.0",
-        "escape-string-regexp": "^4.0.0",
-        "eslint-scope": "^7.2.2",
-        "eslint-visitor-keys": "^3.4.3",
-        "espree": "^9.6.1",
-        "esquery": "^1.4.2",
-        "esutils": "^2.0.2",
-        "fast-deep-equal": "^3.1.3",
-        "file-entry-cache": "^6.0.1",
-        "find-up": "^5.0.0",
-        "glob-parent": "^6.0.2",
-        "globals": "^13.19.0",
-        "graphemer": "^1.4.0",
-        "ignore": "^5.2.0",
-        "imurmurhash": "^0.1.4",
-        "is-glob": "^4.0.0",
-        "is-path-inside": "^3.0.3",
-        "js-yaml": "^4.1.0",
-        "json-stable-stringify-without-jsonify": "^1.0.1",
-        "levn": "^0.4.1",
-        "lodash.merge": "^4.6.2",
-        "minimatch": "^3.1.2",
-        "natural-compare": "^1.4.0",
-        "optionator": "^0.9.3",
-        "strip-ansi": "^6.0.1",
-        "text-table": "^0.2.0"
-      },
-      "dependencies": {
-        "ansi-styles": {
-          "version": "4.3.0",
-          "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
-          "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
-          "requires": {
-            "color-convert": "^2.0.1"
-          }
-        },
-        "brace-expansion": {
-          "version": "1.1.11",
-          "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz",
-          "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
-          "requires": {
-            "balanced-match": "^1.0.0",
-            "concat-map": "0.0.1"
-          }
-        },
-        "chalk": {
-          "version": "4.1.2",
-          "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
-          "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
-          "requires": {
-            "ansi-styles": "^4.1.0",
-            "supports-color": "^7.1.0"
-          }
-        },
-        "color-convert": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
-          "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
-          "requires": {
-            "color-name": "~1.1.4"
-          }
-        },
-        "color-name": {
-          "version": "1.1.4",
-          "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
-          "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
-        },
-        "escape-string-regexp": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
-          "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="
-        },
-        "glob-parent": {
-          "version": "6.0.2",
-          "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-6.0.2.tgz",
-          "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
-          "requires": {
-            "is-glob": "^4.0.3"
-          }
-        },
-        "globals": {
-          "version": "13.24.0",
-          "resolved": "https://registry.npmmirror.com/globals/-/globals-13.24.0.tgz",
-          "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
-          "requires": {
-            "type-fest": "^0.20.2"
-          }
-        },
-        "has-flag": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
-          "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
-        },
-        "minimatch": {
-          "version": "3.1.2",
-          "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz",
-          "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
-          "requires": {
-            "brace-expansion": "^1.1.7"
-          }
-        },
-        "supports-color": {
-          "version": "7.2.0",
-          "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
-          "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
-          "requires": {
-            "has-flag": "^4.0.0"
-          }
-        },
-        "type-fest": {
-          "version": "0.20.2",
-          "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-0.20.2.tgz",
-          "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ=="
-        }
-      }
-    },
-    "eslint-compat-utils": {
-      "version": "0.1.2",
-      "resolved": "https://registry.npmmirror.com/eslint-compat-utils/-/eslint-compat-utils-0.1.2.tgz",
-      "integrity": "sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==",
-      "dev": true,
-      "requires": {}
-    },
-    "eslint-config-prettier": {
-      "version": "9.1.0",
-      "resolved": "https://registry.npmmirror.com/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz",
-      "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==",
-      "requires": {}
-    },
-    "eslint-config-standard": {
-      "version": "17.1.0",
-      "resolved": "https://registry.npmmirror.com/eslint-config-standard/-/eslint-config-standard-17.1.0.tgz",
-      "integrity": "sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==",
-      "dev": true,
-      "requires": {}
-    },
-    "eslint-config-standard-with-typescript": {
-      "version": "39.1.1",
-      "resolved": "https://registry.npmmirror.com/eslint-config-standard-with-typescript/-/eslint-config-standard-with-typescript-39.1.1.tgz",
-      "integrity": "sha512-t6B5Ep8E4I18uuoYeYxINyqcXb2UbC0SOOTxRtBSt2JUs+EzeXbfe2oaiPs71AIdnoWhXDO2fYOHz8df3kV84A==",
-      "dev": true,
-      "requires": {
-        "@typescript-eslint/parser": "^6.4.0",
-        "eslint-config-standard": "17.1.0"
-      }
-    },
-    "eslint-import-resolver-node": {
-      "version": "0.3.9",
-      "resolved": "https://registry.npmmirror.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz",
-      "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==",
-      "dev": true,
-      "requires": {
-        "debug": "^3.2.7",
-        "is-core-module": "^2.13.0",
-        "resolve": "^1.22.4"
-      },
-      "dependencies": {
-        "debug": {
-          "version": "3.2.7",
-          "resolved": "https://registry.npmmirror.com/debug/-/debug-3.2.7.tgz",
-          "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
-          "dev": true,
-          "requires": {
-            "ms": "^2.1.1"
-          }
-        }
-      }
-    },
-    "eslint-module-utils": {
-      "version": "2.8.0",
-      "resolved": "https://registry.npmmirror.com/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz",
-      "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==",
-      "dev": true,
-      "requires": {
-        "debug": "^3.2.7"
-      },
-      "dependencies": {
-        "debug": {
-          "version": "3.2.7",
-          "resolved": "https://registry.npmmirror.com/debug/-/debug-3.2.7.tgz",
-          "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
-          "dev": true,
-          "requires": {
-            "ms": "^2.1.1"
-          }
-        }
-      }
-    },
-    "eslint-plugin-es-x": {
-      "version": "7.5.0",
-      "resolved": "https://registry.npmmirror.com/eslint-plugin-es-x/-/eslint-plugin-es-x-7.5.0.tgz",
-      "integrity": "sha512-ODswlDSO0HJDzXU0XvgZ3lF3lS3XAZEossh15Q2UHjwrJggWeBoKqqEsLTZLXl+dh5eOAozG0zRcYtuE35oTuQ==",
-      "dev": true,
-      "requires": {
-        "@eslint-community/eslint-utils": "^4.1.2",
-        "@eslint-community/regexpp": "^4.6.0",
-        "eslint-compat-utils": "^0.1.2"
-      }
-    },
-    "eslint-plugin-import": {
-      "version": "2.29.1",
-      "resolved": "https://registry.npmmirror.com/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz",
-      "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==",
-      "dev": true,
-      "requires": {
-        "array-includes": "^3.1.7",
-        "array.prototype.findlastindex": "^1.2.3",
-        "array.prototype.flat": "^1.3.2",
-        "array.prototype.flatmap": "^1.3.2",
-        "debug": "^3.2.7",
-        "doctrine": "^2.1.0",
-        "eslint-import-resolver-node": "^0.3.9",
-        "eslint-module-utils": "^2.8.0",
-        "hasown": "^2.0.0",
-        "is-core-module": "^2.13.1",
-        "is-glob": "^4.0.3",
-        "minimatch": "^3.1.2",
-        "object.fromentries": "^2.0.7",
-        "object.groupby": "^1.0.1",
-        "object.values": "^1.1.7",
-        "semver": "^6.3.1",
-        "tsconfig-paths": "^3.15.0"
-      },
-      "dependencies": {
-        "brace-expansion": {
-          "version": "1.1.11",
-          "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz",
-          "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
-          "dev": true,
-          "requires": {
-            "balanced-match": "^1.0.0",
-            "concat-map": "0.0.1"
-          }
-        },
-        "debug": {
-          "version": "3.2.7",
-          "resolved": "https://registry.npmmirror.com/debug/-/debug-3.2.7.tgz",
-          "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
-          "dev": true,
-          "requires": {
-            "ms": "^2.1.1"
-          }
-        },
-        "doctrine": {
-          "version": "2.1.0",
-          "resolved": "https://registry.npmmirror.com/doctrine/-/doctrine-2.1.0.tgz",
-          "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
-          "dev": true,
-          "requires": {
-            "esutils": "^2.0.2"
-          }
-        },
-        "minimatch": {
-          "version": "3.1.2",
-          "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz",
-          "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
-          "dev": true,
-          "requires": {
-            "brace-expansion": "^1.1.7"
-          }
-        }
-      }
-    },
-    "eslint-plugin-n": {
-      "version": "16.6.2",
-      "resolved": "https://registry.npmmirror.com/eslint-plugin-n/-/eslint-plugin-n-16.6.2.tgz",
-      "integrity": "sha512-6TyDmZ1HXoFQXnhCTUjVFULReoBPOAjpuiKELMkeP40yffI/1ZRO+d9ug/VC6fqISo2WkuIBk3cvuRPALaWlOQ==",
-      "dev": true,
-      "requires": {
-        "@eslint-community/eslint-utils": "^4.4.0",
-        "builtins": "^5.0.1",
-        "eslint-plugin-es-x": "^7.5.0",
-        "get-tsconfig": "^4.7.0",
-        "globals": "^13.24.0",
-        "ignore": "^5.2.4",
-        "is-builtin-module": "^3.2.1",
-        "is-core-module": "^2.12.1",
-        "minimatch": "^3.1.2",
-        "resolve": "^1.22.2",
-        "semver": "^7.5.3"
-      },
-      "dependencies": {
-        "brace-expansion": {
-          "version": "1.1.11",
-          "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz",
-          "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
-          "dev": true,
-          "requires": {
-            "balanced-match": "^1.0.0",
-            "concat-map": "0.0.1"
-          }
-        },
-        "globals": {
-          "version": "13.24.0",
-          "resolved": "https://registry.npmmirror.com/globals/-/globals-13.24.0.tgz",
-          "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
-          "dev": true,
-          "requires": {
-            "type-fest": "^0.20.2"
-          }
-        },
-        "lru-cache": {
-          "version": "6.0.0",
-          "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz",
-          "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
-          "dev": true,
-          "requires": {
-            "yallist": "^4.0.0"
-          }
-        },
-        "minimatch": {
-          "version": "3.1.2",
-          "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz",
-          "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
-          "dev": true,
-          "requires": {
-            "brace-expansion": "^1.1.7"
-          }
-        },
-        "semver": {
-          "version": "7.6.0",
-          "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.0.tgz",
-          "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
-          "dev": true,
-          "requires": {
-            "lru-cache": "^6.0.0"
-          }
-        },
-        "type-fest": {
-          "version": "0.20.2",
-          "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-0.20.2.tgz",
-          "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
-          "dev": true
-        },
-        "yallist": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz",
-          "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
-          "dev": true
-        }
-      }
-    },
-    "eslint-plugin-prettier": {
-      "version": "5.1.3",
-      "resolved": "https://registry.npmmirror.com/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.3.tgz",
-      "integrity": "sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==",
-      "requires": {
-        "prettier-linter-helpers": "^1.0.0",
-        "synckit": "^0.8.6"
-      }
-    },
-    "eslint-plugin-promise": {
-      "version": "6.1.1",
-      "resolved": "https://registry.npmmirror.com/eslint-plugin-promise/-/eslint-plugin-promise-6.1.1.tgz",
-      "integrity": "sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==",
-      "dev": true,
-      "requires": {}
-    },
-    "eslint-plugin-vue": {
-      "version": "9.21.1",
-      "resolved": "https://registry.npmmirror.com/eslint-plugin-vue/-/eslint-plugin-vue-9.21.1.tgz",
-      "integrity": "sha512-XVtI7z39yOVBFJyi8Ljbn7kY9yHzznKXL02qQYn+ta63Iy4A9JFBw6o4OSB9hyD2++tVT+su9kQqetUyCCwhjw==",
-      "dev": true,
-      "requires": {
-        "@eslint-community/eslint-utils": "^4.4.0",
-        "natural-compare": "^1.4.0",
-        "nth-check": "^2.1.1",
-        "postcss-selector-parser": "^6.0.13",
-        "semver": "^7.5.4",
-        "vue-eslint-parser": "^9.4.2",
-        "xml-name-validator": "^4.0.0"
-      },
-      "dependencies": {
-        "lru-cache": {
-          "version": "6.0.0",
-          "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz",
-          "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
-          "dev": true,
-          "requires": {
-            "yallist": "^4.0.0"
-          }
-        },
-        "semver": {
-          "version": "7.6.0",
-          "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.0.tgz",
-          "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
-          "dev": true,
-          "requires": {
-            "lru-cache": "^6.0.0"
-          }
-        },
-        "yallist": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz",
-          "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
-          "dev": true
-        }
-      }
-    },
-    "eslint-scope": {
-      "version": "7.2.2",
-      "resolved": "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-7.2.2.tgz",
-      "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==",
-      "requires": {
-        "esrecurse": "^4.3.0",
-        "estraverse": "^5.2.0"
-      }
-    },
-    "eslint-visitor-keys": {
-      "version": "3.4.3",
-      "resolved": "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
-      "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag=="
-    },
-    "espree": {
-      "version": "9.6.1",
-      "resolved": "https://registry.npmmirror.com/espree/-/espree-9.6.1.tgz",
-      "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==",
-      "requires": {
-        "acorn": "^8.9.0",
-        "acorn-jsx": "^5.3.2",
-        "eslint-visitor-keys": "^3.4.1"
-      }
-    },
-    "esprima": {
-      "version": "4.0.1",
-      "resolved": "https://registry.npmmirror.com/esprima/-/esprima-4.0.1.tgz",
-      "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
-      "dev": true,
-      "peer": true
-    },
-    "esquery": {
-      "version": "1.5.0",
-      "resolved": "https://registry.npmmirror.com/esquery/-/esquery-1.5.0.tgz",
-      "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==",
-      "requires": {
-        "estraverse": "^5.1.0"
-      }
-    },
-    "esrecurse": {
-      "version": "4.3.0",
-      "resolved": "https://registry.npmmirror.com/esrecurse/-/esrecurse-4.3.0.tgz",
-      "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
-      "requires": {
-        "estraverse": "^5.2.0"
-      }
-    },
-    "estraverse": {
-      "version": "5.3.0",
-      "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz",
-      "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA=="
-    },
-    "estree-walker": {
-      "version": "2.0.2",
-      "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz",
-      "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
-    },
-    "esutils": {
-      "version": "2.0.3",
-      "resolved": "https://registry.npmmirror.com/esutils/-/esutils-2.0.3.tgz",
-      "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g=="
-    },
-    "etag": {
-      "version": "1.8.1",
-      "resolved": "https://registry.npmmirror.com/etag/-/etag-1.8.1.tgz",
-      "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
-      "dev": true
-    },
-    "events": {
-      "version": "3.3.0",
-      "resolved": "https://registry.npmmirror.com/events/-/events-3.3.0.tgz",
-      "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
-      "peer": true
-    },
-    "execa": {
-      "version": "5.1.1",
-      "resolved": "https://registry.npmmirror.com/execa/-/execa-5.1.1.tgz",
-      "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
-      "dev": true,
-      "requires": {
-        "cross-spawn": "^7.0.3",
-        "get-stream": "^6.0.0",
-        "human-signals": "^2.1.0",
-        "is-stream": "^2.0.0",
-        "merge-stream": "^2.0.0",
-        "npm-run-path": "^4.0.1",
-        "onetime": "^5.1.2",
-        "signal-exit": "^3.0.3",
-        "strip-final-newline": "^2.0.0"
-      }
-    },
-    "exif-parser": {
-      "version": "0.1.12",
-      "resolved": "https://registry.npmmirror.com/exif-parser/-/exif-parser-0.1.12.tgz",
-      "integrity": "sha512-c2bQfLNbMzLPmzQuOr8fy0csy84WmwnER81W88DzTp9CYNPJ6yzOj2EZAh9pywYpqHnshVLHQJ8WzldAyfY+Iw=="
-    },
-    "exit": {
-      "version": "0.1.2",
-      "resolved": "https://registry.npmmirror.com/exit/-/exit-0.1.2.tgz",
-      "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==",
-      "dev": true,
-      "peer": true
-    },
-    "expect": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/expect/-/expect-27.5.1.tgz",
-      "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "@jest/types": "^27.5.1",
-        "jest-get-type": "^27.5.1",
-        "jest-matcher-utils": "^27.5.1",
-        "jest-message-util": "^27.5.1"
-      }
-    },
-    "express": {
-      "version": "4.18.2",
-      "resolved": "https://registry.npmmirror.com/express/-/express-4.18.2.tgz",
-      "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==",
-      "dev": true,
-      "requires": {
-        "accepts": "~1.3.8",
-        "array-flatten": "1.1.1",
-        "body-parser": "1.20.1",
-        "content-disposition": "0.5.4",
-        "content-type": "~1.0.4",
-        "cookie": "0.5.0",
-        "cookie-signature": "1.0.6",
-        "debug": "2.6.9",
-        "depd": "2.0.0",
-        "encodeurl": "~1.0.2",
-        "escape-html": "~1.0.3",
-        "etag": "~1.8.1",
-        "finalhandler": "1.2.0",
-        "fresh": "0.5.2",
-        "http-errors": "2.0.0",
-        "merge-descriptors": "1.0.1",
-        "methods": "~1.1.2",
-        "on-finished": "2.4.1",
-        "parseurl": "~1.3.3",
-        "path-to-regexp": "0.1.7",
-        "proxy-addr": "~2.0.7",
-        "qs": "6.11.0",
-        "range-parser": "~1.2.1",
-        "safe-buffer": "5.2.1",
-        "send": "0.18.0",
-        "serve-static": "1.15.0",
-        "setprototypeof": "1.2.0",
-        "statuses": "2.0.1",
-        "type-is": "~1.6.18",
-        "utils-merge": "1.0.1",
-        "vary": "~1.1.2"
-      },
-      "dependencies": {
-        "debug": {
-          "version": "2.6.9",
-          "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz",
-          "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
-          "dev": true,
-          "requires": {
-            "ms": "2.0.0"
-          }
-        },
-        "ms": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz",
-          "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
-          "dev": true
-        },
-        "qs": {
-          "version": "6.11.0",
-          "resolved": "https://registry.npmmirror.com/qs/-/qs-6.11.0.tgz",
-          "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
-          "dev": true,
-          "requires": {
-            "side-channel": "^1.0.4"
-          }
-        }
-      }
-    },
-    "fast-deep-equal": {
-      "version": "3.1.3",
-      "resolved": "https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
-      "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
-    },
-    "fast-diff": {
-      "version": "1.3.0",
-      "resolved": "https://registry.npmmirror.com/fast-diff/-/fast-diff-1.3.0.tgz",
-      "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw=="
-    },
-    "fast-glob": {
-      "version": "3.3.2",
-      "resolved": "https://registry.npmmirror.com/fast-glob/-/fast-glob-3.3.2.tgz",
-      "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
-      "requires": {
-        "@nodelib/fs.stat": "^2.0.2",
-        "@nodelib/fs.walk": "^1.2.3",
-        "glob-parent": "^5.1.2",
-        "merge2": "^1.3.0",
-        "micromatch": "^4.0.4"
-      }
-    },
-    "fast-json-stable-stringify": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmmirror.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
-      "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
-    },
-    "fast-levenshtein": {
-      "version": "2.0.6",
-      "resolved": "https://registry.npmmirror.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
-      "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw=="
-    },
-    "fastq": {
-      "version": "1.17.1",
-      "resolved": "https://registry.npmmirror.com/fastq/-/fastq-1.17.1.tgz",
-      "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==",
-      "requires": {
-        "reusify": "^1.0.4"
-      }
-    },
-    "fb-watchman": {
-      "version": "2.0.2",
-      "resolved": "https://registry.npmmirror.com/fb-watchman/-/fb-watchman-2.0.2.tgz",
-      "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "bser": "2.1.1"
-      }
-    },
-    "file-entry-cache": {
-      "version": "6.0.1",
-      "resolved": "https://registry.npmmirror.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
-      "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
-      "requires": {
-        "flat-cache": "^3.0.4"
-      }
-    },
-    "file-type": {
-      "version": "9.0.0",
-      "resolved": "https://registry.npmmirror.com/file-type/-/file-type-9.0.0.tgz",
-      "integrity": "sha512-Qe/5NJrgIOlwijpq3B7BEpzPFcgzggOTagZmkXQY4LA6bsXKTUstK7Wp12lEJ/mLKTpvIZxmIuRcLYWT6ov9lw=="
-    },
-    "fill-range": {
-      "version": "7.0.1",
-      "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz",
-      "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
-      "requires": {
-        "to-regex-range": "^5.0.1"
-      }
-    },
-    "finalhandler": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmmirror.com/finalhandler/-/finalhandler-1.2.0.tgz",
-      "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==",
-      "dev": true,
-      "requires": {
-        "debug": "2.6.9",
-        "encodeurl": "~1.0.2",
-        "escape-html": "~1.0.3",
-        "on-finished": "2.4.1",
-        "parseurl": "~1.3.3",
-        "statuses": "2.0.1",
-        "unpipe": "~1.0.0"
-      },
-      "dependencies": {
-        "debug": {
-          "version": "2.6.9",
-          "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz",
-          "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
-          "dev": true,
-          "requires": {
-            "ms": "2.0.0"
-          }
-        },
-        "ms": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz",
-          "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
-          "dev": true
-        }
-      }
-    },
-    "find-up": {
-      "version": "5.0.0",
-      "resolved": "https://registry.npmmirror.com/find-up/-/find-up-5.0.0.tgz",
-      "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
-      "requires": {
-        "locate-path": "^6.0.0",
-        "path-exists": "^4.0.0"
-      }
-    },
-    "flat-cache": {
-      "version": "3.2.0",
-      "resolved": "https://registry.npmmirror.com/flat-cache/-/flat-cache-3.2.0.tgz",
-      "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==",
-      "requires": {
-        "flatted": "^3.2.9",
-        "keyv": "^4.5.3",
-        "rimraf": "^3.0.2"
-      }
-    },
-    "flatted": {
-      "version": "3.2.9",
-      "resolved": "https://registry.npmmirror.com/flatted/-/flatted-3.2.9.tgz",
-      "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ=="
-    },
-    "for-each": {
-      "version": "0.3.3",
-      "resolved": "https://registry.npmmirror.com/for-each/-/for-each-0.3.3.tgz",
-      "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
-      "dev": true,
-      "requires": {
-        "is-callable": "^1.1.3"
-      }
-    },
-    "form-data": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmmirror.com/form-data/-/form-data-3.0.1.tgz",
-      "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "asynckit": "^0.4.0",
-        "combined-stream": "^1.0.8",
-        "mime-types": "^2.1.12"
-      }
-    },
-    "forwarded": {
-      "version": "0.2.0",
-      "resolved": "https://registry.npmmirror.com/forwarded/-/forwarded-0.2.0.tgz",
-      "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
-      "dev": true
-    },
-    "fraction.js": {
-      "version": "4.3.7",
-      "resolved": "https://registry.npmmirror.com/fraction.js/-/fraction.js-4.3.7.tgz",
-      "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew=="
-    },
-    "fresh": {
-      "version": "0.5.2",
-      "resolved": "https://registry.npmmirror.com/fresh/-/fresh-0.5.2.tgz",
-      "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
-      "dev": true
-    },
-    "fs-extra": {
-      "version": "10.1.0",
-      "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-10.1.0.tgz",
-      "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
-      "requires": {
-        "graceful-fs": "^4.2.0",
-        "jsonfile": "^6.0.1",
-        "universalify": "^2.0.0"
-      }
-    },
-    "fs.realpath": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz",
-      "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
-    },
-    "function-bind": {
-      "version": "1.1.2",
-      "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz",
-      "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA=="
-    },
-    "function.prototype.name": {
-      "version": "1.1.6",
-      "resolved": "https://registry.npmmirror.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz",
-      "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==",
-      "dev": true,
-      "requires": {
-        "call-bind": "^1.0.2",
-        "define-properties": "^1.2.0",
-        "es-abstract": "^1.22.1",
-        "functions-have-names": "^1.2.3"
-      }
-    },
-    "functions-have-names": {
-      "version": "1.2.3",
-      "resolved": "https://registry.npmmirror.com/functions-have-names/-/functions-have-names-1.2.3.tgz",
-      "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==",
-      "dev": true
-    },
-    "generic-names": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmmirror.com/generic-names/-/generic-names-4.0.0.tgz",
-      "integrity": "sha512-ySFolZQfw9FoDb3ed9d80Cm9f0+r7qj+HJkWjeD9RBfpxEVTlVhol+gvaQB/78WbwYfbnNh8nWHHBSlg072y6A==",
-      "requires": {
-        "loader-utils": "^3.2.0"
-      }
-    },
-    "gensync": {
-      "version": "1.0.0-beta.2",
-      "resolved": "https://registry.npmmirror.com/gensync/-/gensync-1.0.0-beta.2.tgz",
-      "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg=="
-    },
-    "get-caller-file": {
-      "version": "2.0.5",
-      "resolved": "https://registry.npmmirror.com/get-caller-file/-/get-caller-file-2.0.5.tgz",
-      "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
-      "dev": true,
-      "peer": true
-    },
-    "get-intrinsic": {
-      "version": "1.2.4",
-      "resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz",
-      "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==",
-      "requires": {
-        "es-errors": "^1.3.0",
-        "function-bind": "^1.1.2",
-        "has-proto": "^1.0.1",
-        "has-symbols": "^1.0.3",
-        "hasown": "^2.0.0"
-      }
-    },
-    "get-package-type": {
-      "version": "0.1.0",
-      "resolved": "https://registry.npmmirror.com/get-package-type/-/get-package-type-0.1.0.tgz",
-      "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==",
-      "dev": true,
-      "peer": true
-    },
-    "get-stream": {
-      "version": "6.0.1",
-      "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-6.0.1.tgz",
-      "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
-      "dev": true
-    },
-    "get-symbol-description": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmmirror.com/get-symbol-description/-/get-symbol-description-1.0.2.tgz",
-      "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==",
-      "dev": true,
-      "requires": {
-        "call-bind": "^1.0.5",
-        "es-errors": "^1.3.0",
-        "get-intrinsic": "^1.2.4"
-      }
-    },
-    "get-tsconfig": {
-      "version": "4.7.2",
-      "resolved": "https://registry.npmmirror.com/get-tsconfig/-/get-tsconfig-4.7.2.tgz",
-      "integrity": "sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==",
-      "dev": true,
-      "requires": {
-        "resolve-pkg-maps": "^1.0.0"
-      }
-    },
-    "glob": {
-      "version": "7.2.3",
-      "resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz",
-      "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
-      "requires": {
-        "fs.realpath": "^1.0.0",
-        "inflight": "^1.0.4",
-        "inherits": "2",
-        "minimatch": "^3.1.1",
-        "once": "^1.3.0",
-        "path-is-absolute": "^1.0.0"
-      },
-      "dependencies": {
-        "brace-expansion": {
-          "version": "1.1.11",
-          "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz",
-          "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
-          "requires": {
-            "balanced-match": "^1.0.0",
-            "concat-map": "0.0.1"
-          }
-        },
-        "minimatch": {
-          "version": "3.1.2",
-          "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz",
-          "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
-          "requires": {
-            "brace-expansion": "^1.1.7"
-          }
-        }
-      }
-    },
-    "glob-parent": {
-      "version": "5.1.2",
-      "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz",
-      "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
-      "requires": {
-        "is-glob": "^4.0.1"
-      }
-    },
-    "glob-to-regexp": {
-      "version": "0.4.1",
-      "resolved": "https://registry.npmmirror.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz",
-      "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==",
-      "peer": true
-    },
-    "global": {
-      "version": "4.4.0",
-      "resolved": "https://registry.npmmirror.com/global/-/global-4.4.0.tgz",
-      "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==",
-      "requires": {
-        "min-document": "^2.19.0",
-        "process": "^0.11.10"
-      }
-    },
-    "globals": {
-      "version": "11.12.0",
-      "resolved": "https://registry.npmmirror.com/globals/-/globals-11.12.0.tgz",
-      "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA=="
-    },
-    "globalthis": {
-      "version": "1.0.3",
-      "resolved": "https://registry.npmmirror.com/globalthis/-/globalthis-1.0.3.tgz",
-      "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==",
-      "dev": true,
-      "requires": {
-        "define-properties": "^1.1.3"
-      }
-    },
-    "globby": {
-      "version": "11.1.0",
-      "resolved": "https://registry.npmmirror.com/globby/-/globby-11.1.0.tgz",
-      "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
-      "dev": true,
-      "requires": {
-        "array-union": "^2.1.0",
-        "dir-glob": "^3.0.1",
-        "fast-glob": "^3.2.9",
-        "ignore": "^5.2.0",
-        "merge2": "^1.4.1",
-        "slash": "^3.0.0"
-      }
-    },
-    "gopd": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmmirror.com/gopd/-/gopd-1.0.1.tgz",
-      "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
-      "requires": {
-        "get-intrinsic": "^1.1.3"
-      }
-    },
-    "graceful-fs": {
-      "version": "4.2.11",
-      "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz",
-      "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="
-    },
-    "graphemer": {
-      "version": "1.4.0",
-      "resolved": "https://registry.npmmirror.com/graphemer/-/graphemer-1.4.0.tgz",
-      "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag=="
-    },
-    "has-bigints": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmmirror.com/has-bigints/-/has-bigints-1.0.2.tgz",
-      "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==",
-      "dev": true
-    },
-    "has-flag": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-3.0.0.tgz",
-      "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw=="
-    },
-    "has-property-descriptors": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz",
-      "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==",
-      "requires": {
-        "get-intrinsic": "^1.2.2"
-      }
-    },
-    "has-proto": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmmirror.com/has-proto/-/has-proto-1.0.1.tgz",
-      "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg=="
-    },
-    "has-symbols": {
-      "version": "1.0.3",
-      "resolved": "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.0.3.tgz",
-      "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A=="
-    },
-    "has-tostringtag": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmmirror.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
-      "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
-      "dev": true,
-      "requires": {
-        "has-symbols": "^1.0.3"
-      }
-    },
-    "hash-sum": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmmirror.com/hash-sum/-/hash-sum-2.0.0.tgz",
-      "integrity": "sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg=="
-    },
-    "hasown": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmmirror.com/hasown/-/hasown-2.0.0.tgz",
-      "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==",
-      "requires": {
-        "function-bind": "^1.1.2"
-      }
-    },
-    "he": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmmirror.com/he/-/he-1.2.0.tgz",
-      "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
-      "dev": true
-    },
-    "html-encoding-sniffer": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmmirror.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz",
-      "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "whatwg-encoding": "^1.0.5"
-      }
-    },
-    "html-escaper": {
-      "version": "2.0.2",
-      "resolved": "https://registry.npmmirror.com/html-escaper/-/html-escaper-2.0.2.tgz",
-      "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==",
-      "dev": true,
-      "peer": true
-    },
-    "html-tags": {
-      "version": "3.3.1",
-      "resolved": "https://registry.npmmirror.com/html-tags/-/html-tags-3.3.1.tgz",
-      "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==",
-      "dev": true
-    },
-    "http-errors": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmmirror.com/http-errors/-/http-errors-2.0.0.tgz",
-      "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
-      "dev": true,
-      "requires": {
-        "depd": "2.0.0",
-        "inherits": "2.0.4",
-        "setprototypeof": "1.2.0",
-        "statuses": "2.0.1",
-        "toidentifier": "1.0.1"
-      }
-    },
-    "http-proxy-agent": {
-      "version": "4.0.1",
-      "resolved": "https://registry.npmmirror.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz",
-      "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "@tootallnate/once": "1",
-        "agent-base": "6",
-        "debug": "4"
-      }
-    },
-    "https-proxy-agent": {
-      "version": "5.0.1",
-      "resolved": "https://registry.npmmirror.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
-      "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "agent-base": "6",
-        "debug": "4"
-      }
-    },
-    "human-signals": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmmirror.com/human-signals/-/human-signals-2.1.0.tgz",
-      "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==",
-      "dev": true
-    },
-    "iconv-lite": {
-      "version": "0.4.24",
-      "resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.4.24.tgz",
-      "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
-      "dev": true,
-      "requires": {
-        "safer-buffer": ">= 2.1.2 < 3"
-      }
-    },
-    "icss-replace-symbols": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmmirror.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz",
-      "integrity": "sha512-chIaY3Vh2mh2Q3RGXttaDIzeiPvaVXJ+C4DAh/w3c37SKZ/U6PGMmuicR2EQQp9bKG8zLMCl7I+PtIoOOPp8Gg=="
-    },
-    "icss-utils": {
-      "version": "5.1.0",
-      "resolved": "https://registry.npmmirror.com/icss-utils/-/icss-utils-5.1.0.tgz",
-      "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==",
-      "requires": {}
-    },
-    "ieee754": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmmirror.com/ieee754/-/ieee754-1.2.1.tgz",
-      "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="
-    },
-    "ignore": {
-      "version": "5.3.1",
-      "resolved": "https://registry.npmmirror.com/ignore/-/ignore-5.3.1.tgz",
-      "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw=="
-    },
-    "immutable": {
-      "version": "4.3.5",
-      "resolved": "https://registry.npmmirror.com/immutable/-/immutable-4.3.5.tgz",
-      "integrity": "sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw=="
-    },
-    "import-fresh": {
-      "version": "3.3.0",
-      "resolved": "https://registry.npmmirror.com/import-fresh/-/import-fresh-3.3.0.tgz",
-      "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
-      "requires": {
-        "parent-module": "^1.0.0",
-        "resolve-from": "^4.0.0"
-      }
-    },
-    "import-local": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmmirror.com/import-local/-/import-local-3.1.0.tgz",
-      "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "pkg-dir": "^4.2.0",
-        "resolve-cwd": "^3.0.0"
-      }
-    },
-    "imurmurhash": {
-      "version": "0.1.4",
-      "resolved": "https://registry.npmmirror.com/imurmurhash/-/imurmurhash-0.1.4.tgz",
-      "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA=="
-    },
-    "inflight": {
-      "version": "1.0.6",
-      "resolved": "https://registry.npmmirror.com/inflight/-/inflight-1.0.6.tgz",
-      "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
-      "requires": {
-        "once": "^1.3.0",
-        "wrappy": "1"
-      }
-    },
-    "inherits": {
-      "version": "2.0.4",
-      "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz",
-      "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
-    },
-    "internal-slot": {
-      "version": "1.0.7",
-      "resolved": "https://registry.npmmirror.com/internal-slot/-/internal-slot-1.0.7.tgz",
-      "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==",
-      "dev": true,
-      "requires": {
-        "es-errors": "^1.3.0",
-        "hasown": "^2.0.0",
-        "side-channel": "^1.0.4"
-      }
-    },
-    "invert-kv": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmmirror.com/invert-kv/-/invert-kv-3.0.1.tgz",
-      "integrity": "sha512-CYdFeFexxhv/Bcny+Q0BfOV+ltRlJcd4BBZBYFX/O0u4npJrgZtIcjokegtiSMAvlMTJ+Koq0GBCc//3bueQxw=="
-    },
-    "ipaddr.js": {
-      "version": "1.9.1",
-      "resolved": "https://registry.npmmirror.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
-      "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
-      "dev": true
-    },
-    "is-array-buffer": {
-      "version": "3.0.4",
-      "resolved": "https://registry.npmmirror.com/is-array-buffer/-/is-array-buffer-3.0.4.tgz",
-      "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==",
-      "dev": true,
-      "requires": {
-        "call-bind": "^1.0.2",
-        "get-intrinsic": "^1.2.1"
-      }
-    },
-    "is-arrayish": {
-      "version": "0.2.1",
-      "resolved": "https://registry.npmmirror.com/is-arrayish/-/is-arrayish-0.2.1.tgz",
-      "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==",
-      "dev": true,
-      "peer": true
-    },
-    "is-bigint": {
-      "version": "1.0.4",
-      "resolved": "https://registry.npmmirror.com/is-bigint/-/is-bigint-1.0.4.tgz",
-      "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==",
-      "dev": true,
-      "requires": {
-        "has-bigints": "^1.0.1"
-      }
-    },
-    "is-binary-path": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz",
-      "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
-      "requires": {
-        "binary-extensions": "^2.0.0"
-      }
-    },
-    "is-boolean-object": {
-      "version": "1.1.2",
-      "resolved": "https://registry.npmmirror.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz",
-      "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==",
-      "dev": true,
-      "requires": {
-        "call-bind": "^1.0.2",
-        "has-tostringtag": "^1.0.0"
-      }
-    },
-    "is-builtin-module": {
-      "version": "3.2.1",
-      "resolved": "https://registry.npmmirror.com/is-builtin-module/-/is-builtin-module-3.2.1.tgz",
-      "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==",
-      "dev": true,
-      "requires": {
-        "builtin-modules": "^3.3.0"
-      }
-    },
-    "is-callable": {
-      "version": "1.2.7",
-      "resolved": "https://registry.npmmirror.com/is-callable/-/is-callable-1.2.7.tgz",
-      "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==",
-      "dev": true
-    },
-    "is-core-module": {
-      "version": "2.13.1",
-      "resolved": "https://registry.npmmirror.com/is-core-module/-/is-core-module-2.13.1.tgz",
-      "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==",
-      "requires": {
-        "hasown": "^2.0.0"
-      }
-    },
-    "is-date-object": {
-      "version": "1.0.5",
-      "resolved": "https://registry.npmmirror.com/is-date-object/-/is-date-object-1.0.5.tgz",
-      "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==",
-      "dev": true,
-      "requires": {
-        "has-tostringtag": "^1.0.0"
-      }
-    },
-    "is-extglob": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz",
-      "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="
-    },
-    "is-fullwidth-code-point": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
-      "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
-      "dev": true,
-      "peer": true
-    },
-    "is-function": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmmirror.com/is-function/-/is-function-1.0.2.tgz",
-      "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ=="
-    },
-    "is-generator-fn": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmmirror.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz",
-      "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==",
-      "dev": true,
-      "peer": true
-    },
-    "is-glob": {
-      "version": "4.0.3",
-      "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz",
-      "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
-      "requires": {
-        "is-extglob": "^2.1.1"
-      }
-    },
-    "is-negative-zero": {
-      "version": "2.0.2",
-      "resolved": "https://registry.npmmirror.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz",
-      "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==",
-      "dev": true
-    },
-    "is-number": {
-      "version": "7.0.0",
-      "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz",
-      "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="
-    },
-    "is-number-object": {
-      "version": "1.0.7",
-      "resolved": "https://registry.npmmirror.com/is-number-object/-/is-number-object-1.0.7.tgz",
-      "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==",
-      "dev": true,
-      "requires": {
-        "has-tostringtag": "^1.0.0"
-      }
-    },
-    "is-path-inside": {
-      "version": "3.0.3",
-      "resolved": "https://registry.npmmirror.com/is-path-inside/-/is-path-inside-3.0.3.tgz",
-      "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ=="
-    },
-    "is-potential-custom-element-name": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmmirror.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz",
-      "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==",
-      "dev": true,
-      "peer": true
-    },
-    "is-regex": {
-      "version": "1.1.4",
-      "resolved": "https://registry.npmmirror.com/is-regex/-/is-regex-1.1.4.tgz",
-      "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==",
-      "dev": true,
-      "requires": {
-        "call-bind": "^1.0.2",
-        "has-tostringtag": "^1.0.0"
-      }
-    },
-    "is-shared-array-buffer": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmmirror.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz",
-      "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==",
-      "dev": true,
-      "requires": {
-        "call-bind": "^1.0.2"
-      }
-    },
-    "is-stream": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmmirror.com/is-stream/-/is-stream-2.0.1.tgz",
-      "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
-      "dev": true
-    },
-    "is-string": {
-      "version": "1.0.7",
-      "resolved": "https://registry.npmmirror.com/is-string/-/is-string-1.0.7.tgz",
-      "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==",
-      "dev": true,
-      "requires": {
-        "has-tostringtag": "^1.0.0"
-      }
-    },
-    "is-symbol": {
-      "version": "1.0.4",
-      "resolved": "https://registry.npmmirror.com/is-symbol/-/is-symbol-1.0.4.tgz",
-      "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==",
-      "dev": true,
-      "requires": {
-        "has-symbols": "^1.0.2"
-      }
-    },
-    "is-typed-array": {
-      "version": "1.1.13",
-      "resolved": "https://registry.npmmirror.com/is-typed-array/-/is-typed-array-1.1.13.tgz",
-      "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==",
-      "dev": true,
-      "requires": {
-        "which-typed-array": "^1.1.14"
-      }
-    },
-    "is-typedarray": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmmirror.com/is-typedarray/-/is-typedarray-1.0.0.tgz",
-      "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==",
-      "dev": true,
-      "peer": true
-    },
-    "is-weakref": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmmirror.com/is-weakref/-/is-weakref-1.0.2.tgz",
-      "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==",
-      "dev": true,
-      "requires": {
-        "call-bind": "^1.0.2"
-      }
-    },
-    "isarray": {
-      "version": "2.0.5",
-      "resolved": "https://registry.npmmirror.com/isarray/-/isarray-2.0.5.tgz",
-      "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==",
-      "dev": true
-    },
-    "isexe": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz",
-      "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="
-    },
-    "istanbul-lib-coverage": {
-      "version": "3.2.2",
-      "resolved": "https://registry.npmmirror.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz",
-      "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==",
-      "dev": true,
-      "peer": true
-    },
-    "istanbul-lib-instrument": {
-      "version": "5.2.1",
-      "resolved": "https://registry.npmmirror.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz",
-      "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "@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"
-      }
-    },
-    "istanbul-lib-report": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmmirror.com/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz",
-      "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "istanbul-lib-coverage": "^3.0.0",
-        "make-dir": "^4.0.0",
-        "supports-color": "^7.1.0"
-      },
-      "dependencies": {
-        "has-flag": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
-          "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
-          "dev": true,
-          "peer": true
-        },
-        "supports-color": {
-          "version": "7.2.0",
-          "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
-          "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "has-flag": "^4.0.0"
-          }
-        }
-      }
-    },
-    "istanbul-lib-source-maps": {
-      "version": "4.0.1",
-      "resolved": "https://registry.npmmirror.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz",
-      "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "debug": "^4.1.1",
-        "istanbul-lib-coverage": "^3.0.0",
-        "source-map": "^0.6.1"
-      }
-    },
-    "istanbul-reports": {
-      "version": "3.1.6",
-      "resolved": "https://registry.npmmirror.com/istanbul-reports/-/istanbul-reports-3.1.6.tgz",
-      "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "html-escaper": "^2.0.0",
-        "istanbul-lib-report": "^3.0.0"
-      }
-    },
-    "jest": {
-      "version": "27.0.4",
-      "resolved": "https://registry.npmmirror.com/jest/-/jest-27.0.4.tgz",
-      "integrity": "sha512-Px1iKFooXgGSkk1H8dJxxBIrM3tsc5SIuI4kfKYK2J+4rvCvPGr/cXktxh0e9zIPQ5g09kOMNfHQEmusBUf/ZA==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "@jest/core": "^27.0.4",
-        "import-local": "^3.0.2",
-        "jest-cli": "^27.0.4"
-      }
-    },
-    "jest-changed-files": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/jest-changed-files/-/jest-changed-files-27.5.1.tgz",
-      "integrity": "sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "@jest/types": "^27.5.1",
-        "execa": "^5.0.0",
-        "throat": "^6.0.1"
-      }
-    },
-    "jest-circus": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/jest-circus/-/jest-circus-27.5.1.tgz",
-      "integrity": "sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "@jest/environment": "^27.5.1",
-        "@jest/test-result": "^27.5.1",
-        "@jest/types": "^27.5.1",
-        "@types/node": "*",
-        "chalk": "^4.0.0",
-        "co": "^4.6.0",
-        "dedent": "^0.7.0",
-        "expect": "^27.5.1",
-        "is-generator-fn": "^2.0.0",
-        "jest-each": "^27.5.1",
-        "jest-matcher-utils": "^27.5.1",
-        "jest-message-util": "^27.5.1",
-        "jest-runtime": "^27.5.1",
-        "jest-snapshot": "^27.5.1",
-        "jest-util": "^27.5.1",
-        "pretty-format": "^27.5.1",
-        "slash": "^3.0.0",
-        "stack-utils": "^2.0.3",
-        "throat": "^6.0.1"
-      },
-      "dependencies": {
-        "ansi-styles": {
-          "version": "4.3.0",
-          "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
-          "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "color-convert": "^2.0.1"
-          }
-        },
-        "chalk": {
-          "version": "4.1.2",
-          "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
-          "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "ansi-styles": "^4.1.0",
-            "supports-color": "^7.1.0"
-          }
-        },
-        "color-convert": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
-          "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "color-name": "~1.1.4"
-          }
-        },
-        "color-name": {
-          "version": "1.1.4",
-          "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
-          "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
-          "dev": true,
-          "peer": true
-        },
-        "has-flag": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
-          "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
-          "dev": true,
-          "peer": true
-        },
-        "supports-color": {
-          "version": "7.2.0",
-          "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
-          "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "has-flag": "^4.0.0"
-          }
-        }
-      }
-    },
-    "jest-cli": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/jest-cli/-/jest-cli-27.5.1.tgz",
-      "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "@jest/core": "^27.5.1",
-        "@jest/test-result": "^27.5.1",
-        "@jest/types": "^27.5.1",
-        "chalk": "^4.0.0",
-        "exit": "^0.1.2",
-        "graceful-fs": "^4.2.9",
-        "import-local": "^3.0.2",
-        "jest-config": "^27.5.1",
-        "jest-util": "^27.5.1",
-        "jest-validate": "^27.5.1",
-        "prompts": "^2.0.1",
-        "yargs": "^16.2.0"
-      },
-      "dependencies": {
-        "ansi-styles": {
-          "version": "4.3.0",
-          "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
-          "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "color-convert": "^2.0.1"
-          }
-        },
-        "chalk": {
-          "version": "4.1.2",
-          "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
-          "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "ansi-styles": "^4.1.0",
-            "supports-color": "^7.1.0"
-          }
-        },
-        "color-convert": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
-          "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "color-name": "~1.1.4"
-          }
-        },
-        "color-name": {
-          "version": "1.1.4",
-          "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
-          "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
-          "dev": true,
-          "peer": true
-        },
-        "has-flag": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
-          "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
-          "dev": true,
-          "peer": true
-        },
-        "supports-color": {
-          "version": "7.2.0",
-          "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
-          "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "has-flag": "^4.0.0"
-          }
-        }
-      }
-    },
-    "jest-config": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/jest-config/-/jest-config-27.5.1.tgz",
-      "integrity": "sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "@babel/core": "^7.8.0",
-        "@jest/test-sequencer": "^27.5.1",
-        "@jest/types": "^27.5.1",
-        "babel-jest": "^27.5.1",
-        "chalk": "^4.0.0",
-        "ci-info": "^3.2.0",
-        "deepmerge": "^4.2.2",
-        "glob": "^7.1.1",
-        "graceful-fs": "^4.2.9",
-        "jest-circus": "^27.5.1",
-        "jest-environment-jsdom": "^27.5.1",
-        "jest-environment-node": "^27.5.1",
-        "jest-get-type": "^27.5.1",
-        "jest-jasmine2": "^27.5.1",
-        "jest-regex-util": "^27.5.1",
-        "jest-resolve": "^27.5.1",
-        "jest-runner": "^27.5.1",
-        "jest-util": "^27.5.1",
-        "jest-validate": "^27.5.1",
-        "micromatch": "^4.0.4",
-        "parse-json": "^5.2.0",
-        "pretty-format": "^27.5.1",
-        "slash": "^3.0.0",
-        "strip-json-comments": "^3.1.1"
-      },
-      "dependencies": {
-        "ansi-styles": {
-          "version": "4.3.0",
-          "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
-          "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "color-convert": "^2.0.1"
-          }
-        },
-        "chalk": {
-          "version": "4.1.2",
-          "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
-          "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "ansi-styles": "^4.1.0",
-            "supports-color": "^7.1.0"
-          }
-        },
-        "color-convert": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
-          "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "color-name": "~1.1.4"
-          }
-        },
-        "color-name": {
-          "version": "1.1.4",
-          "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
-          "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
-          "dev": true,
-          "peer": true
-        },
-        "has-flag": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
-          "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
-          "dev": true,
-          "peer": true
-        },
-        "supports-color": {
-          "version": "7.2.0",
-          "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
-          "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "has-flag": "^4.0.0"
-          }
-        }
-      }
-    },
-    "jest-diff": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/jest-diff/-/jest-diff-27.5.1.tgz",
-      "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "chalk": "^4.0.0",
-        "diff-sequences": "^27.5.1",
-        "jest-get-type": "^27.5.1",
-        "pretty-format": "^27.5.1"
-      },
-      "dependencies": {
-        "ansi-styles": {
-          "version": "4.3.0",
-          "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
-          "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "color-convert": "^2.0.1"
-          }
-        },
-        "chalk": {
-          "version": "4.1.2",
-          "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
-          "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "ansi-styles": "^4.1.0",
-            "supports-color": "^7.1.0"
-          }
-        },
-        "color-convert": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
-          "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "color-name": "~1.1.4"
-          }
-        },
-        "color-name": {
-          "version": "1.1.4",
-          "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
-          "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
-          "dev": true,
-          "peer": true
-        },
-        "has-flag": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
-          "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
-          "dev": true,
-          "peer": true
-        },
-        "supports-color": {
-          "version": "7.2.0",
-          "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
-          "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "has-flag": "^4.0.0"
-          }
-        }
-      }
-    },
-    "jest-docblock": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/jest-docblock/-/jest-docblock-27.5.1.tgz",
-      "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "detect-newline": "^3.0.0"
-      }
-    },
-    "jest-each": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/jest-each/-/jest-each-27.5.1.tgz",
-      "integrity": "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "@jest/types": "^27.5.1",
-        "chalk": "^4.0.0",
-        "jest-get-type": "^27.5.1",
-        "jest-util": "^27.5.1",
-        "pretty-format": "^27.5.1"
-      },
-      "dependencies": {
-        "ansi-styles": {
-          "version": "4.3.0",
-          "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
-          "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "color-convert": "^2.0.1"
-          }
-        },
-        "chalk": {
-          "version": "4.1.2",
-          "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
-          "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "ansi-styles": "^4.1.0",
-            "supports-color": "^7.1.0"
-          }
-        },
-        "color-convert": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
-          "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "color-name": "~1.1.4"
-          }
-        },
-        "color-name": {
-          "version": "1.1.4",
-          "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
-          "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
-          "dev": true,
-          "peer": true
-        },
-        "has-flag": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
-          "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
-          "dev": true,
-          "peer": true
-        },
-        "supports-color": {
-          "version": "7.2.0",
-          "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
-          "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "has-flag": "^4.0.0"
-          }
-        }
-      }
-    },
-    "jest-environment-jsdom": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz",
-      "integrity": "sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "@jest/environment": "^27.5.1",
-        "@jest/fake-timers": "^27.5.1",
-        "@jest/types": "^27.5.1",
-        "@types/node": "*",
-        "jest-mock": "^27.5.1",
-        "jest-util": "^27.5.1",
-        "jsdom": "^16.6.0"
-      }
-    },
-    "jest-environment-node": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/jest-environment-node/-/jest-environment-node-27.5.1.tgz",
-      "integrity": "sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "@jest/environment": "^27.5.1",
-        "@jest/fake-timers": "^27.5.1",
-        "@jest/types": "^27.5.1",
-        "@types/node": "*",
-        "jest-mock": "^27.5.1",
-        "jest-util": "^27.5.1"
-      }
-    },
-    "jest-get-type": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/jest-get-type/-/jest-get-type-27.5.1.tgz",
-      "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==",
-      "dev": true,
-      "peer": true
-    },
-    "jest-haste-map": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/jest-haste-map/-/jest-haste-map-27.5.1.tgz",
-      "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "@jest/types": "^27.5.1",
-        "@types/graceful-fs": "^4.1.2",
-        "@types/node": "*",
-        "anymatch": "^3.0.3",
-        "fb-watchman": "^2.0.0",
-        "fsevents": "^2.3.2",
-        "graceful-fs": "^4.2.9",
-        "jest-regex-util": "^27.5.1",
-        "jest-serializer": "^27.5.1",
-        "jest-util": "^27.5.1",
-        "jest-worker": "^27.5.1",
-        "micromatch": "^4.0.4",
-        "walker": "^1.0.7"
-      }
-    },
-    "jest-jasmine2": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz",
-      "integrity": "sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "@jest/environment": "^27.5.1",
-        "@jest/source-map": "^27.5.1",
-        "@jest/test-result": "^27.5.1",
-        "@jest/types": "^27.5.1",
-        "@types/node": "*",
-        "chalk": "^4.0.0",
-        "co": "^4.6.0",
-        "expect": "^27.5.1",
-        "is-generator-fn": "^2.0.0",
-        "jest-each": "^27.5.1",
-        "jest-matcher-utils": "^27.5.1",
-        "jest-message-util": "^27.5.1",
-        "jest-runtime": "^27.5.1",
-        "jest-snapshot": "^27.5.1",
-        "jest-util": "^27.5.1",
-        "pretty-format": "^27.5.1",
-        "throat": "^6.0.1"
-      },
-      "dependencies": {
-        "ansi-styles": {
-          "version": "4.3.0",
-          "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
-          "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "color-convert": "^2.0.1"
-          }
-        },
-        "chalk": {
-          "version": "4.1.2",
-          "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
-          "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "ansi-styles": "^4.1.0",
-            "supports-color": "^7.1.0"
-          }
-        },
-        "color-convert": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
-          "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "color-name": "~1.1.4"
-          }
-        },
-        "color-name": {
-          "version": "1.1.4",
-          "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
-          "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
-          "dev": true,
-          "peer": true
-        },
-        "has-flag": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
-          "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
-          "dev": true,
-          "peer": true
-        },
-        "supports-color": {
-          "version": "7.2.0",
-          "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
-          "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "has-flag": "^4.0.0"
-          }
-        }
-      }
-    },
-    "jest-leak-detector": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz",
-      "integrity": "sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "jest-get-type": "^27.5.1",
-        "pretty-format": "^27.5.1"
-      }
-    },
-    "jest-matcher-utils": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz",
-      "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "chalk": "^4.0.0",
-        "jest-diff": "^27.5.1",
-        "jest-get-type": "^27.5.1",
-        "pretty-format": "^27.5.1"
-      },
-      "dependencies": {
-        "ansi-styles": {
-          "version": "4.3.0",
-          "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
-          "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "color-convert": "^2.0.1"
-          }
-        },
-        "chalk": {
-          "version": "4.1.2",
-          "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
-          "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "ansi-styles": "^4.1.0",
-            "supports-color": "^7.1.0"
-          }
-        },
-        "color-convert": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
-          "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "color-name": "~1.1.4"
-          }
-        },
-        "color-name": {
-          "version": "1.1.4",
-          "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
-          "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
-          "dev": true,
-          "peer": true
-        },
-        "has-flag": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
-          "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
-          "dev": true,
-          "peer": true
-        },
-        "supports-color": {
-          "version": "7.2.0",
-          "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
-          "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "has-flag": "^4.0.0"
-          }
-        }
-      }
-    },
-    "jest-message-util": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/jest-message-util/-/jest-message-util-27.5.1.tgz",
-      "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "@babel/code-frame": "^7.12.13",
-        "@jest/types": "^27.5.1",
-        "@types/stack-utils": "^2.0.0",
-        "chalk": "^4.0.0",
-        "graceful-fs": "^4.2.9",
-        "micromatch": "^4.0.4",
-        "pretty-format": "^27.5.1",
-        "slash": "^3.0.0",
-        "stack-utils": "^2.0.3"
-      },
-      "dependencies": {
-        "ansi-styles": {
-          "version": "4.3.0",
-          "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
-          "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "color-convert": "^2.0.1"
-          }
-        },
-        "chalk": {
-          "version": "4.1.2",
-          "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
-          "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "ansi-styles": "^4.1.0",
-            "supports-color": "^7.1.0"
-          }
-        },
-        "color-convert": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
-          "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "color-name": "~1.1.4"
-          }
-        },
-        "color-name": {
-          "version": "1.1.4",
-          "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
-          "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
-          "dev": true,
-          "peer": true
-        },
-        "has-flag": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
-          "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
-          "dev": true,
-          "peer": true
-        },
-        "supports-color": {
-          "version": "7.2.0",
-          "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
-          "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "has-flag": "^4.0.0"
-          }
-        }
-      }
-    },
-    "jest-mock": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/jest-mock/-/jest-mock-27.5.1.tgz",
-      "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "@jest/types": "^27.5.1",
-        "@types/node": "*"
-      }
-    },
-    "jest-pnp-resolver": {
-      "version": "1.2.3",
-      "resolved": "https://registry.npmmirror.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz",
-      "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==",
-      "dev": true,
-      "peer": true,
-      "requires": {}
-    },
-    "jest-regex-util": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/jest-regex-util/-/jest-regex-util-27.5.1.tgz",
-      "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==",
-      "dev": true,
-      "peer": true
-    },
-    "jest-resolve": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/jest-resolve/-/jest-resolve-27.5.1.tgz",
-      "integrity": "sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "@jest/types": "^27.5.1",
-        "chalk": "^4.0.0",
-        "graceful-fs": "^4.2.9",
-        "jest-haste-map": "^27.5.1",
-        "jest-pnp-resolver": "^1.2.2",
-        "jest-util": "^27.5.1",
-        "jest-validate": "^27.5.1",
-        "resolve": "^1.20.0",
-        "resolve.exports": "^1.1.0",
-        "slash": "^3.0.0"
-      },
-      "dependencies": {
-        "ansi-styles": {
-          "version": "4.3.0",
-          "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
-          "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "color-convert": "^2.0.1"
-          }
-        },
-        "chalk": {
-          "version": "4.1.2",
-          "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
-          "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "ansi-styles": "^4.1.0",
-            "supports-color": "^7.1.0"
-          }
-        },
-        "color-convert": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
-          "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "color-name": "~1.1.4"
-          }
-        },
-        "color-name": {
-          "version": "1.1.4",
-          "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
-          "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
-          "dev": true,
-          "peer": true
-        },
-        "has-flag": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
-          "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
-          "dev": true,
-          "peer": true
-        },
-        "supports-color": {
-          "version": "7.2.0",
-          "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
-          "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "has-flag": "^4.0.0"
-          }
-        }
-      }
-    },
-    "jest-resolve-dependencies": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz",
-      "integrity": "sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "@jest/types": "^27.5.1",
-        "jest-regex-util": "^27.5.1",
-        "jest-snapshot": "^27.5.1"
-      }
-    },
-    "jest-runner": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/jest-runner/-/jest-runner-27.5.1.tgz",
-      "integrity": "sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "@jest/console": "^27.5.1",
-        "@jest/environment": "^27.5.1",
-        "@jest/test-result": "^27.5.1",
-        "@jest/transform": "^27.5.1",
-        "@jest/types": "^27.5.1",
-        "@types/node": "*",
-        "chalk": "^4.0.0",
-        "emittery": "^0.8.1",
-        "graceful-fs": "^4.2.9",
-        "jest-docblock": "^27.5.1",
-        "jest-environment-jsdom": "^27.5.1",
-        "jest-environment-node": "^27.5.1",
-        "jest-haste-map": "^27.5.1",
-        "jest-leak-detector": "^27.5.1",
-        "jest-message-util": "^27.5.1",
-        "jest-resolve": "^27.5.1",
-        "jest-runtime": "^27.5.1",
-        "jest-util": "^27.5.1",
-        "jest-worker": "^27.5.1",
-        "source-map-support": "^0.5.6",
-        "throat": "^6.0.1"
-      },
-      "dependencies": {
-        "ansi-styles": {
-          "version": "4.3.0",
-          "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
-          "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "color-convert": "^2.0.1"
-          }
-        },
-        "chalk": {
-          "version": "4.1.2",
-          "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
-          "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "ansi-styles": "^4.1.0",
-            "supports-color": "^7.1.0"
-          }
-        },
-        "color-convert": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
-          "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "color-name": "~1.1.4"
-          }
-        },
-        "color-name": {
-          "version": "1.1.4",
-          "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
-          "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
-          "dev": true,
-          "peer": true
-        },
-        "has-flag": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
-          "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
-          "dev": true,
-          "peer": true
-        },
-        "supports-color": {
-          "version": "7.2.0",
-          "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
-          "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "has-flag": "^4.0.0"
-          }
-        }
-      }
-    },
-    "jest-runtime": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/jest-runtime/-/jest-runtime-27.5.1.tgz",
-      "integrity": "sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "@jest/environment": "^27.5.1",
-        "@jest/fake-timers": "^27.5.1",
-        "@jest/globals": "^27.5.1",
-        "@jest/source-map": "^27.5.1",
-        "@jest/test-result": "^27.5.1",
-        "@jest/transform": "^27.5.1",
-        "@jest/types": "^27.5.1",
-        "chalk": "^4.0.0",
-        "cjs-module-lexer": "^1.0.0",
-        "collect-v8-coverage": "^1.0.0",
-        "execa": "^5.0.0",
-        "glob": "^7.1.3",
-        "graceful-fs": "^4.2.9",
-        "jest-haste-map": "^27.5.1",
-        "jest-message-util": "^27.5.1",
-        "jest-mock": "^27.5.1",
-        "jest-regex-util": "^27.5.1",
-        "jest-resolve": "^27.5.1",
-        "jest-snapshot": "^27.5.1",
-        "jest-util": "^27.5.1",
-        "slash": "^3.0.0",
-        "strip-bom": "^4.0.0"
-      },
-      "dependencies": {
-        "ansi-styles": {
-          "version": "4.3.0",
-          "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
-          "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "color-convert": "^2.0.1"
-          }
-        },
-        "chalk": {
-          "version": "4.1.2",
-          "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
-          "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "ansi-styles": "^4.1.0",
-            "supports-color": "^7.1.0"
-          }
-        },
-        "color-convert": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
-          "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "color-name": "~1.1.4"
-          }
-        },
-        "color-name": {
-          "version": "1.1.4",
-          "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
-          "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
-          "dev": true,
-          "peer": true
-        },
-        "has-flag": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
-          "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
-          "dev": true,
-          "peer": true
-        },
-        "supports-color": {
-          "version": "7.2.0",
-          "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
-          "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "has-flag": "^4.0.0"
-          }
-        }
-      }
-    },
-    "jest-serializer": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/jest-serializer/-/jest-serializer-27.5.1.tgz",
-      "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "@types/node": "*",
-        "graceful-fs": "^4.2.9"
-      }
-    },
-    "jest-snapshot": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/jest-snapshot/-/jest-snapshot-27.5.1.tgz",
-      "integrity": "sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "@babel/core": "^7.7.2",
-        "@babel/generator": "^7.7.2",
-        "@babel/plugin-syntax-typescript": "^7.7.2",
-        "@babel/traverse": "^7.7.2",
-        "@babel/types": "^7.0.0",
-        "@jest/transform": "^27.5.1",
-        "@jest/types": "^27.5.1",
-        "@types/babel__traverse": "^7.0.4",
-        "@types/prettier": "^2.1.5",
-        "babel-preset-current-node-syntax": "^1.0.0",
-        "chalk": "^4.0.0",
-        "expect": "^27.5.1",
-        "graceful-fs": "^4.2.9",
-        "jest-diff": "^27.5.1",
-        "jest-get-type": "^27.5.1",
-        "jest-haste-map": "^27.5.1",
-        "jest-matcher-utils": "^27.5.1",
-        "jest-message-util": "^27.5.1",
-        "jest-util": "^27.5.1",
-        "natural-compare": "^1.4.0",
-        "pretty-format": "^27.5.1",
-        "semver": "^7.3.2"
-      },
-      "dependencies": {
-        "ansi-styles": {
-          "version": "4.3.0",
-          "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
-          "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "color-convert": "^2.0.1"
-          }
-        },
-        "chalk": {
-          "version": "4.1.2",
-          "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
-          "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "ansi-styles": "^4.1.0",
-            "supports-color": "^7.1.0"
-          }
-        },
-        "color-convert": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
-          "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "color-name": "~1.1.4"
-          }
-        },
-        "color-name": {
-          "version": "1.1.4",
-          "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
-          "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
-          "dev": true,
-          "peer": true
-        },
-        "has-flag": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
-          "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
-          "dev": true,
-          "peer": true
-        },
-        "lru-cache": {
-          "version": "6.0.0",
-          "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz",
-          "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "yallist": "^4.0.0"
-          }
-        },
-        "semver": {
-          "version": "7.6.0",
-          "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.0.tgz",
-          "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "lru-cache": "^6.0.0"
-          }
-        },
-        "supports-color": {
-          "version": "7.2.0",
-          "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
-          "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "has-flag": "^4.0.0"
-          }
-        },
-        "yallist": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz",
-          "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
-          "dev": true,
-          "peer": true
-        }
-      }
-    },
-    "jest-util": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/jest-util/-/jest-util-27.5.1.tgz",
-      "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "@jest/types": "^27.5.1",
-        "@types/node": "*",
-        "chalk": "^4.0.0",
-        "ci-info": "^3.2.0",
-        "graceful-fs": "^4.2.9",
-        "picomatch": "^2.2.3"
-      },
-      "dependencies": {
-        "ansi-styles": {
-          "version": "4.3.0",
-          "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
-          "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "color-convert": "^2.0.1"
-          }
-        },
-        "chalk": {
-          "version": "4.1.2",
-          "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
-          "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "ansi-styles": "^4.1.0",
-            "supports-color": "^7.1.0"
-          }
-        },
-        "color-convert": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
-          "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "color-name": "~1.1.4"
-          }
-        },
-        "color-name": {
-          "version": "1.1.4",
-          "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
-          "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
-          "dev": true,
-          "peer": true
-        },
-        "has-flag": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
-          "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
-          "dev": true,
-          "peer": true
-        },
-        "supports-color": {
-          "version": "7.2.0",
-          "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
-          "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "has-flag": "^4.0.0"
-          }
-        }
-      }
-    },
-    "jest-validate": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/jest-validate/-/jest-validate-27.5.1.tgz",
-      "integrity": "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "@jest/types": "^27.5.1",
-        "camelcase": "^6.2.0",
-        "chalk": "^4.0.0",
-        "jest-get-type": "^27.5.1",
-        "leven": "^3.1.0",
-        "pretty-format": "^27.5.1"
-      },
-      "dependencies": {
-        "ansi-styles": {
-          "version": "4.3.0",
-          "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
-          "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "color-convert": "^2.0.1"
-          }
-        },
-        "chalk": {
-          "version": "4.1.2",
-          "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
-          "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "ansi-styles": "^4.1.0",
-            "supports-color": "^7.1.0"
-          }
-        },
-        "color-convert": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
-          "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "color-name": "~1.1.4"
-          }
-        },
-        "color-name": {
-          "version": "1.1.4",
-          "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
-          "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
-          "dev": true,
-          "peer": true
-        },
-        "has-flag": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
-          "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
-          "dev": true,
-          "peer": true
-        },
-        "supports-color": {
-          "version": "7.2.0",
-          "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
-          "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "has-flag": "^4.0.0"
-          }
-        }
-      }
-    },
-    "jest-watcher": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/jest-watcher/-/jest-watcher-27.5.1.tgz",
-      "integrity": "sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "@jest/test-result": "^27.5.1",
-        "@jest/types": "^27.5.1",
-        "@types/node": "*",
-        "ansi-escapes": "^4.2.1",
-        "chalk": "^4.0.0",
-        "jest-util": "^27.5.1",
-        "string-length": "^4.0.1"
-      },
-      "dependencies": {
-        "ansi-styles": {
-          "version": "4.3.0",
-          "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
-          "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "color-convert": "^2.0.1"
-          }
-        },
-        "chalk": {
-          "version": "4.1.2",
-          "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
-          "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "ansi-styles": "^4.1.0",
-            "supports-color": "^7.1.0"
-          }
-        },
-        "color-convert": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
-          "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "color-name": "~1.1.4"
-          }
-        },
-        "color-name": {
-          "version": "1.1.4",
-          "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
-          "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
-          "dev": true,
-          "peer": true
-        },
-        "has-flag": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
-          "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
-          "dev": true,
-          "peer": true
-        },
-        "supports-color": {
-          "version": "7.2.0",
-          "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
-          "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "has-flag": "^4.0.0"
-          }
-        }
-      }
-    },
-    "jest-worker": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/jest-worker/-/jest-worker-27.5.1.tgz",
-      "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==",
-      "peer": true,
-      "requires": {
-        "@types/node": "*",
-        "merge-stream": "^2.0.0",
-        "supports-color": "^8.0.0"
-      },
-      "dependencies": {
-        "has-flag": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
-          "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
-          "peer": true
-        },
-        "supports-color": {
-          "version": "8.1.1",
-          "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-8.1.1.tgz",
-          "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
-          "peer": true,
-          "requires": {
-            "has-flag": "^4.0.0"
-          }
-        }
-      }
-    },
-    "jimp": {
-      "version": "0.10.3",
-      "resolved": "https://registry.npmmirror.com/jimp/-/jimp-0.10.3.tgz",
-      "integrity": "sha512-meVWmDMtyUG5uYjFkmzu0zBgnCvvxwWNi27c4cg55vWNVC9ES4Lcwb+ogx+uBBQE3Q+dLKjXaLl0JVW+nUNwbQ==",
-      "requires": {
-        "@babel/runtime": "^7.7.2",
-        "@jimp/custom": "^0.10.3",
-        "@jimp/plugins": "^0.10.3",
-        "@jimp/types": "^0.10.3",
-        "core-js": "^3.4.1",
-        "regenerator-runtime": "^0.13.3"
-      }
-    },
-    "jpeg-js": {
-      "version": "0.3.7",
-      "resolved": "https://registry.npmmirror.com/jpeg-js/-/jpeg-js-0.3.7.tgz",
-      "integrity": "sha512-9IXdWudL61npZjvLuVe/ktHiA41iE8qFyLB+4VDTblEsWBzeg8WQTlktdUK4CdncUqtUgUg0bbOmTE2bKBKaBQ=="
-    },
-    "js-tokens": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz",
-      "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
-    },
-    "js-yaml": {
-      "version": "4.1.0",
-      "resolved": "https://registry.npmmirror.com/js-yaml/-/js-yaml-4.1.0.tgz",
-      "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
-      "requires": {
-        "argparse": "^2.0.1"
-      }
-    },
-    "jsdom": {
-      "version": "16.7.0",
-      "resolved": "https://registry.npmmirror.com/jsdom/-/jsdom-16.7.0.tgz",
-      "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "abab": "^2.0.5",
-        "acorn": "^8.2.4",
-        "acorn-globals": "^6.0.0",
-        "cssom": "^0.4.4",
-        "cssstyle": "^2.3.0",
-        "data-urls": "^2.0.0",
-        "decimal.js": "^10.2.1",
-        "domexception": "^2.0.1",
-        "escodegen": "^2.0.0",
-        "form-data": "^3.0.0",
-        "html-encoding-sniffer": "^2.0.1",
-        "http-proxy-agent": "^4.0.1",
-        "https-proxy-agent": "^5.0.0",
-        "is-potential-custom-element-name": "^1.0.1",
-        "nwsapi": "^2.2.0",
-        "parse5": "6.0.1",
-        "saxes": "^5.0.1",
-        "symbol-tree": "^3.2.4",
-        "tough-cookie": "^4.0.0",
-        "w3c-hr-time": "^1.0.2",
-        "w3c-xmlserializer": "^2.0.0",
-        "webidl-conversions": "^6.1.0",
-        "whatwg-encoding": "^1.0.5",
-        "whatwg-mimetype": "^2.3.0",
-        "whatwg-url": "^8.5.0",
-        "ws": "^7.4.6",
-        "xml-name-validator": "^3.0.0"
-      },
-      "dependencies": {
-        "ws": {
-          "version": "7.5.9",
-          "resolved": "https://registry.npmmirror.com/ws/-/ws-7.5.9.tgz",
-          "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==",
-          "dev": true,
-          "peer": true,
-          "requires": {}
-        },
-        "xml-name-validator": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmmirror.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz",
-          "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==",
-          "dev": true,
-          "peer": true
-        }
-      }
-    },
-    "jsesc": {
-      "version": "2.5.2",
-      "resolved": "https://registry.npmmirror.com/jsesc/-/jsesc-2.5.2.tgz",
-      "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA=="
-    },
-    "json-buffer": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmmirror.com/json-buffer/-/json-buffer-3.0.1.tgz",
-      "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ=="
-    },
-    "json-parse-even-better-errors": {
-      "version": "2.3.1",
-      "resolved": "https://registry.npmmirror.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
-      "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
-      "peer": true
-    },
-    "json-schema-traverse": {
-      "version": "0.4.1",
-      "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
-      "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
-    },
-    "json-stable-stringify-without-jsonify": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmmirror.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
-      "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw=="
-    },
-    "json5": {
-      "version": "2.2.3",
-      "resolved": "https://registry.npmmirror.com/json5/-/json5-2.2.3.tgz",
-      "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg=="
-    },
-    "jsonc-parser": {
-      "version": "3.2.1",
-      "resolved": "https://registry.npmmirror.com/jsonc-parser/-/jsonc-parser-3.2.1.tgz",
-      "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA=="
-    },
-    "jsonfile": {
-      "version": "6.1.0",
-      "resolved": "https://registry.npmmirror.com/jsonfile/-/jsonfile-6.1.0.tgz",
-      "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
-      "requires": {
-        "graceful-fs": "^4.1.6",
-        "universalify": "^2.0.0"
-      }
-    },
-    "keyv": {
-      "version": "4.5.4",
-      "resolved": "https://registry.npmmirror.com/keyv/-/keyv-4.5.4.tgz",
-      "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
-      "requires": {
-        "json-buffer": "3.0.1"
-      }
-    },
-    "kleur": {
-      "version": "3.0.3",
-      "resolved": "https://registry.npmmirror.com/kleur/-/kleur-3.0.3.tgz",
-      "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==",
-      "dev": true,
-      "peer": true
-    },
-    "lcid": {
-      "version": "3.1.1",
-      "resolved": "https://registry.npmmirror.com/lcid/-/lcid-3.1.1.tgz",
-      "integrity": "sha512-M6T051+5QCGLBQb8id3hdvIW8+zeFV2FyBGFS9IEK5H9Wt4MueD4bW1eWikpHgZp+5xR3l5c8pZUkQsIA0BFZg==",
-      "requires": {
-        "invert-kv": "^3.0.0"
-      }
-    },
-    "leven": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmmirror.com/leven/-/leven-3.1.0.tgz",
-      "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==",
-      "dev": true,
-      "peer": true
-    },
-    "levn": {
-      "version": "0.4.1",
-      "resolved": "https://registry.npmmirror.com/levn/-/levn-0.4.1.tgz",
-      "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
-      "requires": {
-        "prelude-ls": "^1.2.1",
-        "type-check": "~0.4.0"
-      }
-    },
-    "licia": {
-      "version": "1.39.2",
-      "resolved": "https://registry.npmmirror.com/licia/-/licia-1.39.2.tgz",
-      "integrity": "sha512-4pte7gXufSAa3JcsR0iT+2Lj2RX5Qpj+Nc0n84xs0ynNmw7eJmeZzk2oPTEtsQqwHwtT+NiX0arGkL5HPjTs7g=="
-    },
-    "lilconfig": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmmirror.com/lilconfig/-/lilconfig-2.1.0.tgz",
-      "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ=="
-    },
-    "lines-and-columns": {
-      "version": "1.2.4",
-      "resolved": "https://registry.npmmirror.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
-      "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
-      "dev": true,
-      "peer": true
-    },
-    "load-bmfont": {
-      "version": "1.4.1",
-      "resolved": "https://registry.npmmirror.com/load-bmfont/-/load-bmfont-1.4.1.tgz",
-      "integrity": "sha512-8UyQoYmdRDy81Brz6aLAUhfZLwr5zV0L3taTQ4hju7m6biuwiWiJXjPhBJxbUQJA8PrkvJ/7Enqmwk2sM14soA==",
-      "requires": {
-        "buffer-equal": "0.0.1",
-        "mime": "^1.3.4",
-        "parse-bmfont-ascii": "^1.0.3",
-        "parse-bmfont-binary": "^1.0.5",
-        "parse-bmfont-xml": "^1.1.4",
-        "phin": "^2.9.1",
-        "xhr": "^2.0.1",
-        "xtend": "^4.0.0"
-      },
-      "dependencies": {
-        "mime": {
-          "version": "1.6.0",
-          "resolved": "https://registry.npmmirror.com/mime/-/mime-1.6.0.tgz",
-          "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
-        }
-      }
-    },
-    "loader-runner": {
-      "version": "4.3.0",
-      "resolved": "https://registry.npmmirror.com/loader-runner/-/loader-runner-4.3.0.tgz",
-      "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==",
-      "peer": true
-    },
-    "loader-utils": {
-      "version": "3.2.1",
-      "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-3.2.1.tgz",
-      "integrity": "sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw=="
-    },
-    "localstorage-polyfill": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmmirror.com/localstorage-polyfill/-/localstorage-polyfill-1.0.1.tgz",
-      "integrity": "sha512-m4iHVZxFH5734oQcPKU08025gIz2+4bjWR9lulP8ZYxEJR0BpA0w32oJmkzh8y3UI9ci7xCBehQDc3oA1X+VHw=="
-    },
-    "locate-path": {
-      "version": "6.0.0",
-      "resolved": "https://registry.npmmirror.com/locate-path/-/locate-path-6.0.0.tgz",
-      "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
-      "requires": {
-        "p-locate": "^5.0.0"
-      }
-    },
-    "lodash": {
-      "version": "4.17.21",
-      "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz",
-      "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
-      "dev": true
-    },
-    "lodash.camelcase": {
-      "version": "4.3.0",
-      "resolved": "https://registry.npmmirror.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz",
-      "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA=="
-    },
-    "lodash.debounce": {
-      "version": "4.0.8",
-      "resolved": "https://registry.npmmirror.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
-      "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==",
-      "dev": true
-    },
-    "lodash.merge": {
-      "version": "4.6.2",
-      "resolved": "https://registry.npmmirror.com/lodash.merge/-/lodash.merge-4.6.2.tgz",
-      "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="
-    },
-    "lru-cache": {
-      "version": "5.1.1",
-      "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-5.1.1.tgz",
-      "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
-      "requires": {
-        "yallist": "^3.0.2"
-      }
-    },
-    "magic-string": {
-      "version": "0.30.7",
-      "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.7.tgz",
-      "integrity": "sha512-8vBuFF/I/+OSLRmdf2wwFCJCz+nSn0m6DPvGH1fS/KiQoSaR+sETbov0eIk9KhEKy8CYqIkIAnbohxT/4H0kuA==",
-      "requires": {
-        "@jridgewell/sourcemap-codec": "^1.4.15"
-      }
-    },
-    "make-dir": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmmirror.com/make-dir/-/make-dir-4.0.0.tgz",
-      "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "semver": "^7.5.3"
-      },
-      "dependencies": {
-        "lru-cache": {
-          "version": "6.0.0",
-          "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz",
-          "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "yallist": "^4.0.0"
-          }
-        },
-        "semver": {
-          "version": "7.6.0",
-          "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.0.tgz",
-          "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "lru-cache": "^6.0.0"
-          }
-        },
-        "yallist": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz",
-          "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
-          "dev": true,
-          "peer": true
-        }
-      }
-    },
-    "makeerror": {
-      "version": "1.0.12",
-      "resolved": "https://registry.npmmirror.com/makeerror/-/makeerror-1.0.12.tgz",
-      "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "tmpl": "1.0.5"
-      }
-    },
-    "media-typer": {
-      "version": "0.3.0",
-      "resolved": "https://registry.npmmirror.com/media-typer/-/media-typer-0.3.0.tgz",
-      "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
-      "dev": true
-    },
-    "merge": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmmirror.com/merge/-/merge-2.1.1.tgz",
-      "integrity": "sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w=="
-    },
-    "merge-descriptors": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmmirror.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
-      "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==",
-      "dev": true
-    },
-    "merge-stream": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmmirror.com/merge-stream/-/merge-stream-2.0.0.tgz",
-      "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w=="
-    },
-    "merge2": {
-      "version": "1.4.1",
-      "resolved": "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz",
-      "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg=="
-    },
-    "methods": {
-      "version": "1.1.2",
-      "resolved": "https://registry.npmmirror.com/methods/-/methods-1.1.2.tgz",
-      "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==",
-      "dev": true
-    },
-    "micromatch": {
-      "version": "4.0.5",
-      "resolved": "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.5.tgz",
-      "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
-      "requires": {
-        "braces": "^3.0.2",
-        "picomatch": "^2.3.1"
-      }
-    },
-    "mime": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmmirror.com/mime/-/mime-3.0.0.tgz",
-      "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A=="
-    },
-    "mime-db": {
-      "version": "1.52.0",
-      "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz",
-      "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="
-    },
-    "mime-types": {
-      "version": "2.1.35",
-      "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz",
-      "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
-      "requires": {
-        "mime-db": "1.52.0"
-      }
-    },
-    "mimic-fn": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmmirror.com/mimic-fn/-/mimic-fn-2.1.0.tgz",
-      "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
-      "dev": true
-    },
-    "min-document": {
-      "version": "2.19.0",
-      "resolved": "https://registry.npmmirror.com/min-document/-/min-document-2.19.0.tgz",
-      "integrity": "sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==",
-      "requires": {
-        "dom-walk": "^0.1.0"
-      }
-    },
-    "minimatch": {
-      "version": "9.0.3",
-      "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.3.tgz",
-      "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
-      "dev": true,
-      "requires": {
-        "brace-expansion": "^2.0.1"
-      }
-    },
-    "minimist": {
-      "version": "1.2.8",
-      "resolved": "https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz",
-      "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA=="
-    },
-    "mkdirp": {
-      "version": "0.5.6",
-      "resolved": "https://registry.npmmirror.com/mkdirp/-/mkdirp-0.5.6.tgz",
-      "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
-      "requires": {
-        "minimist": "^1.2.6"
-      }
-    },
-    "module-alias": {
-      "version": "2.2.3",
-      "resolved": "https://registry.npmmirror.com/module-alias/-/module-alias-2.2.3.tgz",
-      "integrity": "sha512-23g5BFj4zdQL/b6tor7Ji+QY4pEfNH784BMslY9Qb0UnJWRAt+lQGLYmRaM0KDBwIG23ffEBELhZDP2rhi9f/Q=="
-    },
-    "ms": {
-      "version": "2.1.2",
-      "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz",
-      "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
-    },
-    "muggle-string": {
-      "version": "0.3.1",
-      "resolved": "https://registry.npmmirror.com/muggle-string/-/muggle-string-0.3.1.tgz",
-      "integrity": "sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==",
-      "dev": true
-    },
-    "nanoid": {
-      "version": "3.3.7",
-      "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.7.tgz",
-      "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g=="
-    },
-    "natural-compare": {
-      "version": "1.4.0",
-      "resolved": "https://registry.npmmirror.com/natural-compare/-/natural-compare-1.4.0.tgz",
-      "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw=="
-    },
-    "negotiator": {
-      "version": "0.6.3",
-      "resolved": "https://registry.npmmirror.com/negotiator/-/negotiator-0.6.3.tgz",
-      "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
-      "dev": true
-    },
-    "neo-async": {
-      "version": "2.6.2",
-      "resolved": "https://registry.npmmirror.com/neo-async/-/neo-async-2.6.2.tgz",
-      "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw=="
-    },
-    "node-int64": {
-      "version": "0.4.0",
-      "resolved": "https://registry.npmmirror.com/node-int64/-/node-int64-0.4.0.tgz",
-      "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==",
-      "dev": true,
-      "peer": true
-    },
-    "node-releases": {
-      "version": "2.0.14",
-      "resolved": "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.14.tgz",
-      "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw=="
-    },
-    "normalize-path": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz",
-      "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="
-    },
-    "normalize-range": {
-      "version": "0.1.2",
-      "resolved": "https://registry.npmmirror.com/normalize-range/-/normalize-range-0.1.2.tgz",
-      "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA=="
-    },
-    "npm-run-path": {
-      "version": "4.0.1",
-      "resolved": "https://registry.npmmirror.com/npm-run-path/-/npm-run-path-4.0.1.tgz",
-      "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
-      "dev": true,
-      "requires": {
-        "path-key": "^3.0.0"
-      }
-    },
-    "nth-check": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmmirror.com/nth-check/-/nth-check-2.1.1.tgz",
-      "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==",
-      "dev": true,
-      "requires": {
-        "boolbase": "^1.0.0"
-      }
-    },
-    "nwsapi": {
-      "version": "2.2.7",
-      "resolved": "https://registry.npmmirror.com/nwsapi/-/nwsapi-2.2.7.tgz",
-      "integrity": "sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==",
-      "dev": true,
-      "peer": true
-    },
-    "object-inspect": {
-      "version": "1.13.1",
-      "resolved": "https://registry.npmmirror.com/object-inspect/-/object-inspect-1.13.1.tgz",
-      "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ=="
-    },
-    "object-keys": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmmirror.com/object-keys/-/object-keys-1.1.1.tgz",
-      "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
-      "dev": true
-    },
-    "object.assign": {
-      "version": "4.1.5",
-      "resolved": "https://registry.npmmirror.com/object.assign/-/object.assign-4.1.5.tgz",
-      "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==",
-      "dev": true,
-      "requires": {
-        "call-bind": "^1.0.5",
-        "define-properties": "^1.2.1",
-        "has-symbols": "^1.0.3",
-        "object-keys": "^1.1.1"
-      }
-    },
-    "object.fromentries": {
-      "version": "2.0.7",
-      "resolved": "https://registry.npmmirror.com/object.fromentries/-/object.fromentries-2.0.7.tgz",
-      "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==",
-      "dev": true,
-      "requires": {
-        "call-bind": "^1.0.2",
-        "define-properties": "^1.2.0",
-        "es-abstract": "^1.22.1"
-      }
-    },
-    "object.groupby": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmmirror.com/object.groupby/-/object.groupby-1.0.2.tgz",
-      "integrity": "sha512-bzBq58S+x+uo0VjurFT0UktpKHOZmv4/xePiOA1nbB9pMqpGK7rUPNgf+1YC+7mE+0HzhTMqNUuCqvKhj6FnBw==",
-      "dev": true,
-      "requires": {
-        "array.prototype.filter": "^1.0.3",
-        "call-bind": "^1.0.5",
-        "define-properties": "^1.2.1",
-        "es-abstract": "^1.22.3",
-        "es-errors": "^1.0.0"
-      }
-    },
-    "object.values": {
-      "version": "1.1.7",
-      "resolved": "https://registry.npmmirror.com/object.values/-/object.values-1.1.7.tgz",
-      "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==",
-      "dev": true,
-      "requires": {
-        "call-bind": "^1.0.2",
-        "define-properties": "^1.2.0",
-        "es-abstract": "^1.22.1"
-      }
-    },
-    "omggif": {
-      "version": "1.0.10",
-      "resolved": "https://registry.npmmirror.com/omggif/-/omggif-1.0.10.tgz",
-      "integrity": "sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw=="
-    },
-    "on-finished": {
-      "version": "2.4.1",
-      "resolved": "https://registry.npmmirror.com/on-finished/-/on-finished-2.4.1.tgz",
-      "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
-      "dev": true,
-      "requires": {
-        "ee-first": "1.1.1"
-      }
-    },
-    "once": {
-      "version": "1.4.0",
-      "resolved": "https://registry.npmmirror.com/once/-/once-1.4.0.tgz",
-      "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
-      "requires": {
-        "wrappy": "1"
-      }
-    },
-    "onetime": {
-      "version": "5.1.2",
-      "resolved": "https://registry.npmmirror.com/onetime/-/onetime-5.1.2.tgz",
-      "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
-      "dev": true,
-      "requires": {
-        "mimic-fn": "^2.1.0"
-      }
-    },
-    "optionator": {
-      "version": "0.9.3",
-      "resolved": "https://registry.npmmirror.com/optionator/-/optionator-0.9.3.tgz",
-      "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==",
-      "requires": {
-        "@aashutoshrathi/word-wrap": "^1.2.3",
-        "deep-is": "^0.1.3",
-        "fast-levenshtein": "^2.0.6",
-        "levn": "^0.4.1",
-        "prelude-ls": "^1.2.1",
-        "type-check": "^0.4.0"
-      }
-    },
-    "os-locale-s-fix": {
-      "version": "1.0.8-fix-1",
-      "resolved": "https://registry.npmmirror.com/os-locale-s-fix/-/os-locale-s-fix-1.0.8-fix-1.tgz",
-      "integrity": "sha512-Sv0OvhPiMutICiwORAUefv02DCPb62IelBmo8ZsSrRHyI3FStqIWZvjqDkvtjU+lcujo7UNir+dCwKSqlEQ/5w==",
-      "requires": {
-        "lcid": "^3.0.0"
-      }
-    },
-    "p-limit": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmmirror.com/p-limit/-/p-limit-3.1.0.tgz",
-      "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
-      "requires": {
-        "yocto-queue": "^0.1.0"
-      }
-    },
-    "p-locate": {
-      "version": "5.0.0",
-      "resolved": "https://registry.npmmirror.com/p-locate/-/p-locate-5.0.0.tgz",
-      "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
-      "requires": {
-        "p-limit": "^3.0.2"
-      }
-    },
-    "p-try": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npmmirror.com/p-try/-/p-try-2.2.0.tgz",
-      "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
-      "dev": true,
-      "peer": true
-    },
-    "pako": {
-      "version": "1.0.11",
-      "resolved": "https://registry.npmmirror.com/pako/-/pako-1.0.11.tgz",
-      "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw=="
-    },
-    "parent-module": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmmirror.com/parent-module/-/parent-module-1.0.1.tgz",
-      "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
-      "requires": {
-        "callsites": "^3.0.0"
-      }
-    },
-    "parse-bmfont-ascii": {
-      "version": "1.0.6",
-      "resolved": "https://registry.npmmirror.com/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz",
-      "integrity": "sha512-U4RrVsUFCleIOBsIGYOMKjn9PavsGOXxbvYGtMOEfnId0SVNsgehXh1DxUdVPLoxd5mvcEtvmKs2Mmf0Mpa1ZA=="
-    },
-    "parse-bmfont-binary": {
-      "version": "1.0.6",
-      "resolved": "https://registry.npmmirror.com/parse-bmfont-binary/-/parse-bmfont-binary-1.0.6.tgz",
-      "integrity": "sha512-GxmsRea0wdGdYthjuUeWTMWPqm2+FAd4GI8vCvhgJsFnoGhTrLhXDDupwTo7rXVAgaLIGoVHDZS9p/5XbSqeWA=="
-    },
-    "parse-bmfont-xml": {
-      "version": "1.1.4",
-      "resolved": "https://registry.npmmirror.com/parse-bmfont-xml/-/parse-bmfont-xml-1.1.4.tgz",
-      "integrity": "sha512-bjnliEOmGv3y1aMEfREMBJ9tfL3WR0i0CKPj61DnSLaoxWR3nLrsQrEbCId/8rF4NyRF0cCqisSVXyQYWM+mCQ==",
-      "requires": {
-        "xml-parse-from-string": "^1.0.0",
-        "xml2js": "^0.4.5"
-      }
-    },
-    "parse-css-font": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmmirror.com/parse-css-font/-/parse-css-font-4.0.0.tgz",
-      "integrity": "sha512-lnY7dTUfjRXsSo5G5C639L8RaBBaVSgL+5hacIFKsNHzeCJQ5SFSZv1DZmc7+wZv/22PFGOq2YbaEHLdaCS/mQ==",
-      "requires": {
-        "css-font-size-keywords": "^1.0.0",
-        "css-font-stretch-keywords": "^1.0.1",
-        "css-font-style-keywords": "^1.0.1",
-        "css-font-weight-keywords": "^1.0.0",
-        "css-list-helpers": "^2.0.0",
-        "css-system-font-keywords": "^1.0.0",
-        "unquote": "^1.1.1"
-      }
-    },
-    "parse-headers": {
-      "version": "2.0.5",
-      "resolved": "https://registry.npmmirror.com/parse-headers/-/parse-headers-2.0.5.tgz",
-      "integrity": "sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA=="
-    },
-    "parse-json": {
-      "version": "5.2.0",
-      "resolved": "https://registry.npmmirror.com/parse-json/-/parse-json-5.2.0.tgz",
-      "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "@babel/code-frame": "^7.0.0",
-        "error-ex": "^1.3.1",
-        "json-parse-even-better-errors": "^2.3.0",
-        "lines-and-columns": "^1.1.6"
-      }
-    },
-    "parse5": {
-      "version": "6.0.1",
-      "resolved": "https://registry.npmmirror.com/parse5/-/parse5-6.0.1.tgz",
-      "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==",
-      "dev": true,
-      "peer": true
-    },
-    "parseurl": {
-      "version": "1.3.3",
-      "resolved": "https://registry.npmmirror.com/parseurl/-/parseurl-1.3.3.tgz",
-      "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
-      "dev": true
-    },
-    "path-browserify": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmmirror.com/path-browserify/-/path-browserify-1.0.1.tgz",
-      "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==",
-      "dev": true
-    },
-    "path-exists": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmmirror.com/path-exists/-/path-exists-4.0.0.tgz",
-      "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="
-    },
-    "path-is-absolute": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmmirror.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
-      "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg=="
-    },
-    "path-key": {
-      "version": "3.1.1",
-      "resolved": "https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz",
-      "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="
-    },
-    "path-parse": {
-      "version": "1.0.7",
-      "resolved": "https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz",
-      "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="
-    },
-    "path-to-regexp": {
-      "version": "0.1.7",
-      "resolved": "https://registry.npmmirror.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
-      "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==",
-      "dev": true
-    },
-    "path-type": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmmirror.com/path-type/-/path-type-4.0.0.tgz",
-      "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
-      "dev": true
-    },
-    "phin": {
-      "version": "2.9.3",
-      "resolved": "https://registry.npmmirror.com/phin/-/phin-2.9.3.tgz",
-      "integrity": "sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA=="
-    },
-    "picocolors": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz",
-      "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
-    },
-    "picomatch": {
-      "version": "2.3.1",
-      "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz",
-      "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="
-    },
-    "pify": {
-      "version": "2.3.0",
-      "resolved": "https://registry.npmmirror.com/pify/-/pify-2.3.0.tgz",
-      "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog=="
-    },
-    "pinia": {
-      "version": "2.0.36",
-      "resolved": "https://registry.npmmirror.com/pinia/-/pinia-2.0.36.tgz",
-      "integrity": "sha512-4UKApwjlmJH+VuHKgA+zQMddcCb3ezYnyewQ9NVrsDqZ/j9dMv5+rh+1r48whKNdpFkZAWVxhBp5ewYaYX9JcQ==",
-      "requires": {
-        "@vue/devtools-api": "^6.5.0",
-        "vue-demi": "*"
-      },
-      "dependencies": {
-        "vue-demi": {
-          "version": "0.14.7",
-          "resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.14.7.tgz",
-          "integrity": "sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA==",
-          "requires": {}
-        }
-      }
-    },
-    "pinia-plugin-persistedstate": {
-      "version": "3.2.1",
-      "resolved": "https://registry.npmmirror.com/pinia-plugin-persistedstate/-/pinia-plugin-persistedstate-3.2.1.tgz",
-      "integrity": "sha512-MK++8LRUsGF7r45PjBFES82ISnPzyO6IZx3CH5vyPseFLZCk1g2kgx6l/nW8pEBKxxd4do0P6bJw+mUSZIEZUQ==",
-      "requires": {}
-    },
-    "pirates": {
-      "version": "4.0.6",
-      "resolved": "https://registry.npmmirror.com/pirates/-/pirates-4.0.6.tgz",
-      "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==",
-      "dev": true,
-      "peer": true
-    },
-    "pixelmatch": {
-      "version": "4.0.2",
-      "resolved": "https://registry.npmmirror.com/pixelmatch/-/pixelmatch-4.0.2.tgz",
-      "integrity": "sha512-J8B6xqiO37sU/gkcMglv6h5Jbd9xNER7aHzpfRdNmV4IbQBzBpe4l9XmbG+xPF/znacgu2jfEw+wHffaq/YkXA==",
-      "requires": {
-        "pngjs": "^3.0.0"
-      }
-    },
-    "pkg-dir": {
-      "version": "4.2.0",
-      "resolved": "https://registry.npmmirror.com/pkg-dir/-/pkg-dir-4.2.0.tgz",
-      "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "find-up": "^4.0.0"
-      },
-      "dependencies": {
-        "find-up": {
-          "version": "4.1.0",
-          "resolved": "https://registry.npmmirror.com/find-up/-/find-up-4.1.0.tgz",
-          "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "locate-path": "^5.0.0",
-            "path-exists": "^4.0.0"
-          }
-        },
-        "locate-path": {
-          "version": "5.0.0",
-          "resolved": "https://registry.npmmirror.com/locate-path/-/locate-path-5.0.0.tgz",
-          "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "p-locate": "^4.1.0"
-          }
-        },
-        "p-limit": {
-          "version": "2.3.0",
-          "resolved": "https://registry.npmmirror.com/p-limit/-/p-limit-2.3.0.tgz",
-          "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "p-try": "^2.0.0"
-          }
-        },
-        "p-locate": {
-          "version": "4.1.0",
-          "resolved": "https://registry.npmmirror.com/p-locate/-/p-locate-4.1.0.tgz",
-          "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "p-limit": "^2.2.0"
-          }
-        }
-      }
-    },
-    "pngjs": {
-      "version": "3.4.0",
-      "resolved": "https://registry.npmmirror.com/pngjs/-/pngjs-3.4.0.tgz",
-      "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w=="
-    },
-    "postcss": {
-      "version": "8.4.35",
-      "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.35.tgz",
-      "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==",
-      "requires": {
-        "nanoid": "^3.3.7",
-        "picocolors": "^1.0.0",
-        "source-map-js": "^1.0.2"
-      }
-    },
-    "postcss-import": {
-      "version": "14.1.0",
-      "resolved": "https://registry.npmmirror.com/postcss-import/-/postcss-import-14.1.0.tgz",
-      "integrity": "sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==",
-      "requires": {
-        "postcss-value-parser": "^4.0.0",
-        "read-cache": "^1.0.0",
-        "resolve": "^1.1.7"
-      }
-    },
-    "postcss-load-config": {
-      "version": "3.1.4",
-      "resolved": "https://registry.npmmirror.com/postcss-load-config/-/postcss-load-config-3.1.4.tgz",
-      "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==",
-      "requires": {
-        "lilconfig": "^2.0.5",
-        "yaml": "^1.10.2"
-      }
-    },
-    "postcss-modules": {
-      "version": "4.3.1",
-      "resolved": "https://registry.npmmirror.com/postcss-modules/-/postcss-modules-4.3.1.tgz",
-      "integrity": "sha512-ItUhSUxBBdNamkT3KzIZwYNNRFKmkJrofvC2nWab3CPKhYBQ1f27XXh1PAPE27Psx58jeelPsxWB/+og+KEH0Q==",
-      "requires": {
-        "generic-names": "^4.0.0",
-        "icss-replace-symbols": "^1.1.0",
-        "lodash.camelcase": "^4.3.0",
-        "postcss-modules-extract-imports": "^3.0.0",
-        "postcss-modules-local-by-default": "^4.0.0",
-        "postcss-modules-scope": "^3.0.0",
-        "postcss-modules-values": "^4.0.0",
-        "string-hash": "^1.1.1"
-      }
-    },
-    "postcss-modules-extract-imports": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmmirror.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz",
-      "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==",
-      "requires": {}
-    },
-    "postcss-modules-local-by-default": {
-      "version": "4.0.4",
-      "resolved": "https://registry.npmmirror.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.4.tgz",
-      "integrity": "sha512-L4QzMnOdVwRm1Qb8m4x8jsZzKAaPAgrUF1r/hjDR2Xj7R+8Zsf97jAlSQzWtKx5YNiNGN8QxmPFIc/sh+RQl+Q==",
-      "requires": {
-        "icss-utils": "^5.0.0",
-        "postcss-selector-parser": "^6.0.2",
-        "postcss-value-parser": "^4.1.0"
-      }
-    },
-    "postcss-modules-scope": {
-      "version": "3.1.1",
-      "resolved": "https://registry.npmmirror.com/postcss-modules-scope/-/postcss-modules-scope-3.1.1.tgz",
-      "integrity": "sha512-uZgqzdTleelWjzJY+Fhti6F3C9iF1JR/dODLs/JDefozYcKTBCdD8BIl6nNPbTbcLnGrk56hzwZC2DaGNvYjzA==",
-      "requires": {
-        "postcss-selector-parser": "^6.0.4"
-      }
-    },
-    "postcss-modules-values": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmmirror.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz",
-      "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==",
-      "requires": {
-        "icss-utils": "^5.0.0"
-      }
-    },
-    "postcss-selector-parser": {
-      "version": "6.0.15",
-      "resolved": "https://registry.npmmirror.com/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz",
-      "integrity": "sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==",
-      "requires": {
-        "cssesc": "^3.0.0",
-        "util-deprecate": "^1.0.2"
-      }
-    },
-    "postcss-value-parser": {
-      "version": "4.2.0",
-      "resolved": "https://registry.npmmirror.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
-      "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ=="
-    },
-    "prelude-ls": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmmirror.com/prelude-ls/-/prelude-ls-1.2.1.tgz",
-      "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g=="
-    },
-    "prettier": {
-      "version": "3.2.5",
-      "resolved": "https://registry.npmmirror.com/prettier/-/prettier-3.2.5.tgz",
-      "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A=="
-    },
-    "prettier-linter-helpers": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmmirror.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz",
-      "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==",
-      "requires": {
-        "fast-diff": "^1.1.2"
-      }
-    },
-    "pretty-format": {
-      "version": "27.5.1",
-      "resolved": "https://registry.npmmirror.com/pretty-format/-/pretty-format-27.5.1.tgz",
-      "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "ansi-regex": "^5.0.1",
-        "ansi-styles": "^5.0.0",
-        "react-is": "^17.0.1"
-      },
-      "dependencies": {
-        "ansi-styles": {
-          "version": "5.2.0",
-          "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-5.2.0.tgz",
-          "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
-          "dev": true,
-          "peer": true
-        }
-      }
-    },
-    "process": {
-      "version": "0.11.10",
-      "resolved": "https://registry.npmmirror.com/process/-/process-0.11.10.tgz",
-      "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A=="
-    },
-    "prompts": {
-      "version": "2.4.2",
-      "resolved": "https://registry.npmmirror.com/prompts/-/prompts-2.4.2.tgz",
-      "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "kleur": "^3.0.3",
-        "sisteransi": "^1.0.5"
-      }
-    },
-    "proxy-addr": {
-      "version": "2.0.7",
-      "resolved": "https://registry.npmmirror.com/proxy-addr/-/proxy-addr-2.0.7.tgz",
-      "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
-      "dev": true,
-      "requires": {
-        "forwarded": "0.2.0",
-        "ipaddr.js": "1.9.1"
-      }
-    },
-    "psl": {
-      "version": "1.9.0",
-      "resolved": "https://registry.npmmirror.com/psl/-/psl-1.9.0.tgz",
-      "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==",
-      "dev": true,
-      "peer": true
-    },
-    "punycode": {
-      "version": "2.3.1",
-      "resolved": "https://registry.npmmirror.com/punycode/-/punycode-2.3.1.tgz",
-      "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg=="
-    },
-    "qrcode-reader": {
-      "version": "1.0.4",
-      "resolved": "https://registry.npmmirror.com/qrcode-reader/-/qrcode-reader-1.0.4.tgz",
-      "integrity": "sha512-rRjALGNh9zVqvweg1j5OKIQKNsw3bLC+7qwlnead5K/9cb1cEIAGkwikt/09U0K+2IDWGD9CC6SP7tHAjUeqvQ=="
-    },
-    "qrcode-terminal": {
-      "version": "0.12.0",
-      "resolved": "https://registry.npmmirror.com/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz",
-      "integrity": "sha512-EXtzRZmC+YGmGlDFbXKxQiMZNwCLEO6BANKXG4iCtSIM0yqc/pappSx3RIKr4r0uh5JsBckOXeKrB3Iz7mdQpQ=="
-    },
-    "qs": {
-      "version": "6.11.2",
-      "resolved": "https://registry.npmmirror.com/qs/-/qs-6.11.2.tgz",
-      "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==",
-      "requires": {
-        "side-channel": "^1.0.4"
-      }
-    },
-    "querystringify": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npmmirror.com/querystringify/-/querystringify-2.2.0.tgz",
-      "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==",
-      "dev": true,
-      "peer": true
-    },
-    "queue-microtask": {
-      "version": "1.2.3",
-      "resolved": "https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz",
-      "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A=="
-    },
-    "randombytes": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmmirror.com/randombytes/-/randombytes-2.1.0.tgz",
-      "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
-      "peer": true,
-      "requires": {
-        "safe-buffer": "^5.1.0"
-      }
-    },
-    "range-parser": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmmirror.com/range-parser/-/range-parser-1.2.1.tgz",
-      "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
-      "dev": true
-    },
-    "raw-body": {
-      "version": "2.5.1",
-      "resolved": "https://registry.npmmirror.com/raw-body/-/raw-body-2.5.1.tgz",
-      "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==",
-      "dev": true,
-      "requires": {
-        "bytes": "3.1.2",
-        "http-errors": "2.0.0",
-        "iconv-lite": "0.4.24",
-        "unpipe": "1.0.0"
-      }
-    },
-    "react-is": {
-      "version": "17.0.2",
-      "resolved": "https://registry.npmmirror.com/react-is/-/react-is-17.0.2.tgz",
-      "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==",
-      "dev": true,
-      "peer": true
-    },
-    "read-cache": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmmirror.com/read-cache/-/read-cache-1.0.0.tgz",
-      "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==",
-      "requires": {
-        "pify": "^2.3.0"
-      }
-    },
-    "readdirp": {
-      "version": "3.6.0",
-      "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz",
-      "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
-      "requires": {
-        "picomatch": "^2.2.1"
-      }
-    },
-    "regenerate": {
-      "version": "1.4.2",
-      "resolved": "https://registry.npmmirror.com/regenerate/-/regenerate-1.4.2.tgz",
-      "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==",
-      "dev": true
-    },
-    "regenerate-unicode-properties": {
-      "version": "10.1.1",
-      "resolved": "https://registry.npmmirror.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz",
-      "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==",
-      "dev": true,
-      "requires": {
-        "regenerate": "^1.4.2"
-      }
-    },
-    "regenerator-runtime": {
-      "version": "0.13.11",
-      "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
-      "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg=="
-    },
-    "regenerator-transform": {
-      "version": "0.15.2",
-      "resolved": "https://registry.npmmirror.com/regenerator-transform/-/regenerator-transform-0.15.2.tgz",
-      "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==",
-      "dev": true,
-      "requires": {
-        "@babel/runtime": "^7.8.4"
-      }
-    },
-    "regexp.prototype.flags": {
-      "version": "1.5.1",
-      "resolved": "https://registry.npmmirror.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz",
-      "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==",
-      "dev": true,
-      "requires": {
-        "call-bind": "^1.0.2",
-        "define-properties": "^1.2.0",
-        "set-function-name": "^2.0.0"
-      }
-    },
-    "regexpu-core": {
-      "version": "5.3.2",
-      "resolved": "https://registry.npmmirror.com/regexpu-core/-/regexpu-core-5.3.2.tgz",
-      "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==",
-      "dev": true,
-      "requires": {
-        "@babel/regjsgen": "^0.8.0",
-        "regenerate": "^1.4.2",
-        "regenerate-unicode-properties": "^10.1.0",
-        "regjsparser": "^0.9.1",
-        "unicode-match-property-ecmascript": "^2.0.0",
-        "unicode-match-property-value-ecmascript": "^2.1.0"
-      }
-    },
-    "regjsparser": {
-      "version": "0.9.1",
-      "resolved": "https://registry.npmmirror.com/regjsparser/-/regjsparser-0.9.1.tgz",
-      "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==",
-      "dev": true,
-      "requires": {
-        "jsesc": "~0.5.0"
-      },
-      "dependencies": {
-        "jsesc": {
-          "version": "0.5.0",
-          "resolved": "https://registry.npmmirror.com/jsesc/-/jsesc-0.5.0.tgz",
-          "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==",
-          "dev": true
-        }
-      }
-    },
-    "require-directory": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmmirror.com/require-directory/-/require-directory-2.1.1.tgz",
-      "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
-      "dev": true,
-      "peer": true
-    },
-    "requires-port": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmmirror.com/requires-port/-/requires-port-1.0.0.tgz",
-      "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==",
-      "dev": true,
-      "peer": true
-    },
-    "resolve": {
-      "version": "1.22.8",
-      "resolved": "https://registry.npmmirror.com/resolve/-/resolve-1.22.8.tgz",
-      "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
-      "requires": {
-        "is-core-module": "^2.13.0",
-        "path-parse": "^1.0.7",
-        "supports-preserve-symlinks-flag": "^1.0.0"
-      }
-    },
-    "resolve-cwd": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmmirror.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz",
-      "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "resolve-from": "^5.0.0"
-      },
-      "dependencies": {
-        "resolve-from": {
-          "version": "5.0.0",
-          "resolved": "https://registry.npmmirror.com/resolve-from/-/resolve-from-5.0.0.tgz",
-          "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
-          "dev": true,
-          "peer": true
-        }
-      }
-    },
-    "resolve-from": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmmirror.com/resolve-from/-/resolve-from-4.0.0.tgz",
-      "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g=="
-    },
-    "resolve-pkg-maps": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmmirror.com/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz",
-      "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==",
-      "dev": true
-    },
-    "resolve.exports": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmmirror.com/resolve.exports/-/resolve.exports-1.1.1.tgz",
-      "integrity": "sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ==",
-      "dev": true,
-      "peer": true
-    },
-    "reusify": {
-      "version": "1.0.4",
-      "resolved": "https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz",
-      "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw=="
-    },
-    "rimraf": {
-      "version": "3.0.2",
-      "resolved": "https://registry.npmmirror.com/rimraf/-/rimraf-3.0.2.tgz",
-      "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
-      "requires": {
-        "glob": "^7.1.3"
-      }
-    },
-    "rollup": {
-      "version": "3.29.4",
-      "resolved": "https://registry.npmmirror.com/rollup/-/rollup-3.29.4.tgz",
-      "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==",
-      "requires": {
-        "fsevents": "~2.3.2"
-      }
-    },
-    "run-parallel": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz",
-      "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
-      "requires": {
-        "queue-microtask": "^1.2.2"
-      }
-    },
-    "safe-area-insets": {
-      "version": "1.4.1",
-      "resolved": "https://registry.npmmirror.com/safe-area-insets/-/safe-area-insets-1.4.1.tgz",
-      "integrity": "sha512-r/nRWTjFGhhm3w1Z6Kd/jY11srN+lHt2mNl1E/emQGW8ic7n3Avu4noibklfSM+Y34peNphHD/BSZecav0sXYQ=="
-    },
-    "safe-array-concat": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmmirror.com/safe-array-concat/-/safe-array-concat-1.1.0.tgz",
-      "integrity": "sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg==",
-      "dev": true,
-      "requires": {
-        "call-bind": "^1.0.5",
-        "get-intrinsic": "^1.2.2",
-        "has-symbols": "^1.0.3",
-        "isarray": "^2.0.5"
-      }
-    },
-    "safe-buffer": {
-      "version": "5.2.1",
-      "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz",
-      "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
-    },
-    "safe-regex-test": {
-      "version": "1.0.3",
-      "resolved": "https://registry.npmmirror.com/safe-regex-test/-/safe-regex-test-1.0.3.tgz",
-      "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==",
-      "dev": true,
-      "requires": {
-        "call-bind": "^1.0.6",
-        "es-errors": "^1.3.0",
-        "is-regex": "^1.1.4"
-      }
-    },
-    "safer-buffer": {
-      "version": "2.1.2",
-      "resolved": "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz",
-      "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
-      "dev": true
-    },
-    "sass": {
-      "version": "1.70.0",
-      "resolved": "https://registry.npmmirror.com/sass/-/sass-1.70.0.tgz",
-      "integrity": "sha512-uUxNQ3zAHeAx5nRFskBnrWzDUJrrvpCPD5FNAoRvTi0WwremlheES3tg+56PaVtCs5QDRX5CBLxxKMDJMEa1WQ==",
-      "requires": {
-        "chokidar": ">=3.0.0 <4.0.0",
-        "immutable": "^4.0.0",
-        "source-map-js": ">=0.6.2 <2.0.0"
-      }
-    },
-    "sass-loader": {
-      "version": "13.3.3",
-      "resolved": "https://registry.npmmirror.com/sass-loader/-/sass-loader-13.3.3.tgz",
-      "integrity": "sha512-mt5YN2F1MOZr3d/wBRcZxeFgwgkH44wVc2zohO2YF6JiOMkiXe4BYRZpSu2sO1g71mo/j16txzUhsKZlqjVGzA==",
-      "requires": {
-        "neo-async": "^2.6.2"
-      }
-    },
-    "sax": {
-      "version": "1.3.0",
-      "resolved": "https://registry.npmmirror.com/sax/-/sax-1.3.0.tgz",
-      "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA=="
-    },
-    "saxes": {
-      "version": "5.0.1",
-      "resolved": "https://registry.npmmirror.com/saxes/-/saxes-5.0.1.tgz",
-      "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "xmlchars": "^2.2.0"
-      }
-    },
-    "schema-utils": {
-      "version": "3.3.0",
-      "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-3.3.0.tgz",
-      "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
-      "peer": true,
-      "requires": {
-        "@types/json-schema": "^7.0.8",
-        "ajv": "^6.12.5",
-        "ajv-keywords": "^3.5.2"
-      }
-    },
-    "semver": {
-      "version": "6.3.1",
-      "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz",
-      "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="
-    },
-    "send": {
-      "version": "0.18.0",
-      "resolved": "https://registry.npmmirror.com/send/-/send-0.18.0.tgz",
-      "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
-      "dev": true,
-      "requires": {
-        "debug": "2.6.9",
-        "depd": "2.0.0",
-        "destroy": "1.2.0",
-        "encodeurl": "~1.0.2",
-        "escape-html": "~1.0.3",
-        "etag": "~1.8.1",
-        "fresh": "0.5.2",
-        "http-errors": "2.0.0",
-        "mime": "1.6.0",
-        "ms": "2.1.3",
-        "on-finished": "2.4.1",
-        "range-parser": "~1.2.1",
-        "statuses": "2.0.1"
-      },
-      "dependencies": {
-        "debug": {
-          "version": "2.6.9",
-          "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz",
-          "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
-          "dev": true,
-          "requires": {
-            "ms": "2.0.0"
-          },
-          "dependencies": {
-            "ms": {
-              "version": "2.0.0",
-              "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz",
-              "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
-              "dev": true
-            }
-          }
-        },
-        "mime": {
-          "version": "1.6.0",
-          "resolved": "https://registry.npmmirror.com/mime/-/mime-1.6.0.tgz",
-          "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
-          "dev": true
-        },
-        "ms": {
-          "version": "2.1.3",
-          "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz",
-          "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
-          "dev": true
-        }
-      }
-    },
-    "serialize-javascript": {
-      "version": "6.0.2",
-      "resolved": "https://registry.npmmirror.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz",
-      "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==",
-      "peer": true,
-      "requires": {
-        "randombytes": "^2.1.0"
-      }
-    },
-    "serve-static": {
-      "version": "1.15.0",
-      "resolved": "https://registry.npmmirror.com/serve-static/-/serve-static-1.15.0.tgz",
-      "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==",
-      "dev": true,
-      "requires": {
-        "encodeurl": "~1.0.2",
-        "escape-html": "~1.0.3",
-        "parseurl": "~1.3.3",
-        "send": "0.18.0"
-      }
-    },
-    "set-function-length": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmmirror.com/set-function-length/-/set-function-length-1.2.1.tgz",
-      "integrity": "sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==",
-      "requires": {
-        "define-data-property": "^1.1.2",
-        "es-errors": "^1.3.0",
-        "function-bind": "^1.1.2",
-        "get-intrinsic": "^1.2.3",
-        "gopd": "^1.0.1",
-        "has-property-descriptors": "^1.0.1"
-      }
-    },
-    "set-function-name": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmmirror.com/set-function-name/-/set-function-name-2.0.1.tgz",
-      "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==",
-      "dev": true,
-      "requires": {
-        "define-data-property": "^1.0.1",
-        "functions-have-names": "^1.2.3",
-        "has-property-descriptors": "^1.0.0"
-      }
-    },
-    "setprototypeof": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmmirror.com/setprototypeof/-/setprototypeof-1.2.0.tgz",
-      "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==",
-      "dev": true
-    },
-    "shebang-command": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz",
-      "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
-      "requires": {
-        "shebang-regex": "^3.0.0"
-      }
-    },
-    "shebang-regex": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmmirror.com/shebang-regex/-/shebang-regex-3.0.0.tgz",
-      "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="
-    },
-    "side-channel": {
-      "version": "1.0.5",
-      "resolved": "https://registry.npmmirror.com/side-channel/-/side-channel-1.0.5.tgz",
-      "integrity": "sha512-QcgiIWV4WV7qWExbN5llt6frQB/lBven9pqliLXfGPB+K9ZYXxDozp0wLkHS24kWCm+6YXH/f0HhnObZnZOBnQ==",
-      "requires": {
-        "call-bind": "^1.0.6",
-        "es-errors": "^1.3.0",
-        "get-intrinsic": "^1.2.4",
-        "object-inspect": "^1.13.1"
-      }
-    },
-    "signal-exit": {
-      "version": "3.0.7",
-      "resolved": "https://registry.npmmirror.com/signal-exit/-/signal-exit-3.0.7.tgz",
-      "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
-      "dev": true
-    },
-    "sisteransi": {
-      "version": "1.0.5",
-      "resolved": "https://registry.npmmirror.com/sisteransi/-/sisteransi-1.0.5.tgz",
-      "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==",
-      "dev": true,
-      "peer": true
-    },
-    "slash": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmmirror.com/slash/-/slash-3.0.0.tgz",
-      "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
-      "dev": true
-    },
-    "source-map": {
-      "version": "0.6.1",
-      "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz",
-      "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
-    },
-    "source-map-js": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz",
-      "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw=="
-    },
-    "source-map-support": {
-      "version": "0.5.21",
-      "resolved": "https://registry.npmmirror.com/source-map-support/-/source-map-support-0.5.21.tgz",
-      "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
-      "requires": {
-        "buffer-from": "^1.0.0",
-        "source-map": "^0.6.0"
-      }
-    },
-    "sourcemap-codec": {
-      "version": "1.4.8",
-      "resolved": "https://registry.npmmirror.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz",
-      "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA=="
-    },
-    "sprintf-js": {
-      "version": "1.0.3",
-      "resolved": "https://registry.npmmirror.com/sprintf-js/-/sprintf-js-1.0.3.tgz",
-      "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
-      "dev": true,
-      "peer": true
-    },
-    "stack-utils": {
-      "version": "2.0.6",
-      "resolved": "https://registry.npmmirror.com/stack-utils/-/stack-utils-2.0.6.tgz",
-      "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "escape-string-regexp": "^2.0.0"
-      },
-      "dependencies": {
-        "escape-string-regexp": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
-          "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==",
-          "dev": true,
-          "peer": true
-        }
-      }
-    },
-    "statuses": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmmirror.com/statuses/-/statuses-2.0.1.tgz",
-      "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
-      "dev": true
-    },
-    "string-hash": {
-      "version": "1.1.3",
-      "resolved": "https://registry.npmmirror.com/string-hash/-/string-hash-1.1.3.tgz",
-      "integrity": "sha512-kJUvRUFK49aub+a7T1nNE66EJbZBMnBgoC1UbCZ5n6bsZKBRga4KgBRTMn/pFkeCZSYtNeSyMxPDM0AXWELk2A=="
-    },
-    "string-length": {
-      "version": "4.0.2",
-      "resolved": "https://registry.npmmirror.com/string-length/-/string-length-4.0.2.tgz",
-      "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "char-regex": "^1.0.2",
-        "strip-ansi": "^6.0.0"
-      }
-    },
-    "string-width": {
-      "version": "4.2.3",
-      "resolved": "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz",
-      "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "emoji-regex": "^8.0.0",
-        "is-fullwidth-code-point": "^3.0.0",
-        "strip-ansi": "^6.0.1"
-      }
-    },
-    "string.prototype.trim": {
-      "version": "1.2.8",
-      "resolved": "https://registry.npmmirror.com/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz",
-      "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==",
-      "dev": true,
-      "requires": {
-        "call-bind": "^1.0.2",
-        "define-properties": "^1.2.0",
-        "es-abstract": "^1.22.1"
-      }
-    },
-    "string.prototype.trimend": {
-      "version": "1.0.7",
-      "resolved": "https://registry.npmmirror.com/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz",
-      "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==",
-      "dev": true,
-      "requires": {
-        "call-bind": "^1.0.2",
-        "define-properties": "^1.2.0",
-        "es-abstract": "^1.22.1"
-      }
-    },
-    "string.prototype.trimstart": {
-      "version": "1.0.7",
-      "resolved": "https://registry.npmmirror.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz",
-      "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==",
-      "dev": true,
-      "requires": {
-        "call-bind": "^1.0.2",
-        "define-properties": "^1.2.0",
-        "es-abstract": "^1.22.1"
-      }
-    },
-    "strip-ansi": {
-      "version": "6.0.1",
-      "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz",
-      "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
-      "requires": {
-        "ansi-regex": "^5.0.1"
-      }
-    },
-    "strip-bom": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmmirror.com/strip-bom/-/strip-bom-4.0.0.tgz",
-      "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==",
-      "dev": true,
-      "peer": true
-    },
-    "strip-final-newline": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmmirror.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
-      "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
-      "dev": true
-    },
-    "strip-json-comments": {
-      "version": "3.1.1",
-      "resolved": "https://registry.npmmirror.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
-      "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig=="
-    },
-    "supports-color": {
-      "version": "5.5.0",
-      "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz",
-      "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
-      "requires": {
-        "has-flag": "^3.0.0"
-      }
-    },
-    "supports-hyperlinks": {
-      "version": "2.3.0",
-      "resolved": "https://registry.npmmirror.com/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz",
-      "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "has-flag": "^4.0.0",
-        "supports-color": "^7.0.0"
-      },
-      "dependencies": {
-        "has-flag": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
-          "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
-          "dev": true,
-          "peer": true
-        },
-        "supports-color": {
-          "version": "7.2.0",
-          "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
-          "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "has-flag": "^4.0.0"
-          }
-        }
-      }
-    },
-    "supports-preserve-symlinks-flag": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
-      "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w=="
-    },
-    "svg-tags": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmmirror.com/svg-tags/-/svg-tags-1.0.0.tgz",
-      "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==",
-      "dev": true
-    },
-    "symbol-tree": {
-      "version": "3.2.4",
-      "resolved": "https://registry.npmmirror.com/symbol-tree/-/symbol-tree-3.2.4.tgz",
-      "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==",
-      "dev": true,
-      "peer": true
-    },
-    "synckit": {
-      "version": "0.8.8",
-      "resolved": "https://registry.npmmirror.com/synckit/-/synckit-0.8.8.tgz",
-      "integrity": "sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==",
-      "requires": {
-        "@pkgr/core": "^0.1.0",
-        "tslib": "^2.6.2"
-      }
-    },
-    "systemjs": {
-      "version": "6.14.3",
-      "resolved": "https://registry.npmmirror.com/systemjs/-/systemjs-6.14.3.tgz",
-      "integrity": "sha512-hQv45irdhXudAOr8r6SVSpJSGtogdGZUbJBRKCE5nsIS7tsxxvnIHqT4IOPWj+P+HcSzeWzHlGCGpmhPDIKe+w==",
-      "dev": true
-    },
-    "tapable": {
-      "version": "2.2.1",
-      "resolved": "https://registry.npmmirror.com/tapable/-/tapable-2.2.1.tgz",
-      "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ=="
-    },
-    "terminal-link": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmmirror.com/terminal-link/-/terminal-link-2.1.1.tgz",
-      "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "ansi-escapes": "^4.2.1",
-        "supports-hyperlinks": "^2.0.0"
-      }
-    },
-    "terser": {
-      "version": "5.27.0",
-      "resolved": "https://registry.npmmirror.com/terser/-/terser-5.27.0.tgz",
-      "integrity": "sha512-bi1HRwVRskAjheeYl291n3JC4GgO/Ty4z1nVs5AAsmonJulGxpSektecnNedrwK9C7vpvVtcX3cw00VSLt7U2A==",
-      "requires": {
-        "@jridgewell/source-map": "^0.3.3",
-        "acorn": "^8.8.2",
-        "commander": "^2.20.0",
-        "source-map-support": "~0.5.20"
-      }
-    },
-    "terser-webpack-plugin": {
-      "version": "5.3.10",
-      "resolved": "https://registry.npmmirror.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz",
-      "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==",
-      "peer": true,
-      "requires": {
-        "@jridgewell/trace-mapping": "^0.3.20",
-        "jest-worker": "^27.4.5",
-        "schema-utils": "^3.1.1",
-        "serialize-javascript": "^6.0.1",
-        "terser": "^5.26.0"
-      }
-    },
-    "test-exclude": {
-      "version": "6.0.0",
-      "resolved": "https://registry.npmmirror.com/test-exclude/-/test-exclude-6.0.0.tgz",
-      "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "@istanbuljs/schema": "^0.1.2",
-        "glob": "^7.1.4",
-        "minimatch": "^3.0.4"
-      },
-      "dependencies": {
-        "brace-expansion": {
-          "version": "1.1.11",
-          "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz",
-          "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "balanced-match": "^1.0.0",
-            "concat-map": "0.0.1"
-          }
-        },
-        "minimatch": {
-          "version": "3.1.2",
-          "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz",
-          "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "brace-expansion": "^1.1.7"
-          }
-        }
-      }
-    },
-    "text-table": {
-      "version": "0.2.0",
-      "resolved": "https://registry.npmmirror.com/text-table/-/text-table-0.2.0.tgz",
-      "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw=="
-    },
-    "throat": {
-      "version": "6.0.2",
-      "resolved": "https://registry.npmmirror.com/throat/-/throat-6.0.2.tgz",
-      "integrity": "sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ==",
-      "dev": true,
-      "peer": true
-    },
-    "timm": {
-      "version": "1.7.1",
-      "resolved": "https://registry.npmmirror.com/timm/-/timm-1.7.1.tgz",
-      "integrity": "sha512-IjZc9KIotudix8bMaBW6QvMuq64BrJWFs1+4V0lXwWGQZwH+LnX87doAYhem4caOEusRP9/g6jVDQmZ8XOk1nw=="
-    },
-    "tinycolor2": {
-      "version": "1.6.0",
-      "resolved": "https://registry.npmmirror.com/tinycolor2/-/tinycolor2-1.6.0.tgz",
-      "integrity": "sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw=="
-    },
-    "tmpl": {
-      "version": "1.0.5",
-      "resolved": "https://registry.npmmirror.com/tmpl/-/tmpl-1.0.5.tgz",
-      "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==",
-      "dev": true,
-      "peer": true
-    },
-    "to-fast-properties": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmmirror.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
-      "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog=="
-    },
-    "to-regex-range": {
-      "version": "5.0.1",
-      "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz",
-      "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
-      "requires": {
-        "is-number": "^7.0.0"
-      }
-    },
-    "toidentifier": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmmirror.com/toidentifier/-/toidentifier-1.0.1.tgz",
-      "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
-      "dev": true
-    },
-    "tough-cookie": {
-      "version": "4.1.3",
-      "resolved": "https://registry.npmmirror.com/tough-cookie/-/tough-cookie-4.1.3.tgz",
-      "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "psl": "^1.1.33",
-        "punycode": "^2.1.1",
-        "universalify": "^0.2.0",
-        "url-parse": "^1.5.3"
-      },
-      "dependencies": {
-        "universalify": {
-          "version": "0.2.0",
-          "resolved": "https://registry.npmmirror.com/universalify/-/universalify-0.2.0.tgz",
-          "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==",
-          "dev": true,
-          "peer": true
-        }
-      }
-    },
-    "tr46": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmmirror.com/tr46/-/tr46-2.1.0.tgz",
-      "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "punycode": "^2.1.1"
-      }
-    },
-    "ts-api-utils": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmmirror.com/ts-api-utils/-/ts-api-utils-1.2.1.tgz",
-      "integrity": "sha512-RIYA36cJn2WiH9Hy77hdF9r7oEwxAtB/TS9/S4Qd90Ap4z5FSiin5zEiTL44OII1Y3IIlEvxwxFUVgrHSZ/UpA==",
-      "dev": true,
-      "requires": {}
-    },
-    "tsconfig-paths": {
-      "version": "3.15.0",
-      "resolved": "https://registry.npmmirror.com/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz",
-      "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==",
-      "dev": true,
-      "requires": {
-        "@types/json5": "^0.0.29",
-        "json5": "^1.0.2",
-        "minimist": "^1.2.6",
-        "strip-bom": "^3.0.0"
-      },
-      "dependencies": {
-        "json5": {
-          "version": "1.0.2",
-          "resolved": "https://registry.npmmirror.com/json5/-/json5-1.0.2.tgz",
-          "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
-          "dev": true,
-          "requires": {
-            "minimist": "^1.2.0"
-          }
-        },
-        "strip-bom": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmmirror.com/strip-bom/-/strip-bom-3.0.0.tgz",
-          "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==",
-          "dev": true
-        }
-      }
-    },
-    "tslib": {
-      "version": "2.6.2",
-      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.6.2.tgz",
-      "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q=="
-    },
-    "type-check": {
-      "version": "0.4.0",
-      "resolved": "https://registry.npmmirror.com/type-check/-/type-check-0.4.0.tgz",
-      "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
-      "requires": {
-        "prelude-ls": "^1.2.1"
-      }
-    },
-    "type-detect": {
-      "version": "4.0.8",
-      "resolved": "https://registry.npmmirror.com/type-detect/-/type-detect-4.0.8.tgz",
-      "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
-      "dev": true,
-      "peer": true
-    },
-    "type-fest": {
-      "version": "0.21.3",
-      "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-0.21.3.tgz",
-      "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
-      "dev": true,
-      "peer": true
-    },
-    "type-is": {
-      "version": "1.6.18",
-      "resolved": "https://registry.npmmirror.com/type-is/-/type-is-1.6.18.tgz",
-      "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
-      "dev": true,
-      "requires": {
-        "media-typer": "0.3.0",
-        "mime-types": "~2.1.24"
-      }
-    },
-    "typed-array-buffer": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmmirror.com/typed-array-buffer/-/typed-array-buffer-1.0.1.tgz",
-      "integrity": "sha512-RSqu1UEuSlrBhHTWC8O9FnPjOduNs4M7rJ4pRKoEjtx1zUNOPN2sSXHLDX+Y2WPbHIxbvg4JFo2DNAEfPIKWoQ==",
-      "dev": true,
-      "requires": {
-        "call-bind": "^1.0.6",
-        "es-errors": "^1.3.0",
-        "is-typed-array": "^1.1.13"
-      }
-    },
-    "typed-array-byte-length": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmmirror.com/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz",
-      "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==",
-      "dev": true,
-      "requires": {
-        "call-bind": "^1.0.2",
-        "for-each": "^0.3.3",
-        "has-proto": "^1.0.1",
-        "is-typed-array": "^1.1.10"
-      }
-    },
-    "typed-array-byte-offset": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmmirror.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz",
-      "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==",
-      "dev": true,
-      "requires": {
-        "available-typed-arrays": "^1.0.5",
-        "call-bind": "^1.0.2",
-        "for-each": "^0.3.3",
-        "has-proto": "^1.0.1",
-        "is-typed-array": "^1.1.10"
-      }
-    },
-    "typed-array-length": {
-      "version": "1.0.4",
-      "resolved": "https://registry.npmmirror.com/typed-array-length/-/typed-array-length-1.0.4.tgz",
-      "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==",
-      "dev": true,
-      "requires": {
-        "call-bind": "^1.0.2",
-        "for-each": "^0.3.3",
-        "is-typed-array": "^1.1.9"
-      }
-    },
-    "typedarray-to-buffer": {
-      "version": "3.1.5",
-      "resolved": "https://registry.npmmirror.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz",
-      "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "is-typedarray": "^1.0.0"
-      }
-    },
-    "typescript": {
-      "version": "5.3.3",
-      "resolved": "https://registry.npmmirror.com/typescript/-/typescript-5.3.3.tgz",
-      "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==",
-      "devOptional": true
-    },
-    "unbox-primitive": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmmirror.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz",
-      "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==",
-      "dev": true,
-      "requires": {
-        "call-bind": "^1.0.2",
-        "has-bigints": "^1.0.2",
-        "has-symbols": "^1.0.3",
-        "which-boxed-primitive": "^1.0.2"
-      }
-    },
-    "undici-types": {
-      "version": "5.26.5",
-      "resolved": "https://registry.npmmirror.com/undici-types/-/undici-types-5.26.5.tgz",
-      "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA=="
-    },
-    "unicode-canonical-property-names-ecmascript": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmmirror.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz",
-      "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==",
-      "dev": true
-    },
-    "unicode-match-property-ecmascript": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmmirror.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz",
-      "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==",
-      "dev": true,
-      "requires": {
-        "unicode-canonical-property-names-ecmascript": "^2.0.0",
-        "unicode-property-aliases-ecmascript": "^2.0.0"
-      }
-    },
-    "unicode-match-property-value-ecmascript": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmmirror.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz",
-      "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==",
-      "dev": true
-    },
-    "unicode-property-aliases-ecmascript": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmmirror.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz",
-      "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==",
-      "dev": true
-    },
-    "universalify": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmmirror.com/universalify/-/universalify-2.0.1.tgz",
-      "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw=="
-    },
-    "unpipe": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmmirror.com/unpipe/-/unpipe-1.0.0.tgz",
-      "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
-      "dev": true
-    },
-    "unquote": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmmirror.com/unquote/-/unquote-1.1.1.tgz",
-      "integrity": "sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg=="
-    },
-    "update-browserslist-db": {
-      "version": "1.0.13",
-      "resolved": "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz",
-      "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==",
-      "requires": {
-        "escalade": "^3.1.1",
-        "picocolors": "^1.0.0"
-      }
-    },
-    "uri-js": {
-      "version": "4.4.1",
-      "resolved": "https://registry.npmmirror.com/uri-js/-/uri-js-4.4.1.tgz",
-      "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
-      "requires": {
-        "punycode": "^2.1.0"
-      }
-    },
-    "url-parse": {
-      "version": "1.5.10",
-      "resolved": "https://registry.npmmirror.com/url-parse/-/url-parse-1.5.10.tgz",
-      "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "querystringify": "^2.1.1",
-        "requires-port": "^1.0.0"
-      }
-    },
-    "utif": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmmirror.com/utif/-/utif-2.0.1.tgz",
-      "integrity": "sha512-Z/S1fNKCicQTf375lIP9G8Sa1H/phcysstNrrSdZKj1f9g58J4NMgb5IgiEZN9/nLMPDwF0W7hdOe9Qq2IYoLg==",
-      "requires": {
-        "pako": "^1.0.5"
-      }
-    },
-    "util-deprecate": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz",
-      "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
-    },
-    "utils-merge": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmmirror.com/utils-merge/-/utils-merge-1.0.1.tgz",
-      "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
-      "dev": true
-    },
-    "v8-to-istanbul": {
-      "version": "8.1.1",
-      "resolved": "https://registry.npmmirror.com/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz",
-      "integrity": "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "@types/istanbul-lib-coverage": "^2.0.1",
-        "convert-source-map": "^1.6.0",
-        "source-map": "^0.7.3"
-      },
-      "dependencies": {
-        "convert-source-map": {
-          "version": "1.9.0",
-          "resolved": "https://registry.npmmirror.com/convert-source-map/-/convert-source-map-1.9.0.tgz",
-          "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==",
-          "dev": true,
-          "peer": true
-        },
-        "source-map": {
-          "version": "0.7.4",
-          "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.7.4.tgz",
-          "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==",
-          "dev": true,
-          "peer": true
-        }
-      }
-    },
-    "vary": {
-      "version": "1.1.2",
-      "resolved": "https://registry.npmmirror.com/vary/-/vary-1.1.2.tgz",
-      "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
-      "dev": true
-    },
-    "vite": {
-      "version": "4.1.5",
-      "resolved": "https://registry.npmmirror.com/vite/-/vite-4.1.5.tgz",
-      "integrity": "sha512-zJ0RiVkf61kpd7O+VtU6r766xgnTaIknP/lR6sJTZq3HtVJ3HGnTo5DaJhTUtYoTyS/CQwZ6yEVdc/lrmQT7dQ==",
-      "requires": {
-        "esbuild": "^0.16.14",
-        "fsevents": "~2.3.2",
-        "postcss": "^8.4.21",
-        "resolve": "^1.22.1",
-        "rollup": "^3.10.0"
-      },
-      "dependencies": {
-        "@esbuild/win32-x64": {
-          "version": "0.16.17",
-          "resolved": "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.16.17.tgz",
-          "integrity": "sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q==",
-          "optional": true
-        },
-        "esbuild": {
-          "version": "0.16.17",
-          "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.16.17.tgz",
-          "integrity": "sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg==",
-          "requires": {
-            "@esbuild/android-arm": "0.16.17",
-            "@esbuild/android-arm64": "0.16.17",
-            "@esbuild/android-x64": "0.16.17",
-            "@esbuild/darwin-arm64": "0.16.17",
-            "@esbuild/darwin-x64": "0.16.17",
-            "@esbuild/freebsd-arm64": "0.16.17",
-            "@esbuild/freebsd-x64": "0.16.17",
-            "@esbuild/linux-arm": "0.16.17",
-            "@esbuild/linux-arm64": "0.16.17",
-            "@esbuild/linux-ia32": "0.16.17",
-            "@esbuild/linux-loong64": "0.16.17",
-            "@esbuild/linux-mips64el": "0.16.17",
-            "@esbuild/linux-ppc64": "0.16.17",
-            "@esbuild/linux-riscv64": "0.16.17",
-            "@esbuild/linux-s390x": "0.16.17",
-            "@esbuild/linux-x64": "0.16.17",
-            "@esbuild/netbsd-x64": "0.16.17",
-            "@esbuild/openbsd-x64": "0.16.17",
-            "@esbuild/sunos-x64": "0.16.17",
-            "@esbuild/win32-arm64": "0.16.17",
-            "@esbuild/win32-ia32": "0.16.17",
-            "@esbuild/win32-x64": "0.16.17"
-          }
-        }
-      }
-    },
-    "vue": {
-      "version": "3.4.18",
-      "resolved": "https://registry.npmmirror.com/vue/-/vue-3.4.18.tgz",
-      "integrity": "sha512-0zLRYamFRe0wF4q2L3O24KQzLyLpL64ye1RUToOgOxuWZsb/FhaNRdGmeozdtVYLz6tl94OXLaK7/WQIrVCw1A==",
-      "requires": {
-        "@vue/compiler-dom": "3.4.18",
-        "@vue/compiler-sfc": "3.4.18",
-        "@vue/runtime-dom": "3.4.18",
-        "@vue/server-renderer": "3.4.18",
-        "@vue/shared": "3.4.18"
-      },
-      "dependencies": {
-        "@vue/compiler-core": {
-          "version": "3.4.18",
-          "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.4.18.tgz",
-          "integrity": "sha512-F7YK8lMK0iv6b9/Gdk15A67wM0KKZvxDxed0RR60C1z9tIJTKta+urs4j0RTN5XqHISzI3etN3mX0uHhjmoqjQ==",
-          "requires": {
-            "@babel/parser": "^7.23.9",
-            "@vue/shared": "3.4.18",
-            "entities": "^4.5.0",
-            "estree-walker": "^2.0.2",
-            "source-map-js": "^1.0.2"
-          }
-        },
-        "@vue/compiler-dom": {
-          "version": "3.4.18",
-          "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.4.18.tgz",
-          "integrity": "sha512-24Eb8lcMfInefvQ6YlEVS18w5Q66f4+uXWVA+yb7praKbyjHRNuKVWGuinfSSjM0ZIiPi++QWukhkgznBaqpEA==",
-          "requires": {
-            "@vue/compiler-core": "3.4.18",
-            "@vue/shared": "3.4.18"
-          }
-        },
-        "@vue/compiler-sfc": {
-          "version": "3.4.18",
-          "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.4.18.tgz",
-          "integrity": "sha512-rG5tqtnzwrVpMqAQ7FHtvHaV70G6LLfJIWLYZB/jZ9m/hrnZmIQh+H3ewnC5onwe/ibljm9+ZupxeElzqCkTAw==",
-          "requires": {
-            "@babel/parser": "^7.23.9",
-            "@vue/compiler-core": "3.4.18",
-            "@vue/compiler-dom": "3.4.18",
-            "@vue/compiler-ssr": "3.4.18",
-            "@vue/shared": "3.4.18",
-            "estree-walker": "^2.0.2",
-            "magic-string": "^0.30.6",
-            "postcss": "^8.4.33",
-            "source-map-js": "^1.0.2"
-          }
-        },
-        "@vue/compiler-ssr": {
-          "version": "3.4.18",
-          "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.4.18.tgz",
-          "integrity": "sha512-hSlv20oUhPxo2UYUacHgGaxtqP0tvFo6ixxxD6JlXIkwzwoZ9eKK6PFQN4hNK/R13JlNyldwWt/fqGBKgWJ6nQ==",
-          "requires": {
-            "@vue/compiler-dom": "3.4.18",
-            "@vue/shared": "3.4.18"
-          }
-        },
-        "@vue/shared": {
-          "version": "3.4.18",
-          "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.4.18.tgz",
-          "integrity": "sha512-CxouGFxxaW5r1WbrSmWwck3No58rApXgRSBxrqgnY1K+jk20F6DrXJkHdH9n4HVT+/B6G2CAn213Uq3npWiy8Q=="
-        }
-      }
-    },
-    "vue-eslint-parser": {
-      "version": "9.4.2",
-      "resolved": "https://registry.npmmirror.com/vue-eslint-parser/-/vue-eslint-parser-9.4.2.tgz",
-      "integrity": "sha512-Ry9oiGmCAK91HrKMtCrKFWmSFWvYkpGglCeFAIqDdr9zdXmMMpJOmUJS7WWsW7fX81h6mwHmUZCQQ1E0PkSwYQ==",
-      "dev": true,
-      "requires": {
-        "debug": "^4.3.4",
-        "eslint-scope": "^7.1.1",
-        "eslint-visitor-keys": "^3.3.0",
-        "espree": "^9.3.1",
-        "esquery": "^1.4.0",
-        "lodash": "^4.17.21",
-        "semver": "^7.3.6"
-      },
-      "dependencies": {
-        "lru-cache": {
-          "version": "6.0.0",
-          "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz",
-          "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
-          "dev": true,
-          "requires": {
-            "yallist": "^4.0.0"
-          }
-        },
-        "semver": {
-          "version": "7.6.0",
-          "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.0.tgz",
-          "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
-          "dev": true,
-          "requires": {
-            "lru-cache": "^6.0.0"
-          }
-        },
-        "yallist": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz",
-          "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
-          "dev": true
-        }
-      }
-    },
-    "vue-i18n": {
-      "version": "9.9.1",
-      "resolved": "https://registry.npmmirror.com/vue-i18n/-/vue-i18n-9.9.1.tgz",
-      "integrity": "sha512-xyQ4VspLdNSPTKBFBPWa1tvtj+9HuockZwgFeD2OhxxXuC2CWeNvV4seu2o9+vbQOyQbhAM5Ez56oxUrrnTWdw==",
-      "requires": {
-        "@intlify/core-base": "9.9.1",
-        "@intlify/shared": "9.9.1",
-        "@vue/devtools-api": "^6.5.0"
-      },
-      "dependencies": {
-        "@intlify/core-base": {
-          "version": "9.9.1",
-          "resolved": "https://registry.npmmirror.com/@intlify/core-base/-/core-base-9.9.1.tgz",
-          "integrity": "sha512-qsV15dg7jNX2faBRyKMgZS8UcFJViWEUPLdzZ9UR0kQZpFVeIpc0AG7ZOfeP7pX2T9SQ5jSiorq/tii9nkkafA==",
-          "requires": {
-            "@intlify/message-compiler": "9.9.1",
-            "@intlify/shared": "9.9.1"
-          }
-        },
-        "@intlify/message-compiler": {
-          "version": "9.9.1",
-          "resolved": "https://registry.npmmirror.com/@intlify/message-compiler/-/message-compiler-9.9.1.tgz",
-          "integrity": "sha512-zTvP6X6HeumHOXuAE1CMMsV6tTX+opKMOxO1OHTCg5N5Sm/F7d8o2jdT6W6L5oHUsJ/vvkGefHIs7Q3hfowmsA==",
-          "requires": {
-            "@intlify/shared": "9.9.1",
-            "source-map-js": "^1.0.2"
-          }
-        },
-        "@intlify/shared": {
-          "version": "9.9.1",
-          "resolved": "https://registry.npmmirror.com/@intlify/shared/-/shared-9.9.1.tgz",
-          "integrity": "sha512-b3Pta1nwkz5rGq434v0psHwEwHGy1pYCttfcM22IE//K9owbpkEvFptx9VcuRAxjQdrO2If249cmDDjBu5wMDA=="
-        }
-      }
-    },
-    "vue-router": {
-      "version": "4.2.5",
-      "resolved": "https://registry.npmmirror.com/vue-router/-/vue-router-4.2.5.tgz",
-      "integrity": "sha512-DIUpKcyg4+PTQKfFPX88UWhlagBEBEfJ5A8XDXRJLUnZOvcpMF8o/dnL90vpVkGaPbjvXazV/rC1qBKrZlFugw==",
-      "requires": {
-        "@vue/devtools-api": "^6.5.0"
-      }
-    },
-    "vue-template-compiler": {
-      "version": "2.7.16",
-      "resolved": "https://registry.npmmirror.com/vue-template-compiler/-/vue-template-compiler-2.7.16.tgz",
-      "integrity": "sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==",
-      "dev": true,
-      "requires": {
-        "de-indent": "^1.0.2",
-        "he": "^1.2.0"
-      }
-    },
-    "vue-tsc": {
-      "version": "1.8.27",
-      "resolved": "https://registry.npmmirror.com/vue-tsc/-/vue-tsc-1.8.27.tgz",
-      "integrity": "sha512-WesKCAZCRAbmmhuGl3+VrdWItEvfoFIPXOvUJkjULi+x+6G/Dy69yO3TBRJDr9eUlmsNAwVmxsNZxvHKzbkKdg==",
-      "dev": true,
-      "requires": {
-        "@volar/typescript": "~1.11.1",
-        "@vue/language-core": "1.8.27",
-        "semver": "^7.5.4"
-      },
-      "dependencies": {
-        "lru-cache": {
-          "version": "6.0.0",
-          "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz",
-          "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
-          "dev": true,
-          "requires": {
-            "yallist": "^4.0.0"
-          }
-        },
-        "semver": {
-          "version": "7.6.0",
-          "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.0.tgz",
-          "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
-          "dev": true,
-          "requires": {
-            "lru-cache": "^6.0.0"
-          }
-        },
-        "yallist": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz",
-          "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
-          "dev": true
-        }
-      }
-    },
-    "w3c-hr-time": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmmirror.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz",
-      "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "browser-process-hrtime": "^1.0.0"
-      }
-    },
-    "w3c-xmlserializer": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmmirror.com/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz",
-      "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "xml-name-validator": "^3.0.0"
-      },
-      "dependencies": {
-        "xml-name-validator": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmmirror.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz",
-          "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==",
-          "dev": true,
-          "peer": true
-        }
-      }
-    },
-    "walker": {
-      "version": "1.0.8",
-      "resolved": "https://registry.npmmirror.com/walker/-/walker-1.0.8.tgz",
-      "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "makeerror": "1.0.12"
-      }
-    },
-    "watchpack": {
-      "version": "2.4.0",
-      "resolved": "https://registry.npmmirror.com/watchpack/-/watchpack-2.4.0.tgz",
-      "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==",
-      "peer": true,
-      "requires": {
-        "glob-to-regexp": "^0.4.1",
-        "graceful-fs": "^4.1.2"
-      }
-    },
-    "webidl-conversions": {
-      "version": "6.1.0",
-      "resolved": "https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz",
-      "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==",
-      "dev": true,
-      "peer": true
-    },
-    "webpack": {
-      "version": "5.90.1",
-      "resolved": "https://registry.npmmirror.com/webpack/-/webpack-5.90.1.tgz",
-      "integrity": "sha512-SstPdlAC5IvgFnhiRok8hqJo/+ArAbNv7rhU4fnWGHNVfN59HSQFaxZDSAL3IFG2YmqxuRs+IU33milSxbPlog==",
-      "peer": true,
-      "requires": {
-        "@types/eslint-scope": "^3.7.3",
-        "@types/estree": "^1.0.5",
-        "@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.21.10",
-        "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.10",
-        "watchpack": "^2.4.0",
-        "webpack-sources": "^3.2.3"
-      },
-      "dependencies": {
-        "eslint-scope": {
-          "version": "5.1.1",
-          "resolved": "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-5.1.1.tgz",
-          "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
-          "peer": true,
-          "requires": {
-            "esrecurse": "^4.3.0",
-            "estraverse": "^4.1.1"
-          }
-        },
-        "estraverse": {
-          "version": "4.3.0",
-          "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-4.3.0.tgz",
-          "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
-          "peer": true
-        }
-      }
-    },
-    "webpack-sources": {
-      "version": "3.2.3",
-      "resolved": "https://registry.npmmirror.com/webpack-sources/-/webpack-sources-3.2.3.tgz",
-      "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==",
-      "peer": true
-    },
-    "whatwg-encoding": {
-      "version": "1.0.5",
-      "resolved": "https://registry.npmmirror.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz",
-      "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "iconv-lite": "0.4.24"
-      }
-    },
-    "whatwg-mimetype": {
-      "version": "2.3.0",
-      "resolved": "https://registry.npmmirror.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz",
-      "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==",
-      "dev": true,
-      "peer": true
-    },
-    "whatwg-url": {
-      "version": "8.7.0",
-      "resolved": "https://registry.npmmirror.com/whatwg-url/-/whatwg-url-8.7.0.tgz",
-      "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "lodash": "^4.7.0",
-        "tr46": "^2.1.0",
-        "webidl-conversions": "^6.1.0"
-      }
-    },
-    "which": {
-      "version": "2.0.2",
-      "resolved": "https://registry.npmmirror.com/which/-/which-2.0.2.tgz",
-      "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
-      "requires": {
-        "isexe": "^2.0.0"
-      }
-    },
-    "which-boxed-primitive": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmmirror.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz",
-      "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==",
-      "dev": true,
-      "requires": {
-        "is-bigint": "^1.0.1",
-        "is-boolean-object": "^1.1.0",
-        "is-number-object": "^1.0.4",
-        "is-string": "^1.0.5",
-        "is-symbol": "^1.0.3"
-      }
-    },
-    "which-typed-array": {
-      "version": "1.1.14",
-      "resolved": "https://registry.npmmirror.com/which-typed-array/-/which-typed-array-1.1.14.tgz",
-      "integrity": "sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg==",
-      "dev": true,
-      "requires": {
-        "available-typed-arrays": "^1.0.6",
-        "call-bind": "^1.0.5",
-        "for-each": "^0.3.3",
-        "gopd": "^1.0.1",
-        "has-tostringtag": "^1.0.1"
-      }
-    },
-    "wrap-ansi": {
-      "version": "7.0.0",
-      "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
-      "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "ansi-styles": "^4.0.0",
-        "string-width": "^4.1.0",
-        "strip-ansi": "^6.0.0"
-      },
-      "dependencies": {
-        "ansi-styles": {
-          "version": "4.3.0",
-          "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
-          "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "color-convert": "^2.0.1"
-          }
-        },
-        "color-convert": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
-          "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
-          "dev": true,
-          "peer": true,
-          "requires": {
-            "color-name": "~1.1.4"
-          }
-        },
-        "color-name": {
-          "version": "1.1.4",
-          "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
-          "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
-          "dev": true,
-          "peer": true
-        }
-      }
-    },
-    "wrappy": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz",
-      "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
-    },
-    "write-file-atomic": {
-      "version": "3.0.3",
-      "resolved": "https://registry.npmmirror.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz",
-      "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "imurmurhash": "^0.1.4",
-        "is-typedarray": "^1.0.0",
-        "signal-exit": "^3.0.2",
-        "typedarray-to-buffer": "^3.1.5"
-      }
-    },
-    "ws": {
-      "version": "8.16.0",
-      "resolved": "https://registry.npmmirror.com/ws/-/ws-8.16.0.tgz",
-      "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==",
-      "requires": {}
-    },
-    "xhr": {
-      "version": "2.6.0",
-      "resolved": "https://registry.npmmirror.com/xhr/-/xhr-2.6.0.tgz",
-      "integrity": "sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==",
-      "requires": {
-        "global": "~4.4.0",
-        "is-function": "^1.0.1",
-        "parse-headers": "^2.0.0",
-        "xtend": "^4.0.0"
-      }
-    },
-    "xml-name-validator": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmmirror.com/xml-name-validator/-/xml-name-validator-4.0.0.tgz",
-      "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==",
-      "dev": true
-    },
-    "xml-parse-from-string": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmmirror.com/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz",
-      "integrity": "sha512-ErcKwJTF54uRzzNMXq2X5sMIy88zJvfN2DmdoQvy7PAFJ+tPRU6ydWuOKNMyfmOjdyBQTFREi60s0Y0SyI0G0g=="
-    },
-    "xml2js": {
-      "version": "0.4.23",
-      "resolved": "https://registry.npmmirror.com/xml2js/-/xml2js-0.4.23.tgz",
-      "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==",
-      "requires": {
-        "sax": ">=0.6.0",
-        "xmlbuilder": "~11.0.0"
-      }
-    },
-    "xmlbuilder": {
-      "version": "11.0.1",
-      "resolved": "https://registry.npmmirror.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz",
-      "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA=="
-    },
-    "xmlchars": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npmmirror.com/xmlchars/-/xmlchars-2.2.0.tgz",
-      "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==",
-      "dev": true,
-      "peer": true
-    },
-    "xmlhttprequest": {
-      "version": "1.8.0",
-      "resolved": "https://registry.npmmirror.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz",
-      "integrity": "sha512-58Im/U0mlVBLM38NdZjHyhuMtCqa61469k2YP/AaPbvCoV9aQGUpbJBj1QRm2ytRiVQBD/fsw7L2bJGDVQswBA=="
-    },
-    "xregexp": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmmirror.com/xregexp/-/xregexp-3.1.0.tgz",
-      "integrity": "sha512-4Y1x6DyB8xRoxosooa6PlGWqmmSKatbzhrftZ7Purmm4B8R4qIEJG1A2hZsdz5DhmIqS0msC0I7KEq93GphEVg=="
-    },
-    "xtend": {
-      "version": "4.0.2",
-      "resolved": "https://registry.npmmirror.com/xtend/-/xtend-4.0.2.tgz",
-      "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="
-    },
-    "y18n": {
-      "version": "5.0.8",
-      "resolved": "https://registry.npmmirror.com/y18n/-/y18n-5.0.8.tgz",
-      "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
-      "dev": true,
-      "peer": true
-    },
-    "yallist": {
-      "version": "3.1.1",
-      "resolved": "https://registry.npmmirror.com/yallist/-/yallist-3.1.1.tgz",
-      "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="
-    },
-    "yaml": {
-      "version": "1.10.2",
-      "resolved": "https://registry.npmmirror.com/yaml/-/yaml-1.10.2.tgz",
-      "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg=="
-    },
-    "yargs": {
-      "version": "16.2.0",
-      "resolved": "https://registry.npmmirror.com/yargs/-/yargs-16.2.0.tgz",
-      "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
-      "dev": true,
-      "peer": true,
-      "requires": {
-        "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"
-      }
-    },
-    "yargs-parser": {
-      "version": "20.2.9",
-      "resolved": "https://registry.npmmirror.com/yargs-parser/-/yargs-parser-20.2.9.tgz",
-      "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
-      "dev": true,
-      "peer": true
-    },
-    "yocto-queue": {
-      "version": "0.1.0",
-      "resolved": "https://registry.npmmirror.com/yocto-queue/-/yocto-queue-0.1.0.tgz",
-      "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q=="
-    }
-  }
-}

+ 0 - 94
package.json

@@ -1,94 +0,0 @@
-{
-  "name": "uni-preset-vue",
-  "version": "0.0.0",
-  "scripts": {
-    "dev:app": "uni -p app",
-    "dev:app-android": "uni -p app-android",
-    "dev:app-ios": "uni -p app-ios",
-    "dev:custom": "uni -p",
-    "dev:h5": "uni --mode development",
-    "dev:h5:ssr": "uni --ssr",
-    "dev:mp-alipay": "uni -p mp-alipay",
-    "dev:mp-baidu": "uni -p mp-baidu",
-    "dev:mp-jd": "uni -p mp-jd",
-    "dev:mp-kuaishou": "uni -p mp-kuaishou",
-    "dev:mp-lark": "uni -p mp-lark",
-    "dev:mp-qq": "uni -p mp-qq",
-    "dev:mp-toutiao": "uni -p mp-toutiao",
-    "dev:mp-weixin": "uni -p mp-weixin --mode development",
-    "dev:quickapp-webview": "uni -p quickapp-webview",
-    "dev:quickapp-webview-huawei": "uni -p quickapp-webview-huawei",
-    "dev:quickapp-webview-union": "uni -p quickapp-webview-union",
-    "build:app": "uni build -p app",
-    "build:app-android": "uni build -p app-android",
-    "build:app-ios": "uni build -p app-ios",
-    "build:custom": "uni build -p",
-    "build:h5:pre": "uni build --mode development",
-    "build:h5": "uni build --mode production",
-    "build:h5:ssr": "uni build --ssr",
-    "build:mp-alipay": "uni build -p mp-alipay",
-    "build:mp-baidu": "uni build -p mp-baidu",
-    "build:mp-jd": "uni build -p mp-jd",
-    "build:mp-kuaishou": "uni build -p mp-kuaishou",
-    "build:mp-lark": "uni build -p mp-lark",
-    "build:mp-qq": "uni build -p mp-qq",
-    "build:mp-toutiao": "uni build -p mp-toutiao",
-    "build:mp-weixin": "uni build -p mp-weixin --mode production",
-    "build:quickapp-webview": "uni build -p quickapp-webview",
-    "build:quickapp-webview-huawei": "uni build -p quickapp-webview-huawei",
-    "build:quickapp-webview-union": "uni build -p quickapp-webview-union",
-    "type-check": "vue-tsc --noEmit"
-  },
-  "dependencies": {
-    "@climblee/uv-ui": "^1.1.15",
-    "@dcloudio/uni-app": "3.0.0-3081220230817001",
-    "@dcloudio/uni-app-plus": "3.0.0-3081220230817001",
-    "@dcloudio/uni-components": "3.0.0-3081220230817001",
-    "@dcloudio/uni-h5": "3.0.0-3081220230817001",
-    "@dcloudio/uni-mp-alipay": "3.0.0-3081220230817001",
-    "@dcloudio/uni-mp-baidu": "3.0.0-3081220230817001",
-    "@dcloudio/uni-mp-jd": "3.0.0-3081220230817001",
-    "@dcloudio/uni-mp-kuaishou": "3.0.0-3081220230817001",
-    "@dcloudio/uni-mp-lark": "3.0.0-3081220230817001",
-    "@dcloudio/uni-mp-qq": "3.0.0-3081220230817001",
-    "@dcloudio/uni-mp-toutiao": "3.0.0-3081220230817001",
-    "@dcloudio/uni-mp-weixin": "3.0.0-3081220230817001",
-    "@dcloudio/uni-quickapp-webview": "3.0.0-3081220230817001",
-    "@dcloudio/uni-ui": "^1.4.28",
-    "dayjs": "^1.11.10",
-    "eslint-config-prettier": "^9.0.0",
-    "eslint-plugin-prettier": "^5.0.1",
-    "pinia-plugin-persistedstate": "^3.2.0",
-    "prettier": "^3.0.3",
-    "qs": "^6.11.2",
-    "sass": "^1.69.3",
-    "sass-loader": "^13.3.2",
-    "vue": "^3.2.45",
-    "vue-i18n": "^9.1.9"
-  },
-  "devDependencies": {
-    "@dcloudio/types": "^3.4.1",
-    "@dcloudio/uni-automator": "3.0.0-3081220230817001",
-    "@dcloudio/uni-cli-shared": "3.0.0-3081220230817001",
-    "@dcloudio/uni-stacktracey": "3.0.0-3081220230817001",
-    "@dcloudio/vite-plugin-uni": "3.0.0-3081220230817001",
-    "@types/node": "^20.10.1",
-    "@types/qs": "^6.9.9",
-    "@typescript-eslint/eslint-plugin": "^6.8.0",
-    "@vitejs/plugin-vue-jsx": "^3.0.2",
-    "@vue/eslint-config-prettier": "^8.0.0",
-    "@vue/eslint-config-typescript": "^12.0.0",
-    "@vue/runtime-core": "^3.2.45",
-    "@vue/tsconfig": "^0.1.3",
-    "eslint": "^8.51.0",
-    "eslint-config-standard-with-typescript": "^39.1.1",
-    "eslint-plugin-import": "^2.28.1",
-    "eslint-plugin-n": "^16.2.0",
-    "eslint-plugin-promise": "^6.1.1",
-    "eslint-plugin-vue": "^9.17.0",
-    "pinia": "^2.0.36",
-    "typescript": "^5.2.2",
-    "vite": "4.1.5",
-    "vue-tsc": "^1.0.24"
-  }
-}

+ 0 - 8
shims-uni.d.ts

@@ -1,8 +0,0 @@
-/// <reference types='@dcloudio/types' />
-import 'vue'
-
-declare module '@vue/runtime-core' {
-  type Hooks = App.AppInstance & Page.PageInstance
-
-  interface ComponentCustomOptions extends Hooks {}
-}

+ 0 - 24
src/App.vue

@@ -1,24 +0,0 @@
-<script setup lang="ts">
-import { onLaunch, onShow, onHide } from '@dcloudio/uni-app'
-// @ts-ignore
-import { initEid } from './mp_ecard_sdk/main'
-onLaunch(() => {
-  initEid()
-})
-onShow(() => {})
-onHide(() => {})
-</script>
-<style lang="scss">
-/* 注意要写在第一行,同时给style标签加入lang="scss"属性 */
-@import './static/style/common.scss';
-/* #ifdef H5 */
-uni-page-head {
-  display: none;
-}
-
-.uni-app--showleftwindow + .uni-tabbar-bottom {
-  display: none;
-}
-
-/* #endif */
-</style>

+ 0 - 89
src/components/dateSelect/k-bottom-button/KBottomButton.vue

@@ -1,89 +0,0 @@
-<template>
-  <view
-    class="k-button-group"
-    :style="{
-      paddingBottom: safeArea && `${bottomSafeArea || 10}px`,
-      boxShadow: boxShadow ? '0 2px 12px 0 rgba(0, 0, 0, 0.1)' : ''
-    }"
-  >
-    <button
-      v-for="(button, index) in list"
-      class="k-button"
-      :style="{
-        color: button.color,
-        backgroundColor: button.background,
-        border: `2rpx solid ${button.borderColor || 'transparent'}`
-      }"
-      @click="onClick(index)"
-      :key="index"
-    >
-      {{ button.label }}
-    </button>
-  </view>
-</template>
-
-<script>
-export default {
-  options: {
-    virtualHost: true
-  },
-  props: {
-    safeArea: {
-      type: Boolean,
-      default: true
-    },
-    boxShadow: {
-      type: Boolean,
-      default: true
-    },
-    options: {
-      type: [Array, Object],
-      default: () => []
-    },
-    label: {
-      type: String,
-      default: ''
-    }
-  },
-  computed: {
-    list() {
-      if (JSON.stringify(this.options) !== '{}' && this.options.length > 0) {
-        return Array.isArray(this.options) ? this.options : [this.options]
-      } else {
-        return [
-          {
-            label: this.label,
-            color: 'white',
-            background: '#005CEEFF'
-          }
-        ]
-      }
-    }
-  },
-  data() {
-    return {
-      bottomSafeArea: uni.getSystemInfoSync().safeAreaInsets.bottom
-    }
-  },
-  methods: {
-    onClick(index) {
-      this.$emit('onClick', index)
-    }
-  }
-}
-</script>
-<style lang="scss">
-.k-button-group {
-  box-sizing: border-box;
-  display: flex;
-  flex-direction: row;
-  background-color: white;
-  width: 100%;
-  padding: 20rpx 30rpx;
-  column-gap: 24rpx;
-  .k-button {
-    width: 100%;
-    font-size: 32rpx;
-  }
-}
-</style>

+ 0 - 115
src/components/dateSelect/k-bottom-popup/KBottomPopup.vue

@@ -1,115 +0,0 @@
-<script>
-export default {
-  name: 'KBottomPopup',
-  options: {
-    virtualHost: true
-  },
-  // #ifndef VUE3
-  model: {
-    prop: 'value',
-    event: 'input'
-  },
-  // #endif
-  props: {
-    // #ifndef VUE3
-    value: {
-      type: Boolean,
-      default: false
-    },
-    // #endif
-    // #ifdef VUE3
-    modelValue: {
-      type: Boolean,
-      default: false
-    }
-    // #endif
-  },
-  data() {
-    return {
-      stopPropagation: false
-    }
-  },
-  computed: {
-    show() {
-      // #ifdef VUE3
-      return this.modelValue
-      // #endif
-      // #ifndef VUE3
-      return this.value
-      // #endif
-    }
-  },
-  methods: {
-    maskClick() {
-      if (this.stopPropagation) {
-        this.stopPropagation = false
-        return
-      }
-      // #ifndef VUE3
-      this.$emit('input', false)
-      // #endif
-      // #ifdef VUE3
-      this.$emit('update:modelValue', false)
-      // #endif
-    },
-    /** 阻止事件冒泡 */
-    onTouchStart(e) {
-      this.stopPropagation = true
-    }
-  },
-  mounted() {}
-}
-</script>
-
-<template>
-  <view
-    :style="[
-      {
-        opacity: show ? 1 : 0,
-        zIndex: show ? 10086 : -10086
-      }
-    ]"
-    class="k-bottom-popup"
-    @click="maskClick"
-  >
-    <view
-      :class="{
-        fade: !show,
-        'fade-out': show
-      }"
-      class="tran-content"
-      @touchstart="onTouchStart"
-    >
-      <slot></slot>
-    </view>
-  </view>
-</template>
-
-<style lang="scss">
-.k-bottom-popup {
-  position: fixed;
-  width: 100%;
-  height: 100%;
-  top: 0;
-  left: 0;
-  bottom: 0;
-  right: 0;
-  background-color: rgba(0, 0, 0, 0.4);
-  z-index: -10086;
-  opacity: 0;
-  transition: opacity 0.3s ease-in-out;
-  .fade {
-    transform: translateY(100%);
-  }
-  .fade-out {
-    transform: translateY(0);
-  }
-  .tran-content {
-    position: absolute;
-    right: 0;
-    left: 0;
-    bottom: 0;
-    transition: transform 0.3s ease-in-out;
-  }
-}
-</style>

+ 0 - 728
src/components/dateSelect/k-date-picker/KDatePicker.vue

@@ -1,728 +0,0 @@
-<!-- eslint-disable vue/return-in-computed-property -->
-<script>
-import dayjs from './day'
-import { monthsChinese, weeksChinese, closable, left, left_double } from './utils'
-import KButton from '../k-bottom-button/KBottomButton.vue'
-import KBottomPopup from '../k-bottom-popup/KBottomPopup.vue'
-export default {
-  components: { KBottomPopup, KButton },
-  options: {
-    virtualHost: true
-  },
-  // #ifndef VUE3
-  model: {
-    prop: 'value',
-    event: 'input'
-  },
-  // #endif
-  props: {
-    // #ifndef VUE3
-    value: {
-      type: Boolean,
-      default: false
-    },
-    // #endif
-    confirmText: {
-      type: String,
-      default: '确定'
-    },
-    title: {
-      type: String,
-      default: '请选择'
-    },
-    // #ifdef VUE3
-    modelValue: {
-      type: Boolean,
-      default: false
-    },
-    // #endif
-    defaultValue: {
-      type: [String, Number, Array]
-    },
-    type: {
-      type: String, //"day" | "month" | "year"
-      default: 'day'
-    },
-    safeArea: {
-      type: Boolean,
-      default: true
-    },
-    /** 限制开始时间 **/
-    limitStartDate: {
-      type: [String, Number]
-    },
-    /** 限制结束时间 **/
-    limitEndDate: {
-      type: [String, Number]
-    },
-    /** 格式化数据 **/
-    formatter: {
-      type: String
-    },
-    /** 是否为范围选择器 **/
-    isRange: {
-      type: Boolean,
-      default: () => false
-    },
-    /** 是否为多选 **/
-    multiple: {
-      type: Boolean,
-      default: () => false
-    }
-  },
-  computed: {
-    briefDate() {
-      if (this.type === 'day') {
-        return this.currentDay.format('YYYY年MM月')
-      }
-      if (this.type === 'month') {
-        return this.currentDay.format('YYYY年')
-      }
-      if (this.type === 'year') {
-        return `${this.startYear.format('YYYY')} - ${this.startYear.add(9, 'year').format('YYYY')}`
-      }
-    },
-    selectedDate() {
-      const formatMap = {
-        day: 'YYYY-MM-DD',
-        month: 'YYYY-MM',
-        year: 'YYYY年'
-      }
-      const format = formatMap[this.type]
-      if (this.isRange) {
-        return `${this.rangeStart ? this.rangeStart.format(format) : '-'} 至 ${this.rangeEnd ? this.rangeEnd.format(format) : '-'}`
-      } else {
-        if (this.checked.length > 0) {
-          return this.checked.map((item) => item.format(format)).join('、')
-        } else {
-          return '-'
-        }
-      }
-    },
-    backText() {
-      if (this.type === 'day') {
-        return this.currentDay.format('M')
-      }
-      return ''
-    },
-    blocks() {
-      const dates =
-        this.type === 'day' ? this.days : this.type === 'month' ? this.months : this.years
-      const result = []
-      const chineseMap = {
-        day: (date) => {
-          return date.format('D')
-        },
-        month: (date) => {
-          return monthsChinese[date.month()]
-        },
-        year: (date) => {
-          return date.format('YYYY年')
-        }
-      }
-      for (const date of dates) {
-        if (!date) {
-          result.push(date)
-        } else {
-          const obj = {
-            date,
-            chinese: chineseMap[this.type](date),
-            isLimit:
-              (this.limitStartDate && date.isBefore(dayjs(this.limitStartDate))) ||
-              (this.limitEndDate && date.isAfter(dayjs(this.limitEndDate))),
-            isCurrent: date.startOf(this.type).isSame(this.sameDay.startOf(this.type)),
-            isSelect: this.checked.findIndex((item) => item.valueOf() === date.valueOf()) !== -1,
-            isStart:
-              this.rangeStart && date.startOf(this.type).isSame(this.rangeStart.startOf(this.type)),
-            isEnd:
-              this.rangeEnd && date.startOf(this.type).isSame(this.rangeEnd.startOf(this.type)),
-            isInRange:
-              this.rangeStart &&
-              this.rangeEnd &&
-              date.startOf(this.type).isAfter(this.rangeStart.startOf(this.type)) &&
-              date.startOf(this.type).isBefore(this.rangeEnd.startOf(this.type))
-          }
-          // 若果既是范围起点又是范围终点,那么设置为选中
-          if (this.isRange) {
-            obj.isSelect = obj.isStart && obj.isEnd
-          }
-          result.push(obj)
-        }
-      }
-      return result
-    },
-    days() {
-      const result = []
-      let start = this.currentDay.startOf('month')
-      const end = this.currentDay.endOf('month')
-      //计算当前月的第一天是星期几,然后在result头部补上空字符串
-      const firstDayWeek = start.day()
-      for (let i = 0; i < firstDayWeek; i++) {
-        result.push('')
-      }
-      while (start.isBefore(end)) {
-        result.push(start)
-        start = start.add(1, 'day')
-      }
-      return result
-    },
-    months() {
-      const result = []
-      for (let i = 0; i < 12; i++) {
-        const date = this.currentDay.startOf('year').add(i, 'month')
-        result.push(date)
-      }
-      return result
-    },
-    startYear() {
-      return this.currentDay.subtract(this.currentDay.year() % 10, 'year')
-    },
-    years() {
-      // 根据currentDay生成10个年份,如果是当前年则加上is-current
-      const result = []
-      // 从startYear开始生成一个10年的数组
-      for (let i = 0; i < 10; i++) {
-        const date = this.startYear.add(i, 'year')
-        result.push(date)
-      }
-      return result
-    }
-  },
-  data() {
-    return {
-      sameDay: dayjs(), // 当日
-      rangeStart: null, // 范围选择器开始日期
-      rangeEnd: null, // 范围选择器结束日期
-      checked: [], // 选中的日期
-      currentDay: dayjs(), // 当前选择器显示的日期
-      weeksChinese,
-      left,
-      closable,
-      left_double,
-      show: false
-    }
-  },
-  methods: {
-    onClick() {
-      if (this.isRange) {
-        const _rangeStart = this.rangeStart
-          ? this.formatter
-            ? this.rangeStart.format(this.formatter)
-            : this.rangeStart.valueOf()
-          : null
-        const _rangeEnd = this.rangeEnd
-          ? this.formatter
-            ? this.rangeEnd.format(this.formatter)
-            : this.rangeEnd.valueOf()
-          : null
-        this.$emit('change', [_rangeStart, _rangeEnd])
-      } else {
-        const _checked =
-          this.selectedDate !== '-'
-            ? this.multiple
-              ? this.checked.map((item) =>
-                  this.formatter ? item.format(this.formatter) : item.valueOf()
-                )
-              : this.formatter
-                ? this.checked[0].format(this.formatter)
-                : this.checked[0].valueOf()
-            : null
-        this.$emit('change', _checked)
-      }
-    },
-    handleClickItem(block) {
-      /**当day为空字符串或者在限制开始时间之前,限制开始时间之后 不允许点击 **/
-      if (
-        block === '' ||
-        (this.limitEndDate && block.date.isAfter(dayjs(this.limitEndDate))) ||
-        (this.limitStartDate && block.date.isBefore(dayjs(this.limitStartDate)))
-      )
-        return
-      if (this.isRange) {
-        //如果有结束日期和开始日期,并且点击的不是开始日期和结束日期,则将其设置为开始日期并清除结束日期
-        if (this.rangeStart && this.rangeEnd && !block.isStart && !block.isEnd) {
-          this.rangeStart = block.date
-          this.rangeEnd = null
-          return
-        }
-        // 如果点击的是选择的日期,那么就清除这些选项
-        if (block.isSelect) {
-          this.rangeStart = null
-          this.rangeEnd = null
-          return
-        }
-
-        // 如果重复点击开始日期或者结束日期则取消选择
-        if (block.isStart) {
-          // 如果没有结束日期 那么将结束日期设置为开始日期
-          if (!this.rangeEnd) {
-            this.rangeEnd = block.date
-            return
-          }
-          this.rangeStart = null
-          return
-        }
-        if (block.isEnd) {
-          this.rangeEnd = null
-          return
-        }
-        const setStartAndEndDay = (start) => {
-          if (block.date.isBefore(start)) {
-            this.rangeEnd = start
-            this.rangeStart = block.date
-          } else {
-            this.rangeEnd = block.date
-          }
-        }
-        if (this.rangeStart) {
-          setStartAndEndDay(this.rangeStart)
-        } else {
-          // 如果有结束日期,需要判断是否在结束日期之前
-          if (this.rangeEnd) {
-            setStartAndEndDay(this.rangeEnd)
-          } else {
-            this.rangeStart = block.date
-          }
-        }
-      } else {
-        // 如果重复点击则取消选择
-        if (block.isSelect) {
-          this.checked = this.checked.filter((item) => item.valueOf() !== block.date.valueOf())
-          return
-        }
-        this.multiple ? this.checked.push(block.date) : (this.checked = [block.date])
-      }
-    },
-    toggle(type, direction) {
-      if (this.type === 'day') {
-        this.currentDay = this.currentDay.add(
-          direction === 'left' ? -1 : 1,
-          type === 'single' ? 'month' : 'year'
-        )
-      }
-      if (this.type === 'month') {
-        this.currentDay = this.currentDay.add(direction === 'left' ? -1 : 1, 'year')
-      }
-      if (this.type === 'year') {
-        this.currentDay = this.currentDay.add(direction === 'left' ? -10 : 10, 'year')
-      }
-    },
-    close() {
-      // #ifndef VUE3
-      this.$emit('input', false)
-      // #endif
-      // #ifdef VUE3
-      this.$emit('update:modelValue', false)
-      // #endif
-    },
-    init() {
-      // 检查类型是否为 day | month | year
-      if (!['day', 'month', 'year'].includes(this.type)) {
-        console.error('类型必须为 day | month | year')
-        return
-      }
-      // 检查 isRange和 multiple 是否同时为 true
-      if (this.isRange && this.multiple) {
-        console.error('目前暂不支持时间段的多选')
-        return
-      }
-
-      // 清空原数据
-      this.checked = []
-      this.rangeStart = null
-      this.rangeEnd = null
-      // 初始化数据
-      if (!this.defaultValue) return
-      if (this.isRange) {
-        if (!Array.isArray(this.defaultValue) || this.defaultValue.length !== 2) {
-          console.error('区间选择器的默认值必须为长度为2的数组')
-          return
-        }
-        this.currentDay = dayjs(this.defaultValue[0])
-        this.rangeStart = dayjs(this.defaultValue[0])
-        this.rangeEnd = dayjs(this.defaultValue[1])
-      } else {
-        if (this.multiple && Array.isArray(this.defaultValue)) {
-          this.checked = this.defaultValue.map((item) => dayjs(item))
-        } else {
-          this.checked = [dayjs(this.defaultValue)]
-        }
-        this.currentDay = this.checked[0] ? dayjs(this.checked[0]) : dayjs()
-      }
-    }
-  },
-  mounted() {
-    this.init()
-  },
-  watch: {
-    // #ifdef VUE3
-    modelValue: {
-      handler(value) {
-        this.show = !!value
-      }
-    },
-    // #endif
-    // #ifndef VUE3
-    value: {
-      handler(value) {
-        this.show = !!value
-      }
-    },
-    // #endif
-    show: {
-      handler(value) {
-        // #ifdef VUE3
-        this.$emit('update:modelValue', value)
-        // #endif
-        // #ifndef VUE3
-        this.$emit('input', value)
-        // #endif
-      }
-    },
-    type: {
-      handler() {
-        this.init()
-      }
-    },
-    defaultValue: {
-      handler() {
-        this.init()
-      },
-      deep: true
-    }
-  }
-}
-</script>
-
-<template>
-  <KBottomPopup v-model="show">
-    <view class="k-date-picker">
-      <view class="inner-top">
-        <view>
-          <slot name="left">
-            <text>{{ title }}</text>
-          </slot>
-        </view>
-        <view @click="close">
-          <slot name="right">
-            <image :src="closable" class="image-closable"></image>
-          </slot>
-        </view>
-      </view>
-      <view class="inner-body">
-        <view class="inner-body__arrow">
-          <image
-            v-if="type === 'day'"
-            class="image-arrow"
-            :src="left_double"
-            @click="toggle('double', 'left')"
-          />
-          <image class="image-arrow" :src="left" @click="toggle('single', 'left')" />
-          <view class="brief">{{ briefDate }}</view>
-          <image class="image-arrow right-arrow" :src="left" @click="toggle('single', 'right')" />
-          <image
-            v-if="type === 'day'"
-            class="image-arrow right-arrow"
-            :src="left_double"
-            @click="toggle('double', 'right')"
-          />
-        </view>
-        <view class="inner-body__calendar">
-          <view
-            class="inner-body__calendar_week"
-            :style="{ columnGap: isRange ? '0' : '12rpx' }"
-            v-if="type === 'day'"
-          >
-            <view
-              class="inner-body__calendar_week--item"
-              v-for="(item, index) in weeksChinese"
-              :key="index"
-              >{{ item }}</view
-            >
-          </view>
-          <view
-            class="inner-body__calendar_block"
-            :class="{
-              'is-day': type === 'day',
-              'is-month': type === 'month',
-              'is-year': type === 'year'
-            }"
-            :data-text="backText"
-            :style="{ columnGap: isRange ? '0' : '12rpx' }"
-          >
-            <view
-              class="inner-body__calendar_block--item"
-              :class="{
-                'is-current': block.isCurrent,
-                'is-start': block.isStart,
-                'is-end': block.isEnd,
-                'is-in-range': block.isInRange,
-                'is-selected': block.isSelect,
-                'is-limit': block.isLimit
-              }"
-              v-for="(block, index) in blocks"
-              :key="index"
-              @click="handleClickItem(block)"
-            >
-              {{ block.chinese || '' }}
-            </view>
-          </view>
-        </view>
-        <!--        多选由于需要显示的数据可能会较多,这里不再就多选的数据进行展示-->
-        <view class="selected-wrap" v-if="!multiple">
-          <view class="selected-date">
-            {{ selectedDate }}
-          </view>
-        </view>
-      </view>
-    </view>
-    <KButton
-      :label="confirmText"
-      :box-shadow="false"
-      :safe-area="safeArea"
-      @onClick="onClick"
-    ></KButton>
-  </KBottomPopup>
-</template>
-
-<style lang="scss">
-.k-date-picker {
-  /** 控制提示文字的位置 **/
-  --bottom-offset: 10%;
-  /** 控制提示文字的大小 **/
-  --bottom-font-size: 18rpx;
-  /** 选中时字体的颜色**/
-  --seletct--text-color: white;
-  /** 选中时背景颜色 **/
-  --seletct--background-color: #005ceeff;
-  /** 处于区间的字体颜色 **/
-  --in-range--text-color: #005ceeff;
-  /** 处于区间的背景颜色 **/
-  --in-range--background-color: #f2f6fc;
-  /** 限制的字体颜色 **/
-  --limit--text-color: #a8abb2;
-  /** 限制的背景颜色 **/
-  --limit--background-color: #f5f7fa;
-  /** current的背景颜色 **/
-  --current--background-color: #e4edfe;
-  /** current的字体颜色 **/
-  --current--text-color: #7994b2;
-
-  box-sizing: border-box;
-  width: 100%;
-  padding: 30rpx 30rpx 20rpx;
-  background-color: white;
-  border-radius: 10px 10px 0 0;
-  position: relative;
-  display: flex;
-  flex-direction: column;
-  .is-current {
-    border-radius: 8rpx;
-    background-color: var(--current--background-color);
-    position: relative;
-    --color: var(--current--text-color);
-    &:after {
-      color: var(--color);
-      position: absolute;
-      left: 50%;
-      bottom: var(--bottom-offset);
-      transform: translate(-50%);
-      font-size: var(--bottom-font-size);
-      line-height: var(--bottom-font-size);
-      /* #ifdef APP-PLUS */
-      font-weight: 500;
-      /* #endif */
-    }
-  }
-  .is-day {
-    grid-template-columns: repeat(7, minmax(0, 1fr));
-    .is-current:after {
-      content: '本日';
-    }
-  }
-  .is-month {
-    grid-template-columns: repeat(4, minmax(0, 1fr));
-    margin-top: 24rpx;
-    .is-current:after {
-      content: '';
-    }
-  }
-  .is-year {
-    grid-template-columns: repeat(4, minmax(0, 1fr));
-    margin-top: 24rpx;
-    .is-current:after {
-      content: '本年';
-    }
-  }
-  .inner-top {
-    display: flex;
-    flex-direction: row;
-    justify-content: space-between;
-    align-items: center;
-    padding-bottom: 30rpx;
-  }
-  .inner-body {
-    &__arrow {
-      display: flex;
-      flex-direction: row;
-      align-items: center;
-      justify-content: center;
-    }
-    &__calendar {
-      &_week {
-        display: grid;
-        grid-template-columns: repeat(7, minmax(0, 1fr));
-        &--item {
-          /* #ifdef MP-WEIXIN */
-          font-weight: bolder;
-          /* #endif */
-          /* #ifdef APP-PLUS */
-          font-weight: 500;
-          /* #endif */
-          color: #303133;
-          font-size: 30rpx;
-          display: flex;
-          flex-direction: column;
-          align-items: center;
-          justify-content: center;
-          height: 88rpx;
-        }
-      }
-
-      &_block {
-        &:after {
-          display: block;
-          content: attr(data-text);
-          color: #eef2f8ff;
-          font-size: 280rpx;
-          position: absolute;
-          left: 50%;
-          top: 50%;
-          transform: translate(-50%, -50%);
-          z-index: 1;
-        }
-        position: relative;
-        display: grid;
-        row-gap: 20rpx;
-        &--item {
-          z-index: 2;
-          font-size: 30rpx;
-          color: #7994b2;
-          display: flex;
-          flex-direction: column;
-          align-items: center;
-          justify-content: center;
-          aspect-ratio: 1;
-        }
-      }
-    }
-  }
-  .is-limit {
-    color: var(--limit--text-color) !important;
-    background-color: var(--limit--background-color);
-  }
-  .is-in-range {
-    --color: var(--in-range--text-color) !important;
-    background-color: var(--in-range--background-color) !important;
-    border-radius: 0 !important;
-    color: var(--in-range--text-color) !important;
-  }
-  .is-selected {
-    &:after {
-      content: '' !important;
-      color: var(--seletct--text-color) !important;
-      position: absolute;
-      left: 50%;
-      bottom: var(--bottom-offset);
-      transform: translate(-50%);
-      font-size: var(--bottom-font-size);
-      line-height: var(--bottom-font-size);
-      /* #ifdef APP-PLUS */
-      font-weight: 500;
-      /* #endif */
-    }
-    position: relative;
-    background-color: var(--seletct--background-color) !important;
-    color: var(--seletct--text-color) !important;
-    border-radius: 8rpx !important;
-  }
-  .is-start {
-    &:after {
-      content: '';
-      color: var(--seletct--text-color) !important;
-      position: absolute;
-      left: 50%;
-      bottom: var(--bottom-offset);
-      transform: translate(-50%);
-      font-size: var(--bottom-font-size);
-      line-height: var(--bottom-font-size);
-      /* #ifdef APP-PLUS */
-      font-weight: 500;
-      /* #endif */
-    }
-    position: relative;
-    background-color: var(--seletct--background-color) !important;
-    color: var(--seletct--text-color) !important;
-    border-radius: 8rpx 0 0 8rpx;
-  }
-  .is-end {
-    &:after {
-      content: '';
-      color: var(--seletct--text-color) !important;
-      position: absolute;
-      left: 50%;
-      bottom: var(--bottom-offset);
-      transform: translate(-50%);
-      font-size: var(--bottom-font-size);
-      line-height: var(--bottom-font-size);
-      /* #ifdef APP-PLUS */
-      font-weight: 500;
-      /* #endif */
-    }
-    position: relative;
-    background-color: var(--seletct--background-color) !important;
-    color: var(--seletct--text-color) !important;
-    border-radius: 0 8rpx 8rpx 0;
-  }
-  .image-closable {
-    width: 36rpx;
-    height: 36rpx;
-  }
-  .image-arrow {
-    width: 36rpx;
-    height: 36rpx;
-  }
-  .right-arrow {
-    transform: rotate(180deg);
-  }
-  .brief {
-    margin: 0 30rpx;
-    color: #000000d9;
-    font-size: 30rpx;
-    /* #ifdef MP-WEIXIN */
-    font-weight: bolder;
-    /* #endif */
-    /* #ifdef APP-PLUS */
-    font-weight: 500;
-    /* #endif */
-  }
-  .selected-date {
-    display: flex;
-    flex-direction: row;
-    align-items: center;
-    justify-content: center;
-    padding: 10rpx 0;
-    color: #94a0b4ff;
-    font-size: 30rpx;
-    margin-top: 20rpx;
-    width: 600rpx;
-  }
-  .selected-wrap {
-    display: flex;
-    flex-direction: row;
-    align-items: center;
-    justify-content: center;
-    width: 100%;
-  }
-}
-</style>

+ 0 - 444
src/components/dateSelect/k-date-picker/day.js

@@ -1,444 +0,0 @@
-export default (function () {
-  'use strict'
-  var t = 1e3,
-    e = 6e4,
-    n = 36e5,
-    r = 'millisecond',
-    i = 'second',
-    s = 'minute',
-    u = 'hour',
-    a = 'day',
-    o = 'week',
-    c = 'month',
-    f = 'quarter',
-    h = 'year',
-    d = 'date',
-    l = 'Invalid Date',
-    $ =
-      /^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,
-    y = /\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,
-    M = {
-      name: 'en',
-      weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),
-      months:
-        'January_February_March_April_May_June_July_August_September_October_November_December'.split(
-          '_'
-        ),
-      ordinal: function (t) {
-        var e = ['th', 'st', 'nd', 'rd'],
-          n = t % 100
-        return '[' + t + (e[(n - 20) % 10] || e[n] || e[0]) + ']'
-      }
-    },
-    m = function (t, e, n) {
-      var r = String(t)
-      return !r || r.length >= e ? t : '' + Array(e + 1 - r.length).join(n) + t
-    },
-    v = {
-      s: m,
-      z: function (t) {
-        var e = -t.utcOffset(),
-          n = Math.abs(e),
-          r = Math.floor(n / 60),
-          i = n % 60
-        return (e <= 0 ? '+' : '-') + m(r, 2, '0') + ':' + m(i, 2, '0')
-      },
-      m: function t(e, n) {
-        if (e.date() < n.date()) return -t(n, e)
-        var r = 12 * (n.year() - e.year()) + (n.month() - e.month()),
-          i = e.clone().add(r, c),
-          s = n - i < 0,
-          u = e.clone().add(r + (s ? -1 : 1), c)
-        return +(-(r + (n - i) / (s ? i - u : u - i)) || 0)
-      },
-      a: function (t) {
-        return t < 0 ? Math.ceil(t) || 0 : Math.floor(t)
-      },
-      p: function (t) {
-        return (
-          { M: c, y: h, w: o, d: a, D: d, h: u, m: s, s: i, ms: r, Q: f }[t] ||
-          String(t || '')
-            .toLowerCase()
-            .replace(/s$/, '')
-        )
-      },
-      u: function (t) {
-        return void 0 === t
-      }
-    },
-    g = 'en',
-    D = {}
-  D[g] = M
-  var p = '$isDayjsObject',
-    S = function (t) {
-      return t instanceof _ || !(!t || !t[p])
-    },
-    w = function t(e, n, r) {
-      var i
-      if (!e) return g
-      if ('string' == typeof e) {
-        var s = e.toLowerCase()
-        D[s] && (i = s), n && ((D[s] = n), (i = s))
-        var u = e.split('-')
-        if (!i && u.length > 1) return t(u[0])
-      } else {
-        var a = e.name
-        ;(D[a] = e), (i = a)
-      }
-      return !r && i && (g = i), i || (!r && g)
-    },
-    O = function (t, e) {
-      if (S(t)) return t.clone()
-      var n = 'object' == typeof e ? e : {}
-      return (n.date = t), (n.args = arguments), new _(n)
-    },
-    b = v
-  ;(b.l = w),
-    (b.i = S),
-    (b.w = function (t, e) {
-      return O(t, { locale: e.$L, utc: e.$u, x: e.$x, $offset: e.$offset })
-    })
-  var _ = (function () {
-      function M(t) {
-        ;(this.$L = w(t.locale, null, !0)),
-          this.parse(t),
-          (this.$x = this.$x || t.x || {}),
-          (this[p] = !0)
-      }
-      var m = M.prototype
-      return (
-        (m.parse = function (t) {
-          ;(this.$d = (function (t) {
-            var e = t.date,
-              n = t.utc
-            if (null === e) return new Date(NaN)
-            if (b.u(e)) return new Date()
-            if (e instanceof Date) return new Date(e)
-            if ('string' == typeof e && !/Z$/i.test(e)) {
-              var r = e.match($)
-              if (r) {
-                var i = r[2] - 1 || 0,
-                  s = (r[7] || '0').substring(0, 3)
-                return n
-                  ? new Date(Date.UTC(r[1], i, r[3] || 1, r[4] || 0, r[5] || 0, r[6] || 0, s))
-                  : new Date(r[1], i, r[3] || 1, r[4] || 0, r[5] || 0, r[6] || 0, s)
-              }
-            }
-            return new Date(e)
-          })(t)),
-            this.init()
-        }),
-        (m.init = function () {
-          var t = this.$d
-          ;(this.$y = t.getFullYear()),
-            (this.$M = t.getMonth()),
-            (this.$D = t.getDate()),
-            (this.$W = t.getDay()),
-            (this.$H = t.getHours()),
-            (this.$m = t.getMinutes()),
-            (this.$s = t.getSeconds()),
-            (this.$ms = t.getMilliseconds())
-        }),
-        (m.$utils = function () {
-          return b
-        }),
-        (m.isValid = function () {
-          return !(this.$d.toString() === l)
-        }),
-        (m.isSame = function (t, e) {
-          var n = O(t)
-          return this.startOf(e) <= n && n <= this.endOf(e)
-        }),
-        (m.isAfter = function (t, e) {
-          return O(t) < this.startOf(e)
-        }),
-        (m.isBefore = function (t, e) {
-          return this.endOf(e) < O(t)
-        }),
-        (m.$g = function (t, e, n) {
-          return b.u(t) ? this[e] : this.set(n, t)
-        }),
-        (m.unix = function () {
-          return Math.floor(this.valueOf() / 1e3)
-        }),
-        (m.valueOf = function () {
-          return this.$d.getTime()
-        }),
-        (m.startOf = function (t, e) {
-          var n = this,
-            r = !!b.u(e) || e,
-            f = b.p(t),
-            l = function (t, e) {
-              var i = b.w(n.$u ? Date.UTC(n.$y, e, t) : new Date(n.$y, e, t), n)
-              return r ? i : i.endOf(a)
-            },
-            $ = function (t, e) {
-              return b.w(
-                n.toDate()[t].apply(n.toDate('s'), (r ? [0, 0, 0, 0] : [23, 59, 59, 999]).slice(e)),
-                n
-              )
-            },
-            y = this.$W,
-            M = this.$M,
-            m = this.$D,
-            v = 'set' + (this.$u ? 'UTC' : '')
-          switch (f) {
-            case h:
-              return r ? l(1, 0) : l(31, 11)
-            case c:
-              return r ? l(1, M) : l(0, M + 1)
-            case o:
-              var g = this.$locale().weekStart || 0,
-                D = (y < g ? y + 7 : y) - g
-              return l(r ? m - D : m + (6 - D), M)
-            case a:
-            case d:
-              return $(v + 'Hours', 0)
-            case u:
-              return $(v + 'Minutes', 1)
-            case s:
-              return $(v + 'Seconds', 2)
-            case i:
-              return $(v + 'Milliseconds', 3)
-            default:
-              return this.clone()
-          }
-        }),
-        (m.endOf = function (t) {
-          return this.startOf(t, !1)
-        }),
-        (m.$set = function (t, e) {
-          var n,
-            o = b.p(t),
-            f = 'set' + (this.$u ? 'UTC' : ''),
-            l = ((n = {}),
-            (n[a] = f + 'Date'),
-            (n[d] = f + 'Date'),
-            (n[c] = f + 'Month'),
-            (n[h] = f + 'FullYear'),
-            (n[u] = f + 'Hours'),
-            (n[s] = f + 'Minutes'),
-            (n[i] = f + 'Seconds'),
-            (n[r] = f + 'Milliseconds'),
-            n)[o],
-            $ = o === a ? this.$D + (e - this.$W) : e
-          if (o === c || o === h) {
-            var y = this.clone().set(d, 1)
-            y.$d[l]($), y.init(), (this.$d = y.set(d, Math.min(this.$D, y.daysInMonth())).$d)
-          } else l && this.$d[l]($)
-          return this.init(), this
-        }),
-        (m.set = function (t, e) {
-          return this.clone().$set(t, e)
-        }),
-        (m.get = function (t) {
-          return this[b.p(t)]()
-        }),
-        (m.add = function (r, f) {
-          var d,
-            l = this
-          r = Number(r)
-          var $ = b.p(f),
-            y = function (t) {
-              var e = O(l)
-              return b.w(e.date(e.date() + Math.round(t * r)), l)
-            }
-          if ($ === c) return this.set(c, this.$M + r)
-          if ($ === h) return this.set(h, this.$y + r)
-          if ($ === a) return y(1)
-          if ($ === o) return y(7)
-          var M = ((d = {}), (d[s] = e), (d[u] = n), (d[i] = t), d)[$] || 1,
-            m = this.$d.getTime() + r * M
-          return b.w(m, this)
-        }),
-        (m.subtract = function (t, e) {
-          return this.add(-1 * t, e)
-        }),
-        (m.format = function (t) {
-          var e = this,
-            n = this.$locale()
-          if (!this.isValid()) return n.invalidDate || l
-          var r = t || 'YYYY-MM-DDTHH:mm:ssZ',
-            i = b.z(this),
-            s = this.$H,
-            u = this.$m,
-            a = this.$M,
-            o = n.weekdays,
-            c = n.months,
-            f = n.meridiem,
-            h = function (t, n, i, s) {
-              return (t && (t[n] || t(e, r))) || i[n].slice(0, s)
-            },
-            d = function (t) {
-              return b.s(s % 12 || 12, t, '0')
-            },
-            $ =
-              f ||
-              function (t, e, n) {
-                var r = t < 12 ? 'AM' : 'PM'
-                return n ? r.toLowerCase() : r
-              }
-          return r.replace(y, function (t, r) {
-            return (
-              r ||
-              (function (t) {
-                switch (t) {
-                  case 'YY':
-                    return String(e.$y).slice(-2)
-                  case 'YYYY':
-                    return b.s(e.$y, 4, '0')
-                  case 'M':
-                    return a + 1
-                  case 'MM':
-                    return b.s(a + 1, 2, '0')
-                  case 'MMM':
-                    return h(n.monthsShort, a, c, 3)
-                  case 'MMMM':
-                    return h(c, a)
-                  case 'D':
-                    return e.$D
-                  case 'DD':
-                    return b.s(e.$D, 2, '0')
-                  case 'd':
-                    return String(e.$W)
-                  case 'dd':
-                    return h(n.weekdaysMin, e.$W, o, 2)
-                  case 'ddd':
-                    return h(n.weekdaysShort, e.$W, o, 3)
-                  case 'dddd':
-                    return o[e.$W]
-                  case 'H':
-                    return String(s)
-                  case 'HH':
-                    return b.s(s, 2, '0')
-                  case 'h':
-                    return d(1)
-                  case 'hh':
-                    return d(2)
-                  case 'a':
-                    return $(s, u, !0)
-                  case 'A':
-                    return $(s, u, !1)
-                  case 'm':
-                    return String(u)
-                  case 'mm':
-                    return b.s(u, 2, '0')
-                  case 's':
-                    return String(e.$s)
-                  case 'ss':
-                    return b.s(e.$s, 2, '0')
-                  case 'SSS':
-                    return b.s(e.$ms, 3, '0')
-                  case 'Z':
-                    return i
-                }
-                return null
-              })(t) ||
-              i.replace(':', '')
-            )
-          })
-        }),
-        (m.utcOffset = function () {
-          return 15 * -Math.round(this.$d.getTimezoneOffset() / 15)
-        }),
-        (m.diff = function (r, d, l) {
-          var $,
-            y = this,
-            M = b.p(d),
-            m = O(r),
-            v = (m.utcOffset() - this.utcOffset()) * e,
-            g = this - m,
-            D = function () {
-              return b.m(y, m)
-            }
-          switch (M) {
-            case h:
-              $ = D() / 12
-              break
-            case c:
-              $ = D()
-              break
-            case f:
-              $ = D() / 3
-              break
-            case o:
-              $ = (g - v) / 6048e5
-              break
-            case a:
-              $ = (g - v) / 864e5
-              break
-            case u:
-              $ = g / n
-              break
-            case s:
-              $ = g / e
-              break
-            case i:
-              $ = g / t
-              break
-            default:
-              $ = g
-          }
-          return l ? $ : b.a($)
-        }),
-        (m.daysInMonth = function () {
-          return this.endOf(c).$D
-        }),
-        (m.$locale = function () {
-          return D[this.$L]
-        }),
-        (m.locale = function (t, e) {
-          if (!t) return this.$L
-          var n = this.clone(),
-            r = w(t, e, !0)
-          return r && (n.$L = r), n
-        }),
-        (m.clone = function () {
-          return b.w(this.$d, this)
-        }),
-        (m.toDate = function () {
-          return new Date(this.valueOf())
-        }),
-        (m.toJSON = function () {
-          return this.isValid() ? this.toISOString() : null
-        }),
-        (m.toISOString = function () {
-          return this.$d.toISOString()
-        }),
-        (m.toString = function () {
-          return this.$d.toUTCString()
-        }),
-        M
-      )
-    })(),
-    k = _.prototype
-  return (
-    (O.prototype = k),
-    [
-      ['$ms', r],
-      ['$s', i],
-      ['$m', s],
-      ['$H', u],
-      ['$W', a],
-      ['$M', c],
-      ['$y', h],
-      ['$D', d]
-    ].forEach(function (t) {
-      k[t[1]] = function (e) {
-        return this.$g(e, t[0], t[1])
-      }
-    }),
-    (O.extend = function (t, e) {
-      return t.$i || (t(e, _, O), (t.$i = !0)), O
-    }),
-    (O.locale = w),
-    (O.isDayjs = S),
-    (O.unix = function (t) {
-      return O(1e3 * t)
-    }),
-    (O.en = D[g]),
-    (O.Ls = D),
-    (O.p = {}),
-    O
-  )
-})()

+ 0 - 23
src/components/dateSelect/k-date-picker/utils.js

@@ -1,23 +0,0 @@
-const weeksChinese = ['日', '一', '二', '三', '四', '五', '六']
-const monthsChinese = [
-  '一月',
-  '二月',
-  '三月',
-  '四月',
-  '五月',
-  '六月',
-  '七月',
-  '八月',
-  '九月',
-  '十月',
-  '十一月',
-  '十二月'
-]
-const left =
-  'data:image/svg+xml;base64,PHN2ZyBjbGFzcz0iaWNvbiIgd2lkdGg9IjU0IiBoZWlnaHQ9IjU0IiB2aWV3Qm94PSIwIDAgMTAyNCAxMDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGZpbGw9IiMyYzJjMmMiIGQ9Ik0zODQgNTEybDE5MiAxOTIgMjkuODY3LTI5Ljg2N0w0NDMuNzMzIDUxMmwxNjIuMTM0LTE2Mi4xMzNMNTc2IDMyMCAzODQgNTEyeiIvPjwvc3ZnPg=='
-const left_double =
-  'data:image/svg+xml;base64,PHN2ZyBjbGFzcz0iaWNvbiIgd2lkdGg9IjU0IiBoZWlnaHQ9IjU0IiB2aWV3Qm94PSIwIDAgMTAyNCAxMDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGZpbGw9IiMyYzJjMmMiIGQ9Ik01NTAuNCA0OTQuOTMzbDE5MiAxOTIgMjkuODY3LTI5Ljg2Ni0xNjIuMTM0LTE2Mi4xMzRMNzcyLjI2NyAzMzIuOCA3NDIuNCAzMDIuOTMzbC0xOTIgMTkyem0tMjU2IDBsMTkyIDE5MiAyOS44NjctMjkuODY2LTE2Mi4xMzQtMTYyLjEzNEw1MTYuMjY3IDMzMi44IDQ4Ni40IDMwMi45MzNsLTE5MiAxOTJ6Ii8+PC9zdmc+'
-const closable =
-  'data:image/svg+xml;base64,PHN2ZyBjbGFzcz0iaWNvbiIgd2lkdGg9IjU0IiBoZWlnaHQ9IjU0IiB2aWV3Qm94PSIwIDAgMTAyNCAxMDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGZpbGw9IiMyYzJjMmMiIGQ9Ik00ODEuODM1IDUxMkwxNTUuNTg0IDE4NS43NWEyMS4zMzMgMjEuMzMzIDAgMCAxIDMwLjE2NS0zMC4xNjZMNTEyIDQ4MS44MzRsMzI2LjI1LTMyNi4yNWEyMS4zMzMgMjEuMzMzIDAgMCAxIDMwLjE2NiAzMC4xNjVMNTQyLjE2NiA1MTJsMzI2LjI1IDMyNi4yNWEyMS4zMzMgMjEuMzMzIDAgMCAxLTMwLjE2NSAzMC4xNjZMNTEyIDU0Mi4xNjZsLTMyNi4yNSAzMjYuMjVhMjEuMzMzIDIxLjMzMyAwIDEgMS0zMC4xNjYtMzAuMTY1TDQ4MS44MzQgNTEyeiIvPjwvc3ZnPg=='
-
-export { weeksChinese, monthsChinese, left, left_double, closable }

+ 0 - 45
src/components/noData/index.vue

@@ -1,45 +0,0 @@
-<!--
- * @Description: 无数据
- * @Author: hanyu
- * @Date: 2020-07-21 10:14:59
- * @LastEditTime: 2022/12/01
- * @LastEditors: Please set LastEditors
--->
-<template>
-  <view class="">
-    <view class="no-data">
-      <image src="@/static/images/common/no-data.png" />
-      <text class="txt">{{ desc }}</text>
-    </view>
-  </view>
-</template>
-
-<script setup lang="ts">
-const props = withDefaults(
-  defineProps<{
-    desc?: string
-  }>(),
-  {
-    desc: '暂无数据'
-  }
-)
-</script>
-<style lang="scss" scoped>
-.no-data {
-  display: flex;
-  align-items: center;
-  justify-content: center;
-  padding-top: 300rpx;
-  flex-direction: column;
-
-  .txt {
-    margin-top: 28rpx;
-    font-size: 28rpx;
-    color: #898989;
-  }
-  image {
-    width: 300rpx;
-    height: 260rpx;
-  }
-}
-</style>

+ 0 - 147
src/components/sharePopup/index.vue

@@ -1,147 +0,0 @@
-<template>
-  <uv-popup ref="shrePopupRef" mode="bottom" round="15" @change="popupChange">
-    <view class="share-popup">
-      <view class="btns">
-        <button class="btn" plain="true" @click="close">取消</button>
-        <button
-          :disabled="disabled"
-          class="btn confirm"
-          plain="true"
-          :data-title="shareTitle"
-          :data-id="sharePopupId"
-          :data-packageId="packageId"
-          :data-remark="remark || ''"
-          open-type="share"
-        >
-          确定
-        </button>
-      </view>
-      <view class="tips"> 注意:不能针对非医疗专业人员转发处方药相关宣传信息。 </view>
-      <view class="remark">
-        <view class="title">备注</view>
-        <uv-input v-model="remark" />
-      </view>
-      <view class="picker">
-        <view class="title">选择执行包</view>
-        <picker-view @change="pickerChange" @pickstart="pickStart" @pickend="pickEnd">
-          <picker-view-column class="picker-view-column">
-            <view class="picker-item" v-for="item in packageList" :key="item.packageList">{{
-              item.label
-            }}</view>
-          </picker-view-column>
-        </picker-view>
-      </view>
-    </view>
-  </uv-popup>
-</template>
-
-<script setup lang="ts">
-import { getPackageListByTaskTypeApi } from '@/service/modules/getTask'
-import { ref, watch } from 'vue'
-import { defineEmits } from 'vue'
-
-const emit = defineEmits(['initInfo'])
-
-const props = defineProps({
-  sharePopupType: String,
-  sharePopupId: String,
-  shareTitle: String
-})
-
-watch(
-  () => props.sharePopupId,
-  () => {
-    shrePopupRef.value.open()
-    getPackageListByTaskType()
-  }
-)
-
-const remark = ref()
-const disabled = ref(false)
-
-const shrePopupRef = ref()
-
-const packageId = ref('')
-const packageList = ref()
-const getPackageListByTaskType = async () => {
-  if (props.sharePopupType) {
-    const res = await getPackageListByTaskTypeApi(props.sharePopupType)
-    packageList.value = res.data
-    if (res.data.length) {
-      packageId.value = res.data[0].value
-    }
-  }
-}
-
-const pickerChange = (e: any) => {
-  const val = e.detail.value[0]
-  packageId.value = packageList.value[val].value
-}
-
-const pickStart = () => {
-  disabled.value = true
-}
-const pickEnd = () => {
-  disabled.value = false
-}
-
-const close = () => {
-  shrePopupRef.value.close()
-}
-
-const popupChange = (e: any) => {
-  if (!e.show) {
-    emit('initInfo')
-  }
-}
-defineExpose({
-  close
-})
-</script>
-
-<style lang="scss" scoped>
-.share-popup {
-  height: 65vh;
-  padding: 30rpx;
-  .btns {
-    height: 80rpx;
-    padding: 0 20rpx;
-    display: flex;
-    justify-content: space-between;
-    align-items: center;
-
-    .btn {
-      margin: 0;
-      height: 80rpx;
-      font-size: 30rpx;
-      border: none;
-    }
-    .confirm {
-      color: #6eb657;
-    }
-  }
-  .tips {
-    margin-top: 30rpx;
-    color: #f91f1f;
-    font-size: 24rpx;
-    line-height: 30rpx;
-  }
-  .remark {
-    margin-top: 30rpx;
-    .title {
-      margin-bottom: 20rpx;
-    }
-  }
-  .picker {
-    margin-top: 30rpx;
-    .picker-view-column {
-      margin-top: 30rpx;
-      height: 25vh;
-      .picker-item {
-        text-align: center;
-        line-height: 68rpx;
-      }
-    }
-  }
-}
-</style>

+ 0 - 89
src/components/tabber/index.vue

@@ -1,89 +0,0 @@
-<template>
-  <uv-tabbar :value="current" @change="change" activeColor="#6eb657">
-    <uv-tabbar-item v-for="item in currList" :text="item.text" :key="item.text" :name="item.name">
-      <template v-slot:active-icon>
-        <image class="icon" :src="item.selectedIconPath"></image>
-      </template>
-      <template v-slot:inactive-icon>
-        <image class="icon" :src="item.iconPath"></image>
-      </template>
-    </uv-tabbar-item>
-  </uv-tabbar>
-</template>
-
-<script setup lang="ts">
-import { onShow } from '@dcloudio/uni-app'
-import { ref } from 'vue'
-import { useTabbar } from '@/store/tabbar'
-const tabbar = useTabbar()
-const listA = [
-  {
-    text: '工作台',
-    name: 'work',
-    path: '/pages/index/index',
-    iconPath: '/static/images/common/tabbar/work.png',
-    selectedIconPath: '/static/images/common/tabbar/workAct.png'
-  },
-  {
-    text: '资讯',
-    name: 'news',
-    path: '/pages/news/index',
-    iconPath: '/static/images/common/tabbar/news.png',
-    selectedIconPath: '/static/images/common/tabbar/newsAct.png'
-  },
-  {
-    text: '我的',
-    name: 'mine',
-    path: '/pages/mine/index',
-    iconPath: '/static/images/common/tabbar/mine.png',
-    selectedIconPath: '/static/images/common/tabbar/mineAct.png'
-  }
-]
-const listB = [
-  {
-    text: '工作台',
-    name: 'work',
-    path: '/pages/index/index',
-    iconPath: '/static/images/common/tabbar/work.png',
-    selectedIconPath: '/static/images/common/tabbar/workAct.png'
-  },
-  {
-    text: '我的',
-    name: 'mine',
-    path: '/pages/mine/index',
-    iconPath: '/static/images/common/tabbar/mine.png',
-    selectedIconPath: '/static/images/common/tabbar/mineAct.png'
-  }
-]
-
-const currList = ref(listA)
-
-const current = ref()
-onShow(() => {
-  if (tabbar.roleType === 0) {
-    currList.value = listA
-  } else {
-    currList.value = listB
-  }
-  current.value = tabbar.currentTabbar
-})
-
-const change = (name: string) => {
-  if (name === current.value) return
-  const curr = currList.value.find((item) => item.name === name)
-  tabbar.setCurrentTabbar(name)
-  if (curr) {
-    const path = curr.path
-    uni.switchTab({
-      url: path
-    })
-  }
-}
-</script>
-
-<style lang="scss" scoped>
-.icon {
-  width: 36rpx;
-  height: 36rpx;
-}
-</style>

+ 0 - 150
src/components/table/tableData.vue

@@ -1,150 +0,0 @@
-<template>
-  <view class="table">
-    <uni-table border stripe emptyText="暂无更多数据">
-      <!-- 表头行 -->
-      <uni-tr>
-        <uni-th align="center" width="50">序号</uni-th>
-        <uni-th align="center">上级服务类型</uni-th>
-        <uni-th align="center" width="50">占比(%)</uni-th>
-        <uni-th align="center">任务类型</uni-th>
-        <uni-th align="center" width="50">积分值</uni-th>
-        <uni-th align="center" width="50">任务个数</uni-th>
-        <uni-th align="center" width="80">任务积分值</uni-th>
-      </uni-tr>
-      <!-- 表格数据行 -->
-      <uni-tr v-for="(item, index) in tableData" :key="item?.taskTypeId" index>
-        <uni-td>{{ index + 1 }}</uni-td>
-        <uni-td>{{ showInfo(item, index) }}</uni-td>
-        <uni-td>
-          <text
-            :class="{
-              error: item.score != 0 && (item.percentage < 25 || item.percentage > 50)
-            }"
-            >{{ showPercentage(item, index) }}</text
-          >
-        </uni-td>
-        <uni-td>{{ item.taskTypeName }}</uni-td>
-        <uni-td>{{ item.score }}</uni-td>
-        <uni-td>
-          <input type="number" @blur="(e) => change(e, index, item)" v-model="item.qty" />
-        </uni-td>
-        <uni-td>{{ item.subtotal }}</uni-td>
-      </uni-tr>
-      <!-- 结尾 -->
-      <uni-tr>
-        <uni-td>总计</uni-td>
-        <uni-td>---</uni-td>
-        <uni-td>---</uni-td>
-        <uni-td>---</uni-td>
-        <uni-td>---</uni-td>
-        <uni-td>{{ totalQty }}</uni-td>
-        <uni-td>{{ totalsubtotal }}</uni-td>
-      </uni-tr>
-    </uni-table>
-  </view>
-</template>
-
-<script setup lang="ts">
-import { getWmtasktypePageApi } from '@/service/modules/objectivesList'
-import { onMounted, ref } from 'vue'
-
-const porops = defineProps({
-  planScore: Number
-})
-
-const tableData = ref<any[]>([])
-
-const getList = async () => {
-  const obj = {
-    current: 1,
-    size: 100,
-    status: '3'
-  }
-  const res = await getWmtasktypePageApi(obj)
-  tableData.value = res?.data?.records.map((item: any) => {
-    if (item.delFlag == 0) {
-      const obj = {
-        qty: 0,
-        subtotal: 0,
-        editable: false,
-        baseId: item.baseId,
-        percentage: 0,
-        taskTypeName: item.taskTypeName,
-        score: item.score,
-        taskTypeId: item.id
-      }
-      return obj
-    }
-  })
-}
-
-const showInfo = (item: any, index: number) => {
-  if (index === 0) {
-    return item.baseId
-  }
-  if (tableData.value[index - 1].baseId === item.baseId) {
-    return ''
-  } else {
-    return item.baseId
-  }
-}
-const showPercentage = (item: any, index: number) => {
-  if (index === 0) {
-    return item.percentage
-  }
-  if (tableData.value[index - 1].baseId === item.baseId) {
-    return ''
-  } else {
-    return item.percentage
-  }
-}
-
-onMounted(() => {
-  getList()
-})
-
-const totalQty = ref(0)
-const totalsubtotal = ref(0)
-
-const calculatePercentage = (part, total) => {
-  if (total === 0) return 0 // 避免除以0错误
-  return Number(((part / total) * 100).toFixed(2))
-}
-
-const change = (detail: any, index: number, row: any) => {
-  tableData.value[index].subtotal = tableData.value[index].qty * tableData.value[index].score
-  totalQty.value = tableData.value.reduce((sum, row) => Number(sum) + Number(row.qty), 0)
-  totalsubtotal.value = tableData.value.reduce((sum, row) => Number(sum) + Number(row.subtotal), 0)
-
-  const allSubtotal = tableData.value.reduce((accumulator, currentValue) => {
-    if (currentValue.baseId === row.baseId) {
-      return accumulator + currentValue.subtotal
-    }
-    return accumulator
-  }, 0)
-
-  const percentage = calculatePercentage(allSubtotal, porops.planScore)
-  tableData.value.forEach((item) => {
-    if (item.baseId === row.baseId) {
-      item.percentage = percentage
-    }
-  })
-}
-
-const getData = () => {
-  return tableData.value
-}
-defineExpose({ getData })
-</script>
-
-<style lang="scss" scoped>
-.table {
-  width: 700rpx;
-  min-height: 300rpx;
-  background-color: #fff;
-  border-radius: 12rpx;
-}
-.error {
-  color: #f78989;
-}
-</style>

+ 0 - 123
src/components/table/tableDetail.vue

@@ -1,123 +0,0 @@
-<template>
-  <view class="table">
-    <uni-table border stripe emptyText="暂无更多数据">
-      <!-- 表头行 -->
-      <uni-tr>
-        <uni-th align="center" width="50">序号</uni-th>
-        <uni-th align="center">上级服务类型</uni-th>
-        <uni-th align="center" width="50">占比(%)</uni-th>
-        <uni-th align="center">任务类型</uni-th>
-        <uni-th align="center" width="50">积分值</uni-th>
-        <uni-th align="center" width="50">任务个数</uni-th>
-        <uni-th align="center" width="80">任务积分值</uni-th>
-      </uni-tr>
-      <!-- 表格数据行 -->
-      <uni-tr v-for="(item, index) in tableData" :key="item?.taskTypeId" index>
-        <uni-td>{{ index + 1 }}</uni-td>
-        <uni-td>{{ showInfo(item, index) }}</uni-td>
-        <uni-td>
-          <text
-            :class="{
-              error: item.score != 0 && (item.percentage < 25 || item.percentage > 50)
-            }"
-            >{{ showPercentage(item, index) }}</text
-          >
-        </uni-td>
-        <uni-td>{{ item.taskTypeName }}</uni-td>
-        <uni-td>{{ item.score }}</uni-td>
-        <uni-td>
-          <input type="number" @blur="(e) => change(e, index, item)" v-model="item.qty" />
-        </uni-td>
-        <uni-td>{{ item.subtotal }}</uni-td>
-      </uni-tr>
-      <!-- 结尾 -->
-      <uni-tr>
-        <uni-td>总计</uni-td>
-        <uni-td>---</uni-td>
-        <uni-td>---</uni-td>
-        <uni-td>---</uni-td>
-        <uni-td>---</uni-td>
-        <uni-td>{{ totalQty }}</uni-td>
-        <uni-td>{{ totalsubtotal }}</uni-td>
-      </uni-tr>
-    </uni-table>
-  </view>
-</template>
-
-<script setup lang="ts">
-import { getPlanDetailsApi } from '@/service/modules/objectivesList'
-import { ref } from 'vue'
-
-const porops = defineProps({
-  planScore: Number
-})
-
-const tableData = ref<any[]>([])
-const totalQty = ref(0)
-const totalsubtotal = ref(0)
-const getDetail = async (id: string) => {
-  const res = await getPlanDetailsApi(id)
-  tableData.value = res.data.items
-  totalQty.value = res.data.qty
-  totalsubtotal.value = res.data.total
-
-  let arr = tableData.value.map((item) => item.baseId)
-  arr = [...new Set(arr)]
-  for (let currBaseId of arr) {
-    const allSubtotal = tableData.value.reduce((accumulator, currentValue) => {
-      if (currentValue.baseId === currBaseId) {
-        return accumulator + currentValue.subtotal
-      }
-      return accumulator
-    }, 0)
-    const percentage = calculatePercentage(allSubtotal, porops.planScore)
-    tableData.value.forEach((item) => {
-      if (item.baseId === currBaseId) {
-        item.percentage = percentage
-      }
-    })
-  }
-
-  return res
-}
-
-const calculatePercentage = (part, total) => {
-  if (total === 0) return 0 // 避免除以0错误
-  return Number(((part / total) * 100).toFixed(2))
-}
-
-const showInfo = (item: any, index: number) => {
-  if (index === 0) {
-    return item.baseId
-  }
-  if (tableData.value[index - 1].baseId === item.baseId) {
-    return ''
-  } else {
-    return item.baseId
-  }
-}
-const showPercentage = (item: any, index: number) => {
-  if (index === 0) {
-    return item.percentage
-  }
-  if (tableData.value[index - 1].baseId === item.baseId) {
-    return ''
-  } else {
-    return item.percentage
-  }
-}
-
-defineExpose({ getDetail })
-</script>
-
-<style lang="scss" scoped>
-.table {
-  width: 700rpx;
-  min-height: 300rpx;
-  background-color: #fff;
-  border-radius: 12rpx;
-}
-.error {
-  color: #f78989;
-}
-</style>

+ 0 - 203
src/components/uploadImg/index.vue

@@ -1,203 +0,0 @@
-<template>
-  <view class="upload" @click="beforeUploadImg">
-    <view class="icon-add"></view>
-    <view class="icon-add rotate"></view>
-    <canvas
-      :style="{
-        width: `${thumbWidth}px`,
-        height: `${thumbHeight}px`,
-        position: 'fixed',
-        left: '10000rpx'
-      }"
-      canvas-id="myCanvas"
-    ></canvas>
-  </view>
-</template>
-
-<script setup lang="ts">
-import { uploadFile } from '@/utils/upload'
-import { onMounted, defineEmits, ref, getCurrentInstance } from 'vue'
-import { getWxLocationApi } from '@/wxUtils/index'
-import { qqmapsdk } from '@/wxUtils/QQMapWX'
-
-const emit = defineEmits(['uploadImgInfo'])
-
-const { ctx: _this } = getCurrentInstance() as any
-
-const porops = defineProps({
-  count: Number
-})
-
-interface imgType {
-  path: string
-  url: string
-}
-
-const sourceType = ref<string[]>([])
-
-const beforeUploadImg = () => {
-  uni.showActionSheet({
-    itemList: ['相机', '从相册选择'],
-    success: function (res) {
-      if (res.tapIndex === 0) {
-        sourceType.value = ['camera']
-      } else {
-        sourceType.value = ['album']
-      }
-      uploadImg()
-    },
-    fail: function (res) {}
-  })
-}
-
-onMounted(() => {
-  getLocation()
-})
-
-const address = ref()
-const getLocation = async () => {
-  try {
-    const res: any = await getWxLocationApi()
-    qqmapsdk.reverseGeocoder({
-      location: {
-        latitude: res?.latitude,
-        longitude: res?.longitude
-      },
-      success: function (res: any) {
-        const result = res.result
-        address.value = result.address
-      }
-    })
-  } catch (e) {
-    uni.showToast({
-      title: '获取定位失败',
-      icon: 'none'
-    })
-    console.log(e)
-  }
-}
-
-const uploadImg = async () => {
-  uni.chooseImage({
-    count: porops?.count || 9,
-    sizeType: ['original', 'compressed'],
-    sourceType: sourceType.value,
-    async success(res: any) {
-      let tempFiles = res.tempFiles
-      // 当前相片来源为拍照
-      if (sourceType.value[0] === 'camera') {
-        const path = await addWatermark(tempFiles[0].path)
-        if (path) {
-          res.tempFiles[0].path = path
-          tempFiles[0].path = path
-        }
-      }
-      // 保存上传成功的数据
-      const imageValue: imgType[] = []
-      // 使用map而不是forEach,因为map会返回一个Promise数组
-      const uploadPromises = tempFiles.map(async (item: any) => {
-        let res: any = await uploadFile(item.path)
-        if (res?.code === 0) {
-          // 当前为拍照
-          if (sourceType.value[0] === 'camera') {
-            if (res?.data?.url) {
-              res.data.url = res.data.url + ';1'
-            }
-          } else if (sourceType.value[0] === 'album') {
-            res.data.url = res.data.url + ';2'
-          }
-          imageValue.push({
-            path: res?.data?.url,
-            url: import.meta.env.VITE_APP_URL + res?.data?.url
-          })
-        }
-      })
-      // 使用Promise.all等待所有的uploadFile函数执行完毕
-      await Promise.all(uploadPromises)
-      // 所有uploadFile上传完成后执行emit
-      emit('uploadImgInfo', imageValue)
-    }
-  })
-}
-
-const thumbWidth = ref()
-const thumbHeight = ref()
-const addWatermark = (fileUrl: string) => {
-  const dpr = wx.getSystemInfoSync().pixelRatio
-  return new Promise((resolve) => {
-    uni.getImageInfo({
-      src: fileUrl, // 替换为你的图片路径
-      success: async (res) => {
-        thumbWidth.value = res.width
-        thumbHeight.value = res.height
-        // #ifdef MP-WEIXIN
-        let text = address.value
-        let textArr = []
-        let oneRowTextNum = Math.floor(thumbWidth.value / 31) // 一行可以显示的文字数, 除以的31稍微比文字30大, 防止内容溢出
-        if (text?.length <= oneRowTextNum) {
-          textArr.push(text)
-        } else {
-          const totalRowNum = Math.ceil(text.length / oneRowTextNum) // 文字要显示的总行数
-          for (let i = 0; i < totalRowNum; i++) {
-            textArr.push(text.substr(i * oneRowTextNum, oneRowTextNum))
-          }
-        }
-        const time =
-          new Date().toJSON().substring(0, 10) + ' ' + new Date().toTimeString().substring(0, 8)
-        const ctx = uni.createCanvasContext('myCanvas', _this)
-        ctx.drawImage(fileUrl, 0, 0, thumbWidth.value, thumbHeight.value) //先画出图片
-        ctx.setFontSize(30) //注意:设置文字大小必须放在填充文字之前,否则不生效
-        ctx.setFillStyle('white')
-        for (let i = 0; i < textArr.length; i++) {
-          ctx.fillText(textArr[i], 10, 72 + i * 40)
-        }
-        ctx.setFontSize(26)
-        ctx.fillText(time, 10, 35)
-        ctx.draw(false, () => {
-          setTimeout(() => {
-            //绘画完成回调
-            //生成图片
-            uni.canvasToTempFilePath(
-              {
-                fileType: 'jpg',
-                canvasId: 'myCanvas',
-                success: async (res: any) => {
-                  resolve(res.tempFilePath)
-                },
-                fail(err: any) {
-                  console.log(err)
-                }
-              },
-              _this
-            )
-          }, 600)
-        })
-        // #endif
-      }
-    })
-  })
-}
-</script>
-
-<style lang="scss" scoped>
-.upload {
-  width: 200rpx;
-  height: 200rpx;
-  border: 2rpx solid #eee;
-  border-radius: 3px;
-  display: flex;
-  align-items: center;
-  justify-content: center;
-
-  .icon-add {
-    width: 100rpx;
-    height: 10rpx;
-    background-color: #f1f1f1;
-    border-radius: 4rpx;
-  }
-  .rotate {
-    position: absolute;
-    transform: rotate(90deg);
-  }
-}
-</style>

+ 0 - 0
src/config/index.ts


+ 0 - 37
src/constants/provinces.ts

@@ -1,37 +0,0 @@
-export const provinces = [
-  { label: '全国', value: '1' },
-  { label: '北京市', value: '11' },
-  { label: '天津市', value: '12' },
-  { label: '河北省', value: '13' },
-  { label: '山西省', value: '14' },
-  { label: '内蒙古自治区', value: '15' },
-  { label: '辽宁省', value: '21' },
-  { label: '吉林省', value: '22' },
-  { label: '黑龙江省', value: '23' },
-  { label: '上海市', value: '31' },
-  { label: '江苏省', value: '32' },
-  { label: '浙江省', value: '33' },
-  { label: '安徽省', value: '34' },
-  { label: '福建省', value: '35' },
-  { label: '江西省', value: '36' },
-  { label: '山东省', value: '37' },
-  { label: '河南省', value: '41' },
-  { label: '湖北省', value: '42' },
-  { label: '湖南省', value: '43' },
-  { label: '广东省', value: '44' },
-  { label: '广西壮族自治区', value: '45' },
-  { label: '海南省', value: '46' },
-  { label: '重庆市', value: '50' },
-  { label: '四川省', value: '51' },
-  { label: '贵州省', value: '52' },
-  { label: '云南省', value: '53' },
-  { label: '西藏自治区', value: '54' },
-  { label: '陕西省', value: '61' },
-  { label: '甘肃省', value: '62' },
-  { label: '青海省', value: '63' },
-  { label: '宁夏回族自治区', value: '64' },
-  { label: '新疆维吾尔自治区', value: '65' },
-  { label: '台湾', value: '66' },
-  { label: '香港', value: '67' },
-  { label: '澳门', value: '68' }
-]

+ 0 - 6
src/constants/rolesType.ts

@@ -1,6 +0,0 @@
-export enum RoleEnum {
-  '全职学术推广员' = 5,
-  '兼职学术推广员' = 6,
-  '兼职CRC' = 10,
-  'HCP' = 13
-}

+ 0 - 9
src/custom.d.ts

@@ -1,9 +0,0 @@
-declare module '@climblee/uv-ui'
-
-declare module './mp_ecard_sdk/main.js'
-
-declare interface Uni {
-  $uv: any
-}
-
-declare const wx: any

+ 0 - 8
src/env.d.ts

@@ -1,8 +0,0 @@
-/// <reference types="vite/client" />
-
-declare module '*.vue' {
-  import { DefineComponent } from 'vue'
-  // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/ban-types
-  const component: DefineComponent<{}, {}, any>
-  export default component
-}

+ 0 - 6
src/hooks/useGetLoginStatus.ts

@@ -1,6 +0,0 @@
-import { useLoginStore } from '@/store/login'
-
-export default function useGetLoginStatus() {
-  const loginStore = useLoginStore()
-  return loginStore.isLogin
-}

+ 0 - 17
src/hooks/useLoginout.ts

@@ -1,17 +0,0 @@
-import { useLoginStore } from '@/store/login'
-import { useTabbar } from '@/store/tabbar'
-
-export default async function useLogiutFn() {
-  const loginStore = useLoginStore()
-  const tabbarStore = useTabbar()
-  if (loginStore.accessToken) {
-    await loginStore.logoutFn()
-  }
-  loginStore.$reset()
-  tabbarStore.$reset()
-  setTimeout(() => {
-    uni.reLaunch({
-      url: '/pages/login/index'
-    })
-  }, 500)
-}

+ 0 - 6
src/hooks/useUpdatedUserInfo.ts

@@ -1,6 +0,0 @@
-import { useLoginStore } from '@/store/login'
-
-export default function useUpdateUserInfo() {
-  const loginStore = useLoginStore()
-  if (loginStore.isLogin) loginStore.getUserInfoByCode()
-}

+ 0 - 26
src/main.ts

@@ -1,26 +0,0 @@
-import { createSSRApp } from 'vue'
-import * as Pinia from 'pinia'
-import uvUI from '@climblee/uv-ui'
-import piniaPluginPersistedstate from 'pinia-plugin-persistedstate'
-import tabbar from './components/tabber/index.vue'
-import { Request } from '@/service/request'
-import App from './App.vue'
-export function createApp() {
-  const app = createSSRApp(App)
-  app.config.globalProperties.uni = uni
-
-  const store = Pinia.createPinia()
-
-  app.component('Tabbar', tabbar)
-  store.use(piniaPluginPersistedstate)
-
-  app.use(store)
-  app.use(uvUI)
-
-  Request()
-
-  return {
-    app,
-    Pinia
-  }
-}

+ 0 - 91
src/manifest.json

@@ -1,91 +0,0 @@
-{
-  "name": "",
-  "appid": "",
-  "description": "",
-  "versionName": "1.0.0",
-  "versionCode": "100",
-  "transformPx": false,
-  /* 5+App特有相关 */
-  "app-plus": {
-    "usingComponents": true,
-    "nvueStyleCompiler": "uni-app",
-    "compilerVersion": 3,
-    "splashscreen": {
-      "alwaysShowBeforeRender": true,
-      "waiting": true,
-      "autoclose": true,
-      "delay": 0
-    },
-    /* 模块配置 */
-    "modules": {},
-    /* 应用发布信息 */
-    "distribute": {
-      /* android打包配置 */
-      "android": {
-        "permissions": [
-          "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
-          "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
-          "<uses-permission android:name=\"android.permission.VIBRATE\"/>",
-          "<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
-          "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
-          "<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
-          "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
-          "<uses-permission android:name=\"android.permission.CAMERA\"/>",
-          "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
-          "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
-          "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
-          "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
-          "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
-          "<uses-feature android:name=\"android.hardware.camera\"/>",
-          "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
-        ]
-      },
-      /* ios打包配置 */
-      "ios": {},
-      /* SDK配置 */
-      "sdkConfigs": {}
-    }
-  },
-  /* 快应用特有相关 */
-  "quickapp": {},
-  /* 小程序特有相关 */
-  "mp-weixin": {
-    "appid": "wx1c531f81360684cd",
-    "setting": {
-      "urlCheck": false
-    },
-    "usingComponents": true,
-    "permission": {
-      "scope.userLocation": {
-        "desc": "你的位置信息将用于小程序位置接口的效果展示"
-      },
-      "scope.userFuzzyLocation": {
-        "desc": "你的位置信息将用于小程序位置接口的效果展示"
-      }
-    },
-    "requiredPrivateInfos": [
-      "getLocation",
-      "onLocationChange",
-      "startLocationUpdateBackground",
-      "chooseAddress"
-    ]
-  },
-  "h5": {
-    "router": {
-      "base": "./"
-    }
-  },
-  "mp-alipay": {
-    "usingComponents": true
-  },
-  "mp-baidu": {
-    "usingComponents": true
-  },
-  "mp-toutiao": {
-    "usingComponents": true
-  },
-  "uniStatistics": {
-    "enable": false
-  },
-  "vueVersion": "3"
-}

+ 0 - 1
src/mp_ecard_sdk/constants/log.js

@@ -1 +0,0 @@
-const Log={SourceType:"mp_sdk_uni",version:"1.0.0",initSdk:"INIT_SDK",getConfig:"GET_CONFIG",getConfigRetry:"GET_CONFIG_BY_RETRY",webViewResult:"WEBVIEW_RESULT",webViewError:"WEBVIEW_ERROR",navigateToEid:"NAVIGATE_TO_EID",navigateBackFromEid:"NAVIGATE_BACK_FROM_EID",navigateBackFromEidFail:"NAVIGATE_BACK_FROM_EID_FAIL",startEid:"START_EID",startEidFail:"START_EID_FAIL",eidVerifyDone:"EID_VERIFY_DONE",requestFail:"REQUEST_FAIL",requestCatch:"REQUEST_CATCH"};export default Log;

+ 0 - 1
src/mp_ecard_sdk/globalConfig.js

@@ -1 +0,0 @@
-export default { normalPath: '' }

Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
src/mp_ecard_sdk/index.css


+ 0 - 1
src/mp_ecard_sdk/index.js

@@ -1 +0,0 @@
-export const a = 'dasd'

+ 0 - 1
src/mp_ecard_sdk/index/index.js

@@ -1 +0,0 @@
-import getParameterByName from"../utils/getParameterByName";import Log from"../constants/log.js";import{$http}from"../utils/http";export default{data:()=>({token:"",appName:"test",isAgree:!1,redirectUri:"",isNavigating:!1,showWebView:!0}),onLoad(e){const{token:t}=e;this.token=t,this.redirectUri=`${uni.eidBaseUrl}/api/v1/Redirect?token=${t}`,this.getConfig(t)},methods:{changeAgree(e){const t=!this.isAgree;this.isAgree=t},getConfig(e){const t=this;$http({url:`/api/v1/GetConfig?token=${e}`,token:e,method:"GET",reTry:{tryCount:3}},o=>{if(0!==o.ErrorCode)uni.reportLogToEid({token:e,event:Log.getConfigFail,errCode:"",errMsg:o.ErrorMsg}),uni.showModal({title:"提示",content:"网络失败,请点击重新尝试",showCancel:!1,success(){uni.navigateBack()}});else{if(uni.reportLogToEid({token:e,event:Log.getConfig,errCode:o.ErrorCode,errMsg:o.ErrorMsg}),o.Data)return void(t.appName=o.Data.AppName);const i=o.ErrorMsg;uni.showModal({title:"提示",content:i,showCancel:!1,success(){uni.navigateBack()}})}})},handleWebViewLoad(e){const t=getParameterByName("success",e.detail.src);"true"===t&&(this.showWebView=!1),uni.reportLogToEid({token:this.token,event:Log.webViewResult,errMsg:`success参数为${t}`})},handleWebViewError(e){this.showWebView=!1,uni.reportLogToEid({token:this.token,event:Log.webViewError,errMsg:e.detail.src})},navigateToEid(){const e=this.token;this.isNavigating=!0;const t=this;uni.navigateToMiniProgram({appId:"wx0e2cb0b052a91c92",path:"pages/huiyan/index",envVersion:uni.eidEnvVersion,extraData:{useHuiyan:!0,huiyanToken:e},success(){uni.eidTokenToCallback=e},complete(o){t.isNavigating=!1,uni.reportLogToEid({token:e,event:Log.navigateToEid,errMsg:o.errMsg})}})}}};

+ 0 - 44
src/mp_ecard_sdk/index/index.vue

@@ -1,44 +0,0 @@
-<template>
-	<view v-if="showWebView">
-		<web-view :src="redirectUri" @load="handleWebViewLoad" @error="handleWebViewError"></web-view>
-	</view>
-
-	<view class="auth" v-else>
-		<view class="auth-logo">
-			<image src="https://faceid-ecard-1254418846.cos.ap-chengdu.myqcloud.com/eidLogo.png" />
-		</view>
-		<view class="title">
-			您正在授权
-			<view class="merchant-name">{{' '+ appName}}</view>
-		</view>
-		<view class="sub-title">通过腾讯云E证通核验并获取您的身份信息</view>
-		<view class="agreement">
-			<checkbox-group @change="changeAgree">
-				<checkbox :value="agreement" :checked="isAgree" />
-			</checkbox-group>
-			<view>
-				<view>
-					<view @click="changeAgree" style="display:inline">已阅读并同意</view>
-					<navigator url="/mp_ecard_sdk/protocol/service/service">《腾讯云E证通服务使用协议》</navigator>和
-				</view>
-				<view>
-					<navigator url="/mp_ecard_sdk/protocol/eid/eid">《eID数字身份小程序服务协议》</navigator>
-				</view>
-			</view>
-		</view>
-		<view class="button-area">
-			<button @click='navigateToEid' :disabled="!isAgree || isNavigating">
-				确认授权
-			</button>
-		</view>
-	</view>
-</template>
-
-<script>
-import index from "./index";
-export default index;
-</script>
-
-<style>
-@import url('../index.css');
-</style>

+ 0 - 91
src/mp_ecard_sdk/main.js

@@ -1,91 +0,0 @@
-/* eslint-disable no-undef */
-import validate from './utils/validate'
-import Log from './constants/log'
-import globalConfig from './globalConfig'
-function initEid(
-  e = 'https://eid.faceid.qq.com',
-  o = 'release',
-  n = 'https://eid-enhance.faceid.qq.com'
-) {
-  ;(uni.eidBaseUrl = e),
-    (uni.eidEnvVersion = o),
-    (uni.eidBackUpUrl = n),
-    uni.onAppShow((e) => {
-      const { scene: o } = e
-      if (1038 !== o) return
-      const { referrerInfo: n } = e,
-        { appId: i, extraData: t } = n
-      if ('wx0e2cb0b052a91c92' !== i || !t) return
-      const { verifyDone: r, token: a } = t
-      r && uni.handleEidVerifyDone
-        ? uni.eidTokenToCallback &&
-          uni.eidTokenToCallback === a &&
-          ((uni.eidTokenToCallback = ''),
-          uni.reportLogToEid({
-            token: a,
-            event: Log.navigateBackFromEid,
-            errMsg: `从EID核身完成返回,token:${a},verifyDone:${r}`
-          }),
-          uni.handleEidVerifyDone(t))
-        : uni.reportLogToEid({
-            token: a,
-            event: Log.navigateBackFromEidFail,
-            errMsg: `核验未完成或者没有处理核验完成的函数,token:${a},verifyDone:${r}`
-          })
-    })
-  const i = uni.getSystemInfoSync(),
-    { version: t } = i
-  uni.reportLogToEid = function (e) {
-    const { token: o = '', event: n = '', errCode: i = '', errMsg: r = '', data: a = {} } = e,
-      s = new Date(),
-      d = {
-        Token: o,
-        SourceType: Log.SourceType,
-        SourceVersion: Log.version,
-        EnvVersion: t,
-        Timestamp: s.getTime(),
-        Event: n,
-        ErrorCode: 'number' == typeof i ? i.toString() : i,
-        ErrorMsg: r,
-        Data: JSON.stringify(a)
-      }
-    console.log('开始上报日志:', d),
-      uni.request({
-        url: `${uni.eidBaseUrl}/api/common/ReportEvent`,
-        method: 'POST',
-        data: d,
-        success(e) {
-          console.log('上报日志完成:', 'payload:', d, 'res:', e)
-        }
-      })
-  }
-}
-function startEid(e) {
-  const { data: o, verifyDoneCallback: n } = e
-  if (!o || !n)
-    return (
-      uni.reportLogToEid({ token: i, event: Log.startEidFail, errMsg: '传入的参数有误' }),
-      void uni.showModal({ title: '提示', content: '传入的参数有误', showCancel: !1 })
-    )
-  const { token: i } = o
-  if (!validate.isValidateToken(i))
-    return (
-      uni.reportLogToEid({
-        token: i,
-        event: Log.startEidFail,
-        errMsg: `传入的token有误,token:${i}`
-      }),
-      void uni.showModal({ title: '提示', content: '传入的token有误', showCancel: !1 })
-    )
-  ;(uni.handleEidVerifyDone = (e) => {
-    const { token: o } = e
-    uni.navigateBack({
-      success() {
-        uni.reportLogToEid({ token: o, event: Log.EidVerifyDone, errMsg: `验证完成,token:${o}` }),
-          n({ token: o, verifyDone: !0 })
-      }
-    })
-  }),
-    uni.navigateTo({ url: `${globalConfig.normalPath}/mp_ecard_sdk/index/index?token=${i}` })
-}
-export { initEid, startEid }

+ 0 - 110
src/mp_ecard_sdk/protocol/eid/eid.vue

@@ -1,110 +0,0 @@
-<template>
-  <view class="protocol">
-    <view class="main">
-      <view class="h1">
-        <text>eID数字身份小程序服务协议</text>
-      </view>
-      <view>
-        <view style="display: inline" class="strong"> eID </view>
-        数字身份小程序是公安部第三研究所提供的为用户签发的采用国产密码算法生成的中国公民数字身份标记,并就用户身份信息和人脸信息通过腾讯的人脸识别验证身份信息功能向权威机构核验与权威数据的相符性。
-      </view>
-      <view>
-        我们特别提示您,
-        <view style="display: inline" class="strong">
-          您在页面点击“已阅读并同意《eID数字身份申请协议》”的行为视为您已经充分阅读并理解、同意本协议的内容并作出相关授权。
-        </view>
-      </view>
-
-      <view class="strong">一、eID数字身份说明</view>
-      <view>
-        eID数字身份是以公民身份号码为根,由公安部第三研究所(以下称“三所”)承建的“公安部公民网络身份识别系统”采用国产密码算法为中国公民生成的数字身份标记。eID数字身份具有以下特点:
-      </view>
-      <view> 1.1 eID数字身份以公民身份号码为根生成; </view>
-      <view> 1.2 eID数字身份采用国产密码算法产生,从eID数字身份无法逆推出公民身份号码原文; </view>
-      <view>
-        1.3
-        eID服务体系对于同一用户,在不同的互联网应用中产生的eID数字身份并不相同,即碎片化处理,防止被大数据技术追踪;
-      </view>
-      <view>
-        1.4
-        eID数字身份由“公安部公民网络身份识别系统”统一管理,碎片化处理后的eID数字身份可以有条件进行同一化处理。
-      </view>
-
-      <view class="strong">二、eID数字身份的签发</view>
-      <view>
-        2.1
-        三所通过eID数字身份小程序在向您签发eID数字身份之前,三所需要对您提供的姓名、身份号码、人脸信息通过腾讯提供的人脸识别验证身份功能与权威机构中的信息进行相符性比对,以确认您提供信息的真实性。
-      </view>
-      <view>
-        2.2
-        在通过相符性比对后,三所为您签发eID数字身份。您的eID数字身份与您申请时提供的身份信息及人脸信息唯一关联。
-      </view>
-
-      <view class="strong">三、eID数字身份小程序的使用</view>
-      <view>
-        在接入了腾讯云E证通的应用场景中,向您提供服务的应用会请您使用腾讯云E证通证明您的身份,腾讯云E证通会跳转到eID数字身份小程序,小程序会拉起腾讯的人脸识别验证功能,提取您的现场人脸视频并通过向权威机构的相应数据进行相符性比对,并将比对结果反馈给eID数字身份小程序。比对通过后,小程序会签发您的eID数字身份,并通过腾讯云E证通转发给向您提供服务的应用,由其决定是否继续向您提供服务。
-      </view>
-
-      <view class="strong">四、个人信息收集、使用、处理</view>
-      <view>
-        4.1 为了使用eID数字身份小程序,
-        <view style="display: inline" class="strong">
-          您授权并同意三所收集、使用您的姓名、身份号码信息、人脸视频,并通过腾讯人脸识别验证身份功能与权威机构的相应数据进行相符性比对,比对通过之后,由三所为您签发eID数字身份并存储您的姓名、身份证号码、人脸照片信息。
-        </view>
-      </view>
-      <view>
-        4.2
-        您授权并同意三所基于您的姓名、身份号码生成您的eID数字身份,并将您的eID数字身份向为您提供服务的应用方提供以完成实名登记、实名认证要求。
-      </view>
-      <view>
-        4.3
-        在您通过eID数字身份向为您提供服务的应用证明您的身份时,您授权并同意三所将相符性比对结果转发给向您提供服务的应用方,由其判断是否通过您的实名实人认证。
-      </view>
-      <view>
-        4.4
-        某些应用方基于国家监管要求或法律要求,在向您提供服务时需要采集并保存您的姓名、身份号码、人脸图像身份信息证明您的身份,在得到您的同意后,三所会将您的身份信息向这些应用方提供。
-      </view>
-      <view>
-        4.5
-        三所在后台存储收集到的个人信息,包括您的姓名、身份号码、人脸图像,对这些信息采取包括但不限于加密处理的技术安全措施进行妥善保管。三所未经您的授权或许可不会向第三方提供您的个人信息。
-      </view>
-      <view>
-        4.6
-        如您希望访问、撤回授权、修改、删除您的个人信息,因eID数字身份小程序未单独为用户提供服务,您可以通过“关于腾讯云E证通-意见反馈”联系我们,并提供必要的身份证明。
-      </view>
-
-      <view class="strong">五、提示</view>
-      <view class="strong">
-        5.1 请您提供真实、准确的姓名、身份号码,否则,无法为您生成eID数字身份;
-      </view>
-      <view class="strong">
-        5.2
-        请您提供本人的姓名、身份号码、人脸图像,并申请本人的eID数字身份。冒用他人身份者将承担身份冒用带来的一切后果与责任。
-      </view>
-      <view> 5.3 冒用他人身份给第三方或三所造成的任何损失,应当依法进行赔偿。 </view>
-
-      <view class="strong">六、免责</view>
-      <view class="strong">
-        您理解并同意,三所仅通过腾讯提供的人脸识别验证身份功能对用户提供的身份信息是否与权威机构的相应数据相符而提供技术服务以及签发eID数字身份,三所不承诺权威机构所提供的相符性验证结果的准确性,对可能导致的不利后果三所不承担责任。
-      </view>
-
-      <view class="strong">七、其它</view>
-      <view class="strong">
-        若您与三所发生任何纠纷或争议,您同意将纠纷或争议提交本协议签订地(即中国上海市徐汇区)有管辖权的人民法院管辖。本协议的成立、生效、履行、解释及纠纷解决,适用中华人民共和国大陆地区法律。
-      </view>
-    </view>
-  </view>
-</template>
-
-<script>
-export default {
-  data() {
-    return {}
-  },
-  methods: {}
-}
-</script>
-
-<style>
-@import url('../../index.css');
-</style>

+ 0 - 195
src/mp_ecard_sdk/protocol/privacy/privacy.vue

@@ -1,195 +0,0 @@
-<template>
-	<view class="protocol">
-		<view class="main">
-			<view class="h1">
-				<text>腾讯隐私政策</text>
-			</view>
-			<text>引言</text>
-			<view>
-				腾讯视用户信息安全与隐私保护为自己的“生命线”。我们秉承“一切以用户价值为依归”的理念,致力于提升信息处理透明度,增强您对信息管理的便捷性,保障您的信息及通信安全。
-			</view>
-			<view>腾讯严格遵守法律法规,遵循以下隐私保护原则,为您提供更加安全、可靠的服务:</view>
-			<view>1、安全可靠:我们竭尽全力通过合理有效的信息安全技术及管理流程,防止您的信息泄露、损毁、丢失。</view>
-			<view>2、自主选择:我们为您提供便利的信息管理选项,以便您做出合适的选择,管理您的个人信息。</view>
-			<view>3、保护通信秘密:我们严格遵照法律法规,保护您的通信秘密,为您提供安全的通信服务。</view>
-			<view>4、合理必要:为了向您和其他用户提供更好的服务,我们仅收集必要的信息。</view>
-			<view>5、清晰透明:我们努力使用简明易懂的表述,向您介绍隐私政策,以便您清晰地了解我们的信息处理方式。</view>
-			<view>6、将隐私保护融入产品设计:我们在产品或服务开发的各个环节,综合法律、产品、设计等多方因素,融入隐私保护的理念。</view>
-			<view>本《隐私政策》主要向您说明:</view>
-			<view>我们收集哪些信息;</view>
-			<view>我们收集信息的用途;</view>
-			<view>您所享有的权利。</view>
-			<view>希望您仔细阅读《隐私政策》(以下简称“本政策”),详细了解我们对信息的收集、使用方式,以便您更好地了解我们的服务并作出适当的选择。</view>
-			<view>若您使用腾讯服务,即表示您认同我们在本政策中所述内容。除另有约定外,本政策所用术语与《腾讯服务协议》中的术语具有相同的涵义。</view>
-			<view>如您有问题,请联系我们。</view>
-			<view class="strong">一、我们收集的信息</view>
-			<view>我们根据合法、正当、必要的原则,仅收集实现产品功能所必要的信息。</view>
-			<view>1.1 您在使用我们服务时主动提供的信息</view>
-			<view>1.1.1 您在注册帐户时填写的信息。</view>
-			<view>例如,您在注册QQ、微信帐户时所填写的昵称、手机号码。</view>
-			<view>1.1.2 您在使用服务时上传的信息。</view>
-			<view>例如,您在使用QQ、微信时,上传的头像、分享的照片。</view>
-			<view>1.1.3 您通过我们的客服或参加我们举办的活动时所提交的信息。</view>
-			<view>例如,您参与我们线上活动时填写的调查问卷中可能包含您的姓名、电话、家庭地址等信息。</view>
-			<view>
-				我们的部分服务可能需要您提供特定的个人敏感信息来实现特定功能。若您选择不提供该类信息,则可能无法正常使用服务中的特定功能,但不影响您使用服务中的其他功能。若您主动提供您的个人敏感信息,即表示您同意我们按本政策所述目的和方式来处理您的个人敏感信息。
-			</view>
-			<view>1.2我们在您使用服务时获取的信息</view>
-			<view>1.2.1 日志信息。当您使用我们的服务时,我们可能会自动收集相关信息并存储为服务日志信息。</view>
-			<view>(1) 设备信息。例如,设备型号、操作系统版本、唯一设备标识符、电池、信号强度等信息。</view>
-			<view>(2) 软件信息。例如,软件的版本号、浏览器类型。为确保操作环境的安全或提供服务所需,我们会收集有关您使用的移动应用和其他软件的信息。</view>
-			<view>(3) IP地址。</view>
-			<view>(4) 服务日志信息。例如,您在使用我们服务时搜索、查看的信息、服务故障信息、引荐网址等信息。</view>
-			<view>(5) 通讯日志信息。例如,您在使用我们服务时曾经通讯的账户、通讯时间和时长。</view>
-			<view>1.2.2 位置信息。当您使用与位置有关的服务时,我们可能会记录您设备所在的位置信息,以便为您提供相关服务。</view>
-			<view>(1) 在您使用服务时,我们可能会通过IP地址、GPS、WiFi或基站等途径获取您的地理位置信息;</view>
-			<view>
-				(2) 您或其他用户在使用服务时提供的信息中可能包含您所在地理位置信息,例如您提供的帐号信息中可能包含的您所在地区信息,您或其他人共享的照片包含的地理标记信息;
-			</view>
-			<view>
-				1.2.3
-				其他相关信息。为了帮助您更好地使用我们的产品或服务,我们会收集相关信息。例如,我们收集的好友列表、群列表信息、声纹特征值信息。为确保您使用我们服务时能与您认识的人进行联系,如您选择开启导入通讯录功能,我们可能对您联系人的姓名和电话号码进行加密,并仅收集加密后的信息。
-			</view>
-			<view>1.3 其他用户分享的信息中含有您的信息</view>
-			<view>例如,其他用户发布的照片或分享的视频中可能包含您的信息。</view>
-			<view>1.4 从第三方合作伙伴获取的信息</view>
-			<view>
-				我们可能会获得您在使用第三方合作伙伴服务时所产生或分享的信息。例如,您使用微信或QQ帐户登录第三方合作伙伴服务时,我们会获得您登录第三方合作伙伴服务的名称、登录时间,方便您进行授权管理。请您仔细阅读第三方合作伙伴服务的用户协议或隐私政策。
-			</view>
-			<view class="strong">二、我们如何使用收集的信息</view>
-			<view>我们严格遵守法律法规的规定及与用户的约定,将收集的信息用于以下用途。若我们超出以下用途使用您的信息,我们将再次向您进行说明,并征得您的同意。</view>
-			<view>2.1 向您提供服务。</view>
-			<view>2.2 满足您的个性化需求。例如,语言设定、位置设定、个性化的帮助服务。</view>
-			<view>2.3 产品开发和服务优化。例如,当我们的系统发生故障时,我们会记录和分析系统故障时产生的信息,优化我们的服务。</view>
-			<view>
-				2.4 安全保障。例如,我们会将您的信息用于身份验证、安全防范、反诈骗监测、存档备份、客户的安全服务等用途。例如,您下载或安装的安全软件会对恶意程序或病毒进行检测,或为您识别诈骗信息。
-			</view>
-			<view>2.5 向您推荐您可能感兴趣的广告、资讯等。</view>
-			<view>2.6 评估、改善我们的广告投放和其他促销及推广活动的效果。</view>
-			<view>2.7 管理软件。例如,进行软件认证、软件升级等。</view>
-			<view>2.8 邀请您参与有关我们服务的调查。</view>
-			<view>
-				为了让您有更好的体验、改善我们的服务或经您同意的其他用途,在符合相关法律法规的前提下,我们可能将通过某些服务所收集的信息用于我们的其他服务。例如,将您在使用我们某项服务时的信息,用于另一项服务中向您展示个性化的内容或广告、用于用户研究分析与统计等服务。
-			</view>
-			<view>
-				为了确保服务的安全,帮助我们更好地了解我们应用程序的运行情况,我们可能记录相关信息,例如,您使用应用程序的频率、故障信息、总体使用情况、性能数据以及应用程序的来源。我们不会将我们存储在分析软件中的信息与您在应用程序中提供的个人身份信息相结合。
-			</view>
-			<view class="strong">三、我们如何使用Cookie及相关技术</view>
-			<view>
-				我们或我们的第三方合作伙伴,可能通过放置安全的Cookie及相关技术收集您的信息,目的是为您提供更个性化的用户体验和服务。我们会严格要求第三方合作伙伴遵守本政策的相关规定。
-			</view>
-			<view>
-				您也可以通过浏览器设置管理Cookie。但请注意,如果停用Cookie,您可能无法享受最佳的服务体验,某些服务也可能无法正常使用。若您希望了解更多Cookie的安全性等信息,可参见《Cookie政策说明》。
-			</view>
-			<view class="strong">四、您分享的信息</view>
-			<view>
-				您可以通过我们的服务与您的好友、家人及其他用户分享您的相关信息。例如,您在微信朋友圈中公开分享的文字和照片。请注意,这其中可能包含您的个人身份信息、个人财产信息等敏感信息。请您谨慎考虑披露您的相关个人敏感信息。
-			</view>
-			<view>
-				您可通过我们服务中的隐私设置来控制您分享信息的范围,也可通过服务中的设置或我们提供的指引删除您公开分享的信息。但请您注意,这些信息仍可能由其他用户或不受我们控制的非关联第三方独立地保存。
-			</view>
-			<view class="strong">五、您如何管理自己的信息</view>
-			<view>
-				5.1
-				您可以在使用我们服务的过程中,访问、修改和删除您提供的注册信息和其他个人信息,也可按照通知指引与我们联系。您访问、修改和删除个人信息的范围和方式将取决于您使用的具体服务。例如,若您在使用地理位置相关服务时,希望停止分享您的地理位置信息,您可通过手机定位关闭功能、软硬件服务商及通讯服务提供商的关闭方式停止分享,建议您仔细阅读相关指引。
-			</view>
-			<view>
-				5.2
-				我们将按照本政策所述,仅为实现我们产品或服务的功能,收集、使用您的信息。如您发现我们违反法律、行政法规的规定或者双方的约定收集、使用您的个人信息,您可以要求我们删除。如您发现我们收集、存储的您的个人信息有错误的,您也可以要求我们更正。请通过本政策列明的联系方式与我们联系。
-			</view>
-			<view>5.3 在您访问、修改和删除相关信息时,我们可能会要求您进行身份验证,以保障帐号的安全。</view>
-			<view>5.4 请您理解,由于技术所限、法律或监管要求,我们可能无法满足您的所有要求,我们会在合理的期限内答复您的请求。</view>
-			<view class="strong">六、我们分享的信息</view>
-			<view>我们遵照法律法规的规定,对信息的分享进行严格的限制,例如:</view>
-			<view>6.1 经您事先同意,我们可能与第三方分享您的个人信息;</view>
-			<view>
-				6.2
-				仅为实现外部处理的目的,我们可能会与第三方合作伙伴(第三方服务供应商、承包商、代理、广告合作伙伴、应用开发者等,例如,代表我们发出电子邮件或推送通知的通讯服务提供商、为我们提供位置服务的地图服务供应商)(他们可能并非位于您所在的法域)分享您的个人信息,让他们按照我们的说明、隐私政策以及其他相关的保密和安全措施来为我们处理上述信息,并用于以下用途:
-			</view>
-			<view>6.2.1 向您提供我们的服务;</view>
-			<view>6.2.2 实现“我们如何使用收集的信息”部分所述目的;</view>
-			<view>6.2.3 履行我们在《腾讯服务协议》或本政策中的义务和行使我们的权利;</view>
-			<view>6.2.4 理解、维护和改善我们的服务。</view>
-			<view>如我们与上述第三方分享您的信息,我们将会采用加密、匿名化处理等手段保障您的信息安全。</view>
-			<view>
-				6.3
-				随着我们业务的持续发展,当发生合并、收购、资产转让等交易导致向第三方分享您的个人信息时,我们将通过推送通知、公告等形式告知您相关情形,按照法律法规及不低于本政策所要求的标准继续保护或要求新的管理者继续保护您的个人信息。
-			</view>
-			<view>
-				6.4
-				我们会将所收集到的信息用于大数据分析。例如,我们将收集到的信息用于分析形成不包含任何个人信息的城市热力图或行业洞察报告。我们可能对外公开并与我们的合作伙伴分享经统计加工后不含身份识别内容的信息,用于了解用户如何使用我们服务或让公众了解我们服务的总体使用趋势。
-			</view>
-			<view>6.4 我们可能基于以下目的披露您的个人信息:</view>
-			<view>6.5.1 遵守适用的法律法规等有关规定;</view>
-			<view>6.5.2 遵守法院判决、裁定或其他法律程序的规定;</view>
-			<view>6.5.3 遵守相关政府机关或其他法定授权组织的要求;</view>
-			<view>6.5.4 我们有理由确信需要遵守法律法规等有关规定;</view>
-			<view>6.5.5 为执行相关服务协议或本政策、维护社会公共利益,为保护我们的客户、我们或我们的关联公司、其他用户或雇员的人身财产安全或其他合法权益合理且必要的用途。</view>
-			<view class="strong">七、我们可能向您发送的信息</view>
-			<view>7.1 信息推送</view>
-			<view>您在使用我们的服务时,我们可能向您发送电子邮件、短信、资讯或推送通知。您可以按照我们的相关提示,在设备上选择取消订阅。</view>
-			<view>7.2 与服务有关的公告</view>
-			<view>我们可能在必要时(例如,因系统维护而暂停某一项服务时)向您发出与服务有关的公告。您可能无法取消这些与服务有关、性质不属于广告的公告。</view>
-			<view class="strong">八、存储信息的地点和期限</view>
-			<view>8.1 存储信息的地点</view>
-			<view>我们遵守法律法规的规定,将境内收集的用户个人信息存储于境内。</view>
-			<view>8.2 存储信息的期限</view>
-			<view>一般而言,我们仅为实现目的所必需的最短时间保留您的个人信息。但在下列情况下,我们有可能因需符合法律要求,更改个人信息的存储时间:</view>
-			<view>8.2.1 为遵守适用的法律法规等有关规定;</view>
-			<view>8.2.2 为遵守法院判决、裁定或其他法律程序的规定;</view>
-			<view>8.2.3 为遵守相关政府机关或法定授权组织的要求;</view>
-			<view>8.2.4 我们有理由确信需要遵守法律法规等有关规定;</view>
-			<view>8.2.5 为执行相关服务协议或本政策、维护社会公共利益,为保护我们的客户、我们或我们的关联公司、其他用户或雇员的人身财产安全或其他合法权益所合理必需的用途。</view>
-			<view>当我们的产品或服务发生停止运营的情形时,我们将采取例如,推送通知、公告等形式通知您,并在合理的期限内删除或匿名化处理您的个人信息。</view>
-			<view class="strong">九、信息安全</view>
-			<view>我们为您的信息提供相应的安全保障,以防止信息的丢失、不当使用、未经授权访问或披露。</view>
-			<view>9.1 我们严格遵守法律法规保护用户的通信秘密。</view>
-			<view>9.2 我们将在合理的安全水平内使用各种安全保护措施以保障信息的安全。例如,我们使用加密技术(例如,TLS、SSL)、匿名化处理等手段来保护您的个人信息。</view>
-			<view>9.3 我们建立专门的管理制度、流程和组织确保信息安全。例如,我们严格限制访问信息的人员范围,要求他们遵守保密义务,并进行审查。</view>
-			<view>9.4 若发生个人信息泄露等安全事件,我们会启动应急预案,阻止安全事件扩大,并以推送通知、公告等形式告知您。</view>
-			<view class="strong">十、广告</view>
-			<view>我们可能使用您的相关信息,在相关网站、应用及其他渠道向您提供与您更加相关的广告。您可以在关于广告页面中了解更多。</view>
-			<view class="strong">十一、未成年人保护</view>
-			<view>
-				我们非常重视对未成年人个人信息的保护。根据相关法律法规的规定,若您是18周岁以下的未成年人,在使用腾讯的服务前,应事先取得您的家长或法定监护人的同意。若您是未成年人的监护人,当您对您所监护的未成年人的个人信息有相关疑问时,请通过第十三部分中的联系方式与我们联系。
-			</view>
-			<view class="strong">十二、适用范围</view>
-			<view>
-				我们的所有服务均适用本政策。但某些服务有其特定的隐私指引/声明,该特定隐私指引/声明更具体地说明我们在该服务中如何处理您的信息。如本政策与特定服务的隐私指引/声明有不一致之处,请以该特定隐私指引/声明为准。
-			</view>
-			<view>请您注意,本政策不适用由其他公司或个人提供的服务。例如,您通过使用微信帐号登录其他公司或个人提供的服务。</view>
-			<view>您使用该等第三方服务须受其隐私政策(而非本政策)约束,您需要仔细阅读其政策内容。</view>
-			<view class="strong">十三、联系我们</view>
-			<view>
-				如您对本政策或其他相关事宜有疑问,请通过 https://kf.qq.com/
-				与我们联系。您也可根据我们提供的指引,填写相关资料,将您的问题发送至Dataprivacy@tencent.com或寄到如下地址:
-			</view>
-			<view>地址:中国广东省深圳市南山区科技园科技中一路腾讯大厦 法务部 数据及隐私保护中心(收)</view>
-			<view>邮编:518057</view>
-			<view>我们将尽快审核所涉问题,并在验证您的用户身份后的三十天内予以回复。</view>
-			<view class="strong">十四、变更</view>
-			<view>
-				我们可能适时修订本政策内容。如该等变更会导致您在本政策项下权利的实质减损,我们将在变更生效前,通过在页面显著位置提示、向您发送电子邮件等方式通知您。在该种情况下,若您继续使用我们的服务,即表示同意受经修订的政策约束。
-			</view>
-			<view class="strong">更新日期: 2018年6月13日</view>
-		</view>
-	</view>
-
-</template>
-
-<script>
-	export default {
-		data() {
-			return {
-
-			}
-		},
-		methods: {
-
-		}
-	}
-</script>
-
-<style>
-@import url('../../index.css');
-</style>

+ 0 - 173
src/mp_ecard_sdk/protocol/service/service.vue

@@ -1,173 +0,0 @@
-<template>
-	<view class="protocol">
-		<view class="main">
-			<view class="h1">
-				<text>腾讯E证通服务协议</text>
-			</view>
-			<view>
-				欢迎您使用腾讯云E证通服务!
-			</view>
-			<view>
-				为使用腾讯E证通服务,您应当阅读并遵守《腾讯E证通服务协议》(以下简称“本协议”)。本协议由您与深圳市腾讯计算机系统有限公司(以下简称“腾讯”或“我们”)签订,对您注册、使用腾讯E证通服务(以下亦可简称“本服务”)过程中的各方权利义务等具体内容进行约定
-			</view>
-			<view class="strong underline">
-				我们在此特别提醒您认真阅读、充分理解本协议各条款,特别是您同意及授权的条款、争议解决和法律适用等条款。为提醒您注意,我们已对这些条款予以加粗以特别提醒您加以注意,请您仔细阅读并自主决定接受或不接受。您使用腾讯E证通服务的行为(包括在我们合作的第三方产品及业务中使用腾讯E证通服务)即视为您已阅读、知悉、理解和完全同意本协议的约定。
-			</view>
-			<view class="strong underline">
-				我们特别提示您,您在前述页面点击“已阅读并同意《腾讯E证通服务协议》”以及点击按钮“申请并同意授权”的行为视为您已经充分阅读并理解、同意本协议的内容并作出相关授权。
-			</view>
-			<view>
-				如果您是未成年人,请在法定监护人的陪同下阅读本协议及上述其他协议,并特别注意涉及未成年人使用本服务的相关条款。
-			</view>
-			<view>
-				如果您在阅读本协议过程中有任何问题,请您联系我们,我们将对相关内容进行解释和说明,以使您能够充分理解并自主判断和决定是否接受本协议内容。
-			</view>
-			<view class="strong">一、服务内容</view>
-			<view>
-				腾讯E证通服务是深圳市腾讯计算机系统有限公司(以下简称“我们”或“腾讯”)通过与公安部第三研究所(以下简称“三所”)及其eID网络身份服务机构(以下简称“eID服务机构”)基于eID数字身份技术的合作、向您提供的eID数字身份服务
-				<view style="display:inline" class="strong">
-					,具体服务流程为:
-				</view>
-			</view>
-			<view class="strong">
-				您通过向您提供服务的应用输入姓名和身份号码并拉起腾讯E证通小程序,在您点击同意本协议和《eID数字身份小程序服务协议》后,您将在eID数字身份小程序内通过腾讯提供的人脸识别完成身份验证,您的身份信息与权威机构的相应数据进行相符性比对后,三所会签发您的eID数字身份,您的eID数字身份与您申请时提供的身份信息及人脸信息唯一关联。eID数字身份信息由本服务返回给为您提供服务的应用。
-			</view>
-			<view class="strong">二、双方权利义务</view>
-			<view>
-				2.1腾讯有权根据您的申请情况,决定是否为您提供腾讯E证通服务。
-			</view>
-			<view>
-				2.2腾讯有权在腾讯以及腾讯合作方的具体产品业务中推广、应用腾讯E证通服务。
-			</view>
-			<view class="strong">
-				2.3您保证您所提供的个人信息的真实性、合法性、完整性、准确性和有效性。否则,您可能无法使用腾讯E证通服务,或您所使用的腾讯E证通服务范围可能会受到限制。
-			</view>
-			<view>
-				2.4您应以您本人的真实身份信息使用腾讯E证通服务,您保证由您本人注册、开通腾讯E证通服务,您保证由您本人进行操作,并不向其他任何人披露、泄露或借出前述信息和设备,亦不使用其他任何人的该等信息和设备。
-				<view style="display:inline" class="strong">
-					您应妥善保管您的手机设备、账号、密码以及动态验证码等资料,并对该账号项下所从事的行为承担相应的法律责任。
-				</view>
-			</view>
-			<view class="strong">
-				2.5您应当对您的账户、终端设备以及您的联系方式进行有效管理,对通过该账户及终端设备所从事的行为承担相应法律责任,并对您的联系方式(例如,手机号码)接收或确认信息所产生的法律后果承担法律责任。您在此知悉,对于第三方无论以何种形式使用您的信息,包括但不限于冒用、借用,您将对由此产生的法律后果依法承担相应法律责任。
-			</view>
-			<view class="strong">
-				2.6使用腾讯E证通服务过程中,如果您的个人信息有更新,您应及时进行更新。否则,因此产生的法律责任由您承担。
-			</view>
-			<view class="strong">
-				2.7如果您的账户、终端设备因信息泄露、遗失或被非授权使用所致的损失由您自行承担。
-			</view>
-			<view class="strong">
-				2.8您不得利用本服务实施任何违反国家法律、法规、规章及规范性文件的行为,不得侵犯其他任何第三人的合法权益,尤其不得利用本服务实施欺诈等违法行为。如您存在不遵守本协议或腾讯相关业务规定、恶意操作或利用腾讯E证通服务从事违反国家法律法规活动或损害其他第三方合法权益的,腾讯有权单方终止对您提供腾讯E证通服务,并要求您赔偿腾讯因此造成的损失。
-			</view>
-			<view class="strong">
-				2.9您所申请的eID数字身份仅供您个人使用,您不得将您的eID数字身份提供给他方使用,您应对您的eID数字身份所从事的行为承担法律责任。
-			</view>
-			<view>
-				2.10为了向您提供更优的服务,腾讯有权对腾讯E证通服务系统进行升级、改造。
-			</view>
-			<view>
-				2.11如果您需要注销腾讯E证通服务,您可以在腾讯E证通小程序中的
-				<view style="display:inline" class="strong">
-					“关于腾讯E证通-意见反馈”
-				</view>
-				中提交申请。您注销腾讯E证通服务后,如果您需要使用腾讯E证通服务,您需要重新注册。
-			</view>
-			<view class="strong">
-				2.12您在使用本服务过程中,如果还涉及到使用其他服务的,您应当同时遵守其他服务的规定或规则。比如您在使用eID数字身份小程序时,您应遵守三所的相关服务规则。
-			</view>
-			<view class="strong">
-				2.13如果您与为您提供服务的应用方之间因具体交易以及腾讯E证通的适用等事宜发生的争议或纠纷,由您与您应用方进行协商处理,我们不介入您与应用方的具体交易合作,我们不对前述事项承担法律责任。但我们在此承诺,为了保护您的合法权益,我们将向您提供必要协助。
-			</view>
-
-			<view class="strong">三、用户个人信息保护</view>
-			<view class="strong">
-				3.1
-				为了向您提供腾讯E证通服务,您授权并同意,我们从为您提供服务的应用获取您输入的姓名和身份号码信息,结合在三所运营的eID数字身份小程序内通过我们提供的人脸识别服务,采集您的人脸视频,并将您的姓名、身份号码、人脸图像与权威机构的相应数据进行相符性比对,以便通过身份核验。同时,我们会从eID数字身份小程序获取您的数字身份信息,并将您的人脸图片、比对结果和eID数字身份信息返回给您的应用方,由其判断是否通过您的实名实人认证。如果您不同意的,请您不要继续使用本服务。
-			</view>
-			<view class="strong">
-				3.2
-				基于国家监管要求或法律要求,应用方在向您提供服务时需要采集并保存您的姓名、身份号码、人脸图像(简称“身份信息”)证明您的身份,您授权并同意,因为您的应用方可能无法及时从本服务拉取您的身份信息,我们会将您的人脸图片和比对结果暂时存储三天以便您的应用方拉取您的身份信息。三天内如果您的应用方拉取了,我们会立即删除;三天后如果您的应用方未拉取,我们也会删除您的相应数据。我们承诺仅在该处理目的内暂时存储您的数据,未经您的授权或许可,我们不会向第三方提供您的个人信息。
-			</view>
-			<view>
-				3.3保护用户个人信息是腾讯的一项基本原则,腾讯将根据本协议以及
-				<navigator style="display:inline" class="protocol_sprotocol" url="/mp_ecard_sdk/protocol/privacy/privacy">
-					《隐私政策》
-				</navigator>
-				(http://www.qq.com/privacy.htm)等内容,采取合理的措施依法保护用户的个人信息。除法律法规规定的情形外,未经用户授权同意腾讯不会向第三方公开、透露用户个人信息。腾讯对相关信息采用专业加密存储与传输方式,保障用户个人信息的安全。
-			</view>
-			<view>
-				3.4 腾讯将运用各种安全技术和程序建立完善的管理制度来保护您的个人信息,以免遭受未经授权的访问、使用或披露。
-			</view>
-			<view>
-				3.5如您希望访问、撤回授权、修改、删除您的个人信息,您可以通过“关于腾讯E证通-意见反馈”联系我们,并提供必要的身份证明。
-			</view>
-			<view class="strong">
-				3.6请您提供真实、准确的、且是您本人的姓名、身份号码、人脸图像,并申请本人的eID数字身份,否则,我们可能无法为您提供本服务。冒用他人身份者将承担身份冒用带来的一切后果与责任,包括但不限于因冒用他人身份给第三方或我们造成的任何损失,您应当依法进行赔偿。
-			</view>
-			<view class="strong">四、不可抗力及免责声明</view>
-			<view class="strong">
-				4.1您理解并同意,在使用本服务的过程中,可能会遇到不可抗力等风险因素,使本服务发生中断。不可抗力是指不能预见、不能克服并不能避免且对一方或双方造成重大影响的客观事件,包括自然灾害如洪水、地震、瘟疫流行和风暴等以及社会事件如战争、动乱、政府行为以及政策法律等规定变化等。出现上述情况时,我们将努力在第一时间与相关单位配合,尽量降低各方损失。
-			</view>
-			<view class="strong">
-				4.2在法律允许的范围内,腾讯对以下情形导致的本服务中断或受阻不承担责任:
-			</view>
-			<view class="strong">
-				4.2.1受到计算机病毒、木马或其他恶意程序、黑客攻击的破坏;
-			</view>
-			<view class="strong">
-				4.2.2网络故障、网络异常;
-			</view>
-			<view class="strong">
-				4.2.3用户操作不当;
-			</view>
-			<view class="strong">
-				4.2.4用户通过非经我们授权的方式使用本服务;
-			</view>
-			<view class="strong">
-				4.2.5其他腾讯无法控制或合理预见的情形。
-			</view>
-			<view class="strong">
-				4.3
-				您理解并同意,我们将秉承尽责、严谨的态度为您提供本服务,同时您也已清楚知晓受制于技术、权威核验渠道等诸多因素,我们无法向您做出人脸识别核验结果绝对准确无误的承诺。您同意非腾讯原因或因不可抗力、约定的免责情形导致人脸识别核验结果错误的,腾讯不承担赔偿责任。
-			</view>
-			<view class="strong">
-				4.4 您知悉并同意,腾讯E证通小程序与eID数字身份小程序是互为独立的小程序,分别由腾讯和三所独立运营,对于三所为您签发的eID数字身份,腾讯不做相应的承诺和担保。
-			</view>
-			<view class="strong">五、其他</view>
-			<view class="strong underline">
-				5.1 本协议的成立、生效、履行、解释及纠纷解决,适用中华人民共和国大陆地区法律(不包括冲突法规则)。
-			</view>
-			<view class="strong underline">
-				5.2 若您和腾讯之间发生任何纠纷或争议,首先应友好协商解决;若协商不成的,您和腾讯同意将纠纷或争议提交本协议签订地有管辖权的人民法院,通过诉讼加以解决。
-			</view>
-			<view class="strong underline">
-				5.3本协议签订地为中华人民共和国广东省深圳市南山区。
-			</view>
-			<view class="strong underline">
-				5.4本协议所有条款的标题仅为阅读方便,本身并无实际涵义,不能作为本协议涵义解释的依据。
-			</view>
-			<view class="strong underline">
-				5.5本协议条款无论因何种原因部分无效或不可执行,其余条款仍有效,对双方具有约束力。(正文完)
-			</view>
-		</view>
-	</view>
-
-</template>
-
-<script>
-	export default {
-		data() {
-			return {
-
-			}
-		},
-		methods: {
-
-		}
-	}
-</script>
-
-<style>
-@import url('../../index.css');
-</style>

+ 0 - 47
src/mp_ecard_sdk/protocol/userAccredit/userAccredit.vue

@@ -1,47 +0,0 @@
-<template>
-	<view class="protocol">
-		<view class="main">
-			<view class="h1">
-				<text>用户授权协议</text>
-			</view>
-			<view>
-				《用户授权协议》(以下简称“本协议”)由您与深圳市腾讯计算机系统有限公司(以下简称“腾讯”或“我们”)签订,为了充分保护您的合法权益,我们在此与您就您注册、使用腾讯云E证通服务(以下亦可简称“本服务”)过程中有关采集、使用等处理您个人信息授权的相关事项进行约定。本协议作为《腾讯云E证通服务协议》(以下简称“主协议”)不可分割的有效组成部分,与主协议具有同等法律效力。
-			</view>
-			<view class="strong underline">
-				我们特别提示您,您在前述页面点击“已阅读并同意《用户授权协议》”以及点击按钮“申请并同意授权”的行为视为您已经充分阅读并理解、同意本协议的内容并作出相关授权。
-			</view>
-			<view class="strong underline">
-				一、为了在您注册、使用腾讯云E证通服务时识别您的身份,您同意并授权腾讯可以获取您绑定的微信手机号,同时,您同意并授权腾讯可通过其合作的依法运营数据库的主体比对您的手机号码,您同意并授权腾讯可以采集、存储并处理您的姓名、公民身份证号码、人脸照片、手机号码等可以识别您身份的个人信息(具体以在页面上填写、提供的为准)。
-			</view>
-			<view>
-				二、为了能够获得腾讯云E证通编码,您同意并授权腾讯可以将您的个人信息传输至eID服务机构并由eID服务机构将提供给三所承建的“公安部公民网络身份识别系统”;您同意并授权三所使用eID数字身份技术为您在腾讯云E证通服务中生成保护个人身份信息的eID数字身份提供给eID服务机构并由eID服务机构提供给腾讯;您同意并授权腾讯可依法采集、存储并处理您的eID数字身份并生成腾讯云E证通编码。
-			</view>
-			<view>
-				三、在您注册完成腾讯云E证通服务后,您可采用多种方式使用腾讯云E证通服务,包括但不限于您个人管理、使用您的腾讯云E证通服务编码,以及您在此授权腾讯可在其运营的其他产品和业务中使用您的腾讯云E证通编码,以及您在此授权腾讯亦可向腾讯合作方提供您的腾讯云E证通编码,以方便您使用相应产品或业务,节约流程及时间。
-			</view>
-			<view class="strong">四、我们在此特别说明,腾讯合作方或腾讯运营其他产品和业务的团队所获得的腾讯云E证通编码不可识别您的个人信息。</view>
-			<view class="strong">
-				五、我们在此特别提示您,如果您在使用合作方或腾讯其他产品或业务时,除了授权腾讯向前述主体提供您的腾讯云E证通编码之外,还需要前述主体向腾讯云E证通服务运营团队采集或委托腾讯云E证通服务运营团队处理您的个人信息,须另行获得您相应授权。
-			</view>
-			<view>六、我们收集您的个人信息仅在您注册、使用腾讯云E证通服务范围内使用,未经您的同意,我们不会用于其他用途。</view>
-		</view>
-	</view>
-
-</template>
-
-<script>
-	export default {
-		data() {
-			return {
-
-			}
-		},
-		methods: {
-
-		}
-	}
-</script>
-
-<style>
-@import url('../../index.css');
-</style>

+ 0 - 6
src/mp_ecard_sdk/utils/getParameterByName.js

@@ -1,6 +0,0 @@
-const getParameterByName = function (e, t) {
-  e = e.replace(/[\[\]]/g, '\\$&')
-  const a = new RegExp(`[?&]${e}(=([^&#]*)|&|#|$)`).exec(t)
-  return a ? (a[2] ? decodeURIComponent(a[2].replace(/\+/g, ' ')) : '') : null
-}
-export default getParameterByName

+ 0 - 1
src/mp_ecard_sdk/utils/http.js

@@ -1 +0,0 @@
-import Log from"../constants/log.js";let request=function(r,e){let{token:t="",url:o,method:a="POST",data:s,reTry:d,header:u={"Content-Type":"application/json"}}=r;try{uni.request({url:uni.eidBaseUrl+o,method:a,data:s,header:u,success(r){console.log("request success:",r),200===r.statusCode&&r.data?0==r.data.ErrorCode||0==r.data.code?e({ErrorCode:0,ErrorMsg:r.data.ErrorMsg,Data:r.data.Data||r.data.data,reTry:d}):e({ErrorCode:r.data.ErrorCode,ErrorMsg:r.data.ErrorMsg,Data:r.data.Data||r.data.data}):e({ErrorCode:-101,ErrorMsg:"请求错误,请稍后重试"})},fail(a){console.log("request error:",a),d&&d.tryCount&&d.tryCount>0?(d.tryCount--,uni.eidBaseUrl=uni.eidBackUpUrl,setTimeout(()=>{request(r,e)},d.retryDelay||0)):e({ErrorCode:-107,ErrorMsg:"request请求异常,请稍后重试"}),uni.reportLogToEid({token:t,event:Log.requestFail,errCode:"-1",errMsg:"requestFail 调用失败",data:{url:`${uni.eidBaseUrl}`+o,err:a}})}})}catch(r){console.log("request error:",r),e({ErrorCode:-109,ErrorMsg:"request方法异常,请稍后重试"}),uni.reportLogToEid({token:t,event:Log.requestCatch,errCode:"-1",errMsg:"requestFail 调用失败",data:{url:`${uni.eidBaseUrl}`+o,err:r}})}};export const $http=request;

+ 0 - 1
src/mp_ecard_sdk/utils/validate.js

@@ -1 +0,0 @@
-function isValidateToken(e){return/^[a-zA-Z0-9-]{36}$/.test(e)}export default{isValidateToken:isValidateToken};

+ 0 - 68
src/pages-sub-admin/managementByObjectives/index.vue

@@ -1,68 +0,0 @@
-<template>
-  <view class="market-box">
-    <view v-for="item in taskList" :key="item.id">
-      <view
-        class="market-list"
-        :style="{ background: item.backgroundColor }"
-        @click="navigateToDetail"
-      >
-        <image :src="item.img" alt="" />
-        <view class="info" :style="{ color: item.color }">
-          <view class="title">{{ item.title }}</view>
-        </view>
-        <view class="btn">
-          <uv-icon name="arrow-right" :color="item.color" size="16" />
-        </view>
-      </view>
-    </view>
-  </view>
-</template>
-
-<script setup lang="ts">
-import taskList from './taskList'
-
-const navigateToDetail = () => {
-  uni.navigateTo({
-    url: `/pages-sub-admin/objectivesList/index`
-  })
-}
-</script>
-
-<style lang="scss" scoped>
-.market-box {
-  padding: 30rpx;
-  .market-list {
-    height: 180rpx;
-    border-radius: 16rpx;
-    padding: 10rpx 24rpx;
-    display: flex;
-    align-items: center;
-    margin-bottom: 24rpx;
-    image {
-      width: 160rpx;
-      height: 160rpx;
-    }
-    .info {
-      margin-left: 24rpx;
-      .title {
-        font-size: 36rpx;
-        font-weight: 600;
-        margin-bottom: 10rpx;
-      }
-      .desc {
-        font-size: 22rpx;
-      }
-    }
-    .btn {
-      margin-left: auto;
-      width: 56rpx;
-      height: 56rpx;
-      border-radius: 50%;
-      background: rgba($color: #fff, $alpha: 0.3);
-      display: flex;
-      align-items: center;
-      justify-content: center;
-    }
-  }
-}
-</style>

+ 0 - 9
src/pages-sub-admin/managementByObjectives/taskList.ts

@@ -1,9 +0,0 @@
-export default [
-  {
-    title: '服务目标下发',
-    id: 1,
-    color: '#30546E',
-    backgroundColor: 'linear-gradient(270.93deg, #D6EDFD 0.8%, #F1F9FF 100%);',
-    img: 'https://yy-cloud-oss.oss-cn-beijing.aliyuncs.com/img/hyjb.png'
-  }
-]

+ 0 - 813
src/pages-sub-admin/objectivesAdd/index.vue

@@ -1,813 +0,0 @@
-<template>
-  <view class="objectives-add">
-    <view class="message">
-      <uv-text
-        type="error"
-        text="本系统中的年度服务目标、【年度服务预算】、年度服务计划等,无论是否经由一方或双方同意或者确认,均不构成双方之间的协议;服务量、服务费用价格与金额等应以另行签署的合同为准。"
-      ></uv-text>
-    </view>
-
-    <view class="form">
-      <uv-form labelPosition="left" :model="form" :rules="rules" ref="formRef" labelWidth="80">
-        <uv-form-item
-          label="目标产品"
-          prop="skuIdLable"
-          borderBottom
-          @click="showSelect('skuId')"
-          :customStyle="customStyle"
-          required
-        >
-          <uv-input v-model="form.skuIdLable" border="none" placeholder="请选择" readonly />
-          <template v-slot:right>
-            <uv-icon name="arrow-right"></uv-icon>
-          </template>
-        </uv-form-item>
-
-        <uv-form-item label="生产企业" prop="ent_name" borderBottom :customStyle="customStyle">
-          <uv-input v-model="form.ent_name" border="none" readonly />
-        </uv-form-item>
-
-        <uv-form-item
-          label="目标总值"
-          prop="planScore"
-          borderBottom
-          :customStyle="customStyle"
-          required
-        >
-          <uv-input v-model="form.planScore" :readonly="formDisabled" type="number" border="none" />
-        </uv-form-item>
-
-        <uv-form-item
-          label="承接对象"
-          prop="consigneeIdLable"
-          borderBottom
-          @click="showSelect('consigneeId')"
-          :customStyle="customStyle"
-          required
-        >
-          <uv-input v-model="form.consigneeIdLable" border="none" placeholder="请选择" readonly />
-          <template v-slot:right>
-            <uv-icon name="arrow-right"></uv-icon>
-          </template>
-        </uv-form-item>
-
-        <uv-form-item
-          label="目标类型"
-          prop="planTypeLable"
-          borderBottom
-          @click="showSelect('planType')"
-          :customStyle="customStyle"
-          required
-        >
-          <uv-input v-model="form.planTypeLable" border="none" placeholder="请选择" readonly />
-          <template v-slot:right>
-            <uv-icon name="arrow-right"></uv-icon>
-          </template>
-        </uv-form-item>
-        <uv-form-item
-          label="目标周期"
-          prop="monthrange"
-          borderBottom
-          @click="showSelect('monthrange')"
-          :customStyle="customStyle"
-          required
-        >
-          <uv-input
-            prefixIcon="calendar"
-            prefixIconStyle="font-size: 22px;color: #909399"
-            v-model="form.monthrange"
-            border="none"
-            placeholder="请选择"
-            readonly
-          />
-          <template v-slot:right>
-            <uv-icon name="arrow-right"></uv-icon>
-          </template>
-        </uv-form-item>
-        <uv-form-item
-          label="目标名称"
-          prop="planName"
-          borderBottom
-          :customStyle="customStyle"
-          required
-        >
-          <uv-input
-            v-model="form.planName"
-            :readonly="formDisabled"
-            placeholder="请输入"
-            border="none"
-          />
-        </uv-form-item>
-      </uv-form>
-      <view class="avail-score" v-if="type === '3'">
-        剩余积分值:{{ detailInfo?.availScore }}
-      </view>
-    </view>
-
-    <view class="table" v-if="['5', '6', '7'].includes(type)">
-      <tableData v-if="type === '5'" ref="tableRef" :planScore="Number(form.planScore)" />
-      <tableDetail
-        v-if="['6', '7'].includes(type)"
-        :planScore="Number(form.planScore)"
-        ref="tableDetailRef"
-      />
-    </view>
-    <!-- 新增 -->
-    <!-- 1 新增 3 -->
-
-    <template v-if="['1', '3', '5'].includes(type)">
-      <view class="btn botton-content" :class="['1', '3'].includes(type) ? 'b-fixed' : ''">
-        <view class="cancel" @click="cancelFn">取消</view>
-        <view class="confirm" @click="confirmFn">确定</view>
-      </view>
-    </template>
-
-    <template v-if="['2', '4', '7'].includes(type)">
-      <view class="botton-content" :class="['2', '4'].includes(type) ? 'b-fixed' : ''">
-        <view class="review-form">
-          <uv-form
-            labelPosition="left"
-            :model="reviewForm"
-            :rules="reviewFormRules"
-            ref="reviewFormRef"
-            labelWidth="80"
-          >
-            <uv-form-item label="审核说明" prop="msg" borderBottom>
-              <uv-textarea
-                v-model="reviewForm.msg"
-                placeholder="请输入审核说明"
-                height="48"
-              ></uv-textarea>
-            </uv-form-item>
-          </uv-form>
-        </view>
-        <view class="btn">
-          <view class="cancel" @click="reviewFn(false)">拒绝</view>
-          <view class="confirm" @click="reviewFn(true)">通过</view>
-        </view>
-      </view>
-    </template>
-
-    <!-- 选择目标产品 -->
-    <uv-picker ref="skuIdPicker" :columns="drugList" keyName="drug_name" @confirm="skuIdConfirm" />
-    <!-- 选择承接对象 -->
-    <uv-picker
-      ref="consigneeIdPicker"
-      :columns="csoList"
-      keyName="name"
-      @confirm="consigneeIdConfirm"
-    />
-    <!-- 选择目标类型 -->
-    <uv-picker
-      ref="planTypePicker"
-      :columns="[planTypeList]"
-      keyName="label"
-      @confirm="planTypeConfirm"
-    />
-
-    <!-- 选择年份 -->
-    <uv-datetime-picker ref="yearPicker" mode="year" @confirm="yearConfirm"></uv-datetime-picker>
-    <!-- 选择季度 -->
-    <uv-picker ref="seasonPicker" :columns="seasonList" keyName="label" @confirm="seasonConfirm" />
-
-    <!-- 月份范围 -->
-    <KDatePicker
-      v-model="show"
-      :limitStartDate="limitStartDate"
-      :limitEndDate="limitEndDate"
-      type="month"
-      is-range
-      @change="getDate"
-      formatter="YYYY-MM-DD"
-    />
-  </view>
-</template>
-
-<script setup lang="ts">
-import {
-  getListDrugApi,
-  getListDescendant,
-  createListApi,
-  planCheckApi,
-  getPlanInfoApi,
-  planDetailCreateApi,
-  checkPlanDetailsApi,
-  updatePlanApi
-} from '@/service/modules/objectivesList'
-import { onLoad } from '@dcloudio/uni-app'
-import { reactive, ref } from 'vue'
-import KDatePicker from '@/components/dateSelect/k-date-picker/KDatePicker.vue'
-
-import tableData from '@/components/table/tableData.vue'
-import tableDetail from '@/components/table/tableDetail.vue'
-import dayjs from 'dayjs'
-
-const drugList = ref<any[]>([])
-const csoList = ref<any[]>([])
-const getDict = () => {
-  getListDrugApi().then((res: any) => (drugList.value = [res.data]))
-  getListDescendant().then((res: any) => (csoList.value = [res.data]))
-}
-
-const type = ref('')
-const planId = ref('')
-const formDisabled = ref(false)
-const distributeDisbled = ref(false)
-const btnType = ref('')
-
-onLoad(async (info: any) => {
-  type.value = info?.type
-  planId.value = info?.planId
-  btnType.value = info?.btnType
-
-  await getDict()
-
-  // 审核
-  if (info?.type === '2') {
-    formDisabled.value = true
-    uni.setNavigationBarTitle({
-      title: '审核'
-    })
-    planInfo()
-  }
-  if (info?.type === '3') {
-    distributeDisbled.value = true
-    uni.setNavigationBarTitle({
-      title: '分发-新增'
-    })
-    planInfo()
-  }
-  if (info?.type === '4') {
-    formDisabled.value = true
-    uni.setNavigationBarTitle({
-      title: '分发-审核'
-    })
-    planInfo()
-  }
-  if (info?.type === '5') {
-    formDisabled.value = true
-    uni.setNavigationBarTitle({
-      title: '拆解'
-    })
-    planInfo()
-  }
-  if (info?.type === '6') {
-    formDisabled.value = true
-    uni.setNavigationBarTitle({
-      title: '数据统计'
-    })
-    planInfo()
-  }
-  if (info?.type === '7') {
-    formDisabled.value = true
-    uni.setNavigationBarTitle({
-      title: '拆解审核'
-    })
-    planInfo()
-  }
-  if (info?.btnType === '1') {
-    uni.setNavigationBarTitle({
-      title: '编辑'
-    })
-    planInfo()
-  }
-})
-
-const detailInfo = ref()
-const limitStartDate = ref()
-const limitEndDate = ref()
-const tableDetailRef = ref()
-const detailsState = ref()
-
-const planInfo = async () => {
-  const res = await getPlanInfoApi(planId.value)
-  detailInfo.value = res.data
-  if (btnType?.value === '1') {
-    return setInfo()
-  }
-  const typeList = ['2', '4', '5', '6', '7']
-  if (typeList.includes(type.value)) {
-    setFormCommonFields(res.data)
-    form.value.planName = res.data.planName
-    form.value.consigneeIdLable = res.data.consigneeInfo.consigneeName
-    form.value.planScore = res.data.planScore + ''
-  } else if (type.value === '3') {
-    setFormCommonFields(res.data)
-    form.value.skuId = res.data.skuId
-    form.value.planIssue = res.data.planIssue
-    form.value.planExpiry = res.data.planExpiry
-  }
-  if (['6', '7'].includes(type.value)) {
-    setTimeout(async () => {
-      const resDetail = await tableDetailRef.value.getDetail(res.data?.planDetails?.detailsId)
-      detailsState.value = resDetail.data.detailsState
-    }, 500)
-  }
-}
-
-const setInfo = () => {
-  const data = detailInfo.value
-  if (type.value === '3') {
-    if (data.planState === 'INIT') {
-      detailInfo.value.availScore = data?.parentPlanAvailScore + data.availScore
-    } else {
-      detailInfo.value.availScore = data?.parentPlanAvailScore
-    }
-  }
-  setFormCommonFields(data)
-  form.value.planName = data.planName
-  form.value.parentId = data.parentId
-  form.value.locFlag = data.locFlag
-  form.value.consigneeId = data.consigneeId
-  form.value.consigneeIdLable = data.consigneeInfo.consigneeName
-  if (data.planType === 'ANN') {
-    const arr = data.planIssue.split('-')
-    form.value.monthrange = arr[0]
-  } else {
-    form.value.monthrange = convertToQuarterStart(data.planIssue)
-  }
-  form.value.planIssue = data.skuInfo.planIssue
-  form.value.planExpiry = data.skuInfo.planExpiry
-  form.value.planScore = data.planScore + ''
-
-  formRef.value.validateField('planScore')
-}
-
-const setFormCommonFields = (data: any) => {
-  form.value.planType = data.planType
-  const curr = planTypeList.find((item) => item.value === data.planType)
-  if (curr) form.value.planTypeLable = curr.label
-  form.value.skuIdLable = data.skuInfo.skuName
-  form.value.ent_name = data.skuInfo.manufacturer
-  form.value.monthrange = data.planIssue + '至' + data.planExpiry
-  form.value.planType = data.planType
-}
-
-function convertToQuarterStart(dateString: string) {
-  const date = new Date(dateString)
-  const year = date.getFullYear()
-  const month = date.getMonth() // 0 为 1 月,11 为 12 月
-  let quarterStartMonth
-  if (month >= 0 && month <= 2) {
-    quarterStartMonth = '第一' // Q1: 1月
-  } else if (month >= 3 && month <= 5) {
-    quarterStartMonth = '第二' // Q2: 4月
-  } else if (month >= 6 && month <= 8) {
-    quarterStartMonth = '第三' // Q3: 7月
-  } else {
-    quarterStartMonth = '第四' // Q4: 10月
-  }
-  return `${year}年${quarterStartMonth}季度`
-}
-
-const customStyle = {
-  height: '80rpx'
-}
-
-const formRef = ref()
-const form = ref({
-  planType: '',
-  planTypeLable: '',
-  parentId: 0,
-  locFlag: 'UN_LOCK',
-  skuId: '',
-  skuIdLable: '',
-  planName: '',
-  consigneeId: '',
-  consigneeIdLable: '',
-  ent_name: '',
-  monthrange: '',
-  planIssue: '',
-  planExpiry: '',
-  planScore: ''
-})
-
-const rules = reactive({
-  skuIdLable: {
-    type: 'string',
-    required: true,
-    message: '请选择目标产品',
-    trigger: ['blur', 'change']
-  },
-  planName: {
-    type: 'string',
-    required: true,
-    message: '请输入目标名称',
-    trigger: ['blur', 'change']
-  },
-  consigneeIdLable: {
-    type: 'string',
-    required: true,
-    message: '请选择承接对象',
-    trigger: ['blur', 'change']
-  },
-  planTypeLable: {
-    type: 'string',
-    required: true,
-    message: '请选择目标周期',
-    trigger: ['blur', 'change']
-  },
-  monthrange: {
-    type: 'string',
-    required: true,
-    message: '请选择目标周期',
-    trigger: ['blur', 'change']
-  },
-  planScore: {
-    type: 'string',
-    required: true,
-    message: '请输入目标总值',
-    trigger: ['blur', 'change']
-  }
-})
-
-const skuIdPicker = ref()
-const consigneeIdPicker = ref()
-const planTypePicker = ref()
-const planTypeList = [
-  {
-    label: '年度计划',
-    value: 'ANN'
-  },
-  {
-    label: '季度计划',
-    value: 'QRT'
-  }
-]
-
-const show = ref(false)
-const yearPicker = ref()
-const seasonPicker = ref()
-const seasonList = ref()
-
-const showSelect = (detailType: string) => {
-  if (formDisabled.value) return
-  if (detailType === 'skuId') {
-    if (type.value === '3') return
-    skuIdPicker.value.open()
-  } else if (detailType === 'consigneeId') {
-    consigneeIdPicker.value.open()
-  } else if (detailType === 'planType') {
-    if (type.value === '3') return
-    planTypePicker.value.open()
-  } else if (detailType === 'monthrange') {
-    if (type.value === '3') return
-    if (!form.value.planTypeLable) return
-    if (form.value.planType === 'ANN') {
-      yearPicker.value.open()
-    } else if (form.value.planType === 'QRT') {
-      let arr = []
-      let years = new Date().getFullYear()
-      for (let i = years - 10; i <= years + 20; i++) {
-        arr.push(i)
-      }
-      const seasonArr = ['一季度', '二季度', '三季度', '四季度']
-      seasonList.value = [arr, seasonArr]
-      seasonPicker.value.open()
-    }
-  }
-}
-
-const skuIdConfirm = (e: any) => {
-  const value = e.value[0]
-  form.value.skuId = value.drug_id
-  form.value.skuIdLable = value.drug_name
-  form.value.ent_name = value.ent_name
-  formRef.value.validateField('skuIdLable')
-  planNameChange()
-}
-const consigneeIdConfirm = (e: any) => {
-  const value = e.value[0]
-  form.value.consigneeId = value.deptId
-  form.value.consigneeIdLable = value.name
-  formRef.value.validateField('consigneeIdLable')
-
-  if (type.value === '3') {
-    const name = detailInfo.value.planName + '-' + value.name
-    form.value.planName = name
-  } else {
-    planNameChange()
-  }
-}
-
-const planTypeConfirm = (e: any) => {
-  if (form.value?.planType === e.value[0]) return
-  const value = e.value[0]
-  form.value.planType = value.value
-  form.value.planTypeLable = value.label
-  formRef.value.validateField('planTypeLable')
-  // 清空目标周期
-  form.value.planIssue = ''
-  form.value.planExpiry = ''
-  form.value.monthrange = ''
-}
-
-const getDate = (e: string[]) => {
-  form.value.monthrange = e[0] + ' 至 ' + e[1]
-  form.value.planIssue = e[0]
-  form.value.planExpiry = e[1]
-  formRef.value.validateField('monthrange')
-  show.value = false
-}
-
-const yearConfirm = (e: any) => {
-  const year = dayjs(e.value).format('YYYY')
-  form.value.monthrange = year
-  form.value.planIssue = year + '-01-01'
-  form.value.planExpiry = year + '-12-31'
-  formRef.value.validateField('monthrange')
-  planNameChange()
-}
-
-const seasonConfirm = (e: any) => {
-  console.log('e', e)
-
-  const seasonIndex = e.indexs[1]
-  const value = e.value
-  form.value.monthrange = value[0] + '年第' + value[1]
-  let startMonth, endMonth, endDay, text
-  switch (seasonIndex) {
-    case 1: // Q1
-      startMonth = 1
-      endMonth = 3
-      endDay = 31
-      text = '第一'
-      break
-    case 2: // Q2
-      startMonth = 4
-      endMonth = 6
-      endDay = 30
-      text = '第二'
-      break
-    case 3: // Q3
-      startMonth = 7
-      endMonth = 9
-      endDay = 30
-      text = '第三'
-      break
-    case 4: // Q4
-      startMonth = 10
-      endMonth = 12
-      endDay = 31
-      text = '第四'
-      break
-    default:
-      throw new Error('Invalid quarter code')
-  }
-  const startDate = `${value[0]}-${String(startMonth).padStart(2, '0')}-01`
-  const endDate = `${value[0]}-${String(endMonth).padStart(2, '0')}-${endDay}`
-  form.value.planIssue = startDate
-  form.value.planExpiry = endDate
-  formRef.value.validateField('monthrange')
-  planNameChange()
-}
-
-const planNameChange = () => {
-  if (
-    form.value.skuIdLable &&
-    form.value.consigneeIdLable &&
-    form.value.planTypeLable &&
-    form.value.monthrange
-  ) {
-    let name = ''
-    if (form.value.planType === 'ANN') {
-      name = `${form.value.monthrange}年度-全年-${form.value.consigneeIdLable}-${form.value.skuIdLable}`
-    } else {
-      const arr = form.value.monthrange.split('年')
-      name = `${arr[0]}年度-${arr[1]}-${form.value.consigneeIdLable}-${form.value.skuIdLable}`
-    }
-
-    form.value.planName = name
-  }
-}
-
-const cancelFn = () => {
-  uni.navigateBack()
-}
-
-const confirmFn = () => {
-  if (type.value === '5') {
-    dismantleSubmit()
-    return
-  }
-  formRef.value
-    .validate()
-    .then(async () => {
-      let res
-      if (type.value === '3') {
-        form.value.parentId = detailInfo.value.planId
-        if (form.value.planScore > detailInfo.value?.availScore) {
-          return uni.showToast({
-            title: '当前分发目标总值不能超过剩余积分值!',
-            icon: 'none'
-          })
-        }
-      }
-      // 编辑 走编辑操作
-      if (btnType.value === '1') {
-        return submitEdit()
-      }
-      res = await createListApi(form.value)
-      if (res.data) {
-        uni.showToast({
-          title: '添加成功',
-          icon: 'none'
-        })
-        setTimeout(() => {
-          uni.navigateBack()
-        }, 1000)
-      }
-    })
-    .catch((err: any) => {
-      console.log('err', err)
-    })
-}
-
-const submitEdit = async () => {
-  const obj = Object.assign(form.value, {
-    planId: detailInfo.value.planId
-  })
-  const res = await updatePlanApi(obj)
-  if (res.data) {
-    uni.showToast({
-      title: '更新成功',
-      icon: 'none'
-    })
-    setTimeout(() => {
-      uni.navigateBack()
-    }, 1000)
-  }
-}
-
-// 审核相关
-const reviewFormRef = ref()
-const reviewForm = reactive({
-  msg: ''
-})
-const reviewFormRules = reactive({
-  msg: {
-    type: 'string',
-    required: false,
-    message: '请输入审核说明',
-    trigger: ['blur', 'change']
-  }
-})
-const reviewFn = (flag: boolean) => {
-  reviewFormRules.msg.required = !flag
-  reviewFormRef.value
-    .validate()
-    .then(async () => {
-      if (type.value === '7') {
-        dismantleReviewSubmt(flag)
-        return
-      }
-      const obj = {
-        msg: reviewForm.msg,
-        planId: detailInfo.value.planId,
-        result: flag
-      }
-
-      const res = await planCheckApi(obj)
-      if (res.data) {
-        uni.showToast({
-          title: '审核完成',
-          icon: 'none'
-        })
-        setTimeout(() => {
-          uni.navigateBack()
-        }, 1000)
-      }
-    })
-    .catch((err: any) => {
-      console.log('err', err)
-    })
-}
-// 拆解
-const tableRef = ref()
-const dismantleSubmit = async () => {
-  const data = tableRef.value.getData()
-  const allQty = data.reduce((prev: any, curr: any) => Number(prev) + Number(curr.qty), 0)
-  const allTotal = data.reduce((prev: any, curr: any) => prev + Number(curr.subtotal), 0)
-  if (allTotal != form.value.planScore) {
-    return uni.showToast({
-      title: '拆解总任务分值需等于目标总值',
-      icon: 'none'
-    })
-  }
-  const obj = {
-    planId: detailInfo.value.planId,
-    qty: allQty,
-    total: allTotal,
-    items: data
-  }
-  const res = await planDetailCreateApi(obj)
-  if (res.data) {
-    uni.showToast({
-      title: '拆解完成',
-      icon: 'none'
-    })
-    setTimeout(() => {
-      uni.navigateBack()
-    }, 1000)
-  }
-}
-// 拆解审核
-const dismantleReviewSubmt = async (flag: boolean) => {
-  const obj = {
-    detailsId: detailInfo.value.planDetails.detailsId,
-    result: flag,
-    msg: reviewForm.msg,
-    currentState: detailsState.value
-  }
-  const res = await checkPlanDetailsApi(obj)
-  if (res.data) {
-    uni.showToast({
-      title: '审核完成',
-      icon: 'none'
-    })
-    setTimeout(() => {
-      uni.navigateBack()
-    }, 1000)
-  }
-}
-</script>
-
-<style lang="scss" scoped>
-.objectives-add {
-  background: #f2f2f2;
-  min-height: 100vh;
-  box-sizing: border-box;
-  padding: 24rpx;
-
-  .message {
-    background: #fff;
-    padding: 30rpx;
-    border-radius: 12rpx;
-    width: 100%;
-    box-sizing: border-box;
-  }
-  .form {
-    background: #fff;
-    padding: 30rpx;
-    border-radius: 12rpx;
-
-    .avail-score {
-      margin-top: 34rpx;
-      font-size: 30rpx;
-      font-weight: 400;
-      color: #000;
-    }
-  }
-  .table {
-    margin-top: 20rpx;
-  }
-}
-
-.botton-content {
-  /* position: fixed;
-  bottom: 40rpx; */
-  margin-top: 20rpx;
-  padding: 30rpx 46rpx 54rpx;
-  box-sizing: border-box;
-  background-color: #fff;
-  width: 700rpx;
-  min-height: 160rpx;
-  border-radius: 12rpx;
-}
-.btn {
-  display: flex;
-  justify-content: space-between;
-
-  view {
-    font-weight: 400;
-    box-sizing: border-box;
-    font-size: 32rpx;
-    line-height: 45rpx;
-    border-radius: 8rpx;
-    height: 72rpx;
-    width: 290rpx;
-    display: flex;
-    align-items: center;
-    justify-content: center;
-  }
-  .cancel {
-    border: 2rpx solid #c7c7c7;
-    color: #111;
-  }
-  .confirm {
-    background-color: #6eb657;
-    color: #ffffff;
-  }
-}
-:deep(.uv-form-item__body__left) {
-  padding-left: 18rpx;
-}
-.review-form {
-  margin-bottom: 54rpx;
-}
-
-.b-fixed {
-  position: fixed;
-  bottom: 40rpx;
-}
-</style>

+ 0 - 466
src/pages-sub-admin/objectivesDetailList/index.vue

@@ -1,466 +0,0 @@
-<template>
-  <view class="objectives-list">
-    <view class="search">
-      <view class="top-search">
-        <view class="search-input">
-          <uv-input
-            v-model="searchParams.planName"
-            :customStyle="customStyle"
-            clearable
-            shape="circle"
-            placeholder="请输入"
-            prefixIcon="search"
-            prefixIconStyle="font-size: 22px;color: #6eb657"
-          ></uv-input>
-        </view>
-        <view class="search-button" @click="searchFn">搜索</view>
-        <uv-icon name="plus-circle" color="#6eb657" size="24" />
-      </view>
-      <view class="search-content">
-        <view
-          class="search-list"
-          @click="searchClick('consigneeId')"
-          :class="searchParams.consigneeId ? 'active' : ''"
-        >
-          <text>承接对象</text>
-          <uv-icon
-            name="arrow-down-fill"
-            :color="searchParams.consigneeId ? '#6eb657' : '#111111'"
-            size="14"
-          />
-        </view>
-        <view
-          class="search-list"
-          @click="searchClick('period')"
-          :class="searchParams.period.length ? 'active' : ''"
-        >
-          <text>创建日期</text>
-          <uv-icon
-            name="arrow-down-fill"
-            :color="searchParams.period.length ? '#6eb657' : '#111111'"
-            size="14"
-          />
-        </view>
-      </view>
-    </view>
-
-    <view class="list" v-if="hasInfo">
-      <view class="item" v-for="item in listArr" :key="item.id">
-        <view class="header">
-          <view class="title">{{ item.planName }}</view>
-          <view class="status">
-            <text class="circle"></text>
-            <text>{{ getStatusName(item.planState) }}</text>
-          </view>
-        </view>
-        <view class="content">
-          <view class="txt">承接对象:{{ item.consigneeInfo.consigneeName }}</view>
-          <view class="txt">目标周期:{{ item.planIssue + ' 至 ' + item.planExpiry }}</view>
-          <view class="txt">创建日期:{{ item.createTime }}</view>
-          <view class="progress">
-            <uv-line-progress
-              class="pro-two"
-              round
-              :showText="false"
-              :percentage="item.percentage"
-              activeColor="#95dc7e"
-              inactiveColor="#f8f8f0"
-            ></uv-line-progress>
-            <text>{{ item.percentage }}%</text>
-          </view>
-          <view class="txt">{{ item.execScoreValue }}/{{ item.planScore }}</view>
-          <view class="btns">
-            <!-- 区域管理员 -->
-            <template v-if="isYQGLY">
-              <!-- 分发 -->
-              <template v-if="item.parentId != '0' && item.planState === 'INIT'">
-                <view class="btn" @click="toDetail(4, item)">
-                  <image src="@/static/images/icon/review-img2.png" class="image" />
-                  <text>分发审核</text>
-                </view>
-              </template>
-            </template>
-            <!-- 区域管理员 | 一级cso -->
-            <template v-if="isDLSGLY">
-              <!-- 拆解审核 -->
-              <template v-if="item.planDetails && !item.planDetails.cktMsg1">
-                <view class="btn" @click="toDetail(7, item)">
-                  <image src="@/static/images/icon/review-img.png" class="image" />
-                  <text>拆解审核</text>
-                </view>
-              </template>
-            </template>
-            <!-- 商务组-->
-            <template v-if="isSWZ">
-              <!-- 拆解审核 -->
-              <template
-                v-if="item.planDetails && item.planDetails.cktMsg1 && !item.planDetails.cktMsg2"
-              >
-                <view class="btn" @click="toDetail(7, item)">
-                  <image src="@/static/images/icon/review-img.png" class="image" />
-                  <text>拆解审核</text>
-                </view>
-              </template>
-            </template>
-            <!-- 事业部-->
-            <template v-if="isSYB">
-              <!-- 拆解审核 -->
-              <template
-                v-if="
-                  item.planDetails &&
-                  item.planDetails.cktMsg1 &&
-                  item.planDetails.cktMsg2 &&
-                  !item.planDetails.cktMsg3
-                "
-              >
-                <view class="btn" @click="toDetail(7, item)">
-                  <image src="@/static/images/icon/review-img.png" class="image" />
-                  <text>拆解审核</text>
-                </view>
-              </template>
-            </template>
-            <!-- 数据统计 -->
-            <template v-if="item.planDetails">
-              <view class="btn" @click.stop.prevent.self="toDetail(6, item)">
-                <image src="@/static/images/icon/dismantle-img2.png" class="image" />
-                <text>数据统计</text>
-              </view>
-            </template>
-
-            <!-- 编辑按钮 -->
-            <template v-if="isDLSGLY && item.parentId != '0'">
-              <view class="btn" @click.stop.prevent.self="toEdit(item)">
-                <text :class="{ disabled: editDisabled(item) }">编辑</text>
-              </view>
-            </template>
-          </view>
-        </view>
-      </view>
-    </view>
-    <noData v-else />
-    <!-- 选择承接对象 -->
-    <uv-picker
-      ref="pickerRef"
-      :columns="csoList"
-      keyName="gsmc"
-      @confirm="pickerConfim"
-    ></uv-picker>
-    <!-- 月份范围 -->
-    <KDatePicker v-model="show" type="month" is-range @change="getDate" formatter="YYYY-MM-DD" />
-  </view>
-</template>
-
-<script setup lang="ts">
-import noData from '@/components/noData/index.vue'
-import { ref } from 'vue'
-import { onShow, onReachBottom, onLoad } from '@dcloudio/uni-app'
-import { getPlanChildrenApi, getListCsoApi } from '@/service/modules/objectivesList'
-import { getDictByNameApi } from '@/service/modules/getDict'
-import KDatePicker from '@/components/dateSelect/k-date-picker/KDatePicker.vue'
-import { useLoginStore } from '@/store/login'
-
-const loginStore = useLoginStore()
-let userInfo: any = loginStore.currentUserInfo
-const roles: number[] = userInfo.roles
-
-const customStyle = {
-  backgroundColor: '#f6f6f6'
-}
-
-const searchInfoDetail = ref()
-
-onLoad((e: any) => {
-  const searchInfo = JSON.parse(e?.searchInfo)
-  searchInfo.planId = e?.id
-  searchInfoDetail.value = searchInfo
-})
-
-class Params {
-  consigneeId = ''
-  period = [] as string[]
-  planName = ''
-  total = -1
-  current = 1
-  size = 10
-}
-
-const searchParams = ref(new Params())
-
-const hasInfo = ref(true)
-const listArr = ref<any[]>([])
-
-const getList = async (searchInfo: any) => {
-  uni.showLoading()
-  const res = await getPlanChildrenApi(searchInfo)
-  if (res.code === 0 && res.data) {
-    res.data?.forEach((item: any) => {
-      if (typeof item.execScoreValue === 'number' && typeof item.planScore === 'number') {
-        let value: any = (item.execScoreValue / item.planScore).toFixed(2)
-        item.percentage = value * 100
-      }
-    })
-    listArr.value = res.data
-  }
-  hasInfo.value = !!listArr.value.length
-  uni.hideLoading()
-}
-
-onReachBottom(() => {
-  if (listArr.value.length === searchParams.value.total) return
-  searchParams.value.current++
-  // getList()
-})
-const csoList = ref<any[]>([])
-const implPlanStateList = ref<any[]>([])
-const getDict = async () => {
-  getDictByNameApi('impl_plan_state').then((res: any) => (implPlanStateList.value = res.data))
-  getListCsoApi().then((res: any) => (csoList.value = [res.data]))
-}
-const getCsoName = (consigneeId: number) => {
-  const curr = csoList.value[0]?.find((item: any) => item.deptId === consigneeId)
-  return curr?.gsmc
-}
-const getStatusName = (planState: string) => {
-  const curr = implPlanStateList.value?.find((item: any) => item.value === planState)
-  return curr?.label
-}
-
-// 营销中心
-const isYXZX = ref(false)
-// 药企管理员
-const isYQGLY = ref(false)
-// 区域管理员
-const isDLSGLY = ref(false)
-// 商务组
-const isSWZ = ref(false)
-// 事业部分管领导
-const isSYB = ref(false)
-
-onShow(() => {
-  // 营销中心
-  if (roles.includes(38)) {
-    isYXZX.value = true
-  }
-  // 药企管理员
-  if (roles.includes(3)) {
-    isYQGLY.value = true
-  }
-  // 区域管理员
-  if (roles.includes(4)) {
-    isDLSGLY.value = true
-  }
-  // 商务组
-  if (roles.includes(40)) {
-    isSWZ.value = true
-  }
-  // 事业部
-  if (roles.includes(41)) {
-    isSYB.value = true
-  }
-  listArr.value = []
-  getDict()
-  searchParams.value.current = 1
-  getList(searchInfoDetail.value)
-})
-
-const searchFn = () => {
-  listArr.value = []
-  searchParams.value.current = 1
-  // getList()
-}
-
-const pickerRef = ref()
-const show = ref(false)
-
-const searchClick = (type: string) => {
-  if (type === 'consigneeId') {
-    pickerRef.value.open()
-  } else {
-    show.value = true
-  }
-}
-
-const pickerConfim = (e: any) => {
-  searchParams.value.consigneeId = e.value[0].deptId
-  searchFn()
-}
-
-const getDate = (e: any[]) => {
-  if (!e[1]) return
-  searchParams.value.period = e
-  show.value = false
-  searchFn()
-}
-
-const toDetail = (type: number, row?: any) => {
-  uni.navigateTo({
-    url: `/pages-sub-admin/objectivesAdd/index?&type=${type}&planId=${row.planId}`
-  })
-}
-
-const editDisabled = (item: any) => {
-  // 下发的一级包状态
-  if (item.parentId == 0) {
-    if (item.planType === 'ANN') {
-      let flag = item.planState === 'INIT' || item.planState === 'REJECTED'
-      return !flag
-    } else if (item.planType === 'QRT') {
-      let flag = item.children && item.children.length > 0
-      return flag
-    }
-  } else {
-    let flag = item.planState === 'INIT' || item.planState === 'REJECTED'
-    return !flag
-  }
-}
-// 编辑
-const toEdit = (item: any) => {
-  const flag = editDisabled(item)
-  if (flag) return
-
-  const type = item.parentId == 0 ? 1 : 3
-  uni.navigateTo({
-    url: `/pages-sub-admin/objectivesAdd/index?&type=${type}&btnType=1&planId=${item?.planId}`
-  })
-}
-</script>
-
-<style lang="scss" scoped>
-.objectives-list {
-  padding: 24rpx 0;
-  .search {
-    position: fixed;
-    width: 750rpx;
-    padding: 0 30rpx;
-    top: 0;
-    height: 150rpx;
-    background-color: #fff;
-    z-index: 99;
-    .top-search {
-      display: flex;
-      align-items: center;
-
-      .search-input {
-        width: 540rpx;
-        height: 70rpx;
-      }
-      .search-button {
-        color: #6eb657;
-        font-size: 30rpx;
-        margin: 0 10px;
-        font-weight: 400;
-      }
-    }
-    .search-content {
-      margin-top: 24rpx;
-      padding-bottom: 10rpx;
-      display: flex;
-      .search-list {
-        display: flex;
-        align-content: center;
-        margin-right: 64rpx;
-        height: 40rpx;
-        text {
-          font-weight: 500;
-          line-height: 40rpx;
-          font-size: 28rpx;
-          color: #111111;
-          margin-right: 8rpx;
-        }
-      }
-      .active text {
-        color: #6eb657;
-      }
-    }
-  }
-
-  .list {
-    margin-top: 150rpx;
-    padding: 0 30rpx;
-    .item {
-      margin-bottom: 20rpx;
-      width: 100%;
-      border-radius: 16rpx;
-      box-shadow: 0px 2rpx 8rpx 0px rgba(0, 0, 0, 0.2);
-      .header {
-        background-color: #f8f8f0;
-        padding: 26rpx 20rpx;
-        display: flex;
-        align-items: center;
-        justify-content: space-between;
-        border-top-left-radius: 16rpx;
-        border-top-right-radius: 16rpx;
-        .title {
-          font-size: 32rpx;
-          line-height: 45rpx;
-          width: 70%;
-          font-weight: 500;
-          color: #333;
-          word-wrap: break-word;
-        }
-        .status {
-          .circle {
-            display: block;
-            border-radius: 50%;
-            background-color: #72b25b;
-            margin-right: 10rpx;
-            width: 15rpx;
-            height: 15rpx;
-          }
-          display: flex;
-          align-items: center;
-          color: #72b25b;
-        }
-      }
-      .content {
-        padding: 20rpx;
-        .txt {
-          font-weight: 400;
-          color: #999;
-          font-size: 22rpx;
-          line-height: 30rpx;
-          margin-bottom: 16rpx;
-        }
-        .progress {
-          display: flex;
-          align-items: center;
-          margin-bottom: 8rpx;
-          .pro-two {
-            width: 80%;
-          }
-          text {
-            margin-left: 10px;
-            color: #010101;
-            font-size: 26rpx;
-            line-height: 36rpx;
-          }
-        }
-        .btns {
-          margin-top: 30rpx;
-          display: flex;
-
-          .btn {
-            display: flex;
-            align-items: center;
-            height: 34rpx;
-
-            .image {
-              width: 28rpx;
-              height: 28rpx;
-              margin-right: 12rpx;
-            }
-            text {
-              color: #6eb657;
-              font-size: 24rpx;
-              line-height: 34rpx;
-            }
-            .disabled {
-              color: #999;
-            }
-          }
-        }
-      }
-    }
-  }
-}
-</style>

+ 0 - 177
src/pages-sub-admin/objectivesList/components/approvalFlowchart.vue

@@ -1,177 +0,0 @@
-<template>
-  <uv-popup ref="popup" mode="bottom" @change="popupChange" v-if="showComponents">
-    <view class="step-content">
-      <uv-steps :current="info.active" dot direction="column" v-if="info.type === 0">
-        <uv-steps-item title="创建完成" active-color="#95dc7e" :customStyle="customStyle">
-          <template v-slot:title>
-            <text class="content-item">创建完成</text>
-          </template>
-        </uv-steps-item>
-        <uv-steps-item v-if="showStep2">
-          <template v-slot:title>
-            <text class="content-item">{{ info.title1 }}</text>
-          </template>
-        </uv-steps-item>
-        <uv-steps-item>
-          <template v-slot:title>
-            <text class="content-item">待区域管理员分发</text>
-          </template>
-        </uv-steps-item>
-        <uv-steps-item title="审核通过待下发">
-          <template v-slot:title>
-            <text class="content-item">审核通过待下发</text>
-          </template>
-        </uv-steps-item>
-        <uv-steps-item>
-          <template v-slot:title>
-            <text class="content-item">审核通过已下发</text>
-          </template>
-        </uv-steps-item>
-      </uv-steps>
-      <uv-steps
-        :current="info.active"
-        dot
-        direction="column"
-        active-color="#95dc7e"
-        inactive-color="#999"
-        v-if="info.type === 1"
-      >
-        <uv-steps-item>
-          <template v-slot:title>
-            <text class="content-item">创建完成</text>
-          </template>
-        </uv-steps-item>
-        <uv-steps-item>
-          <template v-slot:title>
-            <text class="content-item">{{ info.title2 }}</text>
-          </template>
-        </uv-steps-item>
-        <uv-steps-item>
-          <template v-slot:title>
-            <text class="content-item">{{ info.title3 }}</text>
-          </template>
-        </uv-steps-item>
-        <uv-steps-item>
-          <template v-slot:title>
-            <text class="content-item">待区域管理员拆解审核</text>
-          </template>
-        </uv-steps-item>
-        <uv-steps-item>
-          <template v-slot:title>
-            <text class="content-item">待商务管理员拆解审核</text>
-          </template>
-        </uv-steps-item>
-        <uv-steps-item>
-          <template v-slot:title>
-            <text class="content-item">待事业部分管领导拆解审核</text>
-          </template>
-        </uv-steps-item>
-        <uv-steps-item>
-          <template v-slot:title>
-            <text class="content-item">拆解完成</text>
-          </template>
-        </uv-steps-item>
-      </uv-steps>
-    </view>
-  </uv-popup>
-</template>
-
-<script setup lang="ts">
-import { reactive, ref } from 'vue'
-
-const showComponents = ref(false)
-
-const customStyle = {
-  height: '120rpx'
-}
-
-const popup = ref()
-
-const showStep2 = ref(true)
-
-const info = reactive({
-  title1: '待营销中心分管领导审批',
-  title2: '待运营管理员分发审核',
-  title3: '待服务商管理员拆解',
-  active: 1,
-  type: 0
-})
-
-const show = (item: any) => {
-  showComponents.value = true
-  info.type = item.parentId === 0 ? 0 : 1
-  info.title1 = '待营销中心分管领导审批'
-  info.title2 = '待运营管理员分发审核'
-  info.title3 = '待服务员管理员拆解'
-  info.active = 1
-
-  if (item.parentId == 0) {
-    showStep2.value = item.planType === 'QRT' ? false : true
-
-    if (item.planState === 'PASSED') {
-      if (!item.children) {
-        info.active = 2
-      } else {
-        info.active = item.execScoreValue > 0 ? 5 : 3
-      }
-    } else if (item.planState === 'REJECTED') {
-      info.title1 = '营销中心分管领导拒绝'
-    }
-  } else {
-    if (item.planState === 'PASSED') {
-      if (!item.planDetails) {
-        info.active = 2
-      } else {
-        switch (item.planDetails.detailsState) {
-          case 'INIT':
-            info.active = 3
-            break
-          case 'CKT1':
-            info.active = 4
-            break
-          case 'CKT2':
-            info.active = 5
-            break
-          case 'PASSED':
-            info.active = 7
-            break
-          case 'REJECTED':
-            info.active = 2
-            info.title3 = '拆解审核失败,待服务员管理员重新拆解'
-            break
-          default:
-            break
-        }
-      }
-    } else if (item.planState === 'REJECTED') {
-      info.title2 = '运营管理员分发审核拒绝'
-    }
-  }
-
-  setTimeout(() => {
-    popup.value.open()
-  }, 250)
-}
-
-const popupChange = (flag: any) => {
-  if (!flag.show) {
-    showStep2.value = true
-    showComponents.value = false
-  }
-}
-
-defineExpose({ show })
-</script>
-
-<style lang="scss" scoped>
-.step-content {
-  height: 80vh;
-  padding: 30rpx;
-}
-.content-item {
-  height: 120rpx;
-}
-:deep(.uv-steps-item__line) {
-  height: 120rpx !important;
-}
-</style>

+ 0 - 487
src/pages-sub-admin/objectivesList/index.vue

@@ -1,487 +0,0 @@
-<template>
-  <view class="objectives-list">
-    <view class="search">
-      <view class="top-search">
-        <view class="search-input">
-          <uv-input
-            v-model="searchParams.planName"
-            :customStyle="customStyle"
-            clearable
-            shape="circle"
-            placeholder="请输入"
-            prefixIcon="search"
-            prefixIconStyle="font-size: 22px;color: #6eb657"
-          ></uv-input>
-        </view>
-        <view class="search-button" @click="searchFn">搜索</view>
-        <uv-icon name="plus-circle" v-if="addFlag" color="#6eb657" size="24" @click="toDetail(1)" />
-      </view>
-      <view class="search-content">
-        <view
-          class="search-list"
-          @click="searchClick('consigneeId')"
-          :class="searchParams.consigneeId ? 'active' : ''"
-        >
-          <text>承接对象</text>
-          <uv-icon
-            name="arrow-down-fill"
-            :color="searchParams.consigneeId ? '#6eb657' : '#111111'"
-            size="14"
-          />
-        </view>
-        <view
-          class="search-list"
-          @click="searchClick('period')"
-          :class="searchParams.period.length ? 'active' : ''"
-        >
-          <text>目标周期</text>
-          <uv-icon
-            name="arrow-down-fill"
-            :color="searchParams.period.length ? '#6eb657' : '#111111'"
-            size="14"
-          />
-        </view>
-      </view>
-    </view>
-
-    <view class="list" v-if="hasInfo">
-      <view
-        class="item"
-        v-for="item in listArr"
-        :key="item.id"
-        @click.stop.prevent.self="detailClick(item.id)"
-      >
-        <view class="header">
-          <view class="title">{{ item.planName }}</view>
-          <view class="status">
-            <text class="circle"></text>
-            <text>{{ getStatusName(item.planState) }}</text>
-          </view>
-        </view>
-        <view class="content">
-          <view class="txt">承接对象:{{ item.consigneeInfo.consigneeName }}</view>
-          <view class="txt">目标周期:{{ item.planIssue + ' 至 ' + item.planExpiry }}</view>
-          <view class="txt">创建日期:{{ item.createTime }}</view>
-          <view class="progress">
-            <uv-line-progress
-              class="pro-two"
-              round
-              :showText="false"
-              :percentage="item.percentage"
-              activeColor="#95dc7e"
-              inactiveColor="#f8f8f0"
-            ></uv-line-progress>
-            <text>{{ item.percentage }}%</text>
-          </view>
-          <view class="txt">{{ item.execScoreValue }}/{{ item.planScore }}</view>
-          <view class="btns">
-            <view class="btn" @click.stop.prevent.self="approvalFlowchartFn(item)">
-              <text>审核节点</text>
-            </view>
-            <!-- 区域管理员 -->
-            <template v-if="isDLSGLY">
-              <!-- 分发 -->
-              <template v-if="item.parentId == '0' && item.availScore > 0">
-                <view class="btn" @click.stop.prevent.self="toDetail(3, item)">
-                  <image src="@/static/images/icon/distribute-img.png" class="image" />
-                  <text>分发</text>
-                </view>
-              </template>
-            </template>
-            <!-- 营销中心 -->
-            <template v-if="isYXZX">
-              <!-- 审核 -->
-              <template v-if="item.planState === 'INIT' && item.parentId == 0">
-                <view class="btn" @click.stop.prevent.self="toDetail(2, item)">
-                  <image src="@/static/images/icon/review-img.png" class="image" />
-                  <text>审核</text>
-                </view>
-              </template>
-            </template>
-            <!-- 二级cso -->
-            <template v-if="isROLE_SERVICE">
-              <!-- 拆解 -->
-              <template v-if="!item.planDetails || item.planDetails.detailsState === 'REJECTED'">
-                <view class="btn" @click.stop.prevent.self="toDetail(5, item)">
-                  <image src="@/static/images/icon/dismantle-img2.png" class="image" />
-                  <text>拆解</text>
-                </view>
-              </template>
-            </template>
-            <!-- 数据统计 -->
-            <template v-if="item.planDetails">
-              <view class="btn" @click.stop.prevent.self="toDetail(6, item)">
-                <image src="@/static/images/icon/dismantle-img2.png" class="image" />
-                <text>数据统计</text>
-              </view>
-            </template>
-            <!-- 编辑按钮 -->
-            <template v-if="isYQGLY && item.parentId == '0'">
-              <view class="btn" @click.stop.prevent.self="toEdit(item)">
-                <text :class="{ disabled: editDisabled(item) }">编辑</text>
-              </view>
-            </template>
-          </view>
-        </view>
-      </view>
-    </view>
-    <noData v-else />
-    <!-- 选择承接对象 -->
-    <uv-picker
-      @cancel="pickerCancel"
-      :cancelText="searchParams.consigneeId ? '清空' : '取消'"
-      ref="pickerRef"
-      :columns="csoList"
-      keyName="gsmc"
-      @confirm="pickerConfim"
-    ></uv-picker>
-    <!-- 月份范围 -->
-    <KDatePicker
-      v-model="show"
-      type="month"
-      is-range
-      :confirmText="searchParams.period.length ? '清除' : '确定'"
-      @change="getDate"
-      formatter="YYYY-MM-DD"
-    />
-    <approvalFlowchart ref="approvalFlowchartRef" />
-  </view>
-</template>
-
-<script setup lang="ts">
-import noData from '@/components/noData/index.vue'
-import { ref } from 'vue'
-import { onShow, onReachBottom } from '@dcloudio/uni-app'
-import { getListApi, getListDescendant } from '@/service/modules/objectivesList'
-import { getDictByNameApi } from '@/service/modules/getDict'
-import KDatePicker from '@/components/dateSelect/k-date-picker/KDatePicker.vue'
-import { useLoginStore } from '@/store/login'
-import approvalFlowchart from './components/approvalFlowchart.vue'
-
-const loginStore = useLoginStore()
-let userInfo: any = loginStore.currentUserInfo
-const roles: number[] = userInfo.roles
-
-const customStyle = {
-  backgroundColor: '#f6f6f6'
-}
-
-class Params {
-  consigneeId = ''
-  period = [] as string[]
-  planName = ''
-  total = -1
-  current = 1
-  size = 10
-}
-
-const searchParams = ref(new Params())
-
-const hasInfo = ref(true)
-const listArr = ref<any[]>([])
-const getList = async () => {
-  uni.showLoading()
-  const res = await getListApi(searchParams.value)
-  if (res.code === 0) {
-    searchParams.value.total = res.data.total
-    res.data.records.forEach((item: any) => {
-      if (typeof item.execScoreValue === 'number' && typeof item.planScore === 'number') {
-        let value: any = (item.execScoreValue / item.planScore).toFixed(2)
-        item.percentage = value * 100
-      }
-    })
-    listArr.value = listArr.value.concat(res.data.records)
-    searchParams.value.total = res.data.total
-    hasInfo.value = !!listArr.value.length
-  } else {
-    hasInfo.value = false
-  }
-  uni.hideLoading()
-}
-const pickerCancel = () => {
-  if (searchParams.value.consigneeId) {
-    searchParams.value.consigneeId = ''
-    searchFn()
-  }
-}
-
-onReachBottom(() => {
-  if (listArr.value.length === searchParams.value.total) return
-  searchParams.value.current++
-  getList()
-})
-const csoList = ref<any[]>([])
-const implPlanStateList = ref<any[]>([])
-const getDict = async () => {
-  getDictByNameApi('impl_plan_state').then((res: any) => (implPlanStateList.value = res.data))
-  getListDescendant().then((res: any) => (csoList.value = [res.data]))
-}
-
-const getStatusName = (planState: string) => {
-  const curr = implPlanStateList.value?.find((item: any) => item.value === planState)
-  return curr?.label
-}
-
-const detailClick = (id: number) => {
-  if (isROLE_SERVICE.value) return
-  const searchInfo = JSON.stringify(searchParams.value)
-  uni.navigateTo({
-    url: `/pages-sub-admin/objectivesDetailList/index?&searchInfo=${searchInfo}&id=${id}`
-  })
-}
-
-// 营销中心
-const isYXZX = ref(false)
-// 药企管理员
-const isYQGLY = ref(false)
-// 区域管理员
-const isDLSGLY = ref(false)
-
-// 二级cso
-const isROLE_SERVICE = ref(false)
-
-// 判断是否有新增按钮
-
-const addFlag = ref(false)
-
-onShow(() => {
-  // 营销中心
-  if (roles.includes(38)) {
-    isYXZX.value = true
-  }
-  // 药企管理员
-  if (roles.includes(3)) {
-    isYQGLY.value = true
-    addFlag.value = true
-  }
-  // 区域管理员
-  if (roles.includes(4)) {
-    isDLSGLY.value = true
-  }
-  if (roles.includes(37)) {
-    isROLE_SERVICE.value = true
-  }
-  listArr.value = []
-  getDict()
-  searchParams.value.current = 1
-  getList()
-})
-
-const searchFn = () => {
-  listArr.value = []
-  searchParams.value.current = 1
-  getList()
-}
-
-const pickerRef = ref()
-const show = ref(false)
-
-const searchClick = (type: string) => {
-  if (type === 'consigneeId') {
-    pickerRef.value.open()
-  } else {
-    show.value = true
-  }
-}
-
-const pickerConfim = (e: any) => {
-  searchParams.value.consigneeId = e.value[0].deptId
-  searchFn()
-}
-
-const getDate = (e: any[]) => {
-  if (searchParams.value.period.length) {
-    searchParams.value.period = []
-  } else {
-    searchParams.value.period = e
-  }
-  show.value = false
-  searchFn()
-}
-
-const approvalFlowchartRef = ref()
-const approvalFlowchartFn = (item: any) => {
-  approvalFlowchartRef.value.show(item)
-}
-
-// type 1: 新增 2:审核 3: 分发 4:分发审核 5:拆解 6:数据统计 7:拆解审核
-const toDetail = (type: number, row?: any) => {
-  if (type === 1) {
-    uni.navigateTo({
-      url: `/pages-sub-admin/objectivesAdd/index?&type=${type}`
-    })
-  } else {
-    uni.navigateTo({
-      url: `/pages-sub-admin/objectivesAdd/index?&type=${type}&planId=${row?.planId}`
-    })
-  }
-}
-
-const editDisabled = (item: any) => {
-  // 下发的一级包状态
-  if (item.parentId == 0) {
-    if (item.planType === 'ANN') {
-      let flag = item.planState === 'INIT' || item.planState === 'REJECTED'
-      return !flag
-    } else if (item.planType === 'QRT') {
-      let flag = item.children && item.children.length > 0
-      return flag
-    }
-  } else {
-    let flag = item.planState === 'INIT' || item.planState === 'REJECTED'
-    return !flag
-  }
-}
-
-// 编辑
-const toEdit = (item: any) => {
-  const flag = editDisabled(item)
-  if (flag) return
-
-  const type = item.parentId == 0 ? 1 : 3
-  uni.navigateTo({
-    url: `/pages-sub-admin/objectivesAdd/index?&type=${type}&btnType=1&planId=${item?.planId}`
-  })
-}
-</script>
-
-<style lang="scss" scoped>
-.objectives-list {
-  padding: 24rpx 0;
-  .search {
-    position: fixed;
-    width: 750rpx;
-    padding: 0 30rpx;
-    top: 0;
-    height: 150rpx;
-    background-color: #fff;
-    z-index: 99;
-    .top-search {
-      display: flex;
-      align-items: center;
-
-      .search-input {
-        width: 540rpx;
-        height: 70rpx;
-      }
-      .search-button {
-        color: #6eb657;
-        font-size: 30rpx;
-        margin: 0 10px;
-        font-weight: 400;
-      }
-    }
-    .search-content {
-      margin-top: 24rpx;
-      padding-bottom: 10rpx;
-      display: flex;
-      .search-list {
-        display: flex;
-        align-content: center;
-        margin-right: 64rpx;
-        height: 40rpx;
-        text {
-          font-weight: 500;
-          line-height: 40rpx;
-          font-size: 28rpx;
-          color: #111111;
-          margin-right: 8rpx;
-        }
-      }
-      .active text {
-        color: #6eb657;
-      }
-    }
-  }
-
-  .list {
-    margin-top: 150rpx;
-    padding: 0 30rpx;
-    .item {
-      margin-bottom: 20rpx;
-      width: 100%;
-      border-radius: 16rpx;
-      box-shadow: 0px 2rpx 8rpx 0px rgba(0, 0, 0, 0.2);
-      .header {
-        background-color: #f8f8f0;
-        padding: 26rpx 20rpx;
-        display: flex;
-        align-items: center;
-        justify-content: space-between;
-        border-top-left-radius: 16rpx;
-        border-top-right-radius: 16rpx;
-        .title {
-          font-size: 32rpx;
-          line-height: 45rpx;
-          width: 70%;
-          font-weight: 500;
-          color: #333;
-          word-wrap: break-word;
-        }
-        .status {
-          .circle {
-            display: block;
-            border-radius: 50%;
-            background-color: #72b25b;
-            margin-right: 10rpx;
-            width: 15rpx;
-            height: 15rpx;
-          }
-          display: flex;
-          align-items: center;
-          color: #72b25b;
-        }
-      }
-      .content {
-        padding: 20rpx;
-        .txt {
-          font-weight: 400;
-          color: #999;
-          font-size: 22rpx;
-          line-height: 30rpx;
-          margin-bottom: 16rpx;
-        }
-        .progress {
-          display: flex;
-          align-items: center;
-          margin-bottom: 8rpx;
-          .pro-two {
-            width: 80%;
-          }
-          text {
-            margin-left: 10px;
-            color: #010101;
-            font-size: 26rpx;
-            line-height: 36rpx;
-          }
-        }
-        .btns {
-          margin-top: 30rpx;
-          display: flex;
-
-          .btn {
-            display: flex;
-            align-items: center;
-            height: 34rpx;
-            margin-right: 10rpx;
-
-            .image {
-              width: 28rpx;
-              height: 28rpx;
-              margin-right: 12rpx;
-            }
-            text {
-              color: #6eb657;
-              font-size: 24rpx;
-              line-height: 34rpx;
-            }
-            .disabled {
-              color: #999;
-            }
-          }
-        }
-      }
-    }
-  }
-}
-</style>

+ 0 - 84
src/pages-sub-admin/serviceManagement/index.vue

@@ -1,84 +0,0 @@
-<template>
-  <view class="market-box">
-    <template v-for="(item, index) in taskList" :key="item.url">
-      <view v-show="getShow(index)">
-        <view
-          class="market-list"
-          :style="{ background: item.backgroundColor }"
-          @click="navigateToDetail(item.url)"
-        >
-          <image :src="item.img" alt="" />
-          <view class="info" :style="{ color: item.color }">
-            <view class="title">{{ item.title }}</view>
-          </view>
-          <view class="btn">
-            <uv-icon name="arrow-right" :color="item.color" size="16" />
-          </view>
-        </view>
-      </view>
-    </template>
-  </view>
-</template>
-
-<script setup lang="ts">
-import taskList from './taskList'
-import { useLoginStore } from '@/store/login'
-const loginStore = useLoginStore()
-let userInfo: any = loginStore.currentUserInfo
-const currentRoles: number[] = userInfo.roles
-
-const navigateToDetail = (url: string) => {
-  uni.navigateTo({
-    url: url
-  })
-}
-
-const getShow = (index: number) => {
-  if (index === 0) {
-    return !currentRoles.includes(37)
-  }
-  if (index === 1) {
-    return currentRoles.includes(37)
-  }
-  return true
-}
-</script>
-
-<style lang="scss" scoped>
-.market-box {
-  padding: 30rpx;
-  .market-list {
-    height: 180rpx;
-    border-radius: 16rpx;
-    padding: 10rpx 24rpx;
-    display: flex;
-    align-items: center;
-    margin-bottom: 24rpx;
-    image {
-      width: 160rpx;
-      height: 160rpx;
-    }
-    .info {
-      margin-left: 24rpx;
-      .title {
-        font-size: 36rpx;
-        font-weight: 600;
-        margin-bottom: 10rpx;
-      }
-      .desc {
-        font-size: 22rpx;
-      }
-    }
-    .btn {
-      margin-left: auto;
-      width: 56rpx;
-      height: 56rpx;
-      border-radius: 50%;
-      background: rgba($color: #fff, $alpha: 0.3);
-      display: flex;
-      align-items: center;
-      justify-content: center;
-    }
-  }
-}
-</style>

+ 0 - 34
src/pages-sub-admin/serviceManagement/taskList.ts

@@ -1,34 +0,0 @@
-export default [
-  {
-    title: '服务下发',
-    color: '#30546E',
-    role: [4],
-    url: '/pages-sub-service-mangement/serviceDelivery/index',
-    backgroundColor: 'linear-gradient(270.93deg, #D6EDFD 0.8%, #F1F9FF 100%);',
-    img: 'https://yy-cloud-oss.oss-cn-beijing.aliyuncs.com/img/zxdc.png'
-  },
-  {
-    title: '服务下发-自营',
-    color: '#427C89',
-    role: [37],
-    url: '/pages-sub-service-mangement/assignPoints/index',
-    backgroundColor: 'linear-gradient(94.41deg, #F0FCFF -14.28%, #DBF3F8 77.47%);',
-    img: 'https://yy-cloud-oss.oss-cn-beijing.aliyuncs.com/img/yddc.png'
-  },
-  {
-    title: '服务承接',
-    color: '#685B32',
-    role: [37],
-    url: '/pages-sub-service-mangement/taskManagement/index',
-    backgroundColor: 'linear-gradient(273.25deg, #FFF5D1 9.9%, #FFFAE6 99.41%);',
-    img: 'https://yy-cloud-oss.oss-cn-beijing.aliyuncs.com/img/jpdc.png'
-  },
-  {
-    title: '服务审核',
-    color: '#8E3F3B',
-    role: [4],
-    url: '/pages-sub-service-mangement/taskReportapproval/index',
-    backgroundColor: 'linear-gradient(94.41deg, #FFFCFC -14.28%, #F4E1E0 77.47%);',
-    img: 'https://yy-cloud-oss.oss-cn-beijing.aliyuncs.com/img/kcdc.png'
-  }
-]

+ 0 - 47
src/pages-sub-mine/agreement/index.vue

@@ -1,47 +0,0 @@
-<template>
-  <view class="agreement">
-    <view
-      class="agreement-item"
-      v-for="item in agreementList"
-      :key="item.path"
-      @click="navigatorClick(item)"
-      >{{ item.name }}</view
-    >
-  </view>
-</template>
-
-<script setup lang="ts">
-const agreementList = [
-  {
-    name: '《营销行为小助手平台用户协议》',
-    path: '/pages-sub-packages/agreement/platformUsers'
-  },
-  {
-    name: '《隐私权政策》',
-    path: '/pages-sub-packages/agreement/privacyPolicy'
-  },
-  {
-    name: '《个人信息使用授权书》',
-    path: '/pages-sub-packages/agreement/personalInfoAuth'
-  }
-]
-const navigatorClick = (item: any) => {
-  if (!item.path) return
-  uni.navigateTo({
-    url: item.path
-  })
-}
-</script>
-
-<style lang="scss" scoped>
-.agreement {
-  padding: 30rpx;
-  .agreement-item {
-    height: 100rpx;
-    line-height: 100rpx;
-    font-size: 32rpx;
-    color: #333333;
-    border-bottom: 1px solid #d9d9d9;
-  }
-}
-</style>

+ 0 - 129
src/pages-sub-mine/auth/constants/index.ts

@@ -1,129 +0,0 @@
-interface authType {
-  [key: string]: string | undefined
-}
-
-export const subjectLocationName: authType = {
-  REN_LI_JIA: '人力家',
-  LUO_SHU_YUN: '税邦云', // 永州罗数云, 暂时定为税邦云
-  // 钉灵工通道
-  FEI_YI: '钉灵工-海南飞亿',
-  JIN_YUAN: '金园数科',
-  XIN_TAI_ZI: '钉灵工-河南薪泰梓',
-  ZHENG_QI_ZHI_XING: '安之慧',
-  HUI_QI_YUN: '汇企云',
-  OTHER: '其他'
-}
-
-interface statusType {
-  [key: string]: string[]
-}
-
-export const statusListMap: statusType = {
-  REN_LI_JIA: ['CER_STATUS_2', 'CER_STATUS_4'],
-  LUO_SHU_YUN: ['UN_CERT', 'ADD_MEMBER'],
-  YEE: ['UN_SIGNED', 'TERMINATED'], //
-  FEI_YI: ['UN_SIGNED', 'SIGNED', 'SIGNING', 'UN_CERT'],
-  JIN_YUAN: ['UN_SIGNED', 'SIGNED', 'SIGNING', 'UN_CERT'],
-  XIN_TAI_ZI: ['UN_SIGNED', 'SIGNED', 'SIGNING', 'UN_CERT'],
-  ZHENG_QI_ZHI_XING: ['UN_SIGN', 'SIGN'],
-  HUI_QI_YUN: ['UN_SIGN', 'SIGN']
-}
-
-export const peddingListMap: statusType = {
-  REN_LI_JIA: ['CER_STATUS_1', 'CER_STATUS_3'], // 1, 3
-  LUO_SHU_YUN: ['CHECKED_UNBIND', 'CHECKING_UNBIND', 'UNCHECKED_BIND', 'CHECKING_BIND', 'CERT'], // (12, 14跳转绑卡页面, 可点) (16已绑卡, 跳转人脸采集页面, 采集完毕提交, 可点) (13, 15显示状态, 不能点)
-  YEE: ['SIGNED'], // 1 不可点
-  FEI_YI: ['CERT'], // 1, 3 不可点
-  JIN_YUAN: ['CERT'],
-  XIN_TAI_ZI: ['CERT'],
-  ZHENG_QI_ZHI_XING: ['CERT'], // 安之慧
-  HUI_QI_YUN: ['CERT']
-}
-
-interface anyType {
-  [key: string]: any
-}
-export const notCertMap: anyType = {
-  REN_LI_JIA: ['CER_STATUS_2', 'CER_STATUS_4'],
-  LUO_SHU_YUN: ['UN_CERT'],
-  YEE: ['UN_SIGNED', 'TERMINATED'], //
-  FEI_YI: ['UN_SIGNED'],
-  JIN_YUAN: ['UN_SIGNED'],
-  XIN_TAI_ZI: ['UN_SIGNED'],
-  ZHENG_QI_ZHI_XING: ['UN_SIGN'],
-  HUI_QI_YUN: ['UN_SIGN']
-}
-
-export const subjectLocationStatusName: anyType = {
-  REN_LI_JIA: {
-    CER_STATUS_1: '认证成功',
-    CER_STATUS_2: '认证失败',
-    CER_STATUS_3: '认证中',
-    CER_STATUS_4: '未认证'
-  },
-  LUO_SHU_YUN: {
-    UN_CERT: '未认证',
-    ADD_MEMBER: '已增员',
-    CHECKED_UNBIND: '已认证,未绑卡',
-    CHECKING_BIND: '认证中已绑卡',
-    CHECKING_UNBIND: '认证中未绑卡',
-    CERT: '认证成功',
-    UNCHECKED_BIND: '未认证已绑卡'
-  },
-  YEE: {
-    UN_SIGNED: '未签约',
-    SIGNED: '已签约',
-    TERMINATED: '已解约'
-  },
-  JIN_YUAN: {
-    UN_SIGNED: '未签约',
-    CERT: '认证成功',
-    SIGNED: '已签约',
-    SIGNING: '签约中',
-    UN_CERT: '未认证'
-  },
-  XIN_TAI_ZI: {
-    UN_SIGNED: '未签约',
-    CERT: '认证成功',
-    SIGNED: '已签约',
-    SIGNING: '签约中',
-    UN_CERT: '未认证'
-  },
-  ZHENG_QI_ZHI_XING: {
-    UN_SIGN: '未签约',
-    CERT: '认证成功',
-    SIGN: '已签约'
-  },
-  HUI_QI_YUN: {
-    UN_SIGN: '未签约',
-    CERT: '认证成功',
-    SIGN: '已签约'
-  }
-}
-
-export const signAgreementMap: anyType = {
-  LUO_SHU_YUN: {
-    name: '共享经济个体合作协议',
-    path: '/pages-sub-packages/agreement/taxhelper'
-  },
-  FEI_YI: {
-    name: '共享经济综合服务协议',
-    path: '/pages-sub-packages/agreement/olading'
-  },
-  JIN_YUAN: {
-    name: '共享经济综合服务协议',
-    path: '/pages-sub-packages/agreement/jinyuan'
-  },
-  XIN_TAI_ZI: {
-    name: '共享经济综合服务协议',
-    path: '/pages-sub-packages/agreement/xintaizi'
-  },
-  ZHENG_QI_ZHI_XING: {
-    name: '灵活用工服务合作协议',
-    path: '/pages-sub-packages/agreement/zhengqizhixing'
-  },
-  HUI_QI_YUN: {
-    name: '灵活用工服务合作协议',
-    path: '/pages-sub-packages/agreement/huiqiyun'
-  }
-}

+ 0 - 289
src/pages-sub-mine/auth/hook/useAutnFn.ts

@@ -1,289 +0,0 @@
-// 认证所需函数
-
-import { ref } from 'vue'
-import { isValidPhoneNumber, isValidChineseIDNumber, isValidBankCard } from '@/utils/index'
-import { useLoginStore } from '@/store/login'
-
-// @ts-ignore
-import { startEid } from '../../../mp_ecard_sdk/main.js'
-
-import {
-  saveBaseInfoApi,
-  signCertApi,
-  signAgreementApi,
-  getETokenApi,
-  getETokenResultApi,
-  batchCertApi,
-  saveBankInfoApi
-} from '@/service/modules/auth'
-
-export default function useAuthFn(userInfo: any, radioValue: any, certList: any) {
-  const loginStore = useLoginStore()
-  // 校验信息
-  const checkInfo = () => {
-    if (!userInfo.realname) {
-      uni.showToast({
-        title: '请输入姓名',
-        icon: 'none'
-      })
-      return
-    }
-    if (!userInfo.idCardNumber) {
-      uni.showToast({
-        title: '请输入身份证号',
-        icon: 'none'
-      })
-      return
-    }
-    if (!isValidChineseIDNumber(userInfo.idCardNumber)) {
-      uni.showToast({
-        title: '请输入正确的身份证号',
-        icon: 'none'
-      })
-      return
-    }
-    if (!isValidBankCard(userInfo.bankCardNumber)) {
-      uni.showToast({
-        title: '请检查银行卡号',
-        icon: 'none'
-      })
-      return
-    }
-    if (!isValidPhoneNumber(userInfo.bankPhone)) {
-      uni.showToast({
-        title: '请检查银行绑定手机号',
-        icon: 'none'
-      })
-      return
-    }
-    if (!radioValue.value) {
-      uni.showToast({
-        title: '请选择认证渠道',
-        icon: 'none'
-      })
-      return
-    }
-    return true
-  }
-  // 保存信息
-  const saveBaseInfo = async () => {
-    const data = {
-      userId: loginStore.currentUserInfo.userId,
-      realname: userInfo.realname,
-      idCardNumber: userInfo.idCardNumber,
-      bankCardNumber: userInfo.bankCardNumber,
-      bankPhone: userInfo.bankPhone,
-      subjectLocation: radioValue.value
-    }
-    uni.showLoading({
-      title: '保存信息中',
-      mask: true
-    })
-    const res = await saveBaseInfoApi(data)
-    if (res.code === 0) {
-      loginStore.getUserInfoByCode()
-    }
-    uni.hideLoading()
-  }
-  // 签约/增员
-  const signCertFn = async () => {
-    uni.showLoading({
-      title: '信息校验中',
-      icon: 'loading',
-      mask: true
-    })
-    const data = {
-      userId: loginStore.currentUserInfo.userId,
-      subjectLocation: radioValue.value
-    }
-    const res = await signCertApi(data)
-    uni.hideLoading()
-    if (res.code === 0) {
-      // 如果返回状态为SIGNING 重新发起认证
-      if (res.data?.certStatus === 'SIGNING') {
-        signCertFn()
-      } else {
-        // 签署协议弹窗
-        signAgreementFn()
-      }
-    } else {
-      // 签约/增员失败 展示原因
-      setTimeout(() => {
-        uni.showToast({
-          title: res.msg || '失败,请重试',
-          icon: 'none'
-        })
-      }, 0)
-    }
-  }
-
-  const agereementModal = ref()
-  const agreemetChecked = ref(false)
-  // 签署协议弹窗
-  const signAgreementFn = () => {
-    if (certList.value) {
-      const curr = certList.value.find((item: any) => item.subjectLocation === radioValue.value)
-      // 存在agreementUrl直接去认证
-      if (curr?.agreementUrl) {
-        getETokenAndToVerify()
-        return
-      }
-      agereementModal.value.open()
-    }
-  }
-  const agreementUrl = ref('')
-  // 签署协议
-  const signAgreeSuccess = async () => {
-    uni.showLoading({
-      title: '提交信息中',
-      mask: true
-    })
-    const data = {
-      userId: loginStore.currentUserInfo.userId,
-      agreementUrl: agreementUrl.value,
-      subjectLocation: radioValue.value
-    }
-    const res = await signAgreementApi(data)
-    if (res.code === 0) {
-      // 签署成功
-      // 去走E证通
-      getETokenAndToVerify()
-    } else {
-      uni.showToast({
-        title: res.msg || '签署失败',
-        icon: 'none',
-        duration: 1500
-      })
-      uni.navigateBack()
-    }
-    uni.hideLoading()
-  }
-  // 跳转e证通认证
-  const getETokenAndToVerify = async () => {
-    // 判断是否已经认证过
-    if (loginStore.currentUserInfo.existEidResult) {
-      authCertFn()
-      return
-    }
-    const data = {
-      realName: userInfo.realname,
-      idCard: userInfo.idCardNumber
-    }
-
-    const res = await getETokenApi(data)
-    if (res.code === 0) {
-      const etoken = res.data
-      const param = {
-        data: {
-          token: etoken
-        },
-        verifyDoneCallback(res: any) {
-          console.log('收到核身完成的res', res)
-        }
-      }
-      etoken && startEid(param)
-    } else {
-      uni.showToast({
-        title: '状态获取失败,请重试',
-        icon: 'none'
-      })
-    }
-  }
-
-  // e证通返回
-  const authBackHandler = async (options: any) => {
-    if (options?.path !== 'mp_ecard_sdk/index/index') return
-    const { referrerInfo, scene } = options
-    if (scene === 1038 && referrerInfo?.appId === 'wx0e2cb0b052a91c92') {
-      const { extraData } = referrerInfo
-      if (!extraData) {
-        return uni.showToast({
-          title: '核身失败,请重试',
-          icon: 'none',
-          duration: 3000
-        })
-      }
-      const { token, verifyDone } = extraData
-      if (verifyDone) {
-        uni.showLoading({
-          title: '核身结果获取中',
-          mask: true
-        })
-        const res = await getETokenResultApi(token)
-        uni.hideLoading()
-        if (res.code === 0) {
-          // 核身成功
-          if (res.data.compareCode === 0) {
-            uni.showToast({
-              title: '核身成功',
-              icon: 'none'
-            })
-            // 认证
-            authCertFn()
-          } else {
-            uni.showToast({
-              title: '核身失败',
-              icon: 'none'
-            })
-          }
-        } else {
-          // 查询结果失败
-          uni.showToast({
-            title: res.msg || '未查询到结果',
-            icon: 'none'
-          })
-        }
-      }
-    }
-    console.log('options', options)
-  }
-
-  // 认证
-  const authCertFn = async () => {
-    const data = {
-      userId: loginStore.currentUserInfo.userId,
-      subjectLocation: radioValue.value,
-      token: loginStore.currentUserInfo.certToken
-    }
-    const res = await batchCertApi(data)
-    if (res.code === 0) {
-      saveBankInfo()
-    } else {
-      uni.showToast({
-        title: res.msg || '提交失败,请重试',
-        icon: 'none',
-        duration: 3000
-      })
-    }
-    loginStore.getUserInfoByCode()
-  }
-
-  // 绑定银行卡
-  const saveBankInfo = async () => {
-    const data = {
-      userId: loginStore.currentUserInfo.userId,
-      bankPhone: loginStore.currentUserInfo.bankPhone,
-      bankCardNumber: loginStore.currentUserInfo.bankCardNumber
-    }
-    const res = await saveBankInfoApi(data)
-    if (res.code === 0) {
-      uni.showToast({
-        title: '成功',
-        icon: 'none',
-        duration: 3000
-      })
-    }
-  }
-  return {
-    checkInfo,
-    saveBaseInfo,
-    signCertFn,
-    signAgreementFn,
-    authCertFn,
-    signAgreeSuccess,
-    authBackHandler,
-    agereementModal,
-    agreemetChecked,
-    agreementUrl
-  }
-}

+ 0 - 50
src/pages-sub-mine/auth/hook/useRadio.ts

@@ -1,50 +0,0 @@
-import { statusListMap, peddingListMap, subjectLocationStatusName } from '../constants/index'
-
-export default function useRadio(certList: any) {
-  const getRadio = (subjectLocationItem: string): boolean => {
-    // OTHER 直接返回
-    if (subjectLocationItem === 'OTHER') return false
-    const current = certList.value.find((item: any) => item.subjectLocation === subjectLocationItem)
-    if (!current) return true
-    const certStatus = current.certStatus
-    const callbackStatus = current.callbackStatus
-    // 渠道认证进行中, 不允许操作
-    if (callbackStatus === 'IN_PROGRESS') return false
-    // 显示checkbox的情况
-    const currentList = statusListMap[subjectLocationItem]
-    return currentList.includes(certStatus)
-  }
-
-  const IS_IN_PROGRESS = (subjectLocationItem: string): boolean => {
-    const current = certList.value.find((item: any) => item.subjectLocation === subjectLocationItem)
-    if (!current) return false
-    const callbackStatus = current.callbackStatus
-    // 渠道认证进行中, 不允许操作
-    return callbackStatus === 'IN_PROGRESS'
-  }
-
-  const getStatusText = (subjectLocationItem: string): boolean => {
-    const current = certList.value.find((item: any) => item.subjectLocation === subjectLocationItem)
-    if (!current) return false
-    const certStatus = current.certStatus
-    const callbackStatus = current.callbackStatus
-    // 渠道认证进行中, 不允许操作
-    if (callbackStatus === 'IN_PROGRESS') return false
-    const currentList = peddingListMap[subjectLocationItem]
-    return currentList.includes(certStatus)
-  }
-
-  const getStatusName = (subjectLocationItem: string): string => {
-    const current = certList.value.find((item: any) => item.subjectLocation === subjectLocationItem)
-    if (!current) return ''
-    const certStatus = current.certStatus
-    const currMap = subjectLocationStatusName[subjectLocationItem]
-    return currMap[certStatus]
-  }
-  return {
-    getRadio,
-    IS_IN_PROGRESS,
-    getStatusText,
-    getStatusName
-  }
-}

+ 0 - 390
src/pages-sub-mine/auth/index.vue

@@ -1,390 +0,0 @@
-<template>
-  <view class="auth">
-    <view class="card user-info">
-      <view class="title">个人信息</view>
-      <view class="info-list">
-        <view class="info-item">
-          <view>姓名</view>
-          <uv-input
-            :readonly="getDisabled"
-            border="none"
-            inputAlign="right"
-            v-model="userInfo.realname"
-            placeholder="请输入姓名"
-          />
-        </view>
-        <view class="info-item">
-          <view>手机号</view>
-          <uv-input
-            readonly
-            type="number"
-            border="none"
-            maxlength="11"
-            inputAlign="right"
-            v-model="userInfo.phone"
-            placeholder="请输入手机号"
-          />
-        </view>
-        <view class="info-item">
-          <view><span class="required">*</span>身份证号</view>
-          <uv-input
-            :readonly="getDisabled"
-            type="idcard"
-            border="none"
-            inputAlign="right"
-            v-model="userInfo.idCardNumber"
-            placeholder="请输入身份证号"
-          />
-        </view>
-        <view class="info-item">
-          <view><span class="required">*</span>银行卡号</view>
-          <uv-input
-            :readonly="getDisabled"
-            type="number"
-            border="none"
-            inputAlign="right"
-            v-model="userInfo.bankCardNumber"
-            placeholder="请输入银行卡号"
-          >
-            <template v-slot:suffix>
-              <uv-button
-                type="default"
-                :custom-style="customStyle"
-                plain
-                size="mini"
-                @click="bindCardFn"
-                >绑定银行卡</uv-button
-              ></template
-            >
-          </uv-input>
-        </view>
-        <view class="info-item last-item">
-          <view><span class="required">*</span>银行预留手机号</view>
-          <uv-input
-            type="number"
-            border="none"
-            inputAlign="right"
-            v-model="userInfo.bankPhone"
-            placeholder="请输入银行预留手机号"
-          />
-        </view>
-      </view>
-    </view>
-    <view class="card auth-box">
-      <view class="header">
-        <view class="title">认证渠道</view>
-        <view class="btn">
-          <uv-button type="default" :custom-style="customStyle" plain size="mini"
-            >协议补签</uv-button
-          >
-        </view>
-      </view>
-      <view class="cert-list">
-        <radio-group @change="radioChange">
-          <view
-            class="list"
-            v-for="item in loginStore.currentUserInfo.subjectLocationList"
-            :key="item"
-          >
-            <label>{{ item && subjectLocationName[item] }}</label>
-            <template v-if="getRadio(item)"> <radio :value="item" color="#6eb657" /></template>
-            <template v-if="IS_IN_PROGRESS(item)">
-              <view>已核身</view>
-            </template>
-            <template v-if="getStatusText(item)">
-              <view>{{ getStatusName(item) }}</view>
-            </template>
-          </view>
-        </radio-group>
-      </view>
-      <!-- 提交按钮 -->
-      <view v-if="showSubmitBtn" class="submit">
-        <button class="btn" @click="submitBtn">提 交</button>
-      </view>
-    </view>
-
-    <!-- 协议展示弹窗 -->
-    <uv-modal ref="agereementModal" title="业务合作协议" showCancelButton>
-      <view class="agereement-content">
-        <view class="agreement-policy">
-          为开通共享经济业务,请阅读、勾选签署以下平台业务合作协议。点击勾选协议,即表示您已阅读并同意接受该协议内容。若不同意,请勿勾选。
-        </view>
-
-        <view class="checkbox-bar">
-          <checkbox-group @change="agreemetChecked = !agreemetChecked">
-            <checkbox :checked="agreemetChecked" style="transform: scale(0.6)" color="#6eb657" />
-          </checkbox-group>
-          <view class="read-content"
-            >已阅读并同意<text class="primarily-text" @click="agreementFn"
-              >《 {{ signAgreementMap[radioValue] && signAgreementMap[radioValue].name }}》</text
-            ></view
-          >
-        </view>
-      </view>
-      <template v-slot:confirmButton>
-        <view class="agereement-btns">
-          <button class="agereement-btn cancel" @click="agereementCancel">取消</button>
-          <button class="agereement-btn confirm" @click="agereementConfirm">确定</button>
-        </view>
-      </template>
-    </uv-modal>
-  </view>
-</template>
-
-<script setup lang="ts">
-import { onShow, onLoad, onUnload } from '@dcloudio/uni-app'
-import { ref, reactive, computed } from 'vue'
-import { useLoginStore } from '@/store/login'
-import { useAuth } from '@/store/auth'
-import { subjectLocationName, signAgreementMap, notCertMap } from './constants/index'
-
-import useRadio from './hook/useRadio'
-import useAuthFn from './hook/useAutnFn'
-
-onLoad(() => {
-  uni.onAppShow(authBackHandler)
-})
-onUnload(() => {
-  uni.offAppShow(authBackHandler)
-})
-
-// pinia数据
-const loginStore = useLoginStore()
-const authStore = useAuth()
-
-const currentUserInfo = ref()
-// 提交信息的用户表单
-const userInfo = reactive({
-  realname: loginStore.currentUserInfo?.realname,
-  phone: loginStore.currentUserInfo?.phone,
-  idCardNumber: loginStore.currentUserInfo?.idCardNumber,
-  bankCardNumber: loginStore.currentUserInfo?.bankCardNumber,
-  bankPhone: loginStore.currentUserInfo?.bankPhone
-})
-
-onShow(async () => {
-  await loginStore.getUserInfoByCode()
-  currentUserInfo.value = loginStore.currentUserInfo
-  userInfo.bankCardNumber = loginStore.currentUserInfo?.bankCardNumber
-  userInfo.bankPhone = loginStore.currentUserInfo?.bankPhone
-
-  // agreementUrl有值 是从签名页面返回
-  if (authStore.agreementUrl) {
-    agreementUrl.value = authStore.agreementUrl
-    // 协议签署成功
-    signAgreeSuccess()
-    // 清空签署的协议
-    authStore.setAgreementUrl('')
-  }
-})
-
-// 当前用户的certList数据
-const certList = computed(() => loginStore.currentUserInfo.certList)
-
-// 获取单选框状态
-const { getRadio, IS_IN_PROGRESS, getStatusText, getStatusName } = useRadio(certList)
-const getDisabled = computed(() => {
-  if (!certList?.value?.length) return false
-  let flag = certList.value.every((item: any) => {
-    let currMap = notCertMap[item.subjectLocation]
-    return currMap.includes(item.certStatus)
-  })
-  return !flag
-})
-
-// 是否展示提交按钮
-const showSubmitBtn = computed(() => {
-  const subjectLocationList = loginStore.currentUserInfo.subjectLocationList
-  // 显示radio的情况  存在radio, 即可提交
-  const isRadio = subjectLocationList?.map((item: string) => getRadio(item))
-  return isRadio
-})
-
-const customStyle = {
-  border: '2rpx solid #000',
-  height: '50rpx',
-  background: '#f8f8f8',
-  borderRadius: '10rpx'
-}
-
-// 选中的认证渠道
-const radioValue = ref()
-const radioChange = (e: any) => {
-  radioValue.value = e.detail.value
-}
-// 去绑卡
-const bindCardFn = () => {
-  uni.navigateTo({
-    url: '/pages-sub-mine/bind-card/index'
-  })
-}
-
-// 认证函数
-const {
-  checkInfo,
-  saveBaseInfo,
-  authCertFn,
-  signCertFn,
-  authBackHandler,
-  signAgreeSuccess,
-  agereementModal,
-  agreemetChecked,
-  agreementUrl
-} = useAuthFn(userInfo, radioValue, certList)
-
-const submitBtn = async () => {
-  // 校验信息
-  if (!checkInfo()) return
-  // 保存基本信息
-  await saveBaseInfo()
-  // 发起签约 人力家不需要签约
-  if (radioValue.value === 'REN_LI_JIA') {
-    authCertFn()
-  } else {
-    // 增员
-    signCertFn()
-  }
-}
-
-const agreementFn = () => {
-  uni.navigateTo({
-    url: signAgreementMap[radioValue.value].path
-  })
-}
-
-// 协议确定
-const agereementConfirm = () => {
-  if (!agreemetChecked.value) {
-    return uni.showToast({
-      title: '请先勾选相关协议',
-      icon: 'none'
-    })
-  }
-  uni.navigateTo({
-    url: `/pages-sub-task/signature/index`
-  })
-  agereementCancel()
-}
-
-// 协议弹窗关闭
-const agereementCancel = () => {
-  agereementModal.value.close()
-  agreemetChecked.value = false
-}
-</script>
-
-<style lang="scss" scoped>
-.auth {
-  height: 100vh;
-  background: #f4f4f4;
-  .card {
-    background: #ffffff;
-    padding: 20rpx 30rpx;
-  }
-  .user-info {
-    .title {
-      font-size: 30rpx;
-      font-weight: bolder;
-      color: #000;
-    }
-    .info-list {
-      margin-top: 20rpx;
-      .info-item {
-        display: flex;
-        align-items: center;
-        justify-content: space-between;
-        padding: 20rpx 0;
-        border-bottom: 1rpx solid #d8d8d8;
-        font-size: 28rpx;
-        line-height: 34rpx;
-        .required {
-          color: red;
-        }
-      }
-      .last-item {
-        border-bottom: none;
-      }
-    }
-  }
-  .auth-box {
-    margin-top: 30rpx;
-    min-height: 350rpx;
-    .header {
-      display: flex;
-      justify-content: space-between;
-      align-items: center;
-      padding: 10rpx 0;
-      line-height: 90rpx;
-      .title {
-        color: #000;
-        font-size: 30rpx;
-        font-weight: bolder;
-      }
-    }
-    .cert-list {
-      margin-top: 20rpx;
-      .list {
-        display: flex;
-        justify-content: space-between;
-        align-items: center;
-        border-bottom: 2rpx solid #ccc;
-        height: 80rpx;
-        line-height: 80rpx;
-      }
-    }
-  }
-  .submit {
-    background: #ffffff;
-    position: absolute;
-    bottom: 0;
-    left: 0;
-    right: 0;
-    z-index: 10000;
-    display: flex;
-    align-items: center;
-    justify-content: center;
-    height: 120rpx;
-
-    .btn {
-      background-color: #6eb657;
-      width: 690rpx;
-      color: #fff;
-    }
-  }
-}
-.agereement-content {
-  .agreement-policy {
-    font-size: 30rpx;
-    line-height: 46rpx;
-  }
-  .checkbox-bar {
-    margin-top: 20rpx;
-    display: flex;
-    align-items: center;
-    font-size: 28rpx;
-    font-weight: 400;
-    line-height: 40rpx;
-    .read-content {
-      .primarily-text {
-        color: #6eb657;
-      }
-    }
-  }
-}
-.agereement-btns {
-  display: flex;
-  justify-content: space-between;
-
-  .agereement-btn {
-    border: none;
-    background: none;
-    font-size: 32rpx;
-  }
-  .cancel {
-    color: #666;
-  }
-  .confirm {
-    color: #6eb657;
-  }
-}
-</style>

+ 0 - 97
src/pages-sub-mine/bind-card/index.vue

@@ -1,97 +0,0 @@
-<template>
-  <view class="bind-card">
-    <uv-form labelPosition="left" :model="cardInfo" ref="form">
-      <uv-form-item
-        label="手机号"
-        prop="userInfo.name"
-        borderBottom
-        labelWidth="90"
-        :customStyle="customStyle"
-      >
-        <uv-input
-          maxlength="11"
-          type="number"
-          v-model="cardInfo.bankPhone"
-          border="none"
-          clearable
-        />
-      </uv-form-item>
-      <uv-form-item
-        label="银行卡号"
-        prop="userInfo.name"
-        borderBottom
-        labelWidth="90"
-        :customStyle="customStyle"
-      >
-        <uv-input type="number" v-model="cardInfo.bankCardNumber" border="none" clearable />
-      </uv-form-item>
-    </uv-form>
-    <view class="tips">提示:需绑定本人Ⅰ类银行账户的借记卡,否则无法发放佣金。</view>
-    <button class="btn" @click="submitFn">确定</button>
-  </view>
-</template>
-
-<script setup lang="ts">
-import { useLoginStore } from '@/store/login'
-import { reactive } from 'vue'
-import { isValidPhoneNumber, isValidBankCard } from '@/utils'
-import { saveBankInfoApi } from '@/service/modules/auth'
-
-const loginStore = useLoginStore()
-
-const customStyle = {
-  height: '120rpx'
-}
-
-const cardInfo = reactive({
-  bankPhone: loginStore.currentUserInfo.bankPhone,
-  bankCardNumber: loginStore.currentUserInfo.bankCardNumber
-})
-
-const submitFn = async () => {
-  if (!isValidPhoneNumber(cardInfo.bankPhone)) {
-    return uni.showToast({
-      icon: 'none',
-      title: '请检查手机号'
-    })
-  }
-  if (!isValidBankCard(cardInfo.bankCardNumber)) {
-    return uni.showToast({
-      icon: 'none',
-      title: '请检查银行卡号'
-    })
-  }
-  const data = {
-    userId: loginStore.currentUserInfo.userId,
-    bankPhone: cardInfo.bankPhone,
-    bankCardNumber: cardInfo.bankCardNumber
-  }
-  const res = await saveBankInfoApi(data)
-  if (res.code === 0) {
-    uni.showToast({
-      icon: 'none',
-      title: '保存成功'
-    })
-  }
-  await loginStore.getUserInfoByCode()
-  uni.navigateBack()
-}
-</script>
-
-<style lang="scss" scoped>
-.bind-card {
-  padding: 30rpx;
-  .tips {
-    margin-top: 40rpx;
-    color: #888;
-    font-size: 24rpx;
-    text-align: center;
-  }
-  .btn {
-    margin-top: 150rpx;
-    background-color: #6eb657;
-    border-radius: 50rpx;
-    color: #fff;
-  }
-}
-</style>

+ 0 - 92
src/pages-sub-mine/changePassword/index.vue

@@ -1,92 +0,0 @@
-<template>
-  <view class="form">
-    <uv-form labelPosition="left" :model="form" :rules="rules" ref="formRef" labelWidth="120">
-      <uv-form-item label="新密码" prop="p1" borderBottom>
-        <uv-input v-model="form.p1" type="password" border="none" clearable />
-      </uv-form-item>
-      <uv-form-item label="确认密码" prop="p2" borderBottom>
-        <uv-input v-model="form.p2" type="password" clearable border="none" />
-      </uv-form-item>
-      <uv-form-item>
-        <view>密码由8~16位含有大小写字母、数字、!#$%^&*@符号且不能有三位连续的数字组成</view>
-      </uv-form-item>
-      <uv-button
-        text="提交"
-        color="#6eb657"
-        customStyle="margin-top: 10px"
-        @click="submit"
-      ></uv-button>
-    </uv-form>
-  </view>
-</template>
-
-<script setup lang="ts">
-import { renewPwdApi } from '@/service/modules/mine'
-import { reactive, ref } from 'vue'
-
-import useLogiutFn from '@/hooks/useLoginout'
-
-const form = reactive({
-  p1: '',
-  p2: '',
-  code: '123456'
-})
-let validatePassword = (rule: any, value: any, callback: any) => {
-  var regA = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!#$%^&*@])[\da-zA-Z!#$%^&*@]{8,16}$/ //密码必须是8位以上、必须含有字母、数字、特殊符号
-  var regB = /(123|234|345|456|567|678|789|012)/ //不能有3个连续数字
-  if (!value) {
-    callback(new Error('密码不能为空'))
-  }
-  if (!regA.test(value)) {
-    callback(new Error('密码必须是8~16位、必须含有大小写字母、数字、特殊符号'))
-  } else if (regB.test(value)) {
-    callback(new Error('不能有3个连续数字'))
-  } else {
-    callback()
-  }
-}
-var validateCheckPass = (rule: any, value: any, callback: any) => {
-  if (value !== form.p1) {
-    callback(new Error('两次输入密码不一致'))
-  } else {
-    callback()
-  }
-}
-const rules = reactive({
-  p1: {
-    type: 'string',
-    required: true,
-    trigger: ['blur'],
-    validator: validatePassword
-  },
-  p2: {
-    type: 'string',
-    required: true,
-    validator: validateCheckPass,
-    trigger: ['blur']
-  }
-})
-
-const formRef = ref()
-
-const submit = () => {
-  formRef.value.validate().then(async () => {
-    const res = await renewPwdApi(form)
-    if (res.code === 0) {
-      uni.showToast({
-        icon: 'none',
-        title: '修改成功,请重新登录'
-      })
-      setTimeout(async () => {
-        useLogiutFn()
-      }, 1000)
-    }
-  })
-}
-</script>
-
-<style lang="scss" scoped>
-.form {
-  padding: 30rpx;
-}
-</style>

+ 0 - 101
src/pages-sub-mine/feedback/index.vue

@@ -1,101 +0,0 @@
-<template>
-  <view class="feedback">
-    <view class="feedback-box">
-      <view class="title"> 意见反馈: </view>
-      <textarea
-        @input="onInput"
-        v-model="params.ygContent"
-        class="textarea"
-        :maxlength="500"
-        placeholder-style="color:#C8C8C8"
-        placeholder="您的建议是我们最大的动力"
-      />
-      <view class="count">{{ sumCount }}/500</view>
-    </view>
-    <view class="submit">
-      <view class="s-btn" @click="onSubmit">提 交</view>
-    </view>
-  </view>
-</template>
-
-<script setup lang="ts">
-import { ref, reactive } from 'vue'
-import { useLoginStore } from '@/store/login'
-import { feedbackApi } from '@/service/modules/mine'
-
-const loginStore = useLoginStore()
-
-const params = reactive({
-  ygContent: '',
-  yjUserid: loginStore.currentUserInfo.userId
-})
-
-const sumCount = ref(0)
-function onInput(e: any) {
-  sumCount.value = e.detail.cursor
-}
-
-const onSubmit = async () => {
-  if (!params.ygContent) {
-    return uni.showToast({
-      title: '请输入意见反馈内容',
-      icon: 'none',
-      duration: 800
-    })
-  }
-  uni.showLoading()
-  const res = await feedbackApi(params)
-  uni.hideLoading()
-  if (res.data) {
-    uni.showToast({
-      title: '提交成功',
-      icon: 'none'
-    })
-    setTimeout(() => {
-      uni.navigateBack()
-    }, 1000)
-  }
-}
-</script>
-
-<style lang="scss" scoped>
-.feedback {
-  background: #f4f4f4;
-  min-height: 100vh;
-  .feedback-box {
-    padding: 44rpx 54rpx;
-    background: #ffffff;
-    .title {
-      font-size: 30rpx;
-    }
-    .textarea {
-      margin-top: 20rpx;
-      height: 600rpx;
-      width: calc(100%);
-    }
-    .count {
-      width: 100%;
-      text-align: right;
-      color: #dddddd;
-    }
-  }
-  .submit {
-    padding: 16rpx 26rpx;
-    background: #ffffff;
-    position: absolute;
-    bottom: 0;
-    left: 0;
-    right: 0;
-    .s-btn {
-      width: 100%;
-      height: 88rpx;
-      text-align: center;
-      line-height: 88rpx;
-      background: #6eb657;
-      border-radius: 10rpx;
-      color: #ffffff;
-      font-size: 30rpx;
-    }
-  }
-}
-</style>

+ 0 - 306
src/pages-sub-mine/forgotPassword/index.vue

@@ -1,306 +0,0 @@
-<template>
-  <view class="login">
-    <view class="login-form">
-      <uv-form
-        labelPosition="top"
-        labelWidth="80"
-        :labelStyle="labelStyle"
-        :model="formData"
-        ref="formRef"
-        :rules="rules"
-      >
-        <uv-form-item label="手机号" prop="userName" borderBottom>
-          <view class="pbone-input">
-            <input
-              class="login-input"
-              clearable
-              maxlength="11"
-              v-model="formData.userName"
-              border="none"
-              type="number"
-              placeholder="请输入手机号"
-            />
-          </view>
-        </uv-form-item>
-        <uv-form-item label="验证码" prop="code" borderBottom>
-          <view class="pbone-input">
-            <input
-              class="login-input"
-              clearable
-              v-model="formData.code"
-              border="none"
-              type="number"
-              placeholder="请输入验证码"
-            />
-            <view class="code">
-              <uv-code
-                ref="codeRef"
-                @change="codeChange"
-                @start="codeDisabledChange(true)"
-                @end="codeDisabledChange(false)"
-                changeText="Xs"
-              ></uv-code>
-              <uv-button
-                @click="getCode"
-                :disabled="codeDisabled || !codeDisabledType"
-                :text="code"
-                :custom-style="customStyle"
-              />
-            </view>
-          </view>
-        </uv-form-item>
-        <uv-form-item label="密码" prop="p1" borderBottom>
-          <view class="pbone-input">
-            <input
-              class="login-input"
-              clearable
-              v-model="formData.p1"
-              border="none"
-              type="password"
-              placeholder="请输入密码"
-            />
-          </view>
-        </uv-form-item>
-        <uv-form-item label="确认密码" prop="p2" borderBottom>
-          <view class="pbone-input">
-            <input
-              class="login-input"
-              clearable
-              v-model="formData.p2"
-              border="none"
-              type="password"
-              placeholder="请输入密码"
-            />
-          </view>
-        </uv-form-item>
-      </uv-form>
-      <view class="tips">
-        <text
-          >密码由8~16位含有大小写字母、数字、!#$%^&*@符号且不能有三位连续的数字组成(如123)</text
-        >
-      </view>
-
-      <view class="login-btn">
-        <button class="btn" @click="submit">提交</button>
-      </view>
-    </view>
-  </view>
-</template>
-
-<script setup lang="ts">
-import { reactive, ref, computed } from 'vue'
-import { getMobileUpdApi, postUserUpdApi } from '@/service/modules/login'
-import { isValidPhoneNumber } from '@/utils'
-
-const labelStyle = {
-  fontSize: '32rpx',
-  fontWeight: 600,
-  color: '#333'
-}
-let validatePassword = (rule: any, value: any, callback: any) => {
-  var regA = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!#$%^&*@])[\da-zA-Z!#$%^&*@]{8,16}$/ //密码必须是8位以上、必须含有字母、数字、特殊符号
-  var regB = /(123|234|345|456|567|678|789|012)/ //不能有3个连续数字
-  if (!value) {
-    callback(new Error('密码不能为空'))
-  }
-  if (!regA.test(value)) {
-    callback(new Error('密码必须是8~16位、必须含有大小写字母、数字、特殊符号'))
-  } else if (regB.test(value)) {
-    callback(new Error('不能有3个连续数字'))
-  } else {
-    callback()
-  }
-}
-var validateCheckPass = (rule: any, value: any, callback: any) => {
-  if (value !== formData.p1) {
-    callback(new Error('两次输入密码不一致'))
-  } else {
-    callback()
-  }
-}
-
-const rules = reactive({
-  userName: {
-    type: 'string',
-    required: true,
-    trigger: ['blur']
-  },
-  code: {
-    type: 'string',
-    required: true,
-    trigger: ['blur']
-  },
-
-  p1: {
-    type: 'string',
-    required: true,
-    trigger: ['blur'],
-    validator: validatePassword
-  },
-  p2: {
-    type: 'string',
-    required: true,
-    validator: validateCheckPass,
-    trigger: ['blur']
-  }
-})
-
-const formRef = ref()
-const formData = reactive({
-  userName: '',
-  p1: '',
-  p2: '',
-  code: ''
-})
-
-// 验证码
-const code = ref('获取验证码')
-const codeRef = ref()
-const codeDisabled = ref(false)
-function codeChange(text: string) {
-  code.value = text
-}
-const codeDisabledChange = (flag: boolean) => {
-  codeDisabled.value = flag
-}
-
-let codeDisabledType = computed(() => {
-  return formData.userName && !codeDisabled.value
-})
-// 获取验证码按钮样式
-const customStyle = {
-  height: '64rpx',
-  width: '200rpx',
-  background: 'rgba(110,182,87, .1)',
-  borderRadius: '16rpx',
-  color: '#6eb657',
-  fontWeight: 500,
-  lineHeight: '64rpx',
-  fontSize: '28rpx'
-}
-async function getCode() {
-  if (!isValidPhoneNumber(formData.userName)) {
-    return uni.showToast({
-      title: '请检查手机号码格式',
-      icon: 'none'
-    })
-  }
-
-  // 获取验证码
-  uni.showLoading({
-    title: '正在获取验证码'
-  })
-  const res = await getMobileUpdApi(formData.userName)
-  uni.hideLoading()
-  if (!res.data) {
-    uni.showToast({
-      title: res.msg,
-      icon: 'none'
-    })
-  } else {
-    uni.showToast({
-      title: res.msg,
-      icon: 'none'
-    })
-  }
-  codeRef.value.start()
-}
-
-const submit = () => {
-  if (!isValidPhoneNumber(formData.userName)) {
-    return uni.showToast({
-      title: '请检查手机号码格式',
-      icon: 'none'
-    })
-  }
-
-  formRef.value.validate().then(async () => {
-    const res = await postUserUpdApi(formData)
-
-    if (res.code === 0) {
-      uni.showToast({
-        icon: 'none',
-        title: '修改成功'
-      })
-      setTimeout(() => {
-        uni.reLaunch({
-          url: '/pages/login/index'
-        })
-      }, 1000)
-    }
-  })
-}
-</script>
-
-<style lang="scss" scoped>
-.login {
-  padding: 0 50rpx;
-}
-.login-bg {
-  position: absolute;
-  z-index: -333;
-  top: 0;
-  left: 0;
-  right: 0;
-  height: 800rpx;
-  background: linear-gradient(#f8f8f0 0%, rgba(255, 255, 255, 0) 100%);
-}
-.login-title {
-  margin-top: 300rpx;
-  color: #333;
-  font-size: 56rpx;
-  font-weight: 500;
-}
-.login-form {
-  margin-top: 80rpx;
-  .pbone-input {
-    display: flex;
-    justify-content: space-between;
-    align-items: center;
-  }
-  .forgot-password {
-    color: #999;
-  }
-  .login-input {
-    margin: 20rpx 0 0 10rpx;
-  }
-  :deep(.uv-form-item) {
-    margin-bottom: 40rpx;
-  }
-  .agreement {
-    display: flex;
-    font-size: 26rpx;
-    font-weight: 400;
-    line-height: 40rpx;
-    .read-content {
-      .primarily-text {
-        color: #6eb657;
-      }
-    }
-  }
-  .login-btn {
-    margin-top: 70rpx;
-    .btn {
-      width: 640rpx;
-      height: 96rpx;
-      border-radius: 200rpx;
-      background-color: #6eb657;
-      text-align: center;
-      color: #fff;
-      font-size: 40rpx;
-      font-weight: 600;
-    }
-  }
-  .login-password {
-    margin-top: 50rpx;
-    color: #999;
-    font-size: 32rpx;
-    text-align: center;
-    font-weight: 400;
-    line-height: 60rpx;
-  }
-}
-.tips {
-  color: #666;
-}
-</style>

+ 0 - 220
src/pages-sub-mine/integral-rules/index.vue

@@ -1,220 +0,0 @@
-<template>
-  <view class="integral-rules">
-    <image class="rules-top-img" :src="imgBg" />
-    <view class="table-box">
-      <view class="table-header">
-        <view class="table-tab" style="border-right: 1rpx solid #ffffff">获取途径</view>
-        <view class="table-tab">获得积分</view>
-      </view>
-      <image
-        class="change-btn"
-        src="../../static/images/common/change-btn.png"
-        @click="changeBtn"
-      />
-      <view class="table-con">
-        <view class="table-bg">
-          <view v-for="item in tableData" :key="item.id" class="table-item">
-            <view class="item-left">
-              <text>{{ item.taskTypeName }} </text>
-              <image
-                src="https://yy-cloud-oss.oss-cn-beijing.aliyuncs.com/img/tips.png"
-                alt=""
-                class="tips"
-                @click="descClick(item.taskTypeName)"
-              />
-            </view>
-            <text>+{{ item.score }}积分</text>
-          </view>
-        </view>
-      </view>
-    </view>
-
-    <uv-popup ref="popup" mode="bottom" round="10">
-      <view class="info">
-        <view class="title">
-          <text>{{ select?.value }}</text>
-          <u-icon name="close" color="#000" size="28" @click="popupClose"></u-icon>
-        </view>
-        <view class="cont">
-          {{ select?.description }}
-        </view>
-        <view class="btn" @click="popupClose"> 知道了 </view>
-      </view>
-    </uv-popup>
-
-    <uv-picker
-      ref="picker"
-      :columns="[drugentList]"
-      keyName="label"
-      :defaultIndex="defaultIndex"
-      @confirm="confirm"
-    />
-  </view>
-</template>
-
-<script setup lang="ts">
-import { integralRulesApi, getTaskTypeDeptList } from '@/service/modules/integralRules'
-import { onShareAppMessage } from '@dcloudio/uni-app'
-import { ref } from 'vue'
-
-const imgBg = 'https://yy-cloud-oss.oss-cn-beijing.aliyuncs.com/img/jy/integralRules.png'
-onShareAppMessage(() => {
-  var pages = getCurrentPages()
-  var prevPage = pages[pages.length - 1]
-  return {
-    title: '积分规则',
-    path: prevPage.route
-  }
-})
-
-// 获取任务规则描述
-const descriptionMap = ref<any[]>([])
-async function getMap() {
-  let res = await integralRulesApi.getDict()
-  descriptionMap.value = res.data
-}
-getMap()
-const drugentList = ref<any[]>([])
-// 获取药企列表
-async function getDrugentList() {
-  let res = await getTaskTypeDeptList()
-  drugentList.value = res.data
-
-  if (drugentList.value.length) {
-    getTaskTypeScoreList(drugentList.value[0].value)
-  }
-}
-getDrugentList()
-
-const tableData = ref<any[]>([])
-async function getTaskTypeScoreList(ruleId: string | number) {
-  let res = await integralRulesApi.getTaskTypeListByRuleId(ruleId)
-  tableData.value = res.data
-}
-
-const select = ref()
-const popup = ref()
-const descClick = (name: any) => {
-  let item = descriptionMap.value.find((item) => item.value === name)
-  select.value = item
-  popup.value.open()
-}
-const popupClose = () => popup.value.close()
-
-const defaultIndex = ref()
-const picker = ref()
-const changeBtn = () => {
-  picker.value.open()
-}
-const confirm = (e: any) => {
-  defaultIndex.value = e.indexs
-  getTaskTypeScoreList(e.value[0].value)
-}
-</script>
-
-<style lang="scss" scoped>
-.integral-rules {
-  position: relative;
-  left: 0;
-  right: 0;
-  top: 0;
-  .change-btn {
-    position: fixed;
-    top: 156rpx;
-    right: -16rpx;
-    width: 212rpx;
-    height: 96rpx;
-  }
-  .rules-top-img {
-    position: absolute;
-    top: 0;
-    right: 0;
-    left: 0;
-    width: 750rpx;
-    height: 526rpx;
-  }
-  .table-box {
-    position: absolute;
-    top: 526rpx;
-    right: 0;
-    left: 0;
-    min-height: 100vh;
-    background: #019cd0;
-    .table-header {
-      display: flex;
-      align-items: center;
-      justify-content: space-between;
-      height: 120rpx;
-      .table-tab {
-        width: 50%;
-        text-align: center;
-        color: #ffffff;
-        font-size: 36rpx;
-      }
-    }
-    .table-con {
-      padding: 0 26rpx;
-      padding-bottom: 50rpx;
-      .table-bg {
-        background: #ffffff;
-        padding: 46rpx;
-        box-shadow: inset 0px 8rpx 54rpx 0px #6edbff;
-        .table-item {
-          color: #733d7f;
-          font-size: 32rpx;
-          display: flex;
-          align-items: center;
-          justify-content: space-between;
-          margin-top: 42rpx;
-          .item-left {
-            display: flex;
-            align-items: center;
-            .tips {
-              width: 30rpx;
-              height: 30rpx;
-              margin-left: 10rpx;
-            }
-          }
-          &:first-child {
-            margin-top: 0;
-          }
-        }
-      }
-    }
-  }
-}
-
-.info {
-  padding: 30rpx;
-  position: relative;
-  .title {
-    display: flex;
-    justify-content: space-between;
-    margin-bottom: 60rpx;
-    text {
-      color: #000;
-      font-weight: 600;
-      font-size: 36rpx;
-    }
-  }
-  .cont {
-    min-height: 20vh;
-    color: #666666;
-    font-size: 30rpx;
-    line-height: 42rpx;
-    margin-bottom: 60rpx;
-  }
-  .btn {
-    background-color: #f1f1f1;
-    height: 80rpx;
-    text-align: center;
-    line-height: 80rpx;
-    color: #333333;
-    font-size: 30rpx;
-    position: absolute;
-    width: 700rpx;
-    left: 25rpx;
-    bottom: 50rpx;
-  }
-}
-</style>

+ 0 - 84
src/pages-sub-mine/quiz/index.vue

@@ -1,84 +0,0 @@
-<!--
- * @desc 我的-合规测评
- * @author linyuanjie
- * @date 2023/10/19
--->
-
-<template>
-  <view class="quiz-page">
-    <view
-      v-for="(quizItem, index) in testResults"
-      :key="index"
-      class="quiz-item"
-      @click="detailFn(quizItem)"
-    >
-      <view class="quiz-list">
-        <view class="title">
-          <text>{{ quizItem.quiz.title }}</text>
-          <text v-if="quizItem.valid" class="success">(已通过)</text>
-          <text v-else class="danger">(未通过)</text>
-        </view>
-        <view class="content">
-          总分:<text class="mr40">{{ quizItem?.quiz?.expand?.totalMark }}</text
-          >测试分数:<text>{{ quizItem.finalMark || '无' }}</text>
-        </view>
-      </view>
-    </view>
-  </view>
-</template>
-<script setup lang="ts">
-import { getQuizPltTextResultApi } from '@/service/modules/quiz'
-import { onLoad } from '@dcloudio/uni-app'
-import { ref } from 'vue'
-
-const detailFn = (row: any) => {
-  uni.navigateTo({
-    url: `/pages-sub-mine/quizDetail/index?id=${row.quiz.quizId}`
-  })
-}
-onLoad(() => {
-  getPltQuizResultFn()
-})
-
-const testResults = ref<any[]>([])
-const getPltQuizResultFn = async () => {
-  const res = await getQuizPltTextResultApi()
-  if (res.code === 0) {
-    testResults.value = res.data.testResults || []
-  }
-}
-</script>
-
-<style lang="scss" scoped>
-.quiz-page {
-  padding: 24rpx;
-  min-height: 100vh;
-  background-color: #f6f6f6;
-  .quiz-item {
-    padding: 30rpx;
-    background-color: #fff;
-    margin-bottom: 30rpx;
-    border-radius: 12rpx;
-    box-shadow: 0px 4rpx 4rpx 0px rgba(0, 0, 0, 0.05);
-
-    .quiz-list {
-      .title {
-        font-size: 36rpx;
-        color: #333;
-        .success {
-          font-size: 32rpx;
-          color: #6eb657;
-        }
-        .danger {
-          font-size: 32rpx;
-          color: #edb252;
-        }
-      }
-      .content {
-        margin-top: 20rpx;
-        font-size: 32rpx;
-      }
-    }
-  }
-}
-</style>

+ 0 - 184
src/pages-sub-mine/quizDetail/index.vue

@@ -1,184 +0,0 @@
-<template>
-  <view class="quiz-detail">
-    <view class="quiz-title">
-      {{ quiz?.title }}
-    </view>
-    <view class="quiz-list">
-      <view class="question-item" v-for="(item, index) in quizItems" :key="item.itemId">
-        <view class="question-title">{{ index + 1 }}.{{ item.label }}</view>
-        <uv-radio-group v-model="item.answered" placement="column" :disabled="submitted">
-          <uv-radio
-            class="question-radio"
-            :customStyle="{ margin: '8px' }"
-            v-for="(iten, indey) in item.options"
-            :key="indey"
-            :label="iten.text"
-            :name="iten.no"
-          >
-            <template v-if="iten?.type === 'text'">
-              {{ iten.text }}
-            </template>
-            <template v-if="iten?.type === 'img'">
-              <uv-image
-                :src="getImgUrl(iten?.text)"
-                width="210rpx"
-                height="180rpx"
-                @click.stop.self="preImg(iten?.text)"
-              />
-            </template>
-          </uv-radio>
-        </uv-radio-group>
-      </view>
-    </view>
-    <view class="sign-up-btn">
-      <template v-if="!submitted">
-        <button class="btn" @click="submitFn">提 交</button>
-      </template>
-      <template v-else>
-        <div class="result">
-          {{ quiz?.expand?.finalMark >= quiz?.expand?.passingMark ? '考试通过' : '考试不通过' }}
-          <text>考试成绩: {{ quiz?.expand?.finalMark }}</text>
-        </div>
-      </template>
-    </view>
-  </view>
-</template>
-
-<script setup lang="ts">
-import { onLoad } from '@dcloudio/uni-app'
-import { quizDetailApi, quizResultCreateApi } from '@/service/modules/quiz'
-import { ref } from 'vue'
-
-const id = ref('')
-onLoad((e: any) => {
-  if (e?.id) {
-    id.value = e.id
-    getDetail()
-  }
-})
-
-const quizItems = ref<any[]>([])
-const quiz = ref()
-const submitted = ref(false)
-
-const getDetail = async () => {
-  const res = await quizDetailApi({ quizId: id.value })
-  if (res.code === 0) {
-    if (!res.data.submitted) {
-      res.data.items.forEach((item: any) => (item.answered = ''))
-    }
-    // 是否已经提交
-    submitted.value = res.data.submitted
-    quizItems.value = res.data.items
-    quiz.value = res.data.quiz
-  }
-}
-
-const getImgUrl = (path: string) => import.meta.env.VITE_APP_URL + path
-
-const preImg = (path: string) => {
-  const url = getImgUrl(path)
-  const arr = [url]
-  uni.previewImage({
-    urls: arr
-  })
-}
-
-const submitFn = async () => {
-  const flag = quizItems.value?.every((item: any) => item.answered)
-  if (!flag) {
-    return uni.showToast({
-      title: '请检查是否遗漏',
-      icon: 'none',
-      duration: 800
-    })
-  }
-
-  let finalMark = quizItems.value.reduce((accumulator, item) => {
-    if (item.answer === item.answered) {
-      return accumulator + item.mark
-    }
-    return accumulator + 0
-  }, 0)
-
-  const obj = {
-    quizId: quiz.value.quizId,
-    title: quiz.value.title,
-    itemQty: quiz.value.expand.itemQty,
-    totalMark: quiz.value.expand.totalMark,
-    passingMark: quiz.value.expand.passingMark,
-    finalMark: finalMark,
-    items: quizItems.value
-  }
-  const res = await quizResultCreateApi({ quizResults: [obj] })
-  if (res.code === 0) {
-    uni.showToast({
-      title: '提交成功',
-      icon: 'none',
-      duration: 800
-    })
-    setTimeout(() => {
-      uni.navigateBack()
-    }, 1000)
-    // getDetail()
-  }
-}
-</script>
-
-<style lang="scss" scoped>
-.quiz-detail {
-  .quiz-title {
-    text-align: center;
-    margin: 20rpx auto;
-    font-weight: 600;
-    font-size: 36rpx;
-  }
-  .quiz-list {
-    margin-top: 30rpx;
-    padding-bottom: 120rpx;
-
-    .question-item {
-      .question-title {
-        font-weight: 36rpx;
-        margin-bottom: 20rpx;
-      }
-      padding: 40rpx 24rpx;
-      background-color: #fff;
-      border-bottom: 1px solid #f6f6f6;
-    }
-  }
-  .sign-up-btn {
-    position: fixed;
-    background-color: #fff;
-    bottom: 0;
-    left: 0;
-    right: 0;
-    height: 120rpx;
-    .btn {
-      width: 690rpx;
-      margin: 20rpx 30rpx;
-      height: 70rpx;
-      text-align: center;
-      line-height: 70rpx;
-      font-size: 30rpx;
-      color: #fff;
-      background-color: #6eb657;
-      border-radius: 20rpx;
-    }
-    .result {
-      width: 690rpx;
-      margin: 20rpx 30rpx;
-      height: 70rpx;
-      text-align: center;
-      line-height: 70rpx;
-      font-size: 30rpx;
-      color: #fff;
-      background-color: #ccc;
-      border-radius: 20rpx;
-    }
-    .disabled {
-      background-color: #ccc;
-    }
-  }
-}
-</style>

+ 0 - 285
src/pages-sub-mine/task-completion-records/index.vue

@@ -1,285 +0,0 @@
-<template>
-  <view class="task-completion-records">
-    <view class="header">
-      <view @click="showDatePicker">
-        <text>{{ dateStr.year }} 年 </text>
-        <text>{{ dateStr.month }} 月 </text>
-      </view>
-      <uv-icon v-if="dateStr.year" name="close-circle" color="#333" @click="clearDate" />
-    </view>
-    <view v-if="dataList.length" class="list-box">
-      <view class="list-item" v-for="item in dataList" :key="item.id" @click="onDetail(item.id)">
-        <view
-          class="list-top"
-          :class="item.realFlag == '1' || item.taskStatus == '4' ? 'disables' : ''"
-        >
-          <view class="time">
-            <image
-              v-if="item.realFlag == '1' || item.taskStatus == '4'"
-              class="clock-icon"
-              src="../../static/images/common/clock2.png"
-            />
-            <image v-else class="clock-icon" src="../../static/images/common/clock.png" />
-            <text>{{ formatTime(item.createTime) }}</text>
-          </view>
-          <view
-            class="reason"
-            v-if="item.realFlag == '1' || item.taskStatus == '4'"
-            @click.stop="showReason(item)"
-          >
-            <text>审核不通过</text>
-            <image src="https://yy-cloud-oss.oss-cn-beijing.aliyuncs.com/img/wenhaoxiao1.png" />
-          </view>
-          <uv-icon
-            name="arrow-right"
-            :color="item.realFlag == '1' || item.taskStatus == '4' ? '#999999' : '#fff'"
-            size="16"
-          />
-        </view>
-        <view class="info">
-          <view class="info-name">
-            {{ item.taskTypeId }}
-          </view>
-          <view class="num"> +{{ item.score }}积分 </view>
-        </view>
-      </view>
-    </view>
-    <noData v-else />
-
-    <uv-datetime-picker
-      ref="datetimePicker"
-      v-model="dateValue"
-      mode="year-month"
-      @confirm="dateConfirm"
-    />
-
-    <uv-popup ref="popup" mode="bottom" round="10">
-      <view class="info">
-        <view class="title">
-          <text>拒绝原因</text>
-          <u-icon name="close" color="#000" size="28" @click="popupClose"></u-icon>
-        </view>
-        <view class="cont">
-          {{ reason }}
-        </view>
-        <view class="btn" @click="popupClose"> 关 闭 </view>
-      </view>
-    </uv-popup>
-  </view>
-</template>
-
-<script setup lang="ts">
-import dayjs from 'dayjs'
-import formatTime from '@/utils/formatTime'
-import { reactive, ref } from 'vue'
-import { getTaskCompletionList } from '@/service/modules/getTask'
-import { onReachBottom } from '@dcloudio/uni-app'
-import noData from '@/components/noData/index.vue'
-
-class Params {
-  taskRuleId = ''
-  total = -1
-  current = 1
-  size = 20
-}
-const params = ref(new Params())
-
-const dataList = ref<any[]>([])
-async function getList() {
-  uni.showLoading({
-    title: '加载中...'
-  })
-  let res = await getTaskCompletionList(params.value)
-  if (res.data) {
-    uni.hideLoading()
-    params.value.total = res.data.total
-    dataList.value = dataList.value.concat(res.data.records)
-  }
-}
-getList()
-
-// 底部
-onReachBottom(() => {
-  if (dataList.value.length === params.value.total) return
-  params.value.current++
-  getList()
-})
-
-const onDetail = (id: string) => {
-  uni.navigateTo({
-    url: `/pages/task/task-detail/index?id=${id}`
-  })
-}
-
-const popup = ref()
-const reason = ref('')
-const showReason = (item: any) => {
-  reason.value =
-    item.approval_info ||
-    item.report_one_approval_info ||
-    item.report_drug_approval_info ||
-    item.taskStatusInfo ||
-    '暂无原因'
-
-  popup.value.open()
-}
-const popupClose = () => popup.value.close()
-
-// 日期选择
-const datetimePicker = ref()
-const dateValue = ref(Number(new Date()))
-const showDatePicker = () => datetimePicker.value.open()
-
-const dateStr = reactive({
-  year: '',
-  month: ''
-})
-
-const dateConfirm = (e: any) => {
-  const date = dayjs(e.value).format('YYYY-MM')
-  let arr = date.split('-')
-  params.value = new Params()
-  params.value.taskRuleId = date
-  dateStr.year = arr[0]
-  dateStr.month = arr[1]
-  dataList.value = []
-  getList()
-}
-const clearDate = () => {
-  dateStr.year = ''
-  dateStr.month = ''
-  params.value = new Params()
-  dataList.value = []
-  getList()
-}
-</script>
-
-<style lang="scss" scoped>
-.task-completion-records {
-  .header {
-    position: fixed;
-    top: 0;
-    left: 0;
-    right: 0;
-    z-index: 10;
-    display: flex;
-    justify-content: flex-end;
-    align-items: center;
-    height: 80rpx;
-    background: #ffffff;
-    border-bottom: 1rpx solid #f2f2f2;
-    font-size: 30rpx;
-    padding-right: 35rpx;
-    text {
-      margin-right: 20rpx;
-    }
-  }
-  .list-box {
-    margin-top: 80rpx;
-    padding: 30rpx;
-    background: #fafafa;
-    .list-item {
-      border-radius: 16rpx;
-      margin-bottom: 24rpx;
-      height: 200rpx;
-      background-color: #ffffff;
-
-      .list-top {
-        height: 80rpx;
-        background-color: #6eb657;
-        border-top-left-radius: 16rpx;
-        border-top-right-radius: 16rpx;
-        display: flex;
-        padding: 0 30rpx;
-        justify-content: space-between;
-        align-items: center;
-        .time {
-          display: flex;
-          align-items: center;
-          image {
-            width: 40rpx;
-            height: 40rpx;
-          }
-          text {
-            margin-left: 16rpx;
-            color: #fff;
-            font-size: 26rpx;
-            font-weight: 500;
-            line-height: 40rpx;
-          }
-        }
-        .reason {
-          color: #999999;
-          font-size: 26rpx;
-          display: flex;
-          align-items: center;
-          image {
-            width: 24rpx;
-            margin-left: 12rpx;
-            height: 24rpx;
-          }
-        }
-      }
-      .disables {
-        background-color: #f5f5f5;
-        .time {
-          text {
-            color: #999;
-          }
-        }
-      }
-      .info {
-        height: 120rpx;
-        padding: 0 30rpx;
-        display: flex;
-        justify-content: space-between;
-        align-items: center;
-        .info-name {
-          color: #333;
-          font-weight: 400;
-          font-size: 32rpx;
-        }
-        .num {
-          color: #6eb657;
-          font-weight: 500;
-          size: 30rpx;
-        }
-      }
-    }
-  }
-}
-
-.info {
-  padding: 30rpx;
-  position: relative;
-  .title {
-    display: flex;
-    justify-content: space-between;
-    margin-bottom: 60rpx;
-    text {
-      color: #000;
-      font-weight: 600;
-      font-size: 36rpx;
-    }
-  }
-  .cont {
-    min-height: 20vh;
-    color: #666666;
-    font-size: 30rpx;
-    line-height: 42rpx;
-    margin-bottom: 60rpx;
-  }
-  .btn {
-    background-color: #f1f1f1;
-    height: 80rpx;
-    text-align: center;
-    line-height: 80rpx;
-    color: #333333;
-    font-size: 30rpx;
-    position: absolute;
-    width: 700rpx;
-    left: 25rpx;
-    bottom: 50rpx;
-  }
-}
-</style>

+ 0 - 168
src/pages-sub-mine/user-info/index.vue

@@ -1,168 +0,0 @@
-<template>
-  <view class="user-info">
-    <view class="card">
-      <view class="info-item" @click="avatarUpload">
-        <view>头像</view>
-        <view class="avatar">
-          <uv-image :src="userInfo?.avatar" shape="circle" width="90rpx" height="90rpx" />
-          <uv-icon name="arrow-right" size="18" color="#bbb" />
-        </view>
-      </view>
-      <view class="info-item">
-        <view>姓名</view>
-        <view>{{ userInfo?.realname }}</view>
-      </view>
-      <view class="info-item">
-        <view>身份证号</view>
-        <view>{{ userInfo?.idCardNumber }}</view>
-      </view>
-      <view class="info-item">
-        <view>手机号</view>
-        <view>{{ userInfo?.phone }}</view>
-      </view>
-    </view>
-    <view class="card">
-      <view class="info-item">
-        <view>角色</view>
-        <view>{{ getRolesName(userInfo?.roles) }}</view>
-      </view>
-      <view class="info-item">
-        <view>公司名称</view>
-        <view>{{ userInfo?.drugEntName }}</view>
-      </view>
-    </view>
-    <view class="card signature-box">
-      <view>个性签名</view>
-      <textarea
-        class="textarea"
-        v-model="params.userSign"
-        placeholder="请输入个性签名..."
-        auto-height
-      />
-    </view>
-    <view class="submit">
-      <view class="btn" @click="submitClick">保 存</view>
-    </view>
-  </view>
-</template>
-
-<script setup lang="ts">
-import { useLoginStore } from '@/store/login'
-import { reactive, computed } from 'vue'
-import { RoleEnum } from '@/constants/rolesType'
-import { fileUpload } from '@/service/modules/uploadFile'
-import { updateUserInfo } from '@/service/modules/userInfo'
-
-const loginStore = useLoginStore()
-const userInfo: any = computed(() => loginStore.currentUserInfo)
-
-const params = reactive({
-  userId: userInfo.value.userId,
-  userSign: userInfo.value.userSign || '',
-  avatar: userInfo.value.userSign || ''
-})
-
-const getRolesName = (roles: number[] | null) => {
-  if (!roles?.length) return
-  return RoleEnum[roles[0]]
-}
-
-// 头像上传
-function avatarUpload() {
-  uni.chooseImage({
-    count: 1,
-    sizeType: ['original', 'compressed'],
-    sourceType: ['album'],
-    success(res: any) {
-      uni.uploadFile({
-        url: fileUpload(),
-        filePath: res.tempFilePaths[0],
-        name: 'file',
-        header: {
-          Authorization: `Bearer ${loginStore.accessToken}`
-        },
-        success: (uploadFileRes: any) => {
-          let { data } = JSON.parse(uploadFileRes.data)
-          const url = import.meta.env.VITE_APP_URL + data.url
-          params.avatar = url
-          submitClick()
-        },
-        fail(e) {
-          console.log(e)
-        }
-      })
-    }
-  })
-}
-async function submitClick() {
-  const res = await updateUserInfo(params)
-  if (res.code === 0) {
-    loginStore.getUserInfoByCode()
-    uni.showToast({
-      title: '更新成功',
-      icon: 'success'
-    })
-  }
-}
-</script>
-
-<style lang="scss" scoped>
-.user-info {
-  background-color: #f4f4f4;
-  .card {
-    padding: 0 30rpx;
-    background-color: #fff;
-    margin-bottom: 20rpx;
-    :last-child {
-      border-bottom: none;
-    }
-  }
-
-  .info-item {
-    padding: 20rpx 0;
-    display: flex;
-    justify-content: space-between;
-    align-items: center;
-    border-bottom: 2rpx solid #d8d8d8;
-    line-height: 40rpx;
-    .avatar {
-      display: flex;
-      align-items: center;
-      justify-content: space-between;
-      width: 130rpx;
-    }
-    .input-box {
-      text-align: right;
-    }
-  }
-  .signature-box {
-    padding: 22rpx 40rpx;
-    background: #ffffff;
-    .textarea {
-      width: 660rpx;
-      padding-top: 30rpx;
-      min-height: 400rpx;
-    }
-  }
-  .submit {
-    padding: 16rpx 26rpx;
-    background: #ffffff;
-    position: absolute;
-    bottom: 0;
-    left: 0;
-    right: 0;
-    z-index: 10000;
-    .btn {
-      width: 100%;
-      height: 88rpx;
-      text-align: center;
-      line-height: 88rpx;
-      background: #6eb657;
-      border-radius: 10rpx;
-      color: #ffffff;
-      font-size: 30rpx;
-    }
-  }
-}
-</style>
-rpx

+ 0 - 208
src/pages-sub-packages/agreement/huiqiyun.vue

@@ -1,208 +0,0 @@
-<template>
-  <view class="pl20 pr20 pb20">
-    <p class="title mt20 mb20 bold-text tc">共享平台注册经营者注册协议书</p>
-    <p class="bold-text">甲方: 河南临登网络科技有限公司</p>
-    <p class="bold-text">乙 方:</p>
-    <p class="bold-text">身份证号:</p>
-    <p class="bold-text">电话:</p>
-    <p>
-      继续注册成为平台注册经营者前,请先阅读本协议提示条款:
-      欢迎您与我司【河南临登网络科技有限公司】共同签署本《注册协议书》(下称“本协议”)成为本平台的注册经营者,以本平台为业务匹配渠道,个人从事生产经营活动,并取得相应的收益。
-      【审慎阅读】为维护您的自身权益,在您点击同意本协议之前,请认真阅读本协议,务必审慎阅读、充分理解各条款内容。<span
-        class="bold-text"
-        >【签约】当您按照提示填写您的信息且完成全部申请后,即表示您已充分阅读、理解并接受本协议的全部内容,并与我司达成一致意见,成为我司的合作人员,此后您不得以未阅读/不理解本协议内容或类似言辞做任何形式的抗辩。阅读本协议的过程中,如果您不理解相关内容应及时联系我公司,如您不同意本协议或其中任何条款约定,请您立即停止任何的申请/注册程序。【合作关系】</span
-      >
-      您与我司通过本协议建立平等的业务承揽合作关系,适用《合同法》、《民法总则》和其他民事法律,不适用《劳动法》、《劳动合同法》。
-    </p>
-    <p>协议条款:</p>
-    <p>
-      根据国家法律、法规和有关规定,双方按照平等自愿、诚实信用的原则,就您通过我司运营平台承揽发包商提供的业务,从事生产经营活动等事宜订立本服务合作协议。
-    </p>
-    <p>第一条服务内容</p>
-    <p>
-      1.1
-      因我司所运营平台上的发包商(即在我司所运营的平台上注册的单位客户,后文简称为“发包商”)有寻求个人经营者承担一定工作任务的需求,您自愿以平台为业务渠道从事生产经营活动,为更好地规范和履行各方的权利、义务,我司特此与您签订本协议,以供双方严格遵守。为保证您与发包商的权利义务,我司特此向您宣贯平台上的业务规则。关于各发包商对注册经营者的要求,包括应履行的活动条件、活动内容、活动注意事项等均在各发包商的任务发布页面有所体现,您应当予以遵守。
-    </p>
-    <p>
-      1.2
-      您应按照我司及各发包商要求的标准接收任务,履行生产经营活动过程中的相关义务并享有相关权利,并严格遵循各发包商制定的任务政策或规则。如您违反前述规定,一经核实本公司将有权随时终止本合同,冻结并扣除您尚未结算的税后经营收入作为赔偿。
-    </p>
-    <p>第二条协议效力</p>
-    <p>2.1 本协议自您完成申请、注册并最终点击签约后立即生效。</p>
-    <p>
-      2.2 本协议有效期限为自生效之日起至 年 月
-      日止(不低于一年)。期限届满,双方可另行签署新的协议;若双方未签署新的协议,而以实际行动继续合作的,视为双方同意协议期限顺延直至按照本协议约定终止或解除时为止。
-    </p>
-    <p>第三条我司的权利和义务</p>
-    <p>
-      3.1
-      我司接受发包商的委托,就其所需发包的任务寻求、匹配注册经营者(即您)为其完成相应任务,并按您的工作成果向您结算承揽任务经营所得(以下称“经营所得”)。
-    </p>
-    <p>
-      3.2
-      我司将按发包商制定的注册经营者经营所得计费标准和支付方式,根据发包商确认的数额向您结算经营所得,并承诺按时支付(按月结算)。如您在工作成果、标准和费用数额上存在异议的,可以向发包商提出,我司将根据发包商的最终意见结算和支付费用。
-    </p>
-    <p>此处您应明确:您的经营所得由我司按月结算并完成支付,您不应向发包商主张任何费用。</p>
-    <p>
-      3.3
-      在向您支付经营所得前,我司将根据税务机关的授权代征您在前述生产经营过程中产生的个人所得税等各项税款及行政收费(如适用),在收到发包商的付款指令并缴纳所有税费后,我司将<span
-        class="bold-text"
-        >保证您的税后经营所得款项及时到帐;发包商未支付费用的,我司无需向您支付。</span
-      >
-    </p>
-    <p>
-      3.4
-      您根据本协议为平台上的发包商完成任务的,系前述任务的实际承揽人,该任务并不导致您与发包商或与我司之间构成任何劳动、劳务或雇佣关系,您应对您的承揽行为负责
-    </p>
-    <p>
-      3.5
-      在您完成任务的过程中,应当自行保障人身和财产安全,并注意防范侵害第三人的人身、财产或造成其他损失,如出现问题由您自行承担责任。若因您在完成任务过程中给发包商或其他第三方造成损失,使我司或发包商承担责任的,我司或发包商有权向您追偿,并从您应得的税后经营所得中扣除。
-    </p>
-    <p>
-      3.6
-      我司承诺对您所披露的个人隐私信息【身份证号码】进行保密,但出于履行本协议的需求或有关部门要求而披露的除外。
-    </p>
-    <p>
-      3.7
-      我司发现您违反本协议第四条第4.6款之规定的,我司有权中止本协议,并将您的违法行为自发现之时24小时之内向我司主管税务机关报告。您应自行承担由此产生的税务相关的处罚责任,包括但不限于根据税务机关的要求补缴相应的税款、滞纳金等。
-    </p>
-    <p>第四条您的权利和义务</p>
-    <p>4.1 如发包商要求您完成违反法律法规的任务的,您有权且应当拒绝。</p>
-    <p>
-      4.2
-      您注册和签约时需提供必要的签约信息【包括您的姓名(或名称)、身份证号(或登记注册号)、手机号、账号等信息)】,如各单位需要其他具体信息的,请您按照发包商的要求进行提供。您承诺并保证您所提供的信息真实、准确,如我司或发包商发现您伪造或提供虚假信息的,一经核实,我司有权单方面立即解除本协议,冻结或扣除您尚未结算的税后经营所得作为赔偿。如您的信息变更(例如,不再符合注册经营者身份要求时等)应当在3日内书通知我司,否则与此有关的全部法律责任由您负责。
-    </p>
-    <p>
-      4.3
-      您同意我司及其发包商收集您的个人信息,包括但不限于您的姓名(或名称)、身份证号(或登记注册号)、收款账户信息、联系电话、接单数量及费用等。
-    </p>
-    <p>
-      4.4
-      因您是平台上任务的实际承揽人,应当独立承担相应的责任,我司没有为您方购买任何保险的法律义务,您自行购买商业保险的,其投保、出险及理赔事宜均与我司无关。
-    </p>
-    <p>4.5 您应自备提供完成任务所需要的设备设施,自行承担必要费用和成本。</p>
-    <p>4.6 您承诺与合作单位不具有下列关系:</p>
-    <p>(1)与发包商具有劳动、劳务或雇佣关系,或其他类似的劳动人事法律关系;</p>
-    <p>(2)与发包商的关联企业具有劳动、劳务或雇佣关系,或其他类似的劳动人事法律关系;</p>
-    <p>
-      (3)为发包商及其关联企业的法定代表人、董事、监事、股东。前述发包商的关联企业指,该企业与发包商相互间直接或间接持有其中一方的股权总和达到25%或以上的;或者与发包商直接或间接同为第三者所拥有或控制股权达到25%或以上的;或者对发包商生产经营、交易具有实际控制的与其他利益相关联的关系(包括但不限于婚姻、近亲属关系)。
-    </p>
-    <p>4.7 您应保证完成我司以及发包商所安排工作任务,并与我司保持必要的沟通联络。</p>
-    <p>
-      4.8
-      您应按时尽责地完成符合我司以及发包商要求的任务,在此过程中不得有侵犯人身权、肖像权、隐私权、名誉权、财产权、知识产权、商业秘密或其他合法权益以及其他违反国家法律法规、国家政策或有悖于公序良俗的行为。
-    </p>
-    <p>
-      4.9
-      协议期内,您应在我司以及发包商许可范围内使用发包商的商业信息;协议期内以及协议终止后,您均有义务对双方合作的有关协议及合作过程中知悉的我司、发包商及他人的相关信息(包括但不限于您与我司签订的本协议,及服务过程中了解到的发包商产品信息、相关服务政策、价格标准、销售数量、技术秘密及其他情况)予以保密,未经书面许可,您不得以任何方式向其它方泄漏、给予或转让前述保密信息。否则,您需负责赔偿因此导致我司及发包商的全部损失。
-    </p>
-    <p>
-      4.10 除本协议事项外,您不能以我司或发包商的名义开展任何与完成约定的任务内容无关的业务或活动。
-    </p>
-    <p>
-      4.11
-      您为发包商完成约定的任务时,发包商可能将要求您签署、点击电子协议《发包商与注册经营者的协议》,您应同意点击签署。您已经明确知悉,点击确认后该《发包商与注册经营者的协议》将对您产生法律效力。
-    </p>
-    <p>
-      4.12
-      我司及本平台默认,您于同期间内,只在本平台注册为注册经营者并接受相应的经营所得收入支付和个人所得税等各项税款及行政收费的代缴服务,若您在一个税务年度内的累计经营收入超过相应的个人所得税税率档位,请您自行在第二年到税务部门汇算清缴,并按规定补缴税款。
-    </p>
-    <p>第五条税后经营所得收入的支付</p>
-    <p>
-      5.1
-      我司将根据发包商的运营要求,按月向您支付税后经营所得收入,具体由我司根据您在发包商的实际服务情况、用户评价以及发包商的结算规则确定。由于您所完成任务的质量、发包商运营情况等的不同,该收入金额可能会呈现浮动,您清楚并了解该等浮动为正常情况。我司将以人民币形式向您支付税后经营所得收入,您应缴纳的个人所得税及其他税费由我司负责代征代办。
-    </p>
-    <p>
-      5.2 您应向我司提供您实名登记的银行账户或支付宝账户,具体账户信息以您在发包商提供的信息为准。
-    </p>
-    <p>
-      5.3
-      税后经营所得收入发放以您提供的收款帐户为准,因您提供的收款帐户不实造成的一切损失由您自行承担。如您帐号变更或发生不可用等情况时,应及时通过发包商进行变更操作,否则,由此造成的一切损失由您自行负责。
-    </p>
-    <p>第六条违约责任</p>
-    <p>
-      6.1
-      双方应按本协议约定履行,如有违反,守约方有权要求违约方及时改正;造成守约方损失的,守约方有权要求违约方赔偿。如您因违约行为给我司或发包商造成损失的,我司或发包商有权直接从您的应得税后经营所得收入中扣除相应的款项作为赔偿;该费用不足以赔偿的,可向您再行主张。
-    </p>
-    <p>
-      6.2
-      在合同因违约而终止情况下,守约方可以要求违约方承担违约责任并赔偿损失,赔偿损失的范围应包括守约方因违约方违约所受到的全部经济损失(包括直接损失、间接损失以及因此赔偿所引发的一切合理费用的支出),守约方还可保留进一步追究的权利。
-    </p>
-    <p>
-      6.3
-      因不可抗力造成损失的,彼此不负赔偿责任,但发生不可抗力一方应在2日内将有关情况通知另一方,在该不可抗力事件发生后十五日内向另一方提供关于此种不可抗力事件及其持续时间的适当证据及协议不能履行或者需要延期履行的书面资料并尽最大努力进行补救。本协议所称不可抗力是指不能预见、不能克服并不能避免且对一方当事人造成重大影响的客观事件,包括但不限于自然灾害如洪水、地震、火灾、风暴、疫情等,社会事件如战争、动乱、政府行为、黑客事件、大范围电信事故等,以及政府行为、政策法律改变等。
-    </p>
-    <p>第七条协议的终止</p>
-    <p>7.1 发生以下情形时,本协议终止:</p>
-    <p>a.本协议到期,双方未决定继续合作的;</p>
-    <p>b.您主动提出终止任务,且已经发包商同意的;</p>
-    <p>c.发包商终止或变更业务模式而不需要您继续履行本协议的;</p>
-    <p>d.发包商认为您不适合继续承揽任务的;</p>
-    <p>e.法律法规或政策变更,不再允许双方继续以此模式合作的。</p>
-    <p>7.2 除以上情形外,发生以下情形时之一的,我司可以终止本协议:</p>
-    <p>
-      7.2.1一方违反协议约定,且违约方在守约方书面通知后15日内仍未予改正的,守约方可以单方终止协议。
-    </p>
-    <p>7.3本协议的终止不影响已经产生的权利义务关系,也不解除各方的保密义务。</p>
-    <p>第八条涉税事务委托授权</p>
-    <p>8.1 涉税事务授权委托</p>
-    <p>
-      (1)合作期限内,您授权委托我司代理本协议交易项下的涉税事务,包括代开增值税普通发票和代缴个税及其他税费。
-    </p>
-    <p>
-      (2)您确认我司根据本协议授权,提交的相关申报资料和信息是真实、完整、准确和符合有关法律法规的。
-    </p>
-    <p>8.2 信息查询授权委托</p>
-    <p>
-      (1)合作期限内,您授权我司向中国人民银行、依法设立的数据服务机构、信息查询及信息验证服务机构、政府部门及其他依法设立存续的第三方机构等无次数限制地收集、查询、验证,同意递交本人相关信息(包括但不限于银行实名信息、通信实名信息、位置信息、资信状况、各类交易记录,公共费用缴纳、违法违规信息、财产状况、行踪轨迹及网络行为信息),进行验证并获得验证结果,用于以下用途:
-    </p>
-    <p>(a);(b);</p>
-    <p>(c);(d)</p>
-    <p>(注:请填写合法业务用途或应用场景)。</p>
-    <p>
-      (2)您同意为避免重复授权之不便,本授权表明该等合法存续的第三方机构在使用或向有关机构提供本人信息时,可以依据本授权径行使用或向源数据机构提供本人相关信息,而无需再逐一向本人另行获取授权。
-    </p>
-    <p>
-      8.3 特别提示:<span class="bold-text"
-        >为了维护您的合法权益,请您在充分理解本授权书的全部内容后签署本授权书。本公司将依法对信息进行保密,履行信息安全保障义务。若您不接受本授权书任何条款,请您立即停止授权。</span
-      >
-    </p>
-    <p>
-      8.4授权人声明:本授权书经接受后立即生效,且效力具有独立性,不因相关业务合同或条款无效或被撤销而无效或失效,本授权一经做出,便不可撤销。以上授权内容,本人已经充分理解并同意,一经本人点击确认或勾选时即视为签署。本人自愿做出以上授权,并愿意承担由此所产生的一切法律后果。
-    </p>
-    <p>第九条其他</p>
-    <p>
-      9.1
-      因履行本协议发生的纠纷,双方应友好协商解决,协商不成的,提请北京仲裁委员会仲裁,仲裁裁决为一裁终局,对双方具有约束力
-    </p>
-    <p>9.2 我司有权根据业务变化情况修改本协议条款。</p>
-    <p>9.3 本协议自您申请注册成功并点击签约之后生效</p>
-    <p>甲方(盖章):</p>
-    <p>日期:</p>
-    <p>乙方(盖章):</p>
-    <p>日期:</p>
-  </view>
-</template>
-
-<script>
-export default {
-  name: 'huiqiyun'
-}
-</script>
-
-<style lang="scss" scoped>
-p:not(.title) {
-  text-indent: 2em;
-  line-height: 1.5em;
-}
-.underline-bold {
-  text-decoration: underline;
-  font-weight: bold;
-}
-.bold-text {
-  font-weight: bold;
-}
-.yellow-bgc {
-  background-color: yellow;
-}
-</style>

+ 0 - 195
src/pages-sub-packages/agreement/jinyuan.vue

@@ -1,195 +0,0 @@
-<!--
- * @desc 金源
- * @author linyuanjie
- * @date 2022/4/20
--->
-
-<template>
-  <view class="pl20 pr20 pb20">
-    <p class="title mt20 mb20 bold-text tc">金园数字科技(涟源)有限公司</p>
-    <p class="title mt20 mb20 bold-text tc">与</p>
-    <p class="title mt20 mb20 bold-text tc">自由职业者</p>
-    <p class="title mt20 mb20 bold-text tc">共享经济综合服务协议</p>
-    <p>甲 方:金园数字科技(涟源)有限公司(以下简称“甲方”)</p>
-    <p>乙 方: (以下简称“乙方”)</p>
-    <p>证件号码:</p>
-    <p>联系电话:</p>
-    <p>联系邮箱:</p>
-    <p>(在本协议下,甲方和乙方统称为“双方”,或各自被称为“各方”或“一方”。)</p>
-    <p><text class="underline-bold">特别提示:</text></p>
-    <p class="underline-bold">
-      针对获得生产经营所得的自由职业者在使用本协议项下甲方(还包括甲方指定的合作方、关联方及其他分支机构,下同)提供的共享经济综合服务时,甲方承诺依法纳税、确保自然纳税人取得税后的合法收入。
-    </p>
-    <p class="underline-bold">
-      军人、公职人员等国家法律法规和纪律规定禁止从事兼职或经商的人员,严禁使用本协议项下甲方提供的共享经济综合服务。
-    </p>
-    <p class="underline-bold">
-      公司雇员等其他与公司具有劳动/劳务合同关系、或其他类似的劳动人事法律关系并从与其有前述关系的公司取得工资薪金所得的人员,严禁使用本协议项下甲方提供的共享经济综合服务;该类人员因从事生产经营而从非与其有前述关系的企、事业单位所取得的生产经营所得,甲方可为其提供本协议项下的共享经济综合服务。
-    </p>
-    <p class="underline-bold">
-      公司法定代表人、股东、董事、监事等从公司取得收入的高管人员,一律严禁使用本协议项下甲方提供的共享经济综合服务;该类人员因从事生产经营而从非与其有前述关系的企、事业单位所取得的生产经营所得,甲方同样不可为其提供本协议项下的共享经济综合服务。
-    </p>
-    <p class="underline-bold">一经发现有上述任一行为的,乙方应自行承担相关法律责任。</p>
-    <p class="underline-bold">
-      上述“公司”特指与乙方建立业务关系并提供相应生产经营活动的公司,乙方与其他公司之间的法律关系不受上述条款约束(公司法定代表人、股东、董事、监事等从公司取得收入的高管人员除外)。
-    </p>
-    <p>
-      依据《中华人民共和国税收征收管理法》及其细则、《中华人民共和国民法典》、《中华人民共和国发票管理办法》、《委托代征管理办法》等相关法律法规的规定,甲乙双方经协商一致,达成协议如下:
-    </p>
-    <p class="bold-text">1、定义</p>
-    <p>
-      1.1.
-      甲方系国内注册成立的科技公司,通过阿拉钉系统平台为自由职业者提供账户搭建与管理、交易管理及撮合、交易合同签订与存证、订单管理与查询、信息咨询及管理等其他现代服务,基于该等经济管理服务及经济业务往来,接受乙方委托,为乙方提供共享经济综合服务。
-    </p>
-    <p>
-      1.2.
-      乙方系具有完全的民事行为能力且具备相应专业技能及许可(如有)的自由职业者,接受甲方(包括甲方指定的合作方、关联方及其他分支机构,下同)提供的共享经济综合服务,与甲方或甲方企业客户之间建立业务关系并提供相应的生产经营活动。乙方承诺作为服务提供者,应遵守国家相关法律法规及行业规范,按照甲方与企业客户的业务具体要求完成服务内容,履行生产经营活动过程中的相关义务并享有相关权利。
-    </p>
-    <p>
-      1.3.阿拉钉系统平台:是由甲方合作方研发及运营维护的一套综合云服务平台,具备电子协议签署、电子数据存证、账户管理、交易管理、订单管理与查询等各项技术服务能力。
-    </p>
-    <p class="bold-text">2、合作内容</p>
-    <p>
-      2.1.乙方应自行负担就其生产经营所得需缴纳的各项税款及行政收费(如有),甲方及甲方指定的合作方、关联方及其他分支机构按照有关税收政策规定及相关主管税务机关的要求,接受乙方委托协助其向主管税务机关缴纳或代征前述税费。
-    </p>
-    <p>
-      2.2.甲方及甲方指定的合作方、关联方及其他分支机构接受乙方委托,通过本协议项下的服务将乙方生产经营所得完税后的金额发放至乙方,并接受乙方委托由甲方或主管税务机关代开增值税普通发票。
-    </p>
-    <p class="bold-text">3、甲方权利义务</p>
-    <p>3.1.甲方有权就乙方提供的生产经营活动制定相应规则及标准,乙方应当遵守。</p>
-    <p>
-      3.2.甲方协助乙方获取生产经营所得时,应当按照有关税收政策规定及主管税务机关授予的代征权限向乙方代征个人所得税等各项税款及行政收费(如有),或协助乙方按照有关税收政策规定及主管税务机关的要求缴纳个人所得税等各项税款及行政收费(如有)。
-    </p>
-    <p>
-      3.3.甲方有权对乙方提供的信息进行验证,但该等验证行为并不意味着甲方对乙方信息的真实性、有效性、合法性、完整性负责,也并不因此减轻或免除乙方的任何义务或责任。
-    </p>
-    <p>
-      3.4.甲方发现乙方违反相关法律法规或本协议规定的,甲方有权中止本协议。乙方应自行承担由此产生的税务相关的处罚责任,包括但不限于根据税务机关的要求补缴相应的税款、滞纳金等。
-    </p>
-    <p>3.5.甲方承诺对乙方所披露的个人隐私信息进行保密。</p>
-    <p>
-      3.6.甲方可以留存为实现本次合作内容从乙方处获取的乙方个人信息。但是,未经乙方授权,甲方不得将乙方个人信息披露给任何第三方。
-    </p>
-    <p>
-      3.7.甲方承诺将按照相关法律法规的要求,对从乙方处获得的乙方个人信息履行安全保护义务,保障网络免受干扰、破坏或未经授权的访问,防止网络数据泄露或被窃取、篡改。
-    </p>
-    <p>3.8.如乙方与其客户之间如有非因本协议产生的争议或纠纷的,与甲方无关,甲方不承担任何责任。</p>
-    <p>
-      3.9.甲方向乙方提供本协议项下服务在任何情况下均不得被理解为与乙方之间建立或存在劳动/劳务合同关系、或其他类似的劳动人事法律关系。
-    </p>
-    <p class="bold-text">4、乙方权利义务</p>
-    <p>
-      4.1.乙方保证提供的个人信息等均是真实的、有效的、合法的、完整的,如信息变更应当及时通知甲方,与此有关的全部法律责任由乙方承担。同时,乙方知悉并确认,当且仅当其通过了甲方系统或甲方合作的第三方系统的实名认证后,方能享有本协议项下的服务。
-    </p>
-    <p>
-      4.2.乙方保证提供各项业务往来信息,包括但不限于业务合作协议、相关补充协议及业务结算单等,均是真实的、有效的、合法的、完整的,如信息变更应当及时通知甲方,与此有关的全部法律责任由乙方承担。
-    </p>
-    <p>
-      4.3.乙方有义务向甲方提供与生产经营所得相对应的收入凭据,并保证其均是真实的、有效的、合法的、完整的,如信息变更应当及时通知甲方,与此有关的全部法律责任由乙方承担。
-    </p>
-    <p>
-      4.4.乙方有义务自行保护账户信息的安全,任何通过乙方账户进行的操作均将被视为乙方的真实意思表示,相应责任均由乙方自行承担。
-    </p>
-    <p>4.5.乙方承诺与其客户之间不具有下列关系:</p>
-    <p>1)与客户具有劳动/劳务合同关系、或其他类似的劳动人事法律关系;</p>
-    <p>2)与客户的关联企业具有劳动/劳务合同关系、或其他类似的劳动人事法律关系;</p>
-    <p>3)为客户及其关联企业或其他企业的法定代表人、董事、监事、股东等高管人员;</p>
-    <p>4)其他不适用于本协议适用范围之规定的人员关系。</p>
-    <p>
-      4.6.乙方发现甲方违反法律、行政法规的规定或者双方的约定收集、使用其个人信息的,有权要求其删除其个人信息;发现甲方收集、存储的其个人信息有错误的,有权要求其予以更正。甲方应当采取措施予以删除或者更正。
-    </p>
-    <p>
-      4.7.乙方保证活动过程中遵守国家法律法规,因乙方个人原因造成其个人或任何第三方损害的责任,由乙方承担全部法律责任。
-    </p>
-    <p>4.8.乙方不得申请代开以下发票:</p>
-    <p>1)凡带有抵扣功能的普通发票;</p>
-    <p>2)非税务部门管理的经营收入。</p>
-    <p>
-      4.9.乙方承诺应当基于真实业务交易向甲方申请代开或委托甲方由税务机关代开相应发票并提供真实、准确、完整的开票信息,否则若乙方违反该承诺造成的相关法律责任及损失由乙方自行承担,若由此造成甲方损失或被相关行政机关处罚的,乙方应当承担赔偿责任。
-    </p>
-    <p>
-      4.10.乙方不得从事违反法律及行政法规等行为,如洗钱、偷税漏税及其他甲方认为不得使用甲方服务的行为等。
-    </p>
-    <p>
-      4.11.乙方确认,其具有完全民事权利能力及完全民事行为能力,所有业务合作均为其真实意愿,且遵守国家法律法规及行业监管要求并满足所有履行本协议所需的法定条件或约定条件。
-    </p>
-    <p>4.12.乙方确认,已知晓其生产经营所得的计算方式及结算周期。</p>
-    <p>
-      4.13.乙方可自行在企业客户处查询生产经营所得的计算方式、结算周期、支付途径等信息,如有异议,可直接与企业客户沟通,甲方可在必要时提供相关协助。
-    </p>
-    <p>
-      4.14.
-      乙方委托授权甲方,根据乙方的委托及主管税务机关规定的或授予的委托代征范围、期限,及税种、税率等,依法代理乙方缴纳相关税费或代征乙方相关税费的事宜,各地主管税务机关的具体规定可能不一致。同时,如遇国家或地方政府及主管税务机关政策变更的,甲方有权根据变更后的政策规定自动调整本协议项下的权利义务乃至终止本协议。
-    </p>
-    <p>
-      4.15.为便利业务的开展,根据实际业务情况,甲方可能会安排一家或多家合作方、关联方及/或分支机构作为实际业务提供方,为乙方提供本协议项下约定的服务,乙方对此知情并完全同意。同时,乙方同意授权并委托甲方为其申请数字证书,并签署所需的相关协议,但该协议应以不加重乙方的合同义务为限。
-    </p>
-    <p>
-      4.16.乙方知悉并同意,经数字证书签署后的电子合同,与乙方以纸质形式进行的签章具有同等法律效力,对乙方具有不可撤销的法律约束力。乙方不得以未签署纸质合同为由、或未实际操作数字证书等理由,否认该等电子合同的法律效力。
-    </p>
-    <p class="bold-text">5、保密条款</p>
-    <p>
-      5.1.本协议任何一方应对本协议所涉及的所有内容以及协议各方在执行本协议过程中相关的一切法律、商业、合作业务的所有资讯进行保密。未经对方允许,均不得向对方以外的任意第三方披露。
-    </p>
-    <p>5.2.保密期应为:协议的有效期内及协议终止之后的十年。</p>
-    <p class="bold-text">6、违约责任</p>
-    <p>
-      任何一方违反本协议约定,即构成该方的违约;除本协议另有规定外,违约方应向守约方承担违约责任,补偿守约方承受或遭致的所有损失、责任、赔偿金或费用(包括但不限于合理的律师费、诉讼费、公证费等)。
-    </p>
-    <p class="bold-text">7、其他</p>
-    <p>
-      7.1.在本协议的任意一方或双方未能及时行使本协议项下的权利不应被视为放弃该权利,也不影响该方在将来行使该权利。
-    </p>
-    <p>
-      7.2.本协议的订立、执行和解释及争议的解决均应适用中国法律。凡因本协议引起的或与本协议有关的任何争议,协议各方应友好协商解决。如不能协商解决,双方一致同意提交至北京仲裁委员会仲裁。
-    </p>
-    <p>
-      7.3.双方同意,在本协议签订后,如另有补充协议,该等补充协议及附件构成本协议不可分割的组成部分,具有同等法律效。
-    </p>
-    <p>
-      7.4.本协议项下各方声明、承诺和保证:本协议任何一方已披露签署和履行本协议所应当向另一方披露的全部信息,且披露内容真实、准确、无遗漏。协议各方同时声明和承诺:本协议的签署和履行不与本协议任何一方已经签署的协议或需承担的任何义务相冲突,且也不会对本协议任何一方以外的第三方形成任何法律和商业上的冲突。
-    </p>
-    <p>
-      7.5.除本协议另有约定外,在履行本协议过程中的一切通知,甲方将通过在阿拉钉系统平台向乙方发送平台消息的方式送达乙方,甲方将通知消息发出之时即视为甲方完成通知义务。
-    </p>
-    <p>
-      7.6.本协议经甲方盖章、乙方签字之日起生效,本协议有效期为壹年。协议到期后如双方均未以书面方式提出异议,则本协议有效期自动顺延壹年。本协议壹式贰份,甲乙双方各执壹份,每份具有同等法律效力。
-    </p>
-    <p>
-      7.7
-      您/本人委托甲方代理本合同交易项下的涉税事务,包括代理报税、代开发票和代开个人完税证明。您/本人确认甲方根据本合同授权提交的相关申报资料和信息是真实、完整、准确,和符合有关法律法规的。您/本人确认与甲方的合作公司不存在法律上和事实上的人事劳动关系,不属于合作公司人事管理权限范围内的个人,也并非其股东。
-    </p>
-    <p>
-      7.8因履行本协议发生的纠纷,双方应友好协商解决,协商不成的,提请我司所在地人民法院诉讼解决。
-    </p>
-    <p>7.9我司有权根据业务需要修改本协议条款。</p>
-    <p>(以下无正文,仅为签署页)</p>
-    <p>甲方(盖章):</p>
-    <p>日期:</p>
-    <p>乙方(签字):</p>
-    <p>日期:</p>
-  </view>
-</template>
-
-<script>
-export default {
-  name: 'jinyuan'
-}
-</script>
-
-<style lang="scss" scoped>
-p:not(.title) {
-  text-indent: 2em;
-  line-height: 1.5em;
-}
-.underline-bold {
-  text-decoration: underline;
-  font-weight: bold;
-}
-.bold-text {
-  font-weight: bold;
-}
-.yellow-bgc {
-  background-color: yellow;
-}
-</style>

+ 0 - 184
src/pages-sub-packages/agreement/olading.vue

@@ -1,184 +0,0 @@
-<!--
- * @desc 钉灵工-海南飞亿协议模板(共享经济综合服务协议)
- * @author linyuanjie
- * @date 2022/4/20
--->
-
-<template>
-  <view class="pl20 pr20 pb20">
-    <p class="title mt20 mb20 bold-text tc">海南省飞亿信息科技有限公司</p>
-    <p class="title mt20 mb20 bold-text tc">与</p>
-    <p class="title mt20 mb20 bold-text tc">自由职业者</p>
-    <p class="title mt20 mb20 bold-text tc">共享经济综合服务协议</p>
-    <p>甲 方:海南省飞亿信息科技有限公司(以下简称“甲方”)</p>
-    <p>乙 方: (以下简称“乙方”)</p>
-    <p>证件号码:</p>
-    <p>联系电话:</p>
-    <p>联系邮箱:</p>
-    <p>(在本协议下,甲方和乙方统称为“双方”,或各自被称为“各方”或“一方”。)</p>
-    <p><text class="underline-bold">特别提示:</text></p>
-    <p class="underline-bold">
-      针对获得生产经营所得的自由职业者在使用本协议项下甲方(还包括甲方指定的合作方、关联方及其他分支机构,下同)提供的共享经济综合服务时,甲方承诺依法纳税、确保自然纳税人取得税后的合法收入。
-    </p>
-    <p class="underline-bold">
-      军人、公职人员等国家法律法规和纪律规定禁止从事兼职或经商的人员,严禁使用本协议项下甲方提供的共享经济综合服务。
-    </p>
-    <p class="underline-bold">
-      公司雇员等其他与公司具有劳动/劳务合同关系、或其他类似的劳动人事法律关系并从与其有前述关系的公司取得工资薪金所得的人员,严禁使用本协议项下甲方提供的共享经济综合服务;该类人员因从事生产经营而从非与其有前述关系的企、事业单位所取得的生产经营所得,甲方可为其提供本协议项下的共享经济综合服务。
-    </p>
-    <p class="underline-bold">
-      公司法定代表人、股东、董事、监事等从公司取得收入的高管人员,一律严禁使用本协议项下甲方提供的共享经济综合服务;该类人员因从事生产经营而从非与其有前述关系的企、事业单位所取得的生产经营所得,甲方同样不可为其提供本协议项下的共享经济综合服务。
-    </p>
-    <p class="underline-bold">一经发现有上述任一行为的,乙方应自行承担相关法律责任。</p>
-    <p class="underline-bold">
-      上述“公司”特指与乙方建立业务关系并提供相应生产经营活动的公司,乙方与其他公司之间的法律关系不受上述条款约束(公司法定代表人、股东、董事、监事等从公司取得收入的高管人员除外)。
-    </p>
-    <p>
-      依据《中华人民共和国税收征收管理法》及其细则、《中华人民共和国民法典》、《中华人民共和国发票管理办法》、《委托代征管理办法》等相关法律法规的规定,甲乙双方经协商一致,达成协议如下:
-    </p>
-    <p class="bold-text">1、定义</p>
-    <p>
-      1.1.甲方系国内注册成立的科技公司,通过阿拉钉系统平台为自由职业者提供账户搭建与管理、交易管理及撮合、交易合同签订与存证、订单管理与查询、信息咨询及管理等其他现代服务,基于该等经济管理服务及经济业务往来,接受乙方委托,为乙方提供共享经济综合服务。
-    </p>
-    <p>
-      1.2.乙方系具有完全的民事行为能力且具备相应专业技能及许可(如有)的自由职业者,接受甲方(包括甲方指定的合作方、关联方及其他分支机构,下同)提供的共享经济综合服务,与甲方或甲方企业客户之间建立业务关系并提供相应的生产经营活动。乙方承诺作为服务提供者,应遵守国家相关法律法规及行业规范,按照甲方与企业客户的业务具体要求完成服务内容,履行生产经营活动过程中的相关义务并享有相关权利。
-    </p>
-    <p>
-      1.3.阿拉钉系统平台:是由甲方合作方研发及运营维护的一套综合云服务平台,具备电子协议签署、电子数据存证、账户管理、交易管理、订单管理与查询等各项技术服务能力。
-    </p>
-    <p class="bold-text">2、合作内容</p>
-    <p>
-      2.1.乙方应自行负担就其生产经营所得需缴纳的各项税款及行政收费(如有),甲方及甲方指定的合作方、关联方及其他分支机构按照有关税收政策规定及相关主管税务机关的要求,接受乙方委托协助其向主管税务机关缴纳或代征前述税费。
-    </p>
-    <p>
-      2.2.甲方及甲方指定的合作方、关联方及其他分支机构接受乙方委托,通过本协议项下的服务将乙方生产经营所得完税后的金额发放至乙方,并接受乙方委托由甲方或主管税务机关代开增值税普通发票。
-    </p>
-    <p class="bold-text">3、甲方权利义务</p>
-    <p>3.1.甲方有权就乙方提供的生产经营活动制定相应规则及标准,乙方应当遵守。</p>
-    <p>
-      3.2.甲方协助乙方获取生产经营所得时,应当按照有关税收政策规定及主管税务机关授予的代征权限向乙方代征个人所得税等各项税款及行政收费(如有),或协助乙方按照有关税收政策规定及主管税务机关的要求缴纳个人所得税等各项税款及行政收费(如有)。
-    </p>
-    <p>
-      3.3.甲方有权对乙方提供的信息进行验证,但该等验证行为并不意味着甲方对乙方信息的真实性、有效性、合法性、完整性负责,也并不因此减轻或免除乙方的任何义务或责任。
-    </p>
-    <p>
-      3.4.甲方发现乙方违反相关法律法规或本协议规定的,甲方有权中止本协议。乙方应自行承担由此产生的税务相关的处罚责任,包括但不限于根据税务机关的要求补缴相应的税款、滞纳金等。
-    </p>
-    <p>3.5.甲方承诺对乙方所披露的个人隐私信息进行保密。</p>
-    <p>
-      3.6.甲方可以留存为实现本次合作内容从乙方处获取的乙方个人信息。但是,未经乙方授权,甲方不得将乙方个人信息披露给任何第三方。
-    </p>
-    <p>
-      3.7.甲方承诺将按照相关法律法规的要求,对从乙方处获得的乙方个人信息履行安全保护义务,保障网络免受干扰、破坏或未经授权的访问,防止网络数据泄露或被窃取、篡改。
-    </p>
-    <p>3.8.如乙方与其客户之间如有非因本协议产生的争议或纠纷的,与甲方无关,甲方不承担任何责任。</p>
-    <p>
-      3.9.甲方向乙方提供本协议项下服务在任何情况下均不得被理解为与乙方之间建立或存在劳动/劳务合同关系、或其他类似的劳动人事法律关系。
-    </p>
-    <p class="bold-text">4、乙方权利义务</p>
-    <p>
-      4.1.乙方保证提供的个人信息等均是真实的、有效的、合法的、完整的,如信息变更应当及时通知甲方,与此有关的全部法律责任由乙方承担。同时,乙方知悉并确认,当且仅当其通过了甲方系统或甲方合作的第三方系统的实名认证后,方能享有本协议项下的服务。
-    </p>
-    <p>
-      4.2.乙方保证提供各项业务往来信息,包括但不限于业务合作协议、相关补充协议及业务结算单等,均是真实的、有效的、合法的、完整的,如信息变更应当及时通知甲方,与此有关的全部法律责任由乙方承担。
-    </p>
-    <p>
-      4.3.乙方有义务向甲方提供与生产经营所得相对应的收入凭据,并保证其均是真实的、有效的、合法的、完整的,如信息变更应当及时通知甲方,与此有关的全部法律责任由乙方承担。
-    </p>
-    <p>
-      4.4.乙方有义务自行保护账户信息的安全,任何通过乙方账户进行的操作均将被视为乙方的真实意思表示,相应责任均由乙方自行承担。
-    </p>
-    <p>4.5.乙方承诺与其客户之间不具有下列关系:</p>
-    <p>1)与客户具有劳动/劳务合同关系、或其他类似的劳动人事法律关系;</p>
-    <p>2)与客户的关联企业具有劳动/劳务合同关系、或其他类似的劳动人事法律关系;</p>
-    <p>3)为客户及其关联企业或其他企业的法定代表人、董事、监事、股东等高管人员;</p>
-    <p>4)其他不适用于本协议适用范围之规定的人员关系。</p>
-    <p>
-      4.6.乙方发现甲方违反法律、行政法规的规定或者双方的约定收集、使用其个人信息的,有权要求其删除其个人信息;发现甲方收集、存储的其个人信息有错误的,有权要求其予以更正。甲方应当采取措施予以删除或者更正。
-    </p>
-    <p>
-      4.7.乙方保证活动过程中遵守国家法律法规,因乙方个人原因造成其个人或任何第三方损害的责任,由乙方承担全部法律责任。
-    </p>
-    <p>4.8.乙方不得申请代开以下发票:</p>
-    <p>1)凡带有抵扣功能的普通发票;</p>
-    <p>2)非税务部门管理的经营收入。</p>
-    <p>
-      4.9.乙方承诺应当基于真实业务交易向甲方申请代开或委托甲方由税务机关代开相应发票并提供真实、准确、完整的开票信息,否则若乙方违反该承诺造成的相关法律责任及损失由乙方自行承担,若由此造成甲方损失或被相关行政机关处罚的,乙方应当承担赔偿责任。
-    </p>
-    <p>
-      4.10.乙方不得从事违反法律及行政法规等行为,如洗钱、偷税漏税及其他甲方认为不得使用甲方服务的行为等。
-    </p>
-    <p>
-      4.11.乙方确认,其具有完全民事权利能力及完全民事行为能力,所有业务合作均为其真实意愿,且遵守国家法律法规及行业监管要求并满足所有履行本协议所需的法定条件或约定条件。
-    </p>
-    <p>4.12.乙方确认,已知晓其生产经营所得的计算方式及结算周期。</p>
-    <p>
-      4.13.乙方可自行在企业客户处查询生产经营所得的计算方式、结算周期、支付途径等信息,如有异议,可直接与企业客户沟通,甲方可在必要时提供相关协助。
-    </p>
-    <p>
-      4.14.乙方理解并同意,甲方仅能根据乙方的委托及主管税务机关规定的或授予的委托代征范围、期限,及税种、税率等,协助乙方缴纳相关税费或依法代征相关税费,各地主管税务机关的具体规定可能不一致。同时,如遇国家或地方政府及主管税务机关政策变更的,甲方有权根据变更后的政策规定自动调整本协议项下的权利义务乃至终止本协议。
-    </p>
-    <p>
-      4.15.为便利业务的开展,根据实际业务情况,甲方可能会安排一家或多家合作方、关联方及/或分支机构作为实际业务提供方,为乙方提供本协议项下约定的服务,乙方对此知情并完全同意。同时,乙方同意授权并委托甲方为其申请数字证书,并签署所需的相关协议,但该协议应以不加重乙方的合同义务为限。
-    </p>
-    <p>
-      4.16.乙方知悉并同意,经数字证书签署后的电子合同,与乙方以纸质形式进行的签章具有同等法律效力,对乙方具有不可撤销的法律约束力。乙方不得以未签署纸质合同为由、或未实际操作数字证书等理由,否认该等电子合同的法律效力。
-    </p>
-    <p class="bold-text">5、保密条款</p>
-    <p>
-      5.1.本协议任何一方应对本协议所涉及的所有内容以及协议各方在执行本协议过程中相关的一切法律、商业、合作业务的所有资讯进行保密。未经对方允许,均不得向对方以外的任意第三方披露。
-    </p>
-    <p>5.2.保密期应为:协议的有效期内及协议终止之后的十年。</p>
-    <p class="bold-text">6、违约责任</p>
-    <p>
-      任何一方违反本协议约定,即构成该方的违约;除本协议另有规定外,违约方应向守约方承担违约责任,补偿守约方承受或遭致的所有损失、责任、赔偿金或费用(包括但不限于合理的律师费、诉讼费、公证费等)。
-    </p>
-    <p class="bold-text">7、其他</p>
-    <p>
-      7.1.在本协议的任意一方或双方未能及时行使本协议项下的权利不应被视为放弃该权利,也不影响该方在将来行使该权利。
-    </p>
-    <p>
-      7.2.本协议的订立、执行和解释及争议的解决均应适用中国法律。凡因本协议引起的或与本协议有关的任何争议,协议各方应友好协商解决。如不能协商解决,双方一致同意提交至北京仲裁委员会仲裁。
-    </p>
-    <p>
-      7.3.双方同意,在本协议签订后,如另有补充协议,该等补充协议及附件构成本协议不可分割的组成部分,具有同等法律效。
-    </p>
-    <p>
-      7.4.本协议项下各方声明、承诺和保证:本协议任何一方已披露签署和履行本协议所应当向另一方披露的全部信息,且披露内容真实、准确、无遗漏。协议各方同时声明和承诺:本协议的签署和履行不与本协议任何一方已经签署的协议或需承担的任何义务相冲突,且也不会对本协议任何一方以外的第三方形成任何法律和商业上的冲突。
-    </p>
-    <p>
-      7.5.除本协议另有约定外,在履行本协议过程中的一切通知,甲方将通过在阿拉钉系统平台向乙方发送平台消息的方式送达乙方,甲方将通知消息发出之时即视为甲方完成通知义务。
-    </p>
-    <p>
-      7.6.本协议经甲方盖章、乙方签字之日起生效,本协议有效期为壹年。协议到期后如双方均未以书面方式提出异议,则本协议有效期自动顺延壹年。本协议壹式贰份,甲乙双方各执壹份,每份具有同等法律效力。
-    </p>
-    <p>(以下无正文,仅为签署页)</p>
-    <p>甲方(盖章):</p>
-    <p>日期:</p>
-    <p>乙方(签字):</p>
-    <p>日期:</p>
-  </view>
-</template>
-
-<script>
-export default {
-  name: 'olading'
-}
-</script>
-
-<style lang="scss" scoped>
-p:not(.title) {
-  text-indent: 2em;
-  line-height: 1.5em;
-}
-.underline-bold {
-  text-decoration: underline;
-  font-weight: bold;
-}
-.bold-text {
-  font-weight: bold;
-}
-.yellow-bgc {
-  background-color: yellow;
-}
-</style>

+ 0 - 70
src/pages-sub-packages/agreement/personalInfoAuth.vue

@@ -1,70 +0,0 @@
-<!--
- * @desc 个人信息使用授权书
--->
-
-<template>
-  <view class="pl20 pr20">
-    <p class="title mt20 bold-text tc">个人信息使用授权书</p>
-    <p class="title mt20 mb20 bold-text">重要提示:</p>
-    <p class="bold-text">
-      为了保障您的合法权益,您应当阅读并遵守本授权书,请您务必审慎阅读、充分理解授权书条款内容,特别是免除或者减轻中国生物技术股份有限公司(以下统称“被授权人"或“中国生物”)责任,或限制您权利的条款,其中免除或者减轻责任条款可能以加粗形式提示您注意。
-    </p>
-    <p class="bold-text">
-      除非您已阅读并接受本授权书所有条款,否则您无权使用“营销行为小助手”服务。您的使用、登录等行为即视为您已阅读并同意本授权书条款的约束。
-    </p>
-    <p class="mt20">中国生物技术股份有限公司:</p>
-    <p>
-      本人充分理解并同意,“营销行为小助手”服务是中国生物技术股份有限公司(以下简称“中国生物”)与实体企业等相关合作方进行合作,开展业务证据链采集系统服务。通过信息技术手段,对营销行为进行全面、高效的管控,以实现强化企业管理、提升营销效率、降低运营成本等目标。
-    </p>
-    <p>
-      本人在使用“营销行为小助手”服务时,承诺遵守《平台用户协议》《隐私政策》等协议。同时,为便于中国生物提供优质、便捷的服务,就使用本人的相关必要信息,本人同意并授权如下:
-    </p>
-    <p class="bold-text">
-      一、本人同意并授权,中国生物可使用和分析本人在“营销行为小助手”中所有填写登记或提供身份证明等资料中载明的姓名、、身份证号、联系电话、联系地址等个人信息及身份证明等相关材料,本人领取任务、实施任务等在“营销行为小助手”中的所有操作记录以及在实施任务时获取地理位置,访问手机相机、手机图片等数据信息(以下称“授权使用信息”);
-    </p>
-    <p class="bold-text">
-      二、本人同意并授权,中国生物可以保存、整理、加工授权使用信息,将授权使用信息及中国生物使用该信息分析结果传输共享给本人通过本“营销行为小助手”领取、实施任务的项目发布人、发起人,以便中国生物开展证据链服务。
-    </p>
-    <p class="bold-text">
-      三、本人同意并授权,中国生物可以将本人授权使用信息共享给“营销行为小助手”中为本人领取任务、实施任务提供第三方服务的企业使用。
-    </p>
-    <p class="bold-text">
-      四、除上述授权中国生物共享主体外,本人授权中国生物可将本人提交的或中国生物自行收集的本人授权使用信息与“营销行为小助手”项下相关合作方,即本人在“营销行为小助手”领取任务、实施任务所必要的其他合作方进行数据共享。若因本人授权中国生物共享信息主体不当使用本人个人信息或资料等可能造成损失,本人要求该主体承担赔偿责任,中国生物无须承担任何法律责任。
-    </p>
-    <p>同时,本人声明如下:</p>
-    <p class="bold-text">
-      一、本授权书是本人向中国生物做出的单方承诺,效力具有独立性,不因相关交易合同的任何条款无效而失效。
-    </p>
-    <p class="bold-text">
-      二、本人承诺本人在“营销行为小助手”所填写的信息或向“营销行为小助手”所提交的证明材料均真实有效、全面完整,不存在虚假陈述、伪造或篡改信息的情形,如有违反,本人承担全部法律责任。
-    </p>
-    <p>以上授权期限为本人作出本授权承诺之日起至本人在“营销行为小助手”上用户账号注销之日止</p>
-    <p class="underline-bold">
-      若本人与以上被授权人发生任何纠纷或争议,首先应友好协商解决;协商不成的,本人同意将纠纷或争议提交被授权人所在地有管辖权的人民法院管辖。本授权书的成立、生效、履行、解释及纠纷解决,适用中华人民共和国大陆地区法律(不包括冲突法)。
-    </p>
-    <p class="bold-text">
-      本人已知悉本授权书所有内容(特别是加粗字体内容)的意义以及由此产生的法律效力,自愿作出上述授权,本授权书是本人真实的意思表示,本人同意承担由此带来的一切法律后果。
-    </p>
-    <p>特此授权!</p>
-  </view>
-</template>
-
-<script>
-export default {
-  name: 'personalInfo'
-}
-</script>
-
-<style lang="scss" scoped>
-p:not(.title) {
-  text-indent: 2em;
-  line-height: 1.5em;
-}
-.underline-bold {
-  text-decoration: underline;
-  font-weight: bold;
-}
-.bold-text {
-  font-weight: bold;
-}
-</style>

+ 0 - 4085
src/pages-sub-packages/agreement/platformUsers.vue

@@ -1,4085 +0,0 @@
-<template>
-  <view class="pl20 pr20">
-    <div>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-align: center;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold">营销行为平台用户协议</span>
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-align: right;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 7.5pt;
-        "
-      >
-        <span style="">第2.0版</span>
-      </p>
-      <p
-        style="
-          margin-top: 7.8pt;
-          margin-bottom: 7.8pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >《营销行为平台用户协议》系由您(或称“用户”)与中国生物技术股份有限公司(或称“中国生物”)之间就“营销行为平台”(以下或简称“本平台”)服务而签订。本平台依据《营销行为平台用户协议》的规定提供服务,该协议一旦生效对用户及中国生物均产生法律效力。您在用户注册时,请认真阅读本协议,审阅并选择同意或不同意本协议。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 7.8pt;
-          margin-bottom: 7.8pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >在使用本平台服务之前,请您务必审慎阅读、充分理解本协议各项条款,特别是限制或免除责任条款、隐私保护政策、账号规则、法律适用和争议解决条款(包括管辖条款),</span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >以及其它以加粗加黑和/或加下划线等显示形式提示您注意的重要条款,请务必重点查阅。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 7.8pt;
-          margin-bottom: 7.8pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >中国生物与您将通过数据电文形式订立本协议,若您不同意本协议,则您有充分且完全</span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >的权利立即停止注册程序(但这并不妨碍您浏览本平台中的信息)。您通过网络页面点击“同意”的按钮,且该注册和/或实际使用平台服务的行为即视为您已阅读、充分理解并同意接受</span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >本协议的全部条款含义即相应的法律后果,不可撤销地同意与中国生物以数据电文形式订立本协议并接受本协议及其之后修订版本的全部约束,本协议成立生效并产生法律效力。如果您对本协议有任何的疑问、投诉、意见和建议,欢迎您通过本协议所附联系方式与中国生物沟通反馈。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 7.8pt;
-          margin-bottom: 7.8pt;
-          text-indent: 21pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold">第1条 基础约定事项</span>
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style=""
-          >1.1
-          协议范围:考虑到互联网服务以及商品频繁迭代更新等行业特点,为了更全面的界定您与本平台之间的权利义务,</span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >本协议包括中国生物根据法律法规规定以及本协议制定的其他政策、规则、公告声明等(除非特有所指,合称为“本协议”)</span
-        ><span style="">,您也应当加以遵守。</span>
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style=""
-          >1.2
-          服务范围:中国生物可能通过不断丰富的功能界面向您提供本协议项下的平台服务,包括但不限于系统软件、移动应用程序(“APP”)、PC端网站、小程序以及其他形式。具体以中国生物实时发布的服务功能界面范围为准。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style=""
-          >1.3 主体地位:请您在接受本协议或者以其他中国生物允许的方式实际使用本服务之前,</span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >请确保您是适格的合同主体,并在清楚理解本协议内容及其法律后果后自行决定是否同意签署,而且就您所知,不存在任何可能使得本协议无效或者本协议项下义务的履行产生重大不利影响之情形。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 7.8pt;
-          margin-bottom: 7.8pt;
-          text-indent: 21pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold">第2条 用户资格</span>
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style=""
-          >2.1
-          只有符合下列条件之一的自然人或机构才能申请成为本平台用户,可以使用本平台的服务:</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">2.1.1 </span
-        ><span style="font-weight: bold; text-decoration: underline">自然人用户:</span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >年满十八周岁且未满六十周岁,具有完全民事行为能力;</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">2.1.2 </span
-        ><span style="font-weight: bold; text-decoration: underline">非自然人用户:</span>
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(1)根据中国法律、法规、行政规章合法设立并有效存续的机关、企事业单位、社团组织和其他组织;</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(2)未被国家企业信用信息公示系统(www.gsxt.gov.cn)列入严重违法失信企业名录;</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(3)未被责令停业或处于破产状态的;</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(4)财产及其股权未被重组、接管、查封、扣押或冻结;</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(5)近三年内不涉及重大诉讼、仲裁,不属于失信被执行人的;</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(6)不存在违反法律法规规定的其他情形。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">2.2 </span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >不符合以上条件的自然人、法人或其他组织,将不被允许注册及认证成为本平台用户,且不得使用本平台相关服务,本平台一经发现,有权立即终止对该用户的服务,并追究其使用本平台服务的一切法律责任。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">2.3 </span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >非自然人用户需通过授权自然人为管理员后进行操作及管理。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">2.4 用户需要提供真实有效的联系电话,并提供真实信息。</span>
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style=""
-          >2.5
-          本平台用户须承诺遵守法律法规、社会主义制度、国家利益、公民合法权益、公共秩序、社会道德风尚和信息真实性。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 7.8pt;
-          margin-bottom: 7.8pt;
-          text-indent: 21pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold">第3条</span><span style=""> </span
-        ><span style="font-weight: bold">用户账号规则</span>
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">3.1 用户账号</span>
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style=""
-          >3.1.1
-          您通过平台或上级企业管理员获得中国生物配置的用户账号,自首次使用该账号登陆并使用平台服务之日起即成为平台用户(以下称“注册”),您在使用本平台服务时可能需要提供一些必要的信息,具体验证方式(包括但不限于您需要提供验证的身份要素)以本网站相关页面提示为准。您须保证所填写及所提供的资料真实、准确、完整,否则可能无法使用本平台服务,或在使用过程中受到限制,甚至影响您是否能够使用本平台特定功能。</span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >对于因您提供的信息不真实、不准确或不完整导致的责任和损失由您自行承担。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style=""
-          >3.1.2
-          本平台有权根据您所提供资料的真实性、准确性、完整性以及是否符合本平台服务规定的其他条件,决定是否为您提供服务。您在使用本平台服务过程中,所提供的信息发生变动,应及时进行变更。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">3.1.3 </span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >您在平台注册的用户账号仅限您本人使用,账号信息和权限不得以转让、赠与、借用、售卖、授权或租用等方式许可给第三方使用或和第三方共同控制、使用。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">3.1.4 </span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >您在用户账号中的设置必须遵守法律法规、公序良俗、社会公德,且不会侵害其他第三方的合法权益,否则中国生物可能会停止您使用平台账号的权利,但中国生物不对此负有实质审查义务,相关法律后果将由您自行承担。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">3.1.5 </span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >您有责任自行负责保管账号的用户名和登陆密码等信息,否则因该等事项引发的法律责任由用户自行承担(例如盗用、转让等)。凡使用本平台服务登录账号和登录凭证的行为,本平台服务视为您本人的操作,操作所产生的电子信息记录均为本平台服务用户行为的有效凭据。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">3.4 账号使用</span>
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style=""
-          >3.4.1
-          您在使用本平台服务账号登录时,除遵守本协议约定外,还应遵守平台项下发生服务行为时相应的服务协议约定,对可能出现的纠纷在法律规定和协议约定的范围内各自承担责任。</span
-        ><span style="">&nbsp;</span>
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style=""
-          >3.4.2
-          为客户体验及功能服务考虑,您在使用不同服务时被要求填写的信息内容可能不完全一致,因此,在使用本平台更高级别服务时,为了给您提供更好的服务及为了您的登录账号安全,可能需要您补充完整信息后方可使用。</span
-        ><span style="">&nbsp;</span>
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">3.5 账号休眠</span>
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">3.5.1 用户申请休眠情形</span>
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style=""
-          >账号休眠指,在本平台执行某账户进行休眠后,该用户将不能登陆该账户、进而不能使用平台项下全部功能。如果您需要休眠您的账号,您可以通过联系平台客服进行申请,经本平台审核同意后方可解除与本平台的协议关系并休眠您账号。当您的账户休眠后,您的个人信息和您在使用本平台期间提供或产生的信息我们将按照《中国生物隐私权政策》第三条第二款约定的存储期限进行保存。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">3.5.2 强制休眠情形</span>
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >中国生物有权在您的账号符合如下情况时,休眠您的账号并停止服务:</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline">(1)未通过实名认证;</span>
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(2)连续180日未曾登陆、使用本平台服务;</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(3)在用户违反本协议及相关规则规定时,本平台有权终止向该用户提供服务。但该</span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >用户在被本平台终止提供服务后,再一次直接或间接或以他人名义注册为本平台用户的,本平台有权再次单方面终止为该用户提供服务;</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(4)本平台发现用户注册资料中主要内容是虚假的,本平台有权随时终止为该用户提供服务;</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(5)本协议终止或更新时,用户未确认新的协议的;</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(6)其它本平台认为需终止服务的情况。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >本平台可自行全权决定,在发出通知或不发出通知的情况下,随时停止或终止提供全部或部分服务。服务终止后,本平台没有义务为用户保留原账户中或与之相关的任何信息,或转发任何未曾阅读或发送的信息给用户或第三方。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">3.5.3 不论用户账户通过何种方式休眠,本平台仍保留下列权利:</span>
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style=""
-          >(1)本平台有权在法律、法规、行政规章规定的时间内保留该用户的资料,包括但不限于以前的用户资料、任务对接记录等;</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style=""
-          >(2)若终止服务之前,该用户在本平台交易平台上存在违法行为或违反本协议的行为,本平台仍可行使本协议所规定的权利。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 7.8pt;
-          margin-bottom: 7.8pt;
-          text-indent: 21pt;
-          text-align: justify;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold">第4条</span><span style=""> </span
-        ><span style="font-weight: bold">平台交易规则</span>
-      </p>
-      <p
-        style="
-          margin-top: 7.8pt;
-          margin-bottom: 7.8pt;
-          text-indent: 21pt;
-          text-align: justify;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style=""
-          >您应承诺与本平台其他用户进行交易的过程中,均应良好的遵守如下基本交易规则:</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 7.8pt;
-          margin-bottom: 7.8pt;
-          text-indent: 21pt;
-          text-align: justify;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">4.1 了解服务信息</span>
-      </p>
-      <p
-        style="
-          margin-top: 7.8pt;
-          margin-bottom: 7.8pt;
-          text-indent: 21pt;
-          text-align: justify;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">您在</span><span style="">使用</span
-        ><span style="">本平台前,应详细了解并完全接受本平台服务内容及交易规则</span
-        ><span style="">。</span>
-      </p>
-      <p
-        style="
-          margin-top: 7.8pt;
-          margin-bottom: 7.8pt;
-          text-indent: 21pt;
-          text-align: justify;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">4.2 交易协议的提交及确认</span
-        ><span style="width: 7.58pt; text-indent: 0pt; display: inline-block">&nbsp;</span>
-      </p>
-      <p
-        style="
-          margin-top: 7.8pt;
-          margin-bottom: 7.8pt;
-          text-indent: 21pt;
-          text-align: justify;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >在您提交本平台任务接收单或其他文件(以下称“任务文件”)</span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >前,请您务必仔细确认服务时间、内容、限制性要求等重要事项,并核实您的联系地址、电话、个人信息。您根据平台指引</span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >点击提交“【同意】”按钮行为,意味着您认可文件中包含的所有信息都是正确和完整</span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >的,且视为您同意并认可任务文件所载明内容,待点击确认后,该任务文件即成立并生效,对您发生法律效力。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 7.8pt;
-          margin-bottom: 7.8pt;
-          text-indent: 21pt;
-          text-align: justify;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">4.3 信息发布及虚假交易</span>
-      </p>
-      <p
-        style="
-          margin-top: 7.8pt;
-          margin-bottom: 7.8pt;
-          text-indent: 21pt;
-          text-align: justify;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >若根据平台规则,您有权在平台系统中发布信息的,应根据本平台指引操作并应遵守本平台信息发布规则。您应确保在平台系统发布信息及交易的准确性、真实性、完整性,禁止提供虚假信息,一旦被中国生物发现,中国生物将有权单方面取消您用户资格并限制您在【
-          壹 】年内不得注册成为用户。且由此给平台或其他用户造成的损失也均由您自行承担。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 7.8pt;
-          margin-bottom: 7.8pt;
-          text-indent: 21pt;
-          text-align: justify;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">4.4 其他规则说明</span>
-      </p>
-      <p
-        style="
-          margin-top: 7.8pt;
-          margin-bottom: 7.8pt;
-          text-indent: 21pt;
-          text-align: justify;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style=""
-          >4.4.1
-          为交易达成以及提升用户体验等目的,本平台可能会为您提供更为友好完善的规则服务,并优化和引入第三方服务。由此发生的法律关系是由您和该等第三方服务商之间形成,和本平台无关。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 7.8pt;
-          margin-bottom: 7.8pt;
-          text-indent: 21pt;
-          text-align: justify;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style=""
-          >4.4.2
-          您同意并知悉,本平台中的具体内容、功能和形式由平台根据实际情况按“现状”实时提供,中国生物有权自行确定本平台服务的具体内容、功能和形式,有权自行决定增加、变更、中断和停止本平台具体的内容、功能和形式。具体以本平台实时呈现的服务内容、功能和形式为准。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 7.8pt;
-          margin-bottom: 7.8pt;
-          text-indent: 21pt;
-          text-align: justify;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">4.4.3 </span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >由于众所周知的互联网技术因素等客观原因存在,本平台显示的信息可能会有一定的滞后性或差错,对此情形您知悉并理解,如因系统故障或平台重大误解导致显示信息明</span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >显不合理的,请勿进行下一步操作,</span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >如您明知显示信息明显不合理仍然提交任务文件的,将可能被视为恶意行为,本平台将有权</span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >冻结和/或取消本次交易;如果您在不知情的情况下进行了下一步操作,请第一时间联系本平台客服。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 7.8pt;
-          margin-bottom: 7.8pt;
-          text-indent: 21pt;
-          text-align: justify;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">4.4.4 </span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >您同意在使用本平台服务的过程中遵守诚实信用原则,您</span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >不得实施恶意行为扰乱本平台正常交易秩序。如本平台根据您的登录账号下的记录及其他相关信息,发现您有(或可能有)恶意行为的,则本平台有权单方拒绝您的需求,或单方取消您的交易且不予退还保证金(如有),且无须由此向您承担法律责任。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 7.8pt;
-          margin-bottom: 7.8pt;
-          text-indent: 21pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold">第5条 用户的权利和义务</span>
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style=""
-          >5.1
-          用户有权根据本协议及本平台发布的相关规则,登录并利用本平台查询公开的用户信息、发布或承接服务、统计汇总信息、</span
-        ><span style="">使用手机客户端填写真实业务信息、</span
-        ><span style="">参加本平台的有关活动,并有权享受本平台提供的其他有关资讯及信息服务。</span>
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">5.2 </span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >用户有权对部分自身账号相关信息进行查询、更新、删除。用户有权对自身账号对应的用户信息、任务信息、汇总信息等相关信息进行查询,用户可以按其权限进行任务处理,例如管理员权限可以对任务进行审核验收、个人用户可以承接、实施任务。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">5.3 </span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >用户须自行负责自己的用户账号和密码,且须对在用户账号密码下发生的所有活动(包括但不限于发布服务信息、网上点击同意各类协议、规则、参与承接服务等)承担责任。用户有权根据需要更改登录密码。因用户的过错导致的任何损失由用户自行承担,该过错包括但不限于:不按照提示操作、不按照平台流程操作、未及时进行操作、遗忘或泄漏密码、密码被他人破解及用户使用的计算机被他人侵入等情形。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style=""
-          >5.4
-          用户应当向本平台提供真实准确的注册信息,包括但不限于真实姓名、身份证号、手机号码(</span
-        ><span style="">手机号码即为用户在本平台的账户</span
-        ><span style="">)、电子邮箱等。保证本平台可以通过上述联系方式与用户进行联系。同时,</span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >用户也应当在相关资料实际变更时及时更新有关注册资料</span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >,因未及时更新注册资料导致的任何损失由用户自行承担。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">5.5 </span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >用户在本平台注册的账号名称及发布的内容,不得有下列情形:</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(1)违反中国宪法或法律法规规定的;</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(2)危害国家安全,泄露国家秘密,颠覆国家政权,破坏国家统一的;</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(3)损害国家荣誉和利益的,损害公共利益的;</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(4)煽动民族仇恨、民族歧视,破坏民族团结的;</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(5)破坏国家宗教政策,宣扬邪教和封建迷信的;</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(6)散布谣言,扰乱社会秩序,破坏社会稳定的;</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(7)散布淫秽、色情、赌博、暴力、凶杀、恐怖或者教唆犯罪的;</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(8)侮辱或者诽谤他人,侵害他人合法权益的;</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(9)含有法律、行政法规禁止的其他内容的。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">5.6 </span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >用户不得以虚假信息骗取账号名称注册,或其账号头像、简介等注册信息存在违法和不良信息。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">5.7 </span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >用户不得冒用关联机构或社会名人注册账号名称。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">5.8 </span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >用户不得以任何形式擅自转让或授权他人使用自己在本平台的实名注册账号。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">5.9 </span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >非自然人用户认证通过后,认证信息不可随意进行变更;如需变更,须重新提交平台管理员审核。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">5.10 </span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >用户有义务确保在本平台上发布的需求信息真实、准确,无误导性。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">5.11 </span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >用户在本平台上所实施行为,不得违反国家法律、法规、行政规章的规定,不得侵犯他人知识产权或其他合法权益的信息,不得违背社会公共利益或公共道德,不得违反本平台的相关规定。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">5.12 </span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >用户在本平台交易中应当遵守诚实信用原则,不得以干预或操纵发布服务等不正当竞争方式扰乱网上交易秩序,不得从事与网上交易无关的不当行为。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">5.13 </span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >用户不应采取违法或不正当手段(包括但不限于提供虚假证明材料等方式)在平台获利。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">5.14 </span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >用户承诺自己在使用本平台实施的所有行为遵守法律、法规、行政规章和本平台的相关规定以及各种社会公共利益或公共道德。如有违反导致任何法律后果的发生,用户将以自己的名义独立承担相应的法律责任。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">5.15 用户如发现其他用户有违法或违反本协议的行为,可以向本平台举报。</span>
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">5.16 </span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >未经本平台书面允许,用户不得将本平台的任何资料以及在平台上所展示的任何信息作商业性利用(包括但不限于以复制、修改、翻译等形式制作衍生作品、分发或公开展示)。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">5.18 </span
-        ><span style="font-weight: bold"
-          >用户不得使用以下方式登录平台或破坏本平台所提供的服务:</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(1)以任何机器人软件、蜘蛛软件、爬虫软件、刷屏软件或其它自动方式访问或登录本平台;</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(2)通过任何方式对本平台内部结构造成或可能造成不合理或不合比例的重大负荷的行为;</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(3)通过任何方式干扰或试图干扰本平台的正常工作或本平台上进行的任何活动。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">5.19 </span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >用户同意接收来自本平台的信息,包括但不限于活动信息、完成信息等。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">5.20 </span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >用户如为非自然人用户的,其在本平台实名认证的管理人员的所有操作视为用户行为,用户须对其管理人员的行为承担一切责任。用户应要求其管理的人员遵守本协议及</span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >本平台相关规则等要求,如用户实名认证的管理人员违反本协议及/或本平台规则等</span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >要求的,视为用户违反上述要求,用户应按照本协议要求承担相应责任。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 7.8pt;
-          margin-bottom: 7.8pt;
-          text-indent: 21pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold">第6条 本平台的权利和义务</span>
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">6.1 本平台仅为用户提供一个信息交流、</span
-        ><span style="">服务接洽及证据链采集的第三方平台</span><span style="">,</span
-        ><span style="">是为实施服务提供解决方案的信息服务平台</span><span style="">。</span>
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style=""
-          >6.2
-          本平台有义务在现有技术水平的基础上努力确保整个网上交流平台的正常运行,尽力避免因平台原因导致服务中断或将中断时间限制在最短时间内,保证用户网上交流活动的顺利进行。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style=""
-          >6.3
-          本平台有义务对用户在注册使用本平台信息中所遇到的与注册或任务对接有关的问题及反映的情况及时作出回复。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style=""
-          >6.4
-          本平台有权对用户的注册资料进行审查,对存在任何问题或怀疑的注册资料,本平台有权发出通知询问用户并要求用户做出解释、改正。</span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >用户拒不解释、改正的,本平台有权拒绝用户使用本平台。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">6.5</span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >因网上信息平台的特殊性,本平台不承担对所有用户的任务发布、对接行为以及与任务对接有关的其他事项进行事先审查的义务,但如发生以下情形,本平台有权无需征得用户的同意限制用户的活动、向用户核实有关资料、发出警告通知、暂时中止、无限期中止及拒绝向该用户提供服务:</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(1)用户以非自然人名义进行认证之后认证主体自行休眠或者经有权机关吊销或撤销的;</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(2)用户违反本协议或因被提及而纳入本协议的相关规则;</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(3)存在用户或其他第三方通知本平台,认为某个用户或具体交易事项存在违法或不当行为,并提供相关证据,而本平台无法联系到该用户核证或验证该用户向本平台提供的任何资料;</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(4)存在用户或其他第三方通知本平台,认为某个用户或具体事项存在违法或不当行</span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >为,并提供相关证据。本平台以普通非专业人员的知识水平标准对相关内容进行判别,可以明显认为这些内容或行为可能对他方或本平台造成财务损失或承担法律责任。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">6.6 </span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >根据国家法律、法规、行政规章规定、本协议的内容和本平台所掌握的事实依据,可以认定该用户存在违法或违反本协议行为以及在本平台交易平台上的其他不当行为,本平台有权无需征得用户的同意在本平台上以网络发布形式公布该用户的违法行为,并有权随时作出删除相关信息、终止服务提供等处理。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">6.7 </span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >本平台有权在不通知用户的前提下,删除或采取其他限制性措施处理下列信息:包括但不限于以规避费用为目的;以炒作信用为目的;存在欺诈等恶意或虚假内容;与本平台服务无关或不是以服务任务对接为目的;存在恶意竞价或其他试图扰乱正常秩序因素;违反法律法规、公共利益或可能严重损害本平台和其他用户合法利益。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 7.8pt;
-          margin-bottom: 7.8pt;
-          text-indent: 21pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold">第7条 免责声明</span>
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">当用户接受该协议时,用户应当明确了解并同意:</span>
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">7.1 </span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >您在本平台发表的言论和信息如有涉及侵权、违法的情况,该等言论和信息仅代表您个人行为和个人观点。权利人或受害人有权向本平台举报该等情况,本平台在收到并查实后将配合尽快删除,但并不因此代表本平台将承担权利人或受害人因侵权、违法等行为造成的法律责任。同时,若您该侵权、违法行为给本平台造成财产、名誉等损失的,本平台有权要求您承担全部赔偿责任。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">7.2 </span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >本平台是在现有技术基础上提供的服务,本平台不能随时预见到任何技术上的问题或其他困难。该等困难可能会导致数据损失或其他服务中断。本平台不保证以下事项:</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(1)本平台将符合所有用户的要求;</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(2)本平台不受干扰、能够及时提供、安全可靠或免于出错;</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(3)本服务使用权的取得结果是正确或可靠的。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">7.3 </span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >中国生物对本平台涉及的境内外基础运营商的通信网络的故障、技术缺陷、覆盖范围限制、不可抗力、计算机病毒、黑客攻击、客户所在位置、客户关机或其他非中国生物技术能力范围内的事因等造成的服务中断、用户数据d丢失、出现乱码、错误接收、无法接收、迟延接收不承担责任。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">7.4 </span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >是否经由本平台下载或取得任何资料,由用户自行考虑、衡量并且自负风险,因下载任何资料而导致用户电脑系统的任何损坏或资料流失,用户应负完全责任。希望用户在使用本平台时,小心谨慎并运用常识。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">7.5 </span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >用户经由本平台取得的建议和资讯,无论其形式或表现,绝不构成中国生物对用户通过本平台进行事宜所作出的任何明示或暗示的保证或担保。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">7.6</span><span style="font-weight: bold"> </span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >基于以下原因而造成的利润、商誉、使用、资料损失或其它无形损失,本平台不承担任何直接、间接、附带、特别、衍生性或惩罚性赔偿(即使本平台已被告知该赔偿的可能性):</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(1)本平台的使用或无法使用;</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(2)用户的传输或资料遭到未获授权的存取或变更;</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(3)本平台中任何第三方之声明或行为;</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(4)本平台在任务服务对接中为用户提供成交机会,推荐对接方;</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline">(5)本平台其它相关事宜。</span>
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">7.7 </span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >本平台提供与其它互联网上的平台或资源的链接,用户可能会因此链接至其它运营商经营的平台,但不表示本平台与这些运营商有任何关系。其它运营商经营的平台均由各经营者自行负责,不属于本平台控制及负责范围之内。对于存在或来源于此类平台或资源的任何内容、广告、物品或其它资料,本平台亦不予保证或负责。因使用或依赖任何此类平台或资源发布的或经由此类平台或资源获得的任何内容、物品或服务所产生的任何损害或损失,本平台不负任何直接或间接的责任。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">7.9 </span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >就下列情形的发生,本平台不承担任何法律责任:</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(1)由于您将账号、密码告知他人或与他人共享注册账户,由此导致的任何个人信息的泄漏,或其他非因本平台原因导致的个人信息的泄漏;</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(2)您在申请使用平台服务时因个人资料有任何变动,但未能及时更新,由此导致个人信息不真实而引起的问题及后果;</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(3)本平台根据法律规定、政策要求或行政/司法机关的要求对外提供您的个人信息或交易记录;</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(4)因不可抗力导致的任何后果。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">7.10 </span><span style="font-weight: bold">中国生物</span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >保留判定您的行为是否符合本服务协议要求的权利,如果您违背了本服务协议的规定,</span
-        ><span style="font-weight: bold">中国生物</span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >有权中止或终止本平台服务。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 7.8pt;
-          margin-bottom: 7.8pt;
-          text-indent: 21pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold">第8条 知识产权</span>
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">8.1 </span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >本平台及本平台所使用的任何相关软件、程序、内容,包括但不限于作品、图片、档案、资料、平台构架、平台版面的安排、网页设计、经由本平台向用户呈现的资讯,均由本平台或法定权利人依法享有相应的知识产权,包括但不限于著作权、商标权、专利权或其它专属权利等,受到相关法律的保护。未经本平台或权利人明示授权,用户不得擅自复制、传播、展示、镜像、上传、下载、使用、修改、出租、出借、出售、散布本平台及本平台所使用的上述任何资料和资源,或根据上述资料和资源制作成任何种类产品,或者从事任何其他侵犯知识产权的行为,否则,平台有权追求侵权人的相关法律责任。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">8.2 </span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >本平台授予用户不可转移及非专属的使用权,使用户可以通过单独计算机使用本平</span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >台的目标代码(以下简称“软件”),但用户不得且不得允许任何第三方复制、修改、创作</span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >衍生作品、进行还原工程、反向组译,或以其它方式破译或试图破译源代码,或出售、转</span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >让“软件”或对“软件”进行再授权,或以其它方式移转“软件”之任何权利。用户同意不以任何方式修改“软件”,或使用修改后的“软件”。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style=""
-          >8.3
-          您在使用中国生物服务时利用本平台及服务所发表上传的文字、图片、视频等原创信息的知识产权归您所有。</span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >您在此明确授权:您上传到本平台服务器上的任何内容,您皆授予本平台在世界范围内基于商业或非商业目的,永久的、免费的以复制、翻译、发行、重新编排、节选等方式使用,或采用任何形式再传播或创作改变或衍生作品的权利。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">8.4 </span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >基于对数据的合法加工而获得的具有竞争性的数据权益,除法律法规另有规定外,中国生物享有独立的使用权益而无须获得您的同意。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">8.5 </span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >在未得到著作权人的授权时,您不得将他人的作品全部或部分复制发表到本平台系统。如您上传的内容侵犯了第三方的著作权或其他权利,本平台将不承担任何法律责任,所有后果由您自行承担。如果第三方提出关于著作权的异议,本平台有权根据实际情况删除相关的内容,并有权追究您的法律责任。因您的侵权行为给本平台或任何第三方造成损失的,您应负责全部赔偿责任。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style=""
-          >8.6
-          关于信息内容的投诉或举报。若您在使用平台过程中,不慎受到合法权益的侵犯,您有权通知中国生物采取必要措施进行处置。若您在使用平台过程中,发现存在违法违规或违反本服务相关规则的情况,您也有权向中国生物发起举报,中国生物亦会及时采取必要措施(删除、屏蔽、断开链接或限制使用功能等)进行处置。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">8.7 </span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >内容维权授权。在法律法规允许的范围内,您同意并授权中国生物就侵犯您合法权益的行为(包括但不限于私自复制、使用、编辑、抄袭等行为)采取任何形式的法律行动,包括但不限于投诉、诉讼等必要的维权措施。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">8.8 </span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >用户不得经由非本平台所提供的界面使用本平台。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 7.8pt;
-          margin-bottom: 7.8pt;
-          text-indent: 21pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold">第9条 用户行为规范</span>
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">9.1 </span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >您保证合理地使用本平台服务,并接受本协议和中国生物适时制定并发布的其他政策、规则、公告声明。</span
-        ><span style="font-weight: bold; text-decoration: underline"> </span>
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">9.2 </span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >行为禁止:您可在本协议约定的范围内使用本平台及服务,您不得利用本平台从事以下行为:</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(1)超出授权或恶意使用平台服务;</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(2)利用本平台发表、传送、传播、储存危害国家安全、国家统一、社会稳定的内容,或侮辱诽谤、色情、暴力、引起他人不安及任何违反国家法律法规政策的内容,或者设置含有上述内容的网名、角色名,发布、传送、传播违法广告信息、营销信息及垃圾信息等;</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(3)利用本平台侵害他人知识产权、肖像权、隐私权、名誉权、个人信息等合法权利或权益;</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(4)恶意虚构或协助虚构事实、评价等信息或数据;</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(5)进行任何危害计算机网络安全的行为,包括但不限于:使用未经许可的数据或进入未经许可的服务器/账户;未经允许进入公众计算机网络或者他人计算机系统并删除、修改、增加存储信息;未经许可,企图探查、扫描、测试本“软件”系统或网络的弱点或其它实施破坏网络安全的行为;企图干涉、破坏本“软件”系统或网站的正常运行,故意传播恶意程序或病毒以及其他破坏干扰正常网络信息服务的行为;伪造TCP/IP数据包名称或部分名称;利用本平台及服务上传任何病毒、木马,或者蠕虫等危害网络健康的内容;</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(6)对本平台进行反向工程、反向编译或反向汇编或以其它方式企图发现平台的源代码和算法,未经许可修改、禁用软件的任何功能或创建基于软件的衍生作品。去除本平台或文档上的任何所有权声明或标签,或将其他软件与本平台合并;</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(7)进行任何破坏中国生物提供服务公平性或者其他影响应用正常秩序的行为,如主动或被动刷分、合伙作弊、使用外挂或者其他的作弊软件、利用BUG(又叫“漏洞”或者“缺陷”)来获得不正当的非法利益,或者利用互联网或其他方式将外挂、作弊软件、BUG公之于众;</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(8)从事其他法律法规、政策及公序良俗、社会公德禁止的行为以及侵犯其他个人、公司、社会团体、组织的合法权益的行为。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">9.3 </span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >信息内容规范:为了营造良好网络生态,保障公民、法人和其他组织的合法权益,维护国家安全和公共利益,中国生物将根据法律、行政法规,营造清朗的网络空间,并开展弘扬正能量、处置违法和不良信息等相关活动。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">9.3.1 </span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >您不得制作、复制、发布含有下列内容的违法信息:</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(1)反对中国宪法所确定的基本原则的;</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(2)危害国家安全,泄露国家秘密,颠覆国家政权,破坏国家统一的;</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(3)损害国家荣誉和利益的;</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(4)歪曲、丑化、亵渎、否定英雄烈士事迹和精神,以侮辱、诽谤或者其他方式侵害英雄烈士的姓名、肖像、名誉、荣誉的;</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(5)宣扬恐怖主义、极端主义或者煽动实施恐怖活动、极端主义活动的;</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(6)煽动民族仇恨、民族歧视,破坏民族团结的;</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(7)破坏国家宗教政策,宣扬邪教和封建迷信的;</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(8)散布谣言,扰乱经济秩序和社会秩序的;</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(9)散布淫秽、色情、赌博、暴力、凶杀、恐怖或者教唆犯罪的;</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(10)侮辱或者诽谤他人,侵害他人名誉、隐私和其他合法权益的;</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(11)法律、行政法规禁止的其他内容。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">9.3.2 </span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >中国生物也将依法采取措施,防范和抵制制作、复制、发布含有下列内容的不良信息:</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(1)使用夸张标题,内容与标题严重不符的;</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(2)炒作绯闻、丑闻、劣迹等的;</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(3)不当评述自然灾害、重大事故等灾难的;</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(4)带有性暗示、性挑逗等易使人产生性联想的;</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(5)展现血腥、惊悚、残忍等致人身心不适的;</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(6)煽动人群歧视、地域歧视等的;</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(7)宣扬低俗、庸俗、媚俗内容的;</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(8)可能引发未成年人模仿不安全行为和违反社会公德行为、诱导未成年人不良嗜好等的;</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(9)其他对网络生态造成不良影响的内容。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">9.4 </span
-        ><span style="font-weight: bold; text-decoration: underline">信息内容的使用规范</span>
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >未经中国生物书面许可,您不得自行或授权、允许、协助任何第三人对本平台中信息内容进行如下行为:</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(1)复制、读取、采用本平台的信息内容,用于任何形式的商业用途;</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(2)擅自编辑、整理、编排平台及相关服务的信息内容后在平台及相关服务的源页面</span
-        ><span style="font-weight: bold; text-decoration: underline">以外的渠道进行展示;</span>
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(3)采用不正当方式,自行或协助第三人对本平台及相关服务的信息内容产生流量、</span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >阅读量或交易引导、转移、劫持等不利影响。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 7.8pt;
-          margin-bottom: 7.8pt;
-          text-indent: 21pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold">第10条 个人信息保护与隐私政策</span>
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style=""
-          >10.1
-          尊重用户隐私并保护您的个人信息安全是中国生物的一贯态度,平台将会采取合理的措施保护您的个人信息与隐私。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">10.2 信息使用</span>
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(1)中国生物有权在遵守法律法规的前提下,以明示的方式获取、使用、储存和分享您</span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >的个人信息。中国生物不会在未经您授权时,公开、编辑或透露您的个人信息及您保存在中国生物的非公开内容。您同意并保证:本平台有权依法收集使用您的相关信息。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">(2)本平台不会向任何人出售或出借用户的个人或法人信息,</span
-        ><span style=""
-          >(因业务需要,自然人用户需要通过本平台合作指定的第三方企业进行代缴税款的除外),</span
-        ><span style="">除非事先得到用户得许可;</span>
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(3)本平台亦不允许任何第三方以任何手段收集、编辑、出售或者无偿传播用户的个</span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >人或法人信息。任何用户如从事上述活动,一经发现,本平台有权立即终止与该用户的服务协议,查封其账号。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(4)您同意,中国生物有权通过cookie等技术收集您的使用、行为信息,并在经过数据脱敏使之不再指向、关联到您个人的身份信息时,自由使用脱敏后的纯商业数据。当然,您也可根据自己的偏好删除Cookie,但如果您这么做,则需要在每一次访问中国生物的网站时亲自更改用户设置。目前删除Cookie的一般路径是浏览器:“设置-清除数据”,或者将手机系统还原/清除。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">10.3 信息披露</span>
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >用户的信息将在下述情况下部分或全部被披露:</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(1)经用户同意,向第三方披露;</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(2)根据法律的有关规定,或者行政、司法机关的要求,向第三方或者行政、司法机关披露;</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(3)若用户出现违反中国有关法律或者平台规定的情况,需要向第三方披露;</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(4)为提供您所要求的产品和服务,而必须和第三方分享用户的个人或法人信息(</span
-        ><span style="font-weight: bold; text-decoration: underline">例</span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >如自然人用户需要通过本平台合作指定的第三方企业进行代缴税款的</span
-        ><span style="font-weight: bold; text-decoration: underline">);</span>
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(5)为保护您、本平台的其他用户或本平台的关联方的合法权益,本平台可能将您的</span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >个人信息用于预防、发现、调查以下事项:欺诈、危害安全、违法或违反与本平台或关联方协议、政策或规则的行为;</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(6)在遵循隐私权保护以及其他相应的保密安全措施的前提下,允许本平台将您的个</span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >人信息提供给相关合作方,让其根据本平台指令处理相关信息;</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(7)其它本平台根据法律或者平台规定认为合适的披露。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >若您不同意以上内容,请立即停止使用中国生物平台服务。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >用户或者第三方申请本平台披露其他用户信息的,本平台有权视实际情况要求申请人出具申请书,申请书内容应包含申请披露的信息范围、用途及使用承诺等内容。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">10.4 信息安全</span>
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style=""
-          >(1)中国生物将运用各种安全技术和程序建立完善的管理制度来保护您的个人信息及隐私安全,以免遭受未经授权的访问、使用或披露。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline">(2)</span
-        ><span style=""
-          >如果用户发现自己的个人或法人信息泄密,尤其是用户账户或密码发生泄露,请用户立即联络本平台客服,以便中国生物采取相应措施。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">10.5 </span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >在遵守本协议项下特别约定的个人信息保护与隐私政策外,中国生物希望您认真并完整阅读中国生物特别针对平台而制定并适时发布的《隐私权政策》,这将更有助于保障您的个人信息。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 7.8pt;
-          margin-bottom: 7.8pt;
-          text-indent: 21pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold">第11条 信息推送</span>
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style=""
-          >您同意在接受中国生物提供服务的同时,允许中国生物在遵守法律法规的前提下自行或由第三方向您发送、展示提示信息(包括商业与非商业信息)。如您对发送、推荐的信息不感兴趣,您可以基于中国生物提供的相关技术选项,控制系统向您展示或不展示/减少展示相关类型的信息。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 7.8pt;
-          margin-bottom: 7.8pt;
-          text-indent: 21pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold">第12条 不可抗力</span>
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">12.1</span><span style="font-weight: bold"> </span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >鉴于互联网服务的特殊性,您理解并同意中国生物在因不可抗力或者其他意外事件导致平台及服务障碍不能正常运作、服务中断或延迟等情形下,对您在本平台所遭受的损失(包括但不限于财产、收益、数据资料等方面的损失或其它无形损失)无需承担责任。同时,因不可抗力使得本协议的履行不可能、不必要或者无意义的,任何一方均可单方解除本协议且无需承担违约责任。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style=""
-          >本协议所称之不可抗力意指不能预见、不能避免并不能克服的客观情况,包括但不限于战争、台风、水灾、火灾、雷击或地震、罢工、暴动、法定疾病、停电、计算机病毒、木马、其他恶意程序、黑客攻击、网络病毒、电信部门技术管制、网络运营公司技术调整或故障、系统维护、政府行为或任何其它自然或人为造成的灾难等客观情况。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">12.2 </span
-        ><span style=""
-          >若任何一方由于不可抗力无法履行协议,该方须及时通知另一方以便减轻另一方可能遭受的损失,并应在合理的时间内提供不可抗力的证明。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 7.8pt;
-          margin-bottom: 7.8pt;
-          text-indent: 21pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold">第13条 保密</span>
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >用户保证在使用本平台过程中所获悉的属于本平台、本平台其他用户及其他第三方的无法自公开渠道获得的文件及资料(包括但不限于商业秘密、公司计划、运营活动、财务信息、技术信息、经营信息及其他商业秘密)予以保密</span
-        ><span style="">,保密期限为【</span><span style="font-family: Calibri">3</span
-        ><span style="">】年</span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >。未经该资料和文件的原提供方同意,用户不得向第三方泄露该商业秘密的全部或者部分内容。但法律、法规、行政规章另有规定或者双方另有约定的除外。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 7.8pt;
-          margin-bottom: 7.8pt;
-          text-indent: 21pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold">第14条 违约责任</span>
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">14.1 </span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >如果您在使用本平台服务的过程中违反本协议约定、本平台其他规则、协议,或其他可适用的法律法规、国家政策、合同约定、平台规则或公告的,本平台有权要求您改正或直接采取一切必须要的措施以减轻或消除您的不当行为,并可根据违规情形严重情况要求您承担违约责任,具体措施包括但不限于:</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline">(1)警告;</span>
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline">(2)违规情形的公示;</span>
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(3)修改或屏蔽违规内容,包括但不限于将违规信息移除;</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(4)限制信息发布,限制平台其他功能的使用;</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(5)部分或全部扣除相关费用;</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(6)部分或全部扣除保证金(如有);</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(7)冻结用户账号,中断向您提供本平台服务;</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(8)休眠您的账号,终止向您提供服务,和/或拒绝或限制您再行注册或使用本平台服务;</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >(9)要求您承担损害赔偿责任。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">14.2 </span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >若您的行为给我们造成损失的(包括但不限于直接损失、名誉损失、第三方的罚款、索赔等),我们有权全额向您追偿,如您在本平台中有保证金等财产权益的,我们有权冻结。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">14.3 </span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >本协议终止后,除法律有明确规定外,本平台无义务向您或您指定的第三方披露您账户中的任何信息。本协议终止后,本平台仍享有下列权利:根据法律规定,继续保存您留存于本平台的的各类信息;对于您过往的违约行为,本平台仍可依据本协议向您追究违约责任。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">14.4 </span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >本协议及本平台其他规则、协议项下所述“损失”或“赔偿责任”,均包括但不限于自身损失、向第三方支付的违约金、赔偿金及因实现权利而产生的律师费、取证费、诉讼/仲裁费、</span
-        ><span style="font-weight: bold; text-decoration: underline">财产保全费。</span>
-      </p>
-      <p
-        style="
-          margin-top: 7.8pt;
-          margin-bottom: 7.8pt;
-          text-indent: 21pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold">第15条 交易纠纷解决方式</span>
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style=""
-          >15.1
-          本协议及其规则的有效性、履行和与本协议及其规则效力有关的所有事宜,将受中华人民共和国法律管辖,任何争议仅适用中华人民共和国法律。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style=""
-          >15.2
-          本平台有权受理并调处用户之间因承接服务产生的纠纷。因本平台非司法机关,您完全理解并承认,本平台对证据的鉴别能力及对纠纷的处理能力有限,调节纠纷完全是基于用户委托,不保证处理结果符合用户的期望,本平台有权决定是否参与争议的调处。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style=""
-          >15.3
-          凡因履行本协议及其规则发生的纠纷以及在本平台上接洽服务产生的所有纠纷,各方可协商解决,若协商不成的,</span
-        ><span style=""
-          >双方就本协议所发生的及/或与本协议相关的争议,均提交本平台所在地仲裁委员会调解中心按照其调解规则进行调解。不愿调解或者调解不成时,均提交深圳仲裁委员会依据其现行有效的仲裁规则进行仲裁。【个人信息使用授权书约定的争议解决方式为法院诉,建议两份材料保持一致】</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style=""
-          >15.4
-          用户已知悉并确认:对于因用户使用本平台争议引起的纠纷,仲裁机构可以通过手机短信或电子邮件等现代通讯方式送达法律文书;指定接收法律文书的手机号码或电子邮箱为用户注册时输入的手机号码或电子邮箱;仲裁机构可采取一种或多种送达方式送达法律文书,送达时间以上述送达方式中最先送达的为准;上述送达方式适用于各个仲裁阶段;用户保证送达地址准确、有效,如果提供的地址不确切,或者不及时告知变更后的地址,使法律文书无法送达或未及时送达,自行承担由此可能产生的法律后果。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 7.8pt;
-          margin-bottom: 7.8pt;
-          text-indent: 21pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold">第16条 完整协议</span>
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style=""
-          >16.1
-          本协议由本协议条款与本平台公示的各项规则组成,相关名词可互相引用参照,如有不同理解,以本协议条款为准。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style=""
-          >16.2
-          用户一旦确认对本协议理解和认同,即对本协议所有组成部分的内容理解并认同,一旦用户使用本平台提供的服务,即受本协议所有组成部分的约束。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 7.8pt;
-          margin-bottom: 7.8pt;
-          text-indent: 21pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold">第17条 协议修改及解释</span>
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style=""
-          >17.1
-          本协议内容包括本协议条款及平台不时发布或组织订立的各类协议、平台规则和公告。所有签署内容均为本协议不可分割的组成部分,与本协议正文具有同等法律效力。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">17.2 修改与更新:</span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >中国生物有权根据法律法规变化、维护平台交易秩序、保护用户合法权益的需要,在必要时修改本协议(包括适时制定并发布其他政策、规则、公告声明),当您登陆本平台时会自动弹出变更后的协议,若您同意变更后的内容,请点击“同意”按钮并继续登陆本平台使用平台服务,若您不同意变更后的内容,您将无法使用本平台服务,同时应及时与平台客服取得联系,本平台将根据情况审核确认给予您一定的时限完成您账户下尚未完结的事项,在已有业务全部完结且在本平台项下财务结清后休眠您的账户,但此期间您将无法继续开展新的业务。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 7.8pt;
-          margin-bottom: 7.8pt;
-          text-indent: 21pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold">第18条 通知与送达</span>
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">18.1 </span><span style="font-weight: bold">有效联系方式</span>
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >您在注册成为本平台用户并接受本平台服务时,您应该向本平台提供真实有效的联系方式(包括您的电子邮件地址、联系电话、联系地址等),对于联系方式发生变更的,您有义务及时更新有关信息,并保持可被联系的状态。您在注册本平台用户时生成的用于登陆本平台接收站内信、系统消息的用户账号,也作为您的有效联系方式。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >本平台将向您的上述联系方式的其中之一或其中若干向您送达各类通知,而此类通知的内容可能对您的权利义务产生重大的有利或不利影响,请您务必及时关注。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >您有权通过您注册时填写的手机号码或者电子邮箱获取您感兴趣的商品广告信息、促销优惠等商业性信息;您如果不愿意接收此类信息,您有权通过本平台提供的相应的退订功能进行退订。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">18.2 </span><span style="font-weight: bold">通知与送达</span>
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >本平台通过上述联系方式向您发出通知,其中以电子的方式发出的书面通知,包括但不限于在本平台公告,向您提供的联系电话发送手机短信,向您提供的电子邮件地址发送电子邮件,向您的账号发送系统消息以及站内信息,在发送成功后即视为送达;以纸质载体发出的书面通知,按照提供联系地址交邮后的第五个自然日即视为送达。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >对于在本平台上因交易活动引起的任何纠纷,您同意司法机关(包括但不限于人民法院)可以通过手机短信、电子邮件等现代通讯方式或邮寄方式向您送达法律文书(包括但不限于诉讼文书)。您指定接收法律文书的手机号码、电子邮箱等联系方式为您在平台注册、更新时提供的手机号码、电子邮箱联系方式以及在注册用户时生成的用户账号,司法机关向上述联系方式发出法律文书即视为送达。您指定的邮寄地址为您的法定联系地址或您提供的有效联系地址。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >您同意司法机关可采取以上一种或多种送达方式向您达法律文书,司法机关采取多种方式向您送达法律文书,送达时间以上述送达方式中最先送达的为准。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >您同意上述送达方式适用于各个司法程序阶段。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 0pt;
-          margin-bottom: 0pt;
-          text-indent: 21.2pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold; text-decoration: underline"
-          >你应当保证所提供的联系方式是准确、有效的,并进行实时更新。如果因提供的联系方式不确切,或不及时告知变更后的联系方式,使法律文书无法送达或未及时送达,由您自行承担由此可能产生的法律后果。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 7.8pt;
-          margin-bottom: 7.8pt;
-          text-indent: 21pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold">第19条 附则</span>
-      </p>
-      <p
-        style="
-          margin-top: 7.8pt;
-          margin-bottom: 7.8pt;
-          text-indent: 21pt;
-          text-align: justify;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">19.1 </span
-        ><span style="font-weight: bold; text-decoration: underline"
-          >用户在注册或使用前应认真阅读本协议的全部内容,如对协议有任何疑问,可向中国生物咨询。本协议对注册成功之后的用户产生法律约束力,届时用户不得以未阅读本协议内容或未获得本平台对问题的解答等为由,主张本协议无效或要求撤销本协议。</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 7.8pt;
-          margin-bottom: 7.8pt;
-          text-indent: 21pt;
-          text-align: justify;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">19.2 本协议服务期限自本协议生效之日起至用户账户休眠之日止。</span>
-      </p>
-      <p
-        style="
-          margin-top: 7.8pt;
-          margin-bottom: 7.8pt;
-          text-indent: 21pt;
-          text-align: justify;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">19.3 本协议的最终解释权归中国生物所有。</span>
-      </p>
-      <p
-        style="
-          margin-top: 7.8pt;
-          margin-bottom: 7.8pt;
-          text-indent: 21pt;
-          text-align: justify;
-          line-height: 150%;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="font-weight: bold">第20条 联系中国生物</span>
-      </p>
-      <p
-        style="
-          margin-top: 7.8pt;
-          margin-bottom: 7.8pt;
-          text-indent: 21pt;
-          text-align: justify;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style=""
-          >如果您有任何的疑问、投诉、意见和建议,欢迎您与中国生物沟通反馈。中国生物的联系方式见下:</span
-        >
-      </p>
-      <p
-        style="
-          margin-top: 7.8pt;
-          margin-bottom: 7.8pt;
-          text-indent: 21pt;
-          text-align: justify;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">客服邮箱:yxhg2024@sinopharm.com</span>
-      </p>
-      <p
-        style="
-          margin-top: 7.8pt;
-          margin-bottom: 7.8pt;
-          text-indent: 21pt;
-          text-align: justify;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">联系地址:北京市朝阳区双桥路乙2号院2号楼</span>
-      </p>
-      <p
-        style="
-          margin-top: 7.8pt;
-          margin-bottom: 7.8pt;
-          text-indent: 15.75pt;
-          text-align: justify;
-          widows: 0;
-          orphans: 0;
-          font-size: 10.5pt;
-        "
-      >
-        <span style="">(正文完)</span>
-      </p>
-      <div style="-aw-headerfooter-type: footer-primary">
-        <p style="margin-top: 0pt; margin-bottom: 0pt; widows: 0; orphans: 0; font-size: 9pt">
-          <span style="height: 0pt; display: block; position: absolute; z-index: -65536"></span
-          ><span style="font-family: Calibri">&nbsp;</span>
-        </p>
-      </div>
-    </div>
-  </view>
-</template>
-
-<script>
-export default {
-  name: 'platformUsers'
-}
-</script>
-
-<style lang="scss" scoped>
-p:not(.title) {
-  text-indent: 2em;
-  line-height: 1.5em;
-}
-.underline-bold {
-  text-decoration: underline;
-  font-weight: bold;
-}
-.bold-text {
-  font-weight: bold;
-}
-</style>

+ 0 - 385
src/pages-sub-packages/agreement/privacyPolicy.vue

@@ -1,385 +0,0 @@
-<!--
- * @desc 隐私权政策
--->
-
-<template>
-  <view class="pl20 pr20">
-    <p class="title mt20 bold-text tc">中国生物隐私权政策</p>
-    <p class="bold-text">本版生效日期:【2024】年【10】月【14】日</p>
-    <p class="bold-text">概述</p>
-    <p class="bold-text">
-      中国生物技术股份有限公司及其附属、关联公司(以下称“中国生物”或“我们”)非常注重保护用户(“您”)的个人信息及隐私,我们深知个人信息对您的重要性,并将按照法律法规要求和业界成熟的安全标准,采取相应的安全保护措施来保护您的个人信息。我们将通过本政策向您说明中国生物会如何收集、存储、保护、使用及对外提供您的信息,并说明您享有的权利。其中要点如下:
-    </p>
-    <p class="bold-text">
-      1.为了便于您了解您在使用我们的服务时,我们需要收集的信息类型与用途,我们将结合具体服务向您逐一说明。
-    </p>
-    <p class="bold-text">2.为了向您提供服务所需,我们会按照合法、正当、必要的原则收集您的信息。</p>
-    <p class="bold-text">
-      3.如果为了向您提供服务而需要将您的信息共享至第三方,我们将评估该第三方收集信息的合法性、正当性、必要性。我们将要求第三方对您的信息采取保护措施并且严格遵守相关法律法规与监管要求。另外,我们会按照法律法规及国家标准的要求以确认协议、具体场景下的文案确认、弹窗提示等形式征得您的同意或确认第三方已经征得您的同意。
-    </p>
-    <p class="bold-text">
-      4.如果为了向您提供服务而需要从第三方获取您的信息,我们将要求第三方说明信息来源,并要求第三方保障其提供信息的合法性;如果我们开展业务需进行的个人信息处理活动超出您原本向第三方提供个人信息时的授权范围,我们将征得您的明确同意。
-    </p>
-    <p class="bold-text">
-      5.您可以通过本政策介绍的方式访问和管理您的信息、设置隐私功能、注销中国生物账户或进行投诉举报。
-    </p>
-    <p class="bold-text">您可以根据以下索引阅读相应章节,进一步了解本政策的具体约定:</p>
-    <p class="bold-text">一、我们如何收集和使用您的个人信息</p>
-    <p class="bold-text">二、我们如何使用Cookie、Beacon、Proxy等技术</p>
-    <p class="bold-text">三、我们如何存储和保护信息</p>
-    <p class="bold-text">四、我们如何共享、转让、公开披露您的信息</p>
-    <p class="bold-text">五、您如何管理您的信息</p>
-    <p class="bold-text">六、对第三方责任的声明</p>
-    <p class="bold-text">七、我们如何保护未成年人的信息</p>
-    <p class="bold-text">八、本政策的适用及更新</p>
-    <p class="bold-text">九、本政策中关键词说明</p>
-    <p>
-      <span class="bold-text">中国生物技术股份有限公司</span>
-      (注册地址:北京市朝阳区双桥路乙2号院2号楼;客服邮箱:yxhg2024@sinopharm.com)尊重并保护您的隐私。您使用我们的服务时,我们将按照中国生物隐私权政策(以下简称“本政策”)收集、存储、使用及对外提供您的信息。同时,我们会通过本政策向您说明,我们如何为您提供访问、更新、管理和保护您的信息的服务。
-      <text class="bold-text"
-        >本政策与您使用我们的服务关系紧密,我们建议您仔细阅读并理解本政策全部内容,做出您认为适当的选择。我们努力用通俗易懂、简明扼要的文字表达,并对本政策中与您的权益存在重大关系的条款和个人信息,采用粗体字进行标注以提示您注意。</text
-      >
-    </p>
-    <p>
-      为了遵守国家法律法规及监管规定(例如:进行实名制管理、履行反洗钱职责、安全管理),也为了向您提供服务及提升服务质量,我们需要收集、存储、使用及对外提供您的信息。您同意我们按照本政策约定处理您的信息,以便您享受优质、便捷、个性化的服务,同时更好地保护您的账户安全。
-    </p>
-    <p class="bold-text">一、我们如何收集和使用您的个人信息</p>
-    <p>在您使用我们的产品/服务时,您需要/可以选择授权我们收集和使用个人信息的场景包括:</p>
-    <p>
-      1.为了向您提供我们产品/服务的基本功能,您需要授权我们收集、使用必要信息的情形,如您拒绝提供前述必要信息,您将无法正常使用我们的产品/服务;
-    </p>
-    <p>
-      2.为了向您提供我们产品/服务的拓展功能,您可以选择授权我们收集、使用信息的情形,如您拒绝提供前述信息,您将无法正常使用相关附加功能或无法实现我们拟达到的功能效果,但并不会影响您正常使用我们产品/服务的基本功能。
-    </p>
-    <p>3.以下需要/选择授权场景内容如果有变动,我们将按实际情况进行调整。</p>
-    <p class="bold-text">(一)您需要授权我们收集和使用个人信息的场景</p>
-    <p class="bold-text">
-      我们会遵循正当、合法、必要的原则,出于本政策所述的下列目的收集和使用您的个人信息。
-    </p>
-    <p class="bold-text">1.帮助您成为我们的用户</p>
-    <p>
-      为遵守法律法规的要求,以及向您提供更个性化、更便捷的服务,在您注册成为中国生物用户时,您需要<text
-        class="bold-text"
-        >至少提供手机号码以创建中国生物账号;</text
-      >如果您仅需使用浏览、搜索等功能,您无需注册成为我们的用户以及提供上述信息。在提供账号信息的过程中,如果您愿意额外补充如下个人信息,将有助于我们向您提供更为个性化的服务:包括您的姓名、身份证号、头像、个性签名等。如果您不提供该等信息,不会影响您享受中国生物产品/服务的基本功能。
-    </p>
-    <p class="bold-text">2. 门诊数据收集</p>
-    <p>
-      当您在中国生物小程序(即营销行为管理小助手)上进行门诊数据收集证据链上传时,您需要
-      <text class="bold-text"
-        >提供关联执行包信息、标题、调研类型、调查时间、所属地区、位置打卡、数据情况上传、调研总结等。</text
-      >
-    </p>
-    <p class="bold-text">3.市场信息收集</p>
-    <p>
-      当您在中国生物小程序(即营销行为管理小助手)上进行市场信息收集证据链上传时,您需要
-      <text class="bold-text"
-        >提供关联执行包信息、调研主题、调研对象、信息类型、调研时间、所属地区、调研文件上传、调研总结等。</text
-      >
-    </p>
-    <p class="bold-text">4. 库存数据收集</p>
-    <p>
-      当您在中国生物小程序(即营销行为管理小助手)上进行库存数据收集证据链上传时,您需要
-      <text class="bold-text"
-        >提供关联执行包信息、调查类别、标题、调查对象、库存数量、调研时间、所属地区、位置打卡、库存情况上传、调研总结等。</text
-      >
-    </p>
-    <p class="bold-text">5. 医学警戒信息收集</p>
-    <p>
-      当您在中国生物小程序(即营销行为管理小助手)上进行医学警戒信息收集证据链上传时,您需要
-      <text class="bold-text"
-        >提供关联执行包信息、标题、调查类型、调查时间、所属地区、调查情况上传、调查总结等。</text
-      >
-    </p>
-    <p class="bold-text">6. 问卷信息收集</p>
-    <p>
-      当您在中国生物小程序(即营销行为管理小助手)上进行问卷信息收集证据链上传时,您需要
-      <text class="bold-text"
-        >提供关联执行包信息、问卷标题、调研对象、调查时间、所属地区、位置打卡、调查问卷上传、调查总结等。</text
-      >
-    </p>
-
-    <p class="bold-text">7. 产品相册分享</p>
-    <p>
-      当您在中国生物小程序(即营销行为管理小助手)上进行产品相册分享时,您需要
-      <text class="bold-text">提供关联执行包信息、分享文章的标题、转发时间等。</text
-      >其中,转发分享过程中,中国生物小程序(即营销行为管理小助手)会自动唤起并跳转微信转发界面。中国生物不会获取此界面的微信好友或者微信群信息,也不会获取您转发分享该文章的对象信息。
-    </p>
-
-    <p class="bold-text">8. 学术信息交流</p>
-    <p>
-      当您在中国生物小程序(即营销行为管理小助手)上进行学术文章分享时,您需要
-      <text class="bold-text">提供关联执行包信息、分享文章的标题、转发时间等。</text
-      >其中,转发分享过程中,中国生物小程序(即营销行为管理小助手)会自动唤起并跳转微信转发界面。中国生物不会获取此界面的微信好友或者微信群信息,也不会获取您转发分享该文章的对象信息。
-    </p>
-
-    <p class="bold-text">9. 众包广场</p>
-    <p>
-      您可以通过众包广场查看领取进度,包括审核通过、审核未通过、已终止,全部收回、已终止,剩余收回等。同时,当您领取的某个执行包任务全部完成、上级机构审核通过后,您可以通过“工作台-众包广场-已领取-该执行包-执行包详情-导出报告”导出该执行包对应的报告。
-    </p>
-
-    <p class="bold-text">10. 意见反馈</p>
-    <p>
-      我们<span class="bold-text"
-        >会收集您通过“我的-意见反馈”提交的意见反馈、您与客服团队联系时提供的信息及您参与问卷调查时向我们发送的信息。</span
-      >
-    </p>
-    <p class="bold-text">11. 执行包自动提交审核</p>
-    <span class="bold-text"
-      >当您使用中国生物小程序进行学术拜访服务、门诊数据收集、市场信息收集、库存数据收集、医学警戒信息管理、问卷信息收集、学术会议服务、线上学术会议、健康教育课堂、产品相册分享、学术信息交流等任务时,我们会收集您提交的任务信息,自动汇总到关联执行包,并传给您绑定的上级机构进行审核。</span
-    >同时,执行包任务审核详情在上级机构管理员审核时实时回传给您,您通过按执行包途径,即“接包记录-该执行包-任务列表”,看到各项任务审核情况,或者通过按单个任务“我的-任务完成记录”看到该任务审核情况。
-
-    <p class="bold-text">(二)您可以选择授权我们收集和使用个人信息的场景</p>
-
-    <p>
-      为向您提供个性化的服务,您可以选择使用我们提供的拓展功能,我们会在符合法律规定并根据您具体授权的情况下收集并使用如下信息。这类信息将在您选择的具体功能和业务场景中进行收集,如果您不提供这些信息,不会影响您使用中国生物的基本功能。
-    </p>
-
-    <p class="bold-text">12. 学术会议服务</p>
-    <p>
-      当您在中国生物小程序上进行学术会议服务证据链上传时,
-      <text class="bold-text"
-        >您需要提供关联执行包信息、会议主题、会议时间、会议时长、区县专家人数、会议报告、会议议程、会议签到表、现场照片、会议邀请函、企业批复证明、会议总结。其中,针对会议报告、会议议程、会议签到表、现场照片、会议邀请函、企业批复证明,需要您授权使用拍照功能或者从手机相册选择照片。</text
-      >
-      如果您愿意,可以额外补充如下信息:会议人次、位置打卡(需要您授权在使用小程序期间获取位置信息)、外采费用。
-    </p>
-    <p class="bold-text">13. 线上学术会议</p>
-    <p>
-      当您在中国生物小程序上进行线上学术会议服务证据链上传时,
-      <text class="bold-text"
-        >您需要提供关联执行包信息、会议主题、预约会议编号、会议时间、会议时长、会议人次、会议议程、会议内容、线上会议截图、参会人列表截图、企业批复证明、会议总结。其中,针对会议议程、会议内容、线上会议截图、参会人列表截图、企业批复证明,需要您授权使用拍照功能或者从手机相册选择照片。</text
-      >
-    </p>
-    <p class="bold-text">14. 健康教育课堂</p>
-    <p>
-      当您在中国生物小程序上进行健康教育课堂证据链上传时,
-      <text class="bold-text"
-        >您需要提供关联执行包信息、培训主题、培训时间、主讲人、会议人次、位置打卡、培训总结、培训议程、现场照片、培训内容、培训总结。其中,针对培训总结、培训议程、现场照片、培训内容,需要您授权使用拍照功能或者从手机相册选择照片。</text
-      >
-    </p>
-    <p class="bold-text">15. 学术拜访服务</p>
-    <p>
-      当您在中国生物小程序上进行学术拜访服务证据链上传时,
-      <text class="bold-text">您需要授权在使用小程序期间获取位置信息。</text>
-      进行专业拜访和专项拜访证据链上传时,
-      <text class="bold-text"
-        >您需要提供关联执行包信息、拜访类型、拜访对象、拜访主题、提纲/报告、现场照片、拜访总结。其中,针对提纲/报告、现场照片,需要您授权使用拍照功能或者从手机相册选择照片。</text
-      >
-    </p>
-
-    <p class="bold-text">(三)征得同意的例外</p>
-    <p class="bold-text">请您知悉,以下情形中,我们收集、使用个人信息无需征得您的授权同意:</p>
-    <p>(1)与国家安全、国防安全直接相关的;</p>
-    <p>(2)与公共安全、公共卫生、重大公共利益直接相关的;</p>
-    <p>(3)与犯罪侦查、起诉、审判和判决执行等直接相关的;</p>
-    <p>(4)出于维护您或他人的生命、财产等重大合法权益目的但又很难得到您本人同意的;</p>
-    <p>(5)所收集的个人信息是您自行向社会公众公开的;</p>
-    <p>(6)从合法公开披露的信息中收集个人信息,例如:合法的新闻报道、政府信息公开等渠道;</p>
-    <p>(7)根据您的要求签订和履行合同所必需的;</p>
-    <p>(8)用于维护所提供的服务的安全稳定运行所必需的,例如:发现、处置商品或服务的故障;</p>
-    <p>(9)法律法规规定的其他情形。</p>
-    <p class="bold-text">
-      请注意,单独或与其他信息相结合无法识别您的身份或者与您直接建立联系的信息,不属于个人信息。如果我们将单独无法与任何特定个人建立联系的信息与其他信息结合用于识别自然人个人身份,或者将其与个人信息结合使用,则在结合使用期间,此类信息将被视为个人信息。
-    </p>
-    <p class="bold-text">(四)个人信息的使用规则</p>
-    <p>
-      为满足您的个性化需求,维护、改进我们的产品或服务质量,我们会在符合法律规定并根据您具体授权的情况下使用如下信息:
-    </p>
-    <p class="bold-text">
-      1.
-      我们可能会收集您的任务信息、浏览及转发信息,以及将您在中国生物上使用某项服务中提供的信息与来自其他服务中的信息结合起来,进行综合统计、分析,用来在日常维护过程中对您使用的疑问提出建议方案。包括通过电话进行回访、向您提供信息咨询等服务或邀请您参与服务、产品或功能有关的客户调研。
-    </p>
-    <p>
-      2.
-      我们可能会收集您在参与产品/服务调查时主动向我们提供的信息,以及您与我们的关联方、合作伙伴之间互动时提供的相关信息,以便于您追踪订单情况、发起用户投诉以及我们优化客户服务的质量与流程。
-    </p>
-    <p>
-      3.
-      我们可能将业务中收集的个人信息用于统计分析和改进运营,将已经去标识化无法识别您身份且不能复原的信息用于建立数据库并进行商业化利用。例如为改进我们系统而进行的技术改造、网络维护、故障排除、内部政策与流程制定、生成内部报告等。
-    </p>
-    <p>
-      4.
-      【当我们展示您的个人信息时,我们会采用包括内容替换、匿名处理方式对您的信息进行脱敏展示,以保护您的信息安全。】
-    </p>
-    <p class="bold-text">二、我们如何使用Cookie、Beacon、Proxy等技术</p>
-    <p>
-      为使您获得更轻松的访问体验,您使用中国生物提供的服务时,我们可能会通过小型数据文件识别您的身份,这么做可帮您省去重复输入注册信息的步骤,或者帮助判断您的账户安全状态。这些数据文件可能是Cookie,FlashCookie,您的应用程序提供的其他本地存储(以下简称“Cookie”)。
-      <text class="bold-text">请您理解,我们的某些服务只能通过使用Cookie才可得到实现。</text>
-    </p>
-    <p class="bold-text">
-      我们中国生物系统上还可能包含一些电子图像(以下简称“网络Beacon”),使用网络Beacon可以帮助网站计算浏览网页的用户或访问某些Cookie,我们会通过网络Beacon收集您浏览网页活动的信息(您访问的页面地址、您先前访问的援引页面的位置、您的浏览环境以及显示设定)。
-    </p>
-    <p class="bold-text">
-      如您通过我们的微信小程序,使用了由第三方而非中国生物提供的服务时,为尽力确保您的账号安全,使您获得更安全的访问体验,我们可能会使用专用的网络协议及代理技术(以下简称“Proxy技术”)。使用Proxy技术,可以帮助您识别到我们已知的高风险站点,减少由此引起的钓鱼、账号泄露等风险,同时更有利于保障您和第三方的共同权益,阻止不法分子篡改您和您希望访问的第三方之间正常服务内容,包括:不安全路由器、非法基站等引起的广告注入、非法内容篡改。在此过程中,我们也可能会获得和保存您设备的IP地址、硬件ID以及您访问的页面位置。
-    </p>
-    <p class="bold-text">三、我们如何存储和保护信息</p>
-    <p class="bold-text">(一)存储地点</p>
-    <p>
-      我们在<text class="bold-text">中华人民共和国境内</text
-      >运营中收集和产生的个人信息,将存储在中国境内。<text class="bold-text"
-        >目前我们不存在向境外传输境内收集的相关个人信息的场景。如果将来涉及向境外传输境内收集的相关个人信息,我们将明确向您告知个人信息出境的目的、接收方、安全保障措施等情况,并另行征得您的同意。</text
-      >
-    </p>
-    <p class="bold-text">(二)存储期限</p>
-    <p>
-      我们<text class="bold-text">仅在本政策所述目的所必需期间和法律法规及监管规定的时限内保存</text
-      >您的个人信息。我们判断个人信息的存储期限主要参考以下标准并以其中较长者为准:
-    </p>
-    <p>1. 完成与您相关的交易目的、维护相应交易及业务记录,以应对您可能的查询或投诉;</p>
-    <p>2. 保证我们为您提供服务的安全和质量;</p>
-    <p>3. 您是否同意更长的留存期间;</p>
-    <p>4. 是否存在关于保留期限的其他特别约定或法律法规规定。</p>
-    <p>
-      当前我们存储期限为【5】年,如果相关法律法规长于该存储期限,以相关法律法规规定的期限保存为准。在超出保留期间后,我们会根据适用法律的要求删除您的个人信息,或使其匿名化处理。
-    </p>
-    <p>
-      在您终止使用中国生物服务后,我们会停止对您的信息的收集和使用,法律法规或监管部门另有规定的除外。如我们停止运营,我们将及时停止收集您个人信息的活动,将停止运营的通知以逐一送达或公告的形式通知您,并对所持有的您的个人信息进行删除或匿名化处理。
-    </p>
-    <p class="bold-text">(三)个人信息的保护措施</p>
-    <p>1. 数据安全措施</p>
-    <p>
-      为保障您的信息安全,我们努力采取各种符合业界标准的物理、电子和管理方面的安全措施来保护您的个人信息。中国生物通过信息接触者保密协议、监控机制来对数据进行全面安全控制。防止您的个人信息遭到未经授权访问、公开披露、使用、修改、损坏或丢失。
-    </p>
-    <p>2. 安全事件</p>
-    <p>
-      在不幸发生个人信息安全事件后,我们会立即成立专项应急小组,启动应急预案,防止安全事件扩大,并按照法律法规的要求及时向您告知:安全事件的基本情况和可能的影响、我们已采取或将要采取的处置措施、您可自主防范和降低风险的建议、对您的补救措施等。我们将及时将事件相关情况以邮件、信函、电话、推送通知等方式告知您,难以逐一告知个人信息主体时,我们会采取合理、有效的方式发布公告。同时,我们还将按照监管部门要求,主动上报个人信息安全事件的处置情况。
-    </p>
-    <p class="bold-text">
-      请您知悉并理解,互联网并非绝对安全的环境,您务必妥善保管好您的中国生物登录账号及登录时系统向您发送的验证码。如您发现自己的个人信息泄密,尤其是您的账户或密码发生泄露,请您立即根据本隐私政策中提供的联系方式联络我们,以便我们采取相应措施。
-    </p>
-    <p class="bold-text">四、我们如何共享、转让、公开披露您的信息</p>
-    <p class="bold-text">(一)共享</p>
-    <p>
-      我们承诺对您的信息进行严格保密。除法律法规及监管部门另有规定外,我们仅在以下情形中与第三方共享您的信息,第三方包括合作金融机构、其他合作伙伴。如果为了向您提供服务而需要将您的信息共享至第三方,我们将评估该第三方收集信息的合法性、正当性、必要性。我们将要求第三方对您的信息采取保护措施,并且严格遵守相关法律法规与监管要求。另外,我们会按照法律法规及国家标准的要求以确认协议、具体场景下的文案确认、弹窗提示等形式征得您的同意,或确认第三方已经征得您的同意。
-    </p>
-    <p>
-      1.
-      为了让您完成交易、实现交易目的,我们需要向您的交易相关方提供相关业务证据链信息,同时您的交易相关方可在证据链审核、付款过程中或付款成功后查看您的全部证据链信息以及部分个人信息;
-    </p>
-    <p>
-      2. 某些产品或服务可能由第三方提供或由我们与第三方共同提供,因此,<text class="bold-text"
-        >只有共享您的信息,才能提供您需要的产品或服务;</text
-      >
-    </p>
-    <p class="bold-text">(二)转让</p>
-    <p>我们不会将您的个人信息转让给任何公司、组织和个人,但以下情况除外:</p>
-    <p>1. 在获取明确同意的情况下转让:获得您的明确同意后,我们会向其他方转让您的个人信息;</p>
-    <p>2. 根据法律法规或强制性的行政或司法要求;</p>
-    <p>
-      3.
-      在平台发生合并、收购或破产清算情形,或其他涉及合并、收购或破产清算情形时,如涉及到个人信息接收主体变更,我们会要求新的持有您个人信息的公司、组织继续受本政策的约束,且不变更本政策项下约定的处理目的和处理方式,否则我们将要求该公司、组织重新向您征求授权同意。
-    </p>
-    <p class="bold-text">(三)公开披露</p>
-    <p>
-      我们仅会在以下情况下,且采取符合业界标准的安全防护措施的前提下,才可能公开披露您的个人信息:
-    </p>
-    <p>1. 根据您的需求,在您明确同意的披露方式下披露您所指定的个人信息;</p>
-    <p>
-      2.
-      根据法律、法规的要求、强制性的行政执法或司法要求所必须提供您个人信息的情况下,我们可能会依据所要求的个人信息类型和披露方式公开披露您的个人信息。在符合法律法规的前提下,当我们收到上述披露信息的请求时,我们会要求必须出具与之相应的法律文件,如传票或调查函。
-    </p>
-    <p class="bold-text">(四)共享、转让、公开披露个人信息时事先征得授权同意的例外</p>
-    <p>
-      根据相关法律法规规定,以下情形中,共享、转让、公开披露您的个人信息无需事先征得您的授权同意:
-    </p>
-    <p>1. 与我们履行法律法规规定的义务相关的;</p>
-    <p>2. 与国家安全、国防安全直接相关的;</p>
-    <p>3. 与公共安全、公共卫生、重大公共利益直接相关的;</p>
-    <p>4. 与犯罪侦查、起诉、审判和判决执行等司法或行政执法直接相关的;</p>
-    <p>5. 出于维护您或其他个人的生命、财产等重大合法权益但又很难得到本人同意的;</p>
-    <p>6. 您自行向社会公众公开的个人信息;</p>
-    <p>
-      7. 从合法公开披露的信息中收集个人信息的,如合法的新闻报道、政府信息公开等渠道。
-      根据法律规定,共享、转让、公开披露经去标识化处理的个人信息,且确保数据接收方无法复原并重新识别个人信息主体的,我们对此类数据的处理将无需另行向您通知并征得您的同意。
-    </p>
-    <p class="bold-text">五、您如何管理您的信息</p>
-    <p>您对您的个人信息享有以下权利:</p>
-    <p class="bold-text">(一)您有权访问、更正、删除您的个人信息,法律法规规定的例外情况除外。</p>
-    <p>您可以通过以下方式管理您的信息:</p>
-    <p>
-      账户信息——您可以通过“我的-个人名片”访问个人资料及账号信息。若您已经通过身份认证,您的身份认证信息将无法进行更改,如姓名、身份证号。您的手机号作为您的登录账号,无法进行更改。角色和绑定上级机构(即公司名称)是我们后台按照您或者相关方提供的信息进行后台配置,如若您发现有错误信息,可通过本隐私政策联系方式与我们进行联系,进行纠正处理。
-    </p>
-    <p class="bold-text">(二)改变您授权同意的范围或撤回授权</p>
-    <p>
-      您可以在中国生物小程序通过“右上角胶囊按钮-左边三个点-设置”中开通、关闭位置信息和相册(包含拍照)功能权限。其中,当您不允许我们获取您位置信息后,您将无法使用中国生物小程序中涉及需要使用到定位信息的功能,如无法通过客户拜访进行打卡、无法在进行会议举办任务时位置打卡等。如果您关闭相册功能权限,您将无法使用中国生物小程序中涉及使用相册或拍照的部分功能,如上传会议方案、会议签到表、现场照片等。您如果拒绝前述的授权提供,仅影响部分相关功能,但不影响您正常使用中国生物小程序其他功能。
-    </p>
-    <p class="bold-text">(三)注销账户</p>
-    <p>
-      您有权注销您的中国生物账户,您可以通过“我的-意见反馈”、我们的客服或者根据本隐私政策中提供的联系方式联络我们,帮助您办理注销账户。当您符合账户注销条件并注销中国生物账户后,我们将根据法律法规的要求尽快删除您的个人信息或作匿名化处理,我们将不会再收集、使用或对外提供与该账户相关的个人信息,但您在使用中国生物服务期间提供或产生的信息我们仍需按照前述第三条第二款“存储期限”进行保存,且在该存储期限内依法配合有权机关的查询。
-    </p>
-    <p class="bold-text">(四)响应您的上述请求</p>
-    <p class="bold-text">
-      为保障您的账户安全,您向我们提出上述请求时,我们可能会先要求您验证您的身份(如要求您提供书面请求或其他方式),然后再处理您的请求。
-    </p>
-    <p>
-      对于您向我们提出的上述请求,我们将在15个工作日内做出答复。如您不满意我们的答复,还可以通过本隐私政策中提供的联系方式发起投诉。
-    </p>
-    <p>
-      对于您合理的请求,我们原则上不收取费用,<text class="bold-text"
-        >但对多次重复、超出合理限度的请求,我们将酌情收取一定费用。对于与您的身份不直接关联的信息、无合理理由重复申请的信息,或者需要过多技术手段(例如,需要开发新系统或从根本上改变现行惯例)、给他人合法权益带来风险或者不切实际的请求,我们可能会予以拒绝。</text
-      >
-    </p>
-    <p class="bold-text">在以下情形中,按照法律法规要求,我们将无法响应您的请求:</p>
-    <p class="bold-text">1. 与我们履行法律法规规定的义务相关的;</p>
-    <p class="bold-text">2. 与国家安全、国防安全直接相关的;</p>
-    <p class="bold-text">3. 与公共安全、公共卫生、重大公共利益直接相关的;</p>
-    <p class="bold-text">4. 与刑事犯罪侦查、起诉、审判和执行判决等直接相关的;</p>
-    <p class="bold-text">5. 有充分证据表明个人信息主体存在主观恶意或滥用权利的;</p>
-    <p class="bold-text">
-      6. 出于维护个人信息主体或其他个人的生命、财产等重大合法权益但又很难得到本人授权同意的;
-    </p>
-    <p class="bold-text">7. 响应您的请求将导致您或其他个人、组织的合法权益受到严重损害的;</p>
-    <p class="bold-text">8. 涉及商业秘密的。</p>
-    <p class="bold-text">六、对第三方责任的声明</p>
-
-    <p class="bold-text">
-      请您注意,您的交易相对方、通过中国生物小程序接入的第三方服务和由中国生物处接收您的个人信息的第三方可能有自己的隐私权保护政策;当您查看第三方创建的网页或使用第三方开发的应用程序时,这些第三方可能会放置他们自己的Cookie或网络Beacon,这些Cookie或网络Beacon不受我们的控制,且它们的使用不受本政策的约束。我们会努力去要求这些主体对您的个人信息采取保护措施,建议您与他们联系以获得关于他们的隐私权政策的详细情况。如您发现这些第三方创建的网页或第三方开发的应用程序存在风险时,建议您终止相关操作以保护您的合法权益。
-    </p>
-    <p class="bold-text">七、我们如何保护未成年人的信息</p>
-    <p>我们的中国生物小程序和服务面向成人。</p>
-    <p class="bold-text">八、本政策的适用及更新</p>
-    <p class="bold-text">
-      中国生物所有服务均适用本政策,除非相关服务已有独立的隐私权政策或相应的用户服务协议当中存在特殊约定。
-    </p>
-    <p class="bold-text">发生下列重大变化情形时,我们会适时对本政策进行更新:</p>
-    <p class="bold-text">1. 我们的基本情况发生变化,例如:兼并、收购、重组引起的所有者变更;</p>
-    <p class="bold-text">2. 收集、存储、使用个人信息的范围、目的、规则发生变化;</p>
-    <p class="bold-text">3. 对外提供个人信息的对象、范围、目的发生变化;</p>
-    <p class="bold-text">4. 您访问和管理个人信息的方式发生变化;</p>
-    <p class="bold-text">5. 数据安全能力、信息安全风险发生变化;</p>
-    <p class="bold-text">6. 用户询问、投诉的渠道和机制,以及外部纠纷解决机构及联络方式发生变化;</p>
-    <p class="bold-text">7. 其他可能对您的个人信息权益产生重大影响的变化。</p>
-    <p class="bold-text">
-      由于中国生物的用户较多,如本政策发生更新,我们将以微信小程序推送通知、弹窗提示、发送短消息或者在中国生物官方网站发布公告的方式来通知您。如您在本政策更新生效后继续使用中国生物服务,即表示您已充分阅读、理解并接受更新后的政策并愿意受更新后的政策约束。
-    </p>
-    <p class="bold-text">九、本政策中关键词说明</p>
-    <p class="bold-text">
-      1.
-      个人信息:指以电子或者其他方式记录的能够单独或者与其他信息结合识别特定自然人身份或者反映特定自然人活动情况的各种信息。本隐私政策中可能涉及到的个人信息包括但不限于:个人基本信息(包括姓名、电话号码、生日等);个人身份信息(包括身份证);网络身份标识信息(包括系统账号);个人财产信息(包括银行账号、交易记录以及虚拟财产信息等);个人上网记录(包括网站浏览记录、点击记录等);个人设备信息(包括唯一设备识别码等描述个人常用设备基本情况的信息);个人位置信息(包括行踪轨迹、精准定位信息等)。
-    </p>
-    <p class="bold-text">
-      2.
-      个人敏感信息:是指一旦泄露、非法提供或滥用可能危害人身和财产安全,极易导致个人名誉、身心健康受到损害或歧视性待遇等的个人信息。本隐私政策中可能涉及到的个人敏感信息包括:个人身份认证信息(包括身份证、护照等);个人财产信息(银行账号、交易记录以及虚拟财产信息等);其他信息(行踪轨迹、通讯录信息等);14周岁以下的儿童信息。
-    </p>
-  </view>
-</template>
-
-<script>
-export default {
-  name: 'policy'
-}
-</script>
-
-<style lang="scss" scoped>
-p:not(.title) {
-  text-indent: 2em;
-  line-height: 1.5em;
-}
-.underline-bold {
-  text-decoration: underline;
-  font-weight: bold;
-}
-.bold-text {
-  font-weight: bold;
-}
-</style>

+ 0 - 224
src/pages-sub-packages/agreement/taxhelper.vue

@@ -1,224 +0,0 @@
-<!--
- * @desc 税邦云协议模板(共享经济个体合作协议)
- * @author linyuanjie
- * @date 2022/3/30
--->
-
-<template>
-  <view class="pl20 pr20 pb20">
-    <p class="title mt20 mb20 bold-text tc">共享经济个体合作协议</p>
-    <p>
-      《共享经济个体合作协议》(以下简称“本协议”)为永州市罗数云科技有限责任公司(以下简称“永州罗数云”或“我们”)与您(即本协议项下的个体经营者)签订的合作协议。感谢您选择我们为您提供共享经济综合服务,我们将依托综合实力竭诚为您提供规范、专业的服务。
-    </p>
-    <p class="underline-bold">特别提示:</p>
-    <p class="underline-bold">
-      您是为<text class="yellow-bgc">【】</text
-      >(以下称“企业客户”)提供与您的技能或您从事生产经营活动的经营范围相符服务的个体经营者,向您提供服务前,已默认您已取得提供的生产经营活动所必须的相关资质。我们将按照我们与企业客户签署的《共享经济综合服务协议》及本协议的约定,在您为企业客户提供服务完成后向您结算生产经营收入并代您办理相关涉税事务。
-    </p>
-    <p class="underline-bold">
-      您与企业客户系适用《中华人民共和国民法典》合同编相关法律规定约束的平等主体之间的合作关系,您提供服务前确认您的年龄符合要求(18-75周岁),不是企业客户(含关联方)的法定代表人、股东、董事、监事或其近亲属等,与企业客户及其关联企业之间不存在劳动/劳务合同关系或其他类似的劳动人事法律关系。如您不同意上述规定,请不要勾选同意本协议;一经发现您违反上述规定的,我们有权上报税务机关或/及其他相关国家机关,由税务机关或/及其他相关国家机关根据《中华人民共和国税收征收管理法》及其他相关法律法规的规定追究相关责任主体及您的法律责任。
-    </p>
-    <p class="underline-bold">
-      为维护您的自身权益,在您通过点击勾选同意本协议之前,请务必审慎阅读、充分理解本协议各条款内容。本协议中凡涉及粗体、斜体或下划线标识的条款,您均应重点阅读。阅读过程中,如您不同意本协议的任意内容,请您立即停止任何的申请/注册/签署程序,不要点击勾选同意或以其他方式进行后续操作,并请停止使用我们的服务;当您按照提示填写您的个人信息、阅读并同意本协议且完成全部注册申请确认,点击勾选同意或以其他方式确认本协议,即表示您已充分阅读、理解并同意接受本协议的全部内容。本协议自您点击勾选同意或以其他方式确认本协议时依法成立并生效,对您和我们即具有法律约束力。此后您不得以未阅读/不理解本协议内容或类似言辞做任何形式的抗辩。
-    </p>
-    <p class="underline-bold">
-      我们有权随时根据法律法规、政策、经营需要、业务发展等对本协议条款内容进行修订,或发布新的规则,或在未另行约定情况下,将我们在本合作协议项下的权利与义务转由我们指定的其他关联企业或其他合作伙伴行使与承继,相关变更将在罗格税邦云网站(网址:www.taxhelper.cn/contract-p4)予以公布,我们将不单独向您发出通知,您有责任登录罗格税邦云网站并知悉所有相关变更或通知。如您不同意相关变更,请立即停止使用服务,书面通知我们终止本协议,并同时注销账户信息。任何修订、新规则及提供服务方的变更一经公布即自动生效,成为本协议的一部分。如您继续执行协议,则表示您知悉并接受经修订后的协议。
-    </p>
-    <p>鉴于:</p>
-    <p>
-      我们通过永州市罗数云科技有限责任公司共享经济综合服务平台(以下简称“永州罗数云”)为诸多企业客户提供共享经济综合服务;您系我们为企业客户筛选、匹配的个体经营者,能满足企业客户的商业需求,为企业客户提供服务。您与我们将依据《中华人民共和国民法典》合同编及相关法律法规的规定,本着平等、自愿、诚信的原则,在平等互利的基础上签署本协议。
-    </p>
-    <p class="bold-text">第一条 定义</p>
-    <p>除非本协议中另有定义,下列词语应具有以下特定涵义:</p>
-    <p>
-      <text class="bold-text">1、关联方:</text
-      >指相互间直接或间接持有其中一方的股权/股份总和达到25%或以上的;或者直接或间接同为第三者所拥有或控制股权/股份达到25%或以上的。如果一方通过中间方对另一方间接持有股权/股份,只要其对中间方持股比例达到25%以上,则其对另一方的持股比例按照中间方对另一方的持股比例计算;两个以上具有夫妻、直系血亲、兄弟姐妹以及其他抚养、赡养关系的自然人共同持股同一企业,在判定关联关系时持股比例合并计算。
-    </p>
-    <p>
-      <text class="bold-text">2、个体经营者:</text
-      >指自我雇佣、自我管理、自担成本、自负盈亏并通过永州罗数云从事合法合规生产经营活动的个体。
-    </p>
-    <p>
-      <text class="bold-text">3、生产经营收入(税后):</text
-      >指您为企业客户提供服务并获得生产经营活动而获取的税后收入。
-    </p>
-    <p>
-      <text class="bold-text">4、服务费:</text
-      >指由我们向企业客户提供共享经济综合服务,我们就该等服务向企业客户收取的费用。
-    </p>
-    <p><text class="bold-text">5、身份标识:</text>指能够证明您本人身份的凭证,具体如下:</p>
-    <p>5.1您为中国公民且持有有效《中华人民共和国居民身份证》的,为居民身份证(简称“身份证”);</p>
-    <p>5.2您为华侨且没有居民身份证的,为有效的《中华人民共和国护照》和华侨身份证明;</p>
-    <p>5.3您为港澳居民的,为有效《港澳居民来往内地通行证》或《中华人民共和国港澳居民居住证》;</p>
-    <p>5.4您为台湾居民的,为有效的《台湾居民来往大陆通行证》或《中华人民共和国台湾居民居住证》;</p>
-    <p>
-      5.5您为持有有效《中华人民共和国外国人永久居留身份证》的外籍个人的,为永久居留证和外国护照;未持有永久居留证但持有有效《中华人民共和国外国人工作许可证》的,为工作许可证和外国护照;其他外籍个人,为有效的外国护照。
-    </p>
-    <p><text class="bold-text">6、罗格税邦云系统:</text>一套可以提供信息化服务和支持的系统。</p>
-    <p class="bold-text">第二条 合作内容</p>
-    <p>
-      1、我们依据与企业客户签署的《共享经济综合服务协议》的约定,依托共享经济资源向企业客户筛选并推荐您为企业客户提供相应服务,并按照企业客户业务规则查询、接受服务需求、履行服务过程中的相关义务并享有相关权利等。
-    </p>
-    <p>
-      2、<text class="bold-text"
-        >您委托我们(我们及我们指定的代为办理本款约定的委托事宜的必要方,本款内均作如上指代)代理您办理工商登记/税务登记/临时税务登记、申报纳税、发票(领用、开具、代开)、工商注销、税务注销等相关事宜,同意按照有关税收法律法规、政策规定及管辖主管税务机关的要求由我们代征或受您委托代缴相关税费款项,并同意在为您办理相关事宜时依法向办理事项对应的国家机关(包含但不限于市场监督局、主管税务机关等)出示本协议,您无需另行出具授权委托书。</text
-      >除特别约定外,我们代理申报缴纳您的生产经营所得相关税费时,有权从应付您的合作费用中扣除相关税费总额。
-    </p>
-    <p>
-      3、您应是自我雇佣、自我管理、自担成本、自负盈亏的个体经营者。<text class="bold-text"
-        >我们为使您满足企业客户业务需求而向您提供的服务,不导致我们与您之间构成劳动/劳务关系,我们不承担您任何社保福利待遇,也不承担您的任何医疗保险费用,且我们对您违反法律法规的行为不承担任何法律责任。</text
-      >
-    </p>
-    <p>4、我们服务的对象仅限于从事合法合规生产经营活动的个体。</p>
-    <p class="bold-text">第三条 服务费的结算及支付方式</p>
-    <p>
-      1、根据我们与企业客户签署的《共享经济综合服务协议》的约定,我们有权向企业客户就所提供的共享经济综合服务收取服务费,其中,服务费金额涵盖基于您为企业客户提供服务而取得的生产经营活动的收入。我们收到企业客户支付的服务费后,将依据企业客户提供的您所提供服务的数量、质效标准及考核结果核算您的生产经营收入(税后)并支付予您。<text
-        class="bold-text"
-        >如发生企业客户拖欠服务费情形,我们有权暂缓支付您的生产经营收入(税后),直至企业客户足额支付服务费。您同意为我们向企业客户追讨服务费提供相应之配合及协助。</text
-      >
-    </p>
-    <p>
-      2、<text class="bold-text"
-        >您应自行负担就您取得的生产经营收入需缴纳的各项税款,应我们要求,您应提供与相关税费申报缴纳相关的协助及信息。如果您拒绝提供相关协助或信息,我们有权暂缓支付生产经营收入(税后)。</text
-      >
-    </p>
-    <p class="bold-text">第四条 您的权利与义务</p>
-    <p class="bold-text">
-      1、您保证签署本协议时具有完全民事权利能力和民事行为能力,并满足所有履行本协议所需的法定条件或约定条件,保证为企业客户提供生产经营活动时,遵照其业务规则并自备所需要的设备设施、自行承担必要费用,如因您个人原因造成您自己或任意第三方损害的(包括但不限于人身、财产损害等),由您自行承担全部法律责任。
-    </p>
-    <p class="bold-text">2、您保证为企业客户提供的生产经营活动是以您自己名义进行的。</p>
-    <p>
-      <text class="bold-text"
-        >3、您保证在生产经营活动过程中遵守国家法律法规,不得从事违反法律或行政法规等行为(包括但不限于涉嫌洗钱、偷税、漏税、逃税等)及其他不得使用我们服务的行为(包括但不限于您为企业客户提供活动的特点、性质不符合本协议第二条约定的服务范围的情形),</text
-      >我们/企业客户主管税务机关或/及其他相关国家机关介入调查时,您应当予以协助并如实反映情况,不得阻挠、拒绝调查。
-    </p>
-    <p class="bold-text">4、您充分理解个体经营者的定义,并承诺不存在下列所述情形:</p>
-    <p class="bold-text">4.1与企业客户具有劳动/劳务合同关系或其他类似的劳动人事法律关系;</p>
-    <p class="bold-text">4.2为企业客户的法定代表人、股东、董事、监事;</p>
-    <p class="bold-text">4.3为企业客户的法定代表人、股东、董事、监事的近亲属;</p>
-    <p>4.4年龄不符合要求(应为18-75周岁);</p>
-    <p class="bold-text">4.5 外籍人士(加入中国以外国家的国籍);</p>
-    <p>4.6根据相关法律规定不适用于本协议第二条第3款范围规定的其他人员。</p>
-    <p>
-      <text class="bold-text"
-        >您保证向我们提供的信息均是真实的、有效的、合法的,如信息发生变更(如不再是个体经营者身份)应及时通知我们。</text
-      >您的账户信息以您实名提交至企业客户平台后台或您自行提交的信息为准,且您保证该账户为纳税义务人所有。自我们将应支付的生产经营收入(税后)支付至您的账户之日起,视为您收到前述费用。<text
-        class="bold-text"
-        >如因您提供信息有误等导致付款失败的,由您自行承担相应责任。</text
-      >您承诺您所提供的账户应符合中华人民共和国法律的规定,如果我们收到主管税务机关或/及其他相关国家机关任何调查请求的,您应提供协助并如实反映情况。
-    </p>
-    <p>
-      您保证向同创众盈提供的信息均是真实的、有效的、合法的,如信息发生变更(如不再是个体经营者身份)应及时通知同创众盈。您的账户信息以您实名提交至企业客户平台后台的信息为准,且您保证该账户为纳税义务人所有。自同创众盈将应支付的生产经营收入(税后)支付至您的账户之日起,视为您收到前述费用。如因您提供信息有误等导致付款失败的,由您自行承担相应责任。您承诺您所提供的账户应符合中华人民共和国法律的规定,如果同创众盈收到同创众盈主管税务机关或/及其他相关国家机关任何调查请求的,您应提供协助并如实反映情况。
-    </p>
-    <p class="bold-text">
-      5、您所使用的唯一身份标识仅限本人使用,因您泄露或提供给他人使用该等身份标识而造成的不利后果,由您自行承担。
-    </p>
-    <p class="bold-text">
-      6、您同意我们为实现本协议合作之目的,在为您提供服务的过程中收集使用您的一些必要的个人信息,如姓名、身份证件信息、联系方式、常住地址、银行账户信息、人脸信息及其他因提供的不同类别的生产经营活动履行本协议义务而必要之信息,并依法用于合理用途(如身份验证、客户服务、存档备份、参与调查、数据统计、数据分析或数据加工等处理、业绩展示/宣传等)。除法律法规规定外,未经您的同意,我们将不会擅自披露、改变或以其他方式使用您的个人信息。若您认为我们存在违反前述范围使用该等个人信息的,应立即与我们进行联系,我们将及时核实处理。
-    </p>
-    <p class="bold-text">
-      7、虚构生产经营活动或伪造、变造生产经营活动的相关证明材料将涉嫌构成虚开发票或虚开增值税专用发票的刑事犯罪,可能承担拘役、有期徒刑及罚金的刑事责任。您承诺您从事的生产经营活动是真实的,亦未从事涉嫌违反法律及行政法规的行为(包括但不限于虚开发票、洗钱、逃税、传销、赌博等)。
-    </p>
-    <p class="bold-text">
-      8、销售收入、直播带货收入、财产转让(含股权转让)收入、财产租赁收入、高管薪酬、利息股息红利、依劳动/劳务合同关系取得的收入等不属于本协议定义的生产经营收入范围,您承诺您取得生产经营收入不属于上述范围。
-    </p>
-    <p>9、您确认您提供服务的范围需要获取相关资质的,您已符合条件。</p>
-    <p class="bold-text">第五条 我们的权利与义务</p>
-    <p>
-      1、我们有权根据企业客户的业务需求以及企业客户安排的服务内容,就您提供的生产经营活动制定相应的服务标准细则,您应遵守前述服务标准细则。我们有权敦促您不得违背相关法律法规和前述服务标准细则,但该等敦促为平等主体之间为实现合同目的的敦促,适用《中华人民共和国民法典》合同编等相关法律法规的规定。
-    </p>
-    <p class="bold-text">
-      2、我们在向您支付生产经营收入(税后)时,我们(我们及我们指定的代为办理本款约定的委托事宜的必要方,本款内均作如上指代)代理您办理工商登记/税务登记/临时税务登记、申报缴税、发票(领用、开具、代开)、工商注销、税务注销等相关事宜,并同意按照有关税收法律法规、政策规定及管辖主管税务机关的要求由我们代征或受您委托代缴相关税费款项,并在为您办理相关事宜时依法向主管税务机关出示本协议。
-    </p>
-    <p class="bold-text">
-      3、我们发现您违反本协议第四条第4款之约定的,有权立即终止履行本协议,并向税务机关报告,您应自行承担由此产生的税务相关的处罚责任(包括但不限于根据税务机关的要求补缴相应的税款、滞纳金、罚金等)。
-    </p>
-    <p class="bold-text">
-      4、我们可以为实现本次合作内容从企业客户/您处收集、留存并合法使用您的个人信息,我们(含其股东、董事、监事、高级管理人员及其顾问)承诺对您所披露的个人信息进行保密,未经您授权或基于合法并可执行的法律、法规、法院命令、监管机构的要求或为遵守适用法律法规、履行网络安全保护义务或应对网络安全事件的需要进行披露,或为履行本协议之需要委托给我们的关联企业或者合作伙伴进行处理之外,我们(含其股东、董事、监事、高级管理人员及其顾问)不会将您的个人信息披露给任意第三方。我们承诺按照相关法律法规的要求对您的个人信息履行安全保护义务,保障网络免受干扰、破坏或未经授权的访问,防止网络数据泄露或被窃取、篡改。
-    </p>
-    <p>
-      5、我们因网络服务的特殊性需短时间中断服务对系统进行维护和升级,您理解并认可前述行为不属于我们违约情形。
-    </p>
-    <p>6、如企业客户与您之间另有服务或其他约定安排的,我们就未参与的安排不承担任何义务。</p>
-    <p class="bold-text">
-      7、我们向您提供服务前,已默认您已取得提供的生产经营活动所必须的相关资质,因未取得承接业务所需相应资质的风险由您自行承担。
-    </p>
-    <p class="bold-text">
-      8、我们仅就企业客户之委托事项为您提供共享经济综合服务,非经我们办理的工商登记/税务登记/临时税务登记及相关涉税事项不在我们的服务范围内,发生补税相关风险由您自行承担。
-    </p>
-    <p class="bold-text">
-      9、如我们受两个及以上企业客户委托同时为您提供共享经济综合服务,且您在企业客户处取得的累计生产经营收入经综合汇算后需要补税的,因此产生的补税责任及风险由您自行承担。
-    </p>
-    <p class="bold-text">第六条 违约责任</p>
-    <p>
-      1、除本协议另有约定外,本协议任意一方不履行或不完全履行本协议约定的义务和承诺即构成违约。违约方应当负责赔偿其违约行为给守约方造成的一切经济损失(本协议所称“经济损失”均指包括但不限于守约方遭受的损失以及因此支出的律师费、诉讼费、仲裁费、保全费、诉讼财产保全责任保险费、担保费、执行费、公证费、鉴定费、审计费、评估费、差旅费、复印费等合理费用)。
-    </p>
-    <p class="bold-text">
-      2、因政府行为(包括但不限于因中国政府机关不授予或调整我们相应经营资质或权利)或其他不可抗力因素导致本协议部分条款或全部条款无法履行的,遭受该行为的一方不承担违约责任。
-    </p>
-    <p class="bold-text">
-      3、因企业客户拖欠服务费导致我们暂缓支付您的生产经营收入(税后),将不视为我们的违约行为。
-    </p>
-    <p class="bold-text">第七条 协议效力及保密责任</p>
-    <p>
-      1、本协议任意一方应对本协议所涉及的所有内容以及协议双方在执行本协议过程中相关的法律、商业、合作业务的所有信息进行保密。除经对方允许或基于合法并可执行的法律、法规、法院命令、监管机构的要求或为遵守适用法律法规、履行网络安全保护义务或应对网络安全事件的需要所进行披露,或为履行本协议之需要委托给我们的关联企业或者合作伙伴进行处理之外,均不得向任意第三方披露。我们基于融资/资本运作需要可向投资方及其雇员、顾问披露本协议及与您有关的相关信息,但我们应与该投资方及其雇员、顾问签署保密协议,使该投资方及其雇员、顾问承担与我们相同的保密义务。
-    </p>
-    <p>2、保密期限应为:自协议生效之日起至协议终止后十年。</p>
-    <p class="bold-text">第八条 协议的终止</p>
-    <p>
-      1、自您点击勾选同意或以其他方式确认本协议时依法成立并生效,本协议有效期与我们与企业客户签署的《共享经济综合服务协议》的协议有效期保持一致。
-    </p>
-    <p>2、发生以下情形时,本协议终止并解除:</p>
-    <p class="bold-text">
-      2.1
-      任何一方提前30日书面通知对方要求终止协议的,但您要求终止协议应事先获得企业客户的同意并不得影响企业客户的运营;
-    </p>
-    <p class="bold-text">
-      2.2一方违反协议约定,且违约方在非违约方书面通知后15日内仍未予改正的,非违约方可以书面通知的形式终止本协议;
-    </p>
-    <p class="bold-text">
-      2.3
-      您如未能达到企业客户的要求,我们在工作验收时将给予警告;此后如仍发生类似情况的,我们可提前终止本协议;
-    </p>
-    <p class="bold-text">2.4 我们发现您存在违反第四条任一情形的;</p>
-    <p class="bold-text">
-      2.5
-      企业客户与我们签署的《共享经济综合服务协议》被解除或终止,导致本协议无法继续履行的,本协议自动终止。
-    </p>
-    <p class="bold-text">
-      2.6
-      我们发布新的新规则或变更协议条款后,您不同意相关变更,书面通知我们解除协议,并同时注销账户信息的。
-    </p>
-    <p>3、本协议的提前终止或解除不影响已经产生的权利义务关系。</p>
-    <p class="bold-text">
-      4、您应遵守本协议约定及相关法律法规的规定,我们有权自主判断您的行为是否违约或/及违规。如我们有合理理由或有证据认定您违反本协议或相关法律法规的,有权在不事先通知的情况下,限制、停止或取消您使用我们服务的资格。
-    </p>
-    <p class="bold-text">第八条 协议的终止</p>
-    <p>
-      本协议的订立、执行、解释和争议的解决均应适用中华人民共和国法律。凡因本协议引起的或与本协议有关的任何争议,协议双方应友好协商解决。如不能协商解决,任何一方可提交至北京市海淀区人民法院诉讼解决。
-    </p>
-  </view>
-</template>
-
-<script>
-export default {
-  name: 'taxhelper'
-}
-</script>
-
-<style lang="scss" scoped>
-p:not(.title) {
-  text-indent: 2em;
-  line-height: 1.5em;
-}
-.underline-bold {
-  text-decoration: underline;
-  font-weight: bold;
-}
-.bold-text {
-  font-weight: bold;
-}
-.yellow-bgc {
-  background-color: yellow;
-}
-</style>

+ 0 - 187
src/pages-sub-packages/agreement/xintaizi.vue

@@ -1,187 +0,0 @@
-<!--
- * @desc 薪泰梓
- * @author linyuanjie
- * @date 2022/4/20
--->
-
-<template>
-  <view class="pl20 pr20 pb20">
-    <p class="title mt20 mb20 bold-text tc">河南薪泰梓信息科技有限公司</p>
-    <p class="title mt20 mb20 bold-text tc">与</p>
-    <p class="title mt20 mb20 bold-text tc">自由职业者</p>
-    <p class="title mt20 mb20 bold-text tc">共享经济综合服务协议</p>
-    <p>甲 方:河南薪泰梓信息科技有限公司(以下简称“甲方”)</p>
-    <p>乙 方: (以下简称“乙方”)</p>
-    <p>证件号码:</p>
-    <p>联系电话:</p>
-    <p>联系邮箱:</p>
-    <p>(在本协议下,甲方和乙方统称为“双方”,或各自被称为“各方”或“一方”。)</p>
-    <p><text class="underline-bold">特别提示:</text></p>
-    <p class="underline-bold">
-      针对获得生产经营所得的自由职业者在使用本协议项下甲方(还包括甲方指定的合作方、关联方及其他分支机构,下同)提供的共享经济综合服务时,甲方承诺依法纳税、确保自然纳税人取得税后的合法收入。
-    </p>
-    <p class="underline-bold">
-      军人、公职人员等国家法律法规和纪律规定禁止从事兼职或经商的人员,严禁使用本协议项下甲方提供的共享经济综合服务。
-    </p>
-    <p class="underline-bold">
-      公司雇员等其他与公司具有劳动/劳务合同关系、或其他类似的劳动人事法律关系并从与其有前述关系的公司取得工资薪金所得的人员,严禁使用本协议项下甲方提供的共享经济综合服务;该类人员因从事生产经营而从非与其有前述关系的企、事业单位所取得的生产经营所得,甲方可为其提供本协议项下的共享经济综合服务。
-    </p>
-    <p class="underline-bold">
-      公司法定代表人、股东、董事、监事等从公司取得收入的高管人员,一律严禁使用本协议项下甲方提供的共享经济综合服务;该类人员因从事生产经营而从非与其有前述关系的企、事业单位所取得的生产经营所得,甲方同样不可为其提供本协议项下的共享经济综合服务。
-    </p>
-    <p class="underline-bold">一经发现有上述任一行为的,乙方应自行承担相关法律责任。</p>
-    <p class="underline-bold">
-      上述“公司”特指与乙方建立业务关系并提供相应生产经营活动的公司,乙方与其他公司之间的法律关系不受上述条款约束(公司法定代表人、股东、董事、监事等从公司取得收入的高管人员除外)。
-    </p>
-    <p>
-      依据《中华人民共和国税收征收管理法》及其细则、《中华人民共和国民法典》、《中华人民共和国发票管理办法》、《委托代征管理办法》等相关法律法规的规定,甲乙双方经协商一致,达成协议如下:
-    </p>
-    <p class="bold-text">1、定义</p>
-    <p>
-      1.1.
-      甲方系国内注册成立的科技公司,通过阿拉钉系统平台为自由职业者提供账户搭建与管理、交易管理及撮合、交易合同签订与存证、订单管理与查询、信息咨询及管理等其他现代服务,基于该等经济管理服务及经济业务往来,接受乙方委托,为乙方提供共享经济综合服务。
-    </p>
-    <p>
-      1.2.
-      乙方系具有完全的民事行为能力且具备相应专业技能及许可(如有)的自由职业者,接受甲方(包括甲方指定的合作方、关联方及其他分支机构,下同)提供的共享经济综合服务,与甲方或甲方企业客户之间建立业务关系并提供相应的生产经营活动。乙方承诺作为服务提供者,应遵守国家相关法律法规及行业规范,按照甲方与企业客户的业务具体要求完成服务内容,履行生产经营活动过程中的相关义务并享有相关权利。
-    </p>
-    <p>
-      1.3.阿拉钉系统平台:是由甲方合作方研发及运营维护的一套综合云服务平台,具备电子协议签署、电子数据存证、账户管理、交易管理、订单管理与查询等各项技术服务能力。
-    </p>
-    <p class="bold-text">2、合作内容</p>
-    <p>
-      2.1.乙方应自行负担就其生产经营所得需缴纳的各项税款及行政收费(如有),甲方及甲方指定的合作方、关联方及其他分支机构按照有关税收政策规定及相关主管税务机关的要求,接受乙方委托协助其向主管税务机关缴纳或代征前述税费。
-    </p>
-    <p>
-      2.2.甲方及甲方指定的合作方、关联方及其他分支机构接受乙方委托,通过本协议项下的服务将乙方生产经营所得完税后的金额发放至乙方,并接受乙方委托由甲方或主管税务机关代开增值税普通发票。
-    </p>
-    <p class="bold-text">3、甲方权利义务</p>
-    <p>3.1.甲方有权就乙方提供的生产经营活动制定相应规则及标准,乙方应当遵守。</p>
-    <p>
-      3.2.甲方协助乙方获取生产经营所得时,应当按照有关税收政策规定及主管税务机关授予的代征权限向乙方代征个人所得税等各项税款及行政收费(如有),或协助乙方按照有关税收政策规定及主管税务机关的要求缴纳个人所得税等各项税款及行政收费(如有)。
-    </p>
-    <p>
-      3.3.甲方有权对乙方提供的信息进行验证,但该等验证行为并不意味着甲方对乙方信息的真实性、有效性、合法性、完整性负责,也并不因此减轻或免除乙方的任何义务或责任。
-    </p>
-    <p>
-      3.4.甲方发现乙方违反相关法律法规或本协议规定的,甲方有权中止本协议。乙方应自行承担由此产生的税务相关的处罚责任,包括但不限于根据税务机关的要求补缴相应的税款、滞纳金等。
-    </p>
-    <p>3.5.甲方承诺对乙方所披露的个人隐私信息进行保密。</p>
-    <p>
-      3.6.甲方可以留存为实现本次合作内容从乙方处获取的乙方个人信息。但是,未经乙方授权,甲方不得将乙方个人信息披露给任何第三方。
-    </p>
-    <p>
-      3.7.甲方承诺将按照相关法律法规的要求,对从乙方处获得的乙方个人信息履行安全保护义务,保障网络免受干扰、破坏或未经授权的访问,防止网络数据泄露或被窃取、篡改。
-    </p>
-    <p>3.8.如乙方与其客户之间如有非因本协议产生的争议或纠纷的,与甲方无关,甲方不承担任何责任。</p>
-    <p>
-      3.9.甲方向乙方提供本协议项下服务在任何情况下均不得被理解为与乙方之间建立或存在劳动/劳务合同关系、或其他类似的劳动人事法律关系。
-    </p>
-    <p class="bold-text">4、乙方权利义务</p>
-    <p>
-      4.1.乙方保证提供的个人信息等均是真实的、有效的、合法的、完整的,如信息变更应当及时通知甲方,与此有关的全部法律责任由乙方承担。同时,乙方知悉并确认,当且仅当其通过了甲方系统或甲方合作的第三方系统的实名认证后,方能享有本协议项下的服务。
-    </p>
-    <p>
-      4.2.乙方保证提供各项业务往来信息,包括但不限于业务合作协议、相关补充协议及业务结算单等,均是真实的、有效的、合法的、完整的,如信息变更应当及时通知甲方,与此有关的全部法律责任由乙方承担。
-    </p>
-    <p>
-      4.3.乙方有义务向甲方提供与生产经营所得相对应的收入凭据,并保证其均是真实的、有效的、合法的、完整的,如信息变更应当及时通知甲方,与此有关的全部法律责任由乙方承担。
-    </p>
-    <p>
-      4.4.乙方有义务自行保护账户信息的安全,任何通过乙方账户进行的操作均将被视为乙方的真实意思表示,相应责任均由乙方自行承担。
-    </p>
-    <p>4.5.乙方承诺与其客户之间不具有下列关系:</p>
-    <p>1)与客户具有劳动/劳务合同关系、或其他类似的劳动人事法律关系;</p>
-    <p>2)与客户的关联企业具有劳动/劳务合同关系、或其他类似的劳动人事法律关系;</p>
-    <p>3)为客户及其关联企业或其他企业的法定代表人、董事、监事、股东等高管人员;</p>
-    <p>4)其他不适用于本协议适用范围之规定的人员关系。</p>
-    <p>
-      4.6.乙方发现甲方违反法律、行政法规的规定或者双方的约定收集、使用其个人信息的,有权要求其删除其个人信息;发现甲方收集、存储的其个人信息有错误的,有权要求其予以更正。甲方应当采取措施予以删除或者更正。
-    </p>
-    <p>
-      4.7.乙方保证活动过程中遵守国家法律法规,因乙方个人原因造成其个人或任何第三方损害的责任,由乙方承担全部法律责任。
-    </p>
-    <p>4.8.乙方不得申请代开以下发票:</p>
-    <p>1)凡带有抵扣功能的普通发票;</p>
-    <p>2)非税务部门管理的经营收入。</p>
-    <p>
-      4.9.乙方承诺应当基于真实业务交易向甲方申请代开或委托甲方由税务机关代开相应发票并提供真实、准确、完整的开票信息,否则若乙方违反该承诺造成的相关法律责任及损失由乙方自行承担,若由此造成甲方损失或被相关行政机关处罚的,乙方应当承担赔偿责任。
-    </p>
-    <p>
-      4.10.乙方不得从事违反法律及行政法规等行为,如洗钱、偷税漏税及其他甲方认为不得使用甲方服务的行为等。
-    </p>
-    <p>
-      4.11.乙方确认,其具有完全民事权利能力及完全民事行为能力,所有业务合作均为其真实意愿,且遵守国家法律法规及行业监管要求并满足所有履行本协议所需的法定条件或约定条件。
-    </p>
-    <p>4.12.乙方确认,已知晓其生产经营所得的计算方式及结算周期。</p>
-    <p>
-      4.13.乙方可自行在企业客户处查询生产经营所得的计算方式、结算周期、支付途径等信息,如有异议,可直接与企业客户沟通,甲方可在必要时提供相关协助。
-    </p>
-    <p>
-      4.14.
-      乙方委托授权甲方,根据乙方的委托及主管税务机关规定的或授予的委托代征范围、期限,及税种、税率等,依法代理乙方缴纳相关税费或代征乙方相关税费的事宜,各地主管税务机关的具体规定可能不一致。同时,如遇国家或地方政府及主管税务机关政策变更的,甲方有权根据变更后的政策规定自动调整本协议项下的权利义务乃至终止本协议。
-    </p>
-    <p>
-      4.15.为便利业务的开展,根据实际业务情况,甲方可能会安排一家或多家合作方、关联方及/或分支机构作为实际业务提供方,为乙方提供本协议项下约定的服务,乙方对此知情并完全同意。同时,乙方同意授权并委托甲方为其申请数字证书,并签署所需的相关协议,但该协议应以不加重乙方的合同义务为限。
-    </p>
-    <p>
-      4.16.乙方知悉并同意,经数字证书签署后的电子合同,与乙方以纸质形式进行的签章具有同等法律效力,对乙方具有不可撤销的法律约束力。乙方不得以未签署纸质合同为由、或未实际操作数字证书等理由,否认该等电子合同的法律效力。
-    </p>
-    <p class="bold-text">5、保密条款</p>
-    <p>
-      5.1.本协议任何一方应对本协议所涉及的所有内容以及协议各方在执行本协议过程中相关的一切法律、商业、合作业务的所有资讯进行保密。未经对方允许,均不得向对方以外的任意第三方披露。
-    </p>
-    <p>5.2.保密期应为:协议的有效期内及协议终止之后的十年。</p>
-    <p class="bold-text">6、违约责任</p>
-    <p>
-      任何一方违反本协议约定,即构成该方的违约;除本协议另有规定外,违约方应向守约方承担违约责任,补偿守约方承受或遭致的所有损失、责任、赔偿金或费用(包括但不限于合理的律师费、诉讼费、公证费等)。
-    </p>
-    <p class="bold-text">7、其他</p>
-    <p>
-      7.1.在本协议的任意一方或双方未能及时行使本协议项下的权利不应被视为放弃该权利,也不影响该方在将来行使该权利。
-    </p>
-    <p>
-      7.2.本协议的订立、执行和解释及争议的解决均应适用中国法律。凡因本协议引起的或与本协议有关的任何争议,协议各方应友好协商解决。如不能协商解决,双方一致同意提交至北京仲裁委员会仲裁。
-    </p>
-    <p>
-      7.3.双方同意,在本协议签订后,如另有补充协议,该等补充协议及附件构成本协议不可分割的组成部分,具有同等法律效。
-    </p>
-    <p>
-      7.4.本协议项下各方声明、承诺和保证:本协议任何一方已披露签署和履行本协议所应当向另一方披露的全部信息,且披露内容真实、准确、无遗漏。协议各方同时声明和承诺:本协议的签署和履行不与本协议任何一方已经签署的协议或需承担的任何义务相冲突,且也不会对本协议任何一方以外的第三方形成任何法律和商业上的冲突。
-    </p>
-    <p>
-      7.5.除本协议另有约定外,在履行本协议过程中的一切通知,甲方将通过在阿拉钉系统平台向乙方发送平台消息的方式送达乙方,甲方将通知消息发出之时即视为甲方完成通知义务。
-    </p>
-    <p>
-      7.6.本协议经甲方盖章、乙方签字之日起生效,本协议有效期为壹年。协议到期后如双方均未以书面方式提出异议,则本协议有效期自动顺延壹年。本协议壹式贰份,甲乙双方各执壹份,每份具有同等法律效力。
-    </p>
-    <p>(以下无正文,仅为签署页)</p>
-    <p>甲方(盖章):</p>
-    <p>日期:</p>
-    <p>乙方(签字):</p>
-    <p>日期:</p>
-  </view>
-</template>
-
-<script>
-export default {
-  name: 'xintaizi'
-}
-</script>
-
-<style lang="scss" scoped>
-p:not(.title) {
-  text-indent: 2em;
-  line-height: 1.5em;
-}
-.underline-bold {
-  text-decoration: underline;
-  font-weight: bold;
-}
-.bold-text {
-  font-weight: bold;
-}
-.yellow-bgc {
-  background-color: yellow;
-}
-</style>

+ 0 - 225
src/pages-sub-packages/agreement/zhengqizhixing.vue

@@ -1,225 +0,0 @@
-<!--
- * @desc 安之慧
- * @author linyuanjie
- * @date 2022/9/8
--->
-
-<template>
-  <view class="pl20 pr20 pb20">
-    <p class="title mt20 mb20 bold-text tc">自由职业者灵活用工服务合作协议</p>
-    <p>感谢您与我司即【北京安之慧互联网科技有限公司】签署本《服务协议》(下称“本协议”)。</p>
-    <p>
-      【审慎阅读】为维护您的自身权益,在您点击同意/或书面签署本协议之前,请认真阅读本协议,务必审慎阅读、充分理解各条款内容,特别是权利义务条款、法律适用和管辖条款。上述条款以粗体及下划
-      线标识,您应重点阅读。
-    </p>
-    <p>
-      【签约】当您按照提示填写您的个人信息、阅读并同意本协议且完成全部申请/或书面签署后,即表示您已充分阅读、理解并接受本协议的全部内容,且与我司达成一致意见并成为我司的合作人员,此后您
-      不得以未阅读/不理解本协议内容或类似言辞做任何形式的抗辩。阅读本协议的过程中,如果您不同意本协议或其中任何条款约定,请您立即停止任何的申请/注册/或书面签署程序。
-    </p>
-    <p>
-      【合作关系】您与我司通过本协议建立的是平等主体之间的合作关系,适用《中华人民共和国民法典》
-      和其他民事法律,不适用《劳动合同法》。
-    </p>
-    <p class="bold-text">特别提示:</p>
-    <p class="bold-text">
-      针对获得生产经营所得的灵活用工人员在使用本协议项下甲方提供的灵活用工人员服务时,甲方承诺依法纳税、确保自然人纳税人取得税后的合法收入。
-    </p>
-    <p class="bold-text">
-      军人、公职人员等国家法律法规和政策规定禁止从事兼职或经商的人员,严禁使用本协议项下甲方提供的灵活用工人员服务。
-    </p>
-    <p class="bold-text">
-      公司雇员等其他与公司具有劳动/劳务合同关系、或其他类似的劳动人事法律关系并从与其有前述关
-      系的公司取得工资薪金所得的人员,严禁使用本协议项下甲方提供的灵活用工人员服务;该类人员因从事
-      生产经营而从非与其有前述关系的企、事业单位所取得的生产经营所得,甲方可为其提供本协议项下的灵活用工人员服务。
-    </p>
-    <p class="bold-text">
-      公司法定代表人、股东、董事、监事等其他从所属公司取得收入的人员,一律严禁使用本协议项下甲
-      方提供的灵活用工人员服务;该类人员因从事生产经营而从非与其有前述关系的企、事业单位所取得的生
-      产经营所得,甲方可为其提供本协议项下的灵活用工人员服务。
-    </p>
-    <p class="bold-text">
-      一经发现乙方涉嫌有上述任一行为的,甲方有权终止服务并上报税务机关及其他相关国家机关。税务机关及其他相关国家机关根据《中华人民共和国税收征收管理法》及其他相关法律法规的规定追究责任主体的法律责任。
-    </p>
-    <p class="bold-text">协议条款:</p>
-    <p>
-      根据国家法律有关规定,双方按照平等自愿诚实信用的原则,就我司与您建立灵活用工服务合作关系、
-      由您为我司合作单位提供服务事宜订立本服务合作协议。
-    </p>
-    <p class="bold-text">第一条 服务工作内容</p>
-    <p>
-      1.我司因承接第三方(即我司服务合作单位,后文称为”需方”)的灵活用工服务项目分包合作需
-      要,特选用您提供/完成相关服务,该等服务工作的内容主要为您按照需方及需方的项目发包方要求,提供灵活用工服务。
-    </p>
-    <p>2.您应按照我司的要求及需方的标准完成工作。</p>
-    <p class="bold-text">第二条 协议效力</p>
-    <p>
-      1.您的签约信息(包括您的姓名、身份证号等信息),以您提供的信息为准(包括但不限于线上提供或线下提供)。您承诺并保证您所提供的签约信息真实、准确,以免影响您和我司之间的《自由职业者灵活用工服务合作协议》效力。本协议条款若在我司授权的网站上发布,自您线上点击确认之日起生效。
-    </p>
-    <p>
-      2.本协议有效期限为两年。期限届满,双方应另行签署新的协议;若双方未签署新的协议,而以实
-      际行动继续合作的,视为双方同意协议期限顺延直至按照本协议约定终止或解除时为止。
-    </p>
-    <p>3.本协议在发生下列情形时自然终止:</p>
-    <p>3.1经需方事先同意的情况下,您主动退出服务的;</p>
-    <p>3.2需方终止或变更业务模式而不需要您继续履行本协议的;</p>
-    <p>3.3需方认为您不适合继续提供服务的;</p>
-    <p>3.4我司和需方解除合作的;</p>
-    <p>3.5其他原因导致本协议不再继续履行的。</p>
-    <p>您清楚并了解协议期限届满、协议终止,我司以及需方无需支付您任何补偿。</p>
-    <p class="bold-text">第三条 我司的权利和义务</p>
-    <p>
-      1.您应根据我司的安排为需方提供服务,服务期间您应遵守需方的官方要求及相关政策,需方可根
-      据自身的运营要求制定的具体工作安排,您应予遵守。
-    </p>
-    <p>2.我司将按需方的相关规定对您为需方提供服务的工作成果进行验收。</p>
-    <p>
-      3.我司应按约定及时向您支付费用。此处您应明确:您作为我司向需方输出的合作人员,在需方正
-      常向我司结算情况下,您的相关费用结算将由我司完成支付。
-    </p>
-    <p>
-      4.您同意,您不可撤销地授权我司和合作公司有权为提供前述费用结算服务的需要获取您的相关信息(包括但
-      不限于个人身份信息、实名登记手机号码、银行账户相关信息等),并将您的相关信息提交第三方机构进行
-      身份验证。若您提供任何错误、虚假、失效或不完整的资料,或者我司或合作公司有合理的理由怀疑资料为
-      错误、虚假、过期或不完整,我司或合作公司有权暂停或终止向您提供部分或全部服务,对此我司或合作公
-      司不承担任何责任,您承诺并同意负担因此所产生的所有损失,包括但不限于直接损失、间接损失。若因国
-      家法律法规、部门规章或监管机构的要求,我司或合作公司需要您补充提供任何相关资料时,如您不能及时
-      配合提供,我司或合作公司有权暂停或终止向您提供部分或全部服务。
-    </p>
-    <p class="bold-text">第四条 您的权利和义务</p>
-    <p>
-      1.您应按时尽责地完成我司以及需方要求的工作内容,并达到规定的质量标准,不得有侵犯他人知识产权、财产权、人身权、肖像权、隐私权、商业秘密或其他合法权益以及其他违反国家法律法规、国家
-      政策、或有悖于公序良俗的内容。
-    </p>
-    <p>
-      2.协议期内,您应在我司以及需方许可范围内使用本协议有关的商业信息;协议期内以及协议终止后,您均有义务对双方合作的有关协议及合作过程中知悉的我司、需方的相关信息予以保密,未经书面许
-      可,您不得以任何方式向其它方披露、给予或转让该等保密信息。否则,因此导致我司及/或需方或其关联公司的损失,由您负责赔偿。
-    </p>
-    <p>
-      3.除本协议事项外,您不能以我司及/或需方的名义开展任何与完成约定的工作任务无关的业务或活动。
-    </p>
-    <p>
-      4.本协议项下,您为需方提供灵活用工服务。您可根据需方提供的相关交付要求自由选择相应的物料和工具,但在服务过程中产生的任何费用支出需由您本人承担。
-    </p>
-    <p>
-      5.相关服务通过需方网络平台提供,或者需方相关网络平台备案,需方网络平台可能将要求您签署、
-      点击电子协议,您同意点击签署。您点击确认后该协议将对您产生法律效力。
-    </p>
-    <p>6.您不得发表有损我司以及需方的相关言论,不得从事违反法律法规以及社会道德等的相关行为。</p>
-    <p class="bold-text">第五条 服务报酬的支付</p>
-    <p>
-      1.我司将按照“合作政策与规则”向您支付服务报酬。由于您所提供的服务内容、服务质量、服务时长等情况的不同,该等服务报酬金额可能会呈现浮动,您清楚并了解该等浮动为正常情况。我司以人民
-      币形式向您支付服务报酬,您应缴纳的个人所得税及其他税费由我司负责代扣代缴。
-    </p>
-    <p>
-      2.我司的服务报酬将以银行卡转账/支付宝的方式直接支付到您提交的本人开户的银行卡/支付宝账户中,故您需向我司提供您的身份证信息,收款账户信息,我司将为您的以上信息进行严格的保护,如因
-      您以上信息提供不准确导致的服务报酬支付失败、错误,均由您自行承担。
-    </p>
-    <p>
-      3.因您与我司系就需方相关项目服务开展的服务合作关系,故我司不承担您任何劳保福利待遇,也
-      不负责您的任何医疗保险费用。
-    </p>
-    <p class="bold-text">第六条 违约责任</p>
-    <p>
-      1.双方应按本协议约定履行,如有违反,守约方有权要求对方及时改正;造成对方损失的,守约方
-      有权要求违约方赔偿。
-    </p>
-    <p>
-      2.因不可抗力造成损失的,彼此不负赔偿责任,但发生不可抗力一方应及时将有关情况通知另一方,
-      并尽最大努力进行补救。本协议所称不可抗力是指不能预见、不能克服并不能避免且对一方当事人造成重大影响的客观事件,包括但不限于自然灾害如洪水、地震、火灾和风暴等以及社会事件如战争、动乱、政府行为、黑客事件、大范围电信事故等。
-    </p>
-    <p class="bold-text">第七条 协议的终止</p>
-    <p>1.发生以下情形时,本协议终止:</p>
-    <p>
-      1.1协议期限届满或任何一方提前 30
-      日书面通知对方要求终止协议的,但您要求终止协议应事先获得需方的同意并不得影响需方的运营;
-    </p>
-    <p>
-      1.2一方违反协议约定,且违约方在非违约方书面通知后 15
-      日内仍未予改正的,非违约方可以书面通知的形式终止本协议;
-    </p>
-    <p>
-      1.3您如首次未能达到我司的要求,我司在工作验收时将给予警告;此后如仍发生类似情况的,我司
-      可提前终止本协议。
-    </p>
-    <p>1.4本协议的提前终止不影响已经产生的权利义务关系。</p>
-    <p class="bold-text">第八条 涉税事务委托授权</p>
-    <p>
-      您/本人委托我司即【北京安之慧互联网科技有限公司】代理本协议交易项下的涉税事务,包括帮助代缴税款
-      和开具完税证明。
-    </p>
-    <p>
-      您/本人确认我司即【北京安之慧互联网科技有限公司】根据本协议授权提交的相关申报资料和信息是真实、
-      完整、准确,和符合有关法律法规的。
-    </p>
-    <p class="bold-text">第九条 其他</p>
-    <p>
-      1.因履行本协议发生的纠纷,双方应友好协商解决,协商不成的,提请我司所在地人民法院诉讼解决。
-    </p>
-    <p>2.我司有权根据业务需要修改本协议条款。</p>
-    <p>3.如果法律政策等发生变化的,我司将根据法律法规政策进行调整,您/本人应当予以配合。</p>
-    <p>附件:平台企业对自然人注册会员的代开发票风险提醒模板</p>
-    <p>代开发票温馨提示</p>
-    <p>各注册会员:</p>
-    <p>为防范发票虚开风险,我们在为您提供优质服务的同时,温馨提示如下:</p>
-    <p>一、您对本次提供的开票信息真实性、完整性和准确性承担法律责任。</p>
-    <p>二、虚开发票的定义</p>
-    <p>《中华人民共和国发票管理办法》第二十二条规定: 任何单位和个人不得有下列虚开发票行为:</p>
-    <p>(一)为他人、为自己开具与实际经营业务情况不符的发票;</p>
-    <p>(二)让他人为自己开具与实际经营业务情况不符的发票;</p>
-    <p>(三)介绍他人开具与实际经营业务情况不符的发票。</p>
-    <p>三、虚开发票的后果</p>
-    <p>《中华人民共和国刑法》相关规定:</p>
-    <p>
-      第二百零五条
-      【虚开增值税专用发票、用于骗取出口退税、抵扣税款发票罪】虚开增值税专用发票或者虚开用于骗取出口退税、抵扣税款的其他发票的,处三年以下有期徒刑或者拘役,并处二万元以上二
-      十万元以下罚金;虚开的税款数额较大或者有其他严重情节的,处三年以上十年以下有期徒刑,并处五万
-      元以上五十万元以下罚金;虚开的税款数额巨大或者有其他特别严重情节的,处十年以上有期徒刑或者无
-      期徒刑,并处五万元以上五十万元以下罚金或者没收财产。
-    </p>
-    <p>
-      单位犯本条规定之罪的,对单位判处罚金,并对其直接负责的主管人员和其他直接责任人员,处三年
-      以下有期徒刑或者拘役;虚开的税款数额较大或者有其他严重情节的,处三年以上十年以下有期徒刑;虚
-      开的税款数额巨大或者有其他特别严重情节的,处十年以上有期徒刑或者无期徒刑。
-    </p>
-    <p>
-      虚开增值税专用发票或者虚开用于骗取出口退税、抵扣税款的其他发票,是指有为他人虚开、为自己
-      虚开、让他人为自己虚开、介绍他人虚开行为之一的。
-    </p>
-    <p>
-      第二百零五条之一
-      【虚开发票罪】虚开本法第二百零五条规定以外的其他发票,情节严重的,处二年以下有期徒刑、拘役或者管制,并处罚金;情节特别严重的,处二年以上七年以下有期徒刑,并处罚金。
-    </p>
-    <p>
-      单位犯前款罪的,对单位判处罚金,并对其直接负责的主管人员和其他直接责任人员,依照前款的规
-      定处罚。
-    </p>
-    <p>本人已阅读《代开发票温馨提示》,知悉相关法律规定,愿意承担相关法律责任。</p>
-    <p>甲方:北京安之慧互联网科技有限公司</p>
-    <p>年 月 日</p>
-    <p>乙方:</p>
-    <p>年 月 日</p>
-  </view>
-</template>
-
-<script>
-export default {
-  name: 'zhengqizhixing'
-}
-</script>
-
-<style lang="scss" scoped>
-p:not(.title) {
-  text-indent: 2em;
-  line-height: 1.5em;
-}
-.underline-bold {
-  text-decoration: underline;
-  font-weight: bold;
-}
-.bold-text {
-  font-weight: bold;
-}
-.yellow-bgc {
-  background-color: yellow;
-}
-</style>

+ 0 - 175
src/pages-sub-packages/get-task/component/cardItem.vue

@@ -1,175 +0,0 @@
-<template>
-  <view class="card-item" @click="detailClick">
-    <view class="title">
-      <view class="t-l">
-        <text>
-          {{ props!.item!.scorePackageName
-          }}{{ props!.item!.packageSn ? `(${props!.item!.packageSn})` : '' }}
-        </text>
-        <view class="tags">
-          <uv-tags
-            v-if="props!.item!.packageType1 === '1' || props!.item!.packageType1 === '6'"
-            size="mini"
-            borderColor="rgba(63, 163, 241, .1)"
-            bgColor="rgba(63, 163, 241, .1)"
-            text="积分值"
-            color="#3FA3F1"
-            plain
-          />
-          <uv-tags
-            v-if="props!.item!.packageType1 === '2'"
-            size="mini"
-            borderColor="rgba(76,217,100, .1)"
-            bgColor="rgba(76,217,100, .1)"
-            color="#4cd964"
-            text="任务量"
-            plain
-          />
-          <uv-tags
-            v-if="props!.item!.packageType1 === '3'"
-            size="mini"
-            borderColor="rgba(221,82,77, .1)"
-            bgColor="rgba(221,82,77, .1)"
-            color="#dd524d"
-            text="通用"
-            plain
-          />
-          <uv-tags
-            v-if="props!.item!.packageType1 === '4'"
-            size="mini"
-            borderColor="rgba(221,82,77, .1)"
-            bgColor="rgba(221,82,77, .1)"
-            color="#dd524d"
-            text="特定"
-            plain
-          />
-        </view>
-      </view>
-      <view class="t-r">
-        <view class="btn" v-if="props.type === '1'" @click.stop="getTaskClick">立即领取</view>
-        <view class="status" v-else-if="props.type === '2'">
-          <template v-if="props!.item!.enableType == '0' && props!.item!.status === '0'">
-            <view class="point" :style="{ background: '#eeeeee' }"></view>未领取
-          </template>
-          <template v-if="props!.item!.enableType == '0' && props!.item!.status === '1'">
-            <view class="point" :style="{ background: '#288AFF' }"></view>审核中
-          </template>
-          <template v-if="props!.item!.enableType == '0' && props!.item!.status === '2'">
-            <view class="point" :style="{ background: '#34C939' }"></view>申领审核通过
-          </template>
-          <template v-if="props!.item!.enableType == '0' && props!.item!.status === '3'">
-            <view class="point" :style="{ background: '#DF2E2B' }"></view>审核未通过
-          </template>
-          <template v-if="props!.item!.enableType == '1'">
-            <view class="point" :style="{ background: '#DF2E2B' }"></view>已终止,全部收回
-          </template>
-          <template v-if="props!.item!.enableType == '2'">
-            <view class="point" :style="{ background: '#DF2E2B' }"></view>已终止,剩余收回
-          </template>
-        </view>
-      </view>
-    </view>
-    <view class="content">
-      <view class="info-list">
-        <text>发包企业:{{ props!.item!.packageEntName }}</text>
-      </view>
-      <view class="info-list">
-        <text>需求人数:{{ props!.item!.userGetNum }}/{{ props!.item!.userNum }}</text>
-        <text>预计积分值:{{ props!.item!.score }}分</text>
-        <text v-if="props!.item!.taskNum">任务数:{{ props!.item!.taskNum }}个</text>
-      </view>
-      <view class="info-list">
-        <text>发布时间:{{ formatTime(props!.item!.createTime) }}</text>
-      </view>
-      <view class="info-list">
-        <text>需求描述:{{ props!.item!.description || '无' }}</text>
-      </view>
-    </view>
-  </view>
-</template>
-
-<script setup lang="ts">
-import formatTime from '@/utils/formatTime'
-import { defineEmits } from 'vue'
-
-const emit = defineEmits(['getTaskClick'])
-
-const props = defineProps({
-  item: Object,
-  type: String
-})
-
-const getTaskClick = () => {
-  emit('getTaskClick')
-}
-
-const detailClick = () => {
-  uni.navigateTo({
-    url: `/pages-sub-packages/get-task/detail?id=${props!.item!.id}`
-  })
-}
-</script>
-
-<style lang="scss" scoped>
-.card-item {
-  margin-bottom: 16rpx;
-  padding: 30rpx;
-  box-sizing: border-box;
-  background-color: #fff;
-  width: 690rpx;
-  min-height: 300rpx;
-  .title {
-    display: flex;
-    justify-content: space-between;
-    align-items: center;
-    .t-l {
-      flex: 1;
-      min-height: 56rpx;
-      .tags {
-        display: inline-block;
-        margin-left: 20rpx;
-      }
-    }
-
-    .t-r {
-      .btn {
-        margin-left: 20rpx;
-        width: 160rpx;
-        background: #6eb657;
-        border-radius: 200rpx;
-        text-align: center;
-        line-height: 56rpx;
-        color: #fff;
-        font-size: 28rpx;
-        font-weight: 500;
-      }
-      .status {
-        display: flex;
-        align-items: center;
-        color: #999;
-        font-size: 28rpx;
-        font-weight: 400;
-        .point {
-          line-height: 56rpx;
-          display: inline-block;
-          width: 10rpx;
-          height: 10rpx;
-          border-radius: 100%;
-          margin-right: 10rpx;
-        }
-      }
-    }
-  }
-  .content {
-    .info-list {
-      margin-bottom: 10rpx;
-      text {
-        font-size: 24rpx;
-        color: #999;
-        margin-right: 10rpx;
-        font-weight: 400;
-      }
-    }
-  }
-}
-</style>

+ 0 - 289
src/pages-sub-packages/get-task/detail.vue

@@ -1,289 +0,0 @@
-<template>
-  <view class="task-detail">
-    <view class="detail">
-      <view class="cell-row">
-        <view class="cell-row-box">
-          <text class="cell-title">执行包名称</text>
-          <text class="cell-desc">{{ taskDetail?.packageName }}</text>
-        </view>
-      </view>
-      <view class="cell-row">
-        <view class="cell-row-box">
-          <text class="cell-title">需求人数</text>
-          <text class="cell-desc">{{ taskDetail?.userNum }}</text>
-        </view>
-      </view>
-      <view v-if="taskDetail?.packageType1 === '1'" class="cell-row">
-        <view class="cell-row-box">
-          <text class="cell-title">执行包值</text>
-          <text class="cell-desc">{{ taskDetail?.score }}</text>
-        </view>
-      </view>
-      <view v-else class="cell-row">
-        <view class="cell-row-box">
-          <text class="cell-title">预计积分值</text>
-          <text class="cell-desc">{{ taskDetail?.score }}</text>
-        </view>
-      </view>
-      <view v-if="taskDetail?.packageType1 != '1'" class="cell-row">
-        <view class="cell-row-box">
-          <text class="cell-title">任务个数</text>
-          <text class="cell-desc">{{ taskDetail?.taskNum }}</text>
-        </view>
-      </view>
-      <view class="cell-row">
-        <view class="cell-row-box">
-          <text class="cell-title">起止日期</text>
-          <text class="cell-desc">{{ taskDetail?.termDate }}</text>
-        </view>
-      </view>
-      <view class="cell-row">
-        <view class="cell-row-box">
-          <text class="cell-title">发包企业</text>
-          <text class="cell-desc">{{ taskDetail?.packageEntName }}</text>
-        </view>
-      </view>
-      <view class="cell-row">
-        <view class="cell-row-box">
-          <text class="cell-title">发布日期</text>
-          <text class="cell-desc">{{ taskDetail?.createTime }}</text>
-        </view>
-      </view>
-      <view v-show="taskDetail?.exportFlag === '1'" class="cell-row">
-        <uv-button @click="exportFn()" :customStyle="customBtnStyle">导出报告</uv-button>
-      </view>
-    </view>
-    <view class="rules" v-if="rulesList?.length > 0">
-      <view class="rules-con">
-        <view class="r-title">任务完成情况:</view>
-        <view class="table">
-          <uni-table border stripe emptyText="暂无更多数据">
-            <!-- 表头行 -->
-            <uni-tr>
-              <uni-th align="center">任务大类</uni-th>
-              <uni-th align="center">任务类型</uni-th>
-              <uni-th align="center" width="80">拆解个数</uni-th>
-              <uni-th align="center" width="80">完成个数</uni-th>
-            </uni-tr>
-            <!-- 表格数据行 -->
-            <uni-tr v-for="(item, index) in rulesList" :key="index">
-              <uni-td align="center">{{ item.baseId }}</uni-td>
-              <uni-td align="center">{{ item.taskTypeName }}</uni-td>
-              <uni-td align="center">{{ item.qty }}</uni-td>
-              <uni-td align="center">{{ item.count }}</uni-td>
-            </uni-tr>
-          </uni-table>
-        </view>
-      </view>
-    </view>
-    <view class="btn" v-if="taskDetail?.receiveFlag">
-      <uv-button
-        shape="circle"
-        :disabled="disabled"
-        :text="disabled ? '领取成功' : '领取执行包'"
-        :customStyle="customStyle"
-        @click="getTaskClick"
-      />
-    </view>
-    <!-- 导出 -->
-    <uv-modal ref="exportModal" title="报告导出" showCancelButton>
-      <view class="slot-content email-input">
-        <uv-input placeholder="请输入邮箱" border="surround" w v-model="emailValue" />
-      </view>
-      <template v-slot:confirmButton>
-        <view class="export-btns">
-          <button class="export-btn cancel" @click="exportModalCancel">取消</button>
-          <button class="export-btn confirm" @click="exportModalConfirm">确定</button>
-        </view>
-      </template>
-    </uv-modal>
-  </view>
-</template>
-
-<script setup lang="ts">
-import { onLoad } from '@dcloudio/uni-app'
-import { ref } from 'vue'
-import {
-  receivePackage,
-  getScorePackageInfoById,
-  exportZbInfoFormWeiNewApi,
-  getPkgTaskDetailsApi
-} from '@/service/modules/getTask'
-
-import { validateEmail } from '@/utils/index'
-
-const id = ref()
-onLoad((e) => {
-  id.value = e?.id
-  getDetail()
-  getRules()
-})
-
-const taskDetail = ref()
-
-async function getDetail() {
-  let res = await getScorePackageInfoById(id.value)
-  if (res.code === 0) {
-    taskDetail.value = res.data
-  }
-}
-const rulesList = ref()
-async function getRules() {
-  let res = await getPkgTaskDetailsApi({
-    pkgId: id.value
-  })
-
-  if (res.code === 0) {
-    rulesList.value = res.data
-  }
-}
-const disabled = ref(false)
-// 领取执行包
-async function getTaskClick() {
-  uni.showLoading()
-  const res = await receivePackage(id.value)
-  if (res.code === 0) {
-    uni.hideLoading()
-    uni.showToast({
-      title: '领取成功',
-      icon: 'none'
-    })
-    disabled.value = true
-  }
-}
-
-const customStyle = {
-  background: '#6eb657',
-  color: '#ffffff'
-}
-
-const customBtnStyle = {
-  background: '#3fa3f1',
-  color: '#ffffff',
-  marginBottom: '30rpx'
-}
-
-const exportModal = ref()
-const exportFn = () => {
-  exportModal.value.open()
-}
-
-const emailValue = ref('')
-const exportModalCancel = () => {
-  emailValue.value = ''
-  exportModal.value.close()
-}
-const exportModalConfirm = async () => {
-  if (!validateEmail(emailValue.value)) {
-    return uni.showToast({
-      title: '请输入正确的邮箱',
-      icon: 'none',
-      duration: 1200
-    })
-  }
-  if (id.value) {
-    const res = await exportZbInfoFormWeiNewApi({
-      id: id.value,
-      email: emailValue.value
-    })
-    if (res.code === 1) {
-      uni.showToast({
-        title: res.msg || '导出失败,请联系管理员',
-        icon: 'none'
-      })
-    }
-    if (res.code === 0) {
-      uni.showToast({
-        title: '报告将发送至您的邮箱,请注意查收',
-        icon: 'none'
-      })
-    }
-    exportModalCancel()
-  }
-}
-</script>
-
-<style lang="scss" scoped>
-.task-detail {
-  background: #f2f2f2;
-  .detail {
-    .cell-row {
-      background: #ffffff;
-      padding: 0 56rpx 0 66rpx;
-      .cell-row-box {
-        border-bottom: 1rpx solid #e2e2e2;
-        position: relative;
-        display: flex;
-        align-items: center;
-        justify-content: space-between;
-        padding: 32rpx 0;
-        &::before {
-          content: '*';
-          position: absolute;
-          left: -15px;
-          font-size: 14px;
-          color: #fa3534;
-          height: 9px;
-          line-height: 1;
-        }
-        .cell-title {
-          font-size: 30rpx;
-        }
-        .cell-desc {
-          font-size: 30rpx;
-          color: #898989;
-        }
-      }
-      &:last-child {
-        .cell-row-box {
-          border-bottom: none;
-        }
-      }
-    }
-  }
-  .rules {
-    padding-bottom: 150rpx;
-    margin-top: 20rpx;
-    background: #ffffff;
-    .rules-con {
-      .r-title {
-        padding: 22rpx 60rpx;
-        margin-bottom: 10rpx;
-      }
-      .table {
-        padding: 0 20rpx;
-      }
-    }
-  }
-  .btn {
-    box-shadow: 0px 0px 8rpx 0px rgba(193, 193, 193, 0.5);
-    padding: 28rpx 16rpx;
-    background: #ffffff;
-    position: fixed;
-    bottom: 0;
-    left: 0;
-    right: 0;
-    z-index: 10;
-  }
-}
-.email-input {
-  width: 100%;
-}
-
-.export-btns {
-  display: flex;
-  justify-content: space-between;
-
-  .export-btn {
-    border: none;
-    background: none;
-    font-size: 32rpx;
-  }
-  .cancel {
-    color: #666;
-  }
-  .confirm {
-    color: #6eb657;
-  }
-}
-</style>

+ 0 - 270
src/pages-sub-packages/get-task/index.vue

@@ -1,270 +0,0 @@
-<template>
-  <view class="get-list">
-    <view class="header">
-      <view class="search">
-        <uv-input
-          placeholder="请输入内容"
-          clearable
-          border="surround"
-          prefixIcon="search"
-          prefixIconStyle="font-size: 32px;color: #909399"
-          shape="circle"
-          @input="searchValChange"
-          :customStyle="customStyle"
-          v-model="params.packageName"
-        />
-      </view>
-      <view class="tabs">
-        <view class="tab-l">
-          <view class="tabs-item" @click="tabClick(1)">
-            <text :class="params.selType === 1 ? 'active-tab' : ''">可领取({{ allTotal }})</text>
-          </view>
-          <view class="tabs-item" @click="tabClick(2)">
-            <text :class="params.selType === 2 ? 'active-tab' : ''">已领取</text>
-          </view>
-        </view>
-        <view class="tab-r">
-          <view class="date" v-if="!dateStr.year || !dateStr.month" @click="showDatePicker">
-            <text>日期</text>
-            <uv-icon name="arrow-down-fill" color="#333" />
-          </view>
-          <view class="date" v-else>
-            <text @click="showDatePicker">{{ dateStr.year + '年' + dateStr.month + '月' }}</text>
-            <uv-icon name="close-circle" color="#333" @click="clearDate" />
-          </view>
-        </view>
-      </view>
-    </view>
-    <view class="content" v-if="params.total != 0">
-      <view v-show="params.selType === 1">
-        <cardItem
-          v-for="item in dataList"
-          :key="item.id"
-          :item="item"
-          type="1"
-          @getTaskClick="getTaskClick(item)"
-        />
-      </view>
-      <view v-show="params.selType === 2">
-        <cardItem v-for="item in dataList" :key="item.id" :item="item" type="2" />
-      </view>
-    </view>
-    <noData v-else />
-    <!-- 日期选择 -->
-    <uv-datetime-picker
-      ref="datetimePicker"
-      v-model="dateValue"
-      mode="year-month"
-      @confirm="dateConfirm"
-    />
-  </view>
-</template>
-
-<script setup lang="ts">
-import dayjs from 'dayjs'
-import { ref, reactive } from 'vue'
-import { onReachBottom, onShow } from '@dcloudio/uni-app'
-import { getPackageList, receivePackage } from '@/service/modules/getTask'
-import cardItem from './component/cardItem.vue'
-import noData from '@/components/noData/index.vue'
-import { debounce } from '@/utils/index'
-
-class Params {
-  total = -1
-  current = 1
-  size = 20
-  selType = 1
-  selDate = ''
-  packageName = ''
-}
-const params = ref(new Params())
-
-const resetParams = () => {
-  params.value = new Params()
-}
-const dataList = ref<any[]>([])
-
-const allTotal = ref(0)
-
-async function getList() {
-  uni.showLoading({
-    title: '加载中...'
-  })
-  let res = await getPackageList(params.value)
-  if (res.data) {
-    params.value.total = res.data.total
-    dataList.value = dataList.value.concat(res.data.records)
-    // 当获取的是可领取的包
-    if (params.value.selType === 1) {
-      allTotal.value = res.data.total
-    }
-  }
-  uni.hideLoading()
-}
-
-onShow(() => {
-  dataList.value = []
-  getList()
-})
-
-const customStyle = {
-  background: '#f6f6f6',
-  border: 'none',
-  height: '60rpx'
-}
-
-// tab切换
-const tabClick = (act: number) => {
-  if (params.value.selType === act) return
-  resetParams()
-  dataList.value = []
-  params.value.selType = act
-  getList()
-}
-
-// 日期选择
-const datetimePicker = ref()
-const dateValue = ref(Number(new Date()))
-const showDatePicker = () => datetimePicker.value.open()
-
-const dateStr = reactive({
-  year: '',
-  month: ''
-})
-
-const clearDate = () => {
-  dateStr.year = ''
-  dateStr.month = ''
-  dateValue.value = Number(new Date())
-  params.value.selDate = ''
-  params.value.current = 1
-  dataList.value = []
-  getList()
-}
-const dateConfirm = (e: any) => {
-  const date = dayjs(e.value).format('YYYY-MM')
-  params.value.selDate = date
-  let arr = date.split('-')
-  dateStr.year = arr[0]
-  dateStr.month = arr[1]
-  params.value.current = 1
-  dataList.value = []
-  getList()
-}
-
-const searchValChange = debounce(() => {
-  params.value.current = 1
-  dataList.value = []
-  getList()
-})
-
-// 底部
-onReachBottom(() => {
-  if (dataList.value.length === params.value.total) return
-  params.value.current++
-  getList()
-})
-
-// 领取执行包
-async function getTaskClick(item: any) {
-  const res = await receivePackage(item.id)
-  if (res.code === 0) {
-    uni.showToast({
-      title: '领取成功',
-      icon: 'none',
-      duration: 1000
-    })
-    setTimeout(() => {
-      params.value.current = 1
-      dataList.value = []
-      getList()
-    }, 1000)
-  }
-}
-</script>
-
-<style lang="scss" scoped>
-.get-list {
-  min-height: 96vh;
-  background-color: #fafafa;
-  padding: 0 30rpx;
-
-  .header {
-    position: fixed;
-    top: 0;
-    left: 0;
-    right: 0;
-    z-index: 999;
-    background-color: #fff;
-
-    .search {
-      padding: 0 30rpx;
-    }
-
-    .tabs {
-      margin-top: 8rpx;
-      height: 80rpx;
-      display: flex;
-      justify-content: space-between;
-      align-items: center;
-
-      .tab-l {
-        flex: 1;
-        display: flex;
-        justify-content: space-between;
-
-        .tabs-item {
-          flex: 1;
-          text-align: center;
-          color: #666;
-          font-size: 28rpx;
-          font-weight: 400;
-          text {
-            display: inline-block;
-            &.active-tab {
-              color: #333;
-              font-weight: 600;
-              position: relative;
-              &::after {
-                content: '';
-                display: block;
-                position: absolute;
-                width: 50%;
-                height: 6rpx;
-                background-color: #6eb657;
-                left: 50%;
-                top: 50rpx;
-                transform: translateX(-50%);
-              }
-            }
-          }
-        }
-      }
-      .tab-r {
-        width: 240rpx;
-        height: 40rpx;
-        border-left: 2rpx solid #ebebeb;
-        display: flex;
-        align-items: center;
-        justify-content: center;
-
-        .date {
-          display: flex;
-          justify-content: center;
-          align-items: center;
-          text {
-            margin-right: 10rpx;
-            font-size: 28rpx;
-            font-weight: 400;
-          }
-        }
-      }
-    }
-  }
-
-  .content {
-    margin-top: 180rpx;
-    padding-top: 24rpx;
-  }
-}
-</style>

+ 0 - 568
src/pages-sub-packages/task-history/index.vue

@@ -1,568 +0,0 @@
-<template>
-  <view class="get-list">
-    <!-- 顶部tab -->
-    <view class="header">
-      <view class="tabs">
-        <view class="tab-l">
-          <view class="tabs-item" @click="tabClick(1)">
-            <text :class="params.activeId === 1 ? 'active-tab' : ''">全部</text>
-          </view>
-          <view class="tabs-item" @click="tabClick(2)">
-            <text :class="params.activeId === 2 ? 'active-tab' : ''">进行中</text>
-          </view>
-          <view class="tabs-item" @click="tabClick(3)">
-            <text :class="params.activeId === 3 ? 'active-tab' : ''">审批中</text>
-          </view>
-          <view class="tabs-item" @click="tabClick(4)">
-            <text :class="params.activeId === 4 ? 'active-tab' : ''">已完成</text>
-          </view>
-        </view>
-        <view class="tab-r">
-          <view class="date" v-if="!dateStr.year || !dateStr.month" @click="showDatePicker">
-            <text>日期</text>
-            <uv-icon name="arrow-down-fill" color="#333" />
-          </view>
-          <view class="date" v-else>
-            <text @click="showDatePicker">{{ dateStr.year + '年' + dateStr.month + '月' }}</text>
-            <uv-icon name="close-circle" color="#333" @click="clearDate" />
-          </view>
-        </view>
-      </view>
-    </view>
-    <view class="content" v-if="params.total != 0">
-      <view class="notice">
-        <uv-notice-bar
-          text="任务包即将完成,请不要做积分较高的任务,避免浪费"
-          bgColor="#6eb657"
-          color="#fff"
-        />
-      </view>
-      <!-- 列表 -->
-      <view class="task-content">
-        <view class="task-list">
-          <view
-            v-for="item in dataList"
-            :key="item.statusId"
-            @click="getDetail(item)"
-            class="task-item"
-            :class="{ disable: item.taskAddFlag === '0' }"
-          >
-            <view class="task-top">
-              <view class="top-l">
-                <text class="name">{{ item.scorePackageName }}</text>
-                <view class="tag">
-                  <template v-if="item.taskAddFlag === '0'">
-                    <view class="gry">{{ getText(item.packageType1) }}</view>
-                  </template>
-                  <template v-else>
-                    <view
-                      v-if="item.packageType1 === '1' || item.packageType1 === '6'"
-                      class="main"
-                      >{{ getText(item.packageType1) }}</view
-                    >
-                    <view v-if="item.packageType1 === '2'" class="green">{{
-                      getText(item.packageType1)
-                    }}</view>
-                    <view v-if="item.packageType1 === '3'" class="main">{{
-                      getText(item.packageType1)
-                    }}</view>
-                    <view v-if="item.packageType1 === '4'" class="yellow">{{
-                      getText(item.packageType1)
-                    }}</view>
-                  </template>
-                </view>
-              </view>
-              <view class="top-r">
-                <view class="point"></view>
-                <template v-if="item.enableType == '0'">
-                  <template v-if="item.settleNoteStatus == '1'">
-                    <view class="is-settle">
-                      <view class="settle-text">已结算</view>
-                      <view>{{ item.notifyTime }}</view>
-                    </view>
-                  </template>
-                  <template v-else>
-                    <text v-if="item.status === '1'">审核中</text>
-                    <text v-if="item.status === '2'">申领审核通过</text>
-                    <text v-if="item.status === '3'">审核不通过</text>
-                  </template>
-                </template>
-                <text v-else-if="item.enableType == '1'">已终止,全部收回</text>
-                <text v-else-if="item.enableType == '2'">已终止,剩余收回</text>
-                <text v-else>进行中</text>
-              </view>
-            </view>
-            <view class="task-list-content">
-              <view class="task-info">
-                <text>发包方:{{ item.packageEntName }}</text>
-              </view>
-              <view class="task-info">
-                <text>发包时间:{{ formatTime(item.createTime) }}</text>
-                <text>接包时间:{{ formatTime(item.receiveTime) }}</text>
-              </view>
-              <view class="progress">
-                <uv-line-progress
-                  class="pro-one"
-                  v-if="item.taskAddFlag === '0'"
-                  round
-                  :percentage="100"
-                  activeColor="#999"
-                  inactiveColor="#f8f8f0"
-                ></uv-line-progress>
-                <uv-line-progress
-                  class="pro-two"
-                  v-else
-                  round
-                  :percentage="item.speedProgress"
-                  activeColor="#6eb657"
-                  inactiveColor="#f8f8f0"
-                ></uv-line-progress>
-                <view class="progress-info">
-                  <text
-                    v-if="item.packageType1 === '1' || item.packageType1 === '6'"
-                    class="pro-txt"
-                    :class="{ 'disable-text': item.taskAddFlag === '0' }"
-                  >
-                    {{ item.finishScore }}/{{ item.score }}
-                  </text>
-                  <text
-                    v-else
-                    class="pro-txt"
-                    :class="{ 'disable-text': item.taskAddFlag === '0' }"
-                  >
-                    {{ item.taskAddFlag === '1' ? item.taskFinishNum : item.taskNum2 }}/{{
-                      item.taskNum2
-                    }}
-                  </text>
-                </view>
-              </view>
-              <view class="btns" v-if="showBtn(item)">
-                <view class="btn" @click.stop.self="toQuizDetail(item)"><text>去答题</text></view>
-              </view>
-            </view>
-          </view>
-        </view>
-      </view>
-    </view>
-    <!-- 无数据展示 -->
-    <noData v-else />
-    <!-- 日期选择 -->
-    <uv-datetime-picker
-      ref="datetimePicker"
-      v-model="dateValue"
-      mode="year-month"
-      @confirm="dateConfirm"
-    ></uv-datetime-picker>
-  </view>
-</template>
-
-<script setup lang="ts">
-import dayjs from 'dayjs'
-import { ref, reactive } from 'vue'
-import { onReachBottom, onLoad, onShow } from '@dcloudio/uni-app'
-import { getPackageList } from '@/service/modules/getTask'
-import noData from '@/components/noData/index.vue'
-import { getQuizPltTextResultGroupingApi } from '@/service/modules/quiz'
-
-class Params {
-  total = -1
-  current = 1
-  size = 20
-  selType = 2
-  selDate = ''
-  packageName = ''
-  activeId = 1
-}
-const params = ref(new Params())
-
-const resetParams = () => {
-  params.value = new Params()
-}
-const dataList = ref<any[]>([])
-
-async function getList() {
-  uni.showLoading({
-    title: '加载中...'
-  })
-  let res = await getPackageList(params.value)
-
-  if (res.data) {
-    uni.hideLoading()
-    params.value.total = res.data.total
-    dataList.value = dataList.value.concat(res.data.records)
-  }
-}
-
-const type = ref()
-onLoad((e) => {
-  if (e?.activeId) {
-    params.value.activeId = Number(e?.activeId)
-  }
-  type.value = e?.type
-
-  dataList.value = []
-  getQuizPltTextResultGroupingFn()
-  getList()
-})
-
-const passList = ref<number[]>([])
-const getQuizPltTextResultGroupingFn = async () => {
-  const res = await getQuizPltTextResultGroupingApi()
-  passList.value = res.data?.passed
-}
-
-const showBtn = (item: any) => {
-  const pkgQuizIds = item?.quizIds || []
-  let flag = pkgQuizIds.every((iten: number) => {
-    return passList.value?.includes(iten)
-  })
-  return !flag
-}
-
-const toQuizDetail = (item: any) => {
-  const pkgQuizIds = item?.quizIds || []
-  if (pkgQuizIds[0]) {
-    uni.navigateTo({
-      url: `/pages-sub-mine/quizDetail/index?id=${pkgQuizIds[0]}`
-    })
-  }
-}
-
-// tab切换
-const tabClick = (act: number) => {
-  if (params.value.activeId === act) return
-  resetParams()
-  dataList.value = []
-  params.value.activeId = act
-  getList()
-}
-
-// 日期选择
-const datetimePicker = ref()
-const dateValue = ref(Number(new Date()))
-const showDatePicker = () => datetimePicker.value.open()
-const dateStr = reactive({
-  year: '',
-  month: ''
-})
-const clearDate = () => {
-  dateStr.year = ''
-  dateStr.month = ''
-  dateValue.value = Number(new Date())
-  params.value.selDate = ''
-  params.value.current = 1
-  dataList.value = []
-  getList()
-}
-const dateConfirm = (e: any) => {
-  const date = dayjs(e.value).format('YYYY-MM')
-  params.value.selDate = date
-  let arr = date.split('-')
-  dateStr.year = arr[0]
-  dateStr.month = arr[1]
-  params.value.current = 1
-  dataList.value = []
-  getList()
-}
-
-// 底部
-onReachBottom(() => {
-  if (dataList.value.length === params.value.total) return
-  params.value.current++
-  getList()
-})
-
-function getDetail(item: any) {
-  if (type.value !== '1') {
-    uni.navigateTo({
-      url: `/pages-sub-packages/get-task/detail?id=${item.id}`
-    })
-  } else {
-    if (item.status === '3') {
-      return uni.showToast({
-        title: '当前无可查询的任务',
-        icon: 'none'
-      })
-    }
-    uni.navigateTo({
-      url: `/pages-sub-packages/task-list/index?id=${item.id}`
-    })
-  }
-}
-
-function getText(item: any) {
-  let str = ''
-  item = item + ''
-  switch (item) {
-    case '1':
-      str = '积分值'
-      break
-    case '2':
-      str = '任务量'
-      break
-    case '3':
-      str = '通用'
-      break
-    case '4':
-      str = '特定'
-      break
-    case '6':
-      str = '积分值'
-      break
-  }
-  return str
-}
-
-const formatTime = (time: string) => dayjs(time).format('YYYY-MM-DD')
-</script>
-
-<style lang="scss" scoped>
-.get-list {
-  min-height: 96vh;
-  background-color: #fafafa;
-  padding: 0 30rpx;
-
-  .header {
-    position: fixed;
-    top: 0;
-    left: 0;
-    right: 0;
-    z-index: 999;
-    background-color: #fff;
-
-    .tabs {
-      margin-top: 8rpx;
-      height: 80rpx;
-      display: flex;
-      justify-content: space-between;
-      align-items: center;
-
-      .tab-l {
-        flex: 1;
-        display: flex;
-        justify-content: space-between;
-
-        .tabs-item {
-          flex: 1;
-          text-align: center;
-          color: #666;
-          font-size: 28rpx;
-          font-weight: 400;
-          text {
-            display: inline-block;
-            &.active-tab {
-              color: #333;
-              font-weight: 600;
-              position: relative;
-              &::after {
-                content: '';
-                display: block;
-                position: absolute;
-                width: 50%;
-                height: 6rpx;
-                background-color: #6eb657;
-                left: 50%;
-                top: 50rpx;
-                transform: translateX(-50%);
-              }
-            }
-          }
-        }
-      }
-      .tab-r {
-        width: 240rpx;
-        height: 40rpx;
-        border-left: 2rpx solid #ebebeb;
-        display: flex;
-        align-items: center;
-        justify-content: center;
-
-        .date {
-          display: flex;
-          justify-content: center;
-          align-items: center;
-          text {
-            margin-right: 10rpx;
-            font-size: 28rpx;
-            font-weight: 400;
-          }
-        }
-      }
-    }
-  }
-
-  .content {
-    margin-top: 100rpx;
-    padding-top: 24rpx;
-    .notice {
-      :deep(.uv-notice-bar) {
-        border-radius: 8rpx;
-        background: #f8b856;
-      }
-    }
-    .task-content {
-      background-color: #fafafa;
-      .task-list {
-        margin-top: 18rpx;
-        .task-item {
-          width: 100%;
-          background: #ffffff;
-          border-radius: 16rpx;
-          margin-bottom: 24rpx;
-
-          .task-top {
-            display: flex;
-            padding: 20rpx;
-            background: #f8f8f0;
-            border-top-left-radius: 16rpx;
-            border-top-right-radius: 16rpx;
-            .top-l {
-              flex: 1;
-              .name {
-                color: #333;
-                font-weight: 600;
-                font-size: 34rpx;
-                line-height: 50rpx;
-              }
-              .tag {
-                display: inline-block;
-                margin-left: 10rpx;
-                vertical-align: text-bottom;
-                view {
-                  line-height: 34rpx;
-                  text-align: center;
-                  display: inline-block;
-                  margin-left: 10rpx;
-                  padding: 0 12rpx;
-                  border-radius: 8rpx;
-                  font-size: 24rpx;
-                }
-                .main {
-                  border: 2rpx solid #6eb657;
-                  color: #6eb657;
-                }
-                .green {
-                  border: 2rpx solid #55d169;
-                  color: #55d169;
-                }
-                .yellow {
-                  border: 2rpx solid #ffbe1c;
-                  color: #ffbe1c;
-                }
-                .gry {
-                  border: 2rpx solid #d3d3d3;
-                  color: #999999;
-                }
-              }
-            }
-            .top-r {
-              max-width: 250rpx;
-              display: flex;
-              align-items: center;
-              .point {
-                line-height: 56rpx;
-                display: inline-block;
-                width: 10rpx;
-                height: 10rpx;
-                border-radius: 100%;
-                background-color: #6eb657;
-                margin-right: 10rpx;
-              }
-              text {
-                font-weight: 400;
-                line-height: 56rpx;
-                color: #6eb657;
-              }
-              .is-settle {
-                text-align: right;
-                color: #6b8e23;
-                font-size: 24rpx;
-              }
-            }
-          }
-          .task-list-content {
-            padding: 24rpx;
-            background: #fff;
-            .task-info {
-              margin-bottom: 8rpx;
-              text {
-                font-weight: 400;
-                margin-right: 30rpx;
-                font-size: 24rpx;
-                color: #999;
-              }
-            }
-            .progress {
-              margin-top: 20rpx;
-              display: flex;
-              justify-content: space-between;
-              .pro-one {
-                ::v-deep .u-progress {
-                  border: 2.5rpx solid #d5d5d5;
-                  width: 444rpx;
-                  .u-active {
-                    border-radius: 100rpx;
-                  }
-                }
-              }
-              .pro-two {
-                ::v-deep .u-progress {
-                  border: 2.5rpx solid #6eb657;
-                  width: 444rpx;
-                  .u-active {
-                    border-radius: 100rpx;
-                  }
-                }
-              }
-              .progress-info {
-                margin-left: 30rpx;
-                flex: 1;
-                text-align: right;
-              }
-              .disable-text {
-                color: #999;
-              }
-            }
-          }
-        }
-        .disable {
-          .task-top {
-            background-color: #f5f5f5;
-            .top-l {
-              .name {
-                color: #999;
-              }
-            }
-            .top-r {
-              .point {
-                background: #999;
-              }
-              text {
-                color: #999;
-              }
-            }
-          }
-        }
-      }
-    }
-  }
-}
-
-.btns {
-  margin-top: 30rpx;
-  display: flex;
-
-  .btn {
-    display: flex;
-    align-items: center;
-    height: 34rpx;
-    margin-right: 36rpx;
-
-    text {
-      color: #6eb657;
-      font-size: 24rpx;
-      line-height: 34rpx;
-    }
-  }
-}
-</style>

+ 0 - 153
src/pages-sub-packages/task-list/index.vue

@@ -1,153 +0,0 @@
-<template>
-  <view class="task-list">
-    <view class="list" v-if="dataList.length">
-      <view class="list-item" v-for="item in dataList" :key="item.id" @click="detailClick(item.id)">
-        <view
-          class="item-top"
-          :class="{ 'disable-top': item.realFlag == '1' || item.taskStatus == '4' }"
-        >
-          <view
-            class="top-clock"
-            :class="{ 'disable-text': item.realFlag == '1' || item.taskStatus == '4' }"
-          >
-            <image
-              v-if="item.realFlag == '1' || item.taskStatus == '4'"
-              class="clock-icon"
-              src="/static/images/task/clock2.png"
-            />
-            <image v-else class="clock-icon" src="/static/images/task/clock.png" />
-            <text :class="{ 'disable-text': item.realFlag == '1' || item.taskStatus == '4' }">{{
-              formatTime(item.createTime)
-            }}</text>
-          </view>
-          <view class="top-ing" v-if="item.realFlag == '1' || item.taskStatus == '4'"
-            >审核不通过</view
-          >
-          <uv-icon
-            name="arrow-right"
-            :color="item.realFlag == '1' || item.taskStatus == '4' ? '#999999' : '#fff'"
-            size="16"
-          />
-        </view>
-        <view class="item-bottom">
-          <text :class="{ 'disable-text': item.realFlag == '1' || item.taskStatus == '4' }">{{
-            item.taskTypeId
-          }}</text>
-          <text :class="{ 'disable-text': item.realFlag == '1' || item.taskStatus == '4' }"
-            >+{{ item.score }}积分</text
-          >
-        </view>
-      </view>
-    </view>
-    <noData v-else />
-  </view>
-</template>
-
-<script setup lang="ts">
-import formatTime from '@/utils/formatTime'
-import { getTaskListByPackageIdApi } from '@/service/modules/getTask'
-import { onLoad, onReachBottom } from '@dcloudio/uni-app'
-import { reactive, ref } from 'vue'
-import { useLoginStore } from '@/store/login'
-import noData from '@/components/noData/index.vue'
-
-const loginStore = useLoginStore()
-
-const total = ref()
-const params = reactive({
-  taskUserId: loginStore?.currentUserInfo.userId,
-  scorePackageId: '',
-  current: 1,
-  size: 10
-})
-
-const dataList = ref<any[]>([])
-async function getTaskListByPackageId() {
-  const res = await getTaskListByPackageIdApi(params)
-  if (res.code === 0) {
-    dataList.value = dataList.value.concat(res.data.records)
-    total.value = res.data.total
-  }
-}
-onLoad((e) => {
-  params.scorePackageId = e?.id
-  getTaskListByPackageId()
-})
-
-onReachBottom(() => {
-  if (dataList.value.length === total.value) return
-  params.current++
-  getTaskListByPackageId()
-})
-
-const detailClick = (id: string) => {
-  uni.navigateTo({
-    url: `/pages/task/task-detail/index?id=${id}`
-  })
-}
-</script>
-
-<style lang="scss" scoped>
-.task-list {
-  .list {
-    margin-top: 20rpx;
-    padding: 30rpx;
-    .list-item {
-      border-radius: 12rpx;
-      margin-top: 32rpx;
-      box-shadow: 0 10rpx 20rpx 10rpx #eaeaea;
-      .item-top {
-        box-sizing: border-box;
-        border-top-right-radius: 12rpx;
-        border-top-left-radius: 12rpx;
-        height: 102rpx;
-        background: #6eb657;
-        display: flex;
-        align-items: center;
-        justify-content: space-between;
-        padding: 22rpx 34rpx;
-        .top-clock {
-          background: #ffffff;
-          border-radius: 10rpx;
-          display: flex;
-          align-items: center;
-          padding: 12rpx 18rpx;
-          font-size: 26rpx;
-          color: #6eb657;
-          .disable-text {
-            color: #9a9a9a;
-          }
-          .clock-icon {
-            width: 36rpx;
-            height: 36rpx;
-            margin-right: 20rpx;
-          }
-        }
-        .top-ing {
-          text-align: right;
-          line-height: 1.5;
-          font-size: 28rpx;
-          color: #ffffff;
-        }
-      }
-      .disable-top {
-        background: linear-gradient(180deg, rgba(203, 203, 203, 1) 0%, rgba(183, 183, 183, 1) 100%);
-      }
-      .disable-text {
-        color: #9a9a9a;
-      }
-      .item-bottom {
-        display: flex;
-        align-items: center;
-        justify-content: space-between;
-        padding: 44rpx 28rpx 22rpx;
-        font-size: 28rpx;
-        color: #6eb657;
-        .disable-text {
-          color: #9a9a9a;
-        }
-      }
-    }
-  }
-}
-</style>

+ 0 - 416
src/pages-sub-service-mangement/assignPoints/index.vue

@@ -1,416 +0,0 @@
-<template>
-  <view class="objectives-list">
-    <view class="search">
-      <view class="top-search">
-        <view class="search-input">
-          <uv-input
-            v-model="searchParams.scorePackageName"
-            :customStyle="customStyle"
-            clearable
-            shape="circle"
-            placeholder="请输入"
-            prefixIcon="search"
-            prefixIconStyle="font-size: 22px;color: #6eb657"
-          ></uv-input>
-        </view>
-        <view class="search-button" @click="searchFn">搜索</view>
-        <uv-icon name="plus-circle" color="#6eb657" size="24" @click="addFn" />
-      </view>
-      <view class="search-content">
-        <view
-          class="search-list"
-          @click="searchClick('acceptSug')"
-          :class="searchParams.acceptSug ? 'active' : ''"
-        >
-          <text>承接对象</text>
-          <uv-icon
-            name="arrow-down-fill"
-            :color="searchParams.acceptSug ? '#6eb657' : '#111111'"
-            size="14"
-          />
-        </view>
-        <view
-          class="search-list"
-          @click="searchClick('period')"
-          :class="searchParams.period.length ? 'active' : ''"
-        >
-          <text>创建日期</text>
-          <uv-icon
-            name="arrow-down-fill"
-            :color="searchParams.period.length ? '#6eb657' : '#111111'"
-            size="14"
-          />
-        </view>
-      </view>
-    </view>
-
-    <view class="list" v-if="hasInfo">
-      <view
-        class="item"
-        v-for="item in listArr"
-        :key="item.id"
-        @click.stop.prevent.self="detailFn(item)"
-      >
-        <view class="header">
-          <view class="title">{{ item.scorePackageName }}</view>
-          <view class="status">
-            <text class="circle"></text>
-            <text>{{ getStatusName(item.packageFinishStatus) }}</text>
-          </view>
-        </view>
-        <view class="content">
-          <view class="txt">承接对象:{{ item.userList[0] }}</view>
-          <view class="txt">发布日期:{{ item.belongDate }}</view>
-          <view class="progress">
-            <uv-line-progress
-              class="pro-two"
-              round
-              :showText="false"
-              :percentage="item.finishRate"
-              activeColor="#95dc7e"
-              inactiveColor="#f8f8f0"
-            ></uv-line-progress>
-            <text>{{ item.finishRate }}%</text>
-          </view>
-          <view class="txt">{{ item.ysh }}/{{ item.score }}</view>
-          <view class="btns">
-            <template v-if="item.dsh != null && item.dsh != '0'">
-              <view class="btn" @click.stop.prevent.self="taskReview(item)">
-                <image src="@/static/images/icon/review-img.png" class="image" />
-                <text>任务审核</text>
-              </view>
-            </template>
-            <template v-if="item.dsh != null && item.dsh != '0'">
-              <view class="btn" @click.stop.prevent.self="quickAudit(item)">
-                <image src="@/static/images/icon/review-img.png" class="image" />
-                <text>批量审核</text>
-              </view>
-            </template>
-            <template v-if="item.dsh != null && item.dsh != '0'">
-              <view class="btn" @click.stop.prevent.self="quickAuditFn(item)">
-                <image src="@/static/images/icon/review-img.png" class="image" />
-                <text>快捷审核</text>
-              </view>
-            </template>
-
-            <!-- 终止  -->
-            <view
-              class="btn"
-              v-if="!['4', '5', '6', '9'].includes(item.scorePackageStatus)"
-              @click.stop.prevent.self="stopBtn(item)"
-            >
-              <image src="@/static/images/icon/close.png" class="image" />
-              <text>终止</text>
-            </view>
-            <view class="btn" @click.stop.prevent.self="viewFn(item)">
-              <image src="@/static/images/icon/detail.png" class="image" />
-              <text>查看</text>
-            </view>
-          </view>
-        </view>
-      </view>
-    </view>
-    <noData v-else />
-    <!-- 选择承接对象 -->
-    <uv-picker
-      :cancelText="searchParams.acceptSug ? '清空' : '取消'"
-      ref="pickerRef"
-      :columns="csoList"
-      keyName="gsmc"
-      @confirm="pickerConfim"
-      @cancel="pickerCancel"
-    ></uv-picker>
-    <!-- 月份范围 -->
-    <KDatePicker v-model="show" type="month" is-range @change="getDate" formatter="YYYY-MM-DD" />
-  </view>
-</template>
-
-<script setup lang="ts">
-import { ref } from 'vue'
-import { onShow, onReachBottom } from '@dcloudio/uni-app'
-import { getListCsoApi } from '@/service/modules/objectivesList'
-import { getListApi } from '@/service/modules/assignPoints'
-import { getDictByNameApi } from '@/service/modules/getDict'
-import KDatePicker from '@/components/dateSelect/k-date-picker/KDatePicker.vue'
-import noData from '@/components/noData/index.vue'
-import { useReview } from '@/store/review'
-
-const reviewStore = useReview()
-
-const customStyle = {
-  backgroundColor: '#f6f6f6'
-}
-
-onShow(() => {
-  listArr.value = []
-  getDict()
-  getList()
-})
-
-class Params {
-  acceptSug = ''
-  period = [] as string[]
-  scorePackageName = ''
-  total = -1
-  current = 1
-  packageType1 = 1
-  packageType2 = 1
-  size = 10
-}
-
-const searchParams = ref(new Params())
-
-const hasInfo = ref(true)
-const listArr = ref<any[]>([])
-const getList = async () => {
-  uni.showLoading()
-  const res = await getListApi(searchParams.value)
-  if (res.code === 0) {
-    searchParams.value.total = res.data.total
-    listArr.value = listArr.value.concat(res.data.records)
-    hasInfo.value = !!listArr.value.length
-  }
-  uni.hideLoading()
-}
-
-const csoList = ref<any[]>([])
-const packageFinishStatusList = ref<any[]>([])
-const getDict = async () => {
-  getDictByNameApi('package_finish_status').then(
-    (res: any) => (packageFinishStatusList.value = res.data)
-  )
-  getListCsoApi().then((res: any) => (csoList.value = [res.data]))
-}
-const getCsoName = (acceptSug: number) => {
-  const curr = csoList.value[0]?.find((item: any) => item.id === acceptSug)
-  return curr?.gsmc
-}
-const getStatusName = (planState: string) => {
-  const curr = packageFinishStatusList.value?.find((item: any) => item.value === planState)
-  return curr?.label
-}
-
-const searchFn = () => {
-  listArr.value = []
-  searchParams.value.current = 1
-  getList()
-}
-
-onReachBottom(() => {
-  if (listArr.value.length === searchParams.value.total) return
-  searchParams.value.current++
-  getList()
-})
-const pickerRef = ref()
-const show = ref(false)
-
-const searchClick = (type: string) => {
-  if (type === 'acceptSug') {
-    pickerRef.value.open()
-  } else {
-    show.value = true
-  }
-}
-
-const pickerConfim = (e: any) => {
-  searchParams.value.acceptSug = e.value[0].id
-  searchFn()
-}
-
-const pickerCancel = () => {
-  if (searchParams.value.acceptSug) {
-    searchParams.value.acceptSug = ''
-    searchFn()
-  }
-}
-
-const getDate = (e: any[]) => {
-  if (!e[1]) return
-  searchParams.value.period = e
-  show.value = false
-  searchFn()
-}
-
-const addFn = () => {
-  uni.navigateTo({
-    url: '/pages-sub-service-mangement/assignPointsAdd/index?&type=1'
-  })
-}
-const detailFn = (row: any) => {
-  const info = JSON.stringify(row)
-  reviewStore.setAssignPointsInfo(info)
-  uni.navigateTo({
-    url: '/pages-sub-service-mangement/assignPointsAdd/detail?&type=2'
-  })
-}
-
-//
-const stopBtn = (row: any) => {
-  uni.navigateTo({
-    url: `/pages-sub-service-mangement/stopServiceDelivery/index?type=${2}&id=${row.id}`
-  })
-}
-
-// 任务审核
-const taskReview = (row: any) => {
-  uni.navigateTo({
-    url: `/pages-sub-service-mangement/taskAudit/index?&id=${row.id}&type=taskAudit&taskStatus=2&page=1`
-  })
-}
-// 快捷审核
-const quickAudit = (row: any) => {
-  uni.navigateTo({
-    url: `/pages-sub-service-mangement/quickAudit/index?&id=${row.id}&type=taskAudit&taskStatus=2&page=1`
-  })
-}
-// 快捷审核
-const quickAuditFn = (row: any) => {
-  uni.navigateTo({
-    url: `/pages-sub-service-mangement/quickAuditCard/index?&id=${row.id}&type=1`
-  })
-}
-
-const viewFn = (row: any) => {
-  uni.navigateTo({
-    url: `/pages-sub-service-mangement/taskAudit/index?&id=${row.id}&type=taskAudit&page=1`
-  })
-}
-</script>
-
-<style lang="scss" scoped>
-.objectives-list {
-  padding: 24rpx 0;
-  .search {
-    position: fixed;
-    width: 750rpx;
-    padding: 0 30rpx;
-    top: 0;
-    height: 150rpx;
-    background-color: #fff;
-    z-index: 99;
-    .top-search {
-      display: flex;
-      align-items: center;
-
-      .search-input {
-        width: 540rpx;
-        height: 70rpx;
-      }
-      .search-button {
-        color: #6eb657;
-        font-size: 30rpx;
-        margin: 0 10px;
-        font-weight: 400;
-      }
-    }
-    .search-content {
-      margin-top: 24rpx;
-      padding-bottom: 10rpx;
-      display: flex;
-      .search-list {
-        display: flex;
-        align-content: center;
-        margin-right: 64rpx;
-        height: 40rpx;
-        text {
-          font-weight: 500;
-          line-height: 40rpx;
-          font-size: 28rpx;
-          color: #111111;
-          margin-right: 8rpx;
-        }
-      }
-      .active text {
-        color: #6eb657;
-      }
-    }
-  }
-
-  .list {
-    margin-top: 150rpx;
-    padding: 0 30rpx;
-    .item {
-      margin-bottom: 20rpx;
-      width: 100%;
-      border-radius: 16rpx;
-      box-shadow: 0px 2rpx 8rpx 0px rgba(0, 0, 0, 0.2);
-      .header {
-        background-color: #f8f8f0;
-        padding: 26rpx 20rpx;
-        display: flex;
-        align-items: center;
-        justify-content: space-between;
-        border-top-left-radius: 16rpx;
-        border-top-right-radius: 16rpx;
-        .title {
-          font-size: 32rpx;
-          line-height: 45rpx;
-          width: 70%;
-          font-weight: 500;
-          color: #333;
-          word-wrap: break-word;
-        }
-        .status {
-          .circle {
-            display: block;
-            border-radius: 50%;
-            background-color: #72b25b;
-            margin-right: 10rpx;
-            width: 15rpx;
-            height: 15rpx;
-          }
-          display: flex;
-          align-items: center;
-          color: #72b25b;
-        }
-      }
-      .content {
-        padding: 20rpx;
-        .txt {
-          font-weight: 400;
-          color: #999;
-          font-size: 22rpx;
-          line-height: 30rpx;
-          margin-bottom: 16rpx;
-        }
-        .progress {
-          display: flex;
-          align-items: center;
-          margin-bottom: 8rpx;
-          .pro-two {
-            width: 80%;
-          }
-          text {
-            margin-left: 10px;
-            color: #010101;
-            font-size: 26rpx;
-            line-height: 36rpx;
-          }
-        }
-        .btns {
-          margin-top: 30rpx;
-          display: flex;
-
-          .btn {
-            display: flex;
-            align-items: center;
-            height: 34rpx;
-            margin-right: 5rpx;
-
-            .image {
-              width: 28rpx;
-              height: 28rpx;
-              margin-right: 12rpx;
-            }
-            text {
-              color: #6eb657;
-              font-size: 24rpx;
-              line-height: 34rpx;
-            }
-          }
-        }
-      }
-    }
-  }
-}
-</style>

+ 0 - 88
src/pages-sub-service-mangement/assignPointsAdd/components/TableData.vue

@@ -1,88 +0,0 @@
-<template>
-  <view class="table">
-    <uni-table border stripe emptyText="暂无更多数据">
-      <!-- 表头行 -->
-      <uni-tr>
-        <uni-th align="center" width="50">序号</uni-th>
-        <uni-th align="center">上级服务类型</uni-th>
-        <uni-th align="center" width="50">积分值</uni-th>
-        <uni-th align="center" width="50">任务总个数</uni-th>
-        <uni-th align="center" width="50">已用个数</uni-th>
-        <uni-th align="center" width="50">任务个数</uni-th>
-        <uni-th align="center" width="80">任务积分值</uni-th>
-      </uni-tr>
-      <!-- 表格数据行 -->
-      <uni-tr v-for="(item, index) in tableData" :key="item?.taskTypeId" index>
-        <uni-td>{{ index + 1 }}</uni-td>
-        <uni-td>{{ item.baseId }}</uni-td>
-        <uni-td>{{ item.score }}</uni-td>
-        <uni-td>{{ item.allQty }}</uni-td>
-        <uni-td>{{ item.used }}</uni-td>
-        <uni-td>
-          <input type="number" @blur="(e) => change(e, index, item)" v-model="item.qty" />
-        </uni-td>
-        <uni-td>{{ item.subtotal }}</uni-td>
-      </uni-tr>
-      <!-- 结尾 -->
-      <uni-tr>
-        <uni-td>总计</uni-td>
-        <uni-td>---</uni-td>
-        <uni-td>---</uni-td>
-        <uni-td>---</uni-td>
-        <uni-td>---</uni-td>
-        <uni-td>{{ totalQty }}</uni-td>
-        <uni-td>{{ totalsubtotal }}</uni-td>
-      </uni-tr>
-    </uni-table>
-  </view>
-</template>
-
-<script setup lang="ts">
-import { ref, defineEmits } from 'vue'
-
-const emit = defineEmits(['updateScope'])
-
-const tableData = ref<any[]>([])
-
-const totalQty = ref(0)
-const totalsubtotal = ref(0)
-
-const change = (detail: any, index: number, item: any) => {
-  let max = item.allQty - item.used
-  const value = tableData.value[index].qty
-  if (value > max) {
-    tableData.value[index].qty = max
-  }
-  tableData.value[index].subtotal = tableData.value[index].qty * tableData.value[index].score
-  totalQty.value = tableData.value.reduce((sum, row) => Number(sum) + Number(row.qty), 0)
-  totalsubtotal.value = tableData.value.reduce((sum, row) => Number(sum) + Number(row.subtotal), 0)
-  emit('updateScope', totalsubtotal.value)
-}
-
-const setData = (data: any[]) => {
-  tableData.value = [...data]
-  tableData.value.forEach((item, index) => {
-    item.index = index
-    item.score = item.price
-    item.subtotal = 0
-    item.baseId = item.taskTypeName
-    item.allQty = item.qty
-    item.qty = 0
-  })
-}
-const getData = () => {
-  return tableData.value
-}
-
-defineExpose({ setData, getData })
-</script>
-
-<style lang="scss" scoped>
-.table {
-  margin-top: 20rpx;
-  width: 640rpx;
-  min-height: 300rpx;
-  background-color: #fff;
-  border-radius: 12rpx;
-}
-</style>

+ 0 - 112
src/pages-sub-service-mangement/assignPointsAdd/components/treeList.ts

@@ -1,112 +0,0 @@
-export const treeList: any[] = [
-  {
-    taskTypeId: 'p-1',
-    taskTypeName: '学术会议服务',
-    show: true,
-    disabled: true,
-    checked: true,
-    children: [
-      { taskTypeId: '1', taskTypeName: 'POV科室会', disabled: true, checked: true },
-      { taskTypeId: '5', taskTypeName: '沙龙会', disabled: true, checked: true },
-      { taskTypeId: '2', taskTypeName: '区县学术会议', disabled: true, checked: true },
-      { taskTypeId: '3', taskTypeName: '市级学术会议', disabled: true, checked: true },
-      { taskTypeId: '4', taskTypeName: '省级学术会议', disabled: true, checked: true },
-      { taskTypeId: '64', taskTypeName: '线上学术会议', disabled: true, checked: true },
-      { taskTypeId: '19', taskTypeName: '健康教育课堂', disabled: true, checked: true }
-    ]
-  },
-  {
-    taskTypeId: 'p-2',
-    taskTypeName: '学术拜访服务',
-    show: true,
-    disabled: true,
-    checked: true,
-    children: [
-      { taskTypeId: '53', taskTypeName: '基础拜访', disabled: true, checked: true },
-      { taskTypeId: '51', taskTypeName: '专业拜访', disabled: true, checked: true },
-      { taskTypeId: '52', taskTypeName: '专项拜访', disabled: true, checked: true }
-    ]
-  },
-  {
-    taskTypeId: 'p-4',
-    taskTypeName: '产品推广',
-    show: true,
-    disabled: true,
-    checked: true,
-    children: [{ taskTypeId: '8', taskTypeName: '产品相册分享', disabled: true, checked: true }]
-  },
-  {
-    taskTypeId: 'p-5',
-    taskTypeName: '学术信息交流',
-    show: true,
-    disabled: true,
-    checked: true,
-    children: [{ taskTypeId: '9', taskTypeName: '学术信息交流', disabled: true, checked: true }]
-  },
-  {
-    taskTypeId: 'p-3',
-    taskTypeName: '商务协作',
-    show: true,
-    disabled: true,
-    checked: true,
-    children: [
-      { taskTypeId: '14', taskTypeName: '数据收集', disabled: true, checked: true },
-      { taskTypeId: '17', taskTypeName: '医学警戒信息收集', disabled: true, checked: true },
-      { taskTypeId: '12', taskTypeName: '产品展示', disabled: true, checked: true },
-      { taskTypeId: '13', taskTypeName: '业务宣传服务', disabled: true, checked: true }
-    ]
-  }
-]
-
-export const pFlist = [
-  {
-    taskTypeName: '学术会议服务',
-    taskTypeId: 'p-1',
-    children: [] as any[]
-  },
-  {
-    taskTypeName: '学术拜访服务',
-    taskTypeId: 'p-2',
-    children: [] as any[]
-  },
-  {
-    taskTypeName: '市场信息服务',
-    taskTypeId: 'p-1',
-    children: [] as any[]
-  },
-  {
-    taskTypeName: '学术会议服务',
-    taskTypeId: 'p-3',
-    children: [] as any[]
-  },
-  {
-    taskTypeName: '产品推广',
-    taskTypeId: 'p-4',
-    children: [] as any[]
-  },
-  {
-    taskTypeName: '学术信息交流',
-    taskTypeId: 'p-5',
-    children: [] as any[]
-  },
-  {
-    taskTypeName: '医药研发服务',
-    taskTypeId: 'p-6',
-    children: [] as any[]
-  },
-  {
-    taskTypeName: '专项服务',
-    taskTypeId: 'p-17',
-    children: [] as any[]
-  },
-  {
-    taskTypeName: '商业公司客户管理',
-    taskTypeId: 'p-18',
-    children: [] as any[]
-  },
-  {
-    taskTypeName: '代理商客户管理',
-    taskTypeId: 'p-19',
-    children: [] as any[]
-  }
-]

+ 0 - 209
src/pages-sub-service-mangement/assignPointsAdd/detail.vue

@@ -1,209 +0,0 @@
-<template>
-  <view class="add">
-    <view class="form">
-      <uv-form
-        labelPosition="left"
-        :model="form"
-        ref="formRef"
-        labelWidth="140"
-        :labelStyle="labelStyle"
-      >
-        <uv-form-item label="执行包名称" prop="scorePackageName" borderBottom required>
-          <uv-input
-            v-model="form.scorePackageName"
-            border="none"
-            placeholder="请输入"
-            inputAlign="right"
-            readonly
-          />
-        </uv-form-item>
-        <uv-form-item label="服务总值" prop="score" borderBottom required>
-          <uv-input v-model="form.score" inputAlign="right" readonly border="none" />
-        </uv-form-item>
-        <uv-form-item label="发布日期" prop="belongDate" borderBottom required>
-          <uv-input v-model="form.belongDate" inputAlign="right" readonly border="none" />
-        </uv-form-item>
-        <uv-form-item label="承接对象" prop="belongDate" borderBottom required>
-          <uv-input v-model="form.userListLabel" inputAlign="right" readonly border="none" />
-        </uv-form-item>
-        <uv-form-item label="执行包状态" prop="scorePackageStatusName" borderBottom required>
-          <uv-input
-            v-model="form.scorePackageStatusName"
-            inputAlign="right"
-            readonly
-            border="none"
-          />
-        </uv-form-item>
-        <uv-form-item label="完成服务分值" prop="ysh" borderBottom required>
-          <uv-input v-model="form.ysh" readonly inputAlign="right" border="none" />
-        </uv-form-item>
-        <uv-form-item label="完成百分比(%)" prop="yshtt" borderBottom required>
-          <uv-input v-model="form.yshtt" readonly inputAlign="right" border="none" />
-        </uv-form-item>
-        <uv-form-item label="审核通过服务分值" prop="shtg" borderBottom required>
-          <uv-input v-model="form.shtg" readonly inputAlign="right" border="none" />
-        </uv-form-item>
-        <uv-form-item label="审核通过百分比(%)" prop="shtgtt" borderBottom required>
-          <uv-input v-model="form.shtgtt" readonly inputAlign="right" border="none" />
-        </uv-form-item>
-        <uv-form-item label="关联执行包名称" prop="relationScoreId" borderBottom required>
-          <uv-input v-model="form.relationScoreId" inputAlign="right" readonly border="none" />
-        </uv-form-item>
-        <uv-form-item label="承接对象范围" prop="packageUserScopeName" borderBottom required>
-          <uv-input v-model="form.packageUserScopeName" inputAlign="right" readonly border="none" />
-        </uv-form-item>
-        <uv-form-item label="承接对象范围" prop="typeidName" borderBottom required>
-          <uv-input v-model="form.typeidName" inputAlign="right" readonly border="none" />
-        </uv-form-item>
-      </uv-form>
-    </view>
-    <view class="task-type">
-      <view class="title">有效服务类型如下:</view>
-      <view class="item">
-        <view class="list" v-for="(item, index) in taskTypeList" :key="index">
-          <view class="dot">
-            <text></text>
-          </view>
-          <view class="txt"> {{ item.code }}:{{ item.label }}</view>
-        </view>
-      </view>
-    </view>
-  </view>
-</template>
-
-<script setup lang="ts">
-import { onLoad } from '@dcloudio/uni-app'
-import { useReview } from '@/store/review'
-import { ref } from 'vue'
-import { reactive } from 'vue'
-import { getTypeidPersonalApi, selectByScorePackageIdById } from '@/service/modules/assignPoints'
-import { getDictByNameApi } from '@/service/modules/getDict'
-
-const reviewStore = useReview()
-
-const currInfo = ref()
-onLoad((e) => {
-  const str = reviewStore.assignPointsInfo
-  if (str) {
-    currInfo.value = JSON.parse(reviewStore.assignPointsInfo)
-    initForm()
-  }
-})
-
-const labelStyle = {
-  fontWeight: 400,
-  fontSize: '30rpx',
-  color: '#000'
-}
-
-const form = reactive({
-  scorePackageName: '',
-  score: '',
-  belongDate: '',
-  userListLabel: '',
-  scorePackageStatusName: '',
-  ysh: 0,
-  yshtt: 0,
-  shtg: 0,
-  shtgtt: 0,
-  relationScoreId: '',
-  packageUserScopeName: '',
-  typeidName: ''
-})
-
-const plist = {
-  'p-1': '学术会议服务',
-  'p-2': '学术拜访服务',
-  'p-3': '市场信息服务',
-  'p-4': '产品推广',
-  'p-5': '学术信息交流',
-  'p-6': '医药研发服务',
-  'p-7': '',
-  'p-17': '专项服务',
-  'p-18': '商业公司客户管理',
-  'p-19': '代理商客户管理'
-} as any
-const taskTypeList = ref<any[]>([])
-const initForm = async () => {
-  const res = await getTypeidPersonalApi()
-  const resA = await getDictByNameApi('score_package_status')
-  form.scorePackageName = currInfo.value.scorePackageName
-  form.score = currInfo.value.score
-  form.belongDate = currInfo.value.belongDate
-  form.userListLabel = currInfo.value?.userList[0]
-  const currA = resA.data.find((item: any) => item.value == currInfo.value.scorePackageStatus)
-  if (currA) {
-    form.scorePackageStatusName = currA.label
-  }
-  form.ysh = currInfo.value?.ysh
-  form.yshtt = currInfo.value?.yshtt
-  form.shtg = currInfo.value?.shtg
-  form.shtgtt = currInfo.value?.shtgtt
-  form.relationScoreId = currInfo.value?.relationScoreId
-  form.packageUserScopeName = currInfo.value?.packageUserScopeName
-  const currB = res.data.find((item: any) => item.value == currInfo.value.typeid)
-  if (currB) {
-    form.typeidName = currB.label
-  }
-  const resC = await selectByScorePackageIdById({ id: currInfo.value?.id })
-  resC.data.forEach((item: any) => {
-    item.code = plist[item.code]
-  })
-  taskTypeList.value = resC.data
-}
-</script>
-
-<style lang="scss" scoped>
-.add {
-  background: #f2f2f2;
-  min-height: 100vh;
-  box-sizing: border-box;
-  padding: 24rpx;
-  .form {
-    background: #fff;
-    padding: 30rpx;
-    border-radius: 12rpx;
-  }
-}
-:deep(.uv-form-item__body__left) {
-  padding-left: 18rpx;
-}
-.task-type {
-  margin-top: 20rpx;
-  background: #fff;
-  border-radius: 12rpx;
-  padding: 20rpx 30rpx;
-
-  .title {
-    font-weight: 400;
-    font-size: 28rpx;
-    line-height: 40rpx;
-    color: #000;
-  }
-  .item {
-    margin-top: 30rpx;
-    .list {
-      display: flex;
-      margin-bottom: 24rpx;
-      .dot {
-        margin-right: 10rpx;
-        height: 36rpx;
-        display: flex;
-        align-items: center;
-        text {
-          display: block;
-          width: 8rpx;
-          height: 8rpx;
-          border-radius: 50%;
-          background-color: #606266;
-        }
-      }
-      .txt {
-        font-weight: 400;
-        font-size: 26rpx;
-        line-height: 36rpx;
-      }
-    }
-  }
-}
-</style>

+ 0 - 581
src/pages-sub-service-mangement/assignPointsAdd/index.vue

@@ -1,581 +0,0 @@
-<template>
-  <view class="add">
-    <view class="form">
-      <uv-form
-        labelPosition="left"
-        :model="form"
-        :rules="rules"
-        ref="formRef"
-        labelWidth="120"
-        :labelStyle="labelStyle"
-      >
-        <uv-form-item label="执行包名称" prop="scorePackageName" borderBottom required>
-          <uv-input
-            v-model="form.scorePackageName"
-            border="none"
-            placeholder="请输入"
-            :readonly="formDisabled"
-          />
-        </uv-form-item>
-        <uv-form-item
-          label="承接对象类型"
-          prop="typeidLabel"
-          borderBottom
-          @click="showSelect('typeidLabel')"
-          required
-        >
-          <uv-input v-model="form.typeidLabel" border="none" placeholder="请选择" readonly />
-          <template v-slot:right>
-            <uv-icon name="arrow-right"></uv-icon>
-          </template>
-        </uv-form-item>
-        <uv-form-item
-          v-if="userListShow"
-          label="承接对象"
-          prop="userListLabel"
-          borderBottom
-          @click="showSelect('userListLabel')"
-          required
-        >
-          <uv-input v-model="form.userListLabel" border="none" placeholder="请选择" readonly />
-          <template v-slot:right>
-            <uv-icon name="arrow-right"></uv-icon>
-          </template>
-        </uv-form-item>
-        <uv-form-item
-          label="关联服务企业"
-          prop="relatedServiceLabel"
-          borderBottom
-          @click="showSelect('relatedServiceLabel')"
-          required
-        >
-          <uv-input
-            v-model="form.relatedServiceLabel"
-            border="none"
-            placeholder="请选择"
-            readonly
-          />
-          <template v-slot:right>
-            <uv-icon name="arrow-right"></uv-icon>
-          </template>
-        </uv-form-item>
-        <uv-form-item
-          label="关联执行包名称"
-          prop="relationScoreIdLable"
-          borderBottom
-          @click="showSelect('relationScoreIdLable')"
-          required
-        >
-          <uv-input
-            v-model="form.relationScoreIdLable"
-            border="none"
-            placeholder="请选择"
-            readonly
-          />
-          <template v-slot:right>
-            <uv-icon name="arrow-right"></uv-icon>
-          </template>
-        </uv-form-item>
-        <uv-form-item label="推广产品" prop="drugtableLabel" borderBottom>
-          <uv-input v-model="form.drugtableLabel" border="none" placeholder="请选择" readonly />
-        </uv-form-item>
-        <uv-form-item label="可分配积分值" prop="kfpjf" borderBottom>
-          <uv-input v-model="form.kfpjf" type="number" readonly border="none" />
-        </uv-form-item>
-        <uv-form-item label="服务总值" prop="score" borderBottom required>
-          <uv-input v-model="form.score" type="number" readonly border="none" />
-        </uv-form-item>
-        <uv-form-item
-          label="接单对象范围"
-          prop="packageUserScopeLable"
-          borderBottom
-          @click="showSelect('packageUserScopeLable')"
-          required
-        >
-          <uv-input
-            v-model="form.packageUserScopeLable"
-            border="none"
-            placeholder="请选择"
-            readonly
-          />
-          <template v-slot:right>
-            <uv-icon name="arrow-right"></uv-icon>
-          </template>
-        </uv-form-item>
-        <uv-form-item label="生效日期" prop="startTime" borderBottom required>
-          <uv-input
-            prefixIcon="calendar"
-            prefixIconStyle="font-size: 22px;color: #909399"
-            v-model="form.startTime"
-            border="none"
-            placeholder="请选择"
-            readonly
-          />
-        </uv-form-item>
-        <uv-form-item label="截止日期" prop="endTimeValue" borderBottom required>
-          <uv-input
-            prefixIcon="calendar"
-            prefixIconStyle="font-size: 22px;color: #909399"
-            v-model="form.endTimeValue"
-            border="none"
-            placeholder="请选择"
-            readonly
-          />
-        </uv-form-item>
-        <uv-form-item label="执行包编号" prop="packageSn" borderBottom>
-          <uv-input v-model="form.packageSn" type="number" readonly border="none" />
-        </uv-form-item>
-        <uv-form-item label="有效任务类型如下:" labelWidth="140" labelPosition="top" placeholder>
-          <!-- <taskTree ref="taskTreeRef" /> -->
-          <TableData
-            ref="tableRef"
-            @updateScope="
-              (val) => {
-                form.score = val
-              }
-            "
-          />
-        </uv-form-item>
-        <uv-form-item label="描述" prop="description" borderBottom labelWidth="40">
-          <uv-textarea
-            v-model="form.description"
-            placeholder="请输入内容"
-            height="48"
-          ></uv-textarea>
-        </uv-form-item>
-      </uv-form>
-    </view>
-    <view class="btn">
-      <view class="cancel" @click="cancelFn">取消</view>
-      <view class="confirm" @click="confirmFn(0)">确定</view>
-      <!-- <view class="confirm" @click="confirmFn(1)">确定并继续</view> -->
-    </view>
-    <!-- 选择承接对象类型 -->
-    <uv-picker
-      ref="typeidPickerRef"
-      :columns="[personalList]"
-      keyName="label"
-      @confirm="(e: any) => pickerConfim(e, 'typeidLabel')"
-    />
-    <!-- 选择承接对象类型 -->
-    <uv-picker
-      ref="userListPickerRef"
-      :columns="[objectScopeList5]"
-      keyName="label"
-      @confirm="(e: any) => pickerConfim(e, 'userListLabel')"
-    />
-    <!-- 选择关联服务企业 -->
-    <uv-picker
-      ref="relatedServicePickerRef"
-      :columns="[allParentDeptList]"
-      keyName="name"
-      @confirm="(e: any) => pickerConfim(e, 'relatedServiceLabel')"
-    />
-    <!-- 选择关联执行包 -->
-    <uv-picker
-      ref="relationScoreIdPickerRef"
-      :columns="[relationScoreList]"
-      keyName="scorePackageName"
-      @confirm="(e: any) => pickerConfim(e, 'relationScoreIdLable')"
-    />
-  </view>
-</template>
-
-<script setup lang="ts">
-import dayjs from 'dayjs'
-import { reactive, ref, toRaw } from 'vue'
-import { onLoad } from '@dcloudio/uni-app'
-import {
-  getTypeidPersonalApi,
-  getObjectScopeListApi,
-  getWmscorepackageSnApi,
-  getPackageScopeListApi,
-  getListAncestor,
-  getRelationScoreListApi,
-  addWmScorePackageApi
-} from '@/service/modules/assignPoints'
-
-import TableData from './components/TableData.vue'
-import { pFlist } from './components/treeList'
-
-const currentType = ref()
-const startDate = dayjs().format('YYYY-MM-DD')
-onLoad((e: any) => {
-  currentType.value = e?.type
-
-  getDict()
-})
-
-const personalList = ref<any[]>([])
-// 全职人员
-const objectScopeList5 = ref<any[]>([])
-// 分类
-const packageScopeList = ref<any[]>([])
-// 关联服务企业
-const allParentDeptList = ref<any[]>([])
-const getDict = () => {
-  getTypeidPersonalApi().then((res: any) => {
-    const arr: any[] = []
-    res.data.forEach((item: any) => {
-      const addnew = {
-        value: item.value,
-        label: item.label
-      }
-      arr.push(addnew)
-    })
-    personalList.value = arr.filter((item) => item.value === '3')
-  })
-  getObjectScopeListApi('5').then((res: any) => {
-    objectScopeList5.value = res.data?.map((item: any) => {
-      return {
-        value: item.id,
-        label: item.realname + ' ' + item.username
-      }
-    })
-  })
-  getPackageScopeListApi().then((res: any) => {
-    packageScopeList.value = res.data
-    if (currentType.value === '1') {
-      form.packageUserScope = res.data[0].value
-      form.packageUserScopeLable = res.data[0].label
-    }
-  })
-  // 获取执行包编号
-  if (currentType.value === '1') {
-    getWmscorepackageSnApi().then((res: any) => (form.packageSn = res.data))
-  }
-  // 获取关联服务企业
-  getListAncestor().then((res: any) => (allParentDeptList.value = res.data))
-}
-
-const formDisabled = ref(false)
-const typeidPickerRef = ref()
-const userListPickerRef = ref()
-const relatedServicePickerRef = ref()
-const relationScoreIdPickerRef = ref()
-
-const showSelect = (type: string) => {
-  if (formDisabled.value) return
-  switch (type) {
-    case 'typeidLabel':
-      typeidPickerRef.value.open()
-      break
-    case 'userListLabel':
-      if (form.typeid !== '3') return
-      userListPickerRef.value.open()
-      break
-    case 'relatedServiceLabel':
-      relatedServicePickerRef.value.open()
-      break
-    case 'relationScoreIdLable':
-      if (!relationScoreList.value.length) return
-      relationScoreIdPickerRef.value.open()
-      break
-
-    default:
-      break
-  }
-}
-// 控制是否可以选择接单对象范围
-const packageUserScopeDisable = ref(false)
-// 控制承接对象显示隐藏
-const userListShow = ref(true)
-const pickerConfim = (e: any, type: string) => {
-  if (type === 'typeidLabel') {
-    const value = e.value[0]
-    form.typeid = value.value
-    form.typeidLabel = value.label
-    // 选择全职
-    if (value?.value === '3') {
-      packageUserScopeDisable.value = true
-      form.packageUserScope = packageScopeList.value[0].value
-      form.packageUserScopeLable = packageScopeList.value[0].label
-      userListShow.value = true
-    } else {
-      userListShow.value = false
-      form.userListLabel = ''
-      form.userList = []
-    }
-  }
-  if (type === 'userListLabel') {
-    const value = e.value[0]
-    form.userList = [value.value]
-    form.userListLabel = value.label
-  }
-  if (type === 'relatedServiceLabel') {
-    const value = e.value[0]
-    form.relatedService = value.deptId + ''
-    form.relatedServiceLabel = value.name
-    form.relationScoreId = ''
-    form.relationScoreIdLable = ''
-    getRelationScoreListFn(value.deptId)
-  }
-  if (type === 'relationScoreIdLable') {
-    const value = e.value[0]
-    form.relationScoreId = value.id
-    form.relationScoreIdLable = value.scorePackageName
-    if (value.id === '-1') {
-      form.kfpjf = ''
-    } else {
-      form.drugtable = value?.drugtable
-      form.drugtableLabel = value?.drugtableName[0] || '测试qaq'
-      initRelationScoreIdFn(value.id)
-    }
-  }
-}
-
-const tableRef = ref()
-
-const relationScoreList = ref<any[]>([])
-const getRelationScoreListFn = async (id: number) => {
-  const obj = { relatedService: id }
-  const res = await getRelationScoreListApi(obj)
-  relationScoreList.value = res.data
-}
-const initRelationScoreIdFn = async (id: number) => {
-  const obj = { id: id }
-  const res = await getRelationScoreListApi(obj)
-  if (res.code === 0) {
-    form.kfpjf = res.data[0].kfpjf
-    const pkgTaskTypeQtyList = res.data[0].pkgTaskTypeQtyList
-    tableRef.value.setData(pkgTaskTypeQtyList, res.data[0].kfpjf)
-    form.startTime = res.data[0]?.startTime
-    form.endTimeValue = res.data[0]?.endTime
-    form.drugtable = res.data[0]?.drugtable
-    form.drugtableLabel = res.data[0]?.drugtableName[0] || '测试qaq'
-  }
-}
-const cancelFn = () => {
-  uni.navigateBack()
-}
-
-const confirmFn = (type: number) => {
-  const tableData = tableRef.value.getData()
-
-  let pkgTaskTypeQtyList = tableData.map((item: any) => {
-    return {
-      taskTypeName: item.taskTypeName,
-      price: item.score,
-      taskTypeId: item.taskTypeId,
-      qty: item.qty ? Number(item.qty) : 0
-    }
-  })
-  let treeArr = tableData.map((item: any) => {
-    return {
-      taskTypeName: item.taskTypeName,
-      taskTypeId: item.orgTaskTypeId
-    }
-  })
-  let flag = pkgTaskTypeQtyList.every((item: any) => item.qty == 0)
-  if (flag) {
-    return uni.showToast({
-      title: '请选择具体任务',
-      icon: 'none',
-      duration: 800
-    })
-  }
-
-  let arr = [...pFlist]
-  tableData.forEach((item: any) => {
-    const curr = arr.find((iten) => iten.taskTypeId === item.parent_id)
-    if (curr) {
-      curr.children.push({
-        taskTypeId: item.orgTaskTypeId,
-        taskTypeName: item.taskTypeName
-      })
-    }
-  })
-  let taskTypeList = []
-  taskTypeList = arr.concat(treeArr).filter((item) => {
-    if (!item.children || item.children.length > 0) {
-      return item
-    }
-  })
-
-  // data.forEach((item: any) => {
-  //   taskTypeList = taskTypeList.concat(...item.children)
-  // })
-  formRef.value
-    .validate()
-    .then(async () => {
-      if (form.typeid == '3') {
-        if (!form.userListLabel) {
-          return uni.showToast({
-            title: '接单对象不能为空',
-            icon: 'none',
-            duration: 800
-          })
-        }
-      }
-      if (Number(form.score) > Number(form.kfpjf) && form.relationScoreId != '-1') {
-        return uni.showToast({
-          title: '可分配积分不足',
-          icon: 'none'
-        })
-      }
-      if (Number(form.score) === 0) {
-        return uni.showToast({
-          title: '服务总值必须大于0',
-          icon: 'none'
-        })
-      }
-      if (!taskTypeList?.length) {
-        return uni.showToast({
-          title: '有效服务类型不能为空',
-          icon: 'none'
-        })
-      }
-      form.taskTypeList = taskTypeList
-
-      submitInfo(type, pkgTaskTypeQtyList)
-    })
-    .catch((err: any) => {
-      console.log('err', err)
-    })
-}
-const submitInfo = async (type: number, pkgTaskTypeQtyList: any) => {
-  const obj: any = toRaw(form)
-  obj.packageType1 = '1'
-  obj.packageType2 = '1'
-  obj.userNum = '1'
-  obj.pkgTaskTypeQtyList = pkgTaskTypeQtyList
-  const res = await addWmScorePackageApi(obj)
-  if (res.code === 0) {
-    uni.showToast({
-      title: '添加成功',
-      icon: 'none'
-    })
-    if (type === 0) {
-      setTimeout(() => {
-        uni.navigateBack()
-      }, 1000)
-    } else {
-      form.kfpjf = (form.kfpjf as number) - (form.score as number)
-      form.scorePackageName = ''
-      getWmscorepackageSnApi().then((res: any) => (form.packageSn = res.data))
-    }
-  } else {
-    uni.showToast({
-      title: res?.msg,
-      icon: 'none'
-    })
-  }
-}
-const labelStyle = {
-  fontWeight: 400,
-  fontSize: '30rpx',
-  color: '#000'
-}
-const formRef = ref()
-const form = reactive({
-  scorePackageName: '',
-  typeid: '',
-  typeidLabel: '',
-  userList: [] as any[],
-  userListLabel: '',
-  relatedService: '',
-  relatedServiceLabel: '',
-  relationScoreId: '',
-  relationScoreIdLable: '',
-  drugtable: [] as any[],
-  drugtableLabel: '',
-  kfpjf: '' as string | number,
-  score: '' as string | number,
-  packageUserScope: '',
-  packageUserScopeLable: '',
-  startTime: '',
-  endTimeValue: '',
-  packageSn: '',
-  description: '',
-  taskTypeList: [] as any[]
-})
-const rules = reactive({
-  scorePackageName: {
-    type: 'string',
-    required: true,
-    message: '请输入执行包名称',
-    trigger: ['blur', 'change']
-  },
-  typeidLabel: {
-    type: 'string',
-    required: true,
-    message: '请选择执行包名称',
-    trigger: ['blur', 'change']
-  },
-  relatedServiceLabel: {
-    type: 'string',
-    required: true,
-    message: '请选择关联服务企业',
-    trigger: ['blur', 'change']
-  },
-  relationScoreIdLable: {
-    type: 'string',
-    required: true,
-    message: '请选择关联执行包',
-    trigger: ['blur', 'change']
-  },
-  packageUserScopeLable: {
-    type: 'string',
-    required: true,
-    message: '请选择接单对象范围',
-    trigger: ['blur', 'change']
-  },
-  endTimeValue: {
-    type: 'string',
-    required: true,
-    message: '请选择接单对象范围',
-    trigger: ['blur', 'change']
-  }
-})
-</script>
-
-<style lang="scss" scoped>
-.add {
-  background: #f2f2f2;
-  min-height: 100vh;
-  box-sizing: border-box;
-  padding: 24rpx;
-  .form {
-    background: #fff;
-    padding: 30rpx;
-    border-radius: 12rpx;
-  }
-}
-:deep(.uv-form-item__body__left) {
-  padding-left: 18rpx;
-}
-
-.btn {
-  margin-top: 20rpx;
-  box-sizing: border-box;
-  width: 700rpx;
-  height: 160rpx;
-  background-color: #fff;
-  border-radius: 12rpx;
-  display: flex;
-  padding: 30rpx 46rpx 54rpx;
-  justify-content: space-between;
-  box-sizing: border-box;
-
-  view {
-    font-weight: 400;
-    box-sizing: border-box;
-    font-size: 32rpx;
-    line-height: 45rpx;
-    border-radius: 8rpx;
-    height: 72rpx;
-    width: 290rpx;
-    display: flex;
-    align-items: center;
-    justify-content: center;
-  }
-  .cancel {
-    border: 2rpx solid #c7c7c7;
-    color: #111;
-  }
-  .confirm {
-    background-color: #6eb657;
-    color: #ffffff;
-  }
-}
-</style>

+ 0 - 131
src/pages-sub-service-mangement/generateReport/index.vue

@@ -1,131 +0,0 @@
-<template>
-  <view class="generate-report">
-    <view class="form">
-      <uv-form
-        labelPosition="left"
-        :model="form"
-        ref="formRef"
-        labelWidth="120"
-        :labelStyle="labelStyle"
-      >
-        <uv-form-item label="执行包名称" prop="score_package_name" borderBottom required>
-          <uv-input v-model="form.score_package_name" border="none" placeholder="请输入" readonly />
-        </uv-form-item>
-        <uv-form-item label="报告ID" prop="report_id" borderBottom required>
-          <uv-input v-model="form.report_id" border="none" placeholder="请输入" readonly />
-        </uv-form-item>
-        <uv-form-item label="完成积分值" prop="score" borderBottom required>
-          <uv-input v-model="form.score" border="none" placeholder="请输入" readonly />
-        </uv-form-item>
-        <uv-form-item label="合计服务数" prop="score_count" borderBottom required>
-          <uv-input v-model="form.score_count" border="none" placeholder="请输入" readonly />
-        </uv-form-item>
-        <uv-form-item label="结算企业" prop="description" borderBottom required>
-          <uv-input v-model="form.description" border="none" placeholder="请输入" readonly />
-        </uv-form-item>
-      </uv-form>
-    </view>
-    <view class="btn">
-      <view @click="generateApprovalFn">生成报告并审批</view>
-    </view>
-  </view>
-</template>
-
-<script setup lang="ts">
-import { onLoad } from '@dcloudio/uni-app'
-import { ref, reactive } from 'vue'
-
-import { selectReportApi, saveAndUpdateWmReportApi } from '@/service/modules/taskManagement'
-
-const currentId = ref()
-
-onLoad((e: any) => {
-  currentId.value = e?.scorePackageId
-  selectReportFn()
-})
-const labelStyle = {
-  fontWeight: 400,
-  fontSize: '30rpx',
-  color: '#000'
-}
-const form = ref({
-  score_package_name: '',
-  report_id: '',
-  score: '',
-  score_count: '',
-  description: ''
-})
-
-const selectReportFn = async () => {
-  const obj = {
-    scorePackageId: currentId.value
-  }
-
-  const res = await selectReportApi(obj)
-  if (res.data == 0) {
-    uni.showToast({
-      icon: 'none',
-      title: '没有可生成报告的服务'
-    })
-    setTimeout(() => {
-      uni.navigateBack()
-    }, 1000)
-  } else {
-    form.value = res.data
-  }
-}
-
-const generateApprovalFn = async () => {
-  const obj = {
-    scorePackageId: currentId.value,
-    taskStatus: 3
-  }
-  const res = await saveAndUpdateWmReportApi(obj)
-  if (res.code === 0) {
-    uni.showToast({
-      title: '提交成功',
-      icon: 'none'
-    })
-    setTimeout(() => {
-      uni.navigateBack()
-    }, 1000)
-  }
-}
-</script>
-
-<style lang="scss" scoped>
-.generate-report {
-  min-height: 100vh;
-  background-color: #f2f2f2;
-  padding: 24rpx;
-  .form {
-    background: #fff;
-    padding: 30rpx;
-    border-radius: 12rpx;
-  }
-}
-:deep(.uv-form-item__body__left) {
-  padding-left: 18rpx;
-}
-
-.btn {
-  width: 700rpx;
-  background-color: #fff;
-  height: 160rpx;
-  box-sizing: border-box;
-  border-radius: 12rpx;
-  position: fixed;
-  bottom: 40rpx;
-  left: 24rpx;
-  padding: 34rpx 46rpx 54rpx;
-  view {
-    background-color: #6eb657;
-    border-radius: 8rpx;
-    text-align: center;
-    line-height: 72rpx;
-    font-weight: 400;
-    color: #fff;
-    font-size: 32rpx;
-  }
-}
-</style>

+ 0 - 404
src/pages-sub-service-mangement/quickAudit/index.vue

@@ -1,404 +0,0 @@
-<template>
-  <view class="task-audit">
-    <view class="search">
-      <view class="top-search">
-        <view class="search-input">
-          <uv-input
-            v-model="searchParams.planName"
-            :customStyle="customStyle"
-            clearable
-            shape="circle"
-            placeholder="请输入"
-            prefixIcon="search"
-            prefixIconStyle="font-size: 22px;color: #6eb657"
-          ></uv-input>
-        </view>
-        <view class="search-button" @click="searchFn">搜索</view>
-        <uv-icon name="plus-circle" color="#6eb657" size="24" />
-      </view>
-    </view>
-    <view class="checkbox">
-      <checkbox-group @change="checkboxAllChange">
-        <label>
-          <checkbox :checked="checkedAll" style="transform: scale(0.8)" color="#6eb657" />全选
-        </label>
-      </checkbox-group>
-    </view>
-    <view class="list" v-if="hasInfo">
-      <view class="list-content" v-for="item in listArr" :key="item.id">
-        <checkbox-group @change="checkboxChange(item)">
-          <checkbox :checked="item.checked" style="transform: scale(0.8)" color="#6eb657" />
-        </checkbox-group>
-        <view class="item" @click="onDetail(item)">
-          <view class="top">
-            <view class="top-l">
-              <image src="@/static/images/icon/review.png" class="image" />
-              <text>{{ item.lookintoDate }}</text>
-            </view>
-            <view class="top-r">
-              <text></text>
-              <view class="status">{{ item?.checkState?.displayInfo }}</view>
-            </view>
-          </view>
-          <view class="content">
-            <view class="title">
-              <view class="task-name">{{ item.taskTypeName || 'abcd' }}</view>
-              <view class="score">+{{ item.score }}积分</view>
-            </view>
-            <view class="num"> 任务编号:{{ item.taskNumber }} </view>
-          </view>
-        </view>
-      </view>
-      <view class="btn">
-        <view class="cancel" @click="reviewFn('4')">拒绝</view>
-        <view class="confirm" @click="reviewFn('3')">通过</view>
-      </view>
-    </view>
-    <noData v-else />
-  </view>
-</template>
-
-<script setup lang="ts">
-import { reactive, ref } from 'vue'
-import { onShow, onLoad, onReachBottom } from '@dcloudio/uni-app'
-import {
-  getListApi,
-  getTaskListPageApi,
-  batchApprovalTaskApi,
-  reportBatchApprovalTaskApi
-} from '@/service/modules/taskAudit'
-import { useLoginStore } from '@/store/login'
-import noData from '@/components/noData/index.vue'
-import { useReview } from '@/store/review'
-
-const loginStore = useLoginStore()
-let userInfo: any = loginStore.currentUserInfo
-const roles: number[] = userInfo.roles
-
-const reviewStore = useReview()
-const currentId = ref()
-const taskStatus = ref()
-
-const checkedAll = ref(false)
-
-const checkboxAllChange = () => {
-  checkedAll.value = !checkedAll.value
-
-  listArr.value.forEach((item) => (item.checked = checkedAll.value))
-}
-
-const currentScoreId = ref()
-const currentPage = ref()
-
-onLoad((e) => {
-  currentId.value = e?.id
-  currentPage.value = e?.page
-  let text = ''
-  if (e?.page === '1') {
-    taskStatus.value = e?.taskStatus
-    searchParams.value.taskStatus = e?.taskStatus
-    searchParams.value.scorePackageId = e?.id
-    text = e?.taskStatus ? '任务审核' : '任务详情'
-  } else if (e?.page === '2') {
-    taskListPageParams.isApprovalPage = e?.type == 'approval' ? '1' : '0'
-    taskListPageParams.id = e?.id
-    text = e?.type == 'approval' ? '任务审核' : '任务详情'
-  }
-  uni.setNavigationBarTitle({
-    title: text
-  })
-})
-
-onShow(() => {
-  searchParams.value.current = 1
-  listArr.value = []
-  getList()
-})
-const customStyle = {
-  backgroundColor: '#f6f6f6'
-}
-
-class Params {
-  taskStatus = ''
-  scorePackageId = ''
-  planName = ''
-  total = -1
-  current = 1
-  size = 10
-}
-
-const searchParams = ref(new Params())
-
-const taskListPageParams = reactive({
-  isApprovalPage: '',
-  id: '',
-  current: 1,
-  size: 10
-})
-
-const checkboxChange = (item: any) => {
-  item.checked = !item.checked
-}
-
-const searchFn = () => {
-  listArr.value = []
-  searchParams.value.current = 1
-  getList()
-}
-
-const hasInfo = ref(true)
-const listArr = ref<any[]>([])
-
-const getList = async () => {
-  uni.showLoading()
-  let res
-  if (currentPage.value === '1') {
-    res = await getListApi(searchParams.value)
-  } else if (currentPage.value === '2') {
-    res = await getTaskListPageApi(taskListPageParams)
-  }
-  res.data.records.forEach((item: any) => {
-    item.checked = false
-  })
-  listArr.value = listArr.value.concat(res.data.records)
-  searchParams.value.total = res.data.total
-  hasInfo.value = !!listArr.value.length
-  uni.hideLoading()
-}
-
-const onDetail = (row: any) => {
-  const info = JSON.stringify(row)
-  reviewStore.setCurrentInfo(info)
-  if (currentPage.value === '1') {
-    const show = !!searchParams.value.taskStatus
-    uni.navigateTo({
-      url: `/pages-sub-service-mangement/taskAuditDetail/index?id=${row.id}&type=1&show=${show}`
-    })
-  } else if (currentPage.value === '2') {
-    const show = taskListPageParams.isApprovalPage === '1'
-    uni.navigateTo({
-      url: `/pages-sub-service-mangement/taskAuditDetail/index?id=${row.id}&type=2&reportId=${currentId.value}&show=${show}`
-    })
-  }
-}
-
-onReachBottom(() => {
-  if (listArr.value.length === searchParams.value.total) return
-  if (currentPage.value === '1') {
-    searchParams.value.current++
-  } else if (currentPage.value === '2') {
-    taskListPageParams.current++
-  }
-
-  getList()
-})
-
-const reviewFn = async (status: string) => {
-  const arr = listArr.value.filter((item) => item.checked)
-  if (!arr.length) {
-    return uni.showToast({
-      title: '请先选择数据',
-      icon: 'none'
-    })
-  }
-  const taskIdToNodeIdMap: any = {}
-  const idArr = arr.map((item) => item.id)
-  const ids = idArr.join(',')
-
-  arr.forEach((item) => {
-    if (currentPage.value === '1') {
-      taskIdToNodeIdMap[item.id] = item.checkState.curNodeId
-    } else if (currentPage.value === '2') {
-      taskIdToNodeIdMap[item.id] = item.checkState.nextNodeId
-      if (roles.includes(42)) {
-        taskIdToNodeIdMap[item.id] = 8
-      }
-      // 40 商务组
-      if (roles.includes(40)) {
-        taskIdToNodeIdMap[item.id] = 9
-      }
-    }
-  })
-  let res
-  if (currentPage.value === '1') {
-    let obj = {
-      id: ids,
-      taskIdToNodeIdMap: taskIdToNodeIdMap,
-      taskStatus: status
-    }
-    res = await batchApprovalTaskApi(obj)
-  } else if (currentPage.value === '2') {
-    let obj = {
-      reportId: currentId.value,
-      id: ids,
-      taskIds: ids,
-      taskIdToNodeIdMap: taskIdToNodeIdMap,
-      approvalOpinion: status == '3' ? '1' : '2'
-    }
-    res = await reportBatchApprovalTaskApi(obj)
-  }
-  if (res.data) {
-    uni.showToast({
-      title: '审核成功',
-      icon: 'none'
-    })
-  }
-  setTimeout(() => {
-    listArr.value = []
-    searchParams.value.current = 1
-    getList()
-  }, 1000)
-}
-</script>
-
-<style lang="scss" scoped>
-.task-audit {
-  padding: 24rpx 30rpx;
-
-  .search {
-    position: fixed;
-    width: 750rpx;
-    padding: 0 30rpx;
-    top: 0;
-    height: 60rpx;
-    background-color: #fff;
-    z-index: 99;
-    .top-search {
-      display: flex;
-      align-items: center;
-
-      .search-input {
-        width: 540rpx;
-        height: 70rpx;
-      }
-      .search-button {
-        color: #6eb657;
-        font-size: 30rpx;
-        margin: 0 10px;
-        font-weight: 400;
-      }
-    }
-  }
-  .checkbox {
-    margin-top: 80rpx;
-  }
-
-  .list {
-    margin-bottom: 120rpx;
-    padding-bottom: 60rpx;
-    .list-content {
-      display: flex;
-      align-items: center;
-      margin-top: 20rpx;
-    }
-    .item {
-      flex: 1;
-      box-shadow: 0px 4rpx 4rpx 0px rgba(0, 0, 0, 0.05);
-      margin-bottom: 20rpx;
-      border-radius: 16rpx;
-      .top {
-        padding: 0 30rpx;
-        box-sizing: border-box;
-        height: 100rpx;
-        background-color: #6eb657;
-        border-top-left-radius: 16rpx;
-        border-top-right-radius: 16rpx;
-        display: flex;
-        align-items: center;
-        justify-content: space-between;
-        .top-l {
-          display: flex;
-          align-items: center;
-
-          .image {
-            width: 28rpx;
-            height: 28rpx;
-          }
-          text {
-            font-size: 26rpx;
-            color: #fff;
-            line-height: 36rpx;
-            margin-left: 20rpx;
-          }
-        }
-        .top-r {
-          display: flex;
-          align-items: center;
-          text {
-            display: block;
-            width: 10rpx;
-            height: 10rpx;
-            background-color: #fff;
-            border-radius: 50%;
-            margin-right: 10rpx;
-          }
-          .status {
-            color: #fff;
-            font-size: 28rpx;
-            line-height: 40rpx;
-          }
-        }
-      }
-      .content {
-        background-color: #fff;
-        padding: 30rpx;
-        box-sizing: border-box;
-        .title {
-          display: flex;
-          justify-content: space-between;
-          margin-bottom: 20rpx;
-          align-items: center;
-          .task-name {
-            font-size: 32rpx;
-            line-height: 45rpx;
-            color: #313131;
-          }
-          .score {
-            font-size: 28rpx;
-            color: #72b25b;
-          }
-        }
-        .num {
-          font-weight: 400;
-          font-size: 22rpx;
-          line-height: 32rpx;
-          color: #999999;
-        }
-      }
-    }
-  }
-}
-
-.btn {
-  display: flex;
-  padding: 20rpx 30rpx;
-  box-sizing: border-box;
-  justify-content: space-between;
-  position: fixed;
-  background-color: #fff;
-  bottom: 0;
-  width: 700rpx;
-  height: 120rpx;
-
-  view {
-    font-weight: 400;
-    box-sizing: border-box;
-    font-size: 32rpx;
-    line-height: 45rpx;
-    border-radius: 8rpx;
-    height: 72rpx;
-    width: 290rpx;
-    display: flex;
-    align-items: center;
-    justify-content: center;
-  }
-  .cancel {
-    border: 2rpx solid #c7c7c7;
-    color: #111;
-  }
-  .confirm {
-    background-color: #6eb657;
-    color: #ffffff;
-  }
-}
-</style>

+ 0 - 155
src/pages-sub-service-mangement/quickAuditCard/components/cardList.vue

@@ -1,155 +0,0 @@
-<template>
-  <view class="card-list">
-    <view class="base-info">
-      <view class="title"> 任务类型: {{ getName(item.taskType) }} {{ props.index + 1 }}</view>
-      <view class="info">
-        <view>任务积分:{{ item.score }}</view>
-        <view>代表姓名:{{ item.taskUserName }}</view>
-      </view>
-      <view class="title">任务详情: </view>
-    </view>
-    <view class="task-detail">
-      <!-- 正常任务 -->
-      <view class="field-box" v-if="item.config?.length">
-        <template v-for="iten in item.config" :key="iten.id">
-          <!-- 文本展示类型 -->
-          <textCom v-if="textArr.includes(iten.taskFiledType)" :item="iten" :detailInfo="item" />
-          <!-- 下拉选择 -->
-          <selectCom
-            v-if="iten.taskFiledType == 'domain' || iten.taskFiledType == 'select'"
-            :item="iten"
-            :hideLine="true"
-            :detailInfo="item"
-            :dictList="item.dict"
-          />
-          <!-- 图片类型 -->
-          <template v-if="iten.taskFiledType == 'img' || iten.taskFiledType == 'sign'">
-            <imgCom :item="iten" :detailInfo="item" />
-          </template>
-          <!-- 长文本 -->
-          <template v-if="iten.taskFiledType == 'longtext'">
-            <longtextCom :item="iten" :detailInfo="item" />
-          </template>
-          <!-- 树形选择 -->
-        </template>
-      </view>
-      <!-- 转发类任务  -->
-      <view v-if="shareIdArr.includes(item.taskType)">
-        <shareCom :detailInfo="item" :ercodeUrl="ercodeUrl" />
-      </view>
-      <!-- 拜访类任务 -->
-      <view v-if="visitIdArr.includes(item.taskType)">
-        <visitCom :signInfoDetail="item.wmUserSignList" />
-      </view>
-    </view>
-    <view class="btn">
-      <view class="cancel" @click="reviewFn(0)">拒绝</view>
-      <view class="confirm" @click="reviewFn(1)">通过</view>
-    </view>
-  </view>
-</template>
-
-<script setup lang="ts">
-import { ref } from 'vue'
-import textCom from '@/pages/task/task-detail/components/textCom.vue'
-import selectCom from '@/pages/task/task-detail/components/selectCom.vue'
-import imgCom from '@/pages/task/task-detail/components/imgCom.vue'
-import longtextCom from '@/pages/task/task-detail/components/longtextCom.vue'
-import visitCom from '@/pages/task/task-detail/components/visitCom.vue'
-import shareCom from '@/pages/task/task-detail/components/shareCom.vue'
-
-const props = defineProps(['item', 'index', 'taskList'])
-const emit = defineEmits(['reviewFn'])
-
-// 文本展示类型
-const textArr = [
-  'area',
-  'text',
-  'inputautoselect',
-  'map',
-  'datetime',
-  'datatimerange',
-  'number',
-  'money',
-  'tree'
-]
-
-// 转发分享类任务类型id
-const shareIdArr = ['8', '9', '10', '11']
-// 二维码
-const ercodeUrl = ref()
-
-// 拜访类任务类型id
-const visitIdArr = ['5', '6', '33']
-
-function getName(taskType: any) {
-  let curr = props.taskList?.find((item: any) => item.id == taskType)
-  if (curr) return curr.taskTypeName
-}
-
-const reviewFn = (type: number) => {
-  emit('reviewFn', type, props.index)
-}
-</script>
-
-<style lang="scss" scoped>
-.card-list {
-  margin-bottom: 30rpx;
-  background: #fff;
-
-  .base-info {
-    view {
-      line-height: 50rpx;
-    }
-    background-color: #fff;
-    padding: 20rpx;
-    padding-bottom: 0;
-    .title {
-      font-size: 32rpx;
-      color: #000;
-      font-weight: 800;
-      margin: 18rpx;
-    }
-  }
-
-  .task-detail {
-    box-sizing: border-box;
-    .poster-img {
-      padding: 20rpx;
-      width: 710rpx;
-    }
-    .line {
-      width: 100%;
-      height: 20rpx;
-      background: #f4f4f4;
-    }
-  }
-}
-.btn {
-  margin-top: 20rpx;
-  padding: 0 20rpx;
-  display: flex;
-  justify-content: space-between;
-
-  view {
-    font-weight: 400;
-    box-sizing: border-box;
-    font-size: 32rpx;
-    line-height: 45rpx;
-    border-radius: 8rpx;
-    height: 72rpx;
-    width: 290rpx;
-    display: flex;
-    align-items: center;
-    justify-content: center;
-  }
-  .cancel {
-    border: 2rpx solid #c7c7c7;
-    color: #111;
-  }
-  .confirm {
-    background-color: #6eb657;
-    color: #ffffff;
-  }
-}
-</style>

+ 0 - 146
src/pages-sub-service-mangement/quickAuditCard/index.vue

@@ -1,146 +0,0 @@
-<template>
-  <view class="quick-audit-card">
-    <view v-for="(item, index) in list" :key="index" class="card-list" v-show="item.show">
-      <CardList :item="item" :index="index" :taskList="taskListArr" @reviewFn="reviewFn" />
-      <uv-divider text="分割线" textColor="#6eb657" lineColor="#6eb657"></uv-divider>
-    </view>
-  </view>
-</template>
-
-<script setup lang="ts">
-import { onShow, onLoad, onReachBottom } from '@dcloudio/uni-app'
-import { reactive, ref } from 'vue'
-import {
-  getListApi,
-  getPackageTaskTypeApi,
-  batchApprovalTask,
-  wmreportBatchApprovalTask,
-  wmreportFetchListApi
-} from '@/service/modules/quickAuditCard'
-import { useLoginStore } from '@/store/login'
-import CardList from './components/cardList.vue'
-
-const loginStore = useLoginStore()
-let userInfo: any = loginStore.currentUserInfo
-const roles: number[] = userInfo?.roles || []
-
-const type = ref('')
-const id = ref('')
-onLoad((e) => {
-  type.value = e?.type
-  id.value = e?.id
-  getTaskListArr()
-  getList()
-})
-
-const taskListArr = ref<any[]>([])
-const getTaskListArr = async () => {
-  const res = await getPackageTaskTypeApi()
-  taskListArr.value = res.data
-}
-
-let list = ref<any[]>([])
-const getList = async () => {
-  let res
-  if (type.value === '1') {
-    res = await getListApi({
-      packageId: id.value
-    })
-  } else if (type.value === '2') {
-    res = await wmreportFetchListApi({
-      id: id.value
-    })
-  }
-  if (res.code === 0) {
-    list.value = res.data
-  }
-  // 针对图片处理
-  list.value.forEach((item) => {
-    if (item.config && item.config.length != 0) {
-      item.config.forEach((iten: any) => {
-        iten.taskFiledType = iten.taskFiledType.trim()
-        if (iten.taskFiledType == 'img') {
-          getImgList(item.wmTaskContent[iten.taskFiledKey], iten)
-        }
-      })
-    }
-    item.show = true
-  })
-}
-const getImgList = (urlStr: any, item: any) => {
-  if (item.taskFiledType != 'img') return ''
-  if (!urlStr) return ''
-  let uArr = urlStr.split(',')
-  if (!uArr) return ''
-  let imgList: any[] = []
-  let previewList: any[] = []
-  uArr.forEach((uItem: any) => {
-    let type = '无 '
-    if (uItem.includes(';1')) {
-      type = '拍照'
-      uItem = uItem.replace(';1', '')
-    }
-    if (uItem.includes(';2')) {
-      type = '相册'
-      uItem = uItem.replace(';2', '')
-    }
-    imgList.push({
-      type,
-      url: import.meta.env.VITE_APP_URL + uItem
-    })
-    previewList.push(import.meta.env.VITE_APP_URL + uItem)
-  })
-  item.imgList = imgList
-  item.previewList = previewList
-  return ''
-}
-// type  0 拒绝 1 通过
-const reviewFn = async (result: number, index: number) => {
-  const item = list.value[index]
-  let res
-  if (type.value === '1') {
-    const obj = {
-      id: item.id,
-      taskStatus: result == 0 ? 4 : 3,
-      taskIdToNodeIdMap: {
-        [item.id]: item.taskInfo.checkState.curNodeId
-      }
-    }
-    res = await batchApprovalTask(obj)
-  } else if (type.value === '2') {
-    const approvalOpinion = result == 1 ? 1 : 2
-    let nodeId = item.taskInfo.checkState.nextNodeId
-    if (roles.includes(42)) {
-      nodeId = 8
-    }
-    // 40 商务组
-    if (roles.includes(40)) {
-      nodeId = 9
-    }
-    let obj = {
-      reportId: id.value,
-      taskIds: id,
-      taskIdToNodeIdMap: {
-        [item.id]: nodeId
-      },
-      approvalOpinion: approvalOpinion
-    }
-    res = await wmreportBatchApprovalTask(obj)
-  }
-
-  if (res.code == 0) {
-    list.value[index].show = false
-  }
-}
-</script>
-
-<style lang="scss" scoped>
-.quick-audit-card {
-  background-color: #f8f8f8;
-  .card-list {
-    margin-bottom: 20rpx;
-    padding-bottom: 20rpx;
-    background-color: #fff;
-  }
-}
-</style>

+ 0 - 381
src/pages-sub-service-mangement/serviceDelivery/index.vue

@@ -1,381 +0,0 @@
-<template>
-  <view class="objectives-list">
-    <view class="search">
-      <view class="top-search">
-        <view class="search-input">
-          <uv-input
-            v-model="searchParams.scorePackageName"
-            :customStyle="customStyle"
-            clearable
-            shape="circle"
-            placeholder="请输入"
-            prefixIcon="search"
-            prefixIconStyle="font-size: 22px;color: #6eb657"
-          ></uv-input>
-        </view>
-        <view class="search-button" @click="searchFn">搜索</view>
-        <uv-icon name="plus-circle" color="#6eb657" size="24" @click="addFn" />
-      </view>
-      <view class="search-content">
-        <view
-          class="search-list"
-          @click="searchClick('acceptSug')"
-          :class="searchParams.acceptSug ? 'active' : ''"
-        >
-          <text>承接对象</text>
-          <uv-icon
-            name="arrow-down-fill"
-            :color="searchParams.acceptSug ? '#6eb657' : '#111111'"
-            size="14"
-          />
-        </view>
-        <view
-          class="search-list"
-          @click="searchClick('period')"
-          :class="searchParams.allocationDate ? 'active' : ''"
-        >
-          <text>创建日期</text>
-          <uv-icon
-            name="arrow-down-fill"
-            :color="searchParams.allocationDate ? '#6eb657' : '#111111'"
-            size="14"
-          />
-        </view>
-      </view>
-    </view>
-
-    <view class="list" v-if="hasInfo">
-      <view class="item" v-for="item in listArr" :key="item.id">
-        <view class="header">
-          <view class="title">{{ item.scorePackageName }}</view>
-          <view class="status">
-            <text class="circle"></text>
-            <text>{{ getStatusName(item.packageFinishStatus) }}</text>
-          </view>
-        </view>
-        <view class="content">
-          <view class="txt">承接对象:{{ getCsoName(Number(item.acceptSug)) }}</view>
-          <view class="txt">分配日期:{{ item.allocationDate }}</view>
-          <view class="progress">
-            <uv-line-progress
-              class="pro-two"
-              round
-              :showText="false"
-              :percentage="item.finishRate"
-              activeColor="#95dc7e"
-              inactiveColor="#f8f8f0"
-            ></uv-line-progress>
-            <text>{{ item.finishRate }}%</text>
-          </view>
-          <view class="txt">{{ item.ysh }}/{{ item.score }}</view>
-          <view class="btns">
-            <view class="btn" @click.stop.prevent.self="toDetail(2, item)">
-              <image src="@/static/images/icon/detail.png" class="image" />
-              <text>查看</text>
-            </view>
-            <view class="btn" @click.stop.prevent.self="toDetail(3, item)">
-              <image src="@/static/images/icon/edit.png" class="image" />
-              <text>编辑</text>
-            </view>
-            <view class="btn" @click.stop.prevent.self="stopBtn(item)">
-              <image src="@/static/images/icon/close.png" class="image" />
-              <text>终止</text>
-            </view>
-          </view>
-        </view>
-      </view>
-    </view>
-    <noData v-else />
-    <!-- 选择承接对象 -->
-    <uv-picker
-      :cancelText="searchParams.acceptSug ? '清空' : '取消'"
-      ref="pickerRef"
-      :columns="csoList"
-      keyName="gsmc"
-      @confirm="pickerConfim"
-      @cancel="pickerCancel"
-    ></uv-picker>
-    <!-- 月份范围 -->
-    <KDatePicker
-      v-model="show"
-      type="day"
-      :confirmText="searchParams.allocationDate.length ? '清除' : '确定'"
-      is-range
-      @change="getDate"
-      formatter="YYYY-MM-DD"
-    />
-  </view>
-</template>
-
-<script setup lang="ts">
-import { ref } from 'vue'
-import { onShow, onReachBottom } from '@dcloudio/uni-app'
-import { getListCsoApi } from '@/service/modules/objectivesList'
-import { getListApi } from '@/service/modules/serviceDelivery'
-import { getDictByNameApi } from '@/service/modules/getDict'
-import KDatePicker from '@/components/dateSelect/k-date-picker/KDatePicker.vue'
-import noData from '@/components/noData/index.vue'
-
-const customStyle = {
-  backgroundColor: '#f6f6f6'
-}
-
-onShow(() => {
-  listArr.value = []
-  getDict()
-  getList()
-})
-
-class Params {
-  acceptSug = ''
-  scorePackageName = ''
-  total = -1
-  current = 1
-  allocationDate = ''
-  endLabelDate = ''
-  size = 10
-}
-
-const searchParams = ref(new Params())
-
-const hasInfo = ref(true)
-const listArr = ref<any[]>([])
-const getList = async () => {
-  uni.showLoading()
-  const res = await getListApi(searchParams.value)
-  if (res.code === 0) {
-    searchParams.value.total = res.data.total
-    listArr.value = listArr.value.concat(res.data.records)
-    hasInfo.value = !!listArr.value.length
-  }
-  uni.hideLoading()
-}
-
-const csoList = ref<any[]>([])
-const packageFinishStatusList = ref<any[]>([])
-const getDict = async () => {
-  getDictByNameApi('package_finish_status').then(
-    (res: any) => (packageFinishStatusList.value = res.data)
-  )
-  getListCsoApi().then((res: any) => (csoList.value = [res.data]))
-}
-const getCsoName = (acceptSug: number) => {
-  const curr = csoList.value[0]?.find((item: any) => item.id === acceptSug)
-  return curr?.gsmc
-}
-const getStatusName = (planState: string) => {
-  const curr = packageFinishStatusList.value?.find((item: any) => item.value === planState)
-  return curr?.label
-}
-
-const searchFn = () => {
-  listArr.value = []
-  searchParams.value.current = 1
-  getList()
-}
-
-const pickerRef = ref()
-const show = ref(false)
-
-const searchClick = (type: string) => {
-  if (type === 'acceptSug') {
-    pickerRef.value.open()
-  } else {
-    show.value = true
-  }
-}
-
-const pickerConfim = (e: any) => {
-  searchParams.value.acceptSug = e.value[0].id
-  searchFn()
-}
-
-const pickerCancel = () => {
-  if (searchParams.value.acceptSug) {
-    searchParams.value.acceptSug = ''
-    searchFn()
-  }
-}
-
-const getDate = (e: any[]) => {
-  if (searchParams.value.allocationDate && searchParams.value.endLabelDate) {
-    searchParams.value.allocationDate = ''
-    searchParams.value.endLabelDate = ''
-  } else {
-    searchParams.value.allocationDate = e[0]
-    searchParams.value.endLabelDate = e[1]
-  }
-
-  show.value = false
-  searchFn()
-}
-
-onReachBottom(() => {
-  if (listArr.value.length === searchParams.value.total) return
-  searchParams.value.current++
-  getList()
-})
-const addFn = () => {
-  uni.navigateTo({
-    url: '/pages-sub-service-mangement/serviceDeliveryAdd/index?&type=1'
-  })
-}
-
-const toDetail = (type: number, row: any) => {
-  if (type === 3) {
-    if (['1', '2'].includes(row.packageFinishStatus)) {
-      return uni.showToast({
-        title: '当前执行包无法编辑',
-        icon: 'none'
-      })
-    }
-  }
-  uni.navigateTo({
-    url: `/pages-sub-service-mangement/serviceDeliveryAdd/index?&type=${type}&id=${row.id}`
-  })
-}
-//
-const stopBtn = (row: any) => {
-  uni.navigateTo({
-    url: `/pages-sub-service-mangement/stopServiceDelivery/index?type=${1}&id=${row.id}`
-  })
-}
-</script>
-
-<style lang="scss" scoped>
-.objectives-list {
-  padding: 24rpx 0;
-  .search {
-    position: fixed;
-    width: 750rpx;
-    padding: 0 30rpx;
-    top: 0;
-    height: 150rpx;
-    background-color: #fff;
-    z-index: 99;
-    .top-search {
-      display: flex;
-      align-items: center;
-
-      .search-input {
-        width: 540rpx;
-        height: 70rpx;
-      }
-      .search-button {
-        color: #6eb657;
-        font-size: 30rpx;
-        margin: 0 10px;
-        font-weight: 400;
-      }
-    }
-    .search-content {
-      margin-top: 24rpx;
-      padding-bottom: 10rpx;
-      display: flex;
-      .search-list {
-        display: flex;
-        align-content: center;
-        margin-right: 64rpx;
-        height: 40rpx;
-        text {
-          font-weight: 500;
-          line-height: 40rpx;
-          font-size: 28rpx;
-          color: #111111;
-          margin-right: 8rpx;
-        }
-      }
-      .active text {
-        color: #6eb657;
-      }
-    }
-  }
-
-  .list {
-    margin-top: 150rpx;
-    padding: 0 30rpx;
-    .item {
-      margin-bottom: 20rpx;
-      width: 100%;
-      border-radius: 16rpx;
-      box-shadow: 0px 2rpx 8rpx 0px rgba(0, 0, 0, 0.2);
-      .header {
-        background-color: #f8f8f0;
-        padding: 26rpx 20rpx;
-        display: flex;
-        align-items: center;
-        justify-content: space-between;
-        border-top-left-radius: 16rpx;
-        border-top-right-radius: 16rpx;
-        .title {
-          font-size: 32rpx;
-          line-height: 45rpx;
-          width: 70%;
-          font-weight: 500;
-          color: #333;
-          word-wrap: break-word;
-        }
-        .status {
-          .circle {
-            display: block;
-            border-radius: 50%;
-            background-color: #72b25b;
-            margin-right: 10rpx;
-            width: 15rpx;
-            height: 15rpx;
-          }
-          display: flex;
-          align-items: center;
-          color: #72b25b;
-        }
-      }
-      .content {
-        padding: 20rpx;
-        .txt {
-          font-weight: 400;
-          color: #999;
-          font-size: 22rpx;
-          line-height: 30rpx;
-          margin-bottom: 16rpx;
-        }
-        .progress {
-          display: flex;
-          align-items: center;
-          margin-bottom: 8rpx;
-          .pro-two {
-            width: 80%;
-          }
-          text {
-            margin-left: 10px;
-            color: #010101;
-            font-size: 26rpx;
-            line-height: 36rpx;
-          }
-        }
-        .btns {
-          margin-top: 30rpx;
-          display: flex;
-
-          .btn {
-            display: flex;
-            align-items: center;
-            height: 34rpx;
-            margin-right: 36rpx;
-
-            .image {
-              width: 28rpx;
-              height: 28rpx;
-              margin-right: 12rpx;
-            }
-            text {
-              color: #6eb657;
-              font-size: 24rpx;
-              line-height: 34rpx;
-            }
-          }
-        }
-      }
-    }
-  }
-}
-</style>

+ 0 - 125
src/pages-sub-service-mangement/serviceDeliveryAdd/components/TableData.vue

@@ -1,125 +0,0 @@
-<template>
-  <view class="table">
-    <uni-table border stripe emptyText="暂无更多数据">
-      <!-- 表头行 -->
-      <uni-tr>
-        <uni-th align="center" width="50">序号</uni-th>
-        <uni-th align="center">上级服务类型</uni-th>
-        <uni-th align="center" width="50">占比(%)</uni-th>
-        <uni-th align="center">任务类型</uni-th>
-        <uni-th align="center" width="50">积分值</uni-th>
-        <uni-th align="center" width="50">任务个数</uni-th>
-        <uni-th align="center" width="80">任务积分值</uni-th>
-      </uni-tr>
-      <!-- 表格数据行 -->
-      <uni-tr v-for="(item, index) in tableData" :key="item?.taskTypeId" index>
-        <uni-td>{{ index + 1 }}</uni-td>
-        <uni-td>{{ showInfo(item, index) }}</uni-td>
-        <uni-td>
-          <text
-            :class="{
-              error: item.score != 0 && (item.percentage < 25 || item.percentage > 50)
-            }"
-            >{{ showPercentage(item, index) }}</text
-          >
-        </uni-td>
-        <uni-td>{{ item.taskTypeName }}</uni-td>
-        <uni-td>{{ item.score }}</uni-td>
-        <uni-td>
-          <input type="number" @blur="(e) => change(e, index, item)" v-model="item.qty" />
-        </uni-td>
-        <uni-td>{{ item.subtotal }}</uni-td>
-      </uni-tr>
-      <!-- 结尾 -->
-      <uni-tr>
-        <uni-td>总计</uni-td>
-        <uni-td>---</uni-td>
-        <uni-td>---</uni-td>
-        <uni-td>---</uni-td>
-        <uni-td>---</uni-td>
-        <uni-td>{{ totalQty }}</uni-td>
-        <uni-td>{{ totalsubtotal }}</uni-td>
-      </uni-tr>
-    </uni-table>
-  </view>
-</template>
-
-<script setup lang="ts">
-import { ref } from 'vue'
-
-const tableData = ref<any[]>([])
-
-const totalQty = ref(0)
-const totalsubtotal = ref(0)
-
-const change = (detail: any, index: number) => {
-  tableData.value[index].subtotal = tableData.value[index].qty * tableData.value[index].score
-  totalQty.value = tableData.value.reduce((sum, row) => Number(sum) + Number(row.qty), 0)
-  totalsubtotal.value = tableData.value.reduce((sum, row) => Number(sum) + Number(row.subtotal), 0)
-}
-
-const setData = (data: any[], planDetails: any, planScore: number) => {
-  totalQty.value = planDetails.qty
-  totalsubtotal.value = planDetails.total
-  tableData.value = data
-  let arr = tableData.value.map((item) => item.baseId)
-  arr = [...new Set(arr)]
-  for (let currBaseId of arr) {
-    const allSubtotal = tableData.value.reduce((accumulator, currentValue) => {
-      if (currentValue.baseId === currBaseId) {
-        return accumulator + currentValue.subtotal
-      }
-      return accumulator
-    }, 0)
-
-    const percentage = calculatePercentage(allSubtotal, planScore)
-
-    tableData.value.forEach((item) => {
-      if (item.baseId === currBaseId) {
-        item.percentage = percentage
-      }
-    })
-  }
-}
-const getData = () => {
-  return tableData.value
-}
-
-const calculatePercentage = (part: any, total: any) => {
-  if (total === 0) return 0 // 避免除以0错误
-  return Number(((part / total) * 100).toFixed(2))
-}
-
-const showInfo = (item: any, index: number) => {
-  if (index === 0) {
-    return item.baseId
-  }
-  if (tableData.value[index - 1].baseId === item.baseId) {
-    return ''
-  } else {
-    return item.baseId
-  }
-}
-const showPercentage = (item: any, index: number) => {
-  if (index === 0) {
-    return item.percentage
-  }
-  if (tableData.value[index - 1].baseId === item.baseId) {
-    return ''
-  } else {
-    return item.percentage
-  }
-}
-
-defineExpose({ setData, getData })
-</script>
-
-<style lang="scss" scoped>
-.table {
-  margin-top: 20rpx;
-  width: 640rpx;
-  min-height: 300rpx;
-  background-color: #fff;
-  border-radius: 12rpx;
-}
-</style>

+ 0 - 134
src/pages-sub-service-mangement/serviceDeliveryAdd/components/taskTree.vue

@@ -1,134 +0,0 @@
-<template>
-  <view class="tree">
-    <view class="tree-content" v-for="(item, index) in treeListData" :key="index">
-      <view class="title">
-        <uv-icon
-          :name="item.show ? 'arrow-down-fill' : 'play-right-fill'"
-          color="#c0c4cc"
-          size="14"
-          class="icon"
-          @click="changeShow(index)"
-        ></uv-icon>
-        <view class="checkbox">
-          <checkbox-group @change="fChange(index)">
-            <label>
-              <checkbox
-                activeColor="#6eb657"
-                activeBackgroundColor="#6eb657"
-                :checked="item.checked"
-                :disabled="item.disabled"
-                style="transform: scale(0.7)"
-              />
-              {{ item.taskTypeName }}
-            </label>
-          </checkbox-group>
-        </view>
-      </view>
-      <view class="children" v-show="item.show">
-        <checkbox-group
-          v-for="(iten, indey) in item.children"
-          :key="iten.taskTypeId"
-          @change="cChange(index, indey)"
-        >
-          <label>
-            <checkbox
-              activeColor="#6eb657"
-              activeBackgroundColor="#6eb657"
-              :disabled="iten.disabled"
-              :checked="iten.checked"
-              style="transform: scale(0.7)"
-            />
-            {{ iten.taskTypeName }}
-          </label>
-        </checkbox-group>
-      </view>
-    </view>
-    <view class="border"></view>
-  </view>
-</template>
-
-<script setup lang="ts">
-import { ref } from 'vue'
-import { treeList } from './treeList'
-
-const treeListData = ref(treeList)
-const changeShow = (index: number) => {
-  treeListData.value[index].show = !treeListData.value[index].show
-}
-
-const fChange = (index: number) => {
-  treeListData.value[index].checked = !treeListData.value[index].checked
-  treeListData.value[index].children.forEach(
-    (item: any) => (item.checked = treeListData.value[index].checked)
-  )
-}
-const cChange = (index: number, indey: number) => {
-  treeListData.value[index].children[indey].checked =
-    !treeListData.value[index].children[indey].checked
-  const arr = treeListData.value[index].children.filter((item: any) => item.checked)
-  treeListData.value[index].checked = arr.length
-}
-
-const mapData = () => {
-  const arr = treeListData.value.filter((item) => item.checked)
-  arr.forEach((item) => {
-    item.children = item.children.filter((item: any) => item.checked)
-  })
-  return arr
-}
-
-const initData = (arr: string[]) => {
-  const treeListCopy = JSON.parse(JSON.stringify(treeList))
-  // treeListCopy.forEach((item: any) => {
-  //   item.disabled = true
-  //   item.checked = arr.includes(item.taskTypeId)
-  //   item.children.forEach((iten: any) => {
-  //     iten.disabled = true
-  //     iten.checked = arr.includes(item.taskTypeId)
-  //   })
-  // })
-  treeListData.value = treeListCopy
-}
-
-const editData = (arr: string[]) => {
-  const treeListCopy = JSON.parse(JSON.stringify(treeList))
-  treeListCopy.forEach((item: any) => {
-    item.checked = arr.includes(item.taskTypeId)
-    item.children.forEach((iten: any) => {
-      iten.checked = arr.includes(item.taskTypeId)
-    })
-  })
-  treeListData.value = treeListCopy
-}
-
-defineExpose({ mapData, initData, editData })
-</script>
-
-<style lang="scss" scoped>
-.tree-content {
-  margin-top: 24rpx;
-  .title {
-    display: flex;
-    align-items: center;
-    height: 48rpx;
-    margin-bottom: 12rpx;
-  }
-  .children {
-    padding-left: 50rpx;
-  }
-  .checkbox {
-    margin-left: 10rpx;
-    display: flex;
-    align-items: center;
-    height: 48rpx;
-    transition: all 1s ease-in;
-  }
-}
-.border {
-  width: 100%;
-  height: 1px;
-  background-color: #d6d7d9;
-  margin-top: 20rpx;
-  transform: scaleY(0.5);
-}
-</style>

+ 0 - 112
src/pages-sub-service-mangement/serviceDeliveryAdd/components/treeList.ts

@@ -1,112 +0,0 @@
-export const treeList: any[] = [
-  {
-    taskTypeId: 'p-1',
-    taskTypeName: '学术会议服务',
-    show: false,
-    disabled: true,
-    checked: true,
-    children: [
-      { taskTypeId: '1', taskTypeName: 'POV科室会', disabled: true, checked: true },
-      { taskTypeId: '5', taskTypeName: '沙龙会', disabled: true, checked: true },
-      { taskTypeId: '2', taskTypeName: '区县学术会议', disabled: true, checked: true },
-      { taskTypeId: '3', taskTypeName: '市级学术会议', disabled: true, checked: true },
-      { taskTypeId: '4', taskTypeName: '省级学术会议', disabled: true, checked: true },
-      { taskTypeId: '64', taskTypeName: '线上学术会议', disabled: true, checked: true },
-      { taskTypeId: '19', taskTypeName: '健康教育课堂', disabled: true, checked: true }
-    ]
-  },
-  {
-    taskTypeId: 'p-2',
-    taskTypeName: '学术拜访服务',
-    show: false,
-    disabled: true,
-    checked: true,
-    children: [
-      { taskTypeId: '53', taskTypeName: '基础拜访', disabled: true, checked: true },
-      { taskTypeId: '51', taskTypeName: '专业拜访', disabled: true, checked: true },
-      { taskTypeId: '52', taskTypeName: '专项拜访', disabled: true, checked: true }
-    ]
-  },
-  {
-    taskTypeId: 'p-4',
-    taskTypeName: '产品推广',
-    show: false,
-    disabled: true,
-    checked: true,
-    children: [{ taskTypeId: '8', taskTypeName: '产品相册分享', disabled: true, checked: true }]
-  },
-  {
-    taskTypeId: 'p-5',
-    taskTypeName: '学术信息交流',
-    show: false,
-    disabled: true,
-    checked: true,
-    children: [{ taskTypeId: '9', taskTypeName: '学术信息交流', disabled: true, checked: true }]
-  },
-  {
-    taskTypeId: 'p-3',
-    taskTypeName: '商务协作',
-    show: false,
-    disabled: true,
-    checked: true,
-    children: [
-      { taskTypeId: '14', taskTypeName: '数据收集', disabled: true, checked: true },
-      { taskTypeId: '17', taskTypeName: '医学警戒信息收集', disabled: true, checked: true },
-      { taskTypeId: '12', taskTypeName: '产品展示', disabled: true, checked: true },
-      { taskTypeId: '13', taskTypeName: '业务宣传服务', disabled: true, checked: true }
-    ]
-  }
-]
-
-export const pFlist = [
-  {
-    taskTypeName: '学术会议服务',
-    taskTypeId: 'p-1',
-    children: [] as any[]
-  },
-  {
-    taskTypeName: '学术拜访服务',
-    taskTypeId: 'p-2',
-    children: [] as any[]
-  },
-  {
-    taskTypeName: '市场信息服务',
-    taskTypeId: 'p-1',
-    children: [] as any[]
-  },
-  {
-    taskTypeName: '学术会议服务',
-    taskTypeId: 'p-3',
-    children: [] as any[]
-  },
-  {
-    taskTypeName: '产品推广',
-    taskTypeId: 'p-4',
-    children: [] as any[]
-  },
-  {
-    taskTypeName: '学术信息交流',
-    taskTypeId: 'p-5',
-    children: [] as any[]
-  },
-  {
-    taskTypeName: '医药研发服务',
-    taskTypeId: 'p-6',
-    children: [] as any[]
-  },
-  {
-    taskTypeName: '专项服务',
-    taskTypeId: 'p-17',
-    children: [] as any[]
-  },
-  {
-    taskTypeName: '商业公司客户管理',
-    taskTypeId: 'p-18',
-    children: [] as any[]
-  },
-  {
-    taskTypeName: '代理商客户管理',
-    taskTypeId: 'p-19',
-    children: [] as any[]
-  }
-]

+ 0 - 667
src/pages-sub-service-mangement/serviceDeliveryAdd/index.vue

@@ -1,667 +0,0 @@
-<template>
-  <view class="service-delivery-add">
-    <view class="message">
-      <uv-text
-        type="error"
-        text="本系统中的年度服务目标、【年度服务预算】、年度服务计划等,无论是否经由一方或双方同意或者确认,均不构成双方之间的协议;服务量、服务费用价格与金额等应以另行签署的合同为准。"
-      ></uv-text>
-    </view>
-    <view class="form">
-      <uv-form
-        labelPosition="left"
-        :model="form"
-        :rules="rules"
-        ref="formRef"
-        labelWidth="120"
-        :labelStyle="labelStyle"
-      >
-        <uv-form-item label="执行包名称" prop="scorePackageName" borderBottom required>
-          <uv-input
-            v-model="form.scorePackageName"
-            border="none"
-            placeholder="请输入"
-            :readonly="formDisabled"
-          />
-        </uv-form-item>
-        <uv-form-item
-          label="所属月份"
-          prop="belongDate"
-          borderBottom
-          @click="showSelect('belongDate')"
-          required
-        >
-          <uv-input
-            prefixIcon="calendar"
-            prefixIconStyle="font-size: 22px;color: #909399"
-            v-model="form.belongDate"
-            border="none"
-            placeholder="请选择"
-            readonly
-          />
-        </uv-form-item>
-        <uv-form-item
-          label="关联服务企业"
-          prop="relatedServiceLabel"
-          borderBottom
-          @click="showSelect('relatedServiceLabel')"
-          required
-        >
-          <uv-input
-            v-model="form.relatedServiceLabel"
-            border="none"
-            placeholder="请选择"
-            readonly
-          />
-          <template v-slot:right>
-            <uv-icon name="arrow-right"></uv-icon>
-          </template>
-        </uv-form-item>
-        <uv-form-item
-          label="关联执行包名称"
-          prop="relationScoreIdLable"
-          borderBottom
-          @click="showSelect('relationScoreIdLable')"
-          required
-        >
-          <uv-input
-            v-model="form.relationScoreIdLable"
-            border="none"
-            placeholder="请选择"
-            readonly
-          />
-          <template v-slot:right>
-            <uv-icon name="arrow-right"></uv-icon>
-          </template>
-        </uv-form-item>
-        <uv-form-item
-          label="服务目标"
-          prop="planIdLabel"
-          borderBottom
-          @click="showSelect('planIdLabel')"
-          required
-        >
-          <uv-input v-model="form.planIdLabel" border="none" placeholder="请选择" readonly />
-          <template v-slot:right>
-            <uv-icon name="arrow-right"></uv-icon>
-          </template>
-        </uv-form-item>
-        <uv-form-item label="承接对象" prop="acceptSugLabel" borderBottom required>
-          <uv-input v-model="form.acceptSugLabel" border="none" placeholder="请选择" readonly />
-        </uv-form-item>
-        <uv-form-item label="生效日期" prop="startTime" borderBottom required>
-          <uv-input v-model="form.startTime" border="none" placeholder="请选择" readonly />
-        </uv-form-item>
-        <uv-form-item label="截止日期" prop="endTimeValue" borderBottom required>
-          <uv-input v-model="form.endTimeValue" border="none" placeholder="请选择" readonly />
-        </uv-form-item>
-
-        <uv-form-item label="可分配积分值" prop="kfpjf" borderBottom>
-          <uv-input v-model="form.kfpjf" type="number" readonly border="none" />
-        </uv-form-item>
-        <uv-form-item label="执行包总值" prop="score" borderBottom required>
-          <uv-input v-model="form.score" type="number" readonly border="none" />
-        </uv-form-item>
-        <uv-form-item label="推广产品" prop="drugtableLabel" borderBottom>
-          <uv-input v-model="form.drugtableLabel" border="none" placeholder="请选择" readonly />
-        </uv-form-item>
-        <!-- 服务区域 -->
-        <uv-form-item
-          v-if="IS_DLS"
-          label="服务区域"
-          prop="planIdLabel"
-          borderBottom
-          @click="showSelect('provAbbr')"
-          required
-        >
-          <uv-input v-model="form.provAbbr" border="none" placeholder="请选择" readonly />
-          <template v-slot:right>
-            <uv-icon name="arrow-right"></uv-icon>
-          </template>
-        </uv-form-item>
-
-        <uv-form-item label="有效任务类型如下:" labelWidth="140" labelPosition="top" placeholder>
-          <template v-if="!IS_DLS">
-            <taskTree ref="taskTreeRef" />
-          </template>
-          <template v-else>
-            <TableData ref="tableRef" />
-          </template>
-        </uv-form-item>
-        <uv-form-item label="描述" prop="description" borderBottom labelWidth="40">
-          <uv-textarea
-            v-model="form.description"
-            placeholder="请输入内容"
-            height="48"
-          ></uv-textarea>
-        </uv-form-item>
-      </uv-form>
-
-      <!-- 选择服务企业 -->
-      <uv-picker
-        ref="csoPickerRef"
-        :columns="[csoList]"
-        keyName="name"
-        @confirm="(e: any) => pickerConfim(e, 'relatedServiceLabel')"
-      ></uv-picker>
-      <!-- 选择关联执行包 -->
-      <uv-picker
-        ref="relationPickerRef"
-        :columns="[gljfbOptionsList]"
-        keyName="relationScoreName"
-        @confirm="(e: any) => pickerConfim(e, 'relationScoreIdLable')"
-      ></uv-picker>
-      <!-- 选择服务目标 -->
-      <uv-picker
-        ref="planPickerRef"
-        :columns="[planList]"
-        keyName="planName"
-        @confirm="(e: any) => pickerConfim(e, 'planIdLabel')"
-      ></uv-picker>
-      <!-- 选择区域 -->
-      <uv-picker
-        ref="provAbbrRef"
-        :columns="[provAbbrArr]"
-        @confirm="(e: any) => pickerConfim(e, 'provAbbrArr')"
-      ></uv-picker>
-    </view>
-    <view class="btn" v-if="currentType != 2">
-      <view class="cancel" @click="cancelFn">取消</view>
-      <view class="confirm" @click="confirmFn">确定</view>
-    </view>
-  </view>
-</template>
-
-<script setup lang="ts">
-import dayjs from 'dayjs'
-import KDatePicker from '@/components/dateSelect/k-date-picker/KDatePicker.vue'
-import { ref, reactive } from 'vue'
-import { onLoad } from '@dcloudio/uni-app'
-import { useLoginStore } from '@/store/login'
-import {
-  getListAncestorApi,
-  getPlanListApi,
-  selectKfpjfApi,
-  wmscorepackageSaveApi,
-  getSelectWmScorePackageApi,
-  getSelectRelationScoreIdApi,
-  wmscorepackageUpdateByIdsApi
-} from '@/service/modules/serviceDelivery'
-import taskTree from './components/taskTree.vue'
-import TableData from './components/TableData.vue'
-import { pFlist } from './components/treeList'
-import { toRaw } from 'vue'
-
-const loginStore = useLoginStore()
-
-let userInfo: any = loginStore.currentUserInfo
-const roles = userInfo.roles
-const formDisabled = ref(false)
-const editDisabled = ref(false)
-const currentType = ref()
-const currentId = ref()
-
-const IS_DLS = ref(false)
-onLoad(async (e: any) => {
-  if (roles.includes(4)) {
-    IS_DLS.value = true
-  }
-
-  const date = dayjs().format('YYYY-MM')
-  form.belongDate = date
-
-  // 获取字典
-  getDict()
-  currentType.value = e?.type
-  currentId.value = e?.id
-  if (e?.type === '2') {
-    formDisabled.value = true
-    initInfo()
-  } else if (e?.type == '3') {
-    editDisabled.value = true
-    initInfo()
-  }
-})
-
-const initInfo = async () => {
-  const obj = {
-    scoreId: currentId.value
-  }
-  const res = await getSelectWmScorePackageApi(obj)
-  const detail = res.data
-  form.scorePackageName = detail.scorePackageName
-  form.belongDate = detail.belongDate
-  form.relatedService = detail.relatedService
-  form.relatedServiceLabel = detail.relatedServiceName
-  form.relationScoreId = detail.relationScoreId
-  form.relationScoreIdLable = detail.relationScoreName || '无'
-  form.planIdLabel = detail.plan.planName
-  form.planId = detail.plan.planId
-  form.startTime = detail.startTime
-  form.endTimeValue = detail.endTime
-  form.acceptSug = detail.acceptSug
-  form.acceptSugLabel = detail.acceptSugName
-  form.drugtable = detail.drugtable
-  form.drugtableLabel = detail?.drugtableName[0]
-  form.entTaskLimit = detail.entTaskLimit
-  form.description = detail.description
-  form.score = detail.score
-
-  if (IS_DLS.value) {
-    if (currentType.value === '2') {
-      tableRef.value.setData(detail.taskTypeSet)
-    } else if (currentType.value === '3') {
-      tableRef.value.setData(detail.taskTypeSet)
-    }
-  } else {
-    if (currentType.value === '2') {
-      taskTreeRef.value.initData(detail.taskTypeSet)
-    } else if (currentType.value === '3') {
-      taskTreeRef.value.editData(detail.taskTypeSet)
-    }
-  }
-}
-
-const labelStyle = {
-  fontWeight: 400,
-  fontSize: '30rpx',
-  color: '#000'
-}
-
-const csoList = ref<any[]>([])
-const planList = ref<any[]>([])
-const provAbbrArr = ref<any[]>([])
-
-const planPickerRef = ref()
-const csoPickerRef = ref()
-const relationPickerRef = ref()
-const provAbbrRef = ref()
-const planIdLabelFlag = ref(false)
-const showSelect = (type: string) => {
-  if (formDisabled.value) return
-  switch (type) {
-    case 'relatedServiceLabel':
-      if (roles.includes(3)) return
-      if (editDisabled.value) return
-      csoPickerRef.value.open()
-      break
-    case 'relationScoreIdLable':
-      if (roles.includes(3)) return
-      if (!gljfbOptionsList.value.length) return
-      relationPickerRef.value.open()
-      break
-    case 'planIdLabel':
-      if (roles.includes(3) || planIdLabelFlag.value) {
-        planPickerRef.value.open()
-      }
-      break
-    case 'provAbbr':
-      if (!form.planIdLabel) return
-      if (provAbbrArr.value.length) {
-        provAbbrRef.value.open()
-      }
-      break
-    default:
-      break
-  }
-}
-
-const tableRef = ref()
-const pickerConfim = (e: any, type: string) => {
-  if (type === 'relatedServiceLabel') {
-    const value = e.value[0]
-    form.relationScoreId = ''
-    form.relationScoreIdLable = ''
-    form.relatedService = value.deptId
-    form.relatedServiceLabel = value.name
-    initRelationScore(value.deptId)
-  }
-  if (type === 'relationScoreIdLable') {
-    const value = e.value[0]
-    form.relationScoreId = value.id
-    form.relationScoreIdLable = value.relationScoreName
-    initScoreById(value.id)
-    planIdLabelFlag.value = true
-    getPlanList(value.id)
-  }
-  if (type === 'planIdLabel') {
-    const value = e.value[0]
-    form.planId = value.planId
-    form.planIdLabel = value.planName
-    const curr = selectKfpjfList.value.find((item) => item.deptId == value.consigneeId)
-    provAbbrArr.value = curr?.provAbbr?.split(',')
-
-    form.acceptSug = curr?.id
-    form.acceptSugLabel = curr?.gsmc
-    form.drugtableLabel = value.skuInfo.skuName
-    form.drugtable = [value.skuInfo.skuId]
-    form.startTime = value.planIssue
-    form.endTimeValue = value.planExpiry
-    form.score = value.planScore
-    if (IS_DLS.value) {
-      if (!value.planItems) {
-        return uni.showModal({
-          title: '提示',
-          showCancel: false,
-          content: `服务目标【${value.planName}】不存在可用的拆解详情,请核实!`,
-          success: function (res) {
-            if (res.confirm) {
-              console.log('用户点击确定')
-            } else if (res.cancel) {
-              console.log('用户点击取消')
-            }
-          }
-        })
-      }
-      tableRef.value.setData(value.planItems, value.planDetails, value.planScore)
-      form.score = value?.planDetails?.total + ''
-    }
-  }
-  if (type == 'provAbbrArr') {
-    const value = e.value[0]
-    console.log('value', value)
-
-    form.provAbbr = value
-  }
-}
-
-const gljfbOptionsList = ref<any[]>([])
-const initRelationScore = async (id: number) => {
-  const obj = {
-    relatedService: id
-  }
-  const res = await getSelectRelationScoreIdApi(obj)
-  gljfbOptionsList.value = res.data
-}
-
-const initScoreById = (id: string) => {
-  selectKfpjf(id)
-}
-
-const getDict = () => {
-  let obj = {
-    onlySelf: false
-  }
-  if (roles.includes(3)) {
-    obj.onlySelf = true
-  }
-  // 获取关联服务企业
-  getListAncestorApi(obj).then((res: any) => {
-    // 当发包对象为药企管理员
-    if (roles.includes(3)) {
-      form.relatedServiceLabel = res.data[0].name
-      form.relatedService = res.data[0].deptId
-      form.relationScoreIdLable = '无'
-      form.relationScoreId = '-1'
-      selectKfpjf('-1')
-      getPlanList(-1)
-    }
-    csoList.value = res.data
-  })
-}
-
-const getPlanList = (pkgId: string | number) => {
-  getPlanListApi({
-    planType: 'QRT',
-    pkgId: pkgId
-  }).then((res: any) => {
-    res.data.forEach((item: any) => {
-      item.planName = item.planName + `(${item.planIssue} ~ ${item.planExpiry})`
-    })
-    planList.value = res.data
-  })
-}
-
-const selectKfpjfList = ref<any[]>([])
-const selectKfpjf = async (id: string) => {
-  const res = await selectKfpjfApi({ id })
-  const arr = res.data[0].acceptSug.map((item: any) => {
-    return {
-      gsmc: item.gsmc,
-      deptId: item.deptId,
-      provAbbr: item.provAbbr,
-      id: item.id
-    }
-  })
-  selectKfpjfList.value = arr
-  if (!roles.includes(3)) {
-    const treeValue = res.data[1].wmScoreTaskTypeList
-    taskTreeRef.value.initData(treeValue)
-    form.kfpjf = res.data[1].kfpjf
-  }
-}
-const cancelFn = () => {
-  uni.navigateBack()
-}
-
-const taskTreeRef = ref()
-const confirmFn = () => {
-  let wmScoreTaskTypeList: any[]
-  let pkgTaskTypeQtyList: any[]
-  if (!IS_DLS.value) {
-    const data = taskTreeRef.value.mapData()
-    wmScoreTaskTypeList = [...data]
-    data.forEach((item: any) => {
-      wmScoreTaskTypeList = wmScoreTaskTypeList.concat(...item.children)
-    })
-  } else {
-    const tableData = tableRef.value.getData()
-    pkgTaskTypeQtyList = tableData.map((item: any) => {
-      return {
-        taskTypeName: item.taskTypeName,
-        price: item.score,
-        taskTypeId: item.taskTypeId,
-        qty: item.qty
-      }
-    })
-
-    let treeArr = tableData.map((item: any) => {
-      return {
-        taskTypeName: item.taskTypeName,
-        taskTypeId: item.orgTaskTypeId
-      }
-    })
-    let arr = [...pFlist]
-    tableData.forEach((item: any) => {
-      const curr = arr.find((iten) => iten.taskTypeId === item.parent_id)
-      if (curr) {
-        curr.children.push({
-          taskTypeId: item.orgTaskTypeId,
-          taskTypeName: item.taskTypeName
-        })
-      }
-    })
-    wmScoreTaskTypeList = arr.concat(treeArr).filter((item) => {
-      if (!item.children || item.children.length > 0) {
-        return item
-      }
-    })
-  }
-
-  formRef.value
-    .validate()
-    .then(async () => {
-      if (Number(form.score) > Number(form.kfpjf) && form.relationScoreId != '-1') {
-        uni.showToast({
-          title: '可分配积分不足',
-          icon: 'none'
-        })
-        return false
-      }
-      if (IS_DLS.value && !form.provAbbr) {
-        return uni.showToast({
-          title: '请选择区域',
-          icon: 'none'
-        })
-      }
-
-      form.wmScoreTaskTypeList = wmScoreTaskTypeList
-      form.pkgTaskTypeQtyList = pkgTaskTypeQtyList
-      form.agentTypeId = form.relationScoreId === '-1' ? '1' : '2'
-      form.relationScoreId = form.relationScoreId === '-1' ? '' : form.relationScoreId
-      form.kfpjf = form.kfpjf === '' ? '0' : form.kfpjf
-
-      let res
-      let text
-      if (currentType.value === '1') {
-        res = await wmscorepackageSaveApi(form)
-        text = '添加成功'
-      } else {
-        const obj: any = toRaw(form)
-        obj.id = currentId
-        res = await wmscorepackageUpdateByIdsApi(form)
-        text = '编辑成功'
-      }
-      if (res.code === 0) {
-        uni.showToast({
-          title: text,
-          icon: 'none'
-        })
-        setTimeout(() => {
-          uni.navigateBack()
-        }, 1000)
-      }
-    })
-    .catch((err: any) => {
-      console.log('err', err)
-    })
-}
-
-const formRef = ref()
-const form = reactive({
-  scorePackageName: '',
-  belongDate: '',
-  relatedService: '',
-  relatedServiceLabel: '',
-  agentTypeId: '',
-  relationScoreId: '',
-  relationScoreIdLable: '',
-  kfpjf: '',
-  score: '',
-  planId: '',
-  planIdLabel: '',
-  acceptSug: '',
-  acceptSugLabel: '',
-  drugtable: [] as any[],
-  drugtableLabel: '',
-  entTaskLimit: '',
-  startTime: '',
-  endTimeValue: '',
-  provAbbr: '',
-  wmScoreTaskTypeList: [] as any[],
-  pkgTaskTypeQtyList: [] as any[],
-  description: ''
-})
-
-const rules = reactive({
-  scorePackageName: {
-    type: 'string',
-    required: true,
-    message: '请输入执行包名称',
-    trigger: ['blur', 'change']
-  },
-  belongDate: {
-    type: 'string',
-    required: true,
-    message: '请选择所属月份',
-    trigger: ['blur', 'change']
-  },
-  relatedServiceLabel: {
-    type: 'string',
-    required: true,
-    message: '请选择管理服务企业',
-    trigger: ['blur', 'change']
-  },
-  relationScoreIdLable: {
-    type: 'string',
-    required: true,
-    message: '管理服务包名称',
-    trigger: ['blur', 'change']
-  },
-  planIdLabel: {
-    type: 'string',
-    required: true,
-    message: '请输入执行包名称',
-    trigger: ['blur', 'change']
-  },
-  endTimeValue: {
-    type: 'string',
-    required: true,
-    message: '请选择截止日期',
-    trigger: ['blur', 'change']
-  },
-  acceptSugLabel: {
-    type: 'string',
-    required: true,
-    message: '请选择承接对象',
-    trigger: ['blur', 'change']
-  },
-  provAbbr: {
-    type: 'string',
-    required: IS_DLS.value,
-    message: '请选择服务区域',
-    trigger: ['blur', 'change']
-  }
-})
-</script>
-
-<style lang="scss" scoped>
-.service-delivery-add {
-  background: #f2f2f2;
-  min-height: 100vh;
-  box-sizing: border-box;
-  padding: 24rpx;
-
-  .message {
-    background: #fff;
-    padding: 30rpx;
-    border-radius: 12rpx;
-    width: 100%;
-    box-sizing: border-box;
-  }
-
-  .form {
-    margin-top: 20rpx;
-    background: #fff;
-    padding: 30rpx;
-    border-radius: 12rpx;
-  }
-}
-
-:deep(.uv-form-item__body__left) {
-  padding-left: 18rpx;
-}
-
-.btn {
-  margin-top: 20rpx;
-  box-sizing: border-box;
-  width: 700rpx;
-  height: 160rpx;
-  background-color: #fff;
-  border-radius: 12rpx;
-  display: flex;
-  padding: 30rpx 46rpx 54rpx;
-  justify-content: space-between;
-  box-sizing: border-box;
-
-  view {
-    font-weight: 400;
-    box-sizing: border-box;
-    font-size: 32rpx;
-    line-height: 45rpx;
-    border-radius: 8rpx;
-    height: 72rpx;
-    width: 290rpx;
-    display: flex;
-    align-items: center;
-    justify-content: center;
-  }
-  .cancel {
-    border: 2rpx solid #c7c7c7;
-    color: #111;
-  }
-  .confirm {
-    background-color: #6eb657;
-    color: #ffffff;
-  }
-}
-</style>

+ 0 - 652
src/pages-sub-service-mangement/serviceReviewed/index.vue

@@ -1,652 +0,0 @@
-<template>
-  <view class="service-reviewed">
-    <view class="reviewed-header">
-      <view class="search-content">
-        <view
-          class="search-list"
-          :class="{ current: searchParams.year }"
-          @click="searchClick('year')"
-        >
-          <text>执行包年度</text>
-          <uv-icon
-            name="arrow-down-fill"
-            :color="searchParams.year ? '#6eb657' : '#000'"
-            size="12"
-          ></uv-icon>
-        </view>
-        <view
-          class="search-list"
-          :class="{ current: searchParams.quarter }"
-          @click="searchClick('quarter')"
-        >
-          <text>执行包季度</text>
-          <uv-icon
-            name="arrow-down-fill"
-            :color="searchParams.quarter ? '#6eb657' : '#000'"
-            size="12"
-          ></uv-icon>
-        </view>
-        <view
-          class="search-list"
-          :class="{ current: searchParams.createTime }"
-          @click="searchClick('createTime')"
-        >
-          <text>服务提交时间</text>
-          <uv-icon
-            name="arrow-down-fill"
-            :color="searchParams.createTime ? '#6eb657' : '#000'"
-            size="12"
-          ></uv-icon>
-        </view>
-        <view
-          class="search-list"
-          :class="{ current: searchParams.taskTypeId }"
-          @click="searchClick('taskTypeId')"
-        >
-          <text>服务类型</text>
-          <uv-icon
-            name="arrow-down-fill"
-            :color="searchParams.taskTypeId ? '#6eb657' : '#000'"
-            size="12"
-          ></uv-icon>
-        </view>
-        <view
-          class="search-list"
-          :class="{ current: searchParams.vendorId }"
-          @click="searchClick('vendorId')"
-        >
-          <text>服务供应商</text>
-          <uv-icon
-            name="arrow-down-fill"
-            :color="searchParams.vendorId ? '#6eb657' : '#000'"
-            size="12"
-          ></uv-icon>
-        </view>
-        <view
-          class="search-list"
-          :class="{ current: searchParams.salesId }"
-          @click="searchClick('salesId')"
-        >
-          <text>代表姓名</text>
-          <uv-icon
-            name="arrow-down-fill"
-            :color="searchParams.salesId ? '#6eb657' : '#000'"
-            size="12"
-          ></uv-icon>
-        </view>
-        <view
-          class="search-list"
-          :class="{ current: searchParams.mahName }"
-          @click="searchClick('mahName')"
-        >
-          <text>产品所属生产企业</text>
-          <uv-icon
-            name="arrow-down-fill"
-            :color="searchParams.mahName ? '#6eb657' : '#000'"
-            size="12"
-          ></uv-icon>
-        </view>
-        <view
-          class="search-list"
-          :class="{ current: searchParams.skuId }"
-          @click="searchClick('skuId')"
-        >
-          <text>关联产品名称</text>
-          <uv-icon
-            name="arrow-down-fill"
-            :color="searchParams.skuId ? '#6eb657' : '#000'"
-            size="12"
-          ></uv-icon>
-        </view>
-        <view
-          class="search-list"
-          :class="{ current: searchParams.provAbbr }"
-          @click="searchClick('provAbbr')"
-        >
-          <text>执行包所属省份</text>
-          <uv-icon
-            name="arrow-down-fill"
-            :color="searchParams.provAbbr ? '#6eb657' : '#000'"
-            size="12"
-          ></uv-icon>
-        </view>
-        <view
-          class="search-list"
-          :class="{ current: searchParams.pkgIds }"
-          @click="searchClick('pkgIds')"
-        >
-          <text>上游服务部名称</text>
-          <uv-icon
-            name="arrow-down-fill"
-            :color="searchParams.pkgIds ? '#6eb657' : '#000'"
-            size="12"
-          ></uv-icon>
-        </view>
-      </view>
-      <view class="clear" @click="clearSearch">
-        <uv-icon name="close-circle" color="#000" size="24"></uv-icon>
-      </view>
-    </view>
-    <view class="list" v-if="hasInfo" :class="{ hidden: showRef }">
-      <view class="item" v-for="item in dataList" :key="item.id" @click="onDetail(item)">
-        <view class="top">
-          <view class="top-l">
-            <image src="@/static/images/icon/review.png" class="image" />
-            <text>{{ item.createTime }}</text>
-          </view>
-          <view class="top-r">
-            <text></text>
-            <view class="status">{{
-              item.taskStatus === '2'
-                ? '待服务商审核'
-                : item.taskStatus === '3'
-                  ? '审核通过'
-                  : item.taskStatus === '4'
-                    ? '审核拒绝'
-                    : ''
-            }}</view>
-          </view>
-        </view>
-        <view class="content">
-          <view class="title">
-            <view class="task-name">{{ getTaskName(item) }}</view>
-            <view class="score">+{{ item.taskScore }}积分</view>
-          </view>
-          <view class="item-detail">
-            <view class="num"> 任务编号:{{ item.taskNumber }} </view>
-            <view class="detail" @click.stop.self="getDetail(item)">
-              <uv-icon size="16" name="eye" color="#999"></uv-icon>
-              <text>审核详情</text>
-            </view>
-          </view>
-        </view>
-      </view>
-    </view>
-    <noData v-else />
-    <!-- 展示历史审核信息 -->
-    <uv-popup ref="popupRef" round="15" closeable @change="popupChange">
-      <view class="history">
-        <view class="header">
-          <view class="title">审核详情</view>
-        </view>
-        <view class="his-list">
-          <view class="his-item" v-for="(item, index) in hisList" :key="index">
-            <view class="his-text">
-              <text class="label">审核人:</text>
-              <text>{{ item.checker }}</text>
-            </view>
-            <view class="his-text">
-              <text class="label">审核时间:</text>
-              <text>{{ item.checkTime }}</text>
-            </view>
-            <view class="his-text">
-              <text class="label">审核状态:</text>
-              <text>{{ item.checkResult }}</text>
-            </view>
-            <view class="his-text">
-              <text class="label">审核原因:</text>
-              <text>{{ item.checkMessage }}</text>
-            </view>
-          </view>
-        </view>
-      </view>
-    </uv-popup>
-    <!-- 选择器内容 -->
-    <uv-datetime-picker
-      ref="datetimeRef"
-      :mode="datetimePickerMode"
-      @confirm="confirm"
-    ></uv-datetime-picker>
-    <!-- 内容选择器 -->
-    <uv-action-sheet ref="actionSheetRef" :actions="list" @select="confirm"> </uv-action-sheet>
-
-    <!--  -->
-    <uv-picker
-      ref="pickerRef"
-      :columns="[pickerColumns]"
-      :keyName="pickerLabel"
-      @confirm="confirm"
-    ></uv-picker>
-  </view>
-</template>
-
-<script setup lang="ts">
-import {
-  getTaskV2PageCheckedApi,
-  getTaskTypeAvailApi,
-  getDeptv2Avail,
-  getTaskV2CheckHisApi,
-  getUserV2Avail,
-  getDrug2Avail,
-  getPkgV2Api
-} from '@/service/modules/serviceReviewed'
-
-import abbreviationsProvinces from '@/utils/abbreviationsProvinces'
-import { getDictByNameApi } from '@/service/modules/getDict'
-import dayjs from 'dayjs'
-import { ref, reactive, onMounted } from 'vue'
-import { onReachBottom } from '@dcloudio/uni-app'
-import noData from '@/components/noData/index.vue'
-const params = reactive({
-  currentPage: 1,
-  pageSize: 20,
-  total: 0
-})
-
-const hasInfo = ref(true)
-const dataList = ref<any[]>([])
-
-const dict = reactive({
-  taskTypeAvailArr: [],
-  deptListArr: [],
-  userListArr: [],
-  mahNameArr: [],
-  drugListArr: [],
-  currDrugList: [],
-  relPkgNameArr: [] as any[]
-})
-
-const showRef = ref(false)
-const popupChange = (e) => {
-  showRef.value = e.show
-}
-
-const getDictFn = () => {
-  getTaskTypeAvailApi().then((res) => (dict.taskTypeAvailArr = res.data))
-  getDeptv2Avail().then((res) => (dict.deptListArr = res.data))
-  getUserV2Avail().then((res) => (dict.userListArr = res.data))
-  getDictByNameApi('mah_name').then((res: any) => (dict.mahNameArr = res.data))
-  getDrug2Avail().then((res: any) => (dict.drugListArr = res.data))
-  getPkgV2Api().then((res) => {
-    let arr: any[] = []
-    let data = res.data
-    for (let key in data) {
-      let obj = {
-        label: key,
-        value: data[key]
-      }
-      arr.push(obj)
-    }
-    dict.relPkgNameArr = arr
-  })
-}
-const getDatalist = async () => {
-  const obj = Object.assign({
-    current: params.currentPage,
-    size: params.pageSize,
-    taskStatus: 3,
-    ...searchParams.value
-  })
-  uni.showLoading({
-    title: '正在获取数据'
-  })
-  const res = await getTaskV2PageCheckedApi(obj)
-  if (res.code === 0) {
-    params.total = res.data.total
-    dataList.value = dataList.value.concat(res.data.records)
-    hasInfo.value = !!dataList.value.length
-    uni.hideLoading()
-  }
-  uni.hideLoading()
-}
-
-const onDetail = (row: any) => {
-  console.log('rwo', row)
-
-  uni.navigateTo({
-    url: `/pages-sub-service-mangement/taskAuditDetail/index?id=${row.taskId}&type=1&show=false`
-  })
-}
-const getTaskName = (row: any) => {
-  const taskTypeId = row.taskTypeId
-  const curr: any = dict.taskTypeAvailArr.find((iten: any) => iten.id === taskTypeId)
-  return curr ? curr.name : ''
-}
-const hisList = ref<any[]>([])
-const popupRef = ref()
-
-const getDetail = async (item: any) => {
-  hisList.value = []
-  const res = await getTaskV2CheckHisApi({ taskId: item.taskId })
-  if (res.code === 0) {
-    hisList.value = res.data
-    popupRef.value.open()
-  }
-}
-
-class SearchParams {
-  year = ''
-  quarter = ''
-  createTime = ''
-  taskTypeId = ''
-  vendorId = ''
-  salesId = ''
-  mahName = ''
-  skuId = ''
-  provAbbr = ''
-  pkgIds = ''
-}
-
-const searchParams = ref(new SearchParams())
-
-const clearSearch = () => {
-  searchParams.value = new SearchParams()
-  const lastYear = dayjs().subtract(1, 'year').format('YYYY')
-  searchParams.value.year = lastYear
-  init()
-}
-
-const currType = ref('')
-const datetimeRef = ref()
-const datetimePickerMode = ref('')
-
-const list = ref<any[]>([])
-
-let quarterList = [
-  { name: '第一季度', value: '1' },
-  { name: '第二季度', value: '2' },
-  { name: '第三季度', value: '3' },
-  { name: '第四季度', value: '4' }
-]
-
-const actionSheetRef = ref()
-
-const pickerRef = ref()
-const pickerColumns = ref<any[]>([])
-const pickerLabel = ref('')
-const searchClick = (type: string) => {
-  currType.value = type
-  switch (type) {
-    case 'year':
-      datetimePickerMode.value = 'year'
-      datetimeRef.value.open()
-      break
-    case 'quarter':
-      list.value = quarterList
-      actionSheetRef.value.open()
-      break
-    case 'createTime':
-      datetimePickerMode.value = 'date'
-      datetimeRef.value.open()
-      break
-    case 'taskTypeId':
-      pickerColumns.value = dict.taskTypeAvailArr
-      pickerLabel.value = 'name'
-      pickerRef.value.open()
-      break
-    case 'vendorId':
-      pickerColumns.value = dict.deptListArr
-      pickerLabel.value = 'name'
-      pickerRef.value.open()
-      break
-    case 'salesId':
-      pickerColumns.value = dict.userListArr
-      pickerLabel.value = 'realName'
-      pickerRef.value.open()
-      break
-    case 'mahName':
-      pickerColumns.value = dict.mahNameArr
-      pickerLabel.value = 'label'
-      pickerRef.value.open()
-      break
-
-    case 'skuId':
-      // 选择关联产品 需要先选择生产企业
-      const name = searchParams.value.mahName
-      if (!name) {
-        return uni.showToast({
-          title: '请先选择生产企业',
-          icon: 'none'
-        })
-      }
-      const currList = dict.drugListArr[name]
-      dict.currDrugList = currList
-      pickerColumns.value = dict.currDrugList
-      pickerLabel.value = 'drugName'
-      pickerRef.value.open()
-      break
-    case 'provAbbr':
-      pickerColumns.value = abbreviationsProvinces
-      pickerRef.value.open()
-      break
-    case 'pkgIds':
-      pickerColumns.value = dict.relPkgNameArr
-      pickerLabel.value = 'label'
-      pickerRef.value.open()
-      break
-
-    default:
-      break
-  }
-}
-const confirm = (e: any) => {
-  switch (currType.value) {
-    case 'year':
-      searchParams.value.year = dayjs(e.value).format('YYYY')
-      break
-    case 'quarter':
-      searchParams.value.quarter = e.value
-      break
-    case 'createTime':
-      searchParams.value.createTime = dayjs(e.value).format('YYYY-MM-DD')
-      break
-    case 'taskTypeId':
-      searchParams.value.taskTypeId = e?.value[0]?.id
-      break
-    case 'vendorId':
-      searchParams.value.vendorId = e?.value[0]?.entId
-      break
-    case 'salesId':
-      searchParams.value.salesId = e?.value[0]?.userId
-      break
-    case 'mahName':
-      searchParams.value.mahName = e?.value[0]?.value
-      break
-    case 'skuId':
-      searchParams.value.skuId = e?.value[0]?.id
-      break
-    case 'provAbbr':
-      searchParams.value.provAbbr = e?.value[0]
-      break
-    case 'pkgIds':
-      searchParams.value.pkgIds = e?.value[0]
-      break
-    default:
-      break
-  }
-  init()
-}
-
-const init = () => {
-  params.currentPage = 1
-  params.total = 0
-  dataList.value = []
-  getDatalist()
-}
-
-onReachBottom(() => {
-  if (dataList.value.length === params.total) return
-  params.currentPage++
-  getDatalist()
-})
-
-onMounted(async () => {
-  const lastYear = dayjs().subtract(1, 'year').format('YYYY')
-  searchParams.value.year = lastYear
-  await getDictFn()
-  getDatalist()
-})
-</script>
-
-<style lang="scss" scoped>
-.service-reviewed {
-  padding: 0 30rpx;
-  .reviewed-header {
-    width: 690rpx;
-    height: 80rpx;
-    margin-bottom: 30rpx;
-    display: flex;
-    justify-content: space-between;
-    align-items: center;
-    background-color: #fff;
-    position: fixed;
-    top: 0;
-    z-index: 999;
-
-    .search-content {
-      width: 630rpx;
-      overflow-x: auto;
-      display: flex;
-      flex-wrap: nowrap;
-
-      .search-list {
-        flex: none;
-        flex-shrink: 0;
-        display: flex;
-        align-items: center;
-        padding-right: 20rpx;
-        line-height: 80rpx;
-        text {
-          margin-right: 6rpx;
-          font-weight: 600;
-        }
-      }
-      .current {
-        color: #6eb657;
-      }
-    }
-    .clear {
-      display: flex;
-      justify-content: right;
-    }
-  }
-  .list {
-    margin-top: 100rpx;
-    .item {
-      box-shadow: 0px 4rpx 4rpx 0px rgba(0, 0, 0, 0.05);
-      margin-bottom: 20rpx;
-      border-radius: 16rpx;
-      .top {
-        padding: 0 30rpx;
-        box-sizing: border-box;
-        height: 100rpx;
-        background-color: #6eb657;
-        border-top-left-radius: 16rpx;
-        border-top-right-radius: 16rpx;
-        display: flex;
-        align-items: center;
-        justify-content: space-between;
-        .top-l {
-          display: flex;
-          align-items: center;
-
-          .image {
-            width: 28rpx;
-            height: 28rpx;
-          }
-          text {
-            font-size: 26rpx;
-            color: #fff;
-            line-height: 36rpx;
-            margin-left: 20rpx;
-          }
-        }
-        .top-r {
-          display: flex;
-          align-items: center;
-          text {
-            display: block;
-            width: 10rpx;
-            height: 10rpx;
-            background-color: #fff;
-            border-radius: 50%;
-            margin-right: 10rpx;
-          }
-          .status {
-            color: #fff;
-            font-size: 28rpx;
-            line-height: 40rpx;
-          }
-        }
-      }
-      .content {
-        background-color: #fff;
-        padding: 30rpx;
-        box-sizing: border-box;
-        .title {
-          display: flex;
-          justify-content: space-between;
-          margin-bottom: 20rpx;
-          align-items: center;
-          .task-name {
-            font-size: 32rpx;
-            line-height: 45rpx;
-            color: #313131;
-          }
-          .score {
-            font-size: 28rpx;
-            color: #72b25b;
-          }
-        }
-        .item-detail {
-          display: flex;
-          justify-content: space-between;
-          .num {
-            font-weight: 400;
-            font-size: 20rpx;
-            line-height: 32rpx;
-            color: #999999;
-          }
-          .detail {
-            display: flex;
-            align-items: center;
-            font-size: 20rpx;
-            color: #999;
-            text {
-              margin-left: 6rpx;
-            }
-          }
-        }
-      }
-    }
-  }
-}
-
-.hidden {
-  height: 90vh;
-  overflow-y: hidden;
-}
-
-.history {
-  width: 630rpx;
-  margin: 0 auto;
-  padding: 0 30rpx;
-
-  .header {
-    text-align: center;
-    line-height: 105rpx;
-    font-size: 36rpx;
-    font-weight: 600;
-  }
-  .his-list {
-    height: 70vh;
-    overflow-y: auto;
-
-    .his-item {
-      padding: 15rpx 0;
-      border-bottom: 1px solid #eee;
-      .his-text {
-        line-height: 36rpx;
-        font-size: 22rpx;
-        text {
-          color: #333;
-        }
-        .label {
-          color: #000;
-          font-weight: 6000;
-        }
-      }
-    }
-  }
-}
-</style>

Неке датотеке нису приказане због велике количине промена