[
  {
    "path": ".editorconfig",
    "content": "# @see: http://editorconfig.org\n\nroot = true\n\n[*] # 表示所有文件适用\ncharset = utf-8 # 设置文件字符集为 utf-8\nend_of_line = lf # 控制换行类型(lf | cr | crlf)\ninsert_final_newline = true # 始终在文件末尾插入一个新行\nindent_style = space # 缩进风格（tab | space）\nindent_size = 2 # 缩进大小\nmax_line_length = 130 # 最大行长度\n\n[*.md] # 表示仅对 md 文件适用以下规则\nmax_line_length = off # 关闭最大行长度限制\ntrim_trailing_whitespace = false # 关闭末尾空格修剪\n"
  },
  {
    "path": ".eslintignore",
    "content": "*.sh\nnode_modules\n*.md\n*.woff\n*.ttf\n.vscode\n.idea\ndist\n/public\n/docs\n.husky\n.local\n/bin\n/src/mock/*\nstats.html\n"
  },
  {
    "path": ".eslintrc.cjs",
    "content": "// @see: http://eslint.cn\n\nmodule.exports = {\n  root: true,\n  env: {\n    browser: true,\n    node: true,\n    es6: true\n  },\n  // 指定如何解析语法\n  parser: \"vue-eslint-parser\",\n  // 优先级低于 parse 的语法解析配置\n  parserOptions: {\n    parser: \"@typescript-eslint/parser\",\n    ecmaVersion: 2020,\n    sourceType: \"module\",\n    jsxPragma: \"React\",\n    ecmaFeatures: {\n      jsx: true\n    }\n  },\n  // 继承某些已有的规则\n  extends: [\"plugin:vue/vue3-recommended\", \"plugin:@typescript-eslint/recommended\", \"plugin:prettier/recommended\"],\n  /**\n   * \"off\" 或 0    ==>  关闭规则\n   * \"warn\" 或 1   ==>  打开的规则作为警告（不影响代码执行）\n   * \"error\" 或 2  ==>  规则作为一个错误（代码不能执行，界面报错）\n   */\n  rules: {\n    // eslint (http://eslint.cn/docs/rules)\n    \"no-var\": \"error\", // 要求使用 let 或 const 而不是 var\n    \"no-multiple-empty-lines\": [\"error\", { max: 1 }], // 不允许多个空行\n    \"prefer-const\": \"off\", // 使用 let 关键字声明但在初始分配后从未重新分配的变量，要求使用 const\n    \"no-use-before-define\": \"off\", // 禁止在 函数/类/变量 定义之前使用它们\n\n    // typeScript (https://typescript-eslint.io/rules)\n    \"@typescript-eslint/no-unused-vars\": \"error\", // 禁止定义未使用的变量\n    \"@typescript-eslint/no-empty-function\": \"error\", // 禁止空函数\n    \"@typescript-eslint/prefer-ts-expect-error\": \"error\", // 禁止使用 @ts-ignore\n    \"@typescript-eslint/ban-ts-comment\": \"error\", // 禁止 @ts-<directive> 使用注释或要求在指令后进行描述\n    \"@typescript-eslint/no-inferrable-types\": \"off\", // 可以轻松推断的显式类型可能会增加不必要的冗长\n    \"@typescript-eslint/no-namespace\": \"off\", // 禁止使用自定义 TypeScript 模块和命名空间\n    \"@typescript-eslint/no-explicit-any\": \"off\", // 禁止使用 any 类型\n    \"@typescript-eslint/ban-types\": \"off\", // 禁止使用特定类型\n    \"@typescript-eslint/no-var-requires\": \"off\", // 允许使用 require() 函数导入模块\n    \"@typescript-eslint/no-non-null-assertion\": \"off\", // 不允许使用后缀运算符的非空断言(!)\n\n    // vue (https://eslint.vuejs.org/rules)\n    \"vue/script-setup-uses-vars\": \"error\", // 防止<script setup>使用的变量<template>被标记为未使用，此规则仅在启用该 no-unused-vars 规则时有效\n    \"vue/v-slot-style\": \"error\", // 强制执行 v-slot 指令样式\n    \"vue/no-mutating-props\": \"error\", // 不允许改变组件 prop\n    \"vue/custom-event-name-casing\": \"error\", // 为自定义事件名称强制使用特定大小写\n    \"vue/html-closing-bracket-newline\": \"error\", // 在标签的右括号之前要求或禁止换行\n    \"vue/attribute-hyphenation\": \"error\", // 对模板中的自定义组件强制执行属性命名样式：my-prop=\"prop\"\n    \"vue/attributes-order\": \"off\", // vue api使用顺序，强制执行属性顺序\n    \"vue/no-v-html\": \"off\", // 禁止使用 v-html\n    \"vue/require-default-prop\": \"off\", // 此规则要求为每个 prop 为必填时，必须提供默认值\n    \"vue/multi-word-component-names\": \"off\", // 要求组件名称始终为 “-” 链接的单词\n    \"vue/no-setup-props-destructure\": \"off\" // 禁止解构 props 传递给 setup\n  }\n};\n"
  },
  {
    "path": ".gitignore",
    "content": "# Logs\nlogs\n*.log\nnpm-debug.log*\nyarn-debug.log*\nyarn-error.log*\npnpm-debug.log*\nlerna-debug.log*\n\nnode_modules\ndist\ndist-ssr\nstats.html\n*.local\n\n# Editor directories and files\n.vscode/*\n!.vscode/extensions.json\n!.vscode/settings.json\n.idea\n.DS_Store\n*.suo\n*.ntvs*\n*.njsproj\n*.sln\n*.sw?\n"
  },
  {
    "path": ".husky/commit-msg",
    "content": "#!/usr/bin/env sh\n. \"$(dirname -- \"$0\")/_/husky.sh\"\n\nnpx --no-install commitlint --edit $1\n"
  },
  {
    "path": ".husky/pre-commit",
    "content": "#!/usr/bin/env sh\n. \"$(dirname -- \"$0\")/_/husky.sh\"\n\nnpm run lint:lint-staged\n"
  },
  {
    "path": ".prettierignore",
    "content": "/dist/*\n.local\n/node_modules/**\n\n**/*.svg\n**/*.sh\n\n/public/*\nstats.html\n"
  },
  {
    "path": ".prettierrc.cjs",
    "content": "// @see: https://www.prettier.cn\n\nmodule.exports = {\n  // 指定最大换行长度\n  printWidth: 130,\n  // 缩进制表符宽度 | 空格数\n  tabWidth: 2,\n  // 使用制表符而不是空格缩进行 (true：制表符，false：空格)\n  useTabs: false,\n  // 结尾不用分号 (true：有，false：没有)\n  semi: true,\n  // 使用单引号 (true：单引号，false：双引号)\n  singleQuote: false,\n  // 在对象字面量中决定是否将属性名用引号括起来 可选值 \"<as-needed|consistent|preserve>\"\n  quoteProps: \"as-needed\",\n  // 在JSX中使用单引号而不是双引号 (true：单引号，false：双引号)\n  jsxSingleQuote: false,\n  // 多行时尽可能打印尾随逗号 可选值\"<none|es5|all>\"\n  trailingComma: \"none\",\n  // 在对象，数组括号与文字之间加空格 \"{ foo: bar }\" (true：有，false：没有)\n  bracketSpacing: true,\n  // 将 > 多行元素放在最后一行的末尾，而不是单独放在下一行 (true：放末尾，false：单独一行)\n  bracketSameLine: false,\n  // (x) => {} 箭头函数参数只有一个时是否要有小括号 (avoid：省略括号，always：不省略括号)\n  arrowParens: \"avoid\",\n  // 指定要使用的解析器，不需要写文件开头的 @prettier\n  requirePragma: false,\n  // 可以在文件顶部插入一个特殊标记，指定该文件已使用 Prettier 格式化\n  insertPragma: false,\n  // 用于控制文本是否应该被换行以及如何进行换行\n  proseWrap: \"preserve\",\n  // 在html中空格是否是敏感的 \"css\" - 遵守 CSS 显示属性的默认值， \"strict\" - 空格被认为是敏感的 ，\"ignore\" - 空格被认为是不敏感的\n  htmlWhitespaceSensitivity: \"css\",\n  // 控制在 Vue 单文件组件中 <script> 和 <style> 标签内的代码缩进方式\n  vueIndentScriptAndStyle: false,\n  // 换行符使用 lf 结尾是 可选值 \"<auto|lf|crlf|cr>\"\n  endOfLine: \"auto\",\n  // 这两个选项可用于格式化以给定字符偏移量（分别包括和不包括）开始和结束的代码 (rangeStart：开始，rangeEnd：结束)\n  rangeStart: 0,\n  rangeEnd: Infinity\n};\n"
  },
  {
    "path": ".stylelintignore",
    "content": "/dist/*\n/public/*\npublic/*\nstats.html\n"
  },
  {
    "path": ".stylelintrc.cjs",
    "content": "// @see: https://stylelint.io\n\nmodule.exports = {\n  root: true,\n  // 继承某些已有的规则\n  extends: [\n    \"stylelint-config-standard\", // 配置 stylelint 拓展插件\n    \"stylelint-config-html/vue\", // 配置 vue 中 template 样式格式化\n    \"stylelint-config-standard-scss\", // 配置 stylelint scss 插件\n    \"stylelint-config-recommended-vue/scss\", // 配置 vue 中 scss 样式格式化\n    \"stylelint-config-recess-order\" // 配置 stylelint css 属性书写顺序插件,\n  ],\n  overrides: [\n    // 扫描 .vue/html 文件中的 <style> 标签内的样式\n    {\n      files: [\"**/*.{vue,html}\"],\n      customSyntax: \"postcss-html\"\n    }\n  ],\n  rules: {\n    \"function-url-quotes\": \"always\", // URL 的引号 \"always(必须加上引号)\"|\"never(没有引号)\"\n    \"color-hex-length\": \"long\", // 指定 16 进制颜色的简写或扩写 \"short(16进制简写)\"|\"long(16进制扩写)\"\n    \"rule-empty-line-before\": \"never\", // 要求或禁止在规则之前的空行 \"always(规则之前必须始终有一个空行)\"|\"never(规则前绝不能有空行)\"|\"always-multi-line(多行规则之前必须始终有一个空行)\"|\"never-multi-line(多行规则之前绝不能有空行)\"\n    \"font-family-no-missing-generic-family-keyword\": null, // 禁止在字体族名称列表中缺少通用字体族关键字\n    \"scss/at-import-partial-extension\": null, // 解决不能使用 @import 引入 scss 文件\n    \"property-no-unknown\": null, // 禁止未知的属性\n    \"no-empty-source\": null, // 禁止空源码\n    \"selector-class-pattern\": null, // 强制选择器类名的格式\n    \"value-no-vendor-prefix\": null, // 关闭 vendor-prefix (为了解决多行省略 -webkit-box)\n    \"no-descending-specificity\": null, // 不允许较低特异性的选择器出现在覆盖较高特异性的选择器\n    \"value-keyword-case\": null, // 解决在 scss 中使用 v-bind 大写单词报错\n    \"selector-pseudo-class-no-unknown\": [\n      true,\n      {\n        ignorePseudoClasses: [\"global\", \"v-deep\", \"deep\"]\n      }\n    ]\n  },\n  ignoreFiles: [\"**/*.js\", \"**/*.jsx\", \"**/*.tsx\", \"**/*.ts\"]\n};\n"
  },
  {
    "path": ".vscode/extensions.json",
    "content": "{\n  \"recommendations\": [\n    \"vue.volar\",\n    \"hollowtree.vue-snippets\",\n    \"dbaeumer.vscode-eslint\",\n    \"stylelint.vscode-stylelint\",\n    \"esbenp.prettier-vscode\",\n    \"editorconfig.editorconfig\",\n    \"streetsidesoftware.code-spell-checker\",\n    \"syler.sass-indented\",\n    \"mikestead.dotenv\"\n  ]\n}\n"
  },
  {
    "path": ".vscode/settings.json",
    "content": "{\n  \"editor.formatOnSave\": true,\n  \"editor.codeActionsOnSave\": {\n    \"source.fixAll.stylelint\": \"explicit\"\n  },\n  \"stylelint.enable\": true,\n  \"stylelint.validate\": [\"css\", \"less\", \"postcss\", \"scss\", \"vue\", \"sass\", \"html\"],\n  \"files.eol\": \"\\n\",\n  \"typescript.tsdk\": \"node_modules/typescript/lib\",\n  \"[vue]\": {\n    \"editor.defaultFormatter\": \"esbenp.prettier-vscode\"\n  },\n  \"[typescript]\": {\n    \"editor.defaultFormatter\": \"esbenp.prettier-vscode\"\n  },\n  \"[json]\": {\n    \"editor.defaultFormatter\": \"esbenp.prettier-vscode\"\n  },\n  \"[jsonc]\": {\n    \"editor.defaultFormatter\": \"esbenp.prettier-vscode\"\n  },\n  \"[javascript]\": {\n    \"editor.defaultFormatter\": \"esbenp.prettier-vscode\"\n  },\n  \"[typescriptreact]\": {\n    \"editor.defaultFormatter\": \"esbenp.prettier-vscode\"\n  },\n  \"[scss]\": {\n    \"editor.defaultFormatter\": \"esbenp.prettier-vscode\"\n  },\n  \"[html]\": {\n    \"editor.defaultFormatter\": \"esbenp.prettier-vscode\"\n  },\n  \"[markdown]\": {\n    \"editor.defaultFormatter\": \"esbenp.prettier-vscode\"\n  },\n  \"[less]\": {\n    \"editor.defaultFormatter\": \"esbenp.prettier-vscode\"\n  },\n  \"cSpell.words\": [\n    \"AMAP\",\n    \"apng\",\n    \"axios\",\n    \"Biao\",\n    \"brotli\",\n    \"cascader\",\n    \"commitlint\",\n    \"contentleft\",\n    \"contentright\",\n    \"CSDN\",\n    \"daterange\",\n    \"datetimerange\",\n    \"echarts\",\n    \"fangda\",\n    \"geeker\",\n    \"Gitee\",\n    \"hexs\",\n    \"huiche\",\n    \"iconfont\",\n    \"juejin\",\n    \"liquidfill\",\n    \"longpress\",\n    \"monthrange\",\n    \"nprogress\",\n    \"officedocument\",\n    \"openxmlformats\",\n    \"Pageable\",\n    \"persistedstate\",\n    \"pinia\",\n    \"pjpeg\",\n    \"Prefixs\",\n    \"screenfull\",\n    \"sortablejs\",\n    \"sousuo\",\n    \"spreadsheetml\",\n    \"styl\",\n    \"stylelint\",\n    \"stylelintignore\",\n    \"stylelintrc\",\n    \"suoxiao\",\n    \"truetype\",\n    \"tuichu\",\n    \"unplugin\",\n    \"unref\",\n    \"VITE\",\n    \"vuedraggable\",\n    \"vueuse\",\n    \"Vuex\",\n    \"wangeditor\",\n    \"xiala\",\n    \"xiaoxi\",\n    \"Yahei\",\n    \"yiwen\",\n    \"zhongyingwen\",\n    \"zhuti\"\n  ]\n}\n"
  },
  {
    "path": "CHANGELOG.md",
    "content": "# Changelog\n\nAll notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.\n\n## [1.2.0](https://github.com/HalseySpicy/Geeker-Admin/compare/v1.1.0...v1.2.0) (2023-09-15)\n\n\n### Features\n\n* 🚀 update and optimize project content ([17bc017](https://github.com/HalseySpicy/Geeker-Admin/commit/17bc017c5abbd2c87813d6c6f9d587ddf9d57da7))\n* 🚀 upgrade plugins and add tab functionality ([f21a41d](https://github.com/HalseySpicy/Geeker-Admin/commit/f21a41d8df44efe5216dec39bf4abf0ea86a7781))\n\n## [1.1.0](https://github.com/HalseySpicy/Geeker-Admin/compare/v1.0.0...v1.1.0) (2023-07-09)\n\n### Features\n\n- 🚀 add proTable instance type ([8262f04](https://github.com/HalseySpicy/Geeker-Admin/commit/8262f045734d055148720738a80fee0e0c779ceb))\n- 🚀 optimize code and add VitePWA ([523f676](https://github.com/HalseySpicy/Geeker-Admin/commit/523f676feee5105eae15d05b57063227be26d3df))\n- 🚀 optimize code and update plugins ([5cff3c7](https://github.com/HalseySpicy/Geeker-Admin/commit/5cff3c7e50331ede07d57613cc49658904e7cf1a))\n- 🚀 optimize irregular code ([d406ef2](https://github.com/HalseySpicy/Geeker-Admin/commit/d406ef2bb5e0d0522f5e0ce38c3b9d0aa47c7cd2))\n- 🚀 proTable radio selection example ([f58291f](https://github.com/HalseySpicy/Geeker-Admin/commit/f58291f96468b816607c31df87326ebd7d0a5c5a))\n- 🚀 proTable search component custom rendering ([#189](https://github.com/HalseySpicy/Geeker-Admin/issues/189)) ([89f03db](https://github.com/HalseySpicy/Geeker-Admin/commit/89f03db2db41160b9ac5398d64712fabff399c4c))\n- 🚀 proTable supports static table data ([9a3e85d](https://github.com/HalseySpicy/Geeker-Admin/commit/9a3e85d21d6c8872bbc915c42d48eb8658a1db63))\n- 🚀 update Gitee address ([0608be9](https://github.com/HalseySpicy/Geeker-Admin/commit/0608be9ba6a9f01f73ed67671d340cf0c1d99261))\n- 🚀 update stylelint configuration ([d62aae8](https://github.com/HalseySpicy/Geeker-Admin/commit/d62aae868e7d6aad87f0ba8706ab9744d5da04dd))\n- 🚀 update theme, modify bugs ([7a3a7a3](https://github.com/HalseySpicy/Geeker-Admin/commit/7a3a7a3d665c0356c0272947292de750dd0be8d8))\n\n### Bug Fixes\n\n- 🧩 fix eslint error ([a980a1a](https://github.com/HalseySpicy/Geeker-Admin/commit/a980a1aa7808895af46c85e0e26a53f66d1119fa))\n\n## [1.0.0](https://github.com/HalseySpicy/Geeker-Admin/compare/v0.0.7...v1.0.0) (2023-04-15)\n\n### Features\n\n- 🚀 升级依赖插件 && 新增树型 ProTbale 示例(更多查看详情) ([ed0ea75](https://github.com/HalseySpicy/Geeker-Admin/commit/ed0ea757555f047f6890632e598ee3293d3598cd))\n- 🚀 升级依赖插件 && 修复 bug(查看详情) ([4febadc](https://github.com/HalseySpicy/Geeker-Admin/commit/4febadc10dd794ec8ea1c7864a3771b1b477f743))\n- 🚀 新增路由白名单访问控制 ([97dc264](https://github.com/HalseySpicy/Geeker-Admin/commit/97dc26484c6eead2ae4c8c79d50b550f24f19a02))\n- 🚀 优化 ProTable && 面包屑导航 ([905d7f1](https://github.com/HalseySpicy/Geeker-Admin/commit/905d7f1fd2b18d9650e6ba7d439dfdcf50363d11))\n- 🚀 优化代码 ([cd333df](https://github.com/HalseySpicy/Geeker-Admin/commit/cd333dfe5de2aa7fa415326e6a06b83d3bd260d5))\n- 🚀 优化代码和样式细节 ([5b4b926](https://github.com/HalseySpicy/Geeker-Admin/commit/5b4b9266de4f420f32fca70dadb76242d129e604))\n- 🚀 优化代码和样式细节 ([756094c](https://github.com/HalseySpicy/Geeker-Admin/commit/756094c402e14841c07cd6062b701929f7f31737))\n- 🚀 优化代码逻辑 && 更新微信群二维码 ([629e824](https://github.com/HalseySpicy/Geeker-Admin/commit/629e8243466fda5da9f0ec781aa0b584e49f4501))\n- 🚀 优化代码细节问题 ([a6a6ced](https://github.com/HalseySpicy/Geeker-Admin/commit/a6a6cedeb40f2f7901f0dcd0ec7f1c283a491c61))\n- 🚀 优化样式、代码细节 ([1b02f45](https://github.com/HalseySpicy/Geeker-Admin/commit/1b02f457162267b090ad946e0bad91e5d0dd14b1))\n- 🚀 allow nested tree enum data ([c2fa2be](https://github.com/HalseySpicy/Geeker-Admin/commit/c2fa2be54a6af0309ba45bd4ca68170c66edc357))\n- 🚀 refactoring project configuration ([7ede988](https://github.com/HalseySpicy/Geeker-Admin/commit/7ede988bae3ad0b33d9e5ac1ea6145c4d7aa89e6))\n- **ProTable:** 🚀 插槽引入 ElTable 的 scope，可获取$index 等 ([4cb7dba](https://github.com/HalseySpicy/Geeker-Admin/commit/4cb7dba40c10e693e324b7c647aa65917aeb0b02))\n\n### Bug Fixes\n\n- 🧩 修复 ImportExcel 组件 bug ([ab7e9dd](https://github.com/HalseySpicy/Geeker-Admin/commit/ab7e9dde400aa80ec2e9fa58d9f2168fc3d14f18))\n- 🧩 修复 ImportExcel 组件 bug ([803ba58](https://github.com/HalseySpicy/Geeker-Admin/commit/803ba58a2c3fae7f6d8783ca534e2b41c987f027))\n- 🧩 修复 ProTable 组件打印功能 bug ([a88b7df](https://github.com/HalseySpicy/Geeker-Admin/commit/a88b7df4623e30459ef3c92196b720efcb200f2f))\n- 🧩 修复 TreeFilter 组件默认值 bug ([8e515f0](https://github.com/HalseySpicy/Geeker-Admin/commit/8e515f0d4058f573cbd53281ef68aec38b8dacb9))\n- 🧩 修复 TreeFilter 组件默认值 bug ([f23a94d](https://github.com/HalseySpicy/Geeker-Admin/commit/f23a94d6edf442babdc4cd5a52ea63ebbbcac44f))\n- 🧩 修复 useDebounceFn 错误使用 ([99d4278](https://github.com/HalseySpicy/Geeker-Admin/commit/99d4278a29b7fa970caba55f43134cebd1d3bec6))\n- 🧩 修复多图片上传预览初始化异常 ([d1a917f](https://github.com/HalseySpicy/Geeker-Admin/commit/d1a917f10326b7742b4445c495de12603df658c1))\n- 🧩 修复分栏布局路径匹配 bug ([b06bd12](https://github.com/HalseySpicy/Geeker-Admin/commit/b06bd123fa6af0dcb7d5cc9bc9215f13b91ace5f))\n- 🧩 修复横向布局下最大化失效 ([e416ddb](https://github.com/HalseySpicy/Geeker-Admin/commit/e416ddb732ae336ca4e7e43ebdeb89b24085d1b1))\n- 🧩 修复路由重置 bug ([52b7e66](https://github.com/HalseySpicy/Geeker-Admin/commit/52b7e66febf1db9cd3325eb0e1e45213ff1528c2))\n- 🧩 修复弱类型检查错误 ([b32310e](https://github.com/HalseySpicy/Geeker-Admin/commit/b32310ed2f546e3efa918d5f7eee2c3868a98cb7))\n\n### 0.0.7 (2022-12-28)\n\n### Features\n\n- 🚀 二次封装 wangEditor 富文本编辑器(50%) ([4f8e266](https://gitee.com/HalseySpicy/Geeker-Admin/commit/4f8e266b7dd25a7df18d302e88e14454bfa3816b))\n- 🚀 更新插件、优化代码(请查看详情) ([dac6dec](https://gitee.com/HalseySpicy/Geeker-Admin/commit/dac6dec75466c19731ad7cf083f8c39940342140))\n- 🚀 更新微信群二维码 ([7e890d0](https://gitee.com/HalseySpicy/Geeker-Admin/commit/7e890d0afe0a11170d73e3c2c4ef04d37a582e94))\n- 🚀 请求全局 loading 更改为可配置 ([a75d62f](https://gitee.com/HalseySpicy/Geeker-Admin/commit/a75d62f627195ac420cf24ad7f51245b2e5bf04e))\n- 🚀 升级 element-plus 到 2.25 ([e98c035](https://gitee.com/HalseySpicy/Geeker-Admin/commit/e98c035caa6d1ab04319673e0db65837c6887126))\n- 🚀 升级 vite、vue 版本 && 优化分栏布局样式 ([b2b1b59](https://gitee.com/HalseySpicy/Geeker-Admin/commit/b2b1b599bc1fa0f1c64c5c58fb31d3719f415301))\n- 🚀 使用属性透传重构 ProTable 组件 ([a428e89](https://gitee.com/HalseySpicy/Geeker-Admin/commit/a428e89a3784c826eceaaee548b97975afbe1d45))\n- 🚀 添加 wangEditor 组件 ([d6d2fa7](https://gitee.com/HalseySpicy/Geeker-Admin/commit/d6d2fa7d27887bb4a9e40e9d7037d4621812e16a))\n- 🚀 完成 wangEditor 富文本二次封装 ([7362bfb](https://gitee.com/HalseySpicy/Geeker-Admin/commit/7362bfbff19224045e3bb20fa939a78c556cc805))\n- 🚀 完善按钮、菜单权限示例 ([6793f0c](https://gitee.com/HalseySpicy/Geeker-Admin/commit/6793f0cd7372b8a080f6d2649b05cdd0c62bd853))\n- 🚀 新增 主题色、灰色模式、色弱模式 配置 ([7821157](https://gitee.com/HalseySpicy/Geeker-Admin/commit/7821157059ed9c21d2844f75049f8fa999b19944))\n- 🚀 新增 pro-form ([3ab5a5b](https://gitee.com/HalseySpicy/Geeker-Admin/commit/3ab5a5b4f63fca227944ab6cc7928f6bf1f88ed4))\n- 🚀 新增 protable 打印、列对齐方式功能 ([c22879e](https://gitee.com/HalseySpicy/Geeker-Admin/commit/c22879e7e80ff9ef662c39daa25b11f5f17d17ca))\n- 🚀 新增 protbale 功能, 请查看详情 ([17f2bcd](https://gitee.com/HalseySpicy/Geeker-Admin/commit/17f2bcd67362365579ed8a572a3a9d17368ac64e))\n- 🚀 新增 SVG Icons ([977602c](https://gitee.com/HalseySpicy/Geeker-Admin/commit/977602c30b8997cb51426fe9498392edc249561d))\n- 🚀 新增 treeFilter 组件标题属性 ([20c755f](https://gitee.com/HalseySpicy/Geeker-Admin/commit/20c755f59f3ae2b0380e6549bb56bb22317d750e))\n- 🚀 新增 treeFilter data 参数 ([4280766](https://gitee.com/HalseySpicy/Geeker-Admin/commit/428076635d7a0e9f80109274d9523cf91aa5a10c))\n- 🚀 新增暗黑模式 ([215e499](https://gitee.com/HalseySpicy/Geeker-Admin/commit/215e499634b516234e653eac27a611d5f51ea6da))\n- 🚀 新增菜单搜索功能 ([4aa0eef](https://gitee.com/HalseySpicy/Geeker-Admin/commit/4aa0eefaf427a2aa1aebd2b78dc049ffa776e838))\n- 🚀 新增动态路由 ([551fefc](https://gitee.com/HalseySpicy/Geeker-Admin/commit/551fefc2e66b067d9e64d3b0cfbf47dfa1057d98))\n- 🚀 新增分栏布局 ([de37143](https://gitee.com/HalseySpicy/Geeker-Admin/commit/de37143e93c0cc5be2ff52466dce344ab9270f0d))\n- 🚀 新增功能 && 修复 bug(查看详情) ([1ab183f](https://gitee.com/HalseySpicy/Geeker-Admin/commit/1ab183f1551cb8beb77243c2953b0119409dd6a5))\n- 🚀 新增功能 && 修复 bug(查看详情) ([4c0bc5f](https://gitee.com/HalseySpicy/Geeker-Admin/commit/4c0bc5fd3c111e1cac636cad104c83ffb1168679))\n- 🚀 新增功能(查看详情) ([cbd8dc2](https://gitee.com/HalseySpicy/Geeker-Admin/commit/cbd8dc2387576f525c0e49f81d540fbad3cb5e81))\n- 🚀 新增横向、纵向、经典布局切换 ([1046de4](https://gitee.com/HalseySpicy/Geeker-Admin/commit/1046de4c7d5f805b10c5cea5325b063e3d6dd84f))\n- 🚀 新增界面配置功能 ([39ffc5e](https://gitee.com/HalseySpicy/Geeker-Admin/commit/39ffc5e9a77da3294055f23f8c87a4a44f3622f7))\n- 🚀 新增路由相关功能 ([9679eed](https://gitee.com/HalseySpicy/Geeker-Admin/commit/9679eed1edd0c1f08c17465f590d4ca0365985ee)), closes [#71](https://gitee.com/HalseySpicy/Geeker-Admin/issues/71) [#72](https://gitee.com/HalseySpicy/Geeker-Admin/issues/72) [#49](https://gitee.com/HalseySpicy/Geeker-Admin/issues/49)\n- 🚀 新增请求示例，参见 loginApi ([d49b227](https://gitee.com/HalseySpicy/Geeker-Admin/commit/d49b227762ae48c3ca08f0dec02a3667daac8532))\n- 🚀 新增图标选择组件 ([ce5e165](https://gitee.com/HalseySpicy/Geeker-Admin/commit/ce5e165aed842074a9f7ac66ea97290710b541ee))\n- 🚀 新增图片上传组件 ([c50c421](https://gitee.com/HalseySpicy/Geeker-Admin/commit/c50c421bc3c5f7af68184cda88262c6fb1bd07e0))\n- 🚀 新增图片上传组件属性 ([d7670ed](https://gitee.com/HalseySpicy/Geeker-Admin/commit/d7670ed94608c5410f3102d7b9427d8d856204b1))\n- 🚀 新增系统管理模块 ([23748e1](https://gitee.com/HalseySpicy/Geeker-Admin/commit/23748e185e80e3b774b42114427934228a57d3aa))\n- 🚀 新增消息通知 ([66836b6](https://gitee.com/HalseySpicy/Geeker-Admin/commit/66836b69781ccc55402a3887d091149885864442))\n- 🚀 新增页面刷新功能 ([5223a41](https://gitee.com/HalseySpicy/Geeker-Admin/commit/5223a416d17568d5b2cae7b16b637e0f39134223))\n- 🚀 新增引导页 ([4fb6fb3](https://gitee.com/HalseySpicy/Geeker-Admin/commit/4fb6fb3a3eb34f82576e2378c311ff580f65226d))\n- 🚀 新增组件参数配置文档 ([0e11fc5](https://gitee.com/HalseySpicy/Geeker-Admin/commit/0e11fc59175d5d74730c3cb1fa2579effcca6e48))\n- 🚀 修改 keepAlive 逻辑 ([168ca13](https://gitee.com/HalseySpicy/Geeker-Admin/commit/168ca13e796c8cc366caa3d6e05090acdaefef75))\n- 🚀 修改 pinia 持久化插件 ([a7691ae](https://gitee.com/HalseySpicy/Geeker-Admin/commit/a7691aea614a035c4d381838149e08ad8477e49f))\n- 🚀 优化代码注释 && 升级 element 到 2.2.6 ([b84512b](https://gitee.com/HalseySpicy/Geeker-Admin/commit/b84512b3b102b00faa2f9241a32f5fbe27da4307))\n- 🚀 优化注释 && 代码细节问题 ([9d0ffa5](https://gitee.com/HalseySpicy/Geeker-Admin/commit/9d0ffa5ddecc4c73bec51208b05a6d44b1523b1f))\n- 🚀 预定义主题颜色 ([8219178](https://gitee.com/HalseySpicy/Geeker-Admin/commit/82191789bcf6d21c623aa61c5a64e502cea44c2c))\n- 🚀 增加 SearchForm 属性透传 ([eadb89b](https://gitee.com/HalseySpicy/Geeker-Admin/commit/eadb89b687596980a82401f44c53430081078d04))\n- 🚀 增加表格 treeFilter、更新整体布局样式 ([719b78f](https://gitee.com/HalseySpicy/Geeker-Admin/commit/719b78f317589b983bc4b852b3bfd63a60d42a46))\n- 🚀 增加布局方式切换，样式已完成 ([5745b93](https://gitee.com/HalseySpicy/Geeker-Admin/commit/5745b93a6cc00519c1a02977b8c0437502d867e6))\n- 🚀 增加分类筛选器 ([c95a1c0](https://gitee.com/HalseySpicy/Geeker-Admin/commit/c95a1c054ee9eacae470bcaae7574d5c989b86a2))\n- 🚀 增加全局错误拦截 && 修改细节问题 请查看详情 ([0496184](https://gitee.com/HalseySpicy/Geeker-Admin/commit/04961847eb7df004d1e9f562e78ea3d5f851ea49))\n\n### Bug Fixes\n\n- 🧩 菜单搜索过滤掉 isHide 为 true 的菜单 ([c6bab35](https://gitee.com/HalseySpicy/Geeker-Admin/commit/c6bab356f0cde7e3dc6f69dfac115239c2453776))\n- 🧩 解决 useTable 查询参数 bug ([a86e408](https://gitee.com/HalseySpicy/Geeker-Admin/commit/a86e4089b6da8ab6a55bc84e069d665c06471676))\n- 🧩 去除登陆页默认账号 ([3dda3fe](https://gitee.com/HalseySpicy/Geeker-Admin/commit/3dda3fee3fef38fdafcfdf3b1bf16e73033c6fe0))\n- 🧩 删除 protable 组件 image 配置属性 ([d699fe7](https://gitee.com/HalseySpicy/Geeker-Admin/commit/d699fe7bd55eaaccfad9b94105c1b43ae64d1c34))\n- 🧩 修复 国际化 产生的 bug ([ec4f74a](https://gitee.com/HalseySpicy/Geeker-Admin/commit/ec4f74ae654e7287fc08bb31fa3ee3d2c76164eb))\n- 🧩 修复 axios 请求超时未拦截错误 ([856468e](https://gitee.com/HalseySpicy/Geeker-Admin/commit/856468e84f8356d35c25097f3115dfe3d496914c))\n- 🧩 修复 bug ([3714abd](https://gitee.com/HalseySpicy/Geeker-Admin/commit/3714abdc4826034791ccb3fc8249d946ec3a4e16))\n- 🧩 修复 Pro-Tabel 列设置 bug ([a3b86a0](https://gitee.com/HalseySpicy/Geeker-Admin/commit/a3b86a06a6d9cd4b6f7ac6e108727a0b4852e9a0))\n- 🧩 修复 pro-table 格式报错问题 ([2ef11fd](https://gitee.com/HalseySpicy/Geeker-Admin/commit/2ef11fda6d373c3214df801ae789cafc1a033dcb))\n- 🧩 修复布局样式 bug ([2f1cd64](https://gitee.com/HalseySpicy/Geeker-Admin/commit/2f1cd6442f359909301e3d95b0ed4dc9d2dbe7c6))\n- 🧩 修复打包错误 ([243ebfc](https://gitee.com/HalseySpicy/Geeker-Admin/commit/243ebfc5280ddc013056c6708b44df35fe18f613))\n- 🧩 修复打包失败 ([31698fe](https://gitee.com/HalseySpicy/Geeker-Admin/commit/31698fea6478d60343a9ad49ae0fc6db7a42c184))\n- 🧩 修复打包失败问题 ([1778651](https://gitee.com/HalseySpicy/Geeker-Admin/commit/1778651781a1bb8bfe4ea61dafb9b48773fef5d7))\n- 🧩 修复分栏布局 bug ([113274a](https://gitee.com/HalseySpicy/Geeker-Admin/commit/113274a87e2dacf694648f3a304c7ac37e2262d0))\n- 🧩 修复经典布局展示 bug ([b95e237](https://gitee.com/HalseySpicy/Geeker-Admin/commit/b95e2376d06c6a6a35f72743e3fe8c1569fda008))\n- 🧩 修复路由跳转两次不能携带参数问题 ([8b583f3](https://gitee.com/HalseySpicy/Geeker-Admin/commit/8b583f3d5f05b77ec2a35082557bae431441a586))\n- 🧩 修复请求 header 参数丢失 bug ([3598dbc](https://gitee.com/HalseySpicy/Geeker-Admin/commit/3598dbc2a83aaacf9dada4e2c38a3ca27cbe4cfd))\n- 🧩 修复上传组件细节问题 ([8528358](https://gitee.com/HalseySpicy/Geeker-Admin/commit/8528358925ea809cf52f55015355345e87607351))\n- 🧩 修复 BUG ([4bf2988](https://gitee.com/HalseySpicy/Geeker-Admin/commit/4bf29881dd41fad256f1beb5affcd5ba6599e17d))\n- 🧩 修复 BUG ([c93aaf7](https://gitee.com/HalseySpicy/Geeker-Admin/commit/c93aaf700112decd158e9a5a9c1f83eff1773e91))\n- 🧩 修复 loading 请求 bug ([a3270ec](https://gitee.com/HalseySpicy/Geeker-Admin/commit/a3270ecfa2e7c2484729ae6fd599febcc4f7be6b))\n- 🧩 修复 vercel 打包失败 ([e63dee1](https://gitee.com/HalseySpicy/Geeker-Admin/commit/e63dee1f9653f4f95d0330275c5f5e8b530564c9))\n- 🧩 修改 Pro-Table 表头渲染方式 ([aa57294](https://gitee.com/HalseySpicy/Geeker-Admin/commit/aa5729489942eaa6dca9928b70153af2de753a9c))\n- 🧩 修改 useTable 存在的 bug ([5bb55b3](https://gitee.com/HalseySpicy/Geeker-Admin/commit/5bb55b32c0b46bbf55fa0d49efe3a15d0b1673a4))\n- 🧩 修改 useTable 钩子中的 bug ([675aed8](https://gitee.com/HalseySpicy/Geeker-Admin/commit/675aed806e62c236b40bc933402c86085289df4e))\n- 🧩 修改 useTable 携带默认查询参数 bug ([ee585b2](https://gitee.com/HalseySpicy/Geeker-Admin/commit/ee585b29f3129b7143a10947fdd3184b197ad883))\n- 🧩 修改代码细节 && 优化注释 ([d86cb1f](https://gitee.com/HalseySpicy/Geeker-Admin/commit/d86cb1feb32e11a29e1c2bee54ea788c6c828d75))\n- 🧩 修改当菜单设置 isHide=true 时面包屑报错 ([66885c5](https://gitee.com/HalseySpicy/Geeker-Admin/commit/66885c5cc15c10ccadcd49a7bee27a821663e8a7))\n- 🧩 修改文件导出失败 bug ([208e720](https://gitee.com/HalseySpicy/Geeker-Admin/commit/208e720688969d2bc0fa0a6cc2bae3e3b991c806))\n- 🧩 修改 BUG ([540048a](https://gitee.com/HalseySpicy/Geeker-Admin/commit/540048a09be9b0df5443e275f38f43c80dcde51f))\n- 🧩 fix use pinia bug ([609aa69](https://gitee.com/HalseySpicy/Geeker-Admin/commit/609aa69aa9b3e0bb4e667ee7f76ab44051c2d2e8))\n- 修复登录后白屏 ([f986c5c](https://gitee.com/HalseySpicy/Geeker-Admin/commit/f986c5c44fc1df8d5c6a90e90239c06928e2f4a1))\n- **el-table:** 🧩 修复 el-table 在 safari 浏览器错乱 ([b776a48](https://gitee.com/HalseySpicy/Geeker-Admin/commit/b776a483636547c7cee723846ec33b2842550d13))\n\n### 0.0.6 (2022-08-22)\n\n### Features\n\n- 🚀 二次封装 wangEditor 富文本编辑器(50%) ([4f8e266](https://gitee.com/HalseySpicy/Geeker-Admin/commit/4f8e266b7dd25a7df18d302e88e14454bfa3816b))\n- 🚀 请求全局 loading 更改为可配置 ([a75d62f](https://gitee.com/HalseySpicy/Geeker-Admin/commit/a75d62f627195ac420cf24ad7f51245b2e5bf04e))\n- 🚀 升级 element-plus 到 2.25 ([e98c035](https://gitee.com/HalseySpicy/Geeker-Admin/commit/e98c035caa6d1ab04319673e0db65837c6887126))\n- 🚀 添加 wangEditor 组件 ([d6d2fa7](https://gitee.com/HalseySpicy/Geeker-Admin/commit/d6d2fa7d27887bb4a9e40e9d7037d4621812e16a))\n- 🚀 完成 wangEditor 富文本二次封装 ([7362bfb](https://gitee.com/HalseySpicy/Geeker-Admin/commit/7362bfbff19224045e3bb20fa939a78c556cc805))\n- 🚀 新增 主题色、灰色模式、色弱模式 配置 ([7821157](https://gitee.com/HalseySpicy/Geeker-Admin/commit/7821157059ed9c21d2844f75049f8fa999b19944))\n- 🚀 新增 pro-form ([3ab5a5b](https://gitee.com/HalseySpicy/Geeker-Admin/commit/3ab5a5b4f63fca227944ab6cc7928f6bf1f88ed4))\n- 🚀 新增 protbale 功能, 请查看详情 ([17f2bcd](https://gitee.com/HalseySpicy/Geeker-Admin/commit/17f2bcd67362365579ed8a572a3a9d17368ac64e))\n- 🚀 新增 SVG Icons ([977602c](https://gitee.com/HalseySpicy/Geeker-Admin/commit/977602c30b8997cb51426fe9498392edc249561d))\n- 🚀 新增 treeFilter data 参数 ([4280766](https://gitee.com/HalseySpicy/Geeker-Admin/commit/428076635d7a0e9f80109274d9523cf91aa5a10c))\n- 🚀 新增暗黑模式 ([215e499](https://gitee.com/HalseySpicy/Geeker-Admin/commit/215e499634b516234e653eac27a611d5f51ea6da))\n- 🚀 新增菜单搜索功能 ([4aa0eef](https://gitee.com/HalseySpicy/Geeker-Admin/commit/4aa0eefaf427a2aa1aebd2b78dc049ffa776e838))\n- 🚀 新增界面配置功能 ([39ffc5e](https://gitee.com/HalseySpicy/Geeker-Admin/commit/39ffc5e9a77da3294055f23f8c87a4a44f3622f7))\n- 🚀 新增请求示例，参见 loginApi ([d49b227](https://gitee.com/HalseySpicy/Geeker-Admin/commit/d49b227762ae48c3ca08f0dec02a3667daac8532))\n- 🚀 新增图标选择组件 ([ce5e165](https://gitee.com/HalseySpicy/Geeker-Admin/commit/ce5e165aed842074a9f7ac66ea97290710b541ee))\n- 🚀 新增图片上传组件 ([c50c421](https://gitee.com/HalseySpicy/Geeker-Admin/commit/c50c421bc3c5f7af68184cda88262c6fb1bd07e0))\n- 🚀 新增图片上传组件属性 ([d7670ed](https://gitee.com/HalseySpicy/Geeker-Admin/commit/d7670ed94608c5410f3102d7b9427d8d856204b1))\n- 🚀 新增引导页 ([4fb6fb3](https://gitee.com/HalseySpicy/Geeker-Admin/commit/4fb6fb3a3eb34f82576e2378c311ff580f65226d))\n- 🚀 新增组件参数配置文档 ([0e11fc5](https://gitee.com/HalseySpicy/Geeker-Admin/commit/0e11fc59175d5d74730c3cb1fa2579effcca6e48))\n- 🚀 修改 pinia 持久化插件 ([a7691ae](https://gitee.com/HalseySpicy/Geeker-Admin/commit/a7691aea614a035c4d381838149e08ad8477e49f))\n- 🚀 优化代码注释 && 升级 element 到 2.2.6 ([b84512b](https://gitee.com/HalseySpicy/Geeker-Admin/commit/b84512b3b102b00faa2f9241a32f5fbe27da4307))\n- 🚀 优化注释 && 代码细节问题 ([9d0ffa5](https://gitee.com/HalseySpicy/Geeker-Admin/commit/9d0ffa5ddecc4c73bec51208b05a6d44b1523b1f))\n- 🚀 预定义主题颜色 ([8219178](https://gitee.com/HalseySpicy/Geeker-Admin/commit/82191789bcf6d21c623aa61c5a64e502cea44c2c))\n- 🚀 增加 SearchForm 属性透传 ([eadb89b](https://gitee.com/HalseySpicy/Geeker-Admin/commit/eadb89b687596980a82401f44c53430081078d04))\n- 🚀 增加表格 treeFilter、更新整体布局样式 ([719b78f](https://gitee.com/HalseySpicy/Geeker-Admin/commit/719b78f317589b983bc4b852b3bfd63a60d42a46))\n\n### Bug Fixes\n\n- 🧩 解决 useTable 查询参数 bug ([a86e408](https://gitee.com/HalseySpicy/Geeker-Admin/commit/a86e4089b6da8ab6a55bc84e069d665c06471676))\n- 🧩 去除登陆页默认账号 ([3dda3fe](https://gitee.com/HalseySpicy/Geeker-Admin/commit/3dda3fee3fef38fdafcfdf3b1bf16e73033c6fe0))\n- 🧩 删除 protable 组件 image 配置属性 ([d699fe7](https://gitee.com/HalseySpicy/Geeker-Admin/commit/d699fe7bd55eaaccfad9b94105c1b43ae64d1c34))\n- 🧩 修复 国际化 产生的 bug ([ec4f74a](https://gitee.com/HalseySpicy/Geeker-Admin/commit/ec4f74ae654e7287fc08bb31fa3ee3d2c76164eb))\n- 🧩 修复 axios 请求超时未拦截错误 ([856468e](https://gitee.com/HalseySpicy/Geeker-Admin/commit/856468e84f8356d35c25097f3115dfe3d496914c))\n- 🧩 修复 Pro-Tabel 列设置 bug ([a3b86a0](https://gitee.com/HalseySpicy/Geeker-Admin/commit/a3b86a06a6d9cd4b6f7ac6e108727a0b4852e9a0))\n- 🧩 修复 pro-table 格式报错问题 ([2ef11fd](https://gitee.com/HalseySpicy/Geeker-Admin/commit/2ef11fda6d373c3214df801ae789cafc1a033dcb))\n- 🧩 修复打包失败问题 ([1778651](https://gitee.com/HalseySpicy/Geeker-Admin/commit/1778651781a1bb8bfe4ea61dafb9b48773fef5d7))\n- 🧩 修复路由跳转两次不能携带参数问题 ([8b583f3](https://gitee.com/HalseySpicy/Geeker-Admin/commit/8b583f3d5f05b77ec2a35082557bae431441a586))\n- 🧩 修复请求 header 参数丢失 bug ([3598dbc](https://gitee.com/HalseySpicy/Geeker-Admin/commit/3598dbc2a83aaacf9dada4e2c38a3ca27cbe4cfd))\n- 🧩 修复上传组件细节问题 ([8528358](https://gitee.com/HalseySpicy/Geeker-Admin/commit/8528358925ea809cf52f55015355345e87607351))\n- 🧩 修复 loading 请求 bug ([a3270ec](https://gitee.com/HalseySpicy/Geeker-Admin/commit/a3270ecfa2e7c2484729ae6fd599febcc4f7be6b))\n- 🧩 修改 Pro-Table 表头渲染方式 ([aa57294](https://gitee.com/HalseySpicy/Geeker-Admin/commit/aa5729489942eaa6dca9928b70153af2de753a9c))\n- 🧩 修改 useTable 存在的 bug ([5bb55b3](https://gitee.com/HalseySpicy/Geeker-Admin/commit/5bb55b32c0b46bbf55fa0d49efe3a15d0b1673a4))\n- 🧩 修改 useTable 钩子中的 bug ([675aed8](https://gitee.com/HalseySpicy/Geeker-Admin/commit/675aed806e62c236b40bc933402c86085289df4e))\n- 🧩 修改 useTable 携带默认查询参数 bug ([ee585b2](https://gitee.com/HalseySpicy/Geeker-Admin/commit/ee585b29f3129b7143a10947fdd3184b197ad883))\n- 🧩 修改代码细节 && 优化注释 ([d86cb1f](https://gitee.com/HalseySpicy/Geeker-Admin/commit/d86cb1feb32e11a29e1c2bee54ea788c6c828d75))\n- 🧩 修改文件导出失败 bug ([208e720](https://gitee.com/HalseySpicy/Geeker-Admin/commit/208e720688969d2bc0fa0a6cc2bae3e3b991c806))\n- 🧩 fix use pinia bug ([609aa69](https://gitee.com/HalseySpicy/Geeker-Admin/commit/609aa69aa9b3e0bb4e667ee7f76ab44051c2d2e8))\n- 修复登录后白屏 ([f986c5c](https://gitee.com/HalseySpicy/Geeker-Admin/commit/f986c5c44fc1df8d5c6a90e90239c06928e2f4a1))\n\n### [0.0.5](https://github.com/HalseySpicy/Geeker-Admin/compare/v0.0.4...v0.0.5) (2022-07-21)\n\n### Features\n\n- 🚀 新增请求示例，参见 loginApi ([d49b227](https://github.com/HalseySpicy/Geeker-Admin/commit/d49b227762ae48c3ca08f0dec02a3667daac8532))\n\n### Bug Fixes\n\n- 🧩 解决 useTable 查询参数 bug ([a86e408](https://github.com/HalseySpicy/Geeker-Admin/commit/a86e4089b6da8ab6a55bc84e069d665c06471676))\n- 🧩 修复 axios 请求超时未拦截错误 ([856468e](https://github.com/HalseySpicy/Geeker-Admin/commit/856468e84f8356d35c25097f3115dfe3d496914c))\n- 🧩 修复请求 header 参数丢失 bug ([3598dbc](https://github.com/HalseySpicy/Geeker-Admin/commit/3598dbc2a83aaacf9dada4e2c38a3ca27cbe4cfd))\n\n### [0.0.4](https://github.com/HalseySpicy/Geeker-Admin/compare/v0.0.3...v0.0.4) (2022-07-12)\n\n### Features\n\n- 🚀 新增 主题色、灰色模式、色弱模式 配置 ([7821157](https://github.com/HalseySpicy/Geeker-Admin/commit/7821157059ed9c21d2844f75049f8fa999b19944))\n- 🚀 新增 pro-form ([3ab5a5b](https://github.com/HalseySpicy/Geeker-Admin/commit/3ab5a5b4f63fca227944ab6cc7928f6bf1f88ed4))\n- 🚀 新增菜单搜索功能 ([4aa0eef](https://github.com/HalseySpicy/Geeker-Admin/commit/4aa0eefaf427a2aa1aebd2b78dc049ffa776e838))\n- 🚀 新增界面配置功能 ([39ffc5e](https://github.com/HalseySpicy/Geeker-Admin/commit/39ffc5e9a77da3294055f23f8c87a4a44f3622f7))\n- 🚀 预定义主题颜色 ([8219178](https://github.com/HalseySpicy/Geeker-Admin/commit/82191789bcf6d21c623aa61c5a64e502cea44c2c))\n- 🚀 增加 SearchForm 属性透传 ([eadb89b](https://github.com/HalseySpicy/Geeker-Admin/commit/eadb89b687596980a82401f44c53430081078d04))\n\n### Bug Fixes\n\n- 🧩 修复 pro-table 格式报错问题 ([2ef11fd](https://github.com/HalseySpicy/Geeker-Admin/commit/2ef11fda6d373c3214df801ae789cafc1a033dcb))\n- 🧩 修改文件导出失败 bug ([208e720](https://github.com/HalseySpicy/Geeker-Admin/commit/208e720688969d2bc0fa0a6cc2bae3e3b991c806))\n- 🧩 fix use pinia bug ([609aa69](https://github.com/HalseySpicy/Geeker-Admin/commit/609aa69aa9b3e0bb4e667ee7f76ab44051c2d2e8))\n\n### [0.0.2](https://github.com/HalseySpicy/Geeker-Admin/compare/v0.0.3...v0.0.2) (2022-06-29)\n\n### 0.0.2 (2022-06-20)\n\n### Features\n\n- 🚀 请求全局 loading 更改为可配置 ([a75d62f](https://github.com/HalseySpicy/Geeker-Admin/commit/a75d62f627195ac420cf24ad7f51245b2e5bf04e))\n- 🚀 升级 element-plus 到 2.2.5 ([e98c035](https://github.com/HalseySpicy/Geeker-Admin/commit/e98c035caa6d1ab04319673e0db65837c6887126))\n- 🚀 新增暗黑模式 ([215e499](https://github.com/HalseySpicy/Geeker-Admin/commit/215e499634b516234e653eac27a611d5f51ea6da))\n- 🚀 新增图标选择组件 ([ce5e165](https://github.com/HalseySpicy/Geeker-Admin/commit/ce5e165aed842074a9f7ac66ea97290710b541ee))\n- 🚀 修改 pinia 持久化插件 ([a7691ae](https://github.com/HalseySpicy/Geeker-Admin/commit/a7691aea614a035c4d381838149e08ad8477e49f))\n- 🚀 优化代码注释 && 升级 element 到 2.2.6 ([b84512b](https://github.com/HalseySpicy/Geeker-Admin/commit/b84512b3b102b00faa2f9241a32f5fbe27da4307))\n\n### Bug Fixes\n\n- 🧩 去除登陆页默认账号 ([3dda3fe](https://github.com/HalseySpicy/Geeker-Admin/commit/3dda3fee3fef38fdafcfdf3b1bf16e73033c6fe0))\n- 🧩 修复 Pro-Table 列设置 bug ([a3b86a0](https://github.com/HalseySpicy/Geeker-Admin/commit/a3b86a06a6d9cd4b6f7ac6e108727a0b4852e9a0))\n- 🧩 修复 loading 请求 bug ([a3270ec](https://github.com/HalseySpicy/Geeker-Admin/commit/a3270ecfa2e7c2484729ae6fd599febcc4f7be6b))\n- 🧩 修改 Pro-Table 表头渲染方式 ([aa57294](https://github.com/HalseySpicy/Geeker-Admin/commit/aa5729489942eaa6dca9928b70153af2de753a9c))\n- 🧩 修改 useTable 存在的 bug ([5bb55b3](https://github.com/HalseySpicy/Geeker-Admin/commit/5bb55b32c0b46bbf55fa0d49efe3a15d0b1673a4))\n- 🧩 修改 useTable 钩子中的 bug ([675aed8](https://github.com/HalseySpicy/Geeker-Admin/commit/675aed806e62c236b40bc933402c86085289df4e))\n- 🧩 修改 useTable 携带默认查询参数 bug ([ee585b2](https://github.com/HalseySpicy/Geeker-Admin/commit/ee585b29f3129b7143a10947fdd3184b197ad883))\n"
  },
  {
    "path": "LICENSE",
    "content": "MIT License\r\n\r\nCopyright (c) 2022 Halsey\r\n\r\nPermission is hereby granted, free of charge, to any person obtaining a copy\r\nof this software and associated documentation files (the \"Software\"), to deal\r\nin the Software without restriction, including without limitation the rights\r\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\ncopies of the Software, and to permit persons to whom the Software is\r\nfurnished to do so, subject to the following conditions:\r\n\r\nThe above copyright notice and this permission notice shall be included in all\r\ncopies or substantial portions of the Software.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r\nSOFTWARE.\r\n"
  },
  {
    "path": "README.md",
    "content": "# Geeker-Admin\n\n### 介绍 📖\n\nGeeker-Admin 一款基于 Vue3.4、TypeScript、Vite5、Pinia、Element-Plus 开源的后台管理框架，使用目前最新技术栈开发。项目提供强大的 [ProTable](https://juejin.cn/post/7166068828202336263) 组件，在一定程度上提高您的开发效率。另外本项目还封装了一些常用组件、Hooks、指令、动态路由、按钮级别权限控制等功能。\n\n### React 版本 🔥\n\n- 有需要请加底部微信了解、购买\n\n- Link：https://pro.spicyboy.cn\n\n### 在线预览 👀\n\n- Link：https://admin.spicyboy.cn\n\n### 代码仓库 ⭐\n\n- Gitee：https://gitee.com/HalseySpicy/Geeker-Admin\n- GitHub：https://github.com/HalseySpicy/Geeker-Admin\n\n### 项目文档 📚\n\n- 项目更新日志：[CHANGELOG.md](./CHANGELOG.md)\n\n- 项目文档地址：https://docs.spicyboy.cn\n\n### 项目功能 🔨\n\n- 使用 Vue3.4 + TypeScript 开发，单文件组件**＜script setup＞**\n- 采用 Vite5 作为项目开发、打包工具（配置 gzip/brotli 打包、tsx 语法、跨域代理…）\n- 使用 Pinia 替代 Vuex，轻量、简单、易用，集成 Pinia 持久化插件\n- 使用 TypeScript 对 Axios 整个二次封装（请求拦截、取消、常用请求封装…）\n- 基于 Element 二次封装 [ProTable](https://juejin.cn/post/7166068828202336263) 组件，表格页面全部为配置项 Columns\n- 支持 Element 组件大小切换、多主题布局、暗黑模式、i18n 国际化\n- 使用 VueRouter 配置动态路由权限拦截、路由懒加载，支持页面按钮权限控制\n- 使用 KeepAlive 对页面进行缓存，支持多级嵌套路由缓存\n- 常用自定义指令开发（权限、复制、水印、拖拽、节流、防抖、长按…）\n- 使用 Prettier 统一格式化代码，集成 ESLint、Stylelint 代码校验规范\n- 使用 husky、lint-staged、commitlint、czg、cz-git 规范提交信息\n\n### 安装使用步骤 📔\n\n- **Clone：**\n\n```text\n# Gitee\ngit clone https://gitee.com/HalseySpicy/Geeker-Admin.git\n# GitHub\ngit clone https://github.com/HalseySpicy/Geeker-Admin.git\n```\n\n- **Install：**\n\n```text\npnpm install\n```\n\n- **Run：**\n\n```text\npnpm dev\npnpm serve\n```\n\n- **Build：**\n\n```text\n# 开发环境\npnpm build:dev\n\n# 测试环境\npnpm build:test\n\n# 生产环境\npnpm build:pro\n```\n\n- **Lint：**\n\n```text\n# eslint 检测代码\npnpm lint:eslint\n\n# prettier 格式化代码\npnpm lint:prettier\n\n# stylelint 格式化样式\npnpm lint:stylelint\n```\n\n- **commit：**\n\n```text\n# 提交代码（提交前会自动执行 lint:lint-staged 命令）\npnpm commit\n```\n\n### 项目截图 📷\n\n- 登录页：\n\n![login_light](https://i.imgtg.com/2023/04/13/8tknp.png)\n\n![login_dark](https://i.imgtg.com/2023/04/13/8tmpP.png)\n\n- 首页：\n\n![home_light](https://i.imgtg.com/2023/04/13/8tl1j.png)\n\n![home_dark](https://i.imgtg.com/2023/04/13/8tpfb.png)\n\n- 表格页：\n\n![table_light](https://i.imgtg.com/2023/04/13/8tfMx.png)\n\n![table_dark](https://i.imgtg.com/2023/04/13/8tv8F.png)\n\n- 数据可视化\n\n![dashboard](https://i.imgtg.com/2023/04/14/82Grx.png)\n\n- 数据大屏：\n\n![dataScreen](https://i.imgtg.com/2023/01/16/QP8HF.png)\n\n### 文件资源目录 📚\n\n```text\nGeeker-Admin\n├─ .husky                  # husky 配置文件\n├─ .vscode                 # VSCode 推荐配置\n├─ build                   # Vite 配置项\n├─ public                  # 静态资源文件（该文件夹不会被打包）\n├─ src\n│  ├─ api                  # API 接口管理\n│  ├─ assets               # 静态资源文件\n│  ├─ components           # 全局组件\n│  ├─ config               # 全局配置项\n│  ├─ directives           # 全局指令文件\n│  ├─ enums                # 项目常用枚举\n│  ├─ hooks                # 常用 Hooks 封装\n│  ├─ languages            # 语言国际化 i18n\n│  ├─ layouts              # 框架布局模块\n│  ├─ routers              # 路由管理\n│  ├─ stores               # pinia store\n│  ├─ styles               # 全局样式文件\n│  ├─ typings              # 全局 ts 声明\n│  ├─ utils                # 常用工具库\n│  ├─ views                # 项目所有页面\n│  ├─ App.vue              # 项目主组件\n│  ├─ main.ts              # 项目入口文件\n│  └─ vite-env.d.ts        # 指定 ts 识别 vue\n├─ .editorconfig           # 统一不同编辑器的编码风格\n├─ .env                    # vite 常用配置\n├─ .env.development        # 开发环境配置\n├─ .env.production         # 生产环境配置\n├─ .env.test               # 测试环境配置\n├─ .eslintignore           # 忽略 Eslint 校验\n├─ .eslintrc.cjs           # Eslint 校验配置文件\n├─ .gitignore              # 忽略 git 提交\n├─ .prettierignore         # 忽略 Prettier 格式化\n├─ .prettierrc.cjs         # Prettier 格式化配置\n├─ .stylelintignore        # 忽略 stylelint 格式化\n├─ .stylelintrc.cjs        # stylelint 样式格式化配置\n├─ CHANGELOG.md            # 项目更新日志\n├─ commitlint.config.cjs   # git 提交规范配置\n├─ index.html              # 入口 html\n├─ LICENSE                 # 开源协议文件\n├─ lint-staged.config.cjs  # lint-staged 配置文件\n├─ package-lock.json       # 依赖包包版本锁\n├─ package.json            # 依赖包管理\n├─ postcss.config.cjs      # postcss 配置\n├─ README.md               # README 介绍\n├─ tsconfig.json           # typescript 全局配置\n└─ vite.config.ts          # vite 全局配置文件\n```\n\n### 浏览器支持 🌎\n\n- 本地开发推荐使用 Chrome 最新版浏览器 [Download](https://www.google.com/intl/zh-CN/chrome/)。\n- 生产环境支持现代浏览器，不再支持 IE 浏览器，更多浏览器可以查看 [Can I Use Es Module](https://caniuse.com/?search=ESModule)。\n\n| ![IE](https://i.imgtg.com/2023/04/11/8z7ot.png) | ![Edge](https://i.imgtg.com/2023/04/11/8zr3p.png) | ![Firefox](https://i.imgtg.com/2023/04/11/8zKiU.png) | ![Chrome](https://i.imgtg.com/2023/04/11/8zNrx.png) | ![Safari](https://i.imgtg.com/2023/04/11/8zeGj.png) |\n| :---------------------------------------------: | :-----------------------------------------------: | :--------------------------------------------------: | :-------------------------------------------------: | :-------------------------------------------------: |\n|                   not support                   |                  last 2 versions                  |                   last 2 versions                    |                   last 2 versions                   |                   last 2 versions                   |\n\n### 项目后台接口 🧩\n\n项目后台接口完全采用 Mock 数据，感谢以下 Mock 平台支持：\n\n- FastMock： https://www.fastmock.site\n- EasyMock：https://mock.mengxuegu.com\n\n### 微信交流群 👨‍👨‍👦‍👦\n\n微信一群、二群、三群、四群已满，加作者微信进入五群（支持知识付费）🤪\n\n|                                               微信二维码                                                |\n| :-----------------------------------------------------------------------------------------------------: |\n| <img src=\"https://pic.ziyuan.wang/user/guest/2024/02/WX20240228-162952@2x_d164375fc0c16.png\" width=170> |\n\n### 捐赠 🍵\n\n如果你正在使用这个项目或者喜欢这个项目的，可以通过以下方式支持我：\n\n- Star、Fork、Watch 一键三连 🚀\n- 通过微信、支付宝一次性捐款 ❤\n\n|                                        微信                                        |                                       支付宝                                       |\n| :--------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------: |\n| <img src=\"https://i.imgtg.com/2023/01/16/QRzBX.png\" alt=\"Alipay QRcode\" width=170> | <img src=\"https://i.imgtg.com/2023/01/16/QRFZt.png\" alt=\"Wechat QRcode\" width=170> |\n"
  },
  {
    "path": "build/getEnv.ts",
    "content": "import path from \"path\";\n\nexport function isDevFn(mode: string): boolean {\n  return mode === \"development\";\n}\n\nexport function isProdFn(mode: string): boolean {\n  return mode === \"production\";\n}\n\nexport function isTestFn(mode: string): boolean {\n  return mode === \"test\";\n}\n\n/**\n * Whether to generate package preview\n */\nexport function isReportMode(): boolean {\n  return process.env.VITE_REPORT === \"true\";\n}\n\n// Read all environment variable configuration files to process.env\nexport function wrapperEnv(envConf: Recordable): ViteEnv {\n  const ret: any = {};\n\n  for (const envName of Object.keys(envConf)) {\n    let realName = envConf[envName].replace(/\\\\n/g, \"\\n\");\n    realName = realName === \"true\" ? true : realName === \"false\" ? false : realName;\n    if (envName === \"VITE_PORT\") realName = Number(realName);\n    if (envName === \"VITE_PROXY\") {\n      try {\n        realName = JSON.parse(realName);\n      } catch (error) {}\n    }\n    ret[envName] = realName;\n  }\n  return ret;\n}\n\n/**\n * Get user root directory\n * @param dir file path\n */\nexport function getRootPath(...dir: string[]) {\n  return path.resolve(process.cwd(), ...dir);\n}\n"
  },
  {
    "path": "build/plugins.ts",
    "content": "import { resolve } from \"path\";\nimport { PluginOption } from \"vite\";\nimport { VitePWA } from \"vite-plugin-pwa\";\nimport { createHtmlPlugin } from \"vite-plugin-html\";\nimport { visualizer } from \"rollup-plugin-visualizer\";\nimport { createSvgIconsPlugin } from \"vite-plugin-svg-icons\";\nimport vue from \"@vitejs/plugin-vue\";\nimport vueJsx from \"@vitejs/plugin-vue-jsx\";\nimport eslintPlugin from \"vite-plugin-eslint\";\nimport viteCompression from \"vite-plugin-compression\";\nimport vueSetupExtend from \"unplugin-vue-setup-extend-plus/vite\";\nimport NextDevTools from \"vite-plugin-vue-devtools\";\nimport { codeInspectorPlugin } from \"code-inspector-plugin\";\n\n/**\n * 创建 vite 插件\n * @param viteEnv\n */\nexport const createVitePlugins = (viteEnv: ViteEnv): (PluginOption | PluginOption[])[] => {\n  const { VITE_GLOB_APP_TITLE, VITE_REPORT, VITE_DEVTOOLS, VITE_PWA, VITE_CODEINSPECTOR } = viteEnv;\n  return [\n    vue(),\n    // vue 可以使用 jsx/tsx 语法\n    vueJsx(),\n    // devTools\n    VITE_DEVTOOLS && NextDevTools({ launchEditor: \"code\" }),\n    // esLint 报错信息显示在浏览器界面上\n    eslintPlugin(),\n    // name 可以写在 script 标签上\n    vueSetupExtend({}),\n    // 创建打包压缩配置\n    createCompression(viteEnv),\n    // 注入变量到 html 文件\n    createHtmlPlugin({\n      minify: true,\n      inject: {\n        data: { title: VITE_GLOB_APP_TITLE }\n      }\n    }),\n    // 使用 svg 图标\n    createSvgIconsPlugin({\n      iconDirs: [resolve(process.cwd(), \"src/assets/icons\")],\n      symbolId: \"icon-[dir]-[name]\"\n    }),\n    // vitePWA\n    VITE_PWA && createVitePwa(viteEnv),\n    // 是否生成包预览，分析依赖包大小做优化处理\n    VITE_REPORT && (visualizer({ filename: \"stats.html\", gzipSize: true, brotliSize: true }) as PluginOption),\n    // 自动 IDE 并将光标定位到 DOM 对应的源代码位置。see: https://inspector.fe-dev.cn/guide/start.html\n    VITE_CODEINSPECTOR &&\n      codeInspectorPlugin({\n        bundler: \"vite\"\n      })\n  ];\n};\n\n/**\n * @description 根据 compress 配置，生成不同的压缩规则\n * @param viteEnv\n */\nconst createCompression = (viteEnv: ViteEnv): PluginOption | PluginOption[] => {\n  const { VITE_BUILD_COMPRESS = \"none\", VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE } = viteEnv;\n  const compressList = VITE_BUILD_COMPRESS.split(\",\");\n  const plugins: PluginOption[] = [];\n  if (compressList.includes(\"gzip\")) {\n    plugins.push(\n      viteCompression({\n        ext: \".gz\",\n        algorithm: \"gzip\",\n        deleteOriginFile: VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE\n      })\n    );\n  }\n  if (compressList.includes(\"brotli\")) {\n    plugins.push(\n      viteCompression({\n        ext: \".br\",\n        algorithm: \"brotliCompress\",\n        deleteOriginFile: VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE\n      })\n    );\n  }\n  return plugins;\n};\n\n/**\n * @description VitePwa\n * @param viteEnv\n */\nconst createVitePwa = (viteEnv: ViteEnv): PluginOption | PluginOption[] => {\n  const { VITE_GLOB_APP_TITLE } = viteEnv;\n  return VitePWA({\n    registerType: \"autoUpdate\",\n    manifest: {\n      name: VITE_GLOB_APP_TITLE,\n      short_name: VITE_GLOB_APP_TITLE,\n      theme_color: \"#ffffff\",\n      icons: [\n        {\n          src: \"/logo.png\",\n          sizes: \"192x192\",\n          type: \"image/png\"\n        },\n        {\n          src: \"/logo.png\",\n          sizes: \"512x512\",\n          type: \"image/png\"\n        },\n        {\n          src: \"/logo.png\",\n          sizes: \"512x512\",\n          type: \"image/png\",\n          purpose: \"any maskable\"\n        }\n      ]\n    }\n  });\n};\n"
  },
  {
    "path": "build/proxy.ts",
    "content": "import type { ProxyOptions } from \"vite\";\n\ntype ProxyItem = [string, string];\n\ntype ProxyList = ProxyItem[];\n\ntype ProxyTargetList = Record<string, ProxyOptions>;\n\n/**\n * 创建代理，用于解析 .env.development 代理配置\n * @param list\n */\nexport function createProxy(list: ProxyList = []) {\n  const ret: ProxyTargetList = {};\n  for (const [prefix, target] of list) {\n    const httpsRE = /^https:\\/\\//;\n    const isHttps = httpsRE.test(target);\n\n    // https://github.com/http-party/node-http-proxy#options\n    ret[prefix] = {\n      target: target,\n      changeOrigin: true,\n      ws: true,\n      rewrite: path => path.replace(new RegExp(`^${prefix}`), \"\"),\n      // https is require secure=false\n      ...(isHttps ? { secure: false } : {})\n    };\n  }\n  return ret;\n}\n"
  },
  {
    "path": "commitlint.config.cjs",
    "content": "// @see: https://cz-git.qbenben.com/zh/guide\nconst fs = require(\"fs\");\nconst path = require(\"path\");\n\nconst scopes = fs\n  .readdirSync(path.resolve(__dirname, \"src\"), { withFileTypes: true })\n  .filter(dirent => dirent.isDirectory())\n  .map(dirent => dirent.name.replace(/s$/, \"\"));\n\n/** @type {import('cz-git').UserConfig} */\nmodule.exports = {\n  ignores: [commit => commit.includes(\"init\")],\n  extends: [\"@commitlint/config-conventional\"],\n  rules: {\n    // @see: https://commitlint.js.org/#/reference-rules\n    \"body-leading-blank\": [2, \"always\"],\n    \"footer-leading-blank\": [1, \"always\"],\n    \"header-max-length\": [2, \"always\", 108],\n    \"subject-empty\": [2, \"never\"],\n    \"type-empty\": [2, \"never\"],\n    \"subject-case\": [0],\n    \"type-enum\": [\n      2,\n      \"always\",\n      [\n        \"feat\",\n        \"fix\",\n        \"docs\",\n        \"style\",\n        \"refactor\",\n        \"perf\",\n        \"test\",\n        \"build\",\n        \"ci\",\n        \"chore\",\n        \"revert\",\n        \"wip\",\n        \"workflow\",\n        \"types\",\n        \"release\"\n      ]\n    ]\n  },\n  prompt: {\n    messages: {\n      type: \"Select the type of change that you're committing:\",\n      scope: \"Denote the SCOPE of this change (optional):\",\n      customScope: \"Denote the SCOPE of this change:\",\n      subject: \"Write a SHORT, IMPERATIVE tense description of the change:\\n\",\n      body: 'Provide a LONGER description of the change (optional). Use \"|\" to break new line:\\n',\n      breaking: 'List any BREAKING CHANGES (optional). Use \"|\" to break new line:\\n',\n      footerPrefixsSelect: \"Select the ISSUES type of changeList by this change (optional):\",\n      customFooterPrefixs: \"Input ISSUES prefix:\",\n      footer: \"List any ISSUES by this change. E.g.: #31, #34:\\n\",\n      confirmCommit: \"Are you sure you want to proceed with the commit above?\"\n      // 中文版\n      // type: \"选择你要提交的类型 :\",\n      // scope: \"选择一个提交范围（可选）:\",\n      // customScope: \"请输入自定义的提交范围 :\",\n      // subject: \"填写简短精炼的变更描述 :\\n\",\n      // body: '填写更加详细的变更描述（可选）。使用 \"|\" 换行 :\\n',\n      // breaking: '列举非兼容性重大的变更（可选）。使用 \"|\" 换行 :\\n',\n      // footerPrefixsSelect: \"选择关联issue前缀（可选）:\",\n      // customFooterPrefixs: \"输入自定义issue前缀 :\",\n      // footer: \"列举关联issue (可选) 例如: #31, #I3244 :\\n\",\n      // confirmCommit: \"是否提交或修改commit ?\"\n    },\n    types: [\n      {\n        value: \"feat\",\n        name: \"feat:     🚀  A new feature\",\n        emoji: \"🚀\"\n      },\n      {\n        value: \"fix\",\n        name: \"fix:      🧩  A bug fix\",\n        emoji: \"🧩\"\n      },\n      {\n        value: \"docs\",\n        name: \"docs:     📚  Documentation only changes\",\n        emoji: \"📚\"\n      },\n      {\n        value: \"style\",\n        name: \"style:    🎨  Changes that do not affect the meaning of the code\",\n        emoji: \"🎨\"\n      },\n      {\n        value: \"refactor\",\n        name: \"refactor: ♻️   A code change that neither fixes a bug nor adds a feature\",\n        emoji: \"♻️\"\n      },\n      {\n        value: \"perf\",\n        name: \"perf:     ⚡️  A code change that improves performance\",\n        emoji: \"⚡️\"\n      },\n      {\n        value: \"test\",\n        name: \"test:     ✅  Adding missing tests or correcting existing tests\",\n        emoji: \"✅\"\n      },\n      {\n        value: \"build\",\n        name: \"build:    📦️   Changes that affect the build system or external dependencies\",\n        emoji: \"📦️\"\n      },\n      {\n        value: \"ci\",\n        name: \"ci:       🎡  Changes to our CI configuration files and scripts\",\n        emoji: \"🎡\"\n      },\n      {\n        value: \"chore\",\n        name: \"chore:    🔨  Other changes that don't modify src or test files\",\n        emoji: \"🔨\"\n      },\n      {\n        value: \"revert\",\n        name: \"revert:   ⏪️  Reverts a previous commit\",\n        emoji: \"⏪️\"\n      },\n      {\n        value: \"wip\",\n        name: \"wip:      🕔  work in process\",\n        emoji: \"🕔\"\n      },\n      {\n        value: \"workflow\",\n        name: \"workflow: 📋  workflow improvements\",\n        emoji: \"📋\"\n      },\n      {\n        value: \"type\",\n        name: \"type:     🔰  type definition file changes\",\n        emoji: \"🔰\"\n      }\n      // 中文版\n      // { value: \"feat\", name: \"特性:   🚀  新增功能\", emoji: \"🚀\" },\n      // { value: \"fix\", name: \"修复:   🧩  修复缺陷\", emoji: \"🧩\" },\n      // { value: \"docs\", name: \"文档:   📚  文档变更\", emoji: \"📚\" },\n      // { value: \"style\", name: \"格式:   🎨  代码格式（不影响功能，例如空格、分号等格式修正）\", emoji: \"🎨\" },\n      // { value: \"refactor\", name: \"重构:   ♻️  代码重构（不包括 bug 修复、功能新增）\", emoji: \"♻️\" },\n      // { value: \"perf\", name: \"性能:    ⚡️  性能优化\", emoji: \"⚡️\" },\n      // { value: \"test\", name: \"测试:   ✅  添加疏漏测试或已有测试改动\", emoji: \"✅\" },\n      // { value: \"build\", name: \"构建:   📦️  构建流程、外部依赖变更（如升级 npm 包、修改 webpack 配置等）\", emoji: \"📦️\" },\n      // { value: \"ci\", name: \"集成:   🎡  修改 CI 配置、脚本\", emoji: \"🎡\" },\n      // { value: \"revert\", name: \"回退:   ⏪️  回滚 commit\", emoji: \"⏪️\" },\n      // { value: \"chore\", name: \"其他:   🔨  对构建过程或辅助工具和库的更改（不影响源文件、测试用例）\", emoji: \"🔨\" },\n      // { value: \"wip\", name: \"开发:   🕔  正在开发中\", emoji: \"🕔\" },\n      // { value: \"workflow\", name: \"工作流:   📋  工作流程改进\", emoji: \"📋\" },\n      // { value: \"types\", name: \"类型:   🔰  类型定义文件修改\", emoji: \"🔰\" }\n    ],\n    useEmoji: true,\n    scopes: [...scopes],\n    customScopesAlign: \"bottom\",\n    emptyScopesAlias: \"empty\",\n    customScopesAlias: \"custom\",\n    allowBreakingChanges: [\"feat\", \"fix\"]\n  }\n};\n"
  },
  {
    "path": "index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"UTF-8\" />\n    <link rel=\"icon\" type=\"image/svg+xml\" href=\"/vue.svg\" />\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n    <title><%- title %></title>\n  </head>\n  <body>\n    <div id=\"app\">\n      <style>\n        html,\n        body,\n        #app {\n          width: 100%;\n          height: 100%;\n          padding: 0;\n          margin: 0;\n        }\n        .loading-box {\n          display: flex;\n          flex-direction: column;\n          align-items: center;\n          justify-content: center;\n          width: 100%;\n          height: 100%;\n        }\n        .loading-box .loading-wrap {\n          display: flex;\n          align-items: center;\n          justify-content: center;\n          padding: 98px;\n        }\n        .dot {\n          position: relative;\n          box-sizing: border-box;\n          display: inline-block;\n          width: 32px;\n          height: 32px;\n          font-size: 32px;\n          transform: rotate(45deg);\n          animation: ant-rotate 1.2s infinite linear;\n        }\n        .dot i {\n          position: absolute;\n          display: block;\n          width: 14px;\n          height: 14px;\n          background-color: #409eff;\n          border-radius: 100%;\n          opacity: 0.3;\n          transform: scale(0.75);\n          transform-origin: 50% 50%;\n          animation: ant-spin-move 1s infinite linear alternate;\n        }\n        .dot i:nth-child(1) {\n          top: 0;\n          left: 0;\n        }\n        .dot i:nth-child(2) {\n          top: 0;\n          right: 0;\n          animation-delay: 0.4s;\n        }\n        .dot i:nth-child(3) {\n          right: 0;\n          bottom: 0;\n          animation-delay: 0.8s;\n        }\n        .dot i:nth-child(4) {\n          bottom: 0;\n          left: 0;\n          animation-delay: 1.2s;\n        }\n\n        @keyframes ant-rotate {\n          to {\n            transform: rotate(405deg);\n          }\n        }\n\n        @keyframes ant-spin-move {\n          to {\n            opacity: 1;\n          }\n        }\n      </style>\n      <div class=\"loading-box\">\n        <div class=\"loading-wrap\">\n          <span class=\"dot dot-spin\"><i></i><i></i><i></i><i></i></span>\n        </div>\n      </div>\n    </div>\n    <script>\n      const globalState = JSON.parse(window.localStorage.getItem(\"geeker-global\"));\n      if (globalState) {\n        const dot = document.querySelectorAll(\".dot i\");\n        const html = document.querySelector(\"html\");\n        dot.forEach(item => (item.style.background = globalState.primary));\n        if (globalState.isDark) html.style.background = \"#141414\";\n      }\n    </script>\n    <script type=\"module\" src=\"/src/main.ts\"></script>\n  </body>\n</html>\n"
  },
  {
    "path": "lint-staged.config.cjs",
    "content": "module.exports = {\n  \"*.{js,jsx,ts,tsx}\": [\"eslint --fix\", \"prettier --write\"],\n  \"{!(package)*.json,*.code-snippets,.!(browserslist)*rc}\": [\"prettier --write--parser json\"],\n  \"package.json\": [\"prettier --write\"],\n  \"*.vue\": [\"eslint --fix\", \"prettier --write\", \"stylelint --fix\"],\n  \"*.{scss,less,styl,html}\": [\"stylelint --fix\", \"prettier --write\"],\n  \"*.md\": [\"prettier --write\"]\n};\n"
  },
  {
    "path": "package.json",
    "content": "{\n  \"name\": \"geeker-admin\",\n  \"private\": true,\n  \"version\": \"1.2.0\",\n  \"type\": \"module\",\n  \"description\": \"geeker-admin open source management system\",\n  \"author\": {\n    \"name\": \"Geeker\",\n    \"email\": \"848130454@qq.com\",\n    \"url\": \"https://github.com/HalseySpicy\"\n  },\n  \"license\": \"MIT\",\n  \"homepage\": \"https://github.com/HalseySpicy/Geeker-Admin\",\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"git@github.com:HalseySpicy/Geeker-Admin.git\"\n  },\n  \"bugs\": {\n    \"url\": \"https://github.com/HalseySpicy/Geeker-Admin/issues\"\n  },\n  \"scripts\": {\n    \"dev\": \"vite\",\n    \"serve\": \"vite\",\n    \"build:dev\": \"vue-tsc && vite build --mode development\",\n    \"build:test\": \"vue-tsc && vite build --mode test\",\n    \"build:pro\": \"vue-tsc && vite build --mode production\",\n    \"type:check\": \"vue-tsc --noEmit --skipLibCheck\",\n    \"preview\": \"pnpm build:dev && vite preview\",\n    \"lint:eslint\": \"eslint --fix --ext .js,.ts,.vue ./src\",\n    \"lint:prettier\": \"prettier --write \\\"src/**/*.{js,ts,json,tsx,css,less,scss,vue,html,md}\\\"\",\n    \"lint:stylelint\": \"stylelint --cache --fix \\\"**/*.{vue,less,postcss,css,scss}\\\" --cache --cache-location node_modules/.cache/stylelint/\",\n    \"lint:lint-staged\": \"lint-staged\",\n    \"prepare\": \"husky install\",\n    \"release\": \"standard-version\",\n    \"commit\": \"git add -A && czg && git push\"\n  },\n  \"dependencies\": {\n    \"@element-plus/icons-vue\": \"^2.3.1\",\n    \"@vueuse/core\": \"^10.11.0\",\n    \"@wangeditor/editor\": \"^5.1.23\",\n    \"@wangeditor/editor-for-vue\": \"^5.1.12\",\n    \"axios\": \"^1.7.2\",\n    \"dayjs\": \"^1.11.11\",\n    \"driver.js\": \"^1.3.1\",\n    \"echarts\": \"^5.5.1\",\n    \"echarts-liquidfill\": \"^3.1.0\",\n    \"element-plus\": \"^2.7.6\",\n    \"md5\": \"^2.3.0\",\n    \"mitt\": \"^3.0.1\",\n    \"nprogress\": \"^0.2.0\",\n    \"pinia\": \"^2.1.7\",\n    \"pinia-plugin-persistedstate\": \"^3.2.1\",\n    \"qs\": \"^6.12.1\",\n    \"screenfull\": \"^6.0.2\",\n    \"sortablejs\": \"^1.15.2\",\n    \"vue\": \"^3.4.31\",\n    \"vue-i18n\": \"^9.13.1\",\n    \"vue-router\": \"^4.4.0\",\n    \"vuedraggable\": \"^4.1.0\"\n  },\n  \"devDependencies\": {\n    \"@commitlint/cli\": \"^18.4.3\",\n    \"@commitlint/config-conventional\": \"^18.4.3\",\n    \"@types/md5\": \"^2.3.5\",\n    \"@types/nprogress\": \"^0.2.3\",\n    \"@types/qs\": \"^6.9.15\",\n    \"@types/sortablejs\": \"^1.15.8\",\n    \"@typescript-eslint/eslint-plugin\": \"^7.14.1\",\n    \"@typescript-eslint/parser\": \"^7.14.1\",\n    \"@vitejs/plugin-vue\": \"^5.0.4\",\n    \"@vitejs/plugin-vue-jsx\": \"^3.1.0\",\n    \"autoprefixer\": \"^10.4.19\",\n    \"code-inspector-plugin\": \"^0.16.1\",\n    \"cz-git\": \"1.9.2\",\n    \"czg\": \"^1.9.2\",\n    \"eslint\": \"^8.57.0\",\n    \"eslint-config-prettier\": \"^9.1.0\",\n    \"eslint-plugin-prettier\": \"^5.1.3\",\n    \"eslint-plugin-vue\": \"^9.26.0\",\n    \"husky\": \"^9.0.11\",\n    \"lint-staged\": \"^15.2.5\",\n    \"postcss\": \"^8.4.38\",\n    \"postcss-html\": \"^1.7.0\",\n    \"prettier\": \"^3.3.2\",\n    \"rollup-plugin-visualizer\": \"^5.12.0\",\n    \"sass\": \"^1.77.6\",\n    \"standard-version\": \"^9.5.0\",\n    \"stylelint\": \"^16.6.1\",\n    \"stylelint-config-html\": \"^1.1.0\",\n    \"stylelint-config-recess-order\": \"^5.0.1\",\n    \"stylelint-config-recommended-scss\": \"^14.0.0\",\n    \"stylelint-config-recommended-vue\": \"^1.5.0\",\n    \"stylelint-config-standard\": \"^36.0.0\",\n    \"stylelint-config-standard-scss\": \"^13.1.0\",\n    \"typescript\": \"^5.5.2\",\n    \"unplugin-vue-setup-extend-plus\": \"^1.0.1\",\n    \"vite\": \"^5.3.2\",\n    \"vite-plugin-compression\": \"^0.5.1\",\n    \"vite-plugin-eslint\": \"^1.8.1\",\n    \"vite-plugin-html\": \"^3.2.2\",\n    \"vite-plugin-pwa\": \"^0.20.0\",\n    \"vite-plugin-svg-icons\": \"^2.0.1\",\n    \"vite-plugin-vue-devtools\": \"^7.3.5\",\n    \"vue-tsc\": \"^2.0.22\"\n  },\n  \"engines\": {\n    \"node\": \">=16.18.0\"\n  },\n  \"browserslist\": {\n    \"production\": [\n      \"> 1%\",\n      \"not dead\",\n      \"not op_mini all\"\n    ],\n    \"development\": [\n      \"last 1 chrome version\",\n      \"last 1 firefox version\",\n      \"last 1 safari version\"\n    ]\n  },\n  \"config\": {\n    \"commitizen\": {\n      \"path\": \"node_modules/cz-git\"\n    }\n  }\n}\n"
  },
  {
    "path": "postcss.config.cjs",
    "content": "module.exports = {\n  plugins: {\n    autoprefixer: {}\n  }\n};\n"
  },
  {
    "path": "src/App.vue",
    "content": "<template>\n  <el-config-provider :locale=\"locale\" :size=\"assemblySize\" :button=\"buttonConfig\">\n    <router-view></router-view>\n  </el-config-provider>\n</template>\n\n<script setup lang=\"ts\">\nimport { onMounted, reactive, computed } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\nimport { getBrowserLang } from \"@/utils\";\nimport { useTheme } from \"@/hooks/useTheme\";\nimport { ElConfigProvider } from \"element-plus\";\nimport { LanguageType } from \"./stores/interface\";\nimport { useGlobalStore } from \"@/stores/modules/global\";\nimport en from \"element-plus/es/locale/lang/en\";\nimport zhCn from \"element-plus/es/locale/lang/zh-cn\";\n\nconst globalStore = useGlobalStore();\n\n// init theme\nconst { initTheme } = useTheme();\ninitTheme();\n\n// init language\nconst i18n = useI18n();\nonMounted(() => {\n  const language = globalStore.language ?? getBrowserLang();\n  i18n.locale.value = language;\n  globalStore.setGlobalState(\"language\", language as LanguageType);\n});\n\n// element language\nconst locale = computed(() => {\n  if (globalStore.language == \"zh\") return zhCn;\n  if (globalStore.language == \"en\") return en;\n  return getBrowserLang() == \"zh\" ? zhCn : en;\n});\n\n// element assemblySize\nconst assemblySize = computed(() => globalStore.assemblySize);\n\n// element button config\nconst buttonConfig = reactive({ autoInsertSpace: false });\n</script>\n"
  },
  {
    "path": "src/api/config/servicePort.ts",
    "content": "// 后端微服务模块前缀\nexport const PORT1 = \"/geeker\";\nexport const PORT2 = \"/hooks\";\n"
  },
  {
    "path": "src/api/helper/axiosCancel.ts",
    "content": "import { CustomAxiosRequestConfig } from \"../index\";\nimport qs from \"qs\";\n\n// 声明一个 Map 用于存储每个请求的标识和取消函数\nlet pendingMap = new Map<string, AbortController>();\n\n// 序列化参数，确保对象属性顺序一致\nconst sortedStringify = (obj: any) => {\n  return qs.stringify(obj, { arrayFormat: \"repeat\", sort: (a, b) => a.localeCompare(b) });\n};\n\n// 获取请求的唯一标识\nexport const getPendingUrl = (config: CustomAxiosRequestConfig) => {\n  return [config.method, config.url, sortedStringify(config.data), sortedStringify(config.params)].join(\"&\");\n};\n\nexport class AxiosCanceler {\n  /**\n   * @description: 添加请求\n   * @param {Object} config\n   * @return void\n   */\n  addPending(config: CustomAxiosRequestConfig) {\n    // 在请求开始前，对之前的请求做检查取消操作\n    this.removePending(config);\n    const url = getPendingUrl(config);\n    const controller = new AbortController();\n    config.signal = controller.signal;\n    pendingMap.set(url, controller);\n  }\n\n  /**\n   * @description: 移除请求\n   * @param {Object} config\n   */\n  removePending(config: CustomAxiosRequestConfig) {\n    const url = getPendingUrl(config);\n    // 如果在 pending 中存在当前请求标识，需要取消当前请求并删除条目\n    const controller = pendingMap.get(url);\n    if (controller) {\n      controller.abort();\n      pendingMap.delete(url);\n    }\n  }\n\n  /**\n   * @description: 清空所有pending\n   */\n  removeAllPending() {\n    pendingMap.forEach(controller => {\n      controller && controller.abort();\n    });\n    pendingMap.clear();\n  }\n}\n"
  },
  {
    "path": "src/api/helper/checkStatus.ts",
    "content": "import { ElMessage } from \"element-plus\";\n\n/**\n * @description: 校验网络请求状态码\n * @param {Number} status\n * @return void\n */\nexport const checkStatus = (status: number) => {\n  switch (status) {\n    case 400:\n      ElMessage.error(\"请求失败！请您稍后重试\");\n      break;\n    case 401:\n      ElMessage.error(\"登录失效！请您重新登录\");\n      break;\n    case 403:\n      ElMessage.error(\"当前账号无权限访问！\");\n      break;\n    case 404:\n      ElMessage.error(\"你所访问的资源不存在！\");\n      break;\n    case 405:\n      ElMessage.error(\"请求方式错误！请您稍后重试\");\n      break;\n    case 408:\n      ElMessage.error(\"请求超时！请您稍后重试\");\n      break;\n    case 500:\n      ElMessage.error(\"服务异常！\");\n      break;\n    case 502:\n      ElMessage.error(\"网关错误！\");\n      break;\n    case 503:\n      ElMessage.error(\"服务不可用！\");\n      break;\n    case 504:\n      ElMessage.error(\"网关超时！\");\n      break;\n    default:\n      ElMessage.error(\"请求失败！\");\n  }\n};\n"
  },
  {
    "path": "src/api/index.ts",
    "content": "import axios, { AxiosInstance, AxiosError, AxiosRequestConfig, InternalAxiosRequestConfig, AxiosResponse } from \"axios\";\nimport { showFullScreenLoading, tryHideFullScreenLoading } from \"@/components/Loading/fullScreen\";\nimport { LOGIN_URL } from \"@/config\";\nimport { ElMessage } from \"element-plus\";\nimport { ResultData } from \"@/api/interface\";\nimport { ResultEnum } from \"@/enums/httpEnum\";\nimport { checkStatus } from \"./helper/checkStatus\";\nimport { AxiosCanceler } from \"./helper/axiosCancel\";\nimport { useUserStore } from \"@/stores/modules/user\";\nimport router from \"@/routers\";\n\nexport interface CustomAxiosRequestConfig extends InternalAxiosRequestConfig {\n  loading?: boolean;\n  cancel?: boolean;\n}\n\nconst config = {\n  // 默认地址请求地址，可在 .env.** 文件中修改\n  baseURL: import.meta.env.VITE_API_URL as string,\n  // 设置超时时间\n  timeout: ResultEnum.TIMEOUT as number,\n  // 跨域时候允许携带凭证\n  withCredentials: true\n};\n\nconst axiosCanceler = new AxiosCanceler();\n\nclass RequestHttp {\n  service: AxiosInstance;\n  public constructor(config: AxiosRequestConfig) {\n    // instantiation\n    this.service = axios.create(config);\n\n    /**\n     * @description 请求拦截器\n     * 客户端发送请求 -> [请求拦截器] -> 服务器\n     * token校验(JWT) : 接受服务器返回的 token,存储到 vuex/pinia/本地储存当中\n     */\n    this.service.interceptors.request.use(\n      (config: CustomAxiosRequestConfig) => {\n        const userStore = useUserStore();\n        // 重复请求不需要取消，在 api 服务中通过指定的第三个参数: { cancel: false } 来控制\n        config.cancel ??= true;\n        config.cancel && axiosCanceler.addPending(config);\n        // 当前请求不需要显示 loading，在 api 服务中通过指定的第三个参数: { loading: false } 来控制\n        config.loading ??= true;\n        config.loading && showFullScreenLoading();\n        if (config.headers && typeof config.headers.set === \"function\") {\n          config.headers.set(\"x-access-token\", userStore.token);\n        }\n        return config;\n      },\n      (error: AxiosError) => {\n        return Promise.reject(error);\n      }\n    );\n\n    /**\n     * @description 响应拦截器\n     *  服务器换返回信息 -> [拦截统一处理] -> 客户端JS获取到信息\n     */\n    this.service.interceptors.response.use(\n      (response: AxiosResponse & { config: CustomAxiosRequestConfig }) => {\n        const { data, config } = response;\n\n        const userStore = useUserStore();\n        axiosCanceler.removePending(config);\n        config.loading && tryHideFullScreenLoading();\n        // 登录失效\n        if (data.code == ResultEnum.OVERDUE) {\n          userStore.setToken(\"\");\n          router.replace(LOGIN_URL);\n          ElMessage.error(data.msg);\n          return Promise.reject(data);\n        }\n        // 全局错误信息拦截（防止下载文件的时候返回数据流，没有 code 直接报错）\n        if (data.code && data.code !== ResultEnum.SUCCESS) {\n          ElMessage.error(data.msg);\n          return Promise.reject(data);\n        }\n        // 成功请求（在页面上除非特殊情况，否则不用处理失败逻辑）\n        return data;\n      },\n      async (error: AxiosError) => {\n        const { response } = error;\n        tryHideFullScreenLoading();\n        // 请求超时 && 网络错误单独判断，没有 response\n        if (error.message.indexOf(\"timeout\") !== -1) ElMessage.error(\"请求超时！请您稍后重试\");\n        if (error.message.indexOf(\"Network Error\") !== -1) ElMessage.error(\"网络错误！请您稍后重试\");\n        // 根据服务器响应的错误状态码，做不同的处理\n        if (response) checkStatus(response.status);\n        // 服务器结果都没有返回(可能服务器错误可能客户端断网)，断网处理:可以跳转到断网页面\n        if (!window.navigator.onLine) router.replace(\"/500\");\n        return Promise.reject(error);\n      }\n    );\n  }\n\n  /**\n   * @description 常用请求方法封装\n   */\n  get<T>(url: string, params?: object, _object = {}): Promise<ResultData<T>> {\n    return this.service.get(url, { params, ..._object });\n  }\n  post<T>(url: string, params?: object | string, _object = {}): Promise<ResultData<T>> {\n    return this.service.post(url, params, _object);\n  }\n  put<T>(url: string, params?: object, _object = {}): Promise<ResultData<T>> {\n    return this.service.put(url, params, _object);\n  }\n  delete<T>(url: string, params?: any, _object = {}): Promise<ResultData<T>> {\n    return this.service.delete(url, { params, ..._object });\n  }\n  download(url: string, params?: object, _object = {}): Promise<BlobPart> {\n    return this.service.post(url, params, { ..._object, responseType: \"blob\" });\n  }\n}\n\nexport default new RequestHttp(config);\n"
  },
  {
    "path": "src/api/interface/index.ts",
    "content": "// 请求响应参数（不包含data）\nexport interface Result {\n  code: string;\n  msg: string;\n}\n\n// 请求响应参数（包含data）\nexport interface ResultData<T = any> extends Result {\n  data: T;\n}\n\n// 分页响应参数\nexport interface ResPage<T> {\n  list: T[];\n  pageNum: number;\n  pageSize: number;\n  total: number;\n}\n\n// 分页请求参数\nexport interface ReqPage {\n  pageNum: number;\n  pageSize: number;\n}\n\n// 文件上传模块\nexport namespace Upload {\n  export interface ResFileUrl {\n    fileUrl: string;\n  }\n}\n\n// 登录模块\nexport namespace Login {\n  export interface ReqLoginForm {\n    username: string;\n    password: string;\n  }\n  export interface ResLogin {\n    access_token: string;\n  }\n  export interface ResAuthButtons {\n    [key: string]: string[];\n  }\n}\n\n// 用户管理模块\nexport namespace User {\n  export interface ReqUserParams extends ReqPage {\n    username: string;\n    gender: number;\n    idCard: string;\n    email: string;\n    address: string;\n    createTime: string[];\n    status: number;\n  }\n  export interface ResUserList {\n    id: string;\n    username: string;\n    gender: number;\n    user: { detail: { age: number } };\n    idCard: string;\n    email: string;\n    address: string;\n    createTime: string;\n    status: number;\n    avatar: string;\n    photo: any[];\n    children?: ResUserList[];\n  }\n  export interface ResStatus {\n    userLabel: string;\n    userValue: number;\n  }\n  export interface ResGender {\n    genderLabel: string;\n    genderValue: number;\n  }\n  export interface ResDepartment {\n    id: string;\n    name: string;\n    children?: ResDepartment[];\n  }\n  export interface ResRole {\n    id: string;\n    name: string;\n    children?: ResDepartment[];\n  }\n}\n"
  },
  {
    "path": "src/api/modules/login.ts",
    "content": "import { Login } from \"@/api/interface/index\";\nimport { PORT1 } from \"@/api/config/servicePort\";\nimport authMenuList from \"@/assets/json/authMenuList.json\";\nimport authButtonList from \"@/assets/json/authButtonList.json\";\nimport http from \"@/api\";\n\n/**\n * @name 登录模块\n */\n// 用户登录\nexport const loginApi = (params: Login.ReqLoginForm) => {\n  return http.post<Login.ResLogin>(PORT1 + `/login`, params, { loading: false }); // 正常 post json 请求  ==>  application/json\n  // return http.post<Login.ResLogin>(PORT1 + `/login`, params, { loading: false }); // 控制当前请求不显示 loading\n  // return http.post<Login.ResLogin>(PORT1 + `/login`, {}, { params }); // post 请求携带 query 参数  ==>  ?username=admin&password=123456\n  // return http.post<Login.ResLogin>(PORT1 + `/login`, qs.stringify(params)); // post 请求携带表单参数  ==>  application/x-www-form-urlencoded\n  // return http.get<Login.ResLogin>(PORT1 + `/login?${qs.stringify(params, { arrayFormat: \"repeat\" })}`); // get 请求可以携带数组等复杂参数\n};\n\n// 获取菜单列表\nexport const getAuthMenuListApi = () => {\n  return http.get<Menu.MenuOptions[]>(PORT1 + `/menu/list`, {}, { loading: false });\n  // 如果想让菜单变为本地数据，注释上一行代码，并引入本地 authMenuList.json 数据\n  return authMenuList;\n};\n\n// 获取按钮权限\nexport const getAuthButtonListApi = () => {\n  return http.get<Login.ResAuthButtons>(PORT1 + `/auth/buttons`, {}, { loading: false });\n  // 如果想让按钮权限变为本地数据，注释上一行代码，并引入本地 authButtonList.json 数据\n  return authButtonList;\n};\n\n// 用户退出登录\nexport const logoutApi = () => {\n  return http.post(PORT1 + `/logout`);\n};\n"
  },
  {
    "path": "src/api/modules/upload.ts",
    "content": "import { Upload } from \"@/api/interface/index\";\nimport { PORT1 } from \"@/api/config/servicePort\";\nimport http from \"@/api\";\n\n/**\n * @name 文件上传模块\n */\n// 图片上传\nexport const uploadImg = (params: FormData) => {\n  return http.post<Upload.ResFileUrl>(PORT1 + `/file/upload/img`, params, { cancel: false });\n};\n\n// 视频上传\nexport const uploadVideo = (params: FormData) => {\n  return http.post<Upload.ResFileUrl>(PORT1 + `/file/upload/video`, params, { cancel: false });\n};\n"
  },
  {
    "path": "src/api/modules/user.ts",
    "content": "import { ResPage, User } from \"@/api/interface/index\";\nimport { PORT1 } from \"@/api/config/servicePort\";\nimport http from \"@/api\";\n\n/**\n * @name 用户管理模块\n */\n// 获取用户列表\nexport const getUserList = (params: User.ReqUserParams) => {\n  return http.post<ResPage<User.ResUserList>>(PORT1 + `/user/list`, params);\n};\n\n// 获取树形用户列表\nexport const getUserTreeList = (params: User.ReqUserParams) => {\n  return http.post<ResPage<User.ResUserList>>(PORT1 + `/user/tree/list`, params);\n};\n\n// 新增用户\nexport const addUser = (params: { id: string }) => {\n  return http.post(PORT1 + `/user/add`, params);\n};\n\n// 批量添加用户\nexport const BatchAddUser = (params: FormData) => {\n  return http.post(PORT1 + `/user/import`, params);\n};\n\n// 编辑用户\nexport const editUser = (params: { id: string }) => {\n  return http.post(PORT1 + `/user/edit`, params);\n};\n\n// 删除用户\nexport const deleteUser = (params: { id: string[] }) => {\n  return http.post(PORT1 + `/user/delete`, params);\n};\n\n// 切换用户状态\nexport const changeUserStatus = (params: { id: string; status: number }) => {\n  return http.post(PORT1 + `/user/change`, params);\n};\n\n// 重置用户密码\nexport const resetUserPassWord = (params: { id: string }) => {\n  return http.post(PORT1 + `/user/rest_password`, params);\n};\n\n// 导出用户数据\nexport const exportUserInfo = (params: User.ReqUserParams) => {\n  return http.download(PORT1 + `/user/export`, params);\n};\n\n// 获取用户状态字典\nexport const getUserStatus = () => {\n  return http.get<User.ResStatus[]>(PORT1 + `/user/status`);\n};\n\n// 获取用户性别字典\nexport const getUserGender = () => {\n  return http.get<User.ResGender[]>(PORT1 + `/user/gender`);\n};\n\n// 获取用户部门列表\nexport const getUserDepartment = () => {\n  return http.get<User.ResDepartment[]>(PORT1 + `/user/department`, {}, { cancel: false });\n};\n\n// 获取用户角色字典\nexport const getUserRole = () => {\n  return http.get<User.ResRole[]>(PORT1 + `/user/role`);\n};\n"
  },
  {
    "path": "src/assets/fonts/font.scss",
    "content": "@font-face {\n  font-family: YouSheBiaoTiHei;\n  src: url(\"./YouSheBiaoTiHei.ttf\");\n}\n\n@font-face {\n  font-family: MetroDF;\n  src: url(\"./MetroDF.ttf\");\n}\n\n@font-face {\n  font-family: DIN;\n  src: url(\"./DIN.otf\");\n}\n"
  },
  {
    "path": "src/assets/iconfont/iconfont.scss",
    "content": "@font-face {\n  font-family: iconfont; /* Project id 2667653 */\n  src: url(\"iconfont.ttf?t=1719667796161\") format(\"truetype\");\n}\n.iconfont {\n  font-family: iconfont !important;\n  font-size: 20px;\n  font-style: normal;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n  cursor: pointer;\n}\n.icon-yiwen::before {\n  font-size: 15px;\n  content: \"\\e693\";\n}\n.icon-xiala::before {\n  content: \"\\e62b\";\n}\n.icon-tuichu::before {\n  content: \"\\e645\";\n}\n.icon-xiaoxi::before {\n  font-size: 21.2px;\n  content: \"\\e61f\";\n}\n.icon-zhuti::before {\n  font-size: 22.4px;\n  content: \"\\e638\";\n}\n.icon-sousuo::before {\n  content: \"\\e611\";\n}\n.icon-contentright::before {\n  content: \"\\e8c9\";\n}\n.icon-contentleft::before {\n  content: \"\\e8ca\";\n}\n.icon-fangda::before {\n  content: \"\\e826\";\n}\n.icon-suoxiao::before {\n  content: \"\\e641\";\n}\n.icon-zhongyingwen::before {\n  content: \"\\e8cb\";\n}\n.icon-huiche::before {\n  content: \"\\e637\";\n}\n"
  },
  {
    "path": "src/assets/json/authButtonList.json",
    "content": "{\n  \"code\": 200,\n  \"data\": {\n    \"useProTable\": [\"add\", \"batchAdd\", \"export\", \"batchDelete\", \"status\"],\n    \"authButton\": [\"add\", \"edit\", \"delete\", \"import\", \"export\"]\n  },\n  \"msg\": \"成功\"\n}\n"
  },
  {
    "path": "src/assets/json/authMenuList.json",
    "content": "{\n  \"code\": 200,\n  \"data\": [\n    {\n      \"path\": \"/home/index\",\n      \"name\": \"home\",\n      \"component\": \"/home/index\",\n      \"meta\": {\n        \"icon\": \"HomeFilled\",\n        \"title\": \"首页\",\n        \"isLink\": \"\",\n        \"isHide\": false,\n        \"isFull\": false,\n        \"isAffix\": true,\n        \"isKeepAlive\": true\n      }\n    },\n    {\n      \"path\": \"/dataScreen\",\n      \"name\": \"dataScreen\",\n      \"component\": \"/dataScreen/index\",\n      \"meta\": {\n        \"icon\": \"Histogram\",\n        \"title\": \"数据大屏\",\n        \"isLink\": \"\",\n        \"isHide\": false,\n        \"isFull\": true,\n        \"isAffix\": false,\n        \"isKeepAlive\": true\n      }\n    },\n    {\n      \"path\": \"/proTable\",\n      \"name\": \"proTable\",\n      \"redirect\": \"/proTable/useProTable\",\n      \"meta\": {\n        \"icon\": \"MessageBox\",\n        \"title\": \"超级表格\",\n        \"isLink\": \"\",\n        \"isHide\": false,\n        \"isFull\": false,\n        \"isAffix\": false,\n        \"isKeepAlive\": true\n      },\n      \"children\": [\n        {\n          \"path\": \"/proTable/useProTable\",\n          \"name\": \"useProTable\",\n          \"component\": \"/proTable/useProTable/index\",\n          \"meta\": {\n            \"icon\": \"Menu\",\n            \"title\": \"使用 ProTable\",\n            \"isLink\": \"\",\n            \"isHide\": false,\n            \"isFull\": false,\n            \"isAffix\": false,\n            \"isKeepAlive\": true\n          },\n          \"children\": [\n            {\n              \"path\": \"/proTable/useProTable/detail/:id\",\n              \"name\": \"useProTableDetail\",\n              \"component\": \"/proTable/useProTable/detail\",\n              \"meta\": {\n                \"icon\": \"Menu\",\n                \"title\": \"ProTable 详情\",\n                \"activeMenu\": \"/proTable/useProTable\",\n                \"isLink\": \"\",\n                \"isHide\": true,\n                \"isFull\": false,\n                \"isAffix\": false,\n                \"isKeepAlive\": true\n              }\n            }\n          ]\n        },\n        {\n          \"path\": \"/proTable/useTreeFilter\",\n          \"name\": \"useTreeFilter\",\n          \"component\": \"/proTable/useTreeFilter/index\",\n          \"meta\": {\n            \"icon\": \"Menu\",\n            \"title\": \"使用 TreeFilter\",\n            \"isLink\": \"\",\n            \"isHide\": false,\n            \"isFull\": false,\n            \"isAffix\": false,\n            \"isKeepAlive\": true\n          }\n        },\n        {\n          \"path\": \"/proTable/useTreeFilter/detail/:id\",\n          \"name\": \"useTreeFilterDetail\",\n          \"component\": \"/proTable/useTreeFilter/detail\",\n          \"meta\": {\n            \"icon\": \"Menu\",\n            \"title\": \"TreeFilter 详情\",\n            \"activeMenu\": \"/proTable/useTreeFilter\",\n            \"isLink\": \"\",\n            \"isHide\": true,\n            \"isFull\": false,\n            \"isAffix\": false,\n            \"isKeepAlive\": true\n          }\n        },\n        {\n          \"path\": \"/proTable/useSelectFilter\",\n          \"name\": \"useSelectFilter\",\n          \"component\": \"/proTable/useSelectFilter/index\",\n          \"meta\": {\n            \"icon\": \"Menu\",\n            \"title\": \"使用 SelectFilter\",\n            \"isLink\": \"\",\n            \"isHide\": false,\n            \"isFull\": false,\n            \"isAffix\": false,\n            \"isKeepAlive\": true\n          }\n        },\n        {\n          \"path\": \"/proTable/treeProTable\",\n          \"name\": \"treeProTable\",\n          \"component\": \"/proTable/treeProTable/index\",\n          \"meta\": {\n            \"icon\": \"Menu\",\n            \"title\": \"树形 ProTable\",\n            \"isLink\": \"\",\n            \"isHide\": false,\n            \"isFull\": false,\n            \"isAffix\": false,\n            \"isKeepAlive\": true\n          }\n        },\n        {\n          \"path\": \"/proTable/complexProTable\",\n          \"name\": \"complexProTable\",\n          \"component\": \"/proTable/complexProTable/index\",\n          \"meta\": {\n            \"icon\": \"Menu\",\n            \"title\": \"复杂 ProTable\",\n            \"isLink\": \"\",\n            \"isHide\": false,\n            \"isFull\": false,\n            \"isAffix\": false,\n            \"isKeepAlive\": true\n          }\n        },\n        {\n          \"path\": \"/proTable/document\",\n          \"name\": \"proTableDocument\",\n          \"component\": \"/proTable/document/index\",\n          \"meta\": {\n            \"icon\": \"Menu\",\n            \"title\": \"ProTable 文档\",\n            \"isLink\": \"https://juejin.cn/post/7166068828202336263/#heading-14\",\n            \"isHide\": false,\n            \"isFull\": false,\n            \"isAffix\": false,\n            \"isKeepAlive\": true\n          }\n        }\n      ]\n    },\n    {\n      \"path\": \"/auth\",\n      \"name\": \"auth\",\n      \"redirect\": \"/auth/menu\",\n      \"meta\": {\n        \"icon\": \"Lock\",\n        \"title\": \"权限管理\",\n        \"isLink\": \"\",\n        \"isHide\": false,\n        \"isFull\": false,\n        \"isAffix\": false,\n        \"isKeepAlive\": true\n      },\n      \"children\": [\n        {\n          \"path\": \"/auth/menu\",\n          \"name\": \"authMenu\",\n          \"component\": \"/auth/menu/index\",\n          \"meta\": {\n            \"icon\": \"Menu\",\n            \"title\": \"菜单权限\",\n            \"isLink\": \"\",\n            \"isHide\": false,\n            \"isFull\": false,\n            \"isAffix\": false,\n            \"isKeepAlive\": true\n          }\n        },\n        {\n          \"path\": \"/auth/button\",\n          \"name\": \"authButton\",\n          \"component\": \"/auth/button/index\",\n          \"meta\": {\n            \"icon\": \"Menu\",\n            \"title\": \"按钮权限\",\n            \"isLink\": \"\",\n            \"isHide\": false,\n            \"isFull\": false,\n            \"isAffix\": false,\n            \"isKeepAlive\": true\n          }\n        }\n      ]\n    },\n    {\n      \"path\": \"/assembly\",\n      \"name\": \"assembly\",\n      \"redirect\": \"/assembly/guide\",\n      \"meta\": {\n        \"icon\": \"Briefcase\",\n        \"title\": \"常用组件\",\n        \"isLink\": \"\",\n        \"isHide\": false,\n        \"isFull\": false,\n        \"isAffix\": false,\n        \"isKeepAlive\": true\n      },\n      \"children\": [\n        {\n          \"path\": \"/assembly/guide\",\n          \"name\": \"guide\",\n          \"component\": \"/assembly/guide/index\",\n          \"meta\": {\n            \"icon\": \"Menu\",\n            \"title\": \"引导页\",\n            \"isLink\": \"\",\n            \"isHide\": false,\n            \"isFull\": false,\n            \"isAffix\": false,\n            \"isKeepAlive\": true\n          }\n        },\n        {\n          \"path\": \"/assembly/tabs\",\n          \"name\": \"tabs\",\n          \"component\": \"/assembly/tabs/index\",\n          \"meta\": {\n            \"icon\": \"Menu\",\n            \"title\": \"标签页操作\",\n            \"isLink\": \"\",\n            \"isHide\": false,\n            \"isFull\": false,\n            \"isAffix\": false,\n            \"isKeepAlive\": true\n          },\n          \"children\": [\n            {\n              \"path\": \"/assembly/tabs/detail/:id\",\n              \"name\": \"tabsDetail\",\n              \"component\": \"/assembly/tabs/detail\",\n              \"meta\": {\n                \"icon\": \"Menu\",\n                \"title\": \"Tab 详情\",\n                \"activeMenu\": \"/assembly/tabs\",\n                \"isLink\": \"\",\n                \"isHide\": true,\n                \"isFull\": false,\n                \"isAffix\": false,\n                \"isKeepAlive\": true\n              }\n            }\n          ]\n        },\n        {\n          \"path\": \"/assembly/selectIcon\",\n          \"name\": \"selectIcon\",\n          \"component\": \"/assembly/selectIcon/index\",\n          \"meta\": {\n            \"icon\": \"Menu\",\n            \"title\": \"图标选择器\",\n            \"isLink\": \"\",\n            \"isHide\": false,\n            \"isFull\": false,\n            \"isAffix\": false,\n            \"isKeepAlive\": true\n          }\n        },\n        {\n          \"path\": \"/assembly/selectFilter\",\n          \"name\": \"selectFilter\",\n          \"component\": \"/assembly/selectFilter/index\",\n          \"meta\": {\n            \"icon\": \"Menu\",\n            \"title\": \"分类筛选器\",\n            \"isLink\": \"\",\n            \"isHide\": false,\n            \"isFull\": false,\n            \"isAffix\": false,\n            \"isKeepAlive\": true\n          }\n        },\n        {\n          \"path\": \"/assembly/treeFilter\",\n          \"name\": \"treeFilter\",\n          \"component\": \"/assembly/treeFilter/index\",\n          \"meta\": {\n            \"icon\": \"Menu\",\n            \"title\": \"树形筛选器\",\n            \"isLink\": \"\",\n            \"isHide\": false,\n            \"isFull\": false,\n            \"isAffix\": false,\n            \"isKeepAlive\": true\n          }\n        },\n        {\n          \"path\": \"/assembly/svgIcon\",\n          \"name\": \"svgIcon\",\n          \"component\": \"/assembly/svgIcon/index\",\n          \"meta\": {\n            \"icon\": \"Menu\",\n            \"title\": \"SVG 图标\",\n            \"isLink\": \"\",\n            \"isHide\": false,\n            \"isFull\": false,\n            \"isAffix\": false,\n            \"isKeepAlive\": true\n          }\n        },\n        {\n          \"path\": \"/assembly/uploadFile\",\n          \"name\": \"uploadFile\",\n          \"component\": \"/assembly/uploadFile/index\",\n          \"meta\": {\n            \"icon\": \"Menu\",\n            \"title\": \"文件上传\",\n            \"isLink\": \"\",\n            \"isHide\": false,\n            \"isFull\": false,\n            \"isAffix\": false,\n            \"isKeepAlive\": true\n          }\n        },\n        {\n          \"path\": \"/assembly/batchImport\",\n          \"name\": \"batchImport\",\n          \"component\": \"/assembly/batchImport/index\",\n          \"meta\": {\n            \"icon\": \"Menu\",\n            \"title\": \"批量添加数据\",\n            \"isLink\": \"\",\n            \"isHide\": false,\n            \"isFull\": false,\n            \"isAffix\": false,\n            \"isKeepAlive\": true\n          }\n        },\n        {\n          \"path\": \"/assembly/wangEditor\",\n          \"name\": \"wangEditor\",\n          \"component\": \"/assembly/wangEditor/index\",\n          \"meta\": {\n            \"icon\": \"Menu\",\n            \"title\": \"富文本编辑器\",\n            \"isLink\": \"\",\n            \"isHide\": false,\n            \"isFull\": false,\n            \"isAffix\": false,\n            \"isKeepAlive\": true\n          }\n        },\n        {\n          \"path\": \"/assembly/draggable\",\n          \"name\": \"draggable\",\n          \"component\": \"/assembly/draggable/index\",\n          \"meta\": {\n            \"icon\": \"Menu\",\n            \"title\": \"拖拽组件\",\n            \"isLink\": \"\",\n            \"isHide\": false,\n            \"isFull\": false,\n            \"isAffix\": false,\n            \"isKeepAlive\": true\n          }\n        }\n      ]\n    },\n    {\n      \"path\": \"/dashboard\",\n      \"name\": \"dashboard\",\n      \"redirect\": \"/dashboard/dataVisualize\",\n      \"meta\": {\n        \"icon\": \"Odometer\",\n        \"title\": \"Dashboard\",\n        \"isLink\": \"\",\n        \"isHide\": false,\n        \"isFull\": false,\n        \"isAffix\": false,\n        \"isKeepAlive\": true\n      },\n      \"children\": [\n        {\n          \"path\": \"/dashboard/dataVisualize\",\n          \"name\": \"dataVisualize\",\n          \"component\": \"/dashboard/dataVisualize/index\",\n          \"meta\": {\n            \"icon\": \"Menu\",\n            \"title\": \"数据可视化\",\n            \"isLink\": \"\",\n            \"isHide\": false,\n            \"isFull\": false,\n            \"isAffix\": false,\n            \"isKeepAlive\": true\n          }\n        }\n      ]\n    },\n    {\n      \"path\": \"/form\",\n      \"name\": \"form\",\n      \"redirect\": \"/form/proForm\",\n      \"meta\": {\n        \"icon\": \"Tickets\",\n        \"title\": \"表单 Form\",\n        \"isLink\": \"\",\n        \"isHide\": false,\n        \"isFull\": false,\n        \"isAffix\": false,\n        \"isKeepAlive\": true\n      },\n      \"children\": [\n        {\n          \"path\": \"/form/proForm\",\n          \"name\": \"proForm\",\n          \"component\": \"/form/proForm/index\",\n          \"meta\": {\n            \"icon\": \"Menu\",\n            \"title\": \"超级 Form\",\n            \"isLink\": \"\",\n            \"isHide\": false,\n            \"isFull\": false,\n            \"isAffix\": false,\n            \"isKeepAlive\": true\n          }\n        },\n        {\n          \"path\": \"/form/basicForm\",\n          \"name\": \"basicForm\",\n          \"component\": \"/form/basicForm/index\",\n          \"meta\": {\n            \"icon\": \"Menu\",\n            \"title\": \"基础 Form\",\n            \"isLink\": \"\",\n            \"isHide\": false,\n            \"isFull\": false,\n            \"isAffix\": false,\n            \"isKeepAlive\": true\n          }\n        },\n        {\n          \"path\": \"/form/validateForm\",\n          \"name\": \"validateForm\",\n          \"component\": \"/form/validateForm/index\",\n          \"meta\": {\n            \"icon\": \"Menu\",\n            \"title\": \"校验 Form\",\n            \"isLink\": \"\",\n            \"isHide\": false,\n            \"isFull\": false,\n            \"isAffix\": false,\n            \"isKeepAlive\": true\n          }\n        },\n        {\n          \"path\": \"/form/dynamicForm\",\n          \"name\": \"dynamicForm\",\n          \"component\": \"/form/dynamicForm/index\",\n          \"meta\": {\n            \"icon\": \"Menu\",\n            \"title\": \"动态 Form\",\n            \"isLink\": \"\",\n            \"isHide\": false,\n            \"isFull\": false,\n            \"isAffix\": false,\n            \"isKeepAlive\": true\n          }\n        }\n      ]\n    },\n    {\n      \"path\": \"/echarts\",\n      \"name\": \"echarts\",\n      \"redirect\": \"/echarts/waterChart\",\n      \"meta\": {\n        \"icon\": \"TrendCharts\",\n        \"title\": \"ECharts\",\n        \"isLink\": \"\",\n        \"isHide\": false,\n        \"isFull\": false,\n        \"isAffix\": false,\n        \"isKeepAlive\": true\n      },\n      \"children\": [\n        {\n          \"path\": \"/echarts/waterChart\",\n          \"name\": \"waterChart\",\n          \"component\": \"/echarts/waterChart/index\",\n          \"meta\": {\n            \"icon\": \"Menu\",\n            \"title\": \"水型图\",\n            \"isLink\": \"\",\n            \"isHide\": false,\n            \"isFull\": false,\n            \"isAffix\": false,\n            \"isKeepAlive\": true\n          }\n        },\n        {\n          \"path\": \"/echarts/columnChart\",\n          \"name\": \"columnChart\",\n          \"component\": \"/echarts/columnChart/index\",\n          \"meta\": {\n            \"icon\": \"Menu\",\n            \"title\": \"柱状图\",\n            \"isLink\": \"\",\n            \"isHide\": false,\n            \"isFull\": false,\n            \"isAffix\": false,\n            \"isKeepAlive\": true\n          }\n        },\n        {\n          \"path\": \"/echarts/lineChart\",\n          \"name\": \"lineChart\",\n          \"component\": \"/echarts/lineChart/index\",\n          \"meta\": {\n            \"icon\": \"Menu\",\n            \"title\": \"折线图\",\n            \"isLink\": \"\",\n            \"isHide\": false,\n            \"isFull\": false,\n            \"isAffix\": false,\n            \"isKeepAlive\": true\n          }\n        },\n        {\n          \"path\": \"/echarts/pieChart\",\n          \"name\": \"pieChart\",\n          \"component\": \"/echarts/pieChart/index\",\n          \"meta\": {\n            \"icon\": \"Menu\",\n            \"title\": \"饼图\",\n            \"isLink\": \"\",\n            \"isHide\": false,\n            \"isFull\": false,\n            \"isAffix\": false,\n            \"isKeepAlive\": true\n          }\n        },\n        {\n          \"path\": \"/echarts/radarChart\",\n          \"name\": \"radarChart\",\n          \"component\": \"/echarts/radarChart/index\",\n          \"meta\": {\n            \"icon\": \"Menu\",\n            \"title\": \"雷达图\",\n            \"isLink\": \"\",\n            \"isHide\": false,\n            \"isFull\": false,\n            \"isAffix\": false,\n            \"isKeepAlive\": true\n          }\n        },\n        {\n          \"path\": \"/echarts/nestedChart\",\n          \"name\": \"nestedChart\",\n          \"component\": \"/echarts/nestedChart/index\",\n          \"meta\": {\n            \"icon\": \"Menu\",\n            \"title\": \"嵌套环形图\",\n            \"isLink\": \"\",\n            \"isHide\": false,\n            \"isFull\": false,\n            \"isAffix\": false,\n            \"isKeepAlive\": true\n          }\n        }\n      ]\n    },\n    {\n      \"path\": \"/directives\",\n      \"name\": \"directives\",\n      \"redirect\": \"/directives/copyDirect\",\n      \"meta\": {\n        \"icon\": \"Stamp\",\n        \"title\": \"自定义指令\",\n        \"isLink\": \"\",\n        \"isHide\": false,\n        \"isFull\": false,\n        \"isAffix\": false,\n        \"isKeepAlive\": true\n      },\n      \"children\": [\n        {\n          \"path\": \"/directives/copyDirect\",\n          \"name\": \"copyDirect\",\n          \"component\": \"/directives/copyDirect/index\",\n          \"meta\": {\n            \"icon\": \"Menu\",\n            \"title\": \"复制指令\",\n            \"isLink\": \"\",\n            \"isHide\": false,\n            \"isFull\": false,\n            \"isAffix\": false,\n            \"isKeepAlive\": true\n          }\n        },\n        {\n          \"path\": \"/directives/watermarkDirect\",\n          \"name\": \"watermarkDirect\",\n          \"component\": \"/directives/watermarkDirect/index\",\n          \"meta\": {\n            \"icon\": \"Menu\",\n            \"title\": \"水印指令\",\n            \"isLink\": \"\",\n            \"isHide\": false,\n            \"isFull\": false,\n            \"isAffix\": false,\n            \"isKeepAlive\": true\n          }\n        },\n        {\n          \"path\": \"/directives/dragDirect\",\n          \"name\": \"dragDirect\",\n          \"component\": \"/directives/dragDirect/index\",\n          \"meta\": {\n            \"icon\": \"Menu\",\n            \"title\": \"拖拽指令\",\n            \"isLink\": \"\",\n            \"isHide\": false,\n            \"isFull\": false,\n            \"isAffix\": false,\n            \"isKeepAlive\": true\n          }\n        },\n        {\n          \"path\": \"/directives/debounceDirect\",\n          \"name\": \"debounceDirect\",\n          \"component\": \"/directives/debounceDirect/index\",\n          \"meta\": {\n            \"icon\": \"Menu\",\n            \"title\": \"防抖指令\",\n            \"isLink\": \"\",\n            \"isHide\": false,\n            \"isFull\": false,\n            \"isAffix\": false,\n            \"isKeepAlive\": true\n          }\n        },\n        {\n          \"path\": \"/directives/throttleDirect\",\n          \"name\": \"throttleDirect\",\n          \"component\": \"/directives/throttleDirect/index\",\n          \"meta\": {\n            \"icon\": \"Menu\",\n            \"title\": \"节流指令\",\n            \"isLink\": \"\",\n            \"isHide\": false,\n            \"isFull\": false,\n            \"isAffix\": false,\n            \"isKeepAlive\": true\n          }\n        },\n        {\n          \"path\": \"/directives/longpressDirect\",\n          \"name\": \"longpressDirect\",\n          \"component\": \"/directives/longpressDirect/index\",\n          \"meta\": {\n            \"icon\": \"Menu\",\n            \"title\": \"长按指令\",\n            \"isLink\": \"\",\n            \"isHide\": false,\n            \"isFull\": false,\n            \"isAffix\": false,\n            \"isKeepAlive\": true\n          }\n        }\n      ]\n    },\n    {\n      \"path\": \"/menu\",\n      \"name\": \"menu\",\n      \"redirect\": \"/menu/menu1\",\n      \"meta\": {\n        \"icon\": \"List\",\n        \"title\": \"菜单嵌套\",\n        \"isLink\": \"\",\n        \"isHide\": false,\n        \"isFull\": false,\n        \"isAffix\": false,\n        \"isKeepAlive\": true\n      },\n      \"children\": [\n        {\n          \"path\": \"/menu/menu1\",\n          \"name\": \"menu1\",\n          \"component\": \"/menu/menu1/index\",\n          \"meta\": {\n            \"icon\": \"Menu\",\n            \"title\": \"菜单1\",\n            \"isLink\": \"\",\n            \"isHide\": false,\n            \"isFull\": false,\n            \"isAffix\": false,\n            \"isKeepAlive\": true\n          }\n        },\n        {\n          \"path\": \"/menu/menu2\",\n          \"name\": \"menu2\",\n          \"redirect\": \"/menu/menu2/menu21\",\n          \"meta\": {\n            \"icon\": \"Menu\",\n            \"title\": \"菜单2\",\n            \"isLink\": \"\",\n            \"isHide\": false,\n            \"isFull\": false,\n            \"isAffix\": false,\n            \"isKeepAlive\": true\n          },\n          \"children\": [\n            {\n              \"path\": \"/menu/menu2/menu21\",\n              \"name\": \"menu21\",\n              \"component\": \"/menu/menu2/menu21/index\",\n              \"meta\": {\n                \"icon\": \"Menu\",\n                \"title\": \"菜单2-1\",\n                \"isLink\": \"\",\n                \"isHide\": false,\n                \"isFull\": false,\n                \"isAffix\": false,\n                \"isKeepAlive\": true\n              }\n            },\n            {\n              \"path\": \"/menu/menu2/menu22\",\n              \"name\": \"menu22\",\n              \"redirect\": \"/menu/menu2/menu22/menu221\",\n              \"meta\": {\n                \"icon\": \"Menu\",\n                \"title\": \"菜单2-2\",\n                \"isLink\": \"\",\n                \"isHide\": false,\n                \"isFull\": false,\n                \"isAffix\": false,\n                \"isKeepAlive\": true\n              },\n              \"children\": [\n                {\n                  \"path\": \"/menu/menu2/menu22/menu221\",\n                  \"name\": \"menu221\",\n                  \"component\": \"/menu/menu2/menu22/menu221/index\",\n                  \"meta\": {\n                    \"icon\": \"Menu\",\n                    \"title\": \"菜单2-2-1\",\n                    \"isLink\": \"\",\n                    \"isHide\": false,\n                    \"isFull\": false,\n                    \"isAffix\": false,\n                    \"isKeepAlive\": true\n                  }\n                },\n                {\n                  \"path\": \"/menu/menu2/menu22/menu222\",\n                  \"name\": \"menu222\",\n                  \"component\": \"/menu/menu2/menu22/menu222/index\",\n                  \"meta\": {\n                    \"icon\": \"Menu\",\n                    \"title\": \"菜单2-2-2\",\n                    \"isLink\": \"\",\n                    \"isHide\": false,\n                    \"isFull\": false,\n                    \"isAffix\": false,\n                    \"isKeepAlive\": true\n                  }\n                }\n              ]\n            },\n            {\n              \"path\": \"/menu/menu2/menu23\",\n              \"name\": \"menu23\",\n              \"component\": \"/menu/menu2/menu23/index\",\n              \"meta\": {\n                \"icon\": \"Menu\",\n                \"title\": \"菜单2-3\",\n                \"isLink\": \"\",\n                \"isHide\": false,\n                \"isFull\": false,\n                \"isAffix\": false,\n                \"isKeepAlive\": true\n              }\n            }\n          ]\n        },\n        {\n          \"path\": \"/menu/menu3\",\n          \"name\": \"menu3\",\n          \"component\": \"/menu/menu3/index\",\n          \"meta\": {\n            \"icon\": \"Menu\",\n            \"title\": \"菜单3\",\n            \"isLink\": \"\",\n            \"isHide\": false,\n            \"isFull\": false,\n            \"isAffix\": false,\n            \"isKeepAlive\": true\n          }\n        }\n      ]\n    },\n    {\n      \"path\": \"/system\",\n      \"name\": \"system\",\n      \"redirect\": \"/system/accountManage\",\n      \"meta\": {\n        \"icon\": \"Tools\",\n        \"title\": \"系统管理\",\n        \"isLink\": \"\",\n        \"isHide\": false,\n        \"isFull\": false,\n        \"isAffix\": false,\n        \"isKeepAlive\": true\n      },\n      \"children\": [\n        {\n          \"path\": \"/system/accountManage\",\n          \"name\": \"accountManage\",\n          \"component\": \"/system/accountManage/index\",\n          \"meta\": {\n            \"icon\": \"Menu\",\n            \"title\": \"账号管理\",\n            \"isLink\": \"\",\n            \"isHide\": false,\n            \"isFull\": false,\n            \"isAffix\": false,\n            \"isKeepAlive\": true\n          }\n        },\n        {\n          \"path\": \"/system/roleManage\",\n          \"name\": \"roleManage\",\n          \"component\": \"/system/roleManage/index\",\n          \"meta\": {\n            \"icon\": \"Menu\",\n            \"title\": \"角色管理\",\n            \"isLink\": \"\",\n            \"isHide\": false,\n            \"isFull\": false,\n            \"isAffix\": false,\n            \"isKeepAlive\": true\n          }\n        },\n        {\n          \"path\": \"/system/menuMange\",\n          \"name\": \"menuMange\",\n          \"component\": \"/system/menuMange/index\",\n          \"meta\": {\n            \"icon\": \"Menu\",\n            \"title\": \"菜单管理\",\n            \"isLink\": \"\",\n            \"isHide\": false,\n            \"isFull\": false,\n            \"isAffix\": false,\n            \"isKeepAlive\": true\n          }\n        },\n        {\n          \"path\": \"/system/departmentManage\",\n          \"name\": \"departmentManage\",\n          \"component\": \"/system/departmentManage/index\",\n          \"meta\": {\n            \"icon\": \"Menu\",\n            \"title\": \"部门管理\",\n            \"isLink\": \"\",\n            \"isHide\": false,\n            \"isFull\": false,\n            \"isAffix\": false,\n            \"isKeepAlive\": true\n          }\n        },\n        {\n          \"path\": \"/system/dictManage\",\n          \"name\": \"dictManage\",\n          \"component\": \"/system/dictManage/index\",\n          \"meta\": {\n            \"icon\": \"Menu\",\n            \"title\": \"字典管理\",\n            \"isLink\": \"\",\n            \"isHide\": false,\n            \"isFull\": false,\n            \"isAffix\": false,\n            \"isKeepAlive\": true\n          }\n        },\n        {\n          \"path\": \"/system/timingTask\",\n          \"name\": \"timingTask\",\n          \"component\": \"/system/timingTask/index\",\n          \"meta\": {\n            \"icon\": \"Menu\",\n            \"title\": \"定时任务\",\n            \"isLink\": \"\",\n            \"isHide\": false,\n            \"isFull\": false,\n            \"isAffix\": false,\n            \"isKeepAlive\": true\n          }\n        },\n        {\n          \"path\": \"/system/systemLog\",\n          \"name\": \"systemLog\",\n          \"component\": \"/system/systemLog/index\",\n          \"meta\": {\n            \"icon\": \"Menu\",\n            \"title\": \"系统日志\",\n            \"isLink\": \"\",\n            \"isHide\": false,\n            \"isFull\": false,\n            \"isAffix\": false,\n            \"isKeepAlive\": true\n          }\n        }\n      ]\n    },\n    {\n      \"path\": \"/link\",\n      \"name\": \"link\",\n      \"redirect\": \"/link/bing\",\n      \"meta\": {\n        \"icon\": \"Paperclip\",\n        \"title\": \"外部链接\",\n        \"isLink\": \"\",\n        \"isHide\": false,\n        \"isFull\": false,\n        \"isAffix\": false,\n        \"isKeepAlive\": true\n      },\n      \"children\": [\n        {\n          \"path\": \"/link/bing\",\n          \"name\": \"bing\",\n          \"component\": \"/link/bing/index\",\n          \"meta\": {\n            \"icon\": \"Menu\",\n            \"title\": \"Bing 内嵌\",\n            \"isLink\": \"\",\n            \"isHide\": false,\n            \"isFull\": false,\n            \"isAffix\": false,\n            \"isKeepAlive\": true\n          }\n        },\n        {\n          \"path\": \"/link/gitee\",\n          \"name\": \"gitee\",\n          \"component\": \"/link/gitee/index\",\n          \"meta\": {\n            \"icon\": \"Menu\",\n            \"title\": \"Gitee 仓库\",\n            \"isLink\": \"https://gitee.com/HalseySpicy/Geeker-Admin\",\n            \"isHide\": false,\n            \"isFull\": false,\n            \"isAffix\": false,\n            \"isKeepAlive\": true\n          }\n        },\n        {\n          \"path\": \"/link/github\",\n          \"name\": \"github\",\n          \"component\": \"/link/github/index\",\n          \"meta\": {\n            \"icon\": \"Menu\",\n            \"title\": \"GitHub 仓库\",\n            \"isLink\": \"https://github.com/HalseySpicy/Geeker-Admin\",\n            \"isHide\": false,\n            \"isFull\": false,\n            \"isAffix\": false,\n            \"isKeepAlive\": true\n          }\n        },\n        {\n          \"path\": \"/link/docs\",\n          \"name\": \"docs\",\n          \"component\": \"/link/docs/index\",\n          \"meta\": {\n            \"icon\": \"Menu\",\n            \"title\": \"项目文档\",\n            \"isLink\": \"https://docs.spicyboy.cn\",\n            \"isHide\": false,\n            \"isFull\": false,\n            \"isAffix\": false,\n            \"isKeepAlive\": true\n          }\n        },\n        {\n          \"path\": \"/link/juejin\",\n          \"name\": \"juejin\",\n          \"component\": \"/link/juejin/index\",\n          \"meta\": {\n            \"icon\": \"Menu\",\n            \"title\": \"掘金主页\",\n            \"isLink\": \"https://juejin.cn/user/3263814531551816/posts\",\n            \"isHide\": false,\n            \"isFull\": false,\n            \"isAffix\": false,\n            \"isKeepAlive\": true\n          }\n        }\n      ]\n    },\n    {\n      \"path\": \"/about/index\",\n      \"name\": \"about\",\n      \"component\": \"/about/index\",\n      \"meta\": {\n        \"icon\": \"InfoFilled\",\n        \"title\": \"关于项目\",\n        \"isLink\": \"\",\n        \"isHide\": false,\n        \"isFull\": false,\n        \"isAffix\": false,\n        \"isKeepAlive\": true\n      }\n    }\n  ],\n  \"msg\": \"成功\"\n}\n"
  },
  {
    "path": "src/components/ECharts/config/index.ts",
    "content": "import * as echarts from \"echarts/core\";\nimport { BarChart, LineChart, LinesChart, PieChart, ScatterChart, RadarChart, GaugeChart } from \"echarts/charts\";\nimport {\n  TitleComponent,\n  TooltipComponent,\n  GridComponent,\n  DatasetComponent,\n  TransformComponent,\n  LegendComponent,\n  PolarComponent,\n  GeoComponent,\n  ToolboxComponent,\n  DataZoomComponent\n} from \"echarts/components\";\nimport { LabelLayout, UniversalTransition } from \"echarts/features\";\nimport { CanvasRenderer } from \"echarts/renderers\";\nimport type {\n  BarSeriesOption,\n  LineSeriesOption,\n  LinesSeriesOption,\n  PieSeriesOption,\n  ScatterSeriesOption,\n  RadarSeriesOption,\n  GaugeSeriesOption\n} from \"echarts/charts\";\nimport type {\n  TitleComponentOption,\n  TooltipComponentOption,\n  GridComponentOption,\n  DatasetComponentOption\n} from \"echarts/components\";\nimport type { ComposeOption } from \"echarts/core\";\nimport \"echarts-liquidfill\";\n\nexport type ECOption = ComposeOption<\n  | BarSeriesOption\n  | LineSeriesOption\n  | LinesSeriesOption\n  | PieSeriesOption\n  | RadarSeriesOption\n  | GaugeSeriesOption\n  | TitleComponentOption\n  | TooltipComponentOption\n  | GridComponentOption\n  | DatasetComponentOption\n  | ScatterSeriesOption\n>;\n\necharts.use([\n  TitleComponent,\n  TooltipComponent,\n  GridComponent,\n  DatasetComponent,\n  TransformComponent,\n  LegendComponent,\n  PolarComponent,\n  GeoComponent,\n  ToolboxComponent,\n  DataZoomComponent,\n  BarChart,\n  LineChart,\n  LinesChart,\n  PieChart,\n  ScatterChart,\n  RadarChart,\n  GaugeChart,\n  LabelLayout,\n  UniversalTransition,\n  CanvasRenderer\n]);\n\nexport default echarts;\n"
  },
  {
    "path": "src/components/ECharts/index.vue",
    "content": "<template>\n  <div id=\"echarts\" ref=\"chartRef\" :style=\"echartsStyle\" />\n</template>\n\n<script setup lang=\"ts\" name=\"ECharts\">\nimport { ref, onMounted, onBeforeUnmount, watch, computed, markRaw, nextTick, onActivated } from \"vue\";\nimport { EChartsType, ECElementEvent } from \"echarts/core\";\nimport echarts, { ECOption } from \"./config\";\nimport { useDebounceFn } from \"@vueuse/core\";\nimport { useGlobalStore } from \"@/stores/modules/global\";\nimport { storeToRefs } from \"pinia\";\n\ninterface Props {\n  option: ECOption;\n  renderer?: \"canvas\" | \"svg\";\n  resize?: boolean;\n  theme?: Object | string;\n  width?: number | string;\n  height?: number | string;\n  onClick?: (event: ECElementEvent) => any;\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n  renderer: \"canvas\",\n  resize: true\n});\n\nconst echartsStyle = computed(() => {\n  return props.width || props.height\n    ? { height: props.height + \"px\", width: props.width + \"px\" }\n    : { height: \"100%\", width: \"100%\" };\n});\n\nconst chartRef = ref<HTMLDivElement | HTMLCanvasElement>();\nconst chartInstance = ref<EChartsType>();\n\nconst draw = () => {\n  if (chartInstance.value) {\n    chartInstance.value.setOption(props.option, { notMerge: true });\n  }\n};\n\nwatch(props, () => {\n  draw();\n});\n\nconst handleClick = (event: ECElementEvent) => props.onClick && props.onClick(event);\n\nconst init = () => {\n  if (!chartRef.value) return;\n  chartInstance.value = echarts.getInstanceByDom(chartRef.value);\n\n  if (!chartInstance.value) {\n    chartInstance.value = markRaw(\n      echarts.init(chartRef.value, props.theme, {\n        renderer: props.renderer\n      })\n    );\n    chartInstance.value.on(\"click\", handleClick);\n    draw();\n  }\n};\n\nconst resize = () => {\n  if (chartInstance.value && props.resize) {\n    chartInstance.value.resize({ animation: { duration: 300 } });\n  }\n};\n\nconst debouncedResize = useDebounceFn(resize, 300, { maxWait: 800 });\n\nconst globalStore = useGlobalStore();\nconst { maximize, isCollapse, tabs, footer } = storeToRefs(globalStore);\n\nwatch(\n  () => [maximize, isCollapse, tabs, footer],\n  () => {\n    debouncedResize();\n  },\n  { deep: true }\n);\n\nonMounted(() => {\n  nextTick(() => init());\n  window.addEventListener(\"resize\", debouncedResize);\n});\n\nonActivated(() => {\n  if (chartInstance.value) {\n    chartInstance.value.resize();\n  }\n});\n\nonBeforeUnmount(() => {\n  chartInstance.value?.dispose();\n  window.removeEventListener(\"resize\", debouncedResize);\n});\n\ndefineExpose({\n  getInstance: () => chartInstance.value,\n  resize,\n  draw\n});\n</script>\n"
  },
  {
    "path": "src/components/ErrorMessage/403.vue",
    "content": "<template>\n  <div class=\"not-container\">\n    <img src=\"@/assets/images/403.png\" class=\"not-img\" alt=\"403\" />\n    <div class=\"not-detail\">\n      <h2>403</h2>\n      <h4>抱歉，您无权访问该页面~🙅‍♂️🙅‍♀️</h4>\n      <el-button type=\"primary\" @click=\"router.back\"> 返回上一页 </el-button>\n    </div>\n  </div>\n</template>\n\n<script setup lang=\"ts\" name=\"403\">\nimport { useRouter } from \"vue-router\";\nconst router = useRouter();\n</script>\n\n<style scoped lang=\"scss\">\n@import \"./index.scss\";\n</style>\n"
  },
  {
    "path": "src/components/ErrorMessage/404.vue",
    "content": "<template>\n  <div class=\"not-container\">\n    <img src=\"@/assets/images/404.png\" class=\"not-img\" alt=\"404\" />\n    <div class=\"not-detail\">\n      <h2>404</h2>\n      <h4>抱歉，您访问的页面不存在~🤷‍♂️🤷‍♀️</h4>\n      <el-button type=\"primary\" @click=\"router.back\"> 返回上一页 </el-button>\n    </div>\n  </div>\n</template>\n\n<script setup lang=\"ts\" name=\"404\">\nimport { useRouter } from \"vue-router\";\nconst router = useRouter();\n</script>\n\n<style scoped lang=\"scss\">\n@import \"./index.scss\";\n</style>\n"
  },
  {
    "path": "src/components/ErrorMessage/500.vue",
    "content": "<template>\n  <div class=\"not-container\">\n    <img src=\"@/assets/images/500.png\" class=\"not-img\" alt=\"500\" />\n    <div class=\"not-detail\">\n      <h2>500</h2>\n      <h4>抱歉，您的网络不见了~🤦‍♂️🤦‍♀️</h4>\n      <el-button type=\"primary\" @click=\"router.back\"> 返回上一页 </el-button>\n    </div>\n  </div>\n</template>\n\n<script setup lang=\"ts\" name=\"500\">\nimport { useRouter } from \"vue-router\";\nconst router = useRouter();\n</script>\n\n<style scoped lang=\"scss\">\n@import \"./index.scss\";\n</style>\n"
  },
  {
    "path": "src/components/ErrorMessage/index.scss",
    "content": ".not-container {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  width: 100%;\n  height: 100%;\n  .not-img {\n    margin-right: 120px;\n  }\n  .not-detail {\n    display: flex;\n    flex-direction: column;\n    h2,\n    h4 {\n      padding: 0;\n      margin: 0;\n    }\n    h2 {\n      font-size: 60px;\n      color: var(--el-text-color-primary);\n    }\n    h4 {\n      margin: 30px 0 20px;\n      font-size: 19px;\n      font-weight: normal;\n      color: var(--el-text-color-regular);\n    }\n    .el-button {\n      width: 100px;\n    }\n  }\n}\n"
  },
  {
    "path": "src/components/Grid/components/GridItem.vue",
    "content": "<template>\n  <div v-show=\"isShow\" :style=\"style\">\n    <slot></slot>\n  </div>\n</template>\n<script setup lang=\"ts\" name=\"GridItem\">\nimport { computed, inject, Ref, ref, useAttrs, watch } from \"vue\";\nimport { BreakPoint, Responsive } from \"../interface/index\";\n\ntype Props = {\n  offset?: number;\n  span?: number;\n  suffix?: boolean;\n  xs?: Responsive;\n  sm?: Responsive;\n  md?: Responsive;\n  lg?: Responsive;\n  xl?: Responsive;\n};\n\nconst props = withDefaults(defineProps<Props>(), {\n  offset: 0,\n  span: 1,\n  suffix: false,\n  xs: undefined,\n  sm: undefined,\n  md: undefined,\n  lg: undefined,\n  xl: undefined\n});\n\nconst attrs = useAttrs() as { index: string };\nconst isShow = ref(true);\n\n// 注入断点\nconst breakPoint = inject<Ref<BreakPoint>>(\"breakPoint\", ref(\"xl\"));\nconst shouldHiddenIndex = inject<Ref<number>>(\"shouldHiddenIndex\", ref(-1));\nwatch(\n  () => [shouldHiddenIndex.value, breakPoint.value],\n  n => {\n    if (!!attrs.index) {\n      isShow.value = !(n[0] !== -1 && parseInt(attrs.index) >= Number(n[0]));\n    }\n  },\n  { immediate: true }\n);\n\nconst gap = inject(\"gap\", 0);\nconst cols = inject(\"cols\", ref(4));\nconst style = computed(() => {\n  let span = props[breakPoint.value]?.span ?? props.span;\n  let offset = props[breakPoint.value]?.offset ?? props.offset;\n  if (props.suffix) {\n    return {\n      gridColumnStart: cols.value - span - offset + 1,\n      gridColumnEnd: `span ${span + offset}`,\n      marginLeft: offset !== 0 ? `calc(((100% + ${gap}px) / ${span + offset}) * ${offset})` : \"unset\"\n    };\n  } else {\n    return {\n      gridColumn: `span ${span + offset > cols.value ? cols.value : span + offset}/span ${\n        span + offset > cols.value ? cols.value : span + offset\n      }`,\n      marginLeft: offset !== 0 ? `calc(((100% + ${gap}px) / ${span + offset}) * ${offset})` : \"unset\"\n    };\n  }\n});\n</script>\n"
  },
  {
    "path": "src/components/Grid/index.vue",
    "content": "<template>\n  <div :style=\"style\">\n    <slot></slot>\n  </div>\n</template>\n\n<script setup lang=\"ts\" name=\"Grid\">\nimport {\n  ref,\n  watch,\n  useSlots,\n  computed,\n  provide,\n  onBeforeMount,\n  onMounted,\n  onUnmounted,\n  onDeactivated,\n  onActivated,\n  VNodeArrayChildren,\n  VNode\n} from \"vue\";\nimport type { BreakPoint } from \"./interface/index\";\n\ntype Props = {\n  cols?: number | Record<BreakPoint, number>;\n  collapsed?: boolean;\n  collapsedRows?: number;\n  gap?: [number, number] | number;\n};\n\nconst props = withDefaults(defineProps<Props>(), {\n  cols: () => ({ xs: 1, sm: 2, md: 2, lg: 3, xl: 4 }),\n  collapsed: false,\n  collapsedRows: 1,\n  gap: 0\n});\n\nonBeforeMount(() => props.collapsed && findIndex());\nonMounted(() => {\n  resize({ target: { innerWidth: window.innerWidth } } as unknown as UIEvent);\n  window.addEventListener(\"resize\", resize);\n});\nonActivated(() => {\n  resize({ target: { innerWidth: window.innerWidth } } as unknown as UIEvent);\n  window.addEventListener(\"resize\", resize);\n});\nonUnmounted(() => {\n  window.removeEventListener(\"resize\", resize);\n});\nonDeactivated(() => {\n  window.removeEventListener(\"resize\", resize);\n});\n\n// 监听屏幕变化\nconst resize = (e: UIEvent) => {\n  let width = (e.target as Window).innerWidth;\n  switch (!!width) {\n    case width < 768:\n      breakPoint.value = \"xs\";\n      break;\n    case width >= 768 && width < 992:\n      breakPoint.value = \"sm\";\n      break;\n    case width >= 992 && width < 1200:\n      breakPoint.value = \"md\";\n      break;\n    case width >= 1200 && width < 1920:\n      breakPoint.value = \"lg\";\n      break;\n    case width >= 1920:\n      breakPoint.value = \"xl\";\n      break;\n  }\n};\n\n// 注入 gap 间距\nprovide(\"gap\", Array.isArray(props.gap) ? props.gap[0] : props.gap);\n\n// 注入响应式断点\nlet breakPoint = ref<BreakPoint>(\"xl\");\nprovide(\"breakPoint\", breakPoint);\n\n// 注入要开始折叠的 index\nconst hiddenIndex = ref(-1);\nprovide(\"shouldHiddenIndex\", hiddenIndex);\n\n// 注入 cols\nconst gridCols = computed(() => {\n  if (typeof props.cols === \"object\") return props.cols[breakPoint.value] ?? props.cols;\n  return props.cols;\n});\nprovide(\"cols\", gridCols);\n\n// 寻找需要开始折叠的字段 index\nconst slots = useSlots().default!();\n\nconst findIndex = () => {\n  let fields: VNodeArrayChildren = [];\n  let suffix: VNode | null = null;\n  slots.forEach((slot: any) => {\n    // suffix\n    if (typeof slot.type === \"object\" && slot.type.name === \"GridItem\" && slot.props?.suffix !== undefined) suffix = slot;\n    // slot children\n    if (typeof slot.type === \"symbol\" && Array.isArray(slot.children)) fields.push(...slot.children);\n  });\n\n  // 计算 suffix 所占用的列\n  let suffixCols = 0;\n  if (suffix) {\n    suffixCols =\n      ((suffix as VNode).props![breakPoint.value]?.span ?? (suffix as VNode).props?.span ?? 1) +\n      ((suffix as VNode).props![breakPoint.value]?.offset ?? (suffix as VNode).props?.offset ?? 0);\n  }\n  try {\n    let find = false;\n    fields.reduce((prev = 0, current, index) => {\n      prev +=\n        ((current as VNode)!.props![breakPoint.value]?.span ?? (current as VNode)!.props?.span ?? 1) +\n        ((current as VNode)!.props![breakPoint.value]?.offset ?? (current as VNode)!.props?.offset ?? 0);\n      if (Number(prev) > props.collapsedRows * gridCols.value - suffixCols) {\n        hiddenIndex.value = index;\n        find = true;\n        throw \"find it\";\n      }\n      return prev;\n    }, 0);\n    if (!find) hiddenIndex.value = -1;\n  } catch (e) {\n    // console.warn(e);\n  }\n};\n\n// 断点变化时执行 findIndex\nwatch(\n  () => breakPoint.value,\n  () => {\n    if (props.collapsed) findIndex();\n  }\n);\n\n// 监听 collapsed\nwatch(\n  () => props.collapsed,\n  value => {\n    if (value) return findIndex();\n    hiddenIndex.value = -1;\n  }\n);\n\n// 设置间距\nconst gridGap = computed(() => {\n  if (typeof props.gap === \"number\") return `${props.gap}px`;\n  if (Array.isArray(props.gap)) return `${props.gap[1]}px ${props.gap[0]}px`;\n  return \"unset\";\n});\n\n// 设置 style\nconst style = computed(() => {\n  return {\n    display: \"grid\",\n    gridGap: gridGap.value,\n    gridTemplateColumns: `repeat(${gridCols.value}, minmax(0, 1fr))`\n  };\n});\n\ndefineExpose({ breakPoint });\n</script>\n"
  },
  {
    "path": "src/components/Grid/interface/index.ts",
    "content": "export type BreakPoint = \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\n\nexport type Responsive = {\n  span?: number;\n  offset?: number;\n};\n"
  },
  {
    "path": "src/components/ImportExcel/index.scss",
    "content": ".upload {\n  width: 80%;\n}\n"
  },
  {
    "path": "src/components/ImportExcel/index.vue",
    "content": "<template>\n  <el-dialog v-model=\"dialogVisible\" :title=\"`批量添加${parameter.title}`\" :destroy-on-close=\"true\" width=\"580px\" draggable>\n    <el-form class=\"drawer-multiColumn-form\" label-width=\"100px\">\n      <el-form-item label=\"模板下载 :\">\n        <el-button type=\"primary\" :icon=\"Download\" @click=\"downloadTemp\"> 点击下载 </el-button>\n      </el-form-item>\n      <el-form-item label=\"文件上传 :\">\n        <el-upload\n          action=\"#\"\n          class=\"upload\"\n          :drag=\"true\"\n          :limit=\"excelLimit\"\n          :multiple=\"true\"\n          :show-file-list=\"true\"\n          :http-request=\"uploadExcel\"\n          :before-upload=\"beforeExcelUpload\"\n          :on-exceed=\"handleExceed\"\n          :on-success=\"excelUploadSuccess\"\n          :on-error=\"excelUploadError\"\n          :accept=\"parameter.fileType!.join(',')\"\n        >\n          <slot name=\"empty\">\n            <el-icon class=\"el-icon--upload\">\n              <upload-filled />\n            </el-icon>\n            <div class=\"el-upload__text\">将文件拖到此处，或<em>点击上传</em></div>\n          </slot>\n          <template #tip>\n            <slot name=\"tip\">\n              <div class=\"el-upload__tip\">请上传 .xls , .xlsx 标准格式文件，文件最大为 {{ parameter.fileSize }}M</div>\n            </slot>\n          </template>\n        </el-upload>\n      </el-form-item>\n      <el-form-item label=\"数据覆盖 :\">\n        <el-switch v-model=\"isCover\" />\n      </el-form-item>\n    </el-form>\n  </el-dialog>\n</template>\n\n<script setup lang=\"ts\" name=\"ImportExcel\">\nimport { ref } from \"vue\";\nimport { useDownload } from \"@/hooks/useDownload\";\nimport { Download } from \"@element-plus/icons-vue\";\nimport { ElNotification, UploadRequestOptions, UploadRawFile } from \"element-plus\";\n\nexport interface ExcelParameterProps {\n  title: string; // 标题\n  fileSize?: number; // 上传文件的大小\n  fileType?: File.ExcelMimeType[]; // 上传文件的类型\n  tempApi?: (params: any) => Promise<any>; // 下载模板的Api\n  importApi?: (params: any) => Promise<any>; // 批量导入的Api\n  getTableList?: () => void; // 获取表格数据的Api\n}\n\n// 是否覆盖数据\nconst isCover = ref(false);\n// 最大文件上传数\nconst excelLimit = ref(1);\n// dialog状态\nconst dialogVisible = ref(false);\n// 父组件传过来的参数\nconst parameter = ref<ExcelParameterProps>({\n  title: \"\",\n  fileSize: 5,\n  fileType: [\"application/vnd.ms-excel\", \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\"]\n});\n\n// 接收父组件参数\nconst acceptParams = (params: ExcelParameterProps) => {\n  parameter.value = { ...parameter.value, ...params };\n  dialogVisible.value = true;\n};\n\n// Excel 导入模板下载\nconst downloadTemp = () => {\n  if (!parameter.value.tempApi) return;\n  useDownload(parameter.value.tempApi, `${parameter.value.title}模板`);\n};\n\n// 文件上传\nconst uploadExcel = async (param: UploadRequestOptions) => {\n  let excelFormData = new FormData();\n  excelFormData.append(\"file\", param.file);\n  excelFormData.append(\"isCover\", isCover.value as unknown as Blob);\n  await parameter.value.importApi!(excelFormData);\n  parameter.value.getTableList && parameter.value.getTableList();\n  dialogVisible.value = false;\n};\n\n/**\n * @description 文件上传之前判断\n * @param file 上传的文件\n * */\nconst beforeExcelUpload = (file: UploadRawFile) => {\n  const isExcel = parameter.value.fileType!.includes(file.type as File.ExcelMimeType);\n  const fileSize = file.size / 1024 / 1024 < parameter.value.fileSize!;\n  if (!isExcel)\n    ElNotification({\n      title: \"温馨提示\",\n      message: \"上传文件只能是 xls / xlsx 格式！\",\n      type: \"warning\"\n    });\n  if (!fileSize)\n    setTimeout(() => {\n      ElNotification({\n        title: \"温馨提示\",\n        message: `上传文件大小不能超过 ${parameter.value.fileSize}MB！`,\n        type: \"warning\"\n      });\n    }, 0);\n  return isExcel && fileSize;\n};\n\n// 文件数超出提示\nconst handleExceed = () => {\n  ElNotification({\n    title: \"温馨提示\",\n    message: \"最多只能上传一个文件！\",\n    type: \"warning\"\n  });\n};\n\n// 上传错误提示\nconst excelUploadError = () => {\n  ElNotification({\n    title: \"温馨提示\",\n    message: `批量添加${parameter.value.title}失败，请您重新上传！`,\n    type: \"error\"\n  });\n};\n\n// 上传成功提示\nconst excelUploadSuccess = () => {\n  ElNotification({\n    title: \"温馨提示\",\n    message: `批量添加${parameter.value.title}成功！`,\n    type: \"success\"\n  });\n};\n\ndefineExpose({\n  acceptParams\n});\n</script>\n<style lang=\"scss\" scoped>\n@import \"./index.scss\";\n</style>\n"
  },
  {
    "path": "src/components/Loading/fullScreen.ts",
    "content": "import { ElLoading } from \"element-plus\";\n\n/* 全局请求 loading */\nlet loadingInstance: ReturnType<typeof ElLoading.service>;\n\n/**\n * @description 开启 Loading\n * */\nconst startLoading = () => {\n  loadingInstance = ElLoading.service({\n    fullscreen: true,\n    lock: true,\n    text: \"Loading\",\n    background: \"rgba(0, 0, 0, 0.7)\"\n  });\n};\n\n/**\n * @description 结束 Loading\n * */\nconst endLoading = () => {\n  loadingInstance.close();\n};\n\n/**\n * @description 显示全屏加载\n * */\nlet needLoadingRequestCount = 0;\nexport const showFullScreenLoading = () => {\n  if (needLoadingRequestCount === 0) {\n    startLoading();\n  }\n  needLoadingRequestCount++;\n};\n\n/**\n * @description 隐藏全屏加载\n * */\nexport const tryHideFullScreenLoading = () => {\n  if (needLoadingRequestCount <= 0) return;\n  needLoadingRequestCount--;\n  if (needLoadingRequestCount === 0) {\n    endLoading();\n  }\n};\n"
  },
  {
    "path": "src/components/Loading/index.scss",
    "content": ".loading-box {\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n  width: 100%;\n  height: 100%;\n  .loading-wrap {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    padding: 98px;\n  }\n}\n.dot {\n  position: relative;\n  box-sizing: border-box;\n  display: inline-block;\n  width: 32px;\n  height: 32px;\n  font-size: 32px;\n  transform: rotate(45deg);\n  animation: ant-rotate 1.2s infinite linear;\n}\n.dot i {\n  position: absolute;\n  display: block;\n  width: 14px;\n  height: 14px;\n  background-color: var(--el-color-primary);\n  border-radius: 100%;\n  opacity: 0.3;\n  transform: scale(0.75);\n  transform-origin: 50% 50%;\n  animation: ant-spin-move 1s infinite linear alternate;\n}\n.dot i:nth-child(1) {\n  top: 0;\n  left: 0;\n}\n.dot i:nth-child(2) {\n  top: 0;\n  right: 0;\n  animation-delay: 0.4s;\n}\n.dot i:nth-child(3) {\n  right: 0;\n  bottom: 0;\n  animation-delay: 0.8s;\n}\n.dot i:nth-child(4) {\n  bottom: 0;\n  left: 0;\n  animation-delay: 1.2s;\n}\n\n@keyframes ant-rotate {\n  to {\n    transform: rotate(405deg);\n  }\n}\n\n@keyframes ant-spin-move {\n  to {\n    opacity: 1;\n  }\n}\n"
  },
  {
    "path": "src/components/Loading/index.vue",
    "content": "<template>\n  <div class=\"loading-box\">\n    <div class=\"loading-wrap\">\n      <span class=\"dot dot-spin\"><i></i><i></i><i></i><i></i></span>\n    </div>\n  </div>\n</template>\n\n<script setup lang=\"ts\" name=\"Loading\"></script>\n\n<style scoped lang=\"scss\">\n@import \"./index.scss\";\n</style>\n"
  },
  {
    "path": "src/components/ProTable/components/ColSetting.vue",
    "content": "<template>\n  <!-- 列设置 -->\n  <el-drawer v-model=\"drawerVisible\" title=\"列设置\" size=\"450px\">\n    <div class=\"table-main\">\n      <el-table :data=\"colSetting\" :border=\"true\" row-key=\"prop\" default-expand-all :tree-props=\"{ children: '_children' }\">\n        <el-table-column prop=\"label\" align=\"center\" label=\"列名\" />\n        <el-table-column v-slot=\"scope\" prop=\"isShow\" align=\"center\" label=\"显示\">\n          <el-switch v-model=\"scope.row.isShow\"></el-switch>\n        </el-table-column>\n        <el-table-column v-slot=\"scope\" prop=\"sortable\" align=\"center\" label=\"排序\">\n          <el-switch v-model=\"scope.row.sortable\"></el-switch>\n        </el-table-column>\n        <template #empty>\n          <div class=\"table-empty\">\n            <img src=\"@/assets/images/notData.png\" alt=\"notData\" />\n            <div>暂无可配置列</div>\n          </div>\n        </template>\n      </el-table>\n    </div>\n  </el-drawer>\n</template>\n\n<script setup lang=\"ts\" name=\"ColSetting\">\nimport { ref } from \"vue\";\nimport { ColumnProps } from \"@/components/ProTable/interface\";\n\ndefineProps<{ colSetting: ColumnProps[] }>();\n\nconst drawerVisible = ref<boolean>(false);\n\nconst openColSetting = () => {\n  drawerVisible.value = true;\n};\n\ndefineExpose({\n  openColSetting\n});\n</script>\n\n<style scoped lang=\"scss\">\n.cursor-move {\n  cursor: move;\n}\n</style>\n"
  },
  {
    "path": "src/components/ProTable/components/Pagination.vue",
    "content": "<template>\n  <!-- 分页组件 -->\n  <el-pagination\n    :background=\"true\"\n    :current-page=\"pageable.pageNum\"\n    :page-size=\"pageable.pageSize\"\n    :page-sizes=\"[10, 25, 50, 100]\"\n    :total=\"pageable.total\"\n    :size=\"globalStore?.assemblySize ?? 'default'\"\n    layout=\"total, sizes, prev, pager, next, jumper\"\n    @size-change=\"handleSizeChange\"\n    @current-change=\"handleCurrentChange\"\n  ></el-pagination>\n</template>\n\n<script setup lang=\"ts\" name=\"Pagination\">\nimport { useGlobalStore } from \"@/stores/modules/global\";\nconst globalStore = useGlobalStore();\n\ninterface Pageable {\n  pageNum: number;\n  pageSize: number;\n  total: number;\n}\n\ninterface PaginationProps {\n  pageable: Pageable;\n  handleSizeChange: (size: number) => void;\n  handleCurrentChange: (currentPage: number) => void;\n}\n\ndefineProps<PaginationProps>();\n</script>\n"
  },
  {
    "path": "src/components/ProTable/components/TableColumn.vue",
    "content": "<template>\n  <RenderTableColumn v-bind=\"column\" />\n</template>\n\n<script setup lang=\"tsx\" name=\"TableColumn\">\nimport { inject, ref, useSlots } from \"vue\";\nimport { ColumnProps, RenderScope, HeaderRenderScope } from \"@/components/ProTable/interface\";\nimport { filterEnum, formatValue, handleProp, handleRowAccordingToProp } from \"@/utils\";\n\ndefineProps<{ column: ColumnProps }>();\n\nconst slots = useSlots();\n\nconst enumMap = inject(\"enumMap\", ref(new Map()));\n\n// 渲染表格数据\nconst renderCellData = (item: ColumnProps, scope: RenderScope<any>) => {\n  return enumMap.value.get(item.prop) && item.isFilterEnum\n    ? filterEnum(handleRowAccordingToProp(scope.row, item.prop!), enumMap.value.get(item.prop)!, item.fieldNames)\n    : formatValue(handleRowAccordingToProp(scope.row, item.prop!));\n};\n\n// 获取 tag 类型\nconst getTagType = (item: ColumnProps, scope: RenderScope<any>) => {\n  return (\n    filterEnum(handleRowAccordingToProp(scope.row, item.prop!), enumMap.value.get(item.prop), item.fieldNames, \"tag\") || \"primary\"\n  );\n};\n\nconst RenderTableColumn = (item: ColumnProps) => {\n  return (\n    <>\n      {item.isShow && (\n        <el-table-column\n          {...item}\n          align={item.align ?? \"center\"}\n          showOverflowTooltip={item.showOverflowTooltip ?? item.prop !== \"operation\"}\n        >\n          {{\n            default: (scope: RenderScope<any>) => {\n              if (item._children) return item._children.map(child => RenderTableColumn(child));\n              if (item.render) return item.render(scope);\n              if (item.prop && slots[handleProp(item.prop)]) return slots[handleProp(item.prop)]!(scope);\n              if (item.tag) return <el-tag type={getTagType(item, scope)}>{renderCellData(item, scope)}</el-tag>;\n              return renderCellData(item, scope);\n            },\n            header: (scope: HeaderRenderScope<any>) => {\n              if (item.headerRender) return item.headerRender(scope);\n              if (item.prop && slots[`${handleProp(item.prop)}Header`]) return slots[`${handleProp(item.prop)}Header`]!(scope);\n              return item.label;\n            }\n          }}\n        </el-table-column>\n      )}\n    </>\n  );\n};\n</script>\n"
  },
  {
    "path": "src/components/ProTable/index.vue",
    "content": "<!-- 📚📚📚 Pro-Table 文档: https://juejin.cn/post/7166068828202336263 -->\n\n<template>\n  <!-- 查询表单 -->\n  <SearchForm\n    v-show=\"isShowSearch\"\n    :search=\"_search\"\n    :reset=\"_reset\"\n    :columns=\"searchColumns\"\n    :search-param=\"searchParam\"\n    :search-col=\"searchCol\"\n  />\n\n  <!-- 表格主体 -->\n  <div class=\"card table-main\">\n    <!-- 表格头部 操作按钮 -->\n    <div class=\"table-header\">\n      <div class=\"header-button-lf\">\n        <slot name=\"tableHeader\" :selected-list=\"selectedList\" :selected-list-ids=\"selectedListIds\" :is-selected=\"isSelected\" />\n      </div>\n      <div v-if=\"toolButton\" class=\"header-button-ri\">\n        <slot name=\"toolButton\">\n          <el-button v-if=\"showToolButton('refresh')\" :icon=\"Refresh\" circle @click=\"getTableList\" />\n          <el-button v-if=\"showToolButton('setting') && columns.length\" :icon=\"Operation\" circle @click=\"openColSetting\" />\n          <el-button\n            v-if=\"showToolButton('search') && searchColumns?.length\"\n            :icon=\"Search\"\n            circle\n            @click=\"isShowSearch = !isShowSearch\"\n          />\n        </slot>\n      </div>\n    </div>\n    <!-- 表格主体 -->\n    <el-table\n      ref=\"tableRef\"\n      v-bind=\"$attrs\"\n      :id=\"uuid\"\n      :data=\"processTableData\"\n      :border=\"border\"\n      :row-key=\"rowKey\"\n      @selection-change=\"selectionChange\"\n    >\n      <!-- 默认插槽 -->\n      <slot />\n      <template v-for=\"item in tableColumns\" :key=\"item\">\n        <!-- selection || radio || index || expand || sort -->\n        <el-table-column\n          v-if=\"item.type && columnTypes.includes(item.type)\"\n          v-bind=\"item\"\n          :align=\"item.align ?? 'center'\"\n          :reserve-selection=\"item.type == 'selection'\"\n        >\n          <template #default=\"scope\">\n            <!-- expand -->\n            <template v-if=\"item.type == 'expand'\">\n              <component :is=\"item.render\" v-bind=\"scope\" v-if=\"item.render\" />\n              <slot v-else :name=\"item.type\" v-bind=\"scope\" />\n            </template>\n            <!-- radio -->\n            <el-radio v-if=\"item.type == 'radio'\" v-model=\"radio\" :label=\"scope.row[rowKey]\">\n              <i></i>\n            </el-radio>\n            <!-- sort -->\n            <el-tag v-if=\"item.type == 'sort'\" class=\"move\">\n              <el-icon> <DCaret /></el-icon>\n            </el-tag>\n          </template>\n        </el-table-column>\n        <!-- other -->\n        <TableColumn v-else :column=\"item\">\n          <template v-for=\"slot in Object.keys($slots)\" #[slot]=\"scope\">\n            <slot :name=\"slot\" v-bind=\"scope\" />\n          </template>\n        </TableColumn>\n      </template>\n      <!-- 插入表格最后一行之后的插槽 -->\n      <template #append>\n        <slot name=\"append\" />\n      </template>\n      <!-- 无数据 -->\n      <template #empty>\n        <div class=\"table-empty\">\n          <slot name=\"empty\">\n            <img src=\"@/assets/images/notData.png\" alt=\"notData\" />\n            <div>暂无数据</div>\n          </slot>\n        </div>\n      </template>\n    </el-table>\n    <!-- 分页组件 -->\n    <slot name=\"pagination\">\n      <Pagination\n        v-if=\"pagination\"\n        :pageable=\"pageable\"\n        :handle-size-change=\"handleSizeChange\"\n        :handle-current-change=\"handleCurrentChange\"\n      />\n    </slot>\n  </div>\n  <!-- 列设置 -->\n  <ColSetting v-if=\"toolButton\" ref=\"colRef\" v-model:col-setting=\"colSetting\" />\n</template>\n\n<script setup lang=\"ts\" name=\"ProTable\">\nimport { ref, watch, provide, onMounted, unref, computed, reactive } from \"vue\";\nimport { ElTable } from \"element-plus\";\nimport { useTable } from \"@/hooks/useTable\";\nimport { useSelection } from \"@/hooks/useSelection\";\nimport { BreakPoint } from \"@/components/Grid/interface\";\nimport { ColumnProps, TypeProps } from \"@/components/ProTable/interface\";\nimport { Refresh, Operation, Search } from \"@element-plus/icons-vue\";\nimport { generateUUID, handleProp } from \"@/utils\";\nimport SearchForm from \"@/components/SearchForm/index.vue\";\nimport Pagination from \"./components/Pagination.vue\";\nimport ColSetting from \"./components/ColSetting.vue\";\nimport TableColumn from \"./components/TableColumn.vue\";\nimport Sortable from \"sortablejs\";\n\nexport interface ProTableProps {\n  columns: ColumnProps[]; // 列配置项  ==> 必传\n  data?: any[]; // 静态 table data 数据，若存在则不会使用 requestApi 返回的 data ==> 非必传\n  requestApi?: (params: any) => Promise<any>; // 请求表格数据的 api ==> 非必传\n  requestAuto?: boolean; // 是否自动执行请求 api ==> 非必传（默认为true）\n  requestError?: (params: any) => void; // 表格 api 请求错误监听 ==> 非必传\n  dataCallback?: (data: any) => any; // 返回数据的回调函数，可以对数据进行处理 ==> 非必传\n  title?: string; // 表格标题 ==> 非必传\n  pagination?: boolean; // 是否需要分页组件 ==> 非必传（默认为true）\n  initParam?: any; // 初始化请求参数 ==> 非必传（默认为{}）\n  border?: boolean; // 是否带有纵向边框 ==> 非必传（默认为true）\n  toolButton?: (\"refresh\" | \"setting\" | \"search\")[] | boolean; // 是否显示表格功能按钮 ==> 非必传（默认为true）\n  rowKey?: string; // 行数据的 Key，用来优化 Table 的渲染，当表格数据多选时，所指定的 id ==> 非必传（默认为 id）\n  searchCol?: number | Record<BreakPoint, number>; // 表格搜索项 每列占比配置 ==> 非必传 { xs: 1, sm: 2, md: 2, lg: 3, xl: 4 }\n}\n\n// 接受父组件参数，配置默认值\nconst props = withDefaults(defineProps<ProTableProps>(), {\n  columns: () => [],\n  requestAuto: true,\n  pagination: true,\n  initParam: {},\n  border: true,\n  toolButton: true,\n  rowKey: \"id\",\n  searchCol: () => ({ xs: 1, sm: 2, md: 2, lg: 3, xl: 4 })\n});\n\n// table 实例\nconst tableRef = ref<InstanceType<typeof ElTable>>();\n\n// 生成组件唯一id\nconst uuid = ref(\"id-\" + generateUUID());\n\n// column 列类型\nconst columnTypes: TypeProps[] = [\"selection\", \"radio\", \"index\", \"expand\", \"sort\"];\n\n// 是否显示搜索模块\nconst isShowSearch = ref(true);\n\n// 控制 ToolButton 显示\nconst showToolButton = (key: \"refresh\" | \"setting\" | \"search\") => {\n  return Array.isArray(props.toolButton) ? props.toolButton.includes(key) : props.toolButton;\n};\n\n// 单选值\nconst radio = ref(\"\");\n\n// 表格多选 Hooks\nconst { selectionChange, selectedList, selectedListIds, isSelected } = useSelection(props.rowKey);\n\n// 表格操作 Hooks\nconst { tableData, pageable, searchParam, searchInitParam, getTableList, search, reset, handleSizeChange, handleCurrentChange } =\n  useTable(props.requestApi, props.initParam, props.pagination, props.dataCallback, props.requestError);\n\n// 清空选中数据列表\nconst clearSelection = () => tableRef.value!.clearSelection();\n\n// 初始化表格数据 && 拖拽排序\nonMounted(() => {\n  dragSort();\n  props.requestAuto && getTableList();\n  props.data && (pageable.value.total = props.data.length);\n});\n\n// 处理表格数据\nconst processTableData = computed(() => {\n  if (!props.data) return tableData.value;\n  if (!props.pagination) return props.data;\n  return props.data.slice(\n    (pageable.value.pageNum - 1) * pageable.value.pageSize,\n    pageable.value.pageSize * pageable.value.pageNum\n  );\n});\n\n// 监听页面 initParam 改化，重新获取表格数据\nwatch(() => props.initParam, getTableList, { deep: true });\n\n// 接收 columns 并设置为响应式\nconst tableColumns = reactive<ColumnProps[]>(props.columns);\n\n// 扁平化 columns\nconst flatColumns = computed(() => flatColumnsFunc(tableColumns));\n\n// 定义 enumMap 存储 enum 值（避免异步请求无法格式化单元格内容 || 无法填充搜索下拉选择）\nconst enumMap = ref(new Map<string, { [key: string]: any }[]>());\nconst setEnumMap = async ({ prop, enum: enumValue }: ColumnProps) => {\n  if (!enumValue) return;\n\n  // 如果当前 enumMap 存在相同的值 return\n  if (enumMap.value.has(prop!) && (typeof enumValue === \"function\" || enumMap.value.get(prop!) === enumValue)) return;\n\n  // 当前 enum 为静态数据，则直接存储到 enumMap\n  if (typeof enumValue !== \"function\") return enumMap.value.set(prop!, unref(enumValue!));\n\n  // 为了防止接口执行慢，而存储慢，导致重复请求，所以预先存储为[]，接口返回后再二次存储\n  enumMap.value.set(prop!, []);\n\n  // 当前 enum 为后台数据需要请求数据，则调用该请求接口，并存储到 enumMap\n  const { data } = await enumValue();\n  enumMap.value.set(prop!, data);\n};\n\n// 注入 enumMap\nprovide(\"enumMap\", enumMap);\n\n// 扁平化 columns 的方法\nconst flatColumnsFunc = (columns: ColumnProps[], flatArr: ColumnProps[] = []) => {\n  columns.forEach(async col => {\n    if (col._children?.length) flatArr.push(...flatColumnsFunc(col._children));\n    flatArr.push(col);\n\n    // column 添加默认 isShow && isSetting && isFilterEnum 属性值\n    col.isShow = col.isShow ?? true;\n    col.isSetting = col.isSetting ?? true;\n    col.isFilterEnum = col.isFilterEnum ?? true;\n\n    // 设置 enumMap\n    await setEnumMap(col);\n  });\n  return flatArr.filter(item => !item._children?.length);\n};\n\n// 过滤需要搜索的配置项 && 排序\nconst searchColumns = computed(() => {\n  return flatColumns.value\n    ?.filter(item => item.search?.el || item.search?.render)\n    .sort((a, b) => a.search!.order! - b.search!.order!);\n});\n\n// 设置 搜索表单默认排序 && 搜索表单项的默认值\nsearchColumns.value?.forEach((column, index) => {\n  column.search!.order = column.search?.order ?? index + 2;\n  const key = column.search?.key ?? handleProp(column.prop!);\n  const defaultValue = column.search?.defaultValue;\n  if (defaultValue !== undefined && defaultValue !== null) {\n    searchParam.value[key] = defaultValue;\n    searchInitParam.value[key] = defaultValue;\n  }\n});\n\n// 列设置 ==> 需要过滤掉不需要设置的列\nconst colRef = ref();\nconst colSetting = tableColumns!.filter(item => {\n  const { type, prop, isSetting } = item;\n  return !columnTypes.includes(type!) && prop !== \"operation\" && isSetting;\n});\nconst openColSetting = () => colRef.value.openColSetting();\n\n// 定义 emit 事件\nconst emit = defineEmits<{\n  search: [];\n  reset: [];\n  dragSort: [{ newIndex?: number; oldIndex?: number }];\n}>();\n\nconst _search = () => {\n  search();\n  emit(\"search\");\n};\n\nconst _reset = () => {\n  reset();\n  emit(\"reset\");\n};\n\n// 表格拖拽排序\nconst dragSort = () => {\n  const tbody = document.querySelector(`#${uuid.value} tbody`) as HTMLElement;\n  Sortable.create(tbody, {\n    handle: \".move\",\n    animation: 300,\n    onEnd({ newIndex, oldIndex }) {\n      const [removedItem] = processTableData.value.splice(oldIndex!, 1);\n      processTableData.value.splice(newIndex!, 0, removedItem);\n      emit(\"dragSort\", { newIndex, oldIndex });\n    }\n  });\n};\n\n// 暴露给父组件的参数和方法 (外部需要什么，都可以从这里暴露出去)\ndefineExpose({\n  element: tableRef,\n  tableData: processTableData,\n  radio,\n  pageable,\n  searchParam,\n  searchInitParam,\n  isSelected,\n  selectedList,\n  selectedListIds,\n\n  // 下面为 function\n  getTableList,\n  search,\n  reset,\n  handleSizeChange,\n  handleCurrentChange,\n  clearSelection,\n  enumMap\n});\n</script>\n"
  },
  {
    "path": "src/components/ProTable/interface/index.ts",
    "content": "import { VNode, ComponentPublicInstance, Ref } from \"vue\";\nimport { BreakPoint, Responsive } from \"@/components/Grid/interface\";\nimport { TableColumnCtx } from \"element-plus/es/components/table/src/table-column/defaults\";\nimport { ProTableProps } from \"@/components/ProTable/index.vue\";\nimport ProTable from \"@/components/ProTable/index.vue\";\n\nexport interface EnumProps {\n  label?: string; // 选项框显示的文字\n  value?: string | number | boolean | any[]; // 选项框值\n  disabled?: boolean; // 是否禁用此选项\n  tagType?: string; // 当 tag 为 true 时，此选择会指定 tag 显示类型\n  children?: EnumProps[]; // 为树形选择时，可以通过 children 属性指定子选项\n  [key: string]: any;\n}\n\nexport type TypeProps = \"index\" | \"selection\" | \"radio\" | \"expand\" | \"sort\";\n\nexport type SearchType =\n  | \"input\"\n  | \"input-number\"\n  | \"select\"\n  | \"select-v2\"\n  | \"tree-select\"\n  | \"cascader\"\n  | \"date-picker\"\n  | \"time-picker\"\n  | \"time-select\"\n  | \"switch\"\n  | \"slider\";\n\nexport type SearchRenderScope = {\n  searchParam: { [key: string]: any };\n  placeholder: string;\n  clearable: boolean;\n  options: EnumProps[];\n  data: EnumProps[];\n};\n\nexport type SearchProps = {\n  el?: SearchType; // 当前项搜索框的类型\n  label?: string; // 当前项搜索框的 label\n  props?: any; // 搜索项参数，根据 element plus 官方文档来传递，该属性所有值会透传到组件\n  key?: string; // 当搜索项 key 不为 prop 属性时，可通过 key 指定\n  tooltip?: string; // 搜索提示\n  order?: number; // 搜索项排序（从大到小）\n  span?: number; // 搜索项所占用的列数，默认为 1 列\n  offset?: number; // 搜索字段左侧偏移列数\n  defaultValue?: string | number | boolean | any[] | Ref<any>; // 搜索项默认值\n  render?: (scope: SearchRenderScope) => VNode; // 自定义搜索内容渲染（tsx语法）\n} & Partial<Record<BreakPoint, Responsive>>;\n\nexport type FieldNamesProps = {\n  label: string;\n  value: string;\n  children?: string;\n};\n\nexport type RenderScope<T> = {\n  row: T;\n  $index: number;\n  column: TableColumnCtx<T>;\n  [key: string]: any;\n};\n\nexport type HeaderRenderScope<T> = {\n  $index: number;\n  column: TableColumnCtx<T>;\n  [key: string]: any;\n};\n\nexport interface ColumnProps<T = any>\n  extends Partial<Omit<TableColumnCtx<T>, \"type\" | \"children\" | \"renderCell\" | \"renderHeader\">> {\n  type?: TypeProps; // 列类型\n  tag?: boolean | Ref<boolean>; // 是否是标签展示\n  isShow?: boolean | Ref<boolean>; // 是否显示在表格当中\n  isSetting?: boolean | Ref<boolean>; // 是否在 ColSetting 中可配置\n  search?: SearchProps | undefined; // 搜索项配置\n  enum?: EnumProps[] | Ref<EnumProps[]> | ((params?: any) => Promise<any>); // 枚举字典\n  isFilterEnum?: boolean | Ref<boolean>; // 当前单元格值是否根据 enum 格式化（示例：enum 只作为搜索项数据）\n  fieldNames?: FieldNamesProps; // 指定 label && value && children 的 key 值\n  headerRender?: (scope: HeaderRenderScope<T>) => VNode; // 自定义表头内容渲染（tsx语法）\n  render?: (scope: RenderScope<T>) => VNode | string; // 自定义单元格内容渲染（tsx语法）\n  _children?: ColumnProps<T>[]; // 多级表头\n}\n\nexport type ProTableInstance = Omit<InstanceType<typeof ProTable>, keyof ComponentPublicInstance | keyof ProTableProps>;\n"
  },
  {
    "path": "src/components/SearchForm/components/SearchFormItem.vue",
    "content": "<template>\n  <component\n    :is=\"column.search?.render ?? `el-${column.search?.el}`\"\n    v-bind=\"{ ...handleSearchProps, ...placeholder, searchParam: _searchParam, clearable }\"\n    v-model.trim=\"_searchParam[column.search?.key ?? handleProp(column.prop!)]\"\n    :data=\"column.search?.el === 'tree-select' ? columnEnum : []\"\n    :options=\"['cascader', 'select-v2'].includes(column.search?.el!) ? columnEnum : []\"\n  >\n    <template v-if=\"column.search?.el === 'cascader'\" #default=\"{ data }\">\n      <span>{{ data[fieldNames.label] }}</span>\n    </template>\n    <template v-if=\"column.search?.el === 'select'\">\n      <component\n        :is=\"`el-option`\"\n        v-for=\"(col, index) in columnEnum\"\n        :key=\"index\"\n        :label=\"col[fieldNames.label]\"\n        :value=\"col[fieldNames.value]\"\n      ></component>\n    </template>\n    <slot v-else></slot>\n  </component>\n</template>\n\n<script setup lang=\"ts\" name=\"SearchFormItem\">\nimport { computed, inject, ref } from \"vue\";\nimport { handleProp } from \"@/utils\";\nimport { ColumnProps } from \"@/components/ProTable/interface\";\n\ninterface SearchFormItem {\n  column: ColumnProps;\n  searchParam: { [key: string]: any };\n}\nconst props = defineProps<SearchFormItem>();\n\n// Re receive SearchParam\nconst _searchParam = computed(() => props.searchParam);\n\n// 判断 fieldNames 设置 label && value && children 的 key 值\nconst fieldNames = computed(() => {\n  return {\n    label: props.column.fieldNames?.label ?? \"label\",\n    value: props.column.fieldNames?.value ?? \"value\",\n    children: props.column.fieldNames?.children ?? \"children\"\n  };\n});\n\n// 接收 enumMap (el 为 select-v2 需单独处理 enumData)\nconst enumMap = inject(\"enumMap\", ref(new Map()));\nconst columnEnum = computed(() => {\n  let enumData = enumMap.value.get(props.column.prop);\n  if (!enumData) return [];\n  if (props.column.search?.el === \"select-v2\" && props.column.fieldNames) {\n    enumData = enumData.map((item: { [key: string]: any }) => {\n      return { ...item, label: item[fieldNames.value.label], value: item[fieldNames.value.value] };\n    });\n  }\n  return enumData;\n});\n\n// 处理透传的 searchProps (el 为 tree-select、cascader 的时候需要给下默认 label && value && children)\nconst handleSearchProps = computed(() => {\n  const label = fieldNames.value.label;\n  const value = fieldNames.value.value;\n  const children = fieldNames.value.children;\n  const searchEl = props.column.search?.el;\n  let searchProps = props.column.search?.props ?? {};\n  if (searchEl === \"tree-select\") {\n    searchProps = { ...searchProps, props: { ...searchProps, label, children }, nodeKey: value };\n  }\n  if (searchEl === \"cascader\") {\n    searchProps = { ...searchProps, props: { ...searchProps, label, value, children } };\n  }\n  return searchProps;\n});\n\n// 处理默认 placeholder\nconst placeholder = computed(() => {\n  const search = props.column.search;\n  if ([\"datetimerange\", \"daterange\", \"monthrange\"].includes(search?.props?.type) || search?.props?.isRange) {\n    return {\n      rangeSeparator: search?.props?.rangeSeparator ?? \"至\",\n      startPlaceholder: search?.props?.startPlaceholder ?? \"开始时间\",\n      endPlaceholder: search?.props?.endPlaceholder ?? \"结束时间\"\n    };\n  }\n  const placeholder = search?.props?.placeholder ?? (search?.el?.includes(\"input\") ? \"请输入\" : \"请选择\");\n  return { placeholder };\n});\n\n// 是否有清除按钮 (当搜索项有默认值时，清除按钮不显示)\nconst clearable = computed(() => {\n  const search = props.column.search;\n  return search?.props?.clearable ?? (search?.defaultValue == null || search?.defaultValue == undefined);\n});\n</script>\n"
  },
  {
    "path": "src/components/SearchForm/index.vue",
    "content": "<template>\n  <div v-if=\"columns.length\" class=\"card table-search\">\n    <el-form ref=\"formRef\" :model=\"searchParam\">\n      <Grid ref=\"gridRef\" :collapsed=\"collapsed\" :gap=\"[20, 0]\" :cols=\"searchCol\">\n        <GridItem v-for=\"(item, index) in columns\" :key=\"item.prop\" v-bind=\"getResponsive(item)\" :index=\"index\">\n          <el-form-item>\n            <template #label>\n              <el-space :size=\"4\">\n                <span>{{ `${item.search?.label ?? item.label}` }}</span>\n                <el-tooltip v-if=\"item.search?.tooltip\" effect=\"dark\" :content=\"item.search?.tooltip\" placement=\"top\">\n                  <i :class=\"'iconfont icon-yiwen'\"></i>\n                </el-tooltip>\n              </el-space>\n              <span>&nbsp;:</span>\n            </template>\n            <SearchFormItem :column=\"item\" :search-param=\"searchParam\" />\n          </el-form-item>\n        </GridItem>\n        <GridItem suffix>\n          <div class=\"operation\">\n            <el-button type=\"primary\" :icon=\"Search\" @click=\"search\"> 搜索 </el-button>\n            <el-button :icon=\"Delete\" @click=\"reset\"> 重置 </el-button>\n            <el-button v-if=\"showCollapse\" type=\"primary\" link class=\"search-isOpen\" @click=\"collapsed = !collapsed\">\n              {{ collapsed ? \"展开\" : \"合并\" }}\n              <el-icon class=\"el-icon--right\">\n                <component :is=\"collapsed ? ArrowDown : ArrowUp\"></component>\n              </el-icon>\n            </el-button>\n          </div>\n        </GridItem>\n      </Grid>\n    </el-form>\n  </div>\n</template>\n<script setup lang=\"ts\" name=\"SearchForm\">\nimport { computed, ref } from \"vue\";\nimport { ColumnProps } from \"@/components/ProTable/interface\";\nimport { BreakPoint } from \"@/components/Grid/interface\";\nimport { Delete, Search, ArrowDown, ArrowUp } from \"@element-plus/icons-vue\";\nimport SearchFormItem from \"./components/SearchFormItem.vue\";\nimport Grid from \"@/components/Grid/index.vue\";\nimport GridItem from \"@/components/Grid/components/GridItem.vue\";\n\ninterface ProTableProps {\n  columns?: ColumnProps[]; // 搜索配置列\n  searchParam?: { [key: string]: any }; // 搜索参数\n  searchCol: number | Record<BreakPoint, number>;\n  search: (params: any) => void; // 搜索方法\n  reset: (params: any) => void; // 重置方法\n}\n\n// 默认值\nconst props = withDefaults(defineProps<ProTableProps>(), {\n  columns: () => [],\n  searchParam: () => ({})\n});\n\n// 获取响应式设置\nconst getResponsive = (item: ColumnProps) => {\n  return {\n    span: item.search?.span,\n    offset: item.search?.offset ?? 0,\n    xs: item.search?.xs,\n    sm: item.search?.sm,\n    md: item.search?.md,\n    lg: item.search?.lg,\n    xl: item.search?.xl\n  };\n};\n\n// 是否默认折叠搜索项\nconst collapsed = ref(true);\n\n// 获取响应式断点\nconst gridRef = ref();\nconst breakPoint = computed<BreakPoint>(() => gridRef.value?.breakPoint);\n\n// 判断是否显示 展开/合并 按钮\nconst showCollapse = computed(() => {\n  let show = false;\n  props.columns.reduce((prev, current) => {\n    prev +=\n      (current.search![breakPoint.value]?.span ?? current.search?.span ?? 1) +\n      (current.search![breakPoint.value]?.offset ?? current.search?.offset ?? 0);\n    if (typeof props.searchCol !== \"number\") {\n      if (prev >= props.searchCol[breakPoint.value]) show = true;\n    } else {\n      if (prev >= props.searchCol) show = true;\n    }\n    return prev;\n  }, 0);\n  return show;\n});\n</script>\n"
  },
  {
    "path": "src/components/SelectFilter/index.scss",
    "content": ".select-filter {\n  width: 100%;\n  .select-filter-item {\n    display: flex;\n    align-items: center;\n    border-bottom: 1px dashed var(--el-border-color-light);\n    &:last-child {\n      border-bottom: none;\n    }\n    .select-filter-item-title {\n      margin-top: -2px;\n      span {\n        font-size: 14px;\n        color: var(--el-text-color-regular);\n        white-space: nowrap;\n      }\n    }\n    .select-filter-notData {\n      margin: 18px 0;\n      font-size: 14px;\n      color: var(--el-text-color-regular);\n    }\n    .select-filter-list {\n      display: flex;\n      flex: 1;\n      padding: 0;\n      margin: 13px 0;\n      li {\n        display: flex;\n        align-items: center;\n        padding: 5px 15px;\n        margin-right: 16px;\n        font-size: 13px;\n        color: var(--el-color-primary);\n        list-style: none;\n        cursor: pointer;\n        background: var(--el-color-primary-light-9);\n        border: 1px solid var(--el-color-primary-light-5);\n        border-radius: 32px;\n        &:hover {\n          color: #ffffff;\n          background: var(--el-color-primary);\n          border-color: var(--el-color-primary);\n          transition: 0.1s;\n        }\n        &.active {\n          font-weight: bold;\n          color: #ffffff;\n          background: var(--el-color-primary);\n          border-color: var(--el-color-primary);\n        }\n        .el-icon {\n          margin-right: 4px;\n          font-size: 16px;\n          font-weight: bold;\n        }\n        span {\n          white-space: nowrap;\n        }\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "src/components/SelectFilter/index.vue",
    "content": "<template>\n  <div class=\"select-filter\">\n    <div v-for=\"item in data\" :key=\"item.key\" class=\"select-filter-item\">\n      <div class=\"select-filter-item-title\">\n        <span>{{ item.title }} ：</span>\n      </div>\n      <span v-if=\"!item.options.length\" class=\"select-filter-notData\">暂无数据 ~</span>\n      <el-scrollbar>\n        <ul class=\"select-filter-list\">\n          <li\n            v-for=\"option in item.options\"\n            :key=\"option.value\"\n            :class=\"{\n              active:\n                option.value === selected[item.key] ||\n                (Array.isArray(selected[item.key]) && selected[item.key].includes(option.value))\n            }\"\n            @click=\"select(item, option)\"\n          >\n            <slot :row=\"option\">\n              <el-icon v-if=\"option.icon\">\n                <component :is=\"option.icon\" />\n              </el-icon>\n              <span>{{ option.label }}</span>\n            </slot>\n          </li>\n        </ul>\n      </el-scrollbar>\n    </div>\n  </div>\n</template>\n\n<script setup lang=\"ts\" name=\"selectFilter\">\nimport { ref, watch } from \"vue\";\n\ninterface OptionsProps {\n  value: string | number;\n  label: string;\n  icon?: string;\n}\n\ninterface SelectDataProps {\n  title: string; // 列表标题\n  key: string; // 当前筛选项 key 值\n  multiple?: boolean; // 是否为多选\n  options: OptionsProps[]; // 筛选数据\n}\n\ninterface SelectFilterProps {\n  data?: SelectDataProps[]; // 选择的列表数据\n  defaultValues?: { [key: string]: any }; // 默认值\n}\n\nconst props = withDefaults(defineProps<SelectFilterProps>(), {\n  data: () => [],\n  defaultValues: () => ({})\n});\n\n// 重新接收默认值\nconst selected = ref<{ [key: string]: any }>({});\nwatch(\n  () => props.defaultValues,\n  () => {\n    props.data.forEach(item => {\n      if (item.multiple) selected.value[item.key] = props.defaultValues[item.key] ?? [\"\"];\n      else selected.value[item.key] = props.defaultValues[item.key] ?? \"\";\n    });\n  },\n  { deep: true, immediate: true }\n);\n\n// emit\nconst emit = defineEmits<{\n  change: [value: any];\n}>();\n\n/**\n * @description 选择筛选项\n * @param {Object} item 选中的哪项列表\n * @param {Object} option 选中的值\n * @return void\n * */\nconst select = (item: SelectDataProps, option: OptionsProps) => {\n  if (!item.multiple) {\n    // * 单选\n    if (selected.value[item.key] !== option.value) selected.value[item.key] = option.value;\n  } else {\n    // * 多选\n    // 如果选中的是第一个值，则直接设置\n    if (item.options[0].value === option.value) selected.value[item.key] = [option.value];\n    // 如果选择的值已经选中了，则删除选中的值\n    if (selected.value[item.key].includes(option.value)) {\n      let currentIndex = selected.value[item.key].findIndex((s: any) => s === option.value);\n      selected.value[item.key].splice(currentIndex, 1);\n      // 当全部删光时，把第第一个值选中\n      if (selected.value[item.key].length == 0) selected.value[item.key] = [item.options[0].value];\n    } else {\n      // 未选中点击值的时候，追加选中值\n      selected.value[item.key].push(option.value);\n      // 单选中全部并且点击到了未选中的值，把第一个值删除掉\n      if (selected.value[item.key].includes(item.options[0].value)) selected.value[item.key].splice(0, 1);\n    }\n  }\n  emit(\"change\", selected.value);\n};\n</script>\n\n<style scoped lang=\"scss\">\n@import \"./index.scss\";\n</style>\n"
  },
  {
    "path": "src/components/SelectIcon/index.scss",
    "content": ".icon-box {\n  width: 100%;\n  .el-button {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    font-size: 18px;\n    color: var(--el-text-color-regular);\n  }\n  :deep(.el-dialog__body) {\n    padding: 25px 20px 20px;\n    .el-input {\n      margin-bottom: 10px;\n    }\n    .icon-list {\n      display: grid;\n      grid-template-columns: repeat(auto-fill, 115px);\n      justify-content: space-evenly;\n      max-height: 70vh;\n      .icon-item {\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n        width: 42px;\n        padding: 20px 30px;\n        cursor: pointer;\n        transition: all 0.2s;\n        &:hover {\n          transform: scale(1.3);\n        }\n        span {\n          margin-top: 5px;\n          line-height: 20px;\n          text-align: center;\n        }\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "src/components/SelectIcon/index.vue",
    "content": "<template>\n  <div class=\"icon-box\">\n    <el-input\n      ref=\"inputRef\"\n      v-model=\"valueIcon\"\n      v-bind=\"$attrs\"\n      :placeholder=\"placeholder\"\n      :clearable=\"clearable\"\n      @clear=\"clearIcon\"\n      @click=\"openDialog\"\n    >\n      <template #append>\n        <el-button :icon=\"customIcons[iconValue]\" />\n      </template>\n    </el-input>\n    <el-dialog v-model=\"dialogVisible\" :title=\"placeholder\" top=\"50px\" width=\"66%\">\n      <el-input v-model=\"inputValue\" placeholder=\"搜索图标\" size=\"large\" :prefix-icon=\"Icons.Search\" />\n      <el-scrollbar v-if=\"Object.keys(iconsList).length\">\n        <div class=\"icon-list\">\n          <div v-for=\"item in iconsList\" :key=\"item\" class=\"icon-item\" @click=\"selectIcon(item)\">\n            <component :is=\"item\"></component>\n            <span>{{ item.name }}</span>\n          </div>\n        </div>\n      </el-scrollbar>\n      <el-empty v-else description=\"未搜索到您要找的图标~\" />\n    </el-dialog>\n  </div>\n</template>\n\n<script setup lang=\"ts\" name=\"SelectIcon\">\nimport { ref, computed } from \"vue\";\nimport * as Icons from \"@element-plus/icons-vue\";\n\ninterface SelectIconProps {\n  iconValue: string;\n  title?: string;\n  clearable?: boolean;\n  placeholder?: string;\n}\n\nconst props = withDefaults(defineProps<SelectIconProps>(), {\n  iconValue: \"\",\n  title: \"请选择图标\",\n  clearable: true,\n  placeholder: \"请选择图标\"\n});\n\n// 重新接收一下，防止打包后 clearable 报错\nconst valueIcon = ref(props.iconValue);\n\n// open Dialog\nconst dialogVisible = ref(false);\nconst openDialog = () => (dialogVisible.value = true);\n\n// 选择图标(触发更新父组件数据)\nconst emit = defineEmits<{\n  \"update:iconValue\": [value: string];\n}>();\nconst selectIcon = (item: any) => {\n  dialogVisible.value = false;\n  valueIcon.value = item.name;\n  emit(\"update:iconValue\", item.name);\n  setTimeout(() => inputRef.value.blur(), 0);\n};\n\n// 清空图标\nconst inputRef = ref();\nconst clearIcon = () => {\n  valueIcon.value = \"\";\n  emit(\"update:iconValue\", \"\");\n  setTimeout(() => inputRef.value.blur(), 0);\n};\n\n// 监听搜索框值\nconst inputValue = ref(\"\");\nconst customIcons: { [key: string]: any } = Icons;\nconst iconsList = computed((): { [key: string]: any } => {\n  if (!inputValue.value) return Icons;\n  let result: { [key: string]: any } = {};\n  for (const key in customIcons) {\n    if (key.toLowerCase().indexOf(inputValue.value.toLowerCase()) > -1) result[key] = customIcons[key];\n  }\n  return result;\n});\n</script>\n\n<style scoped lang=\"scss\">\n@import \"./index.scss\";\n</style>\n"
  },
  {
    "path": "src/components/SvgIcon/index.vue",
    "content": "<template>\n  <svg :style=\"iconStyle\" aria-hidden=\"true\">\n    <use :xlink:href=\"symbolId\" />\n  </svg>\n</template>\n\n<script setup lang=\"ts\" name=\"SvgIcon\">\nimport { computed, CSSProperties } from \"vue\";\n\ninterface SvgProps {\n  name: string; // 图标的名称 ==> 必传\n  prefix?: string; // 图标的前缀 ==> 非必传（默认为\"icon\"）\n  iconStyle?: CSSProperties; // 图标的样式 ==> 非必传\n}\n\nconst props = withDefaults(defineProps<SvgProps>(), {\n  prefix: \"icon\",\n  iconStyle: () => ({ width: \"100px\", height: \"100px\" })\n});\n\nconst symbolId = computed(() => `#${props.prefix}-${props.name}`);\n</script>\n"
  },
  {
    "path": "src/components/SwitchDark/index.vue",
    "content": "<template>\n  <el-switch v-model=\"globalStore.isDark\" inline-prompt :active-icon=\"Sunny\" :inactive-icon=\"Moon\" @change=\"switchDark\" />\n</template>\n\n<script setup lang=\"ts\" name=\"SwitchDark\">\nimport { useTheme } from \"@/hooks/useTheme\";\nimport { useGlobalStore } from \"@/stores/modules/global\";\nimport { Sunny, Moon } from \"@element-plus/icons-vue\";\n\nconst { switchDark } = useTheme();\nconst globalStore = useGlobalStore();\n</script>\n"
  },
  {
    "path": "src/components/TreeFilter/index.scss",
    "content": ".filter {\n  box-sizing: border-box;\n  width: 220px;\n  height: 100%;\n  padding: 18px;\n  margin-right: 10px;\n  .title {\n    margin: 0 0 15px;\n    font-size: 18px;\n    font-weight: bold;\n    color: var(--el-color-info-dark-2);\n    letter-spacing: 0.5px;\n  }\n  .search {\n    display: flex;\n    align-items: center;\n    margin: 0 0 15px;\n    .el-icon {\n      cursor: pointer;\n      transform: rotate(90deg) translateY(-8px);\n    }\n  }\n  .el-scrollbar {\n    :deep(.el-tree) {\n      height: 80%;\n      overflow: auto;\n      .el-tree-node__content {\n        height: 33px;\n      }\n    }\n    :deep(.el-tree--highlight-current) {\n      .el-tree-node.is-current > .el-tree-node__content {\n        background-color: var(--el-color-primary);\n        .el-tree-node__label,\n        .el-tree-node__expand-icon {\n          color: white;\n        }\n        .is-leaf {\n          color: transparent;\n        }\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "src/components/TreeFilter/index.vue",
    "content": "<template>\n  <div class=\"card filter\">\n    <h4 v-if=\"title\" class=\"title sle\">\n      {{ title }}\n    </h4>\n    <div class=\"search\">\n      <el-input v-model=\"filterText\" placeholder=\"输入关键字进行过滤\" clearable />\n      <el-dropdown trigger=\"click\">\n        <el-icon size=\"20\"><More /></el-icon>\n        <template #dropdown>\n          <el-dropdown-menu>\n            <el-dropdown-item @click=\"toggleTreeNodes(true)\">展开全部</el-dropdown-item>\n            <el-dropdown-item @click=\"toggleTreeNodes(false)\">折叠全部</el-dropdown-item>\n          </el-dropdown-menu>\n        </template>\n      </el-dropdown>\n    </div>\n    <el-scrollbar :style=\"{ height: title ? `calc(100% - 95px)` : `calc(100% - 56px)` }\">\n      <el-tree\n        ref=\"treeRef\"\n        default-expand-all\n        :node-key=\"id\"\n        :data=\"multiple ? treeData : treeAllData\"\n        :show-checkbox=\"multiple\"\n        :check-strictly=\"false\"\n        :current-node-key=\"!multiple ? selected : ''\"\n        :highlight-current=\"!multiple\"\n        :expand-on-click-node=\"false\"\n        :check-on-click-node=\"multiple\"\n        :props=\"defaultProps\"\n        :filter-node-method=\"filterNode\"\n        :default-checked-keys=\"multiple ? selected : []\"\n        @node-click=\"handleNodeClick\"\n        @check=\"handleCheckChange\"\n      >\n        <template #default=\"scope\">\n          <span class=\"el-tree-node__label\">\n            <slot :row=\"scope\">\n              {{ scope.node.label }}\n            </slot>\n          </span>\n        </template>\n      </el-tree>\n    </el-scrollbar>\n  </div>\n</template>\n\n<script setup lang=\"ts\" name=\"TreeFilter\">\nimport { ref, watch, onBeforeMount, nextTick } from \"vue\";\nimport { ElTree } from \"element-plus\";\n\n// 接收父组件参数并设置默认值\ninterface TreeFilterProps {\n  requestApi?: (data?: any) => Promise<any>; // 请求分类数据的 api ==> 非必传\n  data?: { [key: string]: any }[]; // 分类数据，如果有分类数据，则不会执行 api 请求 ==> 非必传\n  title?: string; // treeFilter 标题 ==> 非必传\n  id?: string; // 选择的id ==> 非必传，默认为 “id”\n  label?: string; // 显示的label ==> 非必传，默认为 “label”\n  multiple?: boolean; // 是否为多选 ==> 非必传，默认为 false\n  defaultValue?: any; // 默认选中的值 ==> 非必传\n}\nconst props = withDefaults(defineProps<TreeFilterProps>(), {\n  id: \"id\",\n  label: \"label\",\n  multiple: false\n});\n\nconst defaultProps = {\n  children: \"children\",\n  label: props.label\n};\n\nconst treeRef = ref<InstanceType<typeof ElTree>>();\nconst treeData = ref<{ [key: string]: any }[]>([]);\nconst treeAllData = ref<{ [key: string]: any }[]>([]);\n\nconst selected = ref();\nconst setSelected = () => {\n  if (props.multiple) selected.value = Array.isArray(props.defaultValue) ? props.defaultValue : [props.defaultValue];\n  else selected.value = typeof props.defaultValue === \"string\" ? props.defaultValue : \"\";\n};\n\nonBeforeMount(async () => {\n  setSelected();\n  if (props.requestApi) {\n    const { data } = await props.requestApi!();\n    treeData.value = data;\n    treeAllData.value = [{ id: \"\", [props.label]: \"全部\" }, ...data];\n  }\n});\n\n// 使用 nextTick 防止打包后赋值不生效，开发环境是正常的\nwatch(\n  () => props.defaultValue,\n  () => nextTick(() => setSelected()),\n  { deep: true, immediate: true }\n);\n\nwatch(\n  () => props.data,\n  () => {\n    if (props.data?.length) {\n      treeData.value = props.data;\n      treeAllData.value = [{ id: \"\", [props.label]: \"全部\" }, ...props.data];\n    }\n  },\n  { deep: true, immediate: true }\n);\n\nconst filterText = ref(\"\");\nwatch(filterText, val => {\n  treeRef.value!.filter(val);\n});\n\n// 过滤\nconst filterNode = (value: string, data: { [key: string]: any }, node: any) => {\n  if (!value) return true;\n  let parentNode = node.parent,\n    labels = [node.label],\n    level = 1;\n  while (level < node.level) {\n    labels = [...labels, parentNode.label];\n    parentNode = parentNode.parent;\n    level++;\n  }\n  return labels.some(label => label.indexOf(value) !== -1);\n};\n\n// 切换树节点的展开或折叠状态\nconst toggleTreeNodes = (isExpand: boolean) => {\n  let nodes = treeRef.value?.store.nodesMap;\n  if (!nodes) return;\n  for (const node in nodes) {\n    if (nodes.hasOwnProperty(node)) {\n      nodes[node].expanded = isExpand;\n    }\n  }\n};\n\n// emit\nconst emit = defineEmits<{\n  change: [value: any];\n}>();\n\n// 单选\nconst handleNodeClick = (data: { [key: string]: any }) => {\n  if (props.multiple) return;\n  emit(\"change\", data[props.id]);\n};\n\n// 多选\nconst handleCheckChange = () => {\n  emit(\"change\", treeRef.value?.getCheckedKeys());\n};\n\n// 暴露给父组件使用\ndefineExpose({ treeData, treeAllData, treeRef });\n</script>\n\n<style scoped lang=\"scss\">\n@import \"./index.scss\";\n</style>\n"
  },
  {
    "path": "src/components/Upload/Img.vue",
    "content": "<template>\n  <div class=\"upload-box\">\n    <el-upload\n      :id=\"uuid\"\n      action=\"#\"\n      :class=\"['upload', self_disabled ? 'disabled' : '', drag ? 'no-border' : '']\"\n      :multiple=\"false\"\n      :disabled=\"self_disabled\"\n      :show-file-list=\"false\"\n      :http-request=\"handleHttpUpload\"\n      :before-upload=\"beforeUpload\"\n      :on-success=\"uploadSuccess\"\n      :on-error=\"uploadError\"\n      :drag=\"drag\"\n      :accept=\"fileType.join(',')\"\n    >\n      <template v-if=\"imageUrl\">\n        <img :src=\"imageUrl\" class=\"upload-image\" />\n        <div class=\"upload-handle\" @click.stop>\n          <div v-if=\"!self_disabled\" class=\"handle-icon\" @click=\"editImg\">\n            <el-icon><Edit /></el-icon>\n            <span>编辑</span>\n          </div>\n          <div class=\"handle-icon\" @click=\"imgViewVisible = true\">\n            <el-icon><ZoomIn /></el-icon>\n            <span>查看</span>\n          </div>\n          <div v-if=\"!self_disabled\" class=\"handle-icon\" @click=\"deleteImg\">\n            <el-icon><Delete /></el-icon>\n            <span>删除</span>\n          </div>\n        </div>\n      </template>\n      <template v-else>\n        <div class=\"upload-empty\">\n          <slot name=\"empty\">\n            <el-icon><Plus /></el-icon>\n            <!-- <span>请上传图片</span> -->\n          </slot>\n        </div>\n      </template>\n    </el-upload>\n    <div class=\"el-upload__tip\">\n      <slot name=\"tip\"></slot>\n    </div>\n    <el-image-viewer v-if=\"imgViewVisible\" :url-list=\"[imageUrl]\" @close=\"imgViewVisible = false\" />\n  </div>\n</template>\n\n<script setup lang=\"ts\" name=\"UploadImg\">\nimport { ref, computed, inject } from \"vue\";\nimport { generateUUID } from \"@/utils\";\nimport { uploadImg } from \"@/api/modules/upload\";\nimport { ElNotification, formContextKey, formItemContextKey } from \"element-plus\";\nimport type { UploadProps, UploadRequestOptions } from \"element-plus\";\n\ninterface UploadFileProps {\n  imageUrl: string; // 图片地址 ==> 必传\n  api?: (params: any) => Promise<any>; // 上传图片的 api 方法，一般项目上传都是同一个 api 方法，在组件里直接引入即可 ==> 非必传\n  drag?: boolean; // 是否支持拖拽上传 ==> 非必传（默认为 true）\n  disabled?: boolean; // 是否禁用上传组件 ==> 非必传（默认为 false）\n  fileSize?: number; // 图片大小限制 ==> 非必传（默认为 5M）\n  fileType?: File.ImageMimeType[]; // 图片类型限制 ==> 非必传（默认为 [\"image/jpeg\", \"image/png\", \"image/gif\"]）\n  height?: string; // 组件高度 ==> 非必传（默认为 150px）\n  width?: string; // 组件宽度 ==> 非必传（默认为 150px）\n  borderRadius?: string; // 组件边框圆角 ==> 非必传（默认为 8px）\n}\n\n// 接受父组件参数\nconst props = withDefaults(defineProps<UploadFileProps>(), {\n  imageUrl: \"\",\n  drag: true,\n  disabled: false,\n  fileSize: 5,\n  fileType: () => [\"image/jpeg\", \"image/png\", \"image/gif\"],\n  height: \"150px\",\n  width: \"150px\",\n  borderRadius: \"8px\"\n});\n\n// 生成组件唯一id\nconst uuid = ref(\"id-\" + generateUUID());\n\n// 查看图片\nconst imgViewVisible = ref(false);\n// 获取 el-form 组件上下文\nconst formContext = inject(formContextKey, void 0);\n// 获取 el-form-item 组件上下文\nconst formItemContext = inject(formItemContextKey, void 0);\n// 判断是否禁用上传和删除\nconst self_disabled = computed(() => {\n  return props.disabled || formContext?.disabled;\n});\n\n/**\n * @description 图片上传\n * @param options upload 所有配置项\n * */\nconst emit = defineEmits<{\n  \"update:imageUrl\": [value: string];\n}>();\nconst handleHttpUpload = async (options: UploadRequestOptions) => {\n  let formData = new FormData();\n  formData.append(\"file\", options.file);\n  try {\n    const api = props.api ?? uploadImg;\n    const { data } = await api(formData);\n    emit(\"update:imageUrl\", data.fileUrl);\n    // 调用 el-form 内部的校验方法（可自动校验）\n    formItemContext?.prop && formContext?.validateField([formItemContext.prop as string]);\n  } catch (error) {\n    options.onError(error as any);\n  }\n};\n\n/**\n * @description 删除图片\n * */\nconst deleteImg = () => {\n  emit(\"update:imageUrl\", \"\");\n};\n\n/**\n * @description 编辑图片\n * */\nconst editImg = () => {\n  const dom = document.querySelector(`#${uuid.value} .el-upload__input`);\n  dom && dom.dispatchEvent(new MouseEvent(\"click\"));\n};\n\n/**\n * @description 文件上传之前判断\n * @param rawFile 选择的文件\n * */\nconst beforeUpload: UploadProps[\"beforeUpload\"] = rawFile => {\n  const imgSize = rawFile.size / 1024 / 1024 < props.fileSize;\n  const imgType = props.fileType.includes(rawFile.type as File.ImageMimeType);\n  if (!imgType)\n    ElNotification({\n      title: \"温馨提示\",\n      message: \"上传图片不符合所需的格式！\",\n      type: \"warning\"\n    });\n  if (!imgSize)\n    setTimeout(() => {\n      ElNotification({\n        title: \"温馨提示\",\n        message: `上传图片大小不能超过 ${props.fileSize}M！`,\n        type: \"warning\"\n      });\n    }, 0);\n  return imgType && imgSize;\n};\n\n/**\n * @description 图片上传成功\n * */\nconst uploadSuccess = () => {\n  ElNotification({\n    title: \"温馨提示\",\n    message: \"图片上传成功！\",\n    type: \"success\"\n  });\n};\n\n/**\n * @description 图片上传错误\n * */\nconst uploadError = () => {\n  ElNotification({\n    title: \"温馨提示\",\n    message: \"图片上传失败，请您重新上传！\",\n    type: \"error\"\n  });\n};\n</script>\n\n<style scoped lang=\"scss\">\n.is-error {\n  .upload {\n    :deep(.el-upload),\n    :deep(.el-upload-dragger) {\n      border: 1px dashed var(--el-color-danger) !important;\n      &:hover {\n        border-color: var(--el-color-primary) !important;\n      }\n    }\n  }\n}\n:deep(.disabled) {\n  .el-upload,\n  .el-upload-dragger {\n    cursor: not-allowed !important;\n    background: var(--el-disabled-bg-color);\n    border: 1px dashed var(--el-border-color-darker) !important;\n    &:hover {\n      border: 1px dashed var(--el-border-color-darker) !important;\n    }\n  }\n}\n.upload-box {\n  .no-border {\n    :deep(.el-upload) {\n      border: none !important;\n    }\n  }\n  :deep(.upload) {\n    .el-upload {\n      position: relative;\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      width: v-bind(width);\n      height: v-bind(height);\n      overflow: hidden;\n      border: 1px dashed var(--el-border-color-darker);\n      border-radius: v-bind(borderRadius);\n      transition: var(--el-transition-duration-fast);\n      &:hover {\n        border-color: var(--el-color-primary);\n        .upload-handle {\n          opacity: 1;\n        }\n      }\n      .el-upload-dragger {\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        width: 100%;\n        height: 100%;\n        padding: 0;\n        overflow: hidden;\n        background-color: transparent;\n        border: 1px dashed var(--el-border-color-darker);\n        border-radius: v-bind(borderRadius);\n        &:hover {\n          border: 1px dashed var(--el-color-primary);\n        }\n      }\n      .el-upload-dragger.is-dragover {\n        background-color: var(--el-color-primary-light-9);\n        border: 2px dashed var(--el-color-primary) !important;\n      }\n      .upload-image {\n        width: 100%;\n        height: 100%;\n        object-fit: contain;\n      }\n      .upload-empty {\n        position: relative;\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n        justify-content: center;\n        font-size: 12px;\n        line-height: 30px;\n        color: var(--el-color-info);\n        .el-icon {\n          font-size: 28px;\n          color: var(--el-text-color-secondary);\n        }\n      }\n      .upload-handle {\n        position: absolute;\n        top: 0;\n        right: 0;\n        box-sizing: border-box;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        width: 100%;\n        height: 100%;\n        cursor: pointer;\n        background: rgb(0 0 0 / 60%);\n        opacity: 0;\n        transition: var(--el-transition-duration-fast);\n        .handle-icon {\n          display: flex;\n          flex-direction: column;\n          align-items: center;\n          justify-content: center;\n          padding: 0 6%;\n          color: aliceblue;\n          .el-icon {\n            margin-bottom: 40%;\n            font-size: 130%;\n            line-height: 130%;\n          }\n          span {\n            font-size: 85%;\n            line-height: 85%;\n          }\n        }\n      }\n    }\n  }\n  .el-upload__tip {\n    line-height: 18px;\n    text-align: center;\n  }\n}\n</style>\n"
  },
  {
    "path": "src/components/Upload/Imgs.vue",
    "content": "<template>\n  <div class=\"upload-box\">\n    <el-upload\n      v-model:file-list=\"_fileList\"\n      action=\"#\"\n      list-type=\"picture-card\"\n      :class=\"['upload', self_disabled ? 'disabled' : '', drag ? 'no-border' : '']\"\n      :multiple=\"true\"\n      :disabled=\"self_disabled\"\n      :limit=\"limit\"\n      :http-request=\"handleHttpUpload\"\n      :before-upload=\"beforeUpload\"\n      :on-exceed=\"handleExceed\"\n      :on-success=\"uploadSuccess\"\n      :on-error=\"uploadError\"\n      :drag=\"drag\"\n      :accept=\"fileType.join(',')\"\n    >\n      <div class=\"upload-empty\">\n        <slot name=\"empty\">\n          <el-icon><Plus /></el-icon>\n          <!-- <span>请上传图片</span> -->\n        </slot>\n      </div>\n      <template #file=\"{ file }\">\n        <img :src=\"file.url\" class=\"upload-image\" />\n        <div class=\"upload-handle\" @click.stop>\n          <div class=\"handle-icon\" @click=\"handlePictureCardPreview(file)\">\n            <el-icon><ZoomIn /></el-icon>\n            <span>查看</span>\n          </div>\n          <div v-if=\"!self_disabled\" class=\"handle-icon\" @click=\"handleRemove(file)\">\n            <el-icon><Delete /></el-icon>\n            <span>删除</span>\n          </div>\n        </div>\n      </template>\n    </el-upload>\n    <div class=\"el-upload__tip\">\n      <slot name=\"tip\"></slot>\n    </div>\n    <el-image-viewer v-if=\"imgViewVisible\" :url-list=\"[viewImageUrl]\" @close=\"imgViewVisible = false\" />\n  </div>\n</template>\n\n<script setup lang=\"ts\" name=\"UploadImgs\">\nimport { ref, computed, inject, watch } from \"vue\";\nimport { Plus } from \"@element-plus/icons-vue\";\nimport { uploadImg } from \"@/api/modules/upload\";\nimport type { UploadProps, UploadFile, UploadUserFile, UploadRequestOptions } from \"element-plus\";\nimport { ElNotification, formContextKey, formItemContextKey } from \"element-plus\";\n\ninterface UploadFileProps {\n  fileList: UploadUserFile[];\n  api?: (params: any) => Promise<any>; // 上传图片的 api 方法，一般项目上传都是同一个 api 方法，在组件里直接引入即可 ==> 非必传\n  drag?: boolean; // 是否支持拖拽上传 ==> 非必传（默认为 true）\n  disabled?: boolean; // 是否禁用上传组件 ==> 非必传（默认为 false）\n  limit?: number; // 最大图片上传数 ==> 非必传（默认为 5张）\n  fileSize?: number; // 图片大小限制 ==> 非必传（默认为 5M）\n  fileType?: File.ImageMimeType[]; // 图片类型限制 ==> 非必传（默认为 [\"image/jpeg\", \"image/png\", \"image/gif\"]）\n  height?: string; // 组件高度 ==> 非必传（默认为 150px）\n  width?: string; // 组件宽度 ==> 非必传（默认为 150px）\n  borderRadius?: string; // 组件边框圆角 ==> 非必传（默认为 8px）\n}\n\nconst props = withDefaults(defineProps<UploadFileProps>(), {\n  fileList: () => [],\n  drag: true,\n  disabled: false,\n  limit: 5,\n  fileSize: 5,\n  fileType: () => [\"image/jpeg\", \"image/png\", \"image/gif\"],\n  height: \"150px\",\n  width: \"150px\",\n  borderRadius: \"8px\"\n});\n\n// 获取 el-form 组件上下文\nconst formContext = inject(formContextKey, void 0);\n// 获取 el-form-item 组件上下文\nconst formItemContext = inject(formItemContextKey, void 0);\n// 判断是否禁用上传和删除\nconst self_disabled = computed(() => {\n  return props.disabled || formContext?.disabled;\n});\n\nconst _fileList = ref<UploadUserFile[]>(props.fileList);\n\n// 监听 props.fileList 列表默认值改变\nwatch(\n  () => props.fileList,\n  (n: UploadUserFile[]) => {\n    _fileList.value = n;\n  }\n);\n\n/**\n * @description 文件上传之前判断\n * @param rawFile 选择的文件\n * */\nconst beforeUpload: UploadProps[\"beforeUpload\"] = rawFile => {\n  const imgSize = rawFile.size / 1024 / 1024 < props.fileSize;\n  const imgType = props.fileType.includes(rawFile.type as File.ImageMimeType);\n  if (!imgType)\n    ElNotification({\n      title: \"温馨提示\",\n      message: \"上传图片不符合所需的格式！\",\n      type: \"warning\"\n    });\n  if (!imgSize)\n    setTimeout(() => {\n      ElNotification({\n        title: \"温馨提示\",\n        message: `上传图片大小不能超过 ${props.fileSize}M！`,\n        type: \"warning\"\n      });\n    }, 0);\n  return imgType && imgSize;\n};\n\n/**\n * @description 图片上传\n * @param options upload 所有配置项\n * */\nconst handleHttpUpload = async (options: UploadRequestOptions) => {\n  let formData = new FormData();\n  formData.append(\"file\", options.file);\n  try {\n    const api = props.api ?? uploadImg;\n    const { data } = await api(formData);\n    options.onSuccess(data);\n  } catch (error) {\n    options.onError(error as any);\n  }\n};\n\n/**\n * @description 图片上传成功\n * @param response 上传响应结果\n * @param uploadFile 上传的文件\n * */\nconst emit = defineEmits<{\n  \"update:fileList\": [value: UploadUserFile[]];\n}>();\nconst uploadSuccess = (response: { fileUrl: string } | undefined, uploadFile: UploadFile) => {\n  if (!response) return;\n  uploadFile.url = response.fileUrl;\n  emit(\"update:fileList\", _fileList.value);\n  // 调用 el-form 内部的校验方法（可自动校验）\n  formItemContext?.prop && formContext?.validateField([formItemContext.prop as string]);\n  ElNotification({\n    title: \"温馨提示\",\n    message: \"图片上传成功！\",\n    type: \"success\"\n  });\n};\n\n/**\n * @description 删除图片\n * @param file 删除的文件\n * */\nconst handleRemove = (file: UploadFile) => {\n  _fileList.value = _fileList.value.filter(item => item.url !== file.url || item.name !== file.name);\n  emit(\"update:fileList\", _fileList.value);\n};\n\n/**\n * @description 图片上传错误\n * */\nconst uploadError = () => {\n  ElNotification({\n    title: \"温馨提示\",\n    message: \"图片上传失败，请您重新上传！\",\n    type: \"error\"\n  });\n};\n\n/**\n * @description 文件数超出\n * */\nconst handleExceed = () => {\n  ElNotification({\n    title: \"温馨提示\",\n    message: `当前最多只能上传 ${props.limit} 张图片，请移除后上传！`,\n    type: \"warning\"\n  });\n};\n\n/**\n * @description 图片预览\n * @param file 预览的文件\n * */\nconst viewImageUrl = ref(\"\");\nconst imgViewVisible = ref(false);\nconst handlePictureCardPreview: UploadProps[\"onPreview\"] = file => {\n  viewImageUrl.value = file.url!;\n  imgViewVisible.value = true;\n};\n</script>\n\n<style scoped lang=\"scss\">\n.is-error {\n  .upload {\n    :deep(.el-upload--picture-card),\n    :deep(.el-upload-dragger) {\n      border: 1px dashed var(--el-color-danger) !important;\n      &:hover {\n        border-color: var(--el-color-primary) !important;\n      }\n    }\n  }\n}\n:deep(.disabled) {\n  .el-upload--picture-card,\n  .el-upload-dragger {\n    cursor: not-allowed;\n    background: var(--el-disabled-bg-color) !important;\n    border: 1px dashed var(--el-border-color-darker);\n    &:hover {\n      border-color: var(--el-border-color-darker) !important;\n    }\n  }\n}\n.upload-box {\n  .no-border {\n    :deep(.el-upload--picture-card) {\n      border: none !important;\n    }\n  }\n  :deep(.upload) {\n    .el-upload-dragger {\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      width: 100%;\n      height: 100%;\n      padding: 0;\n      overflow: hidden;\n      border: 1px dashed var(--el-border-color-darker);\n      border-radius: v-bind(borderRadius);\n      &:hover {\n        border: 1px dashed var(--el-color-primary);\n      }\n    }\n    .el-upload-dragger.is-dragover {\n      background-color: var(--el-color-primary-light-9);\n      border: 2px dashed var(--el-color-primary) !important;\n    }\n    .el-upload-list__item,\n    .el-upload--picture-card {\n      width: v-bind(width);\n      height: v-bind(height);\n      background-color: transparent;\n      border-radius: v-bind(borderRadius);\n    }\n    .upload-image {\n      width: 100%;\n      height: 100%;\n      object-fit: contain;\n    }\n    .upload-handle {\n      position: absolute;\n      top: 0;\n      right: 0;\n      box-sizing: border-box;\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      width: 100%;\n      height: 100%;\n      cursor: pointer;\n      background: rgb(0 0 0 / 60%);\n      opacity: 0;\n      transition: var(--el-transition-duration-fast);\n      .handle-icon {\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n        justify-content: center;\n        padding: 0 6%;\n        color: aliceblue;\n        .el-icon {\n          margin-bottom: 15%;\n          font-size: 140%;\n        }\n        span {\n          font-size: 100%;\n        }\n      }\n    }\n    .el-upload-list__item {\n      &:hover {\n        .upload-handle {\n          opacity: 1;\n        }\n      }\n    }\n    .upload-empty {\n      display: flex;\n      flex-direction: column;\n      align-items: center;\n      font-size: 12px;\n      line-height: 30px;\n      color: var(--el-color-info);\n      .el-icon {\n        font-size: 28px;\n        color: var(--el-text-color-secondary);\n      }\n    }\n  }\n  .el-upload__tip {\n    line-height: 15px;\n    text-align: center;\n  }\n}\n</style>\n"
  },
  {
    "path": "src/components/WangEditor/index.scss",
    "content": "/* 富文本组件校验失败样式 */\n.is-error {\n  .editor-box {\n    border-color: var(--el-color-danger);\n    .editor-toolbar {\n      border-bottom-color: var(--el-color-danger);\n    }\n  }\n}\n\n/* 富文本组件禁用样式 */\n.editor-disabled {\n  cursor: not-allowed !important;\n}\n\n/* 富文本组件样式 */\n.editor-box {\n  /* 防止富文本编辑器全屏时 tabs组件 在其层级之上 */\n  z-index: 2;\n  width: 100%;\n  border: 1px solid var(--el-border-color-darker);\n  .editor-toolbar {\n    border-bottom: 1px solid var(--el-border-color-darker);\n  }\n  .editor-content {\n    overflow-y: hidden;\n  }\n}\n"
  },
  {
    "path": "src/components/WangEditor/index.vue",
    "content": "<template>\n  <div :class=\"['editor-box', self_disabled ? 'editor-disabled' : '']\">\n    <Toolbar v-if=\"!hideToolBar\" class=\"editor-toolbar\" :editor=\"editorRef\" :default-config=\"toolbarConfig\" :mode=\"mode\" />\n    <Editor\n      v-model=\"valueHtml\"\n      class=\"editor-content\"\n      :style=\"{ height }\"\n      :mode=\"mode\"\n      :default-config=\"editorConfig\"\n      @on-created=\"handleCreated\"\n      @on-blur=\"handleBlur\"\n    />\n  </div>\n</template>\n\n<script setup lang=\"ts\" name=\"WangEditor\">\nimport { nextTick, computed, inject, shallowRef, onBeforeUnmount } from \"vue\";\nimport { IToolbarConfig, IEditorConfig } from \"@wangeditor/editor\";\nimport { Editor, Toolbar } from \"@wangeditor/editor-for-vue\";\nimport { uploadImg, uploadVideo } from \"@/api/modules/upload\";\nimport \"@wangeditor/editor/dist/css/style.css\";\nimport { formContextKey, formItemContextKey } from \"element-plus\";\n\n// 富文本 DOM 元素\nconst editorRef = shallowRef();\n\n// 实列化编辑器\nconst handleCreated = (editor: any) => {\n  editorRef.value = editor;\n};\n\n// 接收父组件参数，并设置默认值\ninterface RichEditorProps {\n  value: string; // 富文本值 ==> 必传\n  toolbarConfig?: Partial<IToolbarConfig>; // 工具栏配置 ==> 非必传（默认为空）\n  editorConfig?: Partial<IEditorConfig>; // 编辑器配置 ==> 非必传（默认为空）\n  height?: string; // 富文本高度 ==> 非必传（默认为 500px）\n  mode?: \"default\" | \"simple\"; // 富文本模式 ==> 非必传（默认为 default）\n  hideToolBar?: boolean; // 是否隐藏工具栏 ==> 非必传（默认为false）\n  disabled?: boolean; // 是否禁用编辑器 ==> 非必传（默认为false）\n}\nconst props = withDefaults(defineProps<RichEditorProps>(), {\n  toolbarConfig: () => {\n    return {\n      excludeKeys: []\n    };\n  },\n  editorConfig: () => {\n    return {\n      placeholder: \"请输入内容...\",\n      MENU_CONF: {}\n    };\n  },\n  height: \"500px\",\n  mode: \"default\",\n  hideToolBar: false,\n  disabled: false\n});\n\n// 获取 el-form 组件上下文\nconst formContext = inject(formContextKey, void 0);\n// 获取 el-form-item 组件上下文\nconst formItemContext = inject(formItemContextKey, void 0);\n// 判断是否禁用上传和删除\nconst self_disabled = computed(() => {\n  return props.disabled || formContext?.disabled;\n});\n\n// 判断当前富文本编辑器是否禁用\nif (self_disabled.value) nextTick(() => editorRef.value.disable());\n\n// 富文本的内容监听，触发父组件改变，实现双向数据绑定\nconst emit = defineEmits<{\n  \"update:value\": [value: string];\n  \"check-validate\": [];\n}>();\nconst valueHtml = computed({\n  get() {\n    return props.value;\n  },\n  set(val: string) {\n    // 防止富文本内容为空时，校验失败\n    if (editorRef.value.isEmpty()) val = \"\";\n    emit(\"update:value\", val);\n  }\n});\n\n/**\n * @description 图片自定义上传\n * @param file 上传的文件\n * @param insertFn 上传成功后的回调函数（插入到富文本编辑器中）\n * */\ntype InsertFnTypeImg = (url: string, alt?: string, href?: string) => void;\nprops.editorConfig.MENU_CONF![\"uploadImage\"] = {\n  async customUpload(file: File, insertFn: InsertFnTypeImg) {\n    if (!uploadImgValidate(file)) return;\n    let formData = new FormData();\n    formData.append(\"file\", file);\n    try {\n      const { data } = await uploadImg(formData);\n      insertFn(data.fileUrl);\n    } catch (error) {\n      console.log(error);\n    }\n  }\n};\n\n// 图片上传前判断\nconst uploadImgValidate = (file: File): boolean => {\n  console.log(file);\n  return true;\n};\n\n/**\n * @description 视频自定义上传\n * @param file 上传的文件\n * @param insertFn 上传成功后的回调函数（插入到富文本编辑器中）\n * */\ntype InsertFnTypeVideo = (url: string, poster?: string) => void;\nprops.editorConfig.MENU_CONF![\"uploadVideo\"] = {\n  async customUpload(file: File, insertFn: InsertFnTypeVideo) {\n    if (!uploadVideoValidate(file)) return;\n    let formData = new FormData();\n    formData.append(\"file\", file);\n    try {\n      const { data } = await uploadVideo(formData);\n      insertFn(data.fileUrl);\n    } catch (error) {\n      console.log(error);\n    }\n  }\n};\n\n// 视频上传前判断\nconst uploadVideoValidate = (file: File): boolean => {\n  console.log(file);\n  return true;\n};\n\n// 编辑框失去焦点时触发\nconst handleBlur = () => {\n  formItemContext?.prop && formContext?.validateField([formItemContext.prop as string]);\n};\n\n// 组件销毁时，也及时销毁编辑器\nonBeforeUnmount(() => {\n  if (!editorRef.value) return;\n  editorRef.value.destroy();\n});\n\ndefineExpose({\n  editor: editorRef\n});\n</script>\n\n<style scoped lang=\"scss\">\n@import \"./index.scss\";\n</style>\n"
  },
  {
    "path": "src/config/index.ts",
    "content": "// ? 全局默认配置项\n\n// 首页地址（默认）\nexport const HOME_URL: string = \"/home/index\";\n\n// 登录页地址（默认）\nexport const LOGIN_URL: string = \"/login\";\n\n// 默认主题颜色\nexport const DEFAULT_PRIMARY: string = \"#009688\";\n\n// 路由白名单地址（本地存在的路由 staticRouter.ts 中）\nexport const ROUTER_WHITE_LIST: string[] = [\"/500\"];\n\n// 高德地图 key\nexport const AMAP_MAP_KEY: string = \"\";\n\n// 百度地图 key\nexport const BAIDU_MAP_KEY: string = \"\";\n"
  },
  {
    "path": "src/config/nprogress.ts",
    "content": "import NProgress from \"nprogress\";\nimport \"nprogress/nprogress.css\";\n\nNProgress.configure({\n  easing: \"ease\", // 动画方式\n  speed: 500, // 递增进度条的速度\n  showSpinner: true, // 是否显示加载ico\n  trickleSpeed: 200, // 自动递增间隔\n  minimum: 0.3 // 初始化时的最小百分比\n});\n\nexport default NProgress;\n"
  },
  {
    "path": "src/directives/index.ts",
    "content": "import { App, Directive } from \"vue\";\nimport auth from \"./modules/auth\";\nimport copy from \"./modules/copy\";\nimport waterMarker from \"./modules/waterMarker\";\nimport draggable from \"./modules/draggable\";\nimport debounce from \"./modules/debounce\";\nimport throttle from \"./modules/throttle\";\nimport longpress from \"./modules/longpress\";\n\nconst directivesList: { [key: string]: Directive } = {\n  auth,\n  copy,\n  waterMarker,\n  draggable,\n  debounce,\n  throttle,\n  longpress\n};\n\nconst directives = {\n  install: function (app: App<Element>) {\n    Object.keys(directivesList).forEach(key => {\n      app.directive(key, directivesList[key]);\n    });\n  }\n};\n\nexport default directives;\n"
  },
  {
    "path": "src/directives/modules/auth.ts",
    "content": "/**\n * v-auth\n * 按钮权限指令\n */\nimport { useAuthStore } from \"@/stores/modules/auth\";\nimport type { Directive, DirectiveBinding } from \"vue\";\n\nconst auth: Directive = {\n  mounted(el: HTMLElement, binding: DirectiveBinding) {\n    const { value } = binding;\n    const authStore = useAuthStore();\n    const currentPageRoles = authStore.authButtonListGet[authStore.routeName] ?? [];\n    if (value instanceof Array && value.length) {\n      const hasPermission = value.every(item => currentPageRoles.includes(item));\n      if (!hasPermission) el.remove();\n    } else {\n      if (!currentPageRoles.includes(value)) el.remove();\n    }\n  }\n};\n\nexport default auth;\n"
  },
  {
    "path": "src/directives/modules/copy.ts",
    "content": "/**\n * v-copy\n * 复制某个值至剪贴板\n * 接收参数：string类型/Ref<string>类型/Reactive<string>类型\n */\n\nimport type { Directive, DirectiveBinding } from \"vue\";\nimport { ElMessage } from \"element-plus\";\ninterface ElType extends HTMLElement {\n  copyData: string | number;\n}\nconst copy: Directive = {\n  mounted(el: ElType, binding: DirectiveBinding) {\n    el.copyData = binding.value;\n    el.addEventListener(\"click\", handleClick);\n  },\n  updated(el: ElType, binding: DirectiveBinding) {\n    el.copyData = binding.value;\n  },\n  beforeUnmount(el: ElType) {\n    el.removeEventListener(\"click\", handleClick);\n  }\n};\n\nasync function handleClick(this: any) {\n  try {\n    await navigator.clipboard.writeText(this.copyData);\n    ElMessage({\n      type: \"success\",\n      message: \"复制成功\"\n    });\n  } catch (err) {\n    console.error(\"复制操作不被支持或失败: \", err);\n  }\n}\n\nexport default copy;\n"
  },
  {
    "path": "src/directives/modules/debounce.ts",
    "content": "/**\n * v-debounce\n * 按钮防抖指令，可自行扩展至input\n * 接收参数：function类型\n */\nimport type { Directive, DirectiveBinding } from \"vue\";\ninterface ElType extends HTMLElement {\n  __handleClick__: () => any;\n}\nconst debounce: Directive = {\n  mounted(el: ElType, binding: DirectiveBinding) {\n    if (typeof binding.value !== \"function\") {\n      throw \"callback must be a function\";\n    }\n    let timer: NodeJS.Timeout | null = null;\n    el.__handleClick__ = function () {\n      if (timer) {\n        clearInterval(timer);\n      }\n      timer = setTimeout(() => {\n        binding.value();\n      }, 500);\n    };\n    el.addEventListener(\"click\", el.__handleClick__);\n  },\n  beforeUnmount(el: ElType) {\n    el.removeEventListener(\"click\", el.__handleClick__);\n  }\n};\n\nexport default debounce;\n"
  },
  {
    "path": "src/directives/modules/draggable.ts",
    "content": "/*\n\t需求：实现一个拖拽指令，可在父元素区域任意拖拽元素。\n\n\t思路：\n\t\t1、设置需要拖拽的元素为absolute，其父元素为relative。\n\t\t2、鼠标按下(onmousedown)时记录目标元素当前的 left 和 top 值。\n\t\t3、鼠标移动(onmousemove)时计算每次移动的横向距离和纵向距离的变化值，并改变元素的 left 和 top 值\n\t\t4、鼠标松开(onmouseup)时完成一次拖拽\n\n\t使用：在 Dom 上加上 v-draggable 即可\n\t<div class=\"dialog-model\" v-draggable></div>\n*/\nimport type { Directive } from \"vue\";\ninterface ElType extends HTMLElement {\n  parentNode: any;\n}\nconst draggable: Directive = {\n  mounted: function (el: ElType) {\n    el.style.cursor = \"move\";\n    el.style.position = \"absolute\";\n    el.onmousedown = function (e) {\n      let disX = e.pageX - el.offsetLeft;\n      let disY = e.pageY - el.offsetTop;\n      document.onmousemove = function (e) {\n        let x = e.pageX - disX;\n        let y = e.pageY - disY;\n        let maxX = el.parentNode.offsetWidth - el.offsetWidth;\n        let maxY = el.parentNode.offsetHeight - el.offsetHeight;\n        if (x < 0) {\n          x = 0;\n        } else if (x > maxX) {\n          x = maxX;\n        }\n\n        if (y < 0) {\n          y = 0;\n        } else if (y > maxY) {\n          y = maxY;\n        }\n        el.style.left = x + \"px\";\n        el.style.top = y + \"px\";\n      };\n      document.onmouseup = function () {\n        document.onmousemove = document.onmouseup = null;\n      };\n    };\n  }\n};\nexport default draggable;\n"
  },
  {
    "path": "src/directives/modules/longpress.ts",
    "content": "/**\n * v-longpress\n * 长按指令，长按时触发事件\n */\nimport type { Directive, DirectiveBinding } from \"vue\";\n\nconst directive: Directive = {\n  mounted(el: HTMLElement, binding: DirectiveBinding) {\n    if (typeof binding.value !== \"function\") {\n      throw \"callback must be a function\";\n    }\n    // 定义变量\n    let pressTimer: any = null;\n    // 创建计时器（ 2秒后执行函数 ）\n    const start = (e: any) => {\n      if (e.button) {\n        if (e.type === \"click\" && e.button !== 0) {\n          return;\n        }\n      }\n      if (pressTimer === null) {\n        pressTimer = setTimeout(() => {\n          handler(e);\n        }, 1000);\n      }\n    };\n    // 取消计时器\n    const cancel = () => {\n      if (pressTimer !== null) {\n        clearTimeout(pressTimer);\n        pressTimer = null;\n      }\n    };\n    // 运行函数\n    const handler = (e: MouseEvent | TouchEvent) => {\n      binding.value(e);\n    };\n    // 添加事件监听器\n    el.addEventListener(\"mousedown\", start);\n    el.addEventListener(\"touchstart\", start);\n    // 取消计时器\n    el.addEventListener(\"click\", cancel);\n    el.addEventListener(\"mouseout\", cancel);\n    el.addEventListener(\"touchend\", cancel);\n    el.addEventListener(\"touchcancel\", cancel);\n  }\n};\n\nexport default directive;\n"
  },
  {
    "path": "src/directives/modules/throttle.ts",
    "content": "/*\n  需求：防止按钮在短时间内被多次点击，使用节流函数限制规定时间内只能点击一次。\n\n  思路：\n    1、第一次点击，立即调用方法并禁用按钮，等延迟结束再次激活按钮\n    2、将需要触发的方法绑定在指令上\n  \n  使用：给 Dom 加上 v-throttle 及回调函数即可\n  <button v-throttle=\"debounceClick\">节流提交</button>\n*/\nimport type { Directive, DirectiveBinding } from \"vue\";\ninterface ElType extends HTMLElement {\n  __handleClick__: () => any;\n  disabled: boolean;\n}\nconst throttle: Directive = {\n  mounted(el: ElType, binding: DirectiveBinding) {\n    if (typeof binding.value !== \"function\") {\n      throw \"callback must be a function\";\n    }\n    let timer: NodeJS.Timeout | null = null;\n    el.__handleClick__ = function () {\n      if (timer) {\n        clearTimeout(timer);\n      }\n      if (!el.disabled) {\n        el.disabled = true;\n        binding.value();\n        timer = setTimeout(() => {\n          el.disabled = false;\n        }, 1000);\n      }\n    };\n    el.addEventListener(\"click\", el.__handleClick__);\n  },\n  beforeUnmount(el: ElType) {\n    el.removeEventListener(\"click\", el.__handleClick__);\n  }\n};\n\nexport default throttle;\n"
  },
  {
    "path": "src/directives/modules/waterMarker.ts",
    "content": "/*\n  需求：给整个页面添加背景水印。\n\n  思路：\n    1、使用 canvas 特性生成 base64 格式的图片文件，设置其字体大小，颜色等。\n    2、将其设置为背景图片，从而实现页面或组件水印效果\n  \n  使用：设置水印文案，颜色，字体大小即可\n  <div v-waterMarker=\"{text:'版权所有',textColor:'rgba(180, 180, 180, 0.4)'}\"></div>\n*/\n\nimport type { Directive, DirectiveBinding } from \"vue\";\nconst addWaterMarker: Directive = (str: string, parentNode: any, font: any, textColor: string) => {\n  // 水印文字，父元素，字体，文字颜色\n  let can: HTMLCanvasElement = document.createElement(\"canvas\");\n  parentNode.appendChild(can);\n  can.width = 205;\n  can.height = 140;\n  can.style.display = \"none\";\n  let cans = can.getContext(\"2d\") as CanvasRenderingContext2D;\n  cans.rotate((-20 * Math.PI) / 180);\n  cans.font = font || \"16px Microsoft JhengHei\";\n  cans.fillStyle = textColor || \"rgba(180, 180, 180, 0.3)\";\n  cans.textAlign = \"left\";\n  cans.textBaseline = \"Middle\" as CanvasTextBaseline;\n  cans.fillText(str, can.width / 10, can.height / 2);\n  parentNode.style.backgroundImage = \"url(\" + can.toDataURL(\"image/png\") + \")\";\n};\n\nconst waterMarker = {\n  mounted(el: DirectiveBinding, binding: DirectiveBinding) {\n    addWaterMarker(binding.value.text, el, binding.value.font, binding.value.textColor);\n  }\n};\n\nexport default waterMarker;\n"
  },
  {
    "path": "src/enums/httpEnum.ts",
    "content": "/**\n * @description：请求配置\n */\nexport enum ResultEnum {\n  SUCCESS = 200,\n  ERROR = 500,\n  OVERDUE = 401,\n  TIMEOUT = 30000,\n  TYPE = \"success\"\n}\n\n/**\n * @description：请求方法\n */\nexport enum RequestEnum {\n  GET = \"GET\",\n  POST = \"POST\",\n  PATCH = \"PATCH\",\n  PUT = \"PUT\",\n  DELETE = \"DELETE\"\n}\n\n/**\n * @description：常用的 contentTyp 类型\n */\nexport enum ContentTypeEnum {\n  // json\n  JSON = \"application/json;charset=UTF-8\",\n  // text\n  TEXT = \"text/plain;charset=UTF-8\",\n  // form-data 一般配合qs\n  FORM_URLENCODED = \"application/x-www-form-urlencoded;charset=UTF-8\",\n  // form-data 上传\n  FORM_DATA = \"multipart/form-data;charset=UTF-8\"\n}\n"
  },
  {
    "path": "src/hooks/interface/index.ts",
    "content": "export namespace Table {\n  export interface Pageable {\n    pageNum: number;\n    pageSize: number;\n    total: number;\n  }\n  export interface StateProps {\n    tableData: any[];\n    pageable: Pageable;\n    searchParam: {\n      [key: string]: any;\n    };\n    searchInitParam: {\n      [key: string]: any;\n    };\n    totalParam: {\n      [key: string]: any;\n    };\n    icon?: {\n      [key: string]: any;\n    };\n  }\n}\n\nexport namespace HandleData {\n  export type MessageType = \"\" | \"success\" | \"warning\" | \"info\" | \"error\";\n}\n\nexport namespace Theme {\n  export type ThemeType = \"light\" | \"inverted\" | \"dark\";\n  export type GreyOrWeakType = \"grey\" | \"weak\";\n}\n"
  },
  {
    "path": "src/hooks/useAuthButtons.ts",
    "content": "import { computed } from \"vue\";\nimport { useRoute } from \"vue-router\";\nimport { useAuthStore } from \"@/stores/modules/auth\";\n\n/**\n * @description 页面按钮权限\n * */\nexport const useAuthButtons = () => {\n  const route = useRoute();\n  const authStore = useAuthStore();\n  const authButtons = authStore.authButtonListGet[route.name as string] || [];\n\n  const BUTTONS = computed(() => {\n    let currentPageAuthButton: { [key: string]: boolean } = {};\n    authButtons.forEach(item => (currentPageAuthButton[item] = true));\n    return currentPageAuthButton;\n  });\n\n  return {\n    BUTTONS\n  };\n};\n"
  },
  {
    "path": "src/hooks/useDownload.ts",
    "content": "import { ElNotification } from \"element-plus\";\n\n/**\n * @description 接收数据流生成 blob，创建链接，下载文件\n * @param {Function} api 导出表格的api方法 (必传)\n * @param {String} tempName 导出的文件名 (必传)\n * @param {Object} params 导出的参数 (默认{})\n * @param {Boolean} isNotify 是否有导出消息提示 (默认为 true)\n * @param {String} fileType 导出的文件格式 (默认为.xlsx)\n * */\nexport const useDownload = async (\n  api: (param: any) => Promise<any>,\n  tempName: string,\n  params: any = {},\n  isNotify: boolean = true,\n  fileType: string = \".xlsx\"\n) => {\n  if (isNotify) {\n    ElNotification({\n      title: \"温馨提示\",\n      message: \"如果数据庞大会导致下载缓慢哦，请您耐心等待！\",\n      type: \"info\",\n      duration: 3000\n    });\n  }\n  try {\n    const res = await api(params);\n    const blob = new Blob([res]);\n    // 兼容 edge 不支持 createObjectURL 方法\n    if (\"msSaveOrOpenBlob\" in navigator) return window.navigator.msSaveOrOpenBlob(blob, tempName + fileType);\n    const blobUrl = window.URL.createObjectURL(blob);\n    const exportFile = document.createElement(\"a\");\n    exportFile.style.display = \"none\";\n    exportFile.download = `${tempName}${fileType}`;\n    exportFile.href = blobUrl;\n    document.body.appendChild(exportFile);\n    exportFile.click();\n    // 去除下载对 url 的影响\n    document.body.removeChild(exportFile);\n    window.URL.revokeObjectURL(blobUrl);\n  } catch (error) {\n    console.log(error);\n  }\n};\n"
  },
  {
    "path": "src/hooks/useHandleData.ts",
    "content": "import { ElMessageBox, ElMessage } from \"element-plus\";\nimport { HandleData } from \"./interface\";\n\n/**\n * @description 操作单条数据信息 (二次确认【删除、禁用、启用、重置密码】)\n * @param {Function} api 操作数据接口的api方法 (必传)\n * @param {Object} params 携带的操作数据参数 {id,params} (必传)\n * @param {String} message 提示信息 (必传)\n * @param {String} confirmType icon类型 (不必传,默认为 warning)\n * @returns {Promise}\n */\nexport const useHandleData = (\n  api: (params: any) => Promise<any>,\n  params: any = {},\n  message: string,\n  confirmType: HandleData.MessageType = \"warning\"\n) => {\n  return new Promise((resolve, reject) => {\n    ElMessageBox.confirm(`是否${message}?`, \"温馨提示\", {\n      confirmButtonText: \"确定\",\n      cancelButtonText: \"取消\",\n      type: confirmType,\n      draggable: true\n    })\n      .then(async () => {\n        const res = await api(params);\n        if (!res) return reject(false);\n        ElMessage({\n          type: \"success\",\n          message: `${message}成功!`\n        });\n        resolve(true);\n      })\n      .catch(() => {\n        // cancel operation\n      });\n  });\n};\n"
  },
  {
    "path": "src/hooks/useOnline.ts",
    "content": "import { ref, onMounted, onUnmounted } from \"vue\";\n\n/**\n * @description 网络是否可用\n * */\nexport const useOnline = () => {\n  const online = ref(true);\n  const showStatus = (val: any) => {\n    online.value = typeof val == \"boolean\" ? val : val.target.online;\n  };\n  // 在页面加载后，设置正确的网络状态\n  navigator.onLine ? showStatus(true) : showStatus(false);\n\n  onMounted(() => {\n    // 开始监听网络状态的变化\n    window.addEventListener(\"online\", showStatus);\n    window.addEventListener(\"offline\", showStatus);\n  });\n\n  onUnmounted(() => {\n    // 移除监听网络状态的变化\n    window.removeEventListener(\"online\", showStatus);\n    window.removeEventListener(\"offline\", showStatus);\n  });\n\n  return { online };\n};\n"
  },
  {
    "path": "src/hooks/useSelection.ts",
    "content": "import { ref, computed } from \"vue\";\n\n/**\n * @description 表格多选数据操作\n * @param {String} rowKey 当表格可以多选时，所指定的 id\n * */\nexport const useSelection = (rowKey: string = \"id\") => {\n  const isSelected = ref<boolean>(false);\n  const selectedList = ref<{ [key: string]: any }[]>([]);\n\n  // 当前选中的所有 ids 数组\n  const selectedListIds = computed((): string[] => {\n    let ids: string[] = [];\n    selectedList.value.forEach(item => ids.push(item[rowKey]));\n    return ids;\n  });\n\n  /**\n   * @description 多选操作\n   * @param {Array} rowArr 当前选择的所有数据\n   * @return void\n   */\n  const selectionChange = (rowArr: { [key: string]: any }[]) => {\n    rowArr.length ? (isSelected.value = true) : (isSelected.value = false);\n    selectedList.value = rowArr;\n  };\n\n  return {\n    isSelected,\n    selectedList,\n    selectedListIds,\n    selectionChange\n  };\n};\n"
  },
  {
    "path": "src/hooks/useTable.ts",
    "content": "import { Table } from \"./interface\";\nimport { reactive, computed, toRefs } from \"vue\";\n\n/**\n * @description table 页面操作方法封装\n * @param {Function} api 获取表格数据 api 方法 (必传)\n * @param {Object} initParam 获取数据初始化参数 (非必传，默认为{})\n * @param {Boolean} isPageable 是否有分页 (非必传，默认为true)\n * @param {Function} dataCallBack 对后台返回的数据进行处理的方法 (非必传)\n * */\nexport const useTable = (\n  api?: (params: any) => Promise<any>,\n  initParam: object = {},\n  isPageable: boolean = true,\n  dataCallBack?: (data: any) => any,\n  requestError?: (error: any) => void\n) => {\n  const state = reactive<Table.StateProps>({\n    // 表格数据\n    tableData: [],\n    // 分页数据\n    pageable: {\n      // 当前页数\n      pageNum: 1,\n      // 每页显示条数\n      pageSize: 10,\n      // 总条数\n      total: 0\n    },\n    // 查询参数(只包括查询)\n    searchParam: {},\n    // 初始化默认的查询参数\n    searchInitParam: {},\n    // 总参数(包含分页和查询参数)\n    totalParam: {}\n  });\n\n  /**\n   * @description 分页查询参数(只包括分页和表格字段排序,其他排序方式可自行配置)\n   * */\n  const pageParam = computed({\n    get: () => {\n      return {\n        pageNum: state.pageable.pageNum,\n        pageSize: state.pageable.pageSize\n      };\n    },\n    set: (newVal: any) => {\n      console.log(\"我是分页更新之后的值\", newVal);\n    }\n  });\n\n  /**\n   * @description 获取表格数据\n   * @return void\n   * */\n  const getTableList = async () => {\n    if (!api) return;\n    try {\n      // 先把初始化参数和分页参数放到总参数里面\n      Object.assign(state.totalParam, initParam, isPageable ? pageParam.value : {});\n      let { data } = await api({ ...state.searchInitParam, ...state.totalParam });\n      dataCallBack && (data = dataCallBack(data));\n      state.tableData = isPageable ? data.list : data;\n      // 解构后台返回的分页数据 (如果有分页更新分页信息)\n      if (isPageable) {\n        state.pageable.total = data.total;\n      }\n    } catch (error) {\n      requestError && requestError(error);\n    }\n  };\n\n  /**\n   * @description 更新查询参数\n   * @return void\n   * */\n  const updatedTotalParam = () => {\n    state.totalParam = {};\n    // 处理查询参数，可以给查询参数加自定义前缀操作\n    let nowSearchParam: Table.StateProps[\"searchParam\"] = {};\n    // 防止手动清空输入框携带参数（这里可以自定义查询参数前缀）\n    for (let key in state.searchParam) {\n      // 某些情况下参数为 false/0 也应该携带参数\n      if (state.searchParam[key] || state.searchParam[key] === false || state.searchParam[key] === 0) {\n        nowSearchParam[key] = state.searchParam[key];\n      }\n    }\n    Object.assign(state.totalParam, nowSearchParam);\n  };\n\n  /**\n   * @description 表格数据查询\n   * @return void\n   * */\n  const search = () => {\n    state.pageable.pageNum = 1;\n    updatedTotalParam();\n    getTableList();\n  };\n\n  /**\n   * @description 表格数据重置\n   * @return void\n   * */\n  const reset = () => {\n    state.pageable.pageNum = 1;\n    // 重置搜索表单的时，如果有默认搜索参数，则重置默认的搜索参数\n    state.searchParam = { ...state.searchInitParam };\n    updatedTotalParam();\n    getTableList();\n  };\n\n  /**\n   * @description 每页条数改变\n   * @param {Number} val 当前条数\n   * @return void\n   * */\n  const handleSizeChange = (val: number) => {\n    state.pageable.pageNum = 1;\n    state.pageable.pageSize = val;\n    getTableList();\n  };\n\n  /**\n   * @description 当前页改变\n   * @param {Number} val 当前页\n   * @return void\n   * */\n  const handleCurrentChange = (val: number) => {\n    state.pageable.pageNum = val;\n    getTableList();\n  };\n\n  return {\n    ...toRefs(state),\n    getTableList,\n    search,\n    reset,\n    handleSizeChange,\n    handleCurrentChange,\n    updatedTotalParam\n  };\n};\n"
  },
  {
    "path": "src/hooks/useTheme.ts",
    "content": "import { storeToRefs } from \"pinia\";\nimport { Theme } from \"./interface\";\nimport { ElMessage } from \"element-plus\";\nimport { DEFAULT_PRIMARY } from \"@/config\";\nimport { useGlobalStore } from \"@/stores/modules/global\";\nimport { getLightColor, getDarkColor } from \"@/utils/color\";\nimport { menuTheme } from \"@/styles/theme/menu\";\nimport { asideTheme } from \"@/styles/theme/aside\";\nimport { headerTheme } from \"@/styles/theme/header\";\n\n/**\n * @description 全局主题 hooks\n * */\nexport const useTheme = () => {\n  const globalStore = useGlobalStore();\n  const { primary, isDark, isGrey, isWeak, layout, asideInverted, headerInverted } = storeToRefs(globalStore);\n\n  // 切换暗黑模式 ==> 同时修改主题颜色、侧边栏、头部颜色\n  const switchDark = () => {\n    const html = document.documentElement as HTMLElement;\n    if (isDark.value) html.setAttribute(\"class\", \"dark\");\n    else html.setAttribute(\"class\", \"\");\n    changePrimary(primary.value);\n    setAsideTheme();\n    setHeaderTheme();\n  };\n\n  // 修改主题颜色\n  const changePrimary = (val: string | null) => {\n    if (!val) {\n      val = DEFAULT_PRIMARY;\n      ElMessage({ type: \"success\", message: `主题颜色已重置为 ${DEFAULT_PRIMARY}` });\n    }\n    // 计算主题颜色变化\n    document.documentElement.style.setProperty(\"--el-color-primary\", val);\n    document.documentElement.style.setProperty(\n      \"--el-color-primary-dark-2\",\n      isDark.value ? `${getLightColor(val, 0.2)}` : `${getDarkColor(val, 0.3)}`\n    );\n    for (let i = 1; i <= 9; i++) {\n      const primaryColor = isDark.value ? `${getDarkColor(val, i / 10)}` : `${getLightColor(val, i / 10)}`;\n      document.documentElement.style.setProperty(`--el-color-primary-light-${i}`, primaryColor);\n    }\n    globalStore.setGlobalState(\"primary\", val);\n  };\n\n  // 灰色和弱色切换\n  const changeGreyOrWeak = (type: Theme.GreyOrWeakType, value: boolean) => {\n    const body = document.body as HTMLElement;\n    if (!value) return body.removeAttribute(\"style\");\n    const styles: Record<Theme.GreyOrWeakType, string> = {\n      grey: \"filter: grayscale(1)\",\n      weak: \"filter: invert(80%)\"\n    };\n    body.setAttribute(\"style\", styles[type]);\n    const propName = type === \"grey\" ? \"isWeak\" : \"isGrey\";\n    globalStore.setGlobalState(propName, false);\n  };\n\n  // 设置菜单样式\n  const setMenuTheme = () => {\n    let type: Theme.ThemeType = \"light\";\n    if (layout.value === \"transverse\" && headerInverted.value) type = \"inverted\";\n    if (layout.value !== \"transverse\" && asideInverted.value) type = \"inverted\";\n    if (isDark.value) type = \"dark\";\n    const theme = menuTheme[type!];\n    for (const [key, value] of Object.entries(theme)) {\n      document.documentElement.style.setProperty(key, value);\n    }\n  };\n\n  // 设置侧边栏样式\n  const setAsideTheme = () => {\n    let type: Theme.ThemeType = \"light\";\n    if (asideInverted.value) type = \"inverted\";\n    if (isDark.value) type = \"dark\";\n    const theme = asideTheme[type!];\n    for (const [key, value] of Object.entries(theme)) {\n      document.documentElement.style.setProperty(key, value);\n    }\n    setMenuTheme();\n  };\n\n  // 设置头部样式\n  const setHeaderTheme = () => {\n    let type: Theme.ThemeType = \"light\";\n    if (headerInverted.value) type = \"inverted\";\n    if (isDark.value) type = \"dark\";\n    const theme = headerTheme[type!];\n    for (const [key, value] of Object.entries(theme)) {\n      document.documentElement.style.setProperty(key, value);\n    }\n    setMenuTheme();\n  };\n\n  // init theme\n  const initTheme = () => {\n    switchDark();\n    if (isGrey.value) changeGreyOrWeak(\"grey\", true);\n    if (isWeak.value) changeGreyOrWeak(\"weak\", true);\n  };\n\n  return {\n    initTheme,\n    switchDark,\n    changePrimary,\n    changeGreyOrWeak,\n    setAsideTheme,\n    setHeaderTheme\n  };\n};\n"
  },
  {
    "path": "src/hooks/useTime.ts",
    "content": "import { ref } from \"vue\";\n\n/**\n * @description 获取本地时间\n */\nexport const useTime = () => {\n  const year = ref(0); // 年份\n  const month = ref(0); // 月份\n  const week = ref(\"\"); // 星期几\n  const day = ref(0); // 天数\n  const hour = ref<number | string>(0); // 小时\n  const minute = ref<number | string>(0); // 分钟\n  const second = ref<number | string>(0); // 秒\n  const nowTime = ref<string>(\"\"); // 当前时间\n\n  // 更新时间\n  const updateTime = () => {\n    const date = new Date();\n    year.value = date.getFullYear();\n    month.value = date.getMonth() + 1;\n    week.value = \"日一二三四五六\".charAt(date.getDay());\n    day.value = date.getDate();\n    hour.value =\n      (date.getHours() + \"\")?.padStart(2, \"0\") ||\n      new Intl.NumberFormat(undefined, { minimumIntegerDigits: 2 }).format(date.getHours());\n    minute.value =\n      (date.getMinutes() + \"\")?.padStart(2, \"0\") ||\n      new Intl.NumberFormat(undefined, { minimumIntegerDigits: 2 }).format(date.getMinutes());\n    second.value =\n      (date.getSeconds() + \"\")?.padStart(2, \"0\") ||\n      new Intl.NumberFormat(undefined, { minimumIntegerDigits: 2 }).format(date.getSeconds());\n    nowTime.value = `${year.value}年${month.value}月${day.value} ${hour.value}:${minute.value}:${second.value}`;\n  };\n\n  updateTime();\n\n  return { year, month, day, hour, minute, second, week, nowTime };\n};\n"
  },
  {
    "path": "src/languages/index.ts",
    "content": "import { createI18n } from \"vue-i18n\";\nimport { getBrowserLang } from \"@/utils\";\n\nimport zh from \"./modules/zh\";\nimport en from \"./modules/en\";\n\nconst i18n = createI18n({\n  // Use Composition API, Set to false\n  allowComposition: true,\n  legacy: false,\n  locale: getBrowserLang(),\n  messages: {\n    zh,\n    en\n  }\n});\n\nexport default i18n;\n"
  },
  {
    "path": "src/languages/modules/en.ts",
    "content": "export default {\n  home: {\n    welcome: \"Welcome\"\n  },\n  tabs: {\n    refresh: \"Refresh\",\n    maximize: \"Maximize\",\n    closeCurrent: \"Close current\",\n    closeLeft: \"Close Left\",\n    closeRight: \"Close Right\",\n    closeOther: \"Close other\",\n    closeAll: \"Close All\"\n  },\n  header: {\n    componentSize: \"Component size\",\n    language: \"Language\",\n    theme: \"theme\",\n    layoutConfig: \"Layout config\",\n    primary: \"primary\",\n    darkMode: \"Dark Mode\",\n    greyMode: \"Grey mode\",\n    weakMode: \"Weak mode\",\n    fullScreen: \"Full Screen\",\n    exitFullScreen: \"Exit Full Screen\",\n    personalData: \"Personal Data\",\n    changePassword: \"Change Password\",\n    logout: \"Logout\"\n  }\n};\n"
  },
  {
    "path": "src/languages/modules/zh.ts",
    "content": "export default {\n  home: {\n    welcome: \"欢迎使用\"\n  },\n  tabs: {\n    refresh: \"刷新\",\n    maximize: \"最大化\",\n    closeCurrent: \"关闭当前\",\n    closeLeft: \"关闭左侧\",\n    closeRight: \"关闭右侧\",\n    closeOther: \"关闭其它\",\n    closeAll: \"关闭所有\"\n  },\n  header: {\n    componentSize: \"组件大小\",\n    language: \"国际化\",\n    theme: \"全局主题\",\n    layoutConfig: \"布局设置\",\n    primary: \"primary\",\n    darkMode: \"暗黑模式\",\n    greyMode: \"灰色模式\",\n    weakMode: \"色弱模式\",\n    fullScreen: \"全屏\",\n    exitFullScreen: \"退出全屏\",\n    personalData: \"个人信息\",\n    changePassword: \"修改密码\",\n    logout: \"退出登录\"\n  }\n};\n"
  },
  {
    "path": "src/layouts/LayoutClassic/index.scss",
    "content": ".el-container {\n  width: 100%;\n  height: 100%;\n  :deep(.el-header) {\n    box-sizing: border-box;\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    height: 55px;\n    padding: 0 15px 0 0;\n    background-color: var(--el-header-bg-color);\n    border-bottom: 1px solid var(--el-header-border-color);\n    .header-lf {\n      display: flex;\n      align-items: center;\n      overflow: hidden;\n      white-space: nowrap;\n      .logo {\n        flex-shrink: 0;\n        width: 210px;\n        margin-right: 16px;\n        .logo-img {\n          width: 28px;\n          object-fit: contain;\n        }\n        .logo-text {\n          margin-left: 6px;\n          font-size: 21.5px;\n          font-weight: bold;\n          color: var(--el-header-logo-text-color);\n          white-space: nowrap;\n        }\n      }\n    }\n  }\n  .classic-content {\n    display: flex;\n    height: calc(100% - 55px);\n    :deep(.el-aside) {\n      width: auto;\n      background-color: var(--el-menu-bg-color);\n      border-right: 1px solid var(--el-aside-border-color);\n      .aside-box {\n        display: flex;\n        flex-direction: column;\n        height: 100%;\n        transition: width 0.3s ease;\n        .el-menu {\n          width: 100%;\n          overflow-x: hidden;\n          border-right: none;\n        }\n      }\n    }\n    .classic-main {\n      display: flex;\n      flex-direction: column;\n    }\n  }\n}\n"
  },
  {
    "path": "src/layouts/LayoutClassic/index.vue",
    "content": "<!-- 经典布局 -->\n<template>\n  <el-container class=\"layout\">\n    <el-header>\n      <div class=\"header-lf mask-image\">\n        <div class=\"logo flx-center\">\n          <img class=\"logo-img\" src=\"@/assets/images/logo.svg\" alt=\"logo\" />\n          <span class=\"logo-text\">{{ title }}</span>\n        </div>\n        <ToolBarLeft />\n      </div>\n      <div class=\"header-ri\">\n        <ToolBarRight />\n      </div>\n    </el-header>\n    <el-container class=\"classic-content\">\n      <el-aside>\n        <div class=\"aside-box\" :style=\"{ width: isCollapse ? '65px' : '210px' }\">\n          <el-scrollbar>\n            <el-menu\n              :router=\"false\"\n              :default-active=\"activeMenu\"\n              :collapse=\"isCollapse\"\n              :unique-opened=\"accordion\"\n              :collapse-transition=\"false\"\n            >\n              <SubMenu :menu-list=\"menuList\" />\n            </el-menu>\n          </el-scrollbar>\n        </div>\n      </el-aside>\n      <el-container class=\"classic-main\">\n        <Main />\n      </el-container>\n    </el-container>\n  </el-container>\n</template>\n\n<script setup lang=\"ts\" name=\"layoutClassic\">\nimport { computed } from \"vue\";\nimport { useRoute } from \"vue-router\";\nimport { useAuthStore } from \"@/stores/modules/auth\";\nimport { useGlobalStore } from \"@/stores/modules/global\";\nimport Main from \"@/layouts/components/Main/index.vue\";\nimport SubMenu from \"@/layouts/components/Menu/SubMenu.vue\";\nimport ToolBarLeft from \"@/layouts/components/Header/ToolBarLeft.vue\";\nimport ToolBarRight from \"@/layouts/components/Header/ToolBarRight.vue\";\n\nconst title = import.meta.env.VITE_GLOB_APP_TITLE;\n\nconst route = useRoute();\nconst authStore = useAuthStore();\nconst globalStore = useGlobalStore();\nconst accordion = computed(() => globalStore.accordion);\nconst isCollapse = computed(() => globalStore.isCollapse);\nconst menuList = computed(() => authStore.showMenuListGet);\nconst activeMenu = computed(() => (route.meta.activeMenu ? route.meta.activeMenu : route.path) as string);\n</script>\n\n<style scoped lang=\"scss\">\n@import \"./index.scss\";\n</style>\n"
  },
  {
    "path": "src/layouts/LayoutColumns/index.scss",
    "content": ".el-container {\n  width: 100%;\n  height: 100%;\n  .aside-split {\n    display: flex;\n    flex-direction: column;\n    flex-shrink: 0;\n    width: 70px;\n    height: 100%;\n    background-color: var(--el-menu-bg-color);\n    border-right: 1px solid var(--el-aside-border-color);\n    .logo {\n      box-sizing: border-box;\n      height: 55px;\n      .logo-img {\n        width: 32px;\n        object-fit: contain;\n      }\n    }\n    .el-scrollbar {\n      height: calc(100% - 55px);\n      .split-list {\n        flex: 1;\n        .split-item {\n          display: flex;\n          flex-direction: column;\n          align-items: center;\n          justify-content: center;\n          height: 70px;\n          cursor: pointer;\n          transition: all 0.3s ease;\n          .el-icon {\n            font-size: 20px;\n          }\n          .title {\n            margin-top: 6px;\n            font-size: 12px;\n          }\n          .el-icon,\n          .title {\n            color: var(--el-menu-text-color);\n          }\n        }\n        .split-active {\n          background-color: var(--el-color-primary) !important;\n          .el-icon,\n          .title {\n            color: #ffffff !important;\n          }\n        }\n      }\n    }\n  }\n  .not-aside {\n    width: 0 !important;\n    border-right: none !important;\n  }\n  .el-aside {\n    display: flex;\n    flex-direction: column;\n    height: 100%;\n    overflow: hidden;\n    background-color: var(--el-menu-bg-color);\n    border-right: 1px solid var(--el-aside-border-color);\n    transition: width 0.3s ease;\n    .el-scrollbar {\n      height: calc(100% - 55px);\n      .el-menu {\n        width: 100%;\n        overflow-x: hidden;\n        border-right: none;\n      }\n    }\n    .logo {\n      box-sizing: border-box;\n      height: 55px;\n      .logo-text {\n        font-size: 24px;\n        font-weight: bold;\n        color: var(--el-aside-logo-text-color);\n        white-space: nowrap;\n      }\n    }\n  }\n  .el-header {\n    box-sizing: border-box;\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    height: 55px;\n    padding: 0 15px;\n    background-color: var(--el-header-bg-color);\n    border-bottom: 1px solid var(--el-border-color-light);\n  }\n}\n"
  },
  {
    "path": "src/layouts/LayoutColumns/index.vue",
    "content": "<!-- 分栏布局 -->\n<template>\n  <el-container class=\"layout\">\n    <div class=\"aside-split\">\n      <div class=\"logo flx-center\">\n        <img class=\"logo-img\" src=\"@/assets/images/logo.svg\" alt=\"logo\" />\n      </div>\n      <el-scrollbar>\n        <div class=\"split-list\">\n          <div\n            v-for=\"item in menuList\"\n            :key=\"item.path\"\n            class=\"split-item\"\n            :class=\"{ 'split-active': splitActive === item.path || `/${splitActive.split('/')[1]}` === item.path }\"\n            @click=\"changeSubMenu(item)\"\n          >\n            <el-icon>\n              <component :is=\"item.meta.icon\"></component>\n            </el-icon>\n            <span class=\"title\">{{ item.meta.title }}</span>\n          </div>\n        </div>\n      </el-scrollbar>\n    </div>\n    <el-aside :class=\"{ 'not-aside': !subMenuList.length }\" :style=\"{ width: isCollapse ? '65px' : '210px' }\">\n      <div class=\"logo flx-center\">\n        <span v-show=\"subMenuList.length\" class=\"logo-text\">{{ isCollapse ? \"G\" : title }}</span>\n      </div>\n      <el-scrollbar>\n        <el-menu\n          :router=\"false\"\n          :default-active=\"activeMenu\"\n          :collapse=\"isCollapse\"\n          :unique-opened=\"accordion\"\n          :collapse-transition=\"false\"\n        >\n          <SubMenu :menu-list=\"subMenuList\" />\n        </el-menu>\n      </el-scrollbar>\n    </el-aside>\n    <el-container>\n      <el-header>\n        <ToolBarLeft />\n        <ToolBarRight />\n      </el-header>\n      <Main />\n    </el-container>\n  </el-container>\n</template>\n\n<script setup lang=\"ts\" name=\"layoutColumns\">\nimport { ref, computed, watch } from \"vue\";\nimport { useRoute, useRouter } from \"vue-router\";\nimport { useAuthStore } from \"@/stores/modules/auth\";\nimport { useGlobalStore } from \"@/stores/modules/global\";\nimport Main from \"@/layouts/components/Main/index.vue\";\nimport ToolBarLeft from \"@/layouts/components/Header/ToolBarLeft.vue\";\nimport ToolBarRight from \"@/layouts/components/Header/ToolBarRight.vue\";\nimport SubMenu from \"@/layouts/components/Menu/SubMenu.vue\";\n\nconst title = import.meta.env.VITE_GLOB_APP_TITLE;\n\nconst route = useRoute();\nconst router = useRouter();\nconst authStore = useAuthStore();\nconst globalStore = useGlobalStore();\nconst accordion = computed(() => globalStore.accordion);\nconst isCollapse = computed(() => globalStore.isCollapse);\nconst menuList = computed(() => authStore.showMenuListGet);\nconst activeMenu = computed(() => (route.meta.activeMenu ? route.meta.activeMenu : route.path) as string);\n\nconst subMenuList = ref<Menu.MenuOptions[]>([]);\nconst splitActive = ref(\"\");\nwatch(\n  () => [menuList, route],\n  () => {\n    // 当前菜单没有数据直接 return\n    if (!menuList.value.length) return;\n    splitActive.value = route.path;\n    const menuItem = menuList.value.filter((item: Menu.MenuOptions) => {\n      return route.path === item.path || `/${route.path.split(\"/\")[1]}` === item.path;\n    });\n    if (menuItem[0].children?.length) return (subMenuList.value = menuItem[0].children);\n    subMenuList.value = [];\n  },\n  {\n    deep: true,\n    immediate: true\n  }\n);\n\n// change SubMenu\nconst changeSubMenu = (item: Menu.MenuOptions) => {\n  splitActive.value = item.path;\n  if (item.children?.length) return (subMenuList.value = item.children);\n  subMenuList.value = [];\n  router.push(item.path);\n};\n</script>\n\n<style scoped lang=\"scss\">\n@import \"./index.scss\";\n</style>\n"
  },
  {
    "path": "src/layouts/LayoutTransverse/index.scss",
    "content": ".el-container {\n  width: 100%;\n  height: 100%;\n  :deep(.el-header) {\n    box-sizing: border-box;\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    height: 55px;\n    padding: 0 15px 0 0;\n    background-color: var(--el-header-bg-color);\n    border-bottom: 1px solid var(--el-header-border-color);\n    .logo {\n      width: 210px;\n      margin-right: 30px;\n      .logo-img {\n        width: 28px;\n        object-fit: contain;\n      }\n      .logo-text {\n        margin-left: 6px;\n        font-size: 21.5px;\n        font-weight: bold;\n        color: var(--el-header-logo-text-color);\n        white-space: nowrap;\n      }\n    }\n    .el-menu {\n      flex: 1;\n      height: 100%;\n      overflow: hidden;\n      border-bottom: none;\n      .el-sub-menu__hide-arrow {\n        width: 65px;\n        height: 55px;\n      }\n      .el-menu-item.is-active {\n        color: #ffffff !important;\n      }\n      .is-active {\n        background-color: var(--el-color-primary) !important;\n        border-bottom-color: var(--el-color-primary) !important;\n        &::before {\n          width: 0;\n        }\n        .el-sub-menu__title {\n          color: #ffffff !important;\n          background-color: var(--el-color-primary) !important;\n          border-bottom-color: var(--el-color-primary) !important;\n        }\n      }\n    }\n  }\n\n  @media screen and (width <= 730px) {\n    .logo {\n      display: none !important;\n    }\n  }\n}\n"
  },
  {
    "path": "src/layouts/LayoutTransverse/index.vue",
    "content": "<!-- 横向布局 -->\n<template>\n  <el-container class=\"layout\">\n    <el-header>\n      <div class=\"logo flx-center\">\n        <img class=\"logo-img\" src=\"@/assets/images/logo.svg\" alt=\"logo\" />\n        <span class=\"logo-text\">{{ title }}</span>\n      </div>\n      <el-menu mode=\"horizontal\" :router=\"false\" :default-active=\"activeMenu\">\n        <!-- 不能直接使用 SubMenu 组件，无法触发 el-menu 隐藏省略功能 -->\n        <template v-for=\"subItem in menuList\" :key=\"subItem.path\">\n          <el-sub-menu v-if=\"subItem.children?.length\" :key=\"subItem.path\" :index=\"subItem.path + 'el-sub-menu'\">\n            <template #title>\n              <el-icon>\n                <component :is=\"subItem.meta.icon\"></component>\n              </el-icon>\n              <span>{{ subItem.meta.title }}</span>\n            </template>\n            <SubMenu :menu-list=\"subItem.children\" />\n          </el-sub-menu>\n          <el-menu-item v-else :key=\"subItem.path + 'el-menu-item'\" :index=\"subItem.path\" @click=\"handleClickMenu(subItem)\">\n            <el-icon>\n              <component :is=\"subItem.meta.icon\"></component>\n            </el-icon>\n            <template #title>\n              <span>{{ subItem.meta.title }}</span>\n            </template>\n          </el-menu-item>\n        </template>\n      </el-menu>\n      <ToolBarRight />\n    </el-header>\n    <Main />\n  </el-container>\n</template>\n\n<script setup lang=\"ts\" name=\"layoutTransverse\">\nimport { computed } from \"vue\";\nimport { useAuthStore } from \"@/stores/modules/auth\";\nimport { useRoute, useRouter } from \"vue-router\";\nimport Main from \"@/layouts/components/Main/index.vue\";\nimport ToolBarRight from \"@/layouts/components/Header/ToolBarRight.vue\";\nimport SubMenu from \"@/layouts/components/Menu/SubMenu.vue\";\n\nconst title = import.meta.env.VITE_GLOB_APP_TITLE;\n\nconst route = useRoute();\nconst router = useRouter();\nconst authStore = useAuthStore();\nconst menuList = computed(() => authStore.showMenuListGet);\nconst activeMenu = computed(() => (route.meta.activeMenu ? route.meta.activeMenu : route.path) as string);\n\nconst handleClickMenu = (subItem: Menu.MenuOptions) => {\n  if (subItem.meta.isLink) return window.open(subItem.meta.isLink, \"_blank\");\n  router.push(subItem.path);\n};\n</script>\n\n<style scoped lang=\"scss\">\n@import \"./index.scss\";\n</style>\n"
  },
  {
    "path": "src/layouts/LayoutVertical/index.scss",
    "content": ".el-container {\n  width: 100%;\n  height: 100%;\n  :deep(.el-aside) {\n    width: auto;\n    background-color: var(--el-menu-bg-color);\n    border-right: 1px solid var(--el-aside-border-color);\n    .aside-box {\n      display: flex;\n      flex-direction: column;\n      height: 100%;\n      transition: width 0.3s ease;\n      .el-scrollbar {\n        height: calc(100% - 55px);\n        .el-menu {\n          width: 100%;\n          overflow-x: hidden;\n          border-right: none;\n        }\n      }\n      .logo {\n        box-sizing: border-box;\n        height: 55px;\n        .logo-img {\n          width: 28px;\n          object-fit: contain;\n        }\n        .logo-text {\n          margin-left: 6px;\n          font-size: 21.5px;\n          font-weight: bold;\n          color: var(--el-aside-logo-text-color);\n          white-space: nowrap;\n        }\n      }\n    }\n  }\n  .el-header {\n    box-sizing: border-box;\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    height: 55px;\n    padding: 0 15px;\n    background-color: var(--el-header-bg-color);\n    border-bottom: 1px solid var(--el-header-border-color);\n  }\n}\n"
  },
  {
    "path": "src/layouts/LayoutVertical/index.vue",
    "content": "<!-- 纵向布局 -->\n<template>\n  <el-container class=\"layout\">\n    <el-aside>\n      <div class=\"aside-box\" :style=\"{ width: isCollapse ? '65px' : '210px' }\">\n        <div class=\"logo flx-center\">\n          <img class=\"logo-img\" src=\"@/assets/images/logo.svg\" alt=\"logo\" />\n          <span v-show=\"!isCollapse\" class=\"logo-text\">{{ title }}</span>\n        </div>\n        <el-scrollbar>\n          <el-menu\n            :router=\"false\"\n            :default-active=\"activeMenu\"\n            :collapse=\"isCollapse\"\n            :unique-opened=\"accordion\"\n            :collapse-transition=\"false\"\n          >\n            <SubMenu :menu-list=\"menuList\" />\n          </el-menu>\n        </el-scrollbar>\n      </div>\n    </el-aside>\n    <el-container>\n      <el-header>\n        <ToolBarLeft />\n        <ToolBarRight />\n      </el-header>\n      <Main />\n    </el-container>\n  </el-container>\n</template>\n\n<script setup lang=\"ts\" name=\"layoutVertical\">\nimport { computed } from \"vue\";\nimport { useRoute } from \"vue-router\";\nimport { useAuthStore } from \"@/stores/modules/auth\";\nimport { useGlobalStore } from \"@/stores/modules/global\";\nimport Main from \"@/layouts/components/Main/index.vue\";\nimport ToolBarLeft from \"@/layouts/components/Header/ToolBarLeft.vue\";\nimport ToolBarRight from \"@/layouts/components/Header/ToolBarRight.vue\";\nimport SubMenu from \"@/layouts/components/Menu/SubMenu.vue\";\n\nconst title = import.meta.env.VITE_GLOB_APP_TITLE;\n\nconst route = useRoute();\nconst authStore = useAuthStore();\nconst globalStore = useGlobalStore();\nconst accordion = computed(() => globalStore.accordion);\nconst isCollapse = computed(() => globalStore.isCollapse);\nconst menuList = computed(() => authStore.showMenuListGet);\nconst activeMenu = computed(() => (route.meta.activeMenu ? route.meta.activeMenu : route.path) as string);\n</script>\n\n<style scoped lang=\"scss\">\n@import \"./index.scss\";\n</style>\n"
  },
  {
    "path": "src/layouts/components/Footer/index.scss",
    "content": ".footer {\n  height: 30px;\n  background-color: var(--el-bg-color);\n  border-top: 1px solid var(--el-border-color-light);\n  a {\n    font-size: 14px;\n    color: var(--el-text-color-secondary);\n    text-decoration: none;\n    letter-spacing: 0.5px;\n  }\n}\n"
  },
  {
    "path": "src/layouts/components/Footer/index.vue",
    "content": "<template>\n  <div class=\"footer flx-center\">\n    <a href=\"https://github.com/HalseySpicy\" target=\"_blank\"> 2022 © Geeker-Admin By Geeker Technology. </a>\n  </div>\n</template>\n\n<style scoped lang=\"scss\">\n@import \"./index.scss\";\n</style>\n"
  },
  {
    "path": "src/layouts/components/Header/ToolBarLeft.vue",
    "content": "<template>\n  <div class=\"tool-bar-lf\">\n    <CollapseIcon id=\"collapseIcon\" />\n    <Breadcrumb v-show=\"globalStore.breadcrumb\" id=\"breadcrumb\" />\n  </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { useGlobalStore } from \"@/stores/modules/global\";\nimport CollapseIcon from \"./components/CollapseIcon.vue\";\nimport Breadcrumb from \"./components/Breadcrumb.vue\";\nconst globalStore = useGlobalStore();\n</script>\n\n<style scoped lang=\"scss\">\n.tool-bar-lf {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  overflow: hidden;\n  white-space: nowrap;\n}\n</style>\n"
  },
  {
    "path": "src/layouts/components/Header/ToolBarRight.vue",
    "content": "<template>\n  <div class=\"tool-bar-ri\">\n    <div class=\"header-icon\">\n      <AssemblySize id=\"assemblySize\" />\n      <Language id=\"language\" />\n      <SearchMenu id=\"searchMenu\" />\n      <ThemeSetting id=\"themeSetting\" />\n      <Message id=\"message\" />\n      <Fullscreen id=\"fullscreen\" />\n    </div>\n    <span class=\"username\">{{ username }}</span>\n    <Avatar />\n  </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from \"vue\";\nimport { useUserStore } from \"@/stores/modules/user\";\nimport AssemblySize from \"./components/AssemblySize.vue\";\nimport Language from \"./components/Language.vue\";\nimport SearchMenu from \"./components/SearchMenu.vue\";\nimport ThemeSetting from \"./components/ThemeSetting.vue\";\nimport Message from \"./components/Message.vue\";\nimport Fullscreen from \"./components/Fullscreen.vue\";\nimport Avatar from \"./components/Avatar.vue\";\n\nconst userStore = useUserStore();\nconst username = computed(() => userStore.userInfo.name);\n</script>\n\n<style scoped lang=\"scss\">\n.tool-bar-ri {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  padding-right: 25px;\n  .header-icon {\n    display: flex;\n    align-items: center;\n    & > * {\n      margin-left: 21px;\n      color: var(--el-header-text-color);\n    }\n  }\n  .username {\n    margin: 0 20px;\n    font-size: 15px;\n    color: var(--el-header-text-color);\n  }\n}\n</style>\n"
  },
  {
    "path": "src/layouts/components/Header/components/AssemblySize.vue",
    "content": "<template>\n  <el-dropdown trigger=\"click\" @command=\"setAssemblySize\">\n    <i :class=\"'iconfont icon-contentright'\" class=\"toolBar-icon\"></i>\n    <template #dropdown>\n      <el-dropdown-menu>\n        <el-dropdown-item\n          v-for=\"item in assemblySizeList\"\n          :key=\"item.value\"\n          :command=\"item.value\"\n          :disabled=\"assemblySize === item.value\"\n        >\n          {{ item.label }}\n        </el-dropdown-item>\n      </el-dropdown-menu>\n    </template>\n  </el-dropdown>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from \"vue\";\nimport { useGlobalStore } from \"@/stores/modules/global\";\nimport { AssemblySizeType } from \"@/stores/interface\";\n\nconst globalStore = useGlobalStore();\nconst assemblySize = computed(() => globalStore.assemblySize);\n\nconst assemblySizeList = [\n  { label: \"默认\", value: \"default\" },\n  { label: \"大型\", value: \"large\" },\n  { label: \"小型\", value: \"small\" }\n];\n\nconst setAssemblySize = (item: AssemblySizeType) => {\n  if (assemblySize.value === item) return;\n  globalStore.setGlobalState(\"assemblySize\", item);\n};\n</script>\n"
  },
  {
    "path": "src/layouts/components/Header/components/Avatar.vue",
    "content": "<template>\n  <el-dropdown trigger=\"click\">\n    <div class=\"avatar\">\n      <img src=\"@/assets/images/avatar.gif\" alt=\"avatar\" />\n    </div>\n    <template #dropdown>\n      <el-dropdown-menu>\n        <el-dropdown-item @click=\"openDialog('infoRef')\">\n          <el-icon><User /></el-icon>{{ $t(\"header.personalData\") }}\n        </el-dropdown-item>\n        <el-dropdown-item @click=\"openDialog('passwordRef')\">\n          <el-icon><Edit /></el-icon>{{ $t(\"header.changePassword\") }}\n        </el-dropdown-item>\n        <el-dropdown-item divided @click=\"logout\">\n          <el-icon><SwitchButton /></el-icon>{{ $t(\"header.logout\") }}\n        </el-dropdown-item>\n      </el-dropdown-menu>\n    </template>\n  </el-dropdown>\n  <!-- infoDialog -->\n  <InfoDialog ref=\"infoRef\"></InfoDialog>\n  <!-- passwordDialog -->\n  <PasswordDialog ref=\"passwordRef\"></PasswordDialog>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref } from \"vue\";\nimport { LOGIN_URL } from \"@/config\";\nimport { useRouter } from \"vue-router\";\nimport { logoutApi } from \"@/api/modules/login\";\nimport { useUserStore } from \"@/stores/modules/user\";\nimport { ElMessageBox, ElMessage } from \"element-plus\";\nimport InfoDialog from \"./InfoDialog.vue\";\nimport PasswordDialog from \"./PasswordDialog.vue\";\n\nconst router = useRouter();\nconst userStore = useUserStore();\n\n// 退出登录\nconst logout = () => {\n  ElMessageBox.confirm(\"您是否确认退出登录?\", \"温馨提示\", {\n    confirmButtonText: \"确定\",\n    cancelButtonText: \"取消\",\n    type: \"warning\"\n  }).then(async () => {\n    // 1.执行退出登录接口\n    await logoutApi();\n\n    // 2.清除 Token\n    userStore.setToken(\"\");\n\n    // 3.重定向到登陆页\n    router.replace(LOGIN_URL);\n    ElMessage.success(\"退出登录成功！\");\n  });\n};\n\n// 打开修改密码和个人信息弹窗\nconst infoRef = ref<InstanceType<typeof InfoDialog> | null>(null);\nconst passwordRef = ref<InstanceType<typeof PasswordDialog> | null>(null);\nconst openDialog = (ref: string) => {\n  if (ref == \"infoRef\") infoRef.value?.openDialog();\n  if (ref == \"passwordRef\") passwordRef.value?.openDialog();\n};\n</script>\n\n<style scoped lang=\"scss\">\n.avatar {\n  width: 40px;\n  height: 40px;\n  overflow: hidden;\n  cursor: pointer;\n  border-radius: 50%;\n  img {\n    width: 100%;\n    height: 100%;\n  }\n}\n</style>\n"
  },
  {
    "path": "src/layouts/components/Header/components/Breadcrumb.vue",
    "content": "<template>\n  <div :class=\"['breadcrumb-box mask-image', !globalStore.breadcrumbIcon && 'no-icon']\">\n    <el-breadcrumb :separator-icon=\"ArrowRight\">\n      <transition-group name=\"breadcrumb\">\n        <el-breadcrumb-item v-for=\"(item, index) in breadcrumbList\" :key=\"item.path\">\n          <div\n            class=\"el-breadcrumb__inner is-link\"\n            :class=\"{ 'item-no-icon': !item.meta.icon }\"\n            @click=\"onBreadcrumbClick(item, index)\"\n          >\n            <el-icon v-if=\"item.meta.icon && globalStore.breadcrumbIcon\" class=\"breadcrumb-icon\">\n              <component :is=\"item.meta.icon\"></component>\n            </el-icon>\n            <span class=\"breadcrumb-title\">{{ item.meta.title }}</span>\n          </div>\n        </el-breadcrumb-item>\n      </transition-group>\n    </el-breadcrumb>\n  </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from \"vue\";\nimport { HOME_URL } from \"@/config\";\nimport { useRoute, useRouter } from \"vue-router\";\nimport { ArrowRight } from \"@element-plus/icons-vue\";\nimport { useAuthStore } from \"@/stores/modules/auth\";\nimport { useGlobalStore } from \"@/stores/modules/global\";\n\nconst route = useRoute();\nconst router = useRouter();\nconst authStore = useAuthStore();\nconst globalStore = useGlobalStore();\n\nconst breadcrumbList = computed(() => {\n  let breadcrumbData = authStore.breadcrumbListGet[route.matched[route.matched.length - 1].path] ?? [];\n  // 🙅‍♀️不需要首页面包屑可删除以下判断\n  if (breadcrumbData[0].path !== HOME_URL) {\n    breadcrumbData = [{ path: HOME_URL, meta: { icon: \"HomeFilled\", title: \"首页\" } }, ...breadcrumbData];\n  }\n  return breadcrumbData;\n});\n\n// Click Breadcrumb\nconst onBreadcrumbClick = (item: Menu.MenuOptions, index: number) => {\n  if (index !== breadcrumbList.value.length - 1) router.push(item.path);\n};\n</script>\n\n<style scoped lang=\"scss\">\n.breadcrumb-box {\n  display: flex;\n  align-items: center;\n  overflow: hidden;\n  .el-breadcrumb {\n    white-space: nowrap;\n    .el-breadcrumb__item {\n      position: relative;\n      display: inline-block;\n      float: none;\n      .item-no-icon {\n        transform: translateY(-3px);\n      }\n      .el-breadcrumb__inner {\n        display: inline-flex;\n        &.is-link {\n          color: var(--el-header-text-color);\n          &:hover {\n            color: var(--el-color-primary);\n          }\n        }\n        .breadcrumb-icon {\n          margin-top: 1px;\n          margin-right: 6px;\n          font-size: 16px;\n        }\n        .breadcrumb-title {\n          margin-top: 2px;\n        }\n      }\n      &:last-child .el-breadcrumb__inner,\n      &:last-child .el-breadcrumb__inner:hover {\n        color: var(--el-header-text-color-regular);\n      }\n      :deep(.el-breadcrumb__separator) {\n        transform: translateY(-1px);\n      }\n    }\n  }\n}\n.no-icon {\n  .el-breadcrumb {\n    .el-breadcrumb__item {\n      top: -2px;\n      :deep(.el-breadcrumb__separator) {\n        top: 4px;\n      }\n      .item-no-icon {\n        transform: translateY(0);\n      }\n    }\n  }\n}\n</style>\n"
  },
  {
    "path": "src/layouts/components/Header/components/CollapseIcon.vue",
    "content": "<template>\n  <el-icon class=\"collapse-icon\" @click=\"changeCollapse\">\n    <component :is=\"globalStore.isCollapse ? 'expand' : 'fold'\"></component>\n  </el-icon>\n</template>\n\n<script setup lang=\"ts\">\nimport { useGlobalStore } from \"@/stores/modules/global\";\n\nconst globalStore = useGlobalStore();\nconst changeCollapse = () => globalStore.setGlobalState(\"isCollapse\", !globalStore.isCollapse);\n</script>\n\n<style scoped lang=\"scss\">\n.collapse-icon {\n  margin-right: 20px;\n  font-size: 22px;\n  color: var(--el-header-text-color);\n  cursor: pointer;\n}\n</style>\n"
  },
  {
    "path": "src/layouts/components/Header/components/Fullscreen.vue",
    "content": "<template>\n  <div class=\"fullscreen\">\n    <i :class=\"['iconfont', isFullscreen ? 'icon-suoxiao' : 'icon-fangda']\" class=\"toolBar-icon\" @click=\"handleFullScreen\"></i>\n  </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { onMounted, ref } from \"vue\";\nimport { ElMessage } from \"element-plus\";\nimport screenfull from \"screenfull\";\n\nconst isFullscreen = ref(screenfull.isFullscreen);\n\nonMounted(() => {\n  screenfull.on(\"change\", () => {\n    if (screenfull.isFullscreen) isFullscreen.value = true;\n    else isFullscreen.value = false;\n  });\n});\n\nconst handleFullScreen = () => {\n  if (!screenfull.isEnabled) ElMessage.warning(\"当前您的浏览器不支持全屏 ❌\");\n  screenfull.toggle();\n};\n</script>\n"
  },
  {
    "path": "src/layouts/components/Header/components/InfoDialog.vue",
    "content": "<template>\n  <el-dialog v-model=\"dialogVisible\" title=\"个人信息\" width=\"500px\" draggable>\n    <span>This is userInfo</span>\n    <template #footer>\n      <span class=\"dialog-footer\">\n        <el-button @click=\"dialogVisible = false\">取消</el-button>\n        <el-button type=\"primary\" @click=\"dialogVisible = false\">确认</el-button>\n      </span>\n    </template>\n  </el-dialog>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref } from \"vue\";\n\nconst dialogVisible = ref(false);\nconst openDialog = () => {\n  dialogVisible.value = true;\n};\n\ndefineExpose({ openDialog });\n</script>\n"
  },
  {
    "path": "src/layouts/components/Header/components/Language.vue",
    "content": "<template>\n  <el-dropdown trigger=\"click\" @command=\"changeLanguage\">\n    <i :class=\"'iconfont icon-zhongyingwen'\" class=\"toolBar-icon\"></i>\n    <template #dropdown>\n      <el-dropdown-menu>\n        <el-dropdown-item\n          v-for=\"item in languageList\"\n          :key=\"item.value\"\n          :command=\"item.value\"\n          :disabled=\"language === item.value\"\n        >\n          {{ item.label }}\n        </el-dropdown-item>\n      </el-dropdown-menu>\n    </template>\n  </el-dropdown>\n</template>\n\n<script setup lang=\"ts\">\nimport { useI18n } from \"vue-i18n\";\nimport { computed } from \"vue\";\nimport { useGlobalStore } from \"@/stores/modules/global\";\nimport { LanguageType } from \"@/stores/interface\";\n\nconst i18n = useI18n();\nconst globalStore = useGlobalStore();\nconst language = computed(() => globalStore.language);\n\nconst languageList = [\n  { label: \"简体中文\", value: \"zh\" },\n  { label: \"English\", value: \"en\" }\n];\n\nconst changeLanguage = (lang: string) => {\n  i18n.locale.value = lang;\n  globalStore.setGlobalState(\"language\", lang as LanguageType);\n};\n</script>\n"
  },
  {
    "path": "src/layouts/components/Header/components/Message.vue",
    "content": "<template>\n  <div class=\"message\">\n    <el-popover placement=\"bottom\" :width=\"310\" trigger=\"click\">\n      <template #reference>\n        <el-badge :value=\"5\" class=\"item\">\n          <i :class=\"'iconfont icon-xiaoxi'\" class=\"toolBar-icon\"></i>\n        </el-badge>\n      </template>\n      <el-tabs v-model=\"activeName\">\n        <el-tab-pane label=\"通知(5)\" name=\"first\">\n          <div class=\"message-list\">\n            <div class=\"message-item\">\n              <img src=\"@/assets/images/msg01.png\" alt=\"\" class=\"message-icon\" />\n              <div class=\"message-content\">\n                <span class=\"message-title\">一键三连 Geeker-Admin 🧡</span>\n                <span class=\"message-date\">一分钟前</span>\n              </div>\n            </div>\n            <div class=\"message-item\">\n              <img src=\"@/assets/images/msg02.png\" alt=\"\" class=\"message-icon\" />\n              <div class=\"message-content\">\n                <span class=\"message-title\">一键三连 Geeker-Admin 💙</span>\n                <span class=\"message-date\">一小时前</span>\n              </div>\n            </div>\n            <div class=\"message-item\">\n              <img src=\"@/assets/images/msg03.png\" alt=\"\" class=\"message-icon\" />\n              <div class=\"message-content\">\n                <span class=\"message-title\">一键三连 Geeker-Admin 💚</span>\n                <span class=\"message-date\">半天前</span>\n              </div>\n            </div>\n            <div class=\"message-item\">\n              <img src=\"@/assets/images/msg04.png\" alt=\"\" class=\"message-icon\" />\n              <div class=\"message-content\">\n                <span class=\"message-title\">一键三连 Geeker-Admin 💜</span>\n                <span class=\"message-date\">一星期前</span>\n              </div>\n            </div>\n            <div class=\"message-item\">\n              <img src=\"@/assets/images/msg05.png\" alt=\"\" class=\"message-icon\" />\n              <div class=\"message-content\">\n                <span class=\"message-title\">一键三连 Geeker-Admin 💛</span>\n                <span class=\"message-date\">一个月前</span>\n              </div>\n            </div>\n          </div>\n        </el-tab-pane>\n        <el-tab-pane label=\"消息(0)\" name=\"second\">\n          <div class=\"message-empty\">\n            <img src=\"@/assets/images/notData.png\" alt=\"notData\" />\n            <div>暂无消息</div>\n          </div>\n        </el-tab-pane>\n        <el-tab-pane label=\"待办(0)\" name=\"third\">\n          <div class=\"message-empty\">\n            <img src=\"@/assets/images/notData.png\" alt=\"notData\" />\n            <div>暂无待办</div>\n          </div>\n        </el-tab-pane>\n      </el-tabs>\n    </el-popover>\n  </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref } from \"vue\";\nconst activeName = ref(\"first\");\n</script>\n\n<style scoped lang=\"scss\">\n.message-empty {\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n  height: 260px;\n  line-height: 45px;\n}\n.message-list {\n  display: flex;\n  flex-direction: column;\n  .message-item {\n    display: flex;\n    align-items: center;\n    padding: 20px 0;\n    border-bottom: 1px solid var(--el-border-color-light);\n    &:last-child {\n      border: none;\n    }\n    .message-icon {\n      width: 40px;\n      height: 40px;\n      margin: 0 20px 0 5px;\n    }\n    .message-content {\n      display: flex;\n      flex-direction: column;\n      .message-title {\n        margin-bottom: 5px;\n      }\n      .message-date {\n        font-size: 12px;\n        color: var(--el-text-color-secondary);\n      }\n    }\n  }\n}\n</style>\n"
  },
  {
    "path": "src/layouts/components/Header/components/PasswordDialog.vue",
    "content": "<template>\n  <el-dialog v-model=\"dialogVisible\" title=\"修改密码\" width=\"500px\" draggable>\n    <span>This is Password</span>\n    <template #footer>\n      <span class=\"dialog-footer\">\n        <el-button @click=\"dialogVisible = false\">取消</el-button>\n        <el-button type=\"primary\" @click=\"dialogVisible = false\">确认</el-button>\n      </span>\n    </template>\n  </el-dialog>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref } from \"vue\";\n\nconst dialogVisible = ref(false);\nconst openDialog = () => {\n  dialogVisible.value = true;\n};\n\ndefineExpose({ openDialog });\n</script>\n"
  },
  {
    "path": "src/layouts/components/Header/components/SearchMenu.vue",
    "content": "<template>\n  <div class=\"search-menu\">\n    <i :class=\"'iconfont icon-sousuo'\" class=\"toolBar-icon\" @click=\"handleOpen\"></i>\n    <el-dialog class=\"search-dialog\" v-model=\"isShowSearch\" :width=\"600\" :show-close=\"false\" top=\"10vh\">\n      <el-input\n        v-model=\"searchMenu\"\n        ref=\"menuInputRef\"\n        placeholder=\"菜单搜索：支持菜单名称、路径\"\n        size=\"large\"\n        clearable\n        :prefix-icon=\"Search\"\n      ></el-input>\n      <div v-if=\"searchList.length\" class=\"menu-list\" ref=\"menuListRef\">\n        <div\n          v-for=\"item in searchList\"\n          :key=\"item.path\"\n          :class=\"['menu-item', { 'menu-active': item.path === activePath }]\"\n          @mouseenter=\"mouseoverMenuItem(item)\"\n          @click=\"handleClickMenu()\"\n        >\n          <div class=\"menu-lf\">\n            <el-icon class=\"menu-icon\">\n              <component :is=\"item.meta.icon\"></component>\n            </el-icon>\n            <span class=\"menu-title\">{{ item.meta.title }}</span>\n          </div>\n          <i :class=\"'iconfont icon-huiche'\" class=\"menu-enter\" @click=\"handleOpen\"></i>\n        </div>\n      </div>\n      <el-empty v-else class=\"mt20 mb20\" :image-size=\"100\" description=\"暂无菜单\" />\n    </el-dialog>\n  </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, computed, nextTick, watch } from \"vue\";\nimport { InputInstance } from \"element-plus\";\nimport { Search } from \"@element-plus/icons-vue\";\nimport { useAuthStore } from \"@/stores/modules/auth\";\nimport { useRouter } from \"vue-router\";\nimport { useDebounceFn } from \"@vueuse/core\";\n\nconst router = useRouter();\nconst authStore = useAuthStore();\nconst menuList = computed(() => authStore.flatMenuListGet.filter(item => !item.meta.isHide));\n\nconst activePath = ref(\"\");\nconst mouseoverMenuItem = (menu: Menu.MenuOptions) => {\n  activePath.value = menu.path;\n};\n\nconst menuInputRef = ref<InputInstance | null>(null);\nconst isShowSearch = ref<boolean>(false);\nconst searchMenu = ref<string>(\"\");\n\nwatch(isShowSearch, val => {\n  if (val) {\n    document.addEventListener(\"keydown\", keyboardOperation);\n  } else {\n    document.removeEventListener(\"keydown\", keyboardOperation);\n  }\n});\n\nconst handleOpen = () => {\n  isShowSearch.value = true;\n  nextTick(() => {\n    setTimeout(() => {\n      menuInputRef.value?.focus();\n    });\n  });\n};\n\nconst searchList = ref<Menu.MenuOptions[]>([]);\nconst updateSearchList = () => {\n  searchList.value = searchMenu.value\n    ? menuList.value.filter(\n        item =>\n          (item.path.toLowerCase().includes(searchMenu.value.toLowerCase()) ||\n            item.meta.title.toLowerCase().includes(searchMenu.value.toLowerCase())) &&\n          !item.meta?.isHide\n      )\n    : [];\n  activePath.value = searchList.value.length ? searchList.value[0].path : \"\";\n};\n\nconst debouncedUpdateSearchList = useDebounceFn(updateSearchList, 300);\n\nwatch(searchMenu, debouncedUpdateSearchList);\n\nconst menuListRef = ref<Element | null>(null);\nconst keyPressUpOrDown = (direction: number) => {\n  const length = searchList.value.length;\n  if (length === 0) return;\n  const index = searchList.value.findIndex(item => item.path === activePath.value);\n  const newIndex = (index + direction + length) % length;\n  activePath.value = searchList.value[newIndex].path;\n  nextTick(() => {\n    if (!menuListRef.value?.firstElementChild) return;\n    const menuItemHeight = menuListRef.value.firstElementChild.clientHeight + 12 || 0;\n    menuListRef.value.scrollTop = newIndex * menuItemHeight;\n  });\n};\n\nconst keyboardOperation = (event: KeyboardEvent) => {\n  if (event.key === \"ArrowUp\") {\n    event.preventDefault();\n    keyPressUpOrDown(-1);\n  } else if (event.key === \"ArrowDown\") {\n    event.preventDefault();\n    keyPressUpOrDown(1);\n  } else if (event.key === \"Enter\") {\n    event.preventDefault();\n    handleClickMenu();\n  }\n};\n\nconst handleClickMenu = () => {\n  const menu = searchList.value.find(item => item.path === activePath.value);\n  if (!menu) return;\n  if (menu.meta?.isLink) window.open(menu.meta.isLink, \"_blank\");\n  else router.push(menu.path);\n  searchMenu.value = \"\";\n  isShowSearch.value = false;\n};\n</script>\n\n<style scoped lang=\"scss\">\n.search-menu {\n  :deep(.el-dialog) {\n    border-radius: 4px;\n    .el-dialog__header {\n      display: none;\n    }\n  }\n  .menu-list {\n    max-height: 515px;\n    margin-top: 15px;\n    overflow: auto;\n    .menu-item {\n      position: relative;\n      display: flex;\n      align-items: center;\n      justify-content: space-between;\n      height: 45px;\n      padding: 0 20px;\n      margin: 10px 0;\n      color: var(--el-text-color-secondary);\n      cursor: pointer;\n      background-color: transparent;\n      border: 1px solid var(--el-border-color);\n      border-radius: 6px;\n      transition: all 0.2s ease;\n      .menu-lf {\n        display: flex;\n        align-items: center;\n      }\n      .menu-icon {\n        margin-right: 8px;\n        font-size: 16px;\n      }\n      .menu-title {\n        font-size: 14px;\n      }\n      .menu-enter {\n        font-size: 17px;\n      }\n    }\n    .menu-active {\n      color: #ffffff;\n      background-color: var(--el-color-primary);\n      .menu-icon {\n        font-size: 18px;\n      }\n      .menu-title {\n        font-size: 16px;\n      }\n      .menu-enter {\n        font-size: 19px;\n      }\n    }\n  }\n}\n</style>\n"
  },
  {
    "path": "src/layouts/components/Header/components/ThemeSetting.vue",
    "content": "<template>\n  <div class=\"theme-setting\">\n    <i :class=\"'iconfont icon-zhuti'\" class=\"toolBar-icon\" @click=\"openDrawer\"></i>\n  </div>\n</template>\n\n<script setup lang=\"ts\">\nimport mittBus from \"@/utils/mittBus\";\nconst openDrawer = () => {\n  mittBus.emit(\"openThemeDrawer\");\n};\n</script>\n"
  },
  {
    "path": "src/layouts/components/Main/components/Maximize.vue",
    "content": "<template>\n  <div class=\"maximize\" @click=\"exitMaximize\">\n    <i :class=\"'iconfont icon-tuichu'\"></i>\n  </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { useGlobalStore } from \"@/stores/modules/global\";\n\nconst globalStore = useGlobalStore();\nconst exitMaximize = () => {\n  globalStore.setGlobalState(\"maximize\", false);\n};\n</script>\n\n<style scoped lang=\"scss\">\n.maximize {\n  position: fixed;\n  top: -25px;\n  right: -25px;\n  z-index: 999;\n  width: 55px;\n  height: 55px;\n  cursor: pointer;\n  background-color: var(--el-color-info);\n  border-radius: 50%;\n  opacity: 0.9;\n  &:hover {\n    background-color: var(--el-color-info-dark-2);\n  }\n  .iconfont {\n    position: relative;\n    top: 46%;\n    left: 19%;\n    font-size: 14px;\n    color: #ffffff;\n  }\n}\n</style>\n"
  },
  {
    "path": "src/layouts/components/Main/index.scss",
    "content": ".el-main {\n  box-sizing: border-box;\n  padding: 10px 12px;\n  overflow-x: hidden;\n  background-color: var(--el-bg-color-page);\n}\n.el-footer {\n  height: auto;\n  padding: 0;\n}\n"
  },
  {
    "path": "src/layouts/components/Main/index.vue",
    "content": "<template>\n  <Maximize v-show=\"maximize\" />\n  <Tabs v-show=\"tabs\" />\n  <el-main>\n    <router-view v-slot=\"{ Component, route }\">\n      <transition appear name=\"fade-transform\" mode=\"out-in\">\n        <keep-alive :include=\"keepAliveName\">\n          <component :is=\"createComponentWrapper(Component, route)\" v-if=\"isRouterShow\" :key=\"route.fullPath\" />\n        </keep-alive>\n      </transition>\n    </router-view>\n  </el-main>\n  <el-footer v-show=\"footer\">\n    <Footer />\n  </el-footer>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, onBeforeUnmount, provide, watch, h } from \"vue\";\nimport { storeToRefs } from \"pinia\";\nimport { useDebounceFn } from \"@vueuse/core\";\nimport { useGlobalStore } from \"@/stores/modules/global\";\nimport { useKeepAliveStore } from \"@/stores/modules/keepAlive\";\nimport Maximize from \"./components/Maximize.vue\";\nimport Tabs from \"@/layouts/components/Tabs/index.vue\";\nimport Footer from \"@/layouts/components/Footer/index.vue\";\n\nconst globalStore = useGlobalStore();\nconst { maximize, isCollapse, layout, tabs, footer } = storeToRefs(globalStore);\n\nconst keepAliveStore = useKeepAliveStore();\nconst { keepAliveName } = storeToRefs(keepAliveStore);\n\n// 注入刷新页面方法\nconst isRouterShow = ref(true);\nconst refreshCurrentPage = (val: boolean) => (isRouterShow.value = val);\nprovide(\"refresh\", refreshCurrentPage);\n\n// 解决详情页 keep-alive 问题\nconst wrapperMap = new Map();\nfunction createComponentWrapper(component, route) {\n  if (!component) return;\n  const wrapperName = route.fullPath;\n  let wrapper = wrapperMap.get(wrapperName);\n  if (!wrapper) {\n    wrapper = { name: wrapperName, render: () => h(component) };\n    wrapperMap.set(wrapperName, wrapper);\n  }\n  return h(wrapper);\n}\n\n// 监听当前页面是否最大化，动态添加 class\nwatch(\n  () => maximize.value,\n  () => {\n    const app = document.getElementById(\"app\") as HTMLElement;\n    if (maximize.value) app.classList.add(\"main-maximize\");\n    else app.classList.remove(\"main-maximize\");\n  },\n  { immediate: true }\n);\n\n// 监听布局变化，在 body 上添加相对应的 layout class\nwatch(\n  () => layout.value,\n  () => {\n    const body = document.body as HTMLElement;\n    body.setAttribute(\"class\", layout.value);\n  },\n  { immediate: true }\n);\n\n// 监听窗口大小变化，折叠侧边栏\nconst screenWidth = ref(0);\nconst listeningWindow = useDebounceFn(() => {\n  screenWidth.value = document.body.clientWidth;\n  if (!isCollapse.value && screenWidth.value < 1200) globalStore.setGlobalState(\"isCollapse\", true);\n  if (isCollapse.value && screenWidth.value > 1200) globalStore.setGlobalState(\"isCollapse\", false);\n}, 100);\nwindow.addEventListener(\"resize\", listeningWindow, false);\nonBeforeUnmount(() => {\n  window.removeEventListener(\"resize\", listeningWindow);\n});\n</script>\n\n<style scoped lang=\"scss\">\n@import \"./index.scss\";\n</style>\n"
  },
  {
    "path": "src/layouts/components/Menu/SubMenu.vue",
    "content": "<template>\n  <template v-for=\"subItem in menuList\" :key=\"subItem.path\">\n    <el-sub-menu v-if=\"subItem.children?.length\" :index=\"subItem.path\">\n      <template #title>\n        <el-icon v-if=\"subItem.meta.icon\">\n          <component :is=\"subItem.meta.icon\"></component>\n        </el-icon>\n        <span class=\"sle\">{{ subItem.meta.title }}</span>\n      </template>\n      <SubMenu :menu-list=\"subItem.children\" />\n    </el-sub-menu>\n    <el-menu-item v-else :index=\"subItem.path\" @click=\"handleClickMenu(subItem)\">\n      <el-icon v-if=\"subItem.meta.icon\">\n        <component :is=\"subItem.meta.icon\"></component>\n      </el-icon>\n      <template #title>\n        <span class=\"sle\">{{ subItem.meta.title }}</span>\n      </template>\n    </el-menu-item>\n  </template>\n</template>\n\n<script setup lang=\"ts\">\nimport { useRouter } from \"vue-router\";\n\ndefineProps<{ menuList: Menu.MenuOptions[] }>();\n\nconst router = useRouter();\nconst handleClickMenu = (subItem: Menu.MenuOptions) => {\n  if (subItem.meta.isLink) return window.open(subItem.meta.isLink, \"_blank\");\n  router.push(subItem.path);\n};\n</script>\n\n<style lang=\"scss\">\n.el-sub-menu .el-sub-menu__title:hover {\n  color: var(--el-menu-hover-text-color) !important;\n  background-color: transparent !important;\n}\n.el-menu--collapse {\n  .is-active {\n    .el-sub-menu__title {\n      color: #ffffff !important;\n      background-color: var(--el-color-primary) !important;\n    }\n  }\n}\n.el-menu-item {\n  &:hover {\n    color: var(--el-menu-hover-text-color);\n  }\n  &.is-active {\n    color: var(--el-menu-active-color) !important;\n    background-color: var(--el-menu-active-bg-color) !important;\n    &::before {\n      position: absolute;\n      top: 0;\n      bottom: 0;\n      width: 4px;\n      content: \"\";\n      background-color: var(--el-color-primary);\n    }\n  }\n}\n.vertical,\n.classic,\n.transverse {\n  .el-menu-item {\n    &.is-active {\n      &::before {\n        left: 0;\n      }\n    }\n  }\n}\n.columns {\n  .el-menu-item {\n    &.is-active {\n      &::before {\n        right: 0;\n      }\n    }\n  }\n}\n</style>\n"
  },
  {
    "path": "src/layouts/components/Tabs/components/MoreButton.vue",
    "content": "<template>\n  <el-dropdown trigger=\"click\" :teleported=\"false\">\n    <div class=\"more-button\">\n      <i :class=\"'iconfont icon-xiala'\"></i>\n    </div>\n    <template #dropdown>\n      <el-dropdown-menu>\n        <el-dropdown-item @click=\"refresh\">\n          <el-icon><Refresh /></el-icon>{{ $t(\"tabs.refresh\") }}\n        </el-dropdown-item>\n        <el-dropdown-item @click=\"maximize\">\n          <el-icon><FullScreen /></el-icon>{{ $t(\"tabs.maximize\") }}\n        </el-dropdown-item>\n        <el-dropdown-item divided @click=\"closeCurrentTab\">\n          <el-icon><Remove /></el-icon>{{ $t(\"tabs.closeCurrent\") }}\n        </el-dropdown-item>\n        <el-dropdown-item @click=\"tabStore.closeTabsOnSide(route.fullPath, 'left')\">\n          <el-icon><DArrowLeft /></el-icon>{{ $t(\"tabs.closeLeft\") }}\n        </el-dropdown-item>\n        <el-dropdown-item @click=\"tabStore.closeTabsOnSide(route.fullPath, 'right')\">\n          <el-icon><DArrowRight /></el-icon>{{ $t(\"tabs.closeRight\") }}\n        </el-dropdown-item>\n        <el-dropdown-item divided @click=\"tabStore.closeMultipleTab(route.fullPath)\">\n          <el-icon><CircleClose /></el-icon>{{ $t(\"tabs.closeOther\") }}\n        </el-dropdown-item>\n        <el-dropdown-item @click=\"closeAllTab\">\n          <el-icon><FolderDelete /></el-icon>{{ $t(\"tabs.closeAll\") }}\n        </el-dropdown-item>\n      </el-dropdown-menu>\n    </template>\n  </el-dropdown>\n</template>\n\n<script setup lang=\"ts\">\nimport { inject, nextTick } from \"vue\";\nimport { HOME_URL } from \"@/config\";\nimport { useTabsStore } from \"@/stores/modules/tabs\";\nimport { useGlobalStore } from \"@/stores/modules/global\";\nimport { useKeepAliveStore } from \"@/stores/modules/keepAlive\";\nimport { useRoute, useRouter } from \"vue-router\";\n\nconst route = useRoute();\nconst router = useRouter();\nconst tabStore = useTabsStore();\nconst globalStore = useGlobalStore();\nconst keepAliveStore = useKeepAliveStore();\n\n// refresh current page\nconst refreshCurrentPage: Function = inject(\"refresh\") as Function;\nconst refresh = () => {\n  setTimeout(() => {\n    route.meta.isKeepAlive && keepAliveStore.removeKeepAliveName(route.fullPath as string);\n    refreshCurrentPage(false);\n    nextTick(() => {\n      route.meta.isKeepAlive && keepAliveStore.addKeepAliveName(route.fullPath as string);\n      refreshCurrentPage(true);\n    });\n  }, 0);\n};\n\n// maximize current page\nconst maximize = () => {\n  globalStore.setGlobalState(\"maximize\", true);\n};\n\n// Close Current\nconst closeCurrentTab = () => {\n  if (route.meta.isAffix) return;\n  tabStore.removeTabs(route.fullPath);\n};\n\n// Close All\nconst closeAllTab = () => {\n  tabStore.closeMultipleTab();\n  router.push(HOME_URL);\n};\n</script>\n\n<style scoped lang=\"scss\">\n@import \"../index.scss\";\n</style>\n"
  },
  {
    "path": "src/layouts/components/Tabs/index.scss",
    "content": ".tabs-box {\n  background-color: var(--el-bg-color);\n  .tabs-menu {\n    position: relative;\n    width: 100%;\n    .el-dropdown {\n      position: absolute;\n      top: 0;\n      right: 0;\n      bottom: 0;\n      .more-button {\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        width: 43px;\n        cursor: pointer;\n        border-left: 1px solid var(--el-border-color-light);\n        transition: all 0.3s;\n        &:hover {\n          background-color: var(--el-color-info-light-9);\n        }\n        .iconfont {\n          font-size: 12.5px;\n        }\n      }\n    }\n    :deep(.el-tabs) {\n      .el-tabs__header {\n        box-sizing: border-box;\n        height: 40px;\n        padding: 0 10px;\n        margin: 0;\n        .el-tabs__nav-wrap {\n          position: absolute;\n          width: calc(100% - 70px);\n          .el-tabs__nav {\n            display: flex;\n            border: none;\n            .el-tabs__item {\n              display: flex;\n              align-items: center;\n              justify-content: center;\n              color: #afafaf;\n              border: none;\n              .tabs-icon {\n                margin: 1.5px 4px 0 0;\n                font-size: 15px;\n              }\n              .is-icon-close {\n                margin-top: 1px;\n              }\n              &.is-active {\n                color: var(--el-color-primary);\n                &::before {\n                  position: absolute;\n                  bottom: 0;\n                  width: 100%;\n                  height: 0;\n                  content: \"\";\n                  border-bottom: 2px solid var(--el-color-primary) !important;\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "src/layouts/components/Tabs/index.vue",
    "content": "<template>\n  <div class=\"tabs-box\">\n    <div class=\"tabs-menu\">\n      <el-tabs v-model=\"tabsMenuValue\" type=\"card\" @tab-click=\"tabClick\" @tab-remove=\"tabRemove\">\n        <el-tab-pane v-for=\"item in tabsMenuList\" :key=\"item.path\" :label=\"item.title\" :name=\"item.path\" :closable=\"item.close\">\n          <template #label>\n            <el-icon v-if=\"item.icon && tabsIcon\" class=\"tabs-icon\">\n              <component :is=\"item.icon\"></component>\n            </el-icon>\n            {{ item.title }}\n          </template>\n        </el-tab-pane>\n      </el-tabs>\n      <MoreButton />\n    </div>\n  </div>\n</template>\n\n<script setup lang=\"ts\">\nimport Sortable from \"sortablejs\";\nimport { ref, computed, watch, onMounted } from \"vue\";\nimport { useRoute, useRouter } from \"vue-router\";\nimport { useGlobalStore } from \"@/stores/modules/global\";\nimport { useTabsStore } from \"@/stores/modules/tabs\";\nimport { useAuthStore } from \"@/stores/modules/auth\";\nimport { TabsPaneContext, TabPaneName } from \"element-plus\";\nimport MoreButton from \"./components/MoreButton.vue\";\n\nconst route = useRoute();\nconst router = useRouter();\nconst tabStore = useTabsStore();\nconst authStore = useAuthStore();\nconst globalStore = useGlobalStore();\n\nconst tabsMenuValue = ref(route.fullPath);\nconst tabsMenuList = computed(() => tabStore.tabsMenuList);\nconst tabsIcon = computed(() => globalStore.tabsIcon);\n\nonMounted(() => {\n  tabsDrop();\n  initTabs();\n});\n\n// 监听路由的变化（防止浏览器后退/前进不变化 tabsMenuValue）\nwatch(\n  () => route.fullPath,\n  () => {\n    if (route.meta.isFull) return;\n    tabsMenuValue.value = route.fullPath;\n    const tabsParams = {\n      icon: route.meta.icon as string,\n      title: route.meta.title as string,\n      path: route.fullPath,\n      name: route.name as string,\n      close: !route.meta.isAffix,\n      isKeepAlive: route.meta.isKeepAlive as boolean\n    };\n    tabStore.addTabs(tabsParams);\n  },\n  { immediate: true }\n);\n\n// 初始化需要固定的 tabs\nconst initTabs = () => {\n  authStore.flatMenuListGet.forEach(item => {\n    if (item.meta.isAffix && !item.meta.isHide && !item.meta.isFull) {\n      const tabsParams = {\n        icon: item.meta.icon,\n        title: item.meta.title,\n        path: item.path,\n        name: item.name,\n        close: !item.meta.isAffix,\n        isKeepAlive: item.meta.isKeepAlive\n      };\n      tabStore.addTabs(tabsParams);\n    }\n  });\n};\n\n// tabs 拖拽排序\nconst tabsDrop = () => {\n  Sortable.create(document.querySelector(\".el-tabs__nav\") as HTMLElement, {\n    draggable: \".el-tabs__item\",\n    animation: 300,\n    onEnd({ newIndex, oldIndex }) {\n      const tabsList = [...tabStore.tabsMenuList];\n      const currRow = tabsList.splice(oldIndex as number, 1)[0];\n      tabsList.splice(newIndex as number, 0, currRow);\n      tabStore.setTabs(tabsList);\n    }\n  });\n};\n\n// Tab Click\nconst tabClick = (tabItem: TabsPaneContext) => {\n  const fullPath = tabItem.props.name as string;\n  router.push(fullPath);\n};\n\n// Remove Tab\nconst tabRemove = (fullPath: TabPaneName) => {\n  tabStore.removeTabs(fullPath as string, fullPath == route.fullPath);\n};\n</script>\n\n<style scoped lang=\"scss\">\n@import \"./index.scss\";\n</style>\n"
  },
  {
    "path": "src/layouts/components/ThemeDrawer/index.scss",
    "content": ".divider {\n  margin-top: 15px;\n  .el-icon {\n    position: relative;\n    top: 2px;\n    right: 5px;\n    font-size: 15px;\n  }\n}\n.theme-item {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  padding: 0 5px;\n  margin: 14px 0;\n  span {\n    display: flex;\n    align-items: center;\n    font-size: 14px;\n    .el-icon {\n      margin-left: 3px;\n      font-size: 15px;\n      color: var(--el-text-color-regular);\n      cursor: pointer;\n    }\n  }\n}\n.layout-box {\n  position: relative;\n  display: flex;\n  flex-wrap: wrap;\n  justify-content: space-between;\n  padding: 15px 7px 0;\n  .layout-item {\n    position: relative;\n    box-sizing: border-box;\n    width: 100px;\n    height: 70px;\n    padding: 6px;\n    cursor: pointer;\n    border-radius: 5px;\n    box-shadow: 0 0 5px 1px var(--el-border-color-dark);\n    transition: all 0.2s;\n    .layout-dark {\n      background-color: var(--el-color-primary);\n      border-radius: 3px;\n    }\n    .layout-light {\n      background-color: var(--el-color-primary-light-5);\n      border-radius: 3px;\n    }\n    .layout-content {\n      background-color: var(--el-color-primary-light-8);\n      border: 1px dashed var(--el-color-primary);\n      border-radius: 3px;\n    }\n    .el-icon {\n      position: absolute;\n      right: 10px;\n      bottom: 10px;\n      color: var(--el-color-primary);\n      transition: all 0.2s;\n    }\n    &:hover {\n      box-shadow: 0 0 5px 1px var(--el-text-color-secondary);\n    }\n  }\n  .is-active {\n    box-shadow: 0 0 0 2px var(--el-color-primary) !important;\n  }\n  .layout-vertical {\n    display: flex;\n    justify-content: space-between;\n    margin-bottom: 20px;\n    .layout-dark {\n      width: 20%;\n    }\n    .layout-container {\n      display: flex;\n      flex-direction: column;\n      justify-content: space-between;\n      width: 72%;\n      .layout-light {\n        height: 20%;\n      }\n      .layout-content {\n        height: 67%;\n      }\n    }\n  }\n  .layout-classic {\n    display: flex;\n    flex-direction: column;\n    justify-content: space-between;\n    margin-bottom: 20px;\n    .layout-dark {\n      height: 22%;\n    }\n    .layout-container {\n      display: flex;\n      justify-content: space-between;\n      height: 70%;\n      .layout-light {\n        width: 20%;\n      }\n      .layout-content {\n        width: 70%;\n      }\n    }\n  }\n  .layout-transverse {\n    display: flex;\n    flex-direction: column;\n    justify-content: space-between;\n    margin-bottom: 15px;\n    .layout-dark {\n      height: 20%;\n    }\n    .layout-content {\n      height: 67%;\n    }\n  }\n  .layout-columns {\n    display: flex;\n    justify-content: space-between;\n    margin-bottom: 15px;\n    .layout-dark {\n      width: 14%;\n    }\n    .layout-light {\n      width: 17%;\n    }\n    .layout-content {\n      width: 55%;\n    }\n  }\n}\n"
  },
  {
    "path": "src/layouts/components/ThemeDrawer/index.vue",
    "content": "<template>\n  <el-drawer v-model=\"drawerVisible\" title=\"布局设置\" size=\"290px\">\n    <!-- 布局样式 -->\n    <el-divider class=\"divider\" content-position=\"center\">\n      <el-icon><Notification /></el-icon>\n      布局样式\n    </el-divider>\n    <div class=\"layout-box\">\n      <el-tooltip effect=\"dark\" content=\"纵向\" placement=\"top\" :show-after=\"200\">\n        <div :class=\"['layout-item layout-vertical', { 'is-active': layout == 'vertical' }]\" @click=\"setLayout('vertical')\">\n          <div class=\"layout-dark\"></div>\n          <div class=\"layout-container\">\n            <div class=\"layout-light\"></div>\n            <div class=\"layout-content\"></div>\n          </div>\n          <el-icon v-if=\"layout == 'vertical'\">\n            <CircleCheckFilled />\n          </el-icon>\n        </div>\n      </el-tooltip>\n      <el-tooltip effect=\"dark\" content=\"经典\" placement=\"top\" :show-after=\"200\">\n        <div :class=\"['layout-item layout-classic', { 'is-active': layout == 'classic' }]\" @click=\"setLayout('classic')\">\n          <div class=\"layout-dark\"></div>\n          <div class=\"layout-container\">\n            <div class=\"layout-light\"></div>\n            <div class=\"layout-content\"></div>\n          </div>\n          <el-icon v-if=\"layout == 'classic'\">\n            <CircleCheckFilled />\n          </el-icon>\n        </div>\n      </el-tooltip>\n      <el-tooltip effect=\"dark\" content=\"横向\" placement=\"top\" :show-after=\"200\">\n        <div :class=\"['layout-item layout-transverse', { 'is-active': layout == 'transverse' }]\" @click=\"setLayout('transverse')\">\n          <div class=\"layout-dark\"></div>\n          <div class=\"layout-content\"></div>\n          <el-icon v-if=\"layout == 'transverse'\">\n            <CircleCheckFilled />\n          </el-icon>\n        </div>\n      </el-tooltip>\n      <el-tooltip effect=\"dark\" content=\"分栏\" placement=\"top\" :show-after=\"200\">\n        <div :class=\"['layout-item layout-columns', { 'is-active': layout == 'columns' }]\" @click=\"setLayout('columns')\">\n          <div class=\"layout-dark\"></div>\n          <div class=\"layout-light\"></div>\n          <div class=\"layout-content\"></div>\n          <el-icon v-if=\"layout == 'columns'\">\n            <CircleCheckFilled />\n          </el-icon>\n        </div>\n      </el-tooltip>\n    </div>\n    <div class=\"theme-item\">\n      <span>\n        侧边栏反转色\n        <el-tooltip effect=\"dark\" content=\"侧边栏颜色变为深色模式\" placement=\"top\">\n          <el-icon><QuestionFilled /></el-icon>\n        </el-tooltip>\n      </span>\n      <el-switch v-model=\"asideInverted\" @change=\"setAsideTheme\" />\n    </div>\n    <div class=\"theme-item mb50\">\n      <span>\n        头部反转色\n        <el-tooltip effect=\"dark\" content=\"头部颜色变为深色模式\" placement=\"top\">\n          <el-icon><QuestionFilled /></el-icon>\n        </el-tooltip>\n      </span>\n      <el-switch v-model=\"headerInverted\" @change=\"setHeaderTheme\" />\n    </div>\n\n    <!-- 全局主题 -->\n    <el-divider class=\"divider\" content-position=\"center\">\n      <el-icon><ColdDrink /></el-icon>\n      全局主题\n    </el-divider>\n    <div class=\"theme-item\">\n      <span>主题颜色</span>\n      <el-color-picker v-model=\"primary\" :predefine=\"colorList\" @change=\"changePrimary\" />\n    </div>\n    <div class=\"theme-item\">\n      <span>暗黑模式</span>\n      <SwitchDark />\n    </div>\n    <div class=\"theme-item\">\n      <span>灰色模式</span>\n      <el-switch v-model=\"isGrey\" @change=\"changeGreyOrWeak('grey', !!$event)\" />\n    </div>\n    <div class=\"theme-item mb40\">\n      <span>色弱模式</span>\n      <el-switch v-model=\"isWeak\" @change=\"changeGreyOrWeak('weak', !!$event)\" />\n    </div>\n\n    <!-- 界面设置 -->\n    <el-divider class=\"divider\" content-position=\"center\">\n      <el-icon><Setting /></el-icon>\n      界面设置\n    </el-divider>\n    <div class=\"theme-item\">\n      <span>菜单折叠</span>\n      <el-switch v-model=\"isCollapse\" />\n    </div>\n    <div class=\"theme-item\">\n      <span>菜单手风琴</span>\n      <el-switch v-model=\"accordion\" />\n    </div>\n    <div class=\"theme-item\">\n      <span>水印</span>\n      <el-switch v-model=\"watermark\" />\n    </div>\n    <div class=\"theme-item\">\n      <span>面包屑</span>\n      <el-switch v-model=\"breadcrumb\" />\n    </div>\n    <div class=\"theme-item\">\n      <span>面包屑图标</span>\n      <el-switch v-model=\"breadcrumbIcon\" />\n    </div>\n    <div class=\"theme-item\">\n      <span>标签栏</span>\n      <el-switch v-model=\"tabs\" />\n    </div>\n    <div class=\"theme-item\">\n      <span>标签栏图标</span>\n      <el-switch v-model=\"tabsIcon\" />\n    </div>\n    <div class=\"theme-item\">\n      <span>页脚</span>\n      <el-switch v-model=\"footer\" />\n    </div>\n  </el-drawer>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref } from \"vue\";\nimport { storeToRefs } from \"pinia\";\nimport { useTheme } from \"@/hooks/useTheme\";\nimport { useGlobalStore } from \"@/stores/modules/global\";\nimport { LayoutType } from \"@/stores/interface\";\nimport { DEFAULT_PRIMARY } from \"@/config\";\nimport mittBus from \"@/utils/mittBus\";\nimport SwitchDark from \"@/components/SwitchDark/index.vue\";\n\nconst { changePrimary, changeGreyOrWeak, setAsideTheme, setHeaderTheme } = useTheme();\n\nconst globalStore = useGlobalStore();\nconst {\n  layout,\n  primary,\n  isGrey,\n  isWeak,\n  asideInverted,\n  headerInverted,\n  isCollapse,\n  accordion,\n  watermark,\n  breadcrumb,\n  breadcrumbIcon,\n  tabs,\n  tabsIcon,\n  footer\n} = storeToRefs(globalStore);\n\n// 预定义主题颜色\nconst colorList = [\n  DEFAULT_PRIMARY,\n  \"#daa96e\",\n  \"#0c819f\",\n  \"#409eff\",\n  \"#27ae60\",\n  \"#ff5c93\",\n  \"#e74c3c\",\n  \"#fd726d\",\n  \"#f39c12\",\n  \"#9b59b6\"\n];\n\n// 设置布局方式\nconst setLayout = (val: LayoutType) => {\n  globalStore.setGlobalState(\"layout\", val);\n  setAsideTheme();\n};\n\n// 打开主题设置\nconst drawerVisible = ref(false);\nmittBus.on(\"openThemeDrawer\", () => (drawerVisible.value = true));\n</script>\n\n<style scoped lang=\"scss\">\n@import \"./index.scss\";\n</style>\n"
  },
  {
    "path": "src/layouts/index.vue",
    "content": "<!-- 💥 这里是一次性加载 LayoutComponents -->\n<template>\n  <el-watermark id=\"watermark\" :font=\"font\" :content=\"watermark ? ['Geeker Admin', 'Happy Working'] : ''\">\n    <component :is=\"LayoutComponents[layout]\" />\n    <ThemeDrawer />\n  </el-watermark>\n</template>\n\n<script setup lang=\"ts\" name=\"layout\">\nimport { computed, reactive, watch, type Component } from \"vue\";\nimport { LayoutType } from \"@/stores/interface\";\nimport { useGlobalStore } from \"@/stores/modules/global\";\nimport ThemeDrawer from \"./components/ThemeDrawer/index.vue\";\nimport LayoutVertical from \"./LayoutVertical/index.vue\";\nimport LayoutClassic from \"./LayoutClassic/index.vue\";\nimport LayoutTransverse from \"./LayoutTransverse/index.vue\";\nimport LayoutColumns from \"./LayoutColumns/index.vue\";\n\nconst LayoutComponents: Record<LayoutType, Component> = {\n  vertical: LayoutVertical,\n  classic: LayoutClassic,\n  transverse: LayoutTransverse,\n  columns: LayoutColumns\n};\n\nconst globalStore = useGlobalStore();\n\nconst isDark = computed(() => globalStore.isDark);\nconst layout = computed(() => globalStore.layout);\nconst watermark = computed(() => globalStore.watermark);\n\nconst font = reactive({ color: \"rgba(0, 0, 0, .15)\" });\nwatch(isDark, () => (font.color = isDark.value ? \"rgba(255, 255, 255, .15)\" : \"rgba(0, 0, 0, .15)\"), {\n  immediate: true\n});\n</script>\n\n<style scoped lang=\"scss\">\n.layout {\n  min-width: 600px;\n}\n</style>\n"
  },
  {
    "path": "src/layouts/indexAsync.vue",
    "content": "<!-- 💥 这里是异步加载 LayoutComponents -->\n<template>\n  <el-watermark id=\"watermark\" :font=\"font\" :content=\"watermark ? ['Geeker Admin', 'Happy Working'] : ''\">\n    <suspense>\n      <template #default>\n        <component :is=\"LayoutComponents[layout]\" />\n      </template>\n      <template #fallback>\n        <Loading />\n      </template>\n    </suspense>\n    <ThemeDrawer />\n  </el-watermark>\n</template>\n\n<script setup lang=\"ts\" name=\"layoutAsync\">\nimport { computed, defineAsyncComponent, reactive, watch, type Component } from \"vue\";\nimport { LayoutType } from \"@/stores/interface\";\nimport { useGlobalStore } from \"@/stores/modules/global\";\nimport Loading from \"@/components/Loading/index.vue\";\nimport ThemeDrawer from \"./components/ThemeDrawer/index.vue\";\n\nconst LayoutComponents: Record<LayoutType, Component> = {\n  vertical: defineAsyncComponent(() => import(\"./LayoutVertical/index.vue\")),\n  classic: defineAsyncComponent(() => import(\"./LayoutClassic/index.vue\")),\n  transverse: defineAsyncComponent(() => import(\"./LayoutTransverse/index.vue\")),\n  columns: defineAsyncComponent(() => import(\"./LayoutColumns/index.vue\"))\n};\n\nconst globalStore = useGlobalStore();\n\nconst isDark = computed(() => globalStore.isDark);\nconst layout = computed(() => globalStore.layout);\nconst watermark = computed(() => globalStore.watermark);\n\nconst font = reactive({ color: \"rgba(0, 0, 0, .15)\" });\nwatch(isDark, () => (font.color = isDark.value ? \"rgba(255, 255, 255, .15)\" : \"rgba(0, 0, 0, .15)\"), {\n  immediate: true\n});\n</script>\n\n<style scoped lang=\"scss\">\n.layout {\n  min-width: 600px;\n}\n</style>\n"
  },
  {
    "path": "src/main.ts",
    "content": "import { createApp } from \"vue\";\nimport App from \"./App.vue\";\n// reset style sheet\nimport \"@/styles/reset.scss\";\n// CSS common style sheet\nimport \"@/styles/common.scss\";\n// iconfont css\nimport \"@/assets/iconfont/iconfont.scss\";\n// font css\nimport \"@/assets/fonts/font.scss\";\n// element css\nimport \"element-plus/dist/index.css\";\n// element dark css\nimport \"element-plus/theme-chalk/dark/css-vars.css\";\n// custom element dark css\nimport \"@/styles/element-dark.scss\";\n// custom element css\nimport \"@/styles/element.scss\";\n// svg icons\nimport \"virtual:svg-icons-register\";\n// element plus\nimport ElementPlus from \"element-plus\";\n// element icons\nimport * as Icons from \"@element-plus/icons-vue\";\n// custom directives\nimport directives from \"@/directives/index\";\n// vue Router\nimport router from \"@/routers\";\n// vue i18n\nimport I18n from \"@/languages/index\";\n// pinia store\nimport pinia from \"@/stores\";\n// errorHandler\nimport errorHandler from \"@/utils/errorHandler\";\n\nconst app = createApp(App);\n\napp.config.errorHandler = errorHandler;\n\n// register the element Icons component\nObject.keys(Icons).forEach(key => {\n  app.component(key, Icons[key as keyof typeof Icons]);\n});\n\napp.use(ElementPlus).use(directives).use(router).use(I18n).use(pinia).mount(\"#app\");\n"
  },
  {
    "path": "src/routers/index.ts",
    "content": "import { createRouter, createWebHashHistory, createWebHistory } from \"vue-router\";\nimport { useUserStore } from \"@/stores/modules/user\";\nimport { useAuthStore } from \"@/stores/modules/auth\";\nimport { LOGIN_URL, ROUTER_WHITE_LIST } from \"@/config\";\nimport { initDynamicRouter } from \"@/routers/modules/dynamicRouter\";\nimport { staticRouter, errorRouter } from \"@/routers/modules/staticRouter\";\nimport NProgress from \"@/config/nprogress\";\n\nconst mode = import.meta.env.VITE_ROUTER_MODE;\n\nconst routerMode = {\n  hash: () => createWebHashHistory(),\n  history: () => createWebHistory()\n};\n\n/**\n * @description 📚 路由参数配置简介\n * @param path ==> 路由菜单访问路径\n * @param name ==> 路由 name (对应页面组件 name, 可用作 KeepAlive 缓存标识 && 按钮权限筛选)\n * @param redirect ==> 路由重定向地址\n * @param component ==> 视图文件路径\n * @param meta ==> 路由菜单元信息\n * @param meta.icon ==> 菜单和面包屑对应的图标\n * @param meta.title ==> 路由标题 (用作 document.title || 菜单的名称)\n * @param meta.activeMenu ==> 当前路由为详情页时，需要高亮的菜单\n * @param meta.isLink ==> 路由外链时填写的访问地址\n * @param meta.isHide ==> 是否在菜单中隐藏 (通常列表详情页需要隐藏)\n * @param meta.isFull ==> 菜单是否全屏 (示例：数据大屏页面)\n * @param meta.isAffix ==> 菜单是否固定在标签页中 (首页通常是固定项)\n * @param meta.isKeepAlive ==> 当前路由是否缓存\n * */\nconst router = createRouter({\n  history: routerMode[mode](),\n  routes: [...staticRouter, ...errorRouter],\n  strict: false,\n  scrollBehavior: () => ({ left: 0, top: 0 })\n});\n\n/**\n * @description 路由拦截 beforeEach\n * */\nrouter.beforeEach(async (to, from, next) => {\n  const userStore = useUserStore();\n  const authStore = useAuthStore();\n\n  // 1.NProgress 开始\n  NProgress.start();\n\n  // 2.动态设置标题\n  const title = import.meta.env.VITE_GLOB_APP_TITLE;\n  document.title = to.meta.title ? `${to.meta.title} - ${title}` : title;\n\n  // 3.判断是访问登陆页，有 Token 就在当前页面，没有 Token 重置路由到登陆页\n  if (to.path.toLocaleLowerCase() === LOGIN_URL) {\n    if (userStore.token) return next(from.fullPath);\n    resetRouter();\n    return next();\n  }\n\n  // 4.判断访问页面是否在路由白名单地址(静态路由)中，如果存在直接放行\n  if (ROUTER_WHITE_LIST.includes(to.path)) return next();\n\n  // 5.判断是否有 Token，没有重定向到 login 页面\n  if (!userStore.token) return next({ path: LOGIN_URL, replace: true });\n\n  // 6.如果没有菜单列表，就重新请求菜单列表并添加动态路由\n  if (!authStore.authMenuListGet.length) {\n    await initDynamicRouter();\n    return next({ ...to, replace: true });\n  }\n\n  // 7.存储 routerName 做按钮权限筛选\n  authStore.setRouteName(to.name as string);\n\n  // 8.正常访问页面\n  next();\n});\n\n/**\n * @description 重置路由\n * */\nexport const resetRouter = () => {\n  const authStore = useAuthStore();\n  authStore.flatMenuListGet.forEach(route => {\n    const { name } = route;\n    if (name && router.hasRoute(name)) router.removeRoute(name);\n  });\n};\n\n/**\n * @description 路由跳转错误\n * */\nrouter.onError(error => {\n  NProgress.done();\n  console.warn(\"路由错误\", error.message);\n});\n\n/**\n * @description 路由跳转结束\n * */\nrouter.afterEach(() => {\n  NProgress.done();\n});\n\nexport default router;\n"
  },
  {
    "path": "src/routers/modules/dynamicRouter.ts",
    "content": "import router from \"@/routers/index\";\nimport { LOGIN_URL } from \"@/config\";\nimport { RouteRecordRaw } from \"vue-router\";\nimport { ElNotification } from \"element-plus\";\nimport { useUserStore } from \"@/stores/modules/user\";\nimport { useAuthStore } from \"@/stores/modules/auth\";\n\n// 引入 views 文件夹下所有 vue 文件\nconst modules = import.meta.glob(\"@/views/**/*.vue\");\n\n/**\n * @description 初始化动态路由\n */\nexport const initDynamicRouter = async () => {\n  const userStore = useUserStore();\n  const authStore = useAuthStore();\n\n  try {\n    // 1.获取菜单列表 && 按钮权限列表\n    await authStore.getAuthMenuList();\n    await authStore.getAuthButtonList();\n\n    // 2.判断当前用户有没有菜单权限\n    if (!authStore.authMenuListGet.length) {\n      ElNotification({\n        title: \"无权限访问\",\n        message: \"当前账号无任何菜单权限，请联系系统管理员！\",\n        type: \"warning\",\n        duration: 3000\n      });\n      userStore.setToken(\"\");\n      router.replace(LOGIN_URL);\n      return Promise.reject(\"No permission\");\n    }\n\n    // 3.添加动态路由\n    authStore.flatMenuListGet.forEach(item => {\n      item.children && delete item.children;\n      if (item.component && typeof item.component == \"string\") {\n        item.component = modules[\"/src/views\" + item.component + \".vue\"];\n      }\n      if (item.meta.isFull) {\n        router.addRoute(item as unknown as RouteRecordRaw);\n      } else {\n        router.addRoute(\"layout\", item as unknown as RouteRecordRaw);\n      }\n    });\n  } catch (error) {\n    // 当按钮 || 菜单请求出错时，重定向到登陆页\n    userStore.setToken(\"\");\n    router.replace(LOGIN_URL);\n    return Promise.reject(error);\n  }\n};\n"
  },
  {
    "path": "src/routers/modules/staticRouter.ts",
    "content": "import { RouteRecordRaw } from \"vue-router\";\nimport { HOME_URL, LOGIN_URL } from \"@/config\";\n\n/**\n * staticRouter (静态路由)\n */\nexport const staticRouter: RouteRecordRaw[] = [\n  {\n    path: \"/\",\n    redirect: HOME_URL\n  },\n  {\n    path: LOGIN_URL,\n    name: \"login\",\n    component: () => import(\"@/views/login/index.vue\"),\n    meta: {\n      title: \"登录\"\n    }\n  },\n  {\n    path: \"/layout\",\n    name: \"layout\",\n    component: () => import(\"@/layouts/index.vue\"),\n    // component: () => import(\"@/layouts/indexAsync.vue\"),\n    redirect: HOME_URL,\n    children: []\n  }\n];\n\n/**\n * errorRouter (错误页面路由)\n */\nexport const errorRouter = [\n  {\n    path: \"/403\",\n    name: \"403\",\n    component: () => import(\"@/components/ErrorMessage/403.vue\"),\n    meta: {\n      title: \"403页面\"\n    }\n  },\n  {\n    path: \"/404\",\n    name: \"404\",\n    component: () => import(\"@/components/ErrorMessage/404.vue\"),\n    meta: {\n      title: \"404页面\"\n    }\n  },\n  {\n    path: \"/500\",\n    name: \"500\",\n    component: () => import(\"@/components/ErrorMessage/500.vue\"),\n    meta: {\n      title: \"500页面\"\n    }\n  },\n  // Resolve refresh page, route warnings\n  {\n    path: \"/:pathMatch(.*)*\",\n    component: () => import(\"@/components/ErrorMessage/404.vue\")\n  }\n];\n"
  },
  {
    "path": "src/stores/helper/persist.ts",
    "content": "import { PersistedStateOptions } from \"pinia-plugin-persistedstate\";\n\n/**\n * @description pinia 持久化参数配置\n * @param {String} key 存储到持久化的 name\n * @param {Array} paths 需要持久化的 state name\n * @return persist\n * */\nconst piniaPersistConfig = (key: string, paths?: string[]) => {\n  const persist: PersistedStateOptions = {\n    key,\n    storage: localStorage,\n    // storage: sessionStorage,\n    paths\n  };\n  return persist;\n};\n\nexport default piniaPersistConfig;\n"
  },
  {
    "path": "src/stores/index.ts",
    "content": "import { createPinia } from \"pinia\";\nimport piniaPluginPersistedstate from \"pinia-plugin-persistedstate\";\n\n// pinia persist\nconst pinia = createPinia();\npinia.use(piniaPluginPersistedstate);\n\nexport default pinia;\n"
  },
  {
    "path": "src/stores/interface/index.ts",
    "content": "export type LayoutType = \"vertical\" | \"classic\" | \"transverse\" | \"columns\";\n\nexport type AssemblySizeType = \"large\" | \"default\" | \"small\";\n\nexport type LanguageType = \"zh\" | \"en\" | null;\n\n/* GlobalState */\nexport interface GlobalState {\n  layout: LayoutType;\n  assemblySize: AssemblySizeType;\n  language: LanguageType;\n  maximize: boolean;\n  primary: string;\n  isDark: boolean;\n  isGrey: boolean;\n  isWeak: boolean;\n  asideInverted: boolean;\n  headerInverted: boolean;\n  isCollapse: boolean;\n  accordion: boolean;\n  watermark: boolean;\n  breadcrumb: boolean;\n  breadcrumbIcon: boolean;\n  tabs: boolean;\n  tabsIcon: boolean;\n  footer: boolean;\n}\n\n/* UserState */\nexport interface UserState {\n  token: string;\n  userInfo: { name: string };\n}\n\n/* tabsMenuProps */\nexport interface TabsMenuProps {\n  icon: string;\n  title: string;\n  path: string;\n  name: string;\n  close: boolean;\n  isKeepAlive: boolean;\n}\n\n/* TabsState */\nexport interface TabsState {\n  tabsMenuList: TabsMenuProps[];\n}\n\n/* AuthState */\nexport interface AuthState {\n  routeName: string;\n  authButtonList: {\n    [key: string]: string[];\n  };\n  authMenuList: Menu.MenuOptions[];\n}\n\n/* KeepAliveState */\nexport interface KeepAliveState {\n  keepAliveName: string[];\n}\n"
  },
  {
    "path": "src/stores/modules/auth.ts",
    "content": "import { defineStore } from \"pinia\";\nimport { AuthState } from \"@/stores/interface\";\nimport { getAuthButtonListApi, getAuthMenuListApi } from \"@/api/modules/login\";\nimport { getFlatMenuList, getShowMenuList, getAllBreadcrumbList } from \"@/utils\";\n\nexport const useAuthStore = defineStore({\n  id: \"geeker-auth\",\n  state: (): AuthState => ({\n    // 按钮权限列表\n    authButtonList: {},\n    // 菜单权限列表\n    authMenuList: [],\n    // 当前页面的 router name，用来做按钮权限筛选\n    routeName: \"\"\n  }),\n  getters: {\n    // 按钮权限列表\n    authButtonListGet: state => state.authButtonList,\n    // 菜单权限列表 ==> 这里的菜单没有经过任何处理\n    authMenuListGet: state => state.authMenuList,\n    // 菜单权限列表 ==> 左侧菜单栏渲染，需要剔除 isHide == true\n    showMenuListGet: state => getShowMenuList(state.authMenuList),\n    // 菜单权限列表 ==> 扁平化之后的一维数组菜单，主要用来添加动态路由\n    flatMenuListGet: state => getFlatMenuList(state.authMenuList),\n    // 递归处理后的所有面包屑导航列表\n    breadcrumbListGet: state => getAllBreadcrumbList(state.authMenuList)\n  },\n  actions: {\n    // Get AuthButtonList\n    async getAuthButtonList() {\n      const { data } = await getAuthButtonListApi();\n      this.authButtonList = data;\n    },\n    // Get AuthMenuList\n    async getAuthMenuList() {\n      const { data } = await getAuthMenuListApi();\n      this.authMenuList = data;\n    },\n    // Set RouteName\n    async setRouteName(name: string) {\n      this.routeName = name;\n    }\n  }\n});\n"
  },
  {
    "path": "src/stores/modules/global.ts",
    "content": "import { defineStore } from \"pinia\";\nimport { GlobalState } from \"@/stores/interface\";\nimport { DEFAULT_PRIMARY } from \"@/config\";\nimport piniaPersistConfig from \"@/stores/helper/persist\";\n\nexport const useGlobalStore = defineStore({\n  id: \"geeker-global\",\n  // 修改默认值之后，需清除 localStorage 数据\n  state: (): GlobalState => ({\n    // 布局模式 (纵向：vertical | 经典：classic | 横向：transverse | 分栏：columns)\n    layout: \"vertical\",\n    // element 组件大小\n    assemblySize: \"default\",\n    // 当前系统语言\n    language: null,\n    // 当前页面是否全屏\n    maximize: false,\n    // 主题颜色\n    primary: DEFAULT_PRIMARY,\n    // 深色模式\n    isDark: false,\n    // 灰色模式\n    isGrey: false,\n    // 色弱模式\n    isWeak: false,\n    // 侧边栏反转\n    asideInverted: false,\n    // 头部反转\n    headerInverted: false,\n    // 折叠菜单\n    isCollapse: false,\n    // 菜单手风琴\n    accordion: true,\n    // 页面水印\n    watermark: false,\n    // 面包屑导航\n    breadcrumb: true,\n    // 面包屑导航图标\n    breadcrumbIcon: true,\n    // 标签页\n    tabs: true,\n    // 标签页图标\n    tabsIcon: true,\n    // 页脚\n    footer: true\n  }),\n  getters: {},\n  actions: {\n    // Set GlobalState\n    setGlobalState(...args: ObjToKeyValArray<GlobalState>) {\n      this.$patch({ [args[0]]: args[1] });\n    }\n  },\n  persist: piniaPersistConfig(\"geeker-global\")\n});\n"
  },
  {
    "path": "src/stores/modules/keepAlive.ts",
    "content": "import { defineStore } from \"pinia\";\nimport { KeepAliveState } from \"@/stores/interface\";\n\nexport const useKeepAliveStore = defineStore({\n  id: \"geeker-keepAlive\",\n  state: (): KeepAliveState => ({\n    keepAliveName: []\n  }),\n  actions: {\n    // Add KeepAliveName\n    async addKeepAliveName(name: string) {\n      !this.keepAliveName.includes(name) && this.keepAliveName.push(name);\n    },\n    // Remove KeepAliveName\n    async removeKeepAliveName(name: string) {\n      this.keepAliveName = this.keepAliveName.filter(item => item !== name);\n    },\n    // Set KeepAliveName\n    async setKeepAliveName(keepAliveName: string[] = []) {\n      this.keepAliveName = keepAliveName;\n    }\n  }\n});\n"
  },
  {
    "path": "src/stores/modules/tabs.ts",
    "content": "import router from \"@/routers\";\nimport { defineStore } from \"pinia\";\nimport { getUrlWithParams } from \"@/utils\";\nimport { useKeepAliveStore } from \"./keepAlive\";\nimport { TabsState, TabsMenuProps } from \"@/stores/interface\";\nimport piniaPersistConfig from \"@/stores/helper/persist\";\n\nconst keepAliveStore = useKeepAliveStore();\n\nexport const useTabsStore = defineStore({\n  id: \"geeker-tabs\",\n  state: (): TabsState => ({\n    tabsMenuList: []\n  }),\n  actions: {\n    // Add Tabs\n    async addTabs(tabItem: TabsMenuProps) {\n      if (this.tabsMenuList.every(item => item.path !== tabItem.path)) {\n        this.tabsMenuList.push(tabItem);\n      }\n      // add keepalive\n      if (!keepAliveStore.keepAliveName.includes(tabItem.name) && tabItem.isKeepAlive) {\n        keepAliveStore.addKeepAliveName(tabItem.path);\n      }\n    },\n    // Remove Tabs\n    async removeTabs(tabPath: string, isCurrent: boolean = true) {\n      if (isCurrent) {\n        this.tabsMenuList.forEach((item, index) => {\n          if (item.path !== tabPath) return;\n          const nextTab = this.tabsMenuList[index + 1] || this.tabsMenuList[index - 1];\n          if (!nextTab) return;\n          router.push(nextTab.path);\n        });\n      }\n      // remove keepalive\n      const tabItem = this.tabsMenuList.find(item => item.path === tabPath);\n      tabItem?.isKeepAlive && keepAliveStore.removeKeepAliveName(tabItem.path);\n      // set tabs\n      this.tabsMenuList = this.tabsMenuList.filter(item => item.path !== tabPath);\n    },\n    // Close Tabs On Side\n    async closeTabsOnSide(path: string, type: \"left\" | \"right\") {\n      const currentIndex = this.tabsMenuList.findIndex(item => item.path === path);\n      if (currentIndex !== -1) {\n        const range = type === \"left\" ? [0, currentIndex] : [currentIndex + 1, this.tabsMenuList.length];\n        this.tabsMenuList = this.tabsMenuList.filter((item, index) => {\n          return index < range[0] || index >= range[1] || !item.close;\n        });\n      }\n      // set keepalive\n      const KeepAliveList = this.tabsMenuList.filter(item => item.isKeepAlive);\n      keepAliveStore.setKeepAliveName(KeepAliveList.map(item => item.path));\n    },\n    // Close MultipleTab\n    async closeMultipleTab(tabsMenuValue?: string) {\n      this.tabsMenuList = this.tabsMenuList.filter(item => {\n        return item.path === tabsMenuValue || !item.close;\n      });\n      // set keepalive\n      const KeepAliveList = this.tabsMenuList.filter(item => item.isKeepAlive);\n      keepAliveStore.setKeepAliveName(KeepAliveList.map(item => item.path));\n    },\n    // Set Tabs\n    async setTabs(tabsMenuList: TabsMenuProps[]) {\n      this.tabsMenuList = tabsMenuList;\n    },\n    // Set Tabs Title\n    async setTabsTitle(title: string) {\n      this.tabsMenuList.forEach(item => {\n        if (item.path == getUrlWithParams()) item.title = title;\n      });\n    }\n  },\n  persist: piniaPersistConfig(\"geeker-tabs\")\n});\n"
  },
  {
    "path": "src/stores/modules/user.ts",
    "content": "import { defineStore } from \"pinia\";\nimport { UserState } from \"@/stores/interface\";\nimport piniaPersistConfig from \"@/stores/helper/persist\";\n\nexport const useUserStore = defineStore({\n  id: \"geeker-user\",\n  state: (): UserState => ({\n    token: \"\",\n    userInfo: { name: \"Geeker\" }\n  }),\n  getters: {},\n  actions: {\n    // Set Token\n    setToken(token: string) {\n      this.token = token;\n    },\n    // Set setUserInfo\n    setUserInfo(userInfo: UserState[\"userInfo\"]) {\n      this.userInfo = userInfo;\n    }\n  },\n  persist: piniaPersistConfig(\"geeker-user\")\n});\n"
  },
  {
    "path": "src/styles/common.scss",
    "content": "/* flex */\n.flx-center {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n}\n.flx-justify-between {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n}\n.flx-align-center {\n  display: flex;\n  align-items: center;\n}\n\n/* clearfix */\n.clearfix::after {\n  display: block;\n  height: 0;\n  overflow: hidden;\n  clear: both;\n  content: \"\";\n}\n\n/* 文字单行省略号 */\n.sle {\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n\n/* 文字多行省略号 */\n.mle {\n  display: -webkit-box;\n  overflow: hidden;\n  -webkit-box-orient: vertical;\n  -webkit-line-clamp: 2;\n}\n\n/* 文字多了自动換行 */\n.break-word {\n  word-break: break-all;\n  word-wrap: break-word;\n}\n\n/* fade-transform */\n.fade-transform-leave-active,\n.fade-transform-enter-active {\n  transition: all 0.2s;\n}\n.fade-transform-enter-from {\n  opacity: 0;\n  transition: all 0.2s;\n  transform: translateX(-30px);\n}\n.fade-transform-leave-to {\n  opacity: 0;\n  transition: all 0.2s;\n  transform: translateX(30px);\n}\n\n/* breadcrumb-transform */\n.breadcrumb-enter-active {\n  transition: all 0.2s;\n}\n.breadcrumb-enter-from,\n.breadcrumb-leave-active {\n  opacity: 0;\n  transform: translateX(10px);\n}\n\n/* scroll bar */\n::-webkit-scrollbar {\n  width: 6px;\n  height: 6px;\n}\n::-webkit-scrollbar-thumb {\n  background-color: var(--el-border-color-darker);\n  border-radius: 20px;\n}\n\n/* nprogress */\n#nprogress .bar {\n  background: var(--el-color-primary) !important;\n}\n#nprogress .spinner-icon {\n  border-top-color: var(--el-color-primary) !important;\n  border-left-color: var(--el-color-primary) !important;\n}\n#nprogress .peg {\n  box-shadow:\n    0 0 10px var(--el-color-primary),\n    0 0 5px var(--el-color-primary) !important;\n}\n\n/* 外边距、内边距全局样式 */\n@for $i from 0 through 100 {\n  .mt#{$i} {\n    margin-top: #{$i}px !important;\n  }\n  .mr#{$i} {\n    margin-right: #{$i}px !important;\n  }\n  .mb#{$i} {\n    margin-bottom: #{$i}px !important;\n  }\n  .ml#{$i} {\n    margin-left: #{$i}px !important;\n  }\n  .pt#{$i} {\n    padding-top: #{$i}px !important;\n  }\n  .pr#{$i} {\n    padding-right: #{$i}px !important;\n  }\n  .pb#{$i} {\n    padding-bottom: #{$i}px !important;\n  }\n  .pl#{$i} {\n    padding-left: #{$i}px !important;\n  }\n}\n"
  },
  {
    "path": "src/styles/element-dark.scss",
    "content": "/* 自定义 element 暗黑模式 */\nhtml.dark {\n  /* wangEditor */\n  --w-e-toolbar-color: #eeeeee;\n  --w-e-toolbar-bg-color: #141414;\n  --w-e-textarea-bg-color: #141414;\n  --w-e-textarea-color: #eeeeee;\n  --w-e-toolbar-active-bg-color: #464646;\n  --w-e-toolbar-border-color: var(--el-border-color-darker);\n  .w-e-bar-item button:hover,\n  .w-e-menu-tooltip-v5::before {\n    color: #eeeeee;\n  }\n\n  /* login */\n  .login-container {\n    background-color: #191919 !important;\n    .login-box {\n      background-color: rgb(0 0 0 / 80%) !important;\n      .login-form {\n        box-shadow: rgb(255 255 255 / 12%) 0 2px 10px 2px !important;\n        .logo-text {\n          color: var(--el-text-color-primary) !important;\n        }\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "src/styles/element.scss",
    "content": "/* el-alert */\n.el-alert {\n  border: 1px solid;\n}\n\n/* 当前页面最大化 css */\n.main-maximize {\n  .aside-split,\n  .el-aside,\n  .el-header,\n  .el-footer,\n  .tabs-box {\n    display: none !important;\n  }\n}\n\n/* mask image */\n.mask-image {\n  padding-right: 50px;\n  mask-image: linear-gradient(90deg, #000000 0%, #000000 calc(100% - 50px), transparent);\n}\n\n/* custom card */\n.card {\n  box-sizing: border-box;\n  padding: 20px;\n  overflow-x: hidden;\n  background-color: var(--el-bg-color);\n  border: 1px solid var(--el-border-color-light);\n  border-radius: 6px;\n  box-shadow: 0 0 12px rgb(0 0 0 / 5%);\n}\n\n/* ProTable 不需要 card 样式（在组件内使用 ProTable 会使用到） */\n.no-card {\n  .card {\n    padding: 0;\n    background-color: transparent;\n    border: none;\n    border-radius: 0;\n    box-shadow: none;\n  }\n  .table-search {\n    padding: 18px 0 0 !important;\n    margin-bottom: 0 !important;\n  }\n}\n\n/* content-box (常用内容盒子) */\n.content-box {\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  height: 100%;\n  .text {\n    margin: 20px 0 30px;\n    font-size: 23px;\n    font-weight: bold;\n    color: var(--el-text-color-regular);\n  }\n  .el-descriptions {\n    width: 100%;\n    padding: 40px 0 0;\n    .el-descriptions__title {\n      font-size: 18px;\n    }\n    .el-descriptions__label {\n      width: 200px;\n    }\n  }\n}\n\n/* main-box (树形表格 treeFilter 页面会使用，左右布局 flex) */\n.main-box {\n  display: flex;\n  width: 100%;\n  height: 100%;\n  .table-box {\n    overflow: hidden;\n  }\n}\n\n/* proTable */\n.table-box,\n.table-main {\n  display: flex;\n  flex: 1;\n  flex-direction: column;\n  width: 100%;\n  height: 100%;\n\n  // table-search 表格搜索样式\n  .table-search {\n    padding: 18px 18px 0;\n    margin-bottom: 10px;\n    .el-form {\n      .el-form-item__content > * {\n        width: 100%;\n      }\n\n      // 去除时间选择器上下 padding\n      .el-range-editor.el-input__wrapper {\n        padding: 0 10px;\n      }\n    }\n    .operation {\n      display: flex;\n      align-items: center;\n      justify-content: flex-end;\n      margin-bottom: 18px;\n    }\n  }\n\n  // 表格 header 样式\n  .table-header {\n    .header-button-lf,\n    .header-button-ri {\n      display: flex;\n      flex-wrap: wrap;\n      gap: 15px 12px;\n      margin-bottom: 15px;\n      .el-button:not(.el-input .el-button) {\n        margin-left: 0;\n      }\n    }\n    .header-button-lf {\n      float: left;\n    }\n    .header-button-ri {\n      float: right;\n    }\n  }\n\n  // el-table 表格样式\n  .el-table {\n    flex: 1;\n\n    // 修复 safari 浏览器表格错位 https://github.com/HalseySpicy/Geeker-Admin/issues/83\n    table {\n      width: 100%;\n    }\n    .el-table__header th {\n      height: 45px;\n      font-size: 15px;\n      font-weight: bold;\n      color: var(--el-text-color-primary);\n      background: var(--el-fill-color-light);\n    }\n    .el-table__row {\n      height: 45px;\n      font-size: 14px;\n      .move {\n        cursor: move;\n        .el-icon {\n          cursor: move;\n        }\n      }\n    }\n\n    // 设置 el-table 中 header 文字不换行，并省略\n    .el-table__header .el-table__cell > .cell {\n      // white-space: nowrap;\n      white-space: wrap;\n    }\n\n    // 解决表格数据为空时样式不居中问题(仅在element-plus中)\n    .el-table__empty-block {\n      position: absolute;\n      .table-empty {\n        line-height: 30px;\n        img {\n          display: inline-flex;\n        }\n      }\n    }\n\n    // table 中 image 图片样式\n    .table-image {\n      width: 50px;\n      height: 50px;\n      border-radius: 50%;\n    }\n  }\n\n  // 表格 pagination 样式\n  .el-pagination {\n    display: flex;\n    justify-content: flex-end;\n    margin-top: 20px;\n  }\n}\n\n/* el-table 组件大小 */\n.el-table--small {\n  .el-table__header th {\n    height: 40px !important;\n    font-size: 14px !important;\n  }\n  .el-table__row {\n    height: 40px !important;\n    font-size: 13px !important;\n  }\n}\n.el-table--large {\n  .el-table__header th {\n    height: 50px !important;\n    font-size: 16px !important;\n  }\n  .el-table__row {\n    height: 50px !important;\n    font-size: 15px !important;\n  }\n}\n\n/* el-drawer */\n.el-drawer {\n  .el-drawer__header {\n    padding: 16px 20px;\n    margin-bottom: 0;\n    border-bottom: 1px solid var(--el-border-color-lighter);\n    span {\n      font-size: 17px;\n      line-height: 17px;\n      color: var(--el-text-color-primary) !important;\n    }\n  }\n  .el-drawer__footer {\n    border-top: 1px solid var(--el-border-color-lighter);\n  }\n\n  // select 样式\n  .el-select {\n    width: 100%;\n  }\n\n  // drawer-form 中存在两列 form-item 样式\n  .drawer-multiColumn-form {\n    display: flex;\n    flex-wrap: wrap;\n    .el-form-item {\n      width: 47%;\n      &:nth-child(2n-1) {\n        margin-right: 5%;\n      }\n    }\n  }\n}\n\n/* el-dialog */\n.el-dialog {\n  padding: 0;\n  .el-dialog__header {\n    padding: 15px 20px;\n    margin: 0;\n    border-bottom: 1px solid var(--el-border-color-lighter);\n    .el-dialog__title {\n      font-size: 17px;\n    }\n  }\n  .el-dialog__body,\n  .el-dialog__footer {\n    padding: 15px 20px;\n  }\n}\n"
  },
  {
    "path": "src/styles/reset.scss",
    "content": "/* Reset style sheet */\n\n/* 目前项目中使用富文本编辑器需要注释，如果你项目中没有使用富文本编辑器，可以取消注释 */\n// html,\n// body,\n// div,\n// span,\n// applet,\n// object,\n// iframe,\n// h1,\n// h2,\n// h3,\n// h4,\n// h5,\n// h6,\n// p,\n// blockquote,\n// pre,\n// a,\n// abbr,\n// acronym,\n// address,\n// big,\n// cite,\n// code,\n// del,\n// dfn,\n// em,\n// img,\n// ins,\n// kbd,\n// q,\n// s,\n// samp,\n// small,\n// strike,\n// strong,\n// sub,\n// sup,\n// tt,\n// var,\n// b,\n// u,\n// i,\n// center,\n// dl,\n// dt,\n// dd,\n// ol,\n// ul,\n// li,\n// fieldset,\n// form,\n// label,\n// legend,\n// table,\n// caption,\n// tbody,\n// tfoot,\n// thead,\n// tr,\n// th,\n// td,\n// article,\n// aside,\n// canvas,\n// details,\n// embed,\n// figure,\n// figcaption,\n// footer,\n// header,\n// hgroup,\n// menu,\n// nav,\n// output,\n// ruby,\n// section,\n// summary,\n// time,\n// mark,\n// audio,\n// video {\n// \tpadding: 0;\n// \tmargin: 0;\n// \tfont: inherit;\n// \tfont-size: 100%;\n// \tvertical-align: baseline;\n// \tborder: 0;\n// }\n\n// /* HTML5 display-role reset for older browsers */\n// article,\n// aside,\n// details,\n// figcaption,\n// figure,\n// footer,\n// header,\n// hgroup,\n// menu,\n// nav,\n// section {\n// \tdisplay: block;\n// }\n// body {\n// \tpadding: 0;\n// \tmargin: 0;\n// }\n// ol,\n// ul {\n// \tlist-style: none;\n// }\n// blockquote,\n// q {\n// \tquotes: none;\n// }\n// blockquote::before,\n// blockquote::after,\n// q::before,\n// q::after {\n// \tcontent: \"\";\n// \tcontent: none;\n// }\n// table {\n// \tborder-spacing: 0;\n// \tborder-collapse: collapse;\n// }\nhtml,\nbody,\n#app,\n#watermark {\n  width: 100%;\n  height: 100%;\n  padding: 0;\n  margin: 0;\n}\n\n/* 解决 h1 标签在 webkit 内核浏览器中文字大小失效问题 */\n:-webkit-any(article, aside, nav, section) h1 {\n  font-size: 2em;\n}\n"
  },
  {
    "path": "src/styles/theme/aside.ts",
    "content": "import { Theme } from \"@/hooks/interface\";\n\nexport const asideTheme: Record<Theme.ThemeType, { [key: string]: string }> = {\n  light: {\n    \"--el-aside-logo-text-color\": \"#303133\",\n    \"--el-aside-border-color\": \"#e4e7ed\"\n  },\n  inverted: {\n    \"--el-aside-logo-text-color\": \"#dadada\",\n    \"--el-aside-border-color\": \"#414243\"\n  },\n  dark: {\n    \"--el-aside-logo-text-color\": \"#dadada\",\n    \"--el-aside-border-color\": \"#414243\"\n  }\n};\n"
  },
  {
    "path": "src/styles/theme/header.ts",
    "content": "import { Theme } from \"@/hooks/interface\";\n\nexport const headerTheme: Record<Theme.ThemeType, { [key: string]: string }> = {\n  light: {\n    \"--el-header-logo-text-color\": \"#303133\",\n    \"--el-header-bg-color\": \"#ffffff\",\n    \"--el-header-text-color\": \"#303133\",\n    \"--el-header-text-color-regular\": \"#606266\",\n    \"--el-header-border-color\": \"#e4e7ed\"\n  },\n  inverted: {\n    \"--el-header-logo-text-color\": \"#dadada\",\n    \"--el-header-bg-color\": \"#191a20\",\n    \"--el-header-text-color\": \"#e5eaf3\",\n    \"--el-header-text-color-regular\": \"#cfd3dc\",\n    \"--el-header-border-color\": \"#414243\"\n  },\n  dark: {\n    \"--el-header-logo-text-color\": \"#dadada\",\n    \"--el-header-bg-color\": \"#141414\",\n    \"--el-header-text-color\": \"#e5eaf3\",\n    \"--el-header-text-color-regular\": \"#cfd3dc\",\n    \"--el-header-border-color\": \"#414243\"\n  }\n};\n"
  },
  {
    "path": "src/styles/theme/menu.ts",
    "content": "import { Theme } from \"@/hooks/interface\";\n\nexport const menuTheme: Record<Theme.ThemeType, { [key: string]: string }> = {\n  light: {\n    \"--el-menu-bg-color\": \"#ffffff\",\n    \"--el-menu-hover-bg-color\": \"#cccccc\",\n    \"--el-menu-active-bg-color\": \"var(--el-color-primary-light-9)\",\n    \"--el-menu-text-color\": \"#333333\",\n    \"--el-menu-active-color\": \"var(--el-color-primary)\",\n    \"--el-menu-hover-text-color\": \"#333333\",\n    \"--el-menu-horizontal-sub-item-height\": \"50px\"\n  },\n  inverted: {\n    \"--el-menu-bg-color\": \"#191a20\",\n    \"--el-menu-hover-bg-color\": \"#000000\",\n    \"--el-menu-active-bg-color\": \"#000000\",\n    \"--el-menu-text-color\": \"#bdbdc0\",\n    \"--el-menu-active-color\": \"#ffffff\",\n    \"--el-menu-hover-text-color\": \"#ffffff\",\n    \"--el-menu-horizontal-sub-item-height\": \"50px\"\n  },\n  dark: {\n    \"--el-menu-bg-color\": \"#141414\",\n    \"--el-menu-hover-bg-color\": \"#000000\",\n    \"--el-menu-active-bg-color\": \"#000000\",\n    \"--el-menu-text-color\": \"#bdbdc0\",\n    \"--el-menu-active-color\": \"#ffffff\",\n    \"--el-menu-hover-text-color\": \"#ffffff\",\n    \"--el-menu-horizontal-sub-item-height\": \"50px\"\n  }\n};\n"
  },
  {
    "path": "src/styles/var.scss",
    "content": "/* global css variable */\n$primary-color: var(--el-color-primary);\n"
  },
  {
    "path": "src/typings/global.d.ts",
    "content": "/* Menu */\ndeclare namespace Menu {\n  interface MenuOptions {\n    path: string;\n    name: string;\n    component?: string | (() => Promise<unknown>);\n    redirect?: string;\n    meta: MetaProps;\n    children?: MenuOptions[];\n  }\n  interface MetaProps {\n    icon: string;\n    title: string;\n    activeMenu?: string;\n    isLink?: string;\n    isHide: boolean;\n    isFull: boolean;\n    isAffix: boolean;\n    isKeepAlive: boolean;\n  }\n}\n\n/* FileType */\ndeclare namespace File {\n  type ImageMimeType =\n    | \"image/apng\"\n    | \"image/bmp\"\n    | \"image/gif\"\n    | \"image/jpeg\"\n    | \"image/pjpeg\"\n    | \"image/png\"\n    | \"image/svg+xml\"\n    | \"image/tiff\"\n    | \"image/webp\"\n    | \"image/x-icon\";\n\n  type ExcelMimeType = \"application/vnd.ms-excel\" | \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\";\n}\n\n/* Vite */\ndeclare type Recordable<T = any> = Record<string, T>;\n\ndeclare interface ViteEnv {\n  VITE_USER_NODE_ENV: \"development\" | \"production\" | \"test\";\n  VITE_GLOB_APP_TITLE: string;\n  VITE_PORT: number;\n  VITE_OPEN: boolean;\n  VITE_REPORT: boolean;\n  VITE_ROUTER_MODE: \"hash\" | \"history\";\n  VITE_BUILD_COMPRESS: \"gzip\" | \"brotli\" | \"gzip,brotli\" | \"none\";\n  VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE: boolean;\n  VITE_DROP_CONSOLE: boolean;\n  VITE_PWA: boolean;\n  VITE_DEVTOOLS: boolean;\n  VITE_PUBLIC_PATH: string;\n  VITE_API_URL: string;\n  VITE_PROXY: [string, string][];\n  VITE_CODEINSPECTOR: boolean;\n}\n\ninterface ImportMetaEnv extends ViteEnv {\n  __: unknown;\n}\n\n/* __APP_INFO__ */\ndeclare const __APP_INFO__: {\n  pkg: {\n    name: string;\n    version: string;\n    dependencies: Recordable<string>;\n    devDependencies: Recordable<string>;\n  };\n  lastBuildTime: string;\n};\n"
  },
  {
    "path": "src/typings/utils.d.ts",
    "content": "type ObjToKeyValUnion<T> = {\n  [K in keyof T]: { key: K; value: T[K] };\n}[keyof T];\n\ntype ObjToKeyValArray<T> = {\n  [K in keyof T]: [K, T[K]];\n}[keyof T];\n\ntype ObjToSelectedValueUnion<T> = {\n  [K in keyof T]: T[K];\n}[keyof T];\n\ntype Optional<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;\n\ntype GetOptional<T> = {\n  [P in keyof T as T[P] extends Required<T>[P] ? never : P]: T[P];\n};\n"
  },
  {
    "path": "src/typings/window.d.ts",
    "content": "declare global {\n  interface Navigator {\n    msSaveOrOpenBlob: (blob: Blob, fileName: string) => void;\n    browserLanguage: string;\n  }\n}\n\nexport {};\n"
  },
  {
    "path": "src/utils/color.ts",
    "content": "import { ElMessage } from \"element-plus\";\n\n/**\n * @description hex颜色转rgb颜色\n * @param {String} str 颜色值字符串\n * @returns {String} 返回处理后的颜色值\n */\nexport function hexToRgb(str: any) {\n  let hexs: any = \"\";\n  let reg = /^\\#?[0-9A-Fa-f]{6}$/;\n  if (!reg.test(str)) return ElMessage.warning(\"输入错误的hex\");\n  str = str.replace(\"#\", \"\");\n  hexs = str.match(/../g);\n  for (let i = 0; i < 3; i++) hexs[i] = parseInt(hexs[i], 16);\n  return hexs;\n}\n\n/**\n * @description rgb颜色转Hex颜色\n * @param {*} r 代表红色\n * @param {*} g 代表绿色\n * @param {*} b 代表蓝色\n * @returns {String} 返回处理后的颜色值\n */\nexport function rgbToHex(r: any, g: any, b: any) {\n  let reg = /^\\d{1,3}$/;\n  if (!reg.test(r) || !reg.test(g) || !reg.test(b)) return ElMessage.warning(\"输入错误的rgb颜色值\");\n  let hexs = [r.toString(16), g.toString(16), b.toString(16)];\n  for (let i = 0; i < 3; i++) if (hexs[i].length == 1) hexs[i] = `0${hexs[i]}`;\n  return `#${hexs.join(\"\")}`;\n}\n\n/**\n * @description 加深颜色值\n * @param {String} color 颜色值字符串\n * @param {Number} level 加深的程度，限0-1之间\n * @returns {String} 返回处理后的颜色值\n */\nexport function getDarkColor(color: string, level: number) {\n  let reg = /^\\#?[0-9A-Fa-f]{6}$/;\n  if (!reg.test(color)) return ElMessage.warning(\"输入错误的hex颜色值\");\n  let rgb = hexToRgb(color);\n  for (let i = 0; i < 3; i++) rgb[i] = Math.round(20.5 * level + rgb[i] * (1 - level));\n  return rgbToHex(rgb[0], rgb[1], rgb[2]);\n}\n\n/**\n * @description 变浅颜色值\n * @param {String} color 颜色值字符串\n * @param {Number} level 加深的程度，限0-1之间\n * @returns {String} 返回处理后的颜色值\n */\nexport function getLightColor(color: string, level: number) {\n  let reg = /^\\#?[0-9A-Fa-f]{6}$/;\n  if (!reg.test(color)) return ElMessage.warning(\"输入错误的hex颜色值\");\n  let rgb = hexToRgb(color);\n  for (let i = 0; i < 3; i++) rgb[i] = Math.round(255 * level + rgb[i] * (1 - level));\n  return rgbToHex(rgb[0], rgb[1], rgb[2]);\n}\n"
  },
  {
    "path": "src/utils/dict.ts",
    "content": "// ? 系统全局字典\n\n/**\n * @description：用户性别\n */\nexport const genderType = [\n  { label: \"男\", value: 1 },\n  { label: \"女\", value: 2 }\n];\n\n/**\n * @description：用户状态\n */\nexport const userStatus = [\n  { label: \"启用\", value: 1, tagType: \"success\" },\n  { label: \"禁用\", value: 0, tagType: \"danger\" }\n];\n"
  },
  {
    "path": "src/utils/eleValidate.ts",
    "content": "// ? Element 常用表单校验规则\n\n/**\n *  @rule 手机号\n */\nexport function checkPhoneNumber(rule: any, value: any, callback: any) {\n  const regexp = /^(((13[0-9]{1})|(15[0-9]{1})|(16[0-9]{1})|(17[3-8]{1})|(18[0-9]{1})|(19[0-9]{1})|(14[5-7]{1}))+\\d{8})$/;\n  if (value === \"\") callback(\"请输入手机号码\");\n  if (!regexp.test(value)) {\n    callback(new Error(\"请输入正确的手机号码\"));\n  } else {\n    return callback();\n  }\n}\n"
  },
  {
    "path": "src/utils/errorHandler.ts",
    "content": "import { ElNotification } from \"element-plus\";\n\n/**\n * @description 全局代码错误捕捉\n * */\nconst errorHandler = (error: any) => {\n  // 过滤 HTTP 请求错误\n  if (error.status || error.status == 0) return false;\n  let errorMap: { [key: string]: string } = {\n    InternalError: \"Javascript引擎内部错误\",\n    ReferenceError: \"未找到对象\",\n    TypeError: \"使用了错误的类型或对象\",\n    RangeError: \"使用内置对象时，参数超范围\",\n    SyntaxError: \"语法错误\",\n    EvalError: \"错误的使用了Eval\",\n    URIError: \"URI错误\"\n  };\n  let errorName = errorMap[error.name] || \"未知错误\";\n  ElNotification({\n    title: errorName,\n    message: error,\n    type: \"error\",\n    duration: 3000\n  });\n};\n\nexport default errorHandler;\n"
  },
  {
    "path": "src/utils/index.ts",
    "content": "import { isArray } from \"@/utils/is\";\nimport { FieldNamesProps } from \"@/components/ProTable/interface\";\n\nconst mode = import.meta.env.VITE_ROUTER_MODE;\n\n/**\n * @description 获取localStorage\n * @param {String} key Storage名称\n * @returns {String}\n */\nexport function localGet(key: string) {\n  const value = window.localStorage.getItem(key);\n  try {\n    return JSON.parse(window.localStorage.getItem(key) as string);\n  } catch (error) {\n    return value;\n  }\n}\n\n/**\n * @description 存储localStorage\n * @param {String} key Storage名称\n * @param {*} value Storage值\n * @returns {void}\n */\nexport function localSet(key: string, value: any) {\n  window.localStorage.setItem(key, JSON.stringify(value));\n}\n\n/**\n * @description 清除localStorage\n * @param {String} key Storage名称\n * @returns {void}\n */\nexport function localRemove(key: string) {\n  window.localStorage.removeItem(key);\n}\n\n/**\n * @description 清除所有localStorage\n * @returns {void}\n */\nexport function localClear() {\n  window.localStorage.clear();\n}\n\n/**\n * @description 判断数据类型\n * @param {*} val 需要判断类型的数据\n * @returns {String}\n */\nexport function isType(val: any) {\n  if (val === null) return \"null\";\n  if (typeof val !== \"object\") return typeof val;\n  else return Object.prototype.toString.call(val).slice(8, -1).toLocaleLowerCase();\n}\n\n/**\n * @description 生成唯一 uuid\n * @returns {String}\n */\nexport function generateUUID() {\n  let uuid = \"\";\n  for (let i = 0; i < 32; i++) {\n    let random = (Math.random() * 16) | 0;\n    if (i === 8 || i === 12 || i === 16 || i === 20) uuid += \"-\";\n    uuid += (i === 12 ? 4 : i === 16 ? (random & 3) | 8 : random).toString(16);\n  }\n  return uuid;\n}\n\n/**\n * 判断两个对象是否相同\n * @param {Object} a 要比较的对象一\n * @param {Object} b 要比较的对象二\n * @returns {Boolean} 相同返回 true，反之 false\n */\nexport function isObjectValueEqual(a: { [key: string]: any }, b: { [key: string]: any }) {\n  if (!a || !b) return false;\n  let aProps = Object.getOwnPropertyNames(a);\n  let bProps = Object.getOwnPropertyNames(b);\n  if (aProps.length != bProps.length) return false;\n  for (let i = 0; i < aProps.length; i++) {\n    let propName = aProps[i];\n    let propA = a[propName];\n    let propB = b[propName];\n    if (!b.hasOwnProperty(propName)) return false;\n    if (propA instanceof Object) {\n      if (!isObjectValueEqual(propA, propB)) return false;\n    } else if (propA !== propB) {\n      return false;\n    }\n  }\n  return true;\n}\n\n/**\n * @description 生成随机数\n * @param {Number} min 最小值\n * @param {Number} max 最大值\n * @returns {Number}\n */\nexport function randomNum(min: number, max: number): number {\n  let num = Math.floor(Math.random() * (min - max) + max);\n  return num;\n}\n\n/**\n * @description 获取当前时间对应的提示语\n * @returns {String}\n */\nexport function getTimeState() {\n  let timeNow = new Date();\n  let hours = timeNow.getHours();\n  if (hours >= 6 && hours <= 10) return `早上好 ⛅`;\n  if (hours >= 10 && hours <= 14) return `中午好 🌞`;\n  if (hours >= 14 && hours <= 18) return `下午好 🌞`;\n  if (hours >= 18 && hours <= 24) return `晚上好 🌛`;\n  if (hours >= 0 && hours <= 6) return `凌晨好 🌛`;\n}\n\n/**\n * @description 获取浏览器默认语言\n * @returns {String}\n */\nexport function getBrowserLang() {\n  let browserLang = navigator.language ? navigator.language : navigator.browserLanguage;\n  let defaultBrowserLang = \"\";\n  if ([\"cn\", \"zh\", \"zh-cn\"].includes(browserLang.toLowerCase())) {\n    defaultBrowserLang = \"zh\";\n  } else {\n    defaultBrowserLang = \"en\";\n  }\n  return defaultBrowserLang;\n}\n\n/**\n * @description 获取不同路由模式所对应的 url + params\n * @returns {String}\n */\nexport function getUrlWithParams() {\n  const url = {\n    hash: location.hash.substring(1),\n    history: location.pathname + location.search\n  };\n  return url[mode];\n}\n\n/**\n * @description 使用递归扁平化菜单，方便添加动态路由\n * @param {Array} menuList 菜单列表\n * @returns {Array}\n */\nexport function getFlatMenuList(menuList: Menu.MenuOptions[]): Menu.MenuOptions[] {\n  let newMenuList: Menu.MenuOptions[] = JSON.parse(JSON.stringify(menuList));\n  return newMenuList.flatMap(item => [item, ...(item.children ? getFlatMenuList(item.children) : [])]);\n}\n\n/**\n * @description 使用递归过滤出需要渲染在左侧菜单的列表 (需剔除 isHide == true 的菜单)\n * @param {Array} menuList 菜单列表\n * @returns {Array}\n * */\nexport function getShowMenuList(menuList: Menu.MenuOptions[]) {\n  let newMenuList: Menu.MenuOptions[] = JSON.parse(JSON.stringify(menuList));\n  return newMenuList.filter(item => {\n    item.children?.length && (item.children = getShowMenuList(item.children));\n    return !item.meta?.isHide;\n  });\n}\n\n/**\n * @description 使用递归找出所有面包屑存储到 pinia/vuex 中\n * @param {Array} menuList 菜单列表\n * @param {Array} parent 父级菜单\n * @param {Object} result 处理后的结果\n * @returns {Object}\n */\nexport const getAllBreadcrumbList = (menuList: Menu.MenuOptions[], parent = [], result: { [key: string]: any } = {}) => {\n  for (const item of menuList) {\n    result[item.path] = [...parent, item];\n    if (item.children) getAllBreadcrumbList(item.children, result[item.path], result);\n  }\n  return result;\n};\n\n/**\n * @description 使用递归处理路由菜单 path，生成一维数组 (第一版本地路由鉴权会用到，该函数暂未使用)\n * @param {Array} menuList 所有菜单列表\n * @param {Array} menuPathArr 菜单地址的一维数组 ['**','**']\n * @returns {Array}\n */\nexport function getMenuListPath(menuList: Menu.MenuOptions[], menuPathArr: string[] = []): string[] {\n  for (const item of menuList) {\n    if (typeof item === \"object\" && item.path) menuPathArr.push(item.path);\n    if (item.children?.length) getMenuListPath(item.children, menuPathArr);\n  }\n  return menuPathArr;\n}\n\n/**\n * @description 递归查询当前 path 所对应的菜单对象 (该函数暂未使用)\n * @param {Array} menuList 菜单列表\n * @param {String} path 当前访问地址\n * @returns {Object | null}\n */\nexport function findMenuByPath(menuList: Menu.MenuOptions[], path: string): Menu.MenuOptions | null {\n  for (const item of menuList) {\n    if (item.path === path) return item;\n    if (item.children) {\n      const res = findMenuByPath(item.children, path);\n      if (res) return res;\n    }\n  }\n  return null;\n}\n\n/**\n * @description 使用递归过滤需要缓存的菜单 name (该函数暂未使用)\n * @param {Array} menuList 所有菜单列表\n * @param {Array} keepAliveNameArr 缓存的菜单 name ['**','**']\n * @returns {Array}\n * */\nexport function getKeepAliveRouterName(menuList: Menu.MenuOptions[], keepAliveNameArr: string[] = []) {\n  menuList.forEach(item => {\n    item.meta.isKeepAlive && item.name && keepAliveNameArr.push(item.name);\n    item.children?.length && getKeepAliveRouterName(item.children, keepAliveNameArr);\n  });\n  return keepAliveNameArr;\n}\n\n/**\n * @description 格式化表格单元格默认值 (el-table-column)\n * @param {Number} row 行\n * @param {Number} col 列\n * @param {*} callValue 当前单元格值\n * @returns {String}\n * */\nexport function formatTableColumn(row: number, col: number, callValue: any) {\n  // 如果当前值为数组，使用 / 拼接（根据需求自定义）\n  if (isArray(callValue)) return callValue.length ? callValue.join(\" / \") : \"--\";\n  return callValue ?? \"--\";\n}\n\n/**\n * @description 处理 ProTable 值为数组 || 无数据\n * @param {*} callValue 需要处理的值\n * @returns {String}\n * */\nexport function formatValue(callValue: any) {\n  // 如果当前值为数组，使用 / 拼接（根据需求自定义）\n  if (isArray(callValue)) return callValue.length ? callValue.join(\" / \") : \"--\";\n  return callValue ?? \"--\";\n}\n\n/**\n * @description 处理 prop 为多级嵌套的情况，返回的数据 (列如: prop: user.name)\n * @param {Object} row 当前行数据\n * @param {String} prop 当前 prop\n * @returns {*}\n * */\nexport function handleRowAccordingToProp(row: { [key: string]: any }, prop: string) {\n  if (!prop.includes(\".\")) return row[prop] ?? \"--\";\n  prop.split(\".\").forEach(item => (row = row[item] ?? \"--\"));\n  return row;\n}\n\n/**\n * @description 处理 prop，当 prop 为多级嵌套时 ==> 返回最后一级 prop\n * @param {String} prop 当前 prop\n * @returns {String}\n * */\nexport function handleProp(prop: string) {\n  const propArr = prop.split(\".\");\n  if (propArr.length == 1) return prop;\n  return propArr[propArr.length - 1];\n}\n\n/**\n * @description 根据枚举列表查询当需要的数据（如果指定了 label 和 value 的 key值，会自动识别格式化）\n * @param {String} callValue 当前单元格值\n * @param {Array} enumData 字典列表\n * @param {Array} fieldNames label && value && children 的 key 值\n * @param {String} type 过滤类型（目前只有 tag）\n * @returns {String}\n * */\nexport function filterEnum(callValue: any, enumData?: any, fieldNames?: FieldNamesProps, type?: \"tag\") {\n  const value = fieldNames?.value ?? \"value\";\n  const label = fieldNames?.label ?? \"label\";\n  const children = fieldNames?.children ?? \"children\";\n  let filterData: { [key: string]: any } = {};\n  // 判断 enumData 是否为数组\n  if (Array.isArray(enumData)) filterData = findItemNested(enumData, callValue, value, children);\n  // 判断是否输出的结果为 tag 类型\n  if (type == \"tag\") {\n    return filterData?.tagType ? filterData.tagType : \"\";\n  } else {\n    return filterData ? filterData[label] : \"--\";\n  }\n}\n\n/**\n * @description 递归查找 callValue 对应的 enum 值\n * */\nexport function findItemNested(enumData: any, callValue: any, value: string, children: string) {\n  return enumData.reduce((accumulator: any, current: any) => {\n    if (accumulator) return accumulator;\n    if (current[value] === callValue) return current;\n    if (current[children]) return findItemNested(current[children], callValue, value, children);\n  }, null);\n}\n"
  },
  {
    "path": "src/utils/is/index.ts",
    "content": "/**\n * @description: 判断值是否未某个类型\n */\nexport function is(val: unknown, type: string) {\n  return Object.prototype.toString.call(val) === `[object ${type}]`;\n}\n\n/**\n * @description:  是否为函数\n */\nexport function isFunction<T = Function>(val: unknown): val is T {\n  return is(val, \"Function\");\n}\n\n/**\n * @description: 是否已定义\n */\nexport const isDef = <T = unknown>(val?: T): val is T => {\n  return typeof val !== \"undefined\";\n};\n\n/**\n * @description: 是否未定义\n */\nexport const isUnDef = <T = unknown>(val?: T): val is T => {\n  return !isDef(val);\n};\n\n/**\n * @description: 是否为对象\n */\nexport const isObject = (val: any): val is Record<any, any> => {\n  return val !== null && is(val, \"Object\");\n};\n\n/**\n * @description:  是否为时间\n */\nexport function isDate(val: unknown): val is Date {\n  return is(val, \"Date\");\n}\n\n/**\n * @description:  是否为数值\n */\nexport function isNumber(val: unknown): val is number {\n  return is(val, \"Number\");\n}\n\n/**\n * @description:  是否为AsyncFunction\n */\nexport function isAsyncFunction<T = any>(val: unknown): val is Promise<T> {\n  return is(val, \"AsyncFunction\");\n}\n\n/**\n * @description:  是否为promise\n */\nexport function isPromise<T = any>(val: unknown): val is Promise<T> {\n  return is(val, \"Promise\") && isObject(val) && isFunction(val.then) && isFunction(val.catch);\n}\n\n/**\n * @description:  是否为字符串\n */\nexport function isString(val: unknown): val is string {\n  return is(val, \"String\");\n}\n\n/**\n * @description:  是否为boolean类型\n */\nexport function isBoolean(val: unknown): val is boolean {\n  return is(val, \"Boolean\");\n}\n\n/**\n * @description:  是否为数组\n */\nexport function isArray(val: any): val is Array<any> {\n  return val && Array.isArray(val);\n}\n\n/**\n * @description: 是否客户端\n */\nexport const isClient = () => {\n  return typeof window !== \"undefined\";\n};\n\n/**\n * @description: 是否为浏览器\n */\nexport const isWindow = (val: any): val is Window => {\n  return typeof window !== \"undefined\" && is(val, \"Window\");\n};\n\n/**\n * @description: 是否为 element 元素\n */\nexport const isElement = (val: unknown): val is Element => {\n  return isObject(val) && !!val.tagName;\n};\n\n/**\n * @description: 是否为 null\n */\nexport function isNull(val: unknown): val is null {\n  return val === null;\n}\n\n/**\n * @description: 是否为 null || undefined\n */\nexport function isNullOrUnDef(val: unknown): val is null | undefined {\n  return isUnDef(val) || isNull(val);\n}\n\n/**\n * @description: 是否为 16 进制颜色\n */\nexport const isHexColor = (str: string) => {\n  return /^#?([0-9A-Fa-f]{3}|[0-9A-Fa-f]{6})$/.test(str);\n};\n"
  },
  {
    "path": "src/utils/mittBus.ts",
    "content": "import mitt from \"mitt\";\n\nconst mittBus = mitt();\n\nexport default mittBus;\n"
  },
  {
    "path": "src/utils/svg.ts",
    "content": "/**\n * @description Loading Svg\n */\nexport const loadingSvg = `\n<path class=\"path\" d=\"\n\tM 30 15\n\tL 28 17\n\tM 25.61 25.61\n\tA 15 15, 0, 0, 1, 15 30\n\tA 15 15, 0, 1, 1, 27.99 7.5\n\tL 15 15\n\" style=\"stroke-width: 4px; fill: rgba(0, 0, 0, 0)\"/>\n`;\n"
  },
  {
    "path": "src/views/about/index.vue",
    "content": "<template>\n  <div>\n    <div class=\"card mb10\">\n      <h4 class=\"title\">简介</h4>\n      <span class=\"text\">\n        <el-link type=\"primary\" href=\"https://docs.spicyboy.cn\" target=\"_blank\">Geeker-Admin</el-link>\n        一款基于 Vue3.4、TypeScript、Vite5、Pinia、Element-Plus 开源的后台管理框架，使用目前最新技术栈开发。项目提供强大的\n        <el-link type=\"primary\" href=\"https://juejin.cn/post/7166068828202336263\" target=\"_blank\">ProTable 组件</el-link>\n        在一定程度上提高您的开发效率。另外本项目还封装了一些常用组件、Hooks、指令、动态路由、按钮级别权限控制等功能。\n      </span>\n    </div>\n    <div class=\"card mb10\">\n      <h4 class=\"title\">项目信息</h4>\n      <el-descriptions :column=\"2\" border>\n        <el-descriptions-item label=\"版本号\" label-align=\"left\">\n          <el-tag>{{ version }}</el-tag>\n        </el-descriptions-item>\n        <el-descriptions-item label=\"发布时间\" label-align=\"left\">\n          <el-tag>{{ lastBuildTime }}</el-tag>\n        </el-descriptions-item>\n        <el-descriptions-item label=\"Gitee\" label-align=\"left\">\n          <el-link type=\"primary\" href=\"https://gitee.com/HalseySpicy/Geeker-Admin\" target=\"_blank\"> Gitee </el-link>\n        </el-descriptions-item>\n        <el-descriptions-item label=\"Github\" label-align=\"left\">\n          <el-link type=\"primary\" href=\"https://github.com/HalseySpicy/Geeker-Admin\" target=\"_blank\"> Github </el-link>\n        </el-descriptions-item>\n        <el-descriptions-item label=\"文档地址\" label-align=\"left\">\n          <el-link type=\"primary\" href=\"https://docs.spicyboy.cn\" target=\"_blank\"> 文档地址 </el-link>\n        </el-descriptions-item>\n        <el-descriptions-item label=\"预览地址\" label-align=\"left\">\n          <el-link type=\"primary\" href=\"https://admin.spicyboy.cn\" target=\"_blank\"> 预览地址 </el-link>\n        </el-descriptions-item>\n      </el-descriptions>\n    </div>\n    <div class=\"card mb10\">\n      <h4 class=\"title\">生产环境依赖</h4>\n      <el-descriptions :column=\"3\" border>\n        <el-descriptions-item v-for=\"(value, key) in dependencies\" :key=\"key\" width=\"400px\" :label=\"key\">\n          <el-tag type=\"info\">\n            {{ value }}\n          </el-tag>\n        </el-descriptions-item>\n      </el-descriptions>\n    </div>\n    <div class=\"card\">\n      <h4 class=\"title\">开发环境依赖</h4>\n      <el-descriptions :column=\"3\" border>\n        <el-descriptions-item v-for=\"(value, key) in devDependencies\" :key=\"key\" width=\"400px\" :label=\"key\">\n          <el-tag type=\"info\">\n            {{ value }}\n          </el-tag>\n        </el-descriptions-item>\n      </el-descriptions>\n    </div>\n  </div>\n</template>\n\n<script setup lang=\"ts\" name=\"about\">\nconst { pkg, lastBuildTime } = __APP_INFO__;\nconst { dependencies, devDependencies, version } = pkg;\n</script>\n\n<style lang=\"scss\" scoped>\n.card {\n  .title {\n    margin: 0 0 15px;\n    font-size: 17px;\n    font-weight: bold;\n    color: var(--el-text-color-primary);\n  }\n  .text {\n    font-size: 15px;\n    line-height: 25px;\n    color: var(--el-text-color-regular);\n    .el-link {\n      font-size: 15px;\n    }\n  }\n}\n</style>\n"
  },
  {
    "path": "src/views/assembly/batchImport/index.scss",
    "content": ""
  },
  {
    "path": "src/views/assembly/batchImport/index.vue",
    "content": "<template>\n  <div class=\"card content-box\">\n    <span class=\"text\">批量添加数据 🍓🍇🍈🍉</span>\n    <el-button type=\"primary\" :icon=\"Upload\" @click=\"batchAdd\"> 批量添加数据 </el-button>\n    <ImportExcel ref=\"importRef\" />\n    <el-descriptions title=\"配置项（通过 ref 传递） 📚\" :column=\"1\" border>\n      <el-descriptions-item label=\"title\"> 组件显示标题 && 上传成功之后提示信息 </el-descriptions-item>\n      <el-descriptions-item label=\"fileSize\"> 上传文件大小，默认为 5M </el-descriptions-item>\n      <el-descriptions-item label=\"fileType\">\n        上传文件类型限制，默认类型为 [\"application/vnd.ms-excel\",\n        \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\"]\n      </el-descriptions-item>\n      <el-descriptions-item label=\"tempApi\"> 下载模板的 Api </el-descriptions-item>\n      <el-descriptions-item label=\"importApi\"> 上传数据的 Api </el-descriptions-item>\n      <el-descriptions-item label=\"getTableList\"> 上传数据成功之后，刷新表格数据的 Api </el-descriptions-item>\n    </el-descriptions>\n  </div>\n</template>\n\n<script setup lang=\"ts\" name=\"batchImport\">\nimport { ref } from \"vue\";\nimport { exportUserInfo, BatchAddUser } from \"@/api/modules/user\";\nimport { Upload } from \"@element-plus/icons-vue\";\nimport ImportExcel from \"@/components/ImportExcel/index.vue\";\n\nconst importRef = ref();\nconst batchAdd = () => {\n  let params = {\n    title: \"数据\",\n    tempApi: exportUserInfo,\n    importApi: BatchAddUser\n  };\n  importRef.value.acceptParams(params);\n};\n</script>\n\n<style scoped lang=\"scss\">\n@import \"./index.scss\";\n</style>\n"
  },
  {
    "path": "src/views/assembly/draggable/index.scss",
    "content": ".grid-container {\n  display: grid;\n  grid-template-rows: 33.3% 33.3% 33.3%;\n  grid-template-columns: 33.3% 33.3% 33.3%;\n  height: 100%;\n  .item {\n    box-sizing: border-box;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    font-size: 25px;\n    color: #ffffff;\n    cursor: move;\n    border: 1px solid #e5e4e9;\n  }\n}\n.item-1 {\n  background-color: #87bba2;\n}\n.item-2 {\n  background-color: #ff9b54;\n}\n.item-3 {\n  background-color: #73628a;\n}\n.item-4 {\n  background-color: #76c893;\n}\n.item-5 {\n  background-color: #619b8a;\n}\n.item-6 {\n  background-color: #55828b;\n}\n.item-7 {\n  background-color: #427aa1;\n}\n.item-8 {\n  background-color: #38a3a5;\n}\n.item-9 {\n  background-color: #fcca46;\n}\n.chosen {\n  border: 2px solid #89cffd !important;\n}\n"
  },
  {
    "path": "src/views/assembly/draggable/index.vue",
    "content": "<template>\n  <draggable\n    v-model=\"gridList\"\n    class=\"card grid-container\"\n    item-key=\"id\"\n    animation=\"300\"\n    chosen-class=\"chosen\"\n    force-fallback=\"true\"\n  >\n    <template #item=\"{ element }\">\n      <div :class=\"'item' + ' ' + 'item-' + element.num\">\n        {{ element.num }}\n      </div>\n    </template>\n  </draggable>\n</template>\n\n<script setup lang=\"ts\" name=\"draggable\">\nimport { ref } from \"vue\";\nimport draggable from \"vuedraggable\";\n\nlet gridList = ref([\n  { id: 1, num: 1 },\n  { id: 2, num: 2 },\n  { id: 3, num: 3 },\n  { id: 4, num: 4 },\n  { id: 5, num: 5 },\n  { id: 6, num: 6 },\n  { id: 7, num: 7 },\n  { id: 8, num: 8 },\n  { id: 9, num: 9 }\n]);\n</script>\n\n<style scoped lang=\"scss\">\n@import \"./index.scss\";\n</style>\n"
  },
  {
    "path": "src/views/assembly/guide/index.scss",
    "content": ".el-button {\n  margin-top: 20px;\n}\n"
  },
  {
    "path": "src/views/assembly/guide/index.vue",
    "content": "<template>\n  <div class=\"card content-box\">\n    <span class=\"text\"> 引导页 🍓🍇🍈🍉</span>\n    <el-alert\n      title=\"引导页对于一些第一次进入项目的人很有用，你可以简单介绍下项目的功能。本 Demo 是基于 driver.js.\"\n      type=\"warning\"\n      :closable=\"false\"\n    />\n    <div id=\"Geeker\">\n      <el-button type=\"primary\" @click.prevent.stop=\"driverObj.drive()\"> 打开引导页 🤹‍♂️ </el-button>\n    </div>\n  </div>\n</template>\n\n<script setup lang=\"ts\" name=\"guide\">\nimport { driver } from \"driver.js\";\nimport \"driver.js/dist/driver.css\";\n\nconst driverObj = driver({\n  allowClose: true,\n  doneBtnText: \"结束\",\n  nextBtnText: \"下一步\",\n  prevBtnText: \"上一步\",\n  steps: [\n    {\n      element: \"#collapseIcon\",\n      popover: {\n        title: \"Collapse Icon\",\n        description: \"Open && Close sidebar\",\n        side: \"right\"\n      }\n    },\n    {\n      element: \"#breadcrumb\",\n      popover: {\n        title: \"Breadcrumb\",\n        description: \"Indicate the current page location\",\n        side: \"right\"\n      }\n    },\n    {\n      element: \"#assemblySize\",\n      popover: {\n        title: \"Switch Assembly Size\",\n        description: \"Switch the system size\",\n        side: \"left\"\n      }\n    },\n    {\n      element: \"#language\",\n      popover: {\n        title: \"Switch Language\",\n        description: \"Switch the system language\",\n        side: \"left\"\n      }\n    },\n    {\n      element: \"#searchMenu\",\n      popover: {\n        title: \"Page Search\",\n        description: \"Page search, quick navigation\",\n        side: \"left\"\n      }\n    },\n    {\n      element: \"#themeSetting\",\n      popover: {\n        title: \"Setting theme\",\n        description: \"Customize settings theme\",\n        side: \"left\"\n      }\n    },\n    {\n      element: \"#message\",\n      popover: {\n        title: \"Message Notification\",\n        description: \"Can receive company information\",\n        side: \"left\"\n      }\n    },\n    {\n      element: \"#fullscreen\",\n      popover: {\n        title: \"Full Screen\",\n        description: \"Full Screen, Exit The Full Screen Page\",\n        side: \"left\"\n      }\n    }\n  ]\n});\n</script>\n\n<style scoped lang=\"scss\">\n@import \"./index.scss\";\n</style>\n"
  },
  {
    "path": "src/views/assembly/selectFilter/index.scss",
    "content": ".result {\n  margin-top: 20px;\n  font-size: 17px;\n  font-weight: bold;\n  color: var(--el-text-color-regular);\n}\n"
  },
  {
    "path": "src/views/assembly/selectFilter/index.vue",
    "content": "<template>\n  <div class=\"card content-box\">\n    <span class=\"text\"> 分类筛选器 🍓🍇🍈🍉</span>\n    <SelectFilter :data=\"filterData\" :default-values=\"filterResult\" @change=\"changeFilter\" />\n    <span class=\"result\">返回值: {{ filterResult }}</span>\n    <el-descriptions title=\"配置项 📚\" :column=\"1\" border>\n      <el-descriptions-item label=\"data\"> 需要筛选的数据列表，详情请查看代码 </el-descriptions-item>\n      <el-descriptions-item label=\"defaultValues\"> 默认选中的值 </el-descriptions-item>\n    </el-descriptions>\n  </div>\n</template>\n\n<script setup lang=\"ts\" name=\"selectFilter\">\nimport { ref } from \"vue\";\nimport SelectFilter from \"@/components/SelectFilter/index.vue\";\n\nconst filterResult = ref({ state: \"1\", type: [\"1\", \"3\"] });\n\nconst changeFilter = (val: typeof filterResult.value) => {\n  filterResult.value = val;\n};\n\nconst filterData = [\n  {\n    title: \"物流状态(单)\",\n    key: \"state\",\n    options: [\n      {\n        label: \"全部\",\n        value: \"\"\n      },\n      {\n        label: \"已下单\",\n        value: \"1\",\n        icon: \"ShoppingCart\"\n      },\n      {\n        label: \"已发货\",\n        value: \"2\",\n        icon: \"Van\"\n      },\n      {\n        label: \"已签收\",\n        value: \"3\",\n        icon: \"Edit\"\n      },\n      {\n        label: \"已退回\",\n        value: \"4\",\n        icon: \"Guide\"\n      },\n      {\n        label: \"已完成\",\n        value: \"5\",\n        icon: \"CircleCheck\"\n      }\n    ]\n  },\n  {\n    title: \"商品类型(多)\",\n    key: \"type\",\n    multiple: true,\n    options: [\n      {\n        label: \"全部\",\n        value: \"\"\n      },\n      {\n        label: \"食品类\",\n        value: \"1\"\n      },\n      {\n        label: \"服装类\",\n        value: \"2\"\n      },\n      {\n        label: \"家具类\",\n        value: \"3\"\n      },\n      {\n        label: \"日用品类\",\n        value: \"4\"\n      }\n    ]\n  }\n];\n</script>\n\n<style scoped lang=\"scss\">\n@import \"./index.scss\";\n</style>\n"
  },
  {
    "path": "src/views/assembly/selectIcon/index.scss",
    "content": ""
  },
  {
    "path": "src/views/assembly/selectIcon/index.vue",
    "content": "<template>\n  <div class=\"card content-box\">\n    <span class=\"text\"> 图标选择器 🍓🍇🍈🍉</span>\n    <SelectIcon v-model:icon-value=\"iconValue\" />\n    <el-descriptions title=\"配置项 📚\" :column=\"1\" border>\n      <el-descriptions-item label=\"iconValue\"> 双向绑定的icon值，使用示例：v-model:icon-value=\"iconValue\" </el-descriptions-item>\n      <el-descriptions-item label=\"title\"> 弹窗标题 </el-descriptions-item>\n      <el-descriptions-item label=\"clearable\"> 是否可清空，默认为 true </el-descriptions-item>\n      <el-descriptions-item label=\"placeholder\"> 输入框占位文本 </el-descriptions-item>\n    </el-descriptions>\n  </div>\n</template>\n\n<script setup lang=\"ts\" name=\"selectIcon\">\nimport { ref } from \"vue\";\nimport SelectIcon from \"@/components/SelectIcon/index.vue\";\nconst iconValue = ref(\"\");\n</script>\n\n<style scoped lang=\"scss\">\n@import \"./index.scss\";\n</style>\n"
  },
  {
    "path": "src/views/assembly/svgIcon/index.scss",
    "content": ".icon-list {\n  box-sizing: border-box;\n  display: flex;\n  flex-wrap: wrap;\n  justify-content: space-between;\n  width: 100%;\n  padding: 40px 100px 0;\n}\n"
  },
  {
    "path": "src/views/assembly/svgIcon/index.vue",
    "content": "<template>\n  <div class=\"card content-box\">\n    <el-alert\n      title=\"SVG 图标目前使用 vite-plugin-svg-icons 插件完成，官方文档请查看 ：https://github.com/vbenjs/vite-plugin-svg-icons\"\n      type=\"warning\"\n      :closable=\"false\"\n    />\n    <div class=\"icon-list\">\n      <SvgIcon name=\"xianxingdaoyu\" />\n      <SvgIcon name=\"xianxingdiqiu\" />\n      <SvgIcon name=\"xianxingditu\" />\n      <SvgIcon name=\"xianxingfanchuan\" />\n      <SvgIcon name=\"xianxingfeiji\" />\n      <SvgIcon name=\"xianxinglvhangriji\" />\n      <SvgIcon name=\"xianxingtianqiyubao\" />\n      <SvgIcon name=\"xianxingxiangjipaizhao\" />\n      <SvgIcon name=\"xianxingxiarilengyin\" />\n      <SvgIcon name=\"xianxingyoulun\" />\n      <SvgIcon name=\"xianxingxiarilengyin\" />\n    </div>\n    <el-descriptions title=\"配置项 📚\" :column=\"1\" border>\n      <el-descriptions-item label=\"name\"> 图标的名称，svg 图标必须存储在 src/assets/icons 目录下 </el-descriptions-item>\n      <el-descriptions-item label=\"prefix\"> 图标的前缀，默认为 \"icon\" </el-descriptions-item>\n      <el-descriptions-item label=\"iconStyle\"> 图标的样式，默认样式为 { width: \"100px\", height: \"100px\" } </el-descriptions-item>\n    </el-descriptions>\n  </div>\n</template>\n\n<script setup lang=\"ts\" name=\"svgIcon\">\nimport SvgIcon from \"@/components/SvgIcon/index.vue\";\n</script>\n\n<style scoped lang=\"scss\">\n@import \"./index.scss\";\n</style>\n"
  },
  {
    "path": "src/views/assembly/tabs/detail.vue",
    "content": "<template>\n  <div class=\"card content-box\">\n    <span class=\"text\"> 我是 Tab 详情页 🍓🍇🍈🍉</span>\n    <span class=\"text\">params:{{ route.params }}</span>\n    <el-input v-model=\"value\" placeholder=\"测试详情页缓存\"></el-input>\n  </div>\n</template>\n\n<script setup lang=\"ts\" name=\"tabsDetail\">\nimport { ref } from \"vue\";\nimport { useRoute } from \"vue-router\";\nimport { useTabsStore } from \"@/stores/modules/tabs\";\n\nconst route = useRoute();\nconst tabStore = useTabsStore();\ntabStore.setTabsTitle(`No.${route.params.id} - ${route.meta.title}`);\n\nconst value = ref(\"\");\n</script>\n"
  },
  {
    "path": "src/views/assembly/tabs/index.vue",
    "content": "<template>\n  <div class=\"card content-box\">\n    <span class=\"text\"> 标签页操作 🍓🍇🍈🍉</span>\n    <div class=\"mb30\">\n      <el-input v-model=\"tabsTitle\" placeholder=\"请输入内容\" style=\"width: 500px\">\n        <template #append>\n          <el-button type=\"primary\" @click=\"editTabsTitle\"> 设置 Tab 标题 </el-button>\n        </template>\n      </el-input>\n    </div>\n    <el-space class=\"mb30\">\n      <el-button type=\"primary\" :icon=\"Refresh\" @click=\"refresh\"> 刷新当前页 </el-button>\n      <el-button type=\"primary\" :icon=\"FullScreen\" @click=\"maximize\"> 当前页全屏切换 </el-button>\n      <el-button type=\"primary\" :icon=\"FullScreen\" @click=\"closeOnSide('left')\"> 关闭左侧标签页 </el-button>\n      <el-button type=\"primary\" :icon=\"FullScreen\" @click=\"closeOnSide('right')\"> 关闭右侧标签页 </el-button>\n      <el-button type=\"primary\" :icon=\"Remove\" @click=\"closeCurrentTab\"> 关闭当前页 </el-button>\n      <el-button type=\"primary\" :icon=\"CircleClose\" @click=\"closeOtherTab\"> 关闭其他 </el-button>\n      <el-button type=\"primary\" :icon=\"FolderDelete\" @click=\"closeAllTab\"> 全部关闭 </el-button>\n    </el-space>\n    <el-space class=\"mb30\">\n      <el-button type=\"info\" :icon=\"Promotion\" @click=\"handleToDetail('1')\"> 打开详情页1 </el-button>\n      <el-button type=\"info\" :icon=\"Promotion\" @click=\"handleToDetail('2')\"> 打开详情页2 </el-button>\n      <el-button type=\"info\" :icon=\"Promotion\" @click=\"handleToDetail('3')\"> 打开详情页3 </el-button>\n      <el-button type=\"info\" :icon=\"Promotion\" @click=\"handleToDetail('4')\"> 打开详情页4 </el-button>\n      <el-button type=\"info\" :icon=\"Promotion\" @click=\"handleToDetail('5')\"> 打开详情页5 </el-button>\n    </el-space>\n  </div>\n</template>\n\n<script setup lang=\"ts\" name=\"tabs\">\nimport { inject, nextTick, ref } from \"vue\";\nimport { HOME_URL } from \"@/config\";\nimport { useRoute, useRouter } from \"vue-router\";\nimport { useTabsStore } from \"@/stores/modules/tabs\";\nimport { useGlobalStore } from \"@/stores/modules/global\";\nimport { useKeepAliveStore } from \"@/stores/modules/keepAlive\";\nimport { Refresh, FullScreen, Remove, CircleClose, FolderDelete, Promotion } from \"@element-plus/icons-vue\";\nimport { ElMessage } from \"element-plus\";\n\nconst route = useRoute();\nconst router = useRouter();\nconst tabStore = useTabsStore();\nconst globalStore = useGlobalStore();\nconst keepAliveStore = useKeepAliveStore();\n\n// 刷新当前页\nconst refreshCurrentPage: Function = inject(\"refresh\") as Function;\nconst refresh = () => {\n  setTimeout(() => {\n    route.meta.isKeepAlive && keepAliveStore.removeKeepAliveName(route.fullPath as string);\n    refreshCurrentPage(false);\n    nextTick(() => {\n      route.meta.isKeepAlive && keepAliveStore.addKeepAliveName(route.fullPath as string);\n      refreshCurrentPage(true);\n    });\n  }, 0);\n};\n\n// 设置 Tab 标题\nconst tabsTitle = ref(\"\");\nconst editTabsTitle = () => {\n  if (!tabsTitle.value) return ElMessage.warning(\"请输入标题\");\n  tabStore.setTabsTitle(tabsTitle.value);\n};\n\n// 当前页全屏\nconst maximize = () => {\n  globalStore.setGlobalState(\"maximize\", !globalStore.maximize);\n};\n\n// 关闭当前页\nconst closeCurrentTab = () => {\n  if (route.meta.isAffix) return;\n  tabStore.removeTabs(route.fullPath);\n};\n\n// 关闭其他\nconst closeOtherTab = () => {\n  tabStore.closeMultipleTab(route.fullPath);\n};\n\n// 关闭两侧\nconst closeOnSide = (direction: \"left\" | \"right\") => {\n  tabStore.closeTabsOnSide(route.fullPath, direction);\n};\n\n// 全部关闭\nconst closeAllTab = () => {\n  tabStore.closeMultipleTab();\n  router.push(HOME_URL);\n};\n\n// 打开详情页\nconst handleToDetail = (id: string) => {\n  router.push(`/assembly/tabs/detail/${id}`);\n};\n</script>\n"
  },
  {
    "path": "src/views/assembly/treeFilter/index.scss",
    "content": ".content-box {\n  display: flex;\n  flex-direction: row;\n  align-items: flex-start;\n  .descriptions-box {\n    display: flex;\n    flex: 1;\n    flex-direction: column;\n    align-items: center;\n    height: 100%;\n  }\n}\n"
  },
  {
    "path": "src/views/assembly/treeFilter/index.vue",
    "content": "<template>\n  <div class=\"content-box\">\n    <TreeFilter\n      label=\"name\"\n      title=\"部门列表(单选)\"\n      :request-api=\"getUserDepartment\"\n      :default-value=\"treeFilterValue.departmentId\"\n      @change=\"changeTreeFilter\"\n    />\n    <TreeFilter\n      title=\"部门列表(多选)\"\n      multiple\n      label=\"name\"\n      :request-api=\"getUserDepartment\"\n      :default-value=\"treeFilterValue1.departmentId\"\n      @change=\"changeTreeFilter1\"\n    />\n    <div class=\"descriptions-box card\">\n      <span class=\"text\"> 树形筛选器 🍓🍇🍈🍉</span>\n      <el-descriptions title=\"配置项 📚\" :column=\"1\" border>\n        <el-descriptions-item label=\"requestApi\"> 请求分类数据的 api </el-descriptions-item>\n        <el-descriptions-item label=\"data\"> 分类数据，如果有分类数据，则不会执行 api 请求 </el-descriptions-item>\n        <el-descriptions-item label=\"title\"> treeFilter 标题 </el-descriptions-item>\n        <el-descriptions-item label=\"id\"> 选择的id，默认为 “id” </el-descriptions-item>\n        <el-descriptions-item label=\"label\"> 显示的label，默认为 “label” </el-descriptions-item>\n        <el-descriptions-item label=\"multiple\"> 是否为多选，默认为 false </el-descriptions-item>\n        <el-descriptions-item label=\"defaultValue\"> 默认选中的值 </el-descriptions-item>\n      </el-descriptions>\n    </div>\n  </div>\n</template>\n\n<script setup lang=\"ts\" name=\"treeFilter\">\nimport { reactive } from \"vue\";\nimport { ElMessage } from \"element-plus\";\nimport { getUserDepartment } from \"@/api/modules/user\";\nimport TreeFilter from \"@/components/TreeFilter/index.vue\";\n\nconst treeFilterValue = reactive({ departmentId: \"1\" });\nconst changeTreeFilter = (val: string) => {\n  ElMessage.success(`你选择了 id 为 ${val} 的数据🤔`);\n  treeFilterValue.departmentId = val;\n};\n\nconst treeFilterValue1 = reactive({ departmentId: [\"11\"] });\nconst changeTreeFilter1 = (val: string[]) => {\n  ElMessage.success(`你选择了 id 为 ${JSON.stringify(val)} 的数据🤔`);\n  treeFilterValue1.departmentId = val;\n};\n</script>\n\n<style scoped lang=\"scss\">\n@import \"./index.scss\";\n</style>\n"
  },
  {
    "path": "src/views/assembly/uploadFile/index.scss",
    "content": ".upload {\n  height: auto;\n  .card {\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    width: 100%;\n    .upload-list {\n      display: flex;\n      flex-wrap: wrap;\n      justify-content: space-around;\n      width: 90%;\n      margin: 10px 0;\n    }\n  }\n  .img-box {\n    margin-bottom: 10px;\n  }\n  .form-box {\n    display: flex;\n    justify-content: space-around;\n    width: 100%;\n    .card {\n      margin-right: 10px;\n      &:last-child {\n        margin-right: 0;\n      }\n      .el-form {\n        width: 100%;\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "src/views/assembly/uploadFile/index.vue",
    "content": "<template>\n  <div class=\"upload content-box\">\n    <!-- 多图上传 -->\n    <div class=\"card img-box\">\n      <span class=\"text\">多图片上传组件 🍓🍇🍈🍉</span>\n      <div class=\"upload-list\">\n        <UploadImgs v-model:file-list=\"fileList\" :drag=\"false\" border-radius=\"50%\">\n          <template #empty>\n            <el-icon><Picture /></el-icon>\n            <span>请上传照片</span>\n          </template>\n          <template #tip> 圆形组件，图片最大为 5M（禁止拖拽上传） </template>\n        </UploadImgs>\n        <UploadImgs v-model:file-list=\"fileList1\" width=\"250px\">\n          <template #empty>\n            <el-icon><Picture /></el-icon>\n            <span>请上传照片</span>\n          </template>\n          <template #tip> 长方形组件（可拖拽上传） </template>\n        </UploadImgs>\n      </div>\n      <el-descriptions title=\"配置项 📚（其它参数和单图上传组件相同）\" :column=\"1\" border>\n        <el-descriptions-item label=\"fileList\">\n          双向绑定的 fileList 值，使用示例： v-model:file-list=\"fileList\"\n        </el-descriptions-item>\n        <el-descriptions-item label=\"limit\"> 最大图片上传数，默认为 5 张 </el-descriptions-item>\n      </el-descriptions>\n    </div>\n    <!-- 单图上传 -->\n    <div class=\"card img-box\">\n      <span class=\"text\">单图片上传组件 🍓🍇🍈🍉</span>\n      <div class=\"upload-list\">\n        <UploadImg v-model:image-url=\"avatar1\" :file-size=\"3\">\n          <template #tip> 上传图片最大为 3M </template>\n        </UploadImg>\n        <UploadImg v-model:image-url=\"avatar2\" :drag=\"false\" border-radius=\"50%\">\n          <template #empty>\n            <el-icon><Avatar /></el-icon>\n            <span>请上传头像</span>\n          </template>\n          <template #tip> 圆形组件（禁止拖拽上传） </template>\n        </UploadImg>\n        <UploadImg v-model:image-url=\"avatar3\" width=\"250px\">\n          <template #empty>\n            <el-icon><Picture /></el-icon>\n            <span>请上传 Banner 图</span>\n          </template>\n          <template #tip> 长方形组件（可拖拽上传） </template>\n        </UploadImg>\n        <UploadImg v-model:image-url=\"avatar4\" disabled>\n          <template #tip> 无图（禁用上传） </template>\n        </UploadImg>\n        <UploadImg v-model:image-url=\"avatar5\" disabled>\n          <template #tip> 有图（禁用编辑、删除） </template>\n        </UploadImg>\n      </div>\n      <el-descriptions title=\"配置项 📚\" :column=\"1\" border>\n        <el-descriptions-item label=\"imageUrl\">\n          双向绑定的 imageUrl 值，使用示例： v-model:image-url=\"avatar\"\n        </el-descriptions-item>\n        <el-descriptions-item label=\"api\">\n          上传图片的 api 方法，一般项目上传都是同一个 api 方法，在组件里直接引入即可（非必传）\n        </el-descriptions-item>\n        <el-descriptions-item label=\"drag\"> 是否支持拖拽上传图片，默认为 true </el-descriptions-item>\n        <el-descriptions-item label=\"disabled\"> 是否禁用 上传、删除 功能，可查看图片 </el-descriptions-item>\n        <el-descriptions-item label=\"fileSize\"> 单个图片文件大小限制，默认为 5M </el-descriptions-item>\n        <el-descriptions-item label=\"fileType\">\n          图片类型限制，默认类型为 [\"image/jpeg\", \"image/png\", \"image/gif\"]\n        </el-descriptions-item>\n        <el-descriptions-item label=\"height\"> 组件高度样式，默认为 \"150px\" </el-descriptions-item>\n        <el-descriptions-item label=\"width\"> 组件宽度样式，默认为 \"150px\" </el-descriptions-item>\n        <el-descriptions-item label=\"borderRadius\"> 组件边框圆角样式，默认为 \"8px\" </el-descriptions-item>\n      </el-descriptions>\n    </div>\n\n    <!-- 表单使用 -->\n    <div class=\"form-box\">\n      <div class=\"card\">\n        <el-alert\n          title=\"图片上传组件在 form 表单中使用，上传之后成功会自动重新校验\"\n          type=\"warning\"\n          effect=\"dark\"\n          :closable=\"false\"\n          class=\"mb20\"\n        />\n        <el-form ref=\"ruleFormRef\" label-width=\"100px\" label-suffix=\" :\" :rules=\"rules\" :model=\"fromModel\">\n          <el-form-item label=\"用户头像\" prop=\"avatar\">\n            <UploadImg v-model:image-url=\"fromModel.avatar\" width=\"135px\" height=\"135px\" :file-size=\"3\">\n              <template #empty>\n                <el-icon><Avatar /></el-icon>\n                <span>请上传头像</span>\n              </template>\n              <template #tip> 头像大小不能超过 3M </template>\n            </UploadImg>\n          </el-form-item>\n          <el-form-item label=\"用户照片\" prop=\"photo\">\n            <UploadImgs v-model:file-list=\"fromModel.photo\" :limit=\"3\" height=\"140px\" width=\"140px\" border-radius=\"50%\">\n              <template #empty>\n                <el-icon><Picture /></el-icon>\n                <span>请上传照片</span>\n              </template>\n              <template #tip> 最多上传 3 张照片 </template>\n            </UploadImgs>\n          </el-form-item>\n          <el-form-item label=\"用户姓名\" prop=\"username\">\n            <el-input v-model=\"fromModel.username\" placeholder=\"请填写用户姓名\" clearable></el-input>\n          </el-form-item>\n          <el-form-item label=\"身份证号\" prop=\"idCard\">\n            <el-input v-model=\"fromModel.idCard\" placeholder=\"请填写身份证号\" clearable></el-input>\n          </el-form-item>\n          <el-form-item label=\"邮箱\" prop=\"email\">\n            <el-input v-model=\"fromModel.email\" placeholder=\"请填写邮箱\" clearable></el-input>\n          </el-form-item>\n          <el-form-item>\n            <el-button> 取消 </el-button>\n            <el-button type=\"primary\" @click=\"submit\"> 确定 </el-button>\n          </el-form-item>\n        </el-form>\n      </div>\n      <div class=\"card\">\n        <el-alert\n          title=\"图片上传组件在 form 表单中使用，如果该表单禁用，则上传组件会自动禁用\"\n          type=\"warning\"\n          effect=\"dark\"\n          :closable=\"false\"\n          class=\"mb20\"\n        />\n        <el-form label-width=\"100px\" label-suffix=\" :\" disabled :model=\"fromModel1\">\n          <el-form-item label=\"用户头像\" prop=\"avatar\">\n            <UploadImg v-model:image-url=\"fromModel1.avatar\" width=\"135px\" height=\"135px\" :file-size=\"3\">\n              <template #empty>\n                <el-icon><Avatar /></el-icon>\n                <span>请上传头像</span>\n              </template>\n              <template #tip> 头像大小不能超过 3M </template>\n            </UploadImg>\n          </el-form-item>\n          <el-form-item label=\"用户照片\" prop=\"photo\">\n            <UploadImgs v-model:file-list=\"fromModel1.photo\" height=\"140px\" width=\"140px\" border-radius=\"50%\">\n              <template #empty>\n                <el-icon><Picture /></el-icon>\n                <span>请上传照片</span>\n              </template>\n              <template #tip> 照片大小不能超过 5M </template>\n            </UploadImgs>\n          </el-form-item>\n          <el-form-item label=\"用户姓名\" prop=\"username\">\n            <el-input v-model=\"fromModel1.username\" placeholder=\"请填写用户姓名\" clearable></el-input>\n          </el-form-item>\n          <el-form-item label=\"身份证号\" prop=\"idCard\">\n            <el-input v-model=\"fromModel1.idCard\" placeholder=\"请填写身份证号\" clearable></el-input>\n          </el-form-item>\n          <el-form-item label=\"邮箱\" prop=\"email\">\n            <el-input v-model=\"fromModel1.email\" placeholder=\"请填写邮箱\" clearable></el-input>\n          </el-form-item>\n          <el-form-item>\n            <el-button> 取消 </el-button>\n            <el-button type=\"primary\" @click=\"submit\"> 确定 </el-button>\n          </el-form-item>\n        </el-form>\n      </div>\n    </div>\n  </div>\n</template>\n\n<script setup lang=\"ts\" name=\"uploadFile\">\nimport { ref, reactive } from \"vue\";\nimport { FormInstance } from \"element-plus\";\nimport UploadImg from \"@/components/Upload/Img.vue\";\nimport UploadImgs from \"@/components/Upload/Imgs.vue\";\n\nconst fileList = ref([{ name: \"img\", url: \"https://i.imgtg.com/2023/01/16/QRBHS.jpg\" }]);\nconst fileList1 = ref([]);\n\nconst avatar1 = ref(\"\");\nconst avatar2 = ref(\"\");\nconst avatar3 = ref(\"\");\nconst avatar4 = ref(\"\");\nconst avatar5 = ref(\"https://i.imgtg.com/2023/01/16/QRqMK.jpg\");\n\nconst rules = reactive({\n  avatar: [{ required: true, message: \"请上传用户头像\" }],\n  photo: [{ required: true, message: \"请上传用户照片\" }],\n  username: [{ required: true, message: \"请填写用户姓名\" }],\n  idCard: [{ required: true, message: \"请填写身份证号\" }],\n  email: [{ required: true, message: \"请填写邮箱\" }]\n});\n\nconst fromModel = ref({\n  avatar: \"\",\n  photo: [{ name: \"img\", url: \"https://i.imgtg.com/2023/01/16/QR57a.jpg\" }],\n  username: \"\",\n  idCard: \"\",\n  email: \"\"\n});\nconst fromModel1 = ref({\n  avatar: \"\",\n  photo: [{ name: \"img\", url: \"https://i.imgtg.com/2023/01/16/QR57a.jpg\" }],\n  username: \"\",\n  idCard: \"\",\n  email: \"\"\n});\nconst ruleFormRef = ref<FormInstance>();\nconst submit = () => {\n  ruleFormRef.value!.validate(valid => {\n    console.log(valid);\n  });\n};\n</script>\n\n<style scoped lang=\"scss\">\n@import \"./index.scss\";\n</style>\n"
  },
  {
    "path": "src/views/assembly/wangEditor/index.scss",
    "content": ".el-button {\n  margin-top: 20px;\n}\n:deep(.el-dialog__body) {\n  height: 700px !important;\n  overflow: auto;\n}\n"
  },
  {
    "path": "src/views/assembly/wangEditor/index.vue",
    "content": "<template>\n  <div class=\"card content-box\">\n    <span class=\"text\">富文本编辑器 🍓🍇🍈🍉</span>\n    <WangEditor v-model:value=\"content\" height=\"400px\" />\n    <el-button type=\"primary\" @click=\"dialogVisible = true\"> 内容预览 </el-button>\n    <el-descriptions title=\"配置项 📚\" :column=\"1\" border>\n      <el-descriptions-item label=\"value\"> 双向绑定的 value 值，使用示例： v-model:value=\"content\"> </el-descriptions-item>\n      <el-descriptions-item label=\"toolbarConfig\">\n        富文本 ToolBar区域 配置：\n        <a href=\"https://www.wangeditor.com/v5/toolbar-config.html\"> https://www.wangeditor.com/v5/toolbar-config.html </a>\n      </el-descriptions-item>\n      <el-descriptions-item label=\"editorConfig\">\n        富文本 编辑区域 配置：\n        <a href=\"https://www.wangeditor.com/v5/editor-config.html\"> https://www.wangeditor.com/v5/editor-config.html </a>\n      </el-descriptions-item>\n      <el-descriptions-item label=\"height\"> 富文本高度，默认为 500px </el-descriptions-item>\n      <el-descriptions-item label=\"mode\"> 富文本模式，默认为 default（\"default\" | \"simple\"） </el-descriptions-item>\n      <el-descriptions-item label=\"hideToolBar\"> 隐藏 ToolBar 区域，默认为 false </el-descriptions-item>\n      <el-descriptions-item label=\"disabled\"> 禁用富文本编辑器，默认为 false </el-descriptions-item>\n    </el-descriptions>\n    <el-dialog v-model=\"dialogVisible\" title=\"富文本内容预览\" width=\"1300px\" top=\"50px\">\n      <div class=\"view\" v-html=\"content\"></div>\n    </el-dialog>\n  </div>\n</template>\n\n<script setup lang=\"ts\" name=\"wangEditor\">\nimport { ref } from \"vue\";\nimport WangEditor from \"@/components/WangEditor/index.vue\";\n\nconst content = ref(\"\");\n\nconst dialogVisible = ref(false);\n</script>\n\n<style scoped lang=\"scss\">\n@import \"./index.scss\";\n</style>\n"
  },
  {
    "path": "src/views/auth/button/index.scss",
    "content": ".content-box {\n  align-items: flex-start;\n  span {\n    width: 100%;\n    text-align: center;\n  }\n}\n"
  },
  {
    "path": "src/views/auth/button/index.vue",
    "content": "<template>\n  <div class=\"card content-box\">\n    <span class=\"text\"> 按钮权限 🍓🍇🍈🍉</span>\n    <el-alert\n      class=\"mb20\"\n      :title=\"`当前用户按钮权限：${JSON.stringify(Object.keys(BUTTONS))}`\"\n      type=\"success\"\n      :closable=\"false\"\n    />\n    <el-divider content-position=\"left\"> 使用 Hooks 方式绑定权限 </el-divider>\n    <el-row class=\"mb20\">\n      <el-button v-if=\"BUTTONS.add\" type=\"primary\" :icon=\"CirclePlus\"> 新增 </el-button>\n      <el-button v-if=\"BUTTONS.edit\" type=\"warning\" :icon=\"EditPen\"> 编辑 </el-button>\n      <el-button v-if=\"BUTTONS.delete\" type=\"danger\" plain :icon=\"Delete\"> 删除 </el-button>\n      <el-button v-if=\"BUTTONS.import\" type=\"info\" plain :icon=\"Upload\"> 导入数据 </el-button>\n      <el-button v-if=\"BUTTONS.export\" type=\"info\" plain :icon=\"Download\"> 导出数据 </el-button>\n    </el-row>\n    <el-divider content-position=\"left\"> 使用 v-auth 指令绑定单个权限 </el-divider>\n    <el-row class=\"mb20\">\n      <el-button v-auth=\"'add'\" type=\"primary\" :icon=\"CirclePlus\"> 新增 </el-button>\n      <el-button v-auth=\"'edit'\" type=\"warning\" :icon=\"EditPen\"> 编辑 </el-button>\n      <el-button v-auth=\"'delete'\" type=\"danger\" plain :icon=\"Delete\"> 删除 </el-button>\n      <el-button v-auth=\"'import'\" type=\"info\" plain :icon=\"Upload\"> 导入数据 </el-button>\n      <el-button v-auth=\"'export'\" type=\"info\" plain :icon=\"Download\"> 导出数据 </el-button>\n    </el-row>\n    <el-divider content-position=\"left\"> 使用 v-auth 指令绑定多个权限 </el-divider>\n    <el-row>\n      <el-button v-auth=\"['add', 'edit', 'delete', 'import', 'export']\" type=\"primary\" :icon=\"CirclePlus\"> 新增 </el-button>\n      <el-button v-auth=\"['add', 'edit', 'delete', 'import', 'export']\" type=\"warning\" :icon=\"EditPen\"> 编辑 </el-button>\n      <el-button v-auth=\"['add', 'edit', 'delete', 'import', 'export']\" type=\"danger\" plain :icon=\"Delete\"> 删除 </el-button>\n      <el-button v-auth=\"['add', 'edit', 'delete', 'import', 'export']\" type=\"info\" plain :icon=\"Upload\"> 导入数据 </el-button>\n      <el-button v-auth=\"['add', 'edit', 'delete', 'import', 'export']\" type=\"info\" plain :icon=\"Download\"> 导出数据 </el-button>\n    </el-row>\n  </div>\n</template>\n\n<script setup lang=\"ts\" name=\"authButton\">\nimport { useAuthButtons } from \"@/hooks/useAuthButtons\";\nimport { CirclePlus, Delete, EditPen, Download, Upload } from \"@element-plus/icons-vue\";\n\nconst { BUTTONS } = useAuthButtons();\n</script>\n\n<style scoped lang=\"scss\">\n@import \"./index.scss\";\n</style>\n"
  },
  {
    "path": "src/views/auth/menu/index.scss",
    "content": ""
  },
  {
    "path": "src/views/auth/menu/index.vue",
    "content": "<template>\n  <div class=\"card content-box\">\n    <span class=\"text\"> 菜单权限 🍓🍇🍈🍉</span>\n    <el-alert\n      :title=\"'目前菜单权限使用动态路由实现，模拟后台根据不同用户角色返回对应路由，注意观察左侧菜单变化（admin 账号可查看所有菜单、user 账号只可查看部分菜单）'\"\n      type=\"success\"\n      :closable=\"false\"\n    />\n    <el-button class=\"mt20\" type=\"primary\" :icon=\"Promotion\" @click=\"handleToLogin\"> 登录其他账号 </el-button>\n  </div>\n</template>\n\n<script setup lang=\"ts\" name=\"authMenu\">\nimport { useRouter } from \"vue-router\";\nimport { LOGIN_URL } from \"@/config\";\nimport { useUserStore } from \"@/stores/modules/user\";\nimport { Promotion } from \"@element-plus/icons-vue\";\n\nconst router = useRouter();\nconst userStore = useUserStore();\n\nconst handleToLogin = () => {\n  userStore.setToken(\"\");\n  router.push(LOGIN_URL);\n};\n</script>\n\n<style scoped lang=\"scss\">\n@import \"./index.scss\";\n</style>\n"
  },
  {
    "path": "src/views/dashboard/dataVisualize/components/curve.vue",
    "content": "<template>\n  <div class=\"echarts\">\n    <ECharts :option=\"option\" />\n  </div>\n</template>\n\n<script setup lang=\"ts\" name=\"cure\">\nimport { ECOption } from \"@/components/ECharts/config\";\nimport ECharts from \"@/components/ECharts/index.vue\";\n\nconst curveData = [\n  { value: 30, spotName: \"掘金\" },\n  { value: 90, spotName: \"CSDN\" },\n  { value: 10, spotName: \"Gitee\" },\n  { value: 70, spotName: \"GitHub\" },\n  { value: 20, spotName: \"知乎\" },\n  { value: 60, spotName: \"MyBlog\" },\n  { value: 55, spotName: \"简书\" },\n  { value: 80, spotName: \"StackOverFlow\" },\n  { value: 50, spotName: \"博客园\" }\n];\n\nconst option: ECOption = {\n  tooltip: {\n    trigger: \"axis\",\n    backgroundColor: \"transparent\",\n    axisPointer: {\n      type: \"none\"\n    },\n    padding: 0,\n    formatter: (p: any) => {\n      let dom = `<div style=\"width:100%; height: 70px !important; display:flex;flex-direction: column;justify-content: space-between;padding:10px;box-sizing: border-box;\n      color:#fff; background: #6B9DFE;border-radius: 4px;font-size:14px; \">\n        <div style=\"display: flex; align-items: center;\"> <div style=\"width:5px;height:5px;background:#ffffff;border-radius: 50%;margin-right:5px\"></div>平台 :  ${p[0].name}</div>\n        <div style=\"display: flex;align-items: center;\"><div style=\"width:5px;height:5px;background:#ffffff;border-radius: 50%;margin-right:5px\"></div>数据量 :  ${p[0].value}</div>\n      </div>`;\n      return dom;\n    }\n  },\n  toolbox: {\n    show: true,\n    orient: \"horizontal\"\n  },\n  grid: {\n    left: \"0\",\n    right: \"0\"\n  },\n  dataZoom: [\n    {\n      show: false,\n      height: 10,\n      xAxisIndex: [0],\n      bottom: 0,\n      startValue: 0,\n      endValue: 9,\n      handleStyle: {\n        color: \"#6b9dfe\"\n      },\n      textStyle: {\n        color: \"transparent\"\n      }\n    },\n    {\n      type: \"inside\",\n      show: true,\n      height: 0,\n      zoomLock: true\n    }\n  ],\n  xAxis: [\n    {\n      type: \"category\",\n      data: curveData.map((val: any) => {\n        return {\n          value: val.spotName\n        };\n      }),\n      axisTick: {\n        show: false\n      },\n      axisLabel: {\n        margin: 20,\n        interval: 0,\n        color: \"#a1a1a1\",\n        fontSize: 14,\n        formatter: function (name: string) {\n          undefined;\n          return name.length > 8 ? name.slice(0, 8) + \"...\" : name;\n        }\n      },\n      axisLine: {\n        lineStyle: {\n          color: \"#c0c0c0\"\n        }\n      }\n    }\n  ],\n  yAxis: [\n    {\n      min: 0,\n      axisLine: {\n        show: false\n      },\n      axisTick: {\n        show: false\n      },\n      splitLine: {\n        show: true,\n        lineStyle: {\n          color: \"#c0c0c0\"\n        }\n      },\n      axisLabel: {\n        color: \"#a1a1a1\",\n        fontSize: 16,\n        fontWeight: 400,\n        formatter: function (value: number) {\n          if (value === 0) {\n            return value + \"\";\n          } else if (value >= 10000) {\n            return value / 10000 + \"w\";\n          }\n          return value + \"\";\n        }\n      }\n    }\n  ],\n  series: [\n    {\n      name: \"Direct\",\n      type: \"bar\",\n      data: curveData.map((val: any) => {\n        return {\n          value: val.value\n        };\n      }),\n      barWidth: \"45px\",\n      itemStyle: {\n        color: \"#C5D8FF\",\n        borderRadius: [12, 12, 0, 0]\n      },\n      emphasis: {\n        itemStyle: {\n          color: \"#6B9DFE\"\n        }\n      }\n    }\n  ]\n};\n</script>\n\n<style lang=\"scss\" scoped>\n.echarts {\n  width: 100%;\n  height: 100%;\n}\n</style>\n"
  },
  {
    "path": "src/views/dashboard/dataVisualize/components/pie.vue",
    "content": "<template>\n  <div class=\"echarts\">\n    <ECharts :option=\"option\" />\n  </div>\n</template>\n\n<script setup lang=\"ts\" name=\"pie\">\nimport { ECOption } from \"@/components/ECharts/config\";\nimport ECharts from \"@/components/ECharts/index.vue\";\n\nconst pieData = [\n  { value: 5000, name: \"Gitee 访问量\" },\n  { value: 5000, name: \"GitHub 访问量\" }\n];\n\nconst option: ECOption = {\n  title: {\n    text: \"Gitee / GitHub\",\n    subtext: \"访问占比\",\n    left: \"56%\",\n    top: \"45%\",\n    textAlign: \"center\",\n    textStyle: {\n      fontSize: 18,\n      color: \"#767676\"\n    },\n    subtextStyle: {\n      fontSize: 15,\n      color: \"#a1a1a1\"\n    }\n  },\n  tooltip: {\n    trigger: \"item\"\n  },\n  legend: {\n    top: \"4%\",\n    left: \"2%\",\n    orient: \"vertical\",\n    icon: \"circle\", //图例形状\n    align: \"left\",\n    itemGap: 20,\n    textStyle: {\n      fontSize: 13,\n      color: \"#a1a1a1\",\n      fontWeight: 500\n    },\n    formatter: function (name: string) {\n      let dataCopy = \"\";\n      for (let i = 0; i < pieData.length; i++) {\n        if (pieData[i].name == name && pieData[i].value >= 10000) {\n          dataCopy = (pieData[i].value / 10000).toFixed(2);\n          return name + \"      \" + dataCopy + \"w\";\n        } else if (pieData[i].name == name) {\n          dataCopy = pieData[i].value + \"\";\n          return name + \"      \" + dataCopy;\n        }\n      }\n      return \"\";\n    }\n  },\n  series: [\n    {\n      type: \"pie\",\n      radius: [\"70%\", \"40%\"],\n      center: [\"57%\", \"52%\"],\n      silent: true,\n      clockwise: true,\n      startAngle: 150,\n      data: pieData,\n      labelLine: {\n        length: 80,\n        length2: 30,\n        lineStyle: {\n          width: 1\n        }\n      },\n      label: {\n        position: \"outside\",\n        show: true,\n        formatter: \"{d}%\",\n        fontWeight: 400,\n        fontSize: 19,\n        color: \"#a1a1a1\"\n      },\n      color: [\n        {\n          type: \"linear\",\n          x: 0,\n          y: 0,\n          x2: 0.5,\n          y2: 1,\n          colorStops: [\n            {\n              offset: 0,\n              color: \"#feb791\" // 0% 处的颜色\n            },\n            {\n              offset: 1,\n              color: \"#fe8b4c\" // 100% 处的颜色\n            }\n          ]\n        },\n        {\n          type: \"linear\",\n          x: 0,\n          y: 0,\n          x2: 1,\n          y2: 0.5,\n          colorStops: [\n            {\n              offset: 0,\n              color: \"#b898fd\" // 0% 处的颜色\n            },\n            {\n              offset: 1,\n              color: \"#8347fd\" // 100% 处的颜色\n            }\n          ]\n        }\n      ]\n    }\n  ]\n};\n</script>\n\n<style lang=\"scss\" scoped>\n.echarts {\n  width: 100%;\n  height: 100%;\n}\n</style>\n"
  },
  {
    "path": "src/views/dashboard/dataVisualize/index.scss",
    "content": ".dataVisualize-box {\n  .top-box {\n    box-sizing: border-box;\n    padding: 25px 40px 0;\n    margin-bottom: 10px;\n    .top-title {\n      margin-bottom: 10px;\n      font-family: DIN;\n      font-size: 18px;\n      font-weight: bold;\n    }\n    .top-content {\n      margin-top: 10px;\n      .item-left {\n        box-sizing: border-box;\n        height: 100%;\n        padding: 40px 0 30px 30px;\n        overflow: hidden;\n        color: #ffffff;\n        background: url(\"./images/book-bg.png\");\n        background-position: 50%;\n        background-size: cover;\n        border-radius: 20px;\n        .left-title {\n          font-family: DIN;\n          font-size: 20px;\n        }\n        .img-box {\n          display: flex;\n          align-items: center;\n          justify-content: center;\n          width: 90px;\n          height: 90px;\n          margin: 40px 0 20px;\n          background-color: #ffffff;\n          border-radius: 20px;\n          box-shadow: 0 10px 20px rgb(0 0 0 / 14%);\n          img {\n            width: 60px;\n            height: 65px;\n          }\n        }\n        .left-number {\n          overflow: hidden;\n          font-family: DIN;\n          font-size: 62px;\n        }\n      }\n      .item-center {\n        display: flex;\n        flex-wrap: wrap;\n        place-content: space-between space-between;\n        height: 100%;\n        .traffic-box {\n          box-sizing: border-box;\n          display: flex;\n          flex-direction: column;\n          width: 47%;\n          height: 48%;\n          padding: 25px;\n          border-radius: 30px;\n          .traffic-img {\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            width: 70px;\n            height: 70px;\n            margin-bottom: 10px;\n            background-color: #ffffff;\n            border-radius: 19px;\n          }\n        }\n        img {\n          width: 33px;\n          height: 33px;\n        }\n        .item-value {\n          margin-bottom: 4px;\n          font-family: DIN;\n          font-size: 28px;\n          font-weight: bold;\n          color: #1a1a37;\n        }\n        .traffic-name {\n          overflow: hidden;\n          font-family: DIN;\n          font-size: 15px;\n          color: #1a1a37;\n          white-space: nowrap;\n        }\n        .gitee-traffic {\n          background: url(\"./images/1-bg.png\");\n          background-color: #e8faea;\n          background-size: 100% 100%;\n        }\n        .gitHub-traffic {\n          background: url(\"./images/2-bg.png\");\n          background-color: #e7e1fb;\n          background-size: 100% 100%;\n        }\n        .today-traffic {\n          background: url(\"./images/3-bg.png\");\n          background-color: #fdf3e9;\n          background-size: 100% 100%;\n        }\n        .yesterday-traffic {\n          background: url(\"./images/4-bg.png\");\n          background-color: #f0f5fb;\n          background-size: 100% 100%;\n        }\n      }\n      .item-right {\n        box-sizing: border-box;\n        display: flex;\n        flex-direction: column;\n        width: 100%;\n        height: 430px;\n        border: 1px solid var(--el-border-color);\n        border-radius: 25px;\n        .echarts-title {\n          padding: 15px 20px;\n          font-family: DIN;\n          font-size: 18px;\n          font-weight: bold;\n          border-bottom: 1px solid var(--el-border-color);\n        }\n        .book-echarts {\n          flex: 1;\n          width: 100%;\n        }\n      }\n    }\n  }\n  .bottom-box {\n    position: relative;\n    padding: 20px 0 0;\n    .bottom-title {\n      position: absolute;\n      top: 75px;\n      left: 50px;\n      font-family: DIN;\n      font-size: 18px;\n      font-weight: bold;\n    }\n    .bottom-tabs {\n      padding: 0 50px;\n    }\n    .curve-echarts {\n      box-sizing: border-box;\n      height: 400px;\n      padding: 0 50px;\n    }\n  }\n}\n"
  },
  {
    "path": "src/views/dashboard/dataVisualize/index.vue",
    "content": "<template>\n  <div class=\"dataVisualize-box\">\n    <div class=\"card top-box\">\n      <div class=\"top-title\">数据可视化</div>\n      <el-tabs v-model=\"tabActive\" class=\"demo-tabs\">\n        <el-tab-pane v-for=\"item in tab\" :key=\"item.name\" :label=\"item.label\" :name=\"item.name\"></el-tab-pane>\n      </el-tabs>\n      <div class=\"top-content\">\n        <el-row :gutter=\"40\">\n          <el-col class=\"mb40\" :xs=\"24\" :sm=\"12\" :md=\"12\" :lg=\"6\" :xl=\"6\">\n            <div class=\"item-left sle\">\n              <span class=\"left-title\">访问总数</span>\n              <div class=\"img-box\">\n                <img src=\"./images/book-sum.png\" alt=\"\" />\n              </div>\n              <span class=\"left-number\">848.132w</span>\n            </div>\n          </el-col>\n          <el-col class=\"mb40\" :xs=\"24\" :sm=\"12\" :md=\"12\" :lg=\"8\" :xl=\"8\">\n            <div class=\"item-center\">\n              <div class=\"gitee-traffic traffic-box\">\n                <div class=\"traffic-img\">\n                  <img src=\"./images/add_person.png\" alt=\"\" />\n                </div>\n                <span class=\"item-value\">2222</span>\n                <span class=\"traffic-name sle\">Gitee 访问量</span>\n              </div>\n              <div class=\"gitHub-traffic traffic-box\">\n                <div class=\"traffic-img\">\n                  <img src=\"./images/add_team.png\" alt=\"\" />\n                </div>\n                <span class=\"item-value\">2222</span>\n                <span class=\"traffic-name sle\">GitHub 访问量</span>\n              </div>\n              <div class=\"today-traffic traffic-box\">\n                <div class=\"traffic-img\">\n                  <img src=\"./images/today.png\" alt=\"\" />\n                </div>\n                <span class=\"item-value\">4567</span>\n                <span class=\"traffic-name sle\">今日访问量</span>\n              </div>\n              <div class=\"yesterday-traffic traffic-box\">\n                <div class=\"traffic-img\">\n                  <img src=\"./images/book_sum.png\" alt=\"\" />\n                </div>\n                <span class=\"item-value\">1234</span>\n                <span class=\"traffic-name sle\">昨日访问量</span>\n              </div>\n            </div>\n          </el-col>\n          <el-col class=\"mb40\" :xs=\"24\" :sm=\"24\" :md=\"24\" :lg=\"10\" :xl=\"10\">\n            <div class=\"item-right\">\n              <div class=\"echarts-title\">Gitee / GitHub 访问量占比</div>\n              <div class=\"book-echarts\">\n                <Pie ref=\"pieRef\" />\n              </div>\n            </div>\n          </el-col>\n        </el-row>\n      </div>\n    </div>\n    <div class=\"card bottom-box\">\n      <div class=\"bottom-title\">数据来源</div>\n      <div class=\"bottom-tabs\">\n        <el-tabs v-model=\"tabActive\" class=\"demo-tabs\">\n          <el-tab-pane v-for=\"item in tab\" :key=\"item.name\" :label=\"item.label\" :name=\"item.name\"></el-tab-pane>\n        </el-tabs>\n      </div>\n      <div class=\"curve-echarts\">\n        <Curve ref=\"curveRef\" />\n      </div>\n    </div>\n  </div>\n</template>\n\n<script setup lang=\"ts\" name=\"dataVisualize\">\nimport { ref } from \"vue\";\nimport Pie from \"./components/pie.vue\";\nimport Curve from \"./components/curve.vue\";\n\nconst tabActive = ref(1);\n\nconst tab = [\n  { label: \"未来7日\", name: 1 },\n  { label: \"近七日\", name: 2 },\n  { label: \"近一月\", name: 3 },\n  { label: \"近三月\", name: 4 },\n  { label: \"近半年\", name: 5 },\n  { label: \"近一年\", name: 6 }\n];\n</script>\n\n<style scoped lang=\"scss\">\n@import \"./index.scss\";\n</style>\n"
  },
  {
    "path": "src/views/dataScreen/assets/alarmList.Json",
    "content": "[\n  {\n    \"id\": 1,\n    \"warnMsg\": \"2022-04-25 14:09-23:09 预约人数 1,006 人次，已达到最大承载量的 99 %\",\n    \"label\": \"峨眉山\"\n  },\n  {\n    \"id\": 2,\n    \"warnMsg\": \"2022-04-12 19:30-20:30 预约人数 66,666 人次，已达到最大承载量的 25 %\",\n    \"label\": \"稻城亚丁\"\n  },\n  {\n    \"id\": 3,\n    \"warnMsg\": \"2022-04-09 14:09-23:09 预约人数 5,813 人次，已达到最大承载量的 3 %\",\n    \"label\": \"九寨沟\"\n  },\n  {\n    \"id\": 4,\n    \"warnMsg\": \"2022-04-07 22:39-23:39 预约人数 999 人次，已达到最大承载量的 13 %\",\n    \"label\": \"万里长城\"\n  },\n  {\n    \"id\": 5,\n    \"warnMsg\": \"2022-03-29 09:00-12:00 预约人数 123,368 人次，已达到最大承载量的 46 %\",\n    \"label\": \"北京故宫\"\n  },\n  {\n    \"id\": 6,\n    \"warnMsg\": \"2022-03-29 09:00-12:00 预约人数 869 人次，已达到最大承载量的 95 %\",\n    \"label\": \"阆中古城\"\n  },\n  {\n    \"id\": 7,\n    \"warnMsg\": \"2022-03-29 09:00-12:00 预约人数 6,985 人次，已达到最大承载量的 80 %\",\n    \"label\": \"乐山大佛\"\n  },\n  {\n    \"id\": 8,\n    \"warnMsg\": \"2022-03-29 09:00-12:00 预约人数 25,696 人次，已达到最大承载量的 70 %\",\n    \"label\": \"阿坝州黄龙\"\n  },\n  {\n    \"id\": 9,\n    \"warnMsg\": \"2022-03-29 09:00-12:00 预约人数 45,987 人次，已达到最大承载量的 55 %\",\n    \"label\": \"青城山\"\n  }\n]\n"
  },
  {
    "path": "src/views/dataScreen/assets/china.json",
    "content": "{\n  \"type\": \"FeatureCollection\",\n  \"features\": [\n    {\n      \"type\": \"Feature\",\n      \"properties\": {\n        \"adcode\": 110000,\n        \"name\": \"北京市\",\n        \"center\": [116.405285, 39.904989],\n        \"centroid\": [116.41995, 40.18994],\n        \"childrenNum\": 16,\n        \"level\": \"province\",\n        \"parent\": { \"adcode\": 100000 },\n        \"subFeatureIndex\": 0,\n        \"acroutes\": [100000]\n      },\n      \"geometry\": {\n        \"type\": \"MultiPolygon\",\n        \"coordinates\": [\n          [\n            [\n              [117.348611, 40.581141],\n              [117.389879, 40.561593],\n              [117.429915, 40.576141],\n              [117.412669, 40.605226],\n              [117.467487, 40.649738],\n              [117.467487, 40.649738],\n              [117.501364, 40.636569],\n              [117.514914, 40.660181],\n              [117.493973, 40.675161],\n              [117.408973, 40.686961],\n              [117.342451, 40.673799],\n              [117.319662, 40.657911],\n              [117.278394, 40.664267],\n              [117.208177, 40.694675],\n              [117.117018, 40.70012],\n              [117.11209, 40.707379],\n              [117.012308, 40.693767],\n              [116.964881, 40.709647],\n              [116.926692, 40.745022],\n              [116.924229, 40.773581],\n              [116.848468, 40.839264],\n              [116.81336, 40.848319],\n              [116.759773, 40.889954],\n              [116.713577, 40.909858],\n              [116.722201, 40.927495],\n              [116.677853, 40.970888],\n              [116.698795, 41.021477],\n              [116.688324, 41.044501],\n              [116.647672, 41.059394],\n              [116.615643, 41.053076],\n              [116.623034, 41.021026],\n              [116.598397, 40.974503],\n              [116.5676, 40.992574],\n              [116.519557, 40.98128],\n              [116.519557, 40.98128],\n              [116.455499, 40.980828],\n              [116.447492, 40.953715],\n              [116.477057, 40.899907],\n              [116.398216, 40.90624],\n              [116.370499, 40.94377],\n              [116.339702, 40.929303],\n              [116.334159, 40.90443],\n              [116.438253, 40.81934],\n              [116.46597, 40.774487],\n              [116.453651, 40.765876],\n              [116.316912, 40.772221],\n              [116.311369, 40.754996],\n              [116.273181, 40.762703],\n              [116.247311, 40.791707],\n              [116.22021, 40.744115],\n              [116.204812, 40.740035],\n              [116.171551, 40.695582],\n              [116.162928, 40.662451],\n              [116.133979, 40.666536],\n              [116.09887, 40.630665],\n              [116.005247, 40.583868],\n              [115.982457, 40.578868],\n              [115.971986, 40.6025],\n              [115.907929, 40.617493],\n              [115.885139, 40.595229],\n              [115.827857, 40.587504],\n              [115.819849, 40.55932],\n              [115.784741, 40.55841],\n              [115.755176, 40.540221],\n              [115.736082, 40.503372],\n              [115.781045, 40.49336],\n              [115.771806, 40.443734],\n              [115.864197, 40.359422],\n              [115.917784, 40.354405],\n              [115.95166, 40.281852],\n              [115.968907, 40.264045],\n              [115.89869, 40.234354],\n              [115.870356, 40.185909],\n              [115.855574, 40.188652],\n              [115.847567, 40.147036],\n              [115.806299, 40.15344],\n              [115.773654, 40.176307],\n              [115.75456, 40.145663],\n              [115.75456, 40.145663],\n              [115.599959, 40.119583],\n              [115.59072, 40.096239],\n              [115.527278, 40.076092],\n              [115.485394, 40.040364],\n              [115.454597, 40.029825],\n              [115.450286, 39.992697],\n              [115.428728, 39.984443],\n              [115.426264, 39.950502],\n              [115.481083, 39.935819],\n              [115.522967, 39.899099],\n              [115.515575, 39.892212],\n              [115.515575, 39.892212],\n              [115.526046, 39.87568],\n              [115.514344, 39.837549],\n              [115.567314, 39.816407],\n              [115.552532, 39.794799],\n              [115.50572, 39.784222],\n              [115.483547, 39.798477],\n              [115.483547, 39.798477],\n              [115.443511, 39.785601],\n              [115.439815, 39.752022],\n              [115.486626, 39.741899],\n              [115.491554, 39.670074],\n              [115.478619, 39.650723],\n              [115.478619, 39.650723],\n              [115.522351, 39.640124],\n              [115.518039, 39.597252],\n              [115.545756, 39.618922],\n              [115.587024, 39.589873],\n              [115.633836, 39.599557],\n              [115.633836, 39.599557],\n              [115.667712, 39.615234],\n              [115.698509, 39.577881],\n              [115.698509, 39.577881],\n              [115.699125, 39.570039],\n              [115.699125, 39.570039],\n              [115.716988, 39.56035],\n              [115.716988, 39.56035],\n              [115.718835, 39.553891],\n              [115.718835, 39.553891],\n              [115.720683, 39.551122],\n              [115.720683, 39.551122],\n              [115.722531, 39.5442],\n              [115.721299, 39.543738],\n              [115.722531, 39.5442],\n              [115.722531, 39.543738],\n              [115.721299, 39.543738],\n              [115.722531, 39.543738],\n              [115.724995, 39.5442],\n              [115.724995, 39.5442],\n              [115.738545, 39.540046],\n              [115.738545, 39.539585],\n              [115.738545, 39.540046],\n              [115.738545, 39.539585],\n              [115.752712, 39.515581],\n              [115.806299, 39.510041],\n              [115.806299, 39.510041],\n              [115.821081, 39.522968],\n              [115.821081, 39.522968],\n              [115.828473, 39.541431],\n              [115.867893, 39.546507],\n              [115.867893, 39.546507],\n              [115.91532, 39.582955],\n              [115.91532, 39.582955],\n              [115.910393, 39.600479],\n              [115.910393, 39.600479],\n              [115.957204, 39.560812],\n              [115.978146, 39.595868],\n              [115.995392, 39.576958],\n              [116.026189, 39.587567],\n              [116.036044, 39.571884],\n              [116.09887, 39.575113],\n              [116.130283, 39.567732],\n              [116.151841, 39.583416],\n              [116.198652, 39.589412],\n              [116.240536, 39.564041],\n              [116.257782, 39.500344],\n              [116.307057, 39.488337],\n              [116.337854, 39.455536],\n              [116.361876, 39.455074],\n              [116.361876, 39.455074],\n              [116.434557, 39.442597],\n              [116.454883, 39.453226],\n              [116.444412, 39.482332],\n              [116.411767, 39.482794],\n              [116.401912, 39.528046],\n              [116.443796, 39.510041],\n              [116.437637, 39.526661],\n              [116.478289, 39.535431],\n              [116.473361, 39.552968],\n              [116.50847, 39.551122],\n              [116.524484, 39.596329],\n              [116.592237, 39.621227],\n              [116.592237, 39.621227],\n              [116.620571, 39.601863],\n              [116.664918, 39.605552],\n              [116.723432, 39.59264],\n              [116.724048, 39.59264],\n              [116.723432, 39.59264],\n              [116.724048, 39.59264],\n              [116.726512, 39.595407],\n              [116.726512, 39.595407],\n              [116.709266, 39.618],\n              [116.748686, 39.619844],\n              [116.79057, 39.595868],\n              [116.812128, 39.615695],\n              [116.8497, 39.66777],\n              [116.906366, 39.677444],\n              [116.90575, 39.688037],\n              [116.889736, 39.687576],\n              [116.887272, 39.72533],\n              [116.916837, 39.731314],\n              [116.902055, 39.763523],\n              [116.949482, 39.778703],\n              [116.918069, 39.84628],\n              [116.907598, 39.832494],\n              [116.865714, 39.843982],\n              [116.812128, 39.889916],\n              [116.78441, 39.891294],\n              [116.782563, 39.947749],\n              [116.757925, 39.967934],\n              [116.781331, 40.034866],\n              [116.820135, 40.02845],\n              [116.831222, 40.051359],\n              [116.867562, 40.041739],\n              [116.927924, 40.055024],\n              [116.945171, 40.04128],\n              [117.025243, 40.030283],\n              [117.051728, 40.059605],\n              [117.105315, 40.074261],\n              [117.105315, 40.074261],\n              [117.140423, 40.064185],\n              [117.159517, 40.077008],\n              [117.204481, 40.069681],\n              [117.210024, 40.082045],\n              [117.224191, 40.094865],\n              [117.224191, 40.094865],\n              [117.254988, 40.114548],\n              [117.254988, 40.114548],\n              [117.254988, 40.114548],\n              [117.274082, 40.105852],\n              [117.307343, 40.136971],\n              [117.349227, 40.136513],\n              [117.367089, 40.172649],\n              [117.367089, 40.173106],\n              [117.367089, 40.173106],\n              [117.367089, 40.172649],\n              [117.383719, 40.188195],\n              [117.389879, 40.227958],\n              [117.351075, 40.229786],\n              [117.331365, 40.289613],\n              [117.295024, 40.2782],\n              [117.271618, 40.325211],\n              [117.271618, 40.325211],\n              [117.243285, 40.369453],\n              [117.226039, 40.368997],\n              [117.234046, 40.417312],\n              [117.263611, 40.442367],\n              [117.208793, 40.501552],\n              [117.262995, 40.512927],\n              [117.247597, 40.539766],\n              [117.269771, 40.560684],\n              [117.348611, 40.581141],\n              [117.348611, 40.581141]\n            ]\n          ]\n        ]\n      }\n    },\n    {\n      \"type\": \"Feature\",\n      \"properties\": {\n        \"adcode\": 120000,\n        \"name\": \"天津市\",\n        \"center\": [117.190182, 39.125596],\n        \"centroid\": [117.347043, 39.288036],\n        \"childrenNum\": 16,\n        \"level\": \"province\",\n        \"parent\": { \"adcode\": 100000 },\n        \"subFeatureIndex\": 1,\n        \"acroutes\": [100000]\n      },\n      \"geometry\": {\n        \"type\": \"MultiPolygon\",\n        \"coordinates\": [\n          [\n            [\n              [117.765602, 39.400527],\n              [117.846906, 39.407926],\n              [117.871543, 39.411625],\n              [117.870311, 39.455074],\n              [117.899877, 39.474479],\n              [117.912195, 39.517428],\n              [117.912195, 39.517428],\n              [117.904804, 39.533585],\n              [117.933753, 39.574191],\n              [117.868464, 39.59679],\n              [117.829659, 39.589873],\n              [117.766834, 39.598635],\n              [117.753899, 39.579726],\n              [117.753899, 39.579726],\n              [117.745276, 39.547892],\n              [117.715711, 39.529892],\n              [117.707088, 39.576036],\n              [117.684914, 39.58895],\n              [117.654117, 39.575113],\n              [117.637486, 39.603246],\n              [117.66274, 39.636437],\n              [117.668899, 39.666849],\n              [117.627015, 39.703693],\n              [117.57774, 39.726711],\n              [117.595603, 39.74604],\n              [117.56111, 39.754782],\n              [117.546327, 39.775943],\n              [117.561726, 39.799856],\n              [117.529081, 39.859144],\n              [117.529081, 39.859144],\n              [117.508139, 39.901854],\n              [117.508139, 39.901854],\n              [117.512451, 39.90874],\n              [117.512451, 39.90874],\n              [117.513067, 39.910576],\n              [117.513067, 39.910576],\n              [117.514914, 39.946832],\n              [117.534625, 39.954631],\n              [117.546327, 39.999116],\n              [117.594987, 39.994531],\n              [117.594987, 39.994531],\n              [117.614697, 39.97252],\n              [117.671363, 39.973896],\n              [117.691073, 39.984902],\n              [117.756363, 39.965181],\n              [117.781616, 39.966558],\n              [117.781616, 39.966558],\n              [117.795167, 39.996823],\n              [117.795167, 39.996823],\n              [117.793319, 40.005534],\n              [117.793319, 40.005534],\n              [117.768681, 40.022034],\n              [117.768681, 40.022034],\n              [117.744044, 40.018368],\n              [117.74774, 40.047236],\n              [117.776073, 40.059605],\n              [117.752667, 40.081588],\n              [117.71879, 40.082045],\n              [117.71879, 40.082045],\n              [117.675059, 40.082045],\n              [117.655965, 40.109514],\n              [117.655965, 40.109514],\n              [117.654117, 40.114548],\n              [117.654117, 40.114548],\n              [117.651653, 40.122786],\n              [117.651653, 40.122786],\n              [117.613465, 40.158014],\n              [117.613465, 40.158014],\n              [117.609769, 40.160301],\n              [117.609769, 40.160301],\n              [117.576508, 40.178593],\n              [117.571581, 40.219276],\n              [117.548791, 40.232527],\n              [117.505059, 40.227044],\n              [117.450241, 40.252627],\n              [117.415748, 40.248973],\n              [117.389879, 40.227958],\n              [117.383719, 40.188195],\n              [117.367089, 40.172649],\n              [117.367089, 40.173106],\n              [117.367089, 40.173106],\n              [117.367089, 40.172649],\n              [117.349227, 40.136513],\n              [117.307343, 40.136971],\n              [117.274082, 40.105852],\n              [117.254988, 40.114548],\n              [117.254988, 40.114548],\n              [117.254988, 40.114548],\n              [117.224191, 40.094865],\n              [117.224191, 40.094865],\n              [117.210024, 40.082045],\n              [117.192162, 40.066475],\n              [117.198322, 39.992697],\n              [117.150894, 39.944996],\n              [117.162597, 39.876598],\n              [117.162597, 39.876598],\n              [117.227887, 39.852712],\n              [117.247597, 39.860981],\n              [117.251908, 39.834332],\n              [117.192162, 39.832953],\n              [117.156438, 39.817326],\n              [117.15767, 39.796638],\n              [117.205713, 39.763984],\n              [117.161981, 39.748801],\n              [117.165061, 39.718886],\n              [117.165061, 39.718886],\n              [117.177996, 39.645194],\n              [117.152742, 39.623532],\n              [117.10901, 39.625375],\n              [117.10901, 39.625375],\n              [117.016004, 39.653949],\n              [116.983359, 39.638742],\n              [116.983359, 39.638742],\n              [116.964265, 39.64335],\n              [116.948866, 39.680668],\n              [116.948866, 39.680668],\n              [116.944555, 39.695405],\n              [116.944555, 39.695405],\n              [116.932236, 39.706456],\n              [116.932236, 39.706456],\n              [116.90575, 39.688037],\n              [116.906366, 39.677444],\n              [116.8497, 39.66777],\n              [116.812128, 39.615695],\n              [116.808432, 39.576497],\n              [116.78749, 39.554352],\n              [116.819519, 39.528507],\n              [116.820751, 39.482332],\n              [116.785026, 39.465702],\n              [116.832454, 39.435664],\n              [116.876185, 39.43474],\n              [116.839845, 39.413474],\n              [116.840461, 39.378326],\n              [116.818287, 39.3737],\n              [116.829374, 39.338994],\n              [116.870642, 39.357506],\n              [116.889736, 39.338068],\n              [116.87249, 39.291304],\n              [116.881729, 39.225966],\n              [116.881729, 39.225966],\n              [116.855859, 39.215766],\n              [116.870026, 39.153607],\n              [116.909446, 39.150822],\n              [116.912526, 39.110898],\n              [116.91191, 39.111362],\n              [116.91191, 39.111362],\n              [116.912526, 39.110898],\n              [116.871874, 39.054688],\n              [116.812744, 39.05097],\n              [116.812744, 39.05097],\n              [116.783179, 39.05097],\n              [116.783179, 39.05097],\n              [116.754229, 39.034701],\n              [116.754229, 39.034701],\n              [116.754845, 39.003084],\n              [116.72836, 38.975174],\n              [116.708034, 38.931892],\n              [116.722201, 38.896968],\n              [116.723432, 38.852706],\n              [116.75115, 38.831264],\n              [116.737599, 38.784629],\n              [116.746222, 38.754299],\n              [116.794265, 38.744498],\n              [116.794265, 38.744498],\n              [116.858939, 38.741231],\n              [116.877417, 38.680522],\n              [116.948866, 38.689398],\n              [116.950714, 38.689398],\n              [116.95133, 38.689398],\n              [116.950714, 38.689398],\n              [116.948866, 38.689398],\n              [116.95133, 38.689398],\n              [117.038793, 38.688464],\n              [117.068358, 38.680522],\n              [117.055424, 38.639398],\n              [117.070822, 38.608072],\n              [117.109626, 38.584685],\n              [117.150894, 38.617892],\n              [117.183539, 38.61836],\n              [117.183539, 38.61836],\n              [117.213104, 38.639866],\n              [117.213104, 38.639866],\n              [117.258684, 38.608072],\n              [117.258684, 38.608072],\n              [117.238358, 38.580943],\n              [117.25314, 38.556143],\n              [117.368937, 38.564566],\n              [117.432379, 38.601524],\n              [117.47919, 38.616489],\n              [117.55803, 38.613683],\n              [117.639334, 38.626776],\n              [117.65658, 38.66043],\n              [117.729261, 38.680055],\n              [117.740964, 38.700141],\n              [117.740964, 38.753833],\n              [117.671363, 38.772032],\n              [117.646725, 38.788827],\n              [117.64611, 38.828933],\n              [117.752051, 38.847579],\n              [117.778536, 38.869016],\n              [117.847522, 38.855502],\n              [117.875855, 38.920252],\n              [117.898029, 38.948649],\n              [117.855529, 38.957492],\n              [117.837667, 39.057011],\n              [117.871543, 39.122506],\n              [117.96455, 39.172631],\n              [117.977485, 39.206028],\n              [118.032919, 39.219939],\n              [118.034767, 39.218548],\n              [118.064948, 39.231065],\n              [118.064948, 39.256094],\n              [118.036615, 39.264898],\n              [118.024296, 39.289451],\n              [118.024296, 39.289451],\n              [117.982412, 39.298714],\n              [117.982412, 39.298714],\n              [117.979333, 39.300566],\n              [117.979333, 39.300566],\n              [117.973173, 39.312143],\n              [117.973173, 39.312143],\n              [117.965782, 39.314921],\n              [117.965782, 39.314921],\n              [117.919587, 39.318162],\n              [117.919587, 39.318162],\n              [117.88879, 39.332051],\n              [117.854913, 39.328348],\n              [117.854297, 39.328348],\n              [117.854913, 39.328348],\n              [117.854297, 39.328348],\n              [117.850601, 39.363984],\n              [117.850601, 39.363984],\n              [117.810565, 39.354729],\n              [117.805022, 39.373237],\n              [117.784696, 39.376938],\n              [117.74466, 39.354729],\n              [117.670747, 39.357969],\n              [117.669515, 39.322792],\n              [117.594987, 39.349176],\n              [117.536472, 39.338068],\n              [117.521074, 39.357043],\n              [117.570965, 39.404689],\n              [117.601146, 39.419485],\n              [117.614081, 39.407001],\n              [117.668899, 39.412087],\n              [117.673211, 39.386652],\n              [117.699696, 39.407463],\n              [117.765602, 39.400527]\n            ]\n          ],\n          [\n            [\n              [117.805022, 39.373237],\n              [117.852449, 39.380639],\n              [117.846906, 39.407926],\n              [117.765602, 39.400527],\n              [117.784696, 39.376938],\n              [117.805022, 39.373237]\n            ]\n          ]\n        ]\n      }\n    },\n    {\n      \"type\": \"Feature\",\n      \"properties\": {\n        \"adcode\": 130000,\n        \"name\": \"河北省\",\n        \"center\": [114.502461, 38.045474],\n        \"childrenNum\": 11,\n        \"level\": \"province\",\n        \"parent\": { \"adcode\": 100000 },\n        \"subFeatureIndex\": 2,\n        \"acroutes\": [100000]\n      },\n      \"geometry\": {\n        \"type\": \"MultiPolygon\",\n        \"coordinates\": [\n          [\n            [\n              [117.467487, 40.649738],\n              [117.412669, 40.605226],\n              [117.429915, 40.576141],\n              [117.389879, 40.561593],\n              [117.348611, 40.581141],\n              [117.348611, 40.581141],\n              [117.269771, 40.560684],\n              [117.247597, 40.539766],\n              [117.262995, 40.512927],\n              [117.208793, 40.501552],\n              [117.263611, 40.442367],\n              [117.234046, 40.417312],\n              [117.226039, 40.368997],\n              [117.243285, 40.369453],\n              [117.271618, 40.325211],\n              [117.271618, 40.325211],\n              [117.295024, 40.2782],\n              [117.331365, 40.289613],\n              [117.351075, 40.229786],\n              [117.389879, 40.227958],\n              [117.415748, 40.248973],\n              [117.450241, 40.252627],\n              [117.505059, 40.227044],\n              [117.548791, 40.232527],\n              [117.571581, 40.219276],\n              [117.576508, 40.178593],\n              [117.609769, 40.160301],\n              [117.609769, 40.160301],\n              [117.613465, 40.158014],\n              [117.613465, 40.158014],\n              [117.651653, 40.122786],\n              [117.651653, 40.122786],\n              [117.654117, 40.114548],\n              [117.654117, 40.114548],\n              [117.655965, 40.109514],\n              [117.655965, 40.109514],\n              [117.675059, 40.082045],\n              [117.71879, 40.082045],\n              [117.71879, 40.082045],\n              [117.752667, 40.081588],\n              [117.776073, 40.059605],\n              [117.74774, 40.047236],\n              [117.744044, 40.018368],\n              [117.768681, 40.022034],\n              [117.768681, 40.022034],\n              [117.793319, 40.005534],\n              [117.793319, 40.005534],\n              [117.795167, 39.996823],\n              [117.795167, 39.996823],\n              [117.781616, 39.966558],\n              [117.781616, 39.966558],\n              [117.756363, 39.965181],\n              [117.691073, 39.984902],\n              [117.671363, 39.973896],\n              [117.614697, 39.97252],\n              [117.594987, 39.994531],\n              [117.594987, 39.994531],\n              [117.546327, 39.999116],\n              [117.534625, 39.954631],\n              [117.514914, 39.946832],\n              [117.513067, 39.910576],\n              [117.513067, 39.910576],\n              [117.512451, 39.90874],\n              [117.512451, 39.90874],\n              [117.508139, 39.901854],\n              [117.508139, 39.901854],\n              [117.529081, 39.859144],\n              [117.529081, 39.859144],\n              [117.561726, 39.799856],\n              [117.546327, 39.775943],\n              [117.56111, 39.754782],\n              [117.595603, 39.74604],\n              [117.57774, 39.726711],\n              [117.627015, 39.703693],\n              [117.668899, 39.666849],\n              [117.66274, 39.636437],\n              [117.637486, 39.603246],\n              [117.654117, 39.575113],\n              [117.684914, 39.58895],\n              [117.707088, 39.576036],\n              [117.715711, 39.529892],\n              [117.745276, 39.547892],\n              [117.753899, 39.579726],\n              [117.753899, 39.579726],\n              [117.766834, 39.598635],\n              [117.829659, 39.589873],\n              [117.868464, 39.59679],\n              [117.933753, 39.574191],\n              [117.904804, 39.533585],\n              [117.912195, 39.517428],\n              [117.912195, 39.517428],\n              [117.899877, 39.474479],\n              [117.870311, 39.455074],\n              [117.871543, 39.411625],\n              [117.846906, 39.407926],\n              [117.852449, 39.380639],\n              [117.805022, 39.373237],\n              [117.810565, 39.354729],\n              [117.850601, 39.363984],\n              [117.850601, 39.363984],\n              [117.854297, 39.328348],\n              [117.854913, 39.328348],\n              [117.854297, 39.328348],\n              [117.854913, 39.328348],\n              [117.88879, 39.332051],\n              [117.919587, 39.318162],\n              [117.919587, 39.318162],\n              [117.965782, 39.314921],\n              [117.965782, 39.314921],\n              [117.973173, 39.312143],\n              [117.973173, 39.312143],\n              [117.979333, 39.300566],\n              [117.979333, 39.300566],\n              [117.982412, 39.298714],\n              [117.982412, 39.298714],\n              [118.024296, 39.289451],\n              [118.024296, 39.289451],\n              [118.036615, 39.264898],\n              [118.064948, 39.256094],\n              [118.064948, 39.231065],\n              [118.034767, 39.218548],\n              [118.026144, 39.201854],\n              [118.070492, 39.213911],\n              [118.077883, 39.201854],\n              [118.12531, 39.182838],\n              [118.162883, 39.136433],\n              [118.1906, 39.080708],\n              [118.225092, 39.034701],\n              [118.319331, 39.009594],\n              [118.366143, 39.016104],\n              [118.377845, 38.971917],\n              [118.491178, 38.909077],\n              [118.539837, 38.910008],\n              [118.604511, 38.971452],\n              [118.570634, 38.999363],\n              [118.533062, 39.090928],\n              [118.588497, 39.107648],\n              [118.578642, 39.130863],\n              [118.637156, 39.157319],\n              [118.76096, 39.133648],\n              [118.814546, 39.138754],\n              [118.857662, 39.162888],\n              [118.897082, 39.151286],\n              [118.920488, 39.171703],\n              [118.951285, 39.178662],\n              [118.896466, 39.139683],\n              [118.890307, 39.118792],\n              [118.926031, 39.123435],\n              [118.97777, 39.163352],\n              [119.023966, 39.187012],\n              [119.038132, 39.211593],\n              [119.096031, 39.24219],\n              [119.121284, 39.281576],\n              [119.185342, 39.342234],\n              [119.272805, 39.363521],\n              [119.317153, 39.4107],\n              [119.316537, 39.437051],\n              [119.269726, 39.498497],\n              [119.366428, 39.734996],\n              [119.474217, 39.813189],\n              [119.536427, 39.809052],\n              [119.520413, 39.840306],\n              [119.540739, 39.888079],\n              [119.588166, 39.910576],\n              [119.620195, 39.904609],\n              [119.642369, 39.925264],\n              [119.681789, 39.922511],\n              [119.726137, 39.940867],\n              [119.787115, 39.950502],\n              [119.820375, 39.979399],\n              [119.842549, 39.956007],\n              [119.872114, 39.960594],\n              [119.854252, 39.98857],\n              [119.845629, 40.000949],\n              [119.845629, 40.000949],\n              [119.854252, 40.033033],\n              [119.81668, 40.050443],\n              [119.81668, 40.050443],\n              [119.787115, 40.041739],\n              [119.787115, 40.041739],\n              [119.783419, 40.046778],\n              [119.783419, 40.046778],\n              [119.772332, 40.08113],\n              [119.736608, 40.104936],\n              [119.760629, 40.136056],\n              [119.745847, 40.207851],\n              [119.716898, 40.195966],\n              [119.671934, 40.23938],\n              [119.639289, 40.231613],\n              [119.639289, 40.231613],\n              [119.651608, 40.271808],\n              [119.598021, 40.334335],\n              [119.586934, 40.375381],\n              [119.604797, 40.455119],\n              [119.553674, 40.502007],\n              [119.572152, 40.523846],\n              [119.559217, 40.547952],\n              [119.503783, 40.553864],\n              [119.477913, 40.533399],\n              [119.429254, 40.540221],\n              [119.30237, 40.530215],\n              [119.256175, 40.543404],\n              [119.22045, 40.569322],\n              [119.230921, 40.603863],\n              [119.177951, 40.609315],\n              [119.162552, 40.600228],\n              [119.14469, 40.632482],\n              [119.184726, 40.680153],\n              [119.165632, 40.69286],\n              [119.115125, 40.666536],\n              [119.054763, 40.664721],\n              [119.028277, 40.692406],\n              [119.011031, 40.687414],\n              [118.96114, 40.72008],\n              [118.950053, 40.747743],\n              [118.895234, 40.75409],\n              [118.907553, 40.775394],\n              [118.878604, 40.783098],\n              [118.845959, 40.822057],\n              [118.873061, 40.847866],\n              [118.90201, 40.960946],\n              [118.916792, 40.969984],\n              [118.977154, 40.959138],\n              [118.977154, 40.959138],\n              [119.00056, 40.967273],\n              [119.013495, 41.007479],\n              [118.951901, 41.018317],\n              [118.937118, 41.052625],\n              [118.964836, 41.079246],\n              [119.037516, 41.067516],\n              [119.080632, 41.095936],\n              [119.081248, 41.131555],\n              [119.126212, 41.138767],\n              [119.189038, 41.198234],\n              [119.169943, 41.222996],\n              [119.204436, 41.222546],\n              [119.209364, 41.244599],\n              [119.2494, 41.279689],\n              [119.239545, 41.31431],\n              [119.211827, 41.308016],\n              [119.197661, 41.282837],\n              [119.168712, 41.294978],\n              [119.092951, 41.293629],\n              [118.980234, 41.305769],\n              [118.949437, 41.317906],\n              [118.890923, 41.300823],\n              [118.844727, 41.342622],\n              [118.843496, 41.374516],\n              [118.770199, 41.352956],\n              [118.741866, 41.324198],\n              [118.677192, 41.35026],\n              [118.629765, 41.346666],\n              [118.528135, 41.355202],\n              [118.412338, 41.331838],\n              [118.380309, 41.312062],\n              [118.348896, 41.342622],\n              [118.361215, 41.384844],\n              [118.348896, 41.428384],\n              [118.327338, 41.450816],\n              [118.271904, 41.471446],\n              [118.315636, 41.512688],\n              [118.302701, 41.55256],\n              [118.215237, 41.59554],\n              [118.206614, 41.650566],\n              [118.159187, 41.67605],\n              [118.155491, 41.712694],\n              [118.132702, 41.733241],\n              [118.140093, 41.784134],\n              [118.178281, 41.814917],\n              [118.236179, 41.80778],\n              [118.247266, 41.773869],\n              [118.29223, 41.772976],\n              [118.335346, 41.845241],\n              [118.340273, 41.87243],\n              [118.268824, 41.930336],\n              [118.306396, 41.940131],\n              [118.313788, 41.98819],\n              [118.291614, 42.007759],\n              [118.239875, 42.024655],\n              [118.286686, 42.033991],\n              [118.296541, 42.057545],\n              [118.27252, 42.083312],\n              [118.239259, 42.092639],\n              [118.212774, 42.081091],\n              [118.220165, 42.058434],\n              [118.194296, 42.031324],\n              [118.116687, 42.037102],\n              [118.155491, 42.081091],\n              [118.097593, 42.105072],\n              [118.089586, 42.12283],\n              [118.106216, 42.172082],\n              [118.033535, 42.199132],\n              [117.977485, 42.229716],\n              [117.974405, 42.25054],\n              [118.047702, 42.280656],\n              [118.060021, 42.298364],\n              [118.008898, 42.346595],\n              [118.024296, 42.385064],\n              [117.997811, 42.416884],\n              [117.874007, 42.510038],\n              [117.856761, 42.539148],\n              [117.797631, 42.585431],\n              [117.801326, 42.612744],\n              [117.779768, 42.61847],\n              [117.708935, 42.588515],\n              [117.667051, 42.582347],\n              [117.60053, 42.603054],\n              [117.537088, 42.603054],\n              [117.530313, 42.590278],\n              [117.475494, 42.602613],\n              [117.435458, 42.585431],\n              [117.434226, 42.557224],\n              [117.387415, 42.517537],\n              [117.387415, 42.517537],\n              [117.410205, 42.519743],\n              [117.413284, 42.471645],\n              [117.390495, 42.461933],\n              [117.332596, 42.46105],\n              [117.332596, 42.46105],\n              [117.275314, 42.481797],\n              [117.275314, 42.481797],\n              [117.188467, 42.468114],\n              [117.188467, 42.468114],\n              [117.135496, 42.468996],\n              [117.09546, 42.484004],\n              [117.080061, 42.463699],\n              [117.080061, 42.463699],\n              [117.01662, 42.456193],\n              [117.01662, 42.456193],\n              [117.009228, 42.44957],\n              [117.009228, 42.44957],\n              [117.005533, 42.43367],\n              [117.005533, 42.43367],\n              [116.99075, 42.425719],\n              [116.99075, 42.425719],\n              [116.974736, 42.426603],\n              [116.974736, 42.426603],\n              [116.97104, 42.427486],\n              [116.97104, 42.427486],\n              [116.944555, 42.415116],\n              [116.944555, 42.415116],\n              [116.936547, 42.410256],\n              [116.936547, 42.410256],\n              [116.921765, 42.403628],\n              [116.921765, 42.403628],\n              [116.910062, 42.395231],\n              [116.910062, 42.395231],\n              [116.910678, 42.394789],\n              [116.910678, 42.394789],\n              [116.886656, 42.366496],\n              [116.897743, 42.297479],\n              [116.918685, 42.229716],\n              [116.903287, 42.190708],\n              [116.789338, 42.200462],\n              [116.825062, 42.155669],\n              [116.850316, 42.156556],\n              [116.890352, 42.092639],\n              [116.879881, 42.018431],\n              [116.796113, 41.977958],\n              [116.748686, 41.984186],\n              [116.727744, 41.951259],\n              [116.66923, 41.947698],\n              [116.639049, 41.929891],\n              [116.597165, 41.935679],\n              [116.553433, 41.928555],\n              [116.510933, 41.974399],\n              [116.4826, 41.975734],\n              [116.453651, 41.945917],\n              [116.393289, 41.942802],\n              [116.414231, 41.982407],\n              [116.373579, 42.009983],\n              [116.310137, 41.997086],\n              [116.298434, 41.96817],\n              [116.223906, 41.932562],\n              [116.212819, 41.885352],\n              [116.194341, 41.861734],\n              [116.122892, 41.861734],\n              [116.106877, 41.831419],\n              [116.129051, 41.805996],\n              [116.09887, 41.776547],\n              [116.034196, 41.782795],\n              [116.007095, 41.79752],\n              [116.007095, 41.797966],\n              [116.007095, 41.79752],\n              [116.007095, 41.797966],\n              [115.994776, 41.828743],\n              [115.954124, 41.874213],\n              [115.916552, 41.945027],\n              [115.85311, 41.927665],\n              [115.834632, 41.93835],\n              [115.811226, 41.912525],\n              [115.726227, 41.870202],\n              [115.688038, 41.867528],\n              [115.654162, 41.829189],\n              [115.57409, 41.80555],\n              [115.519887, 41.76762],\n              [115.488474, 41.760924],\n              [115.42996, 41.728775],\n              [115.346808, 41.712247],\n              [115.319091, 41.691693],\n              [115.360975, 41.661297],\n              [115.345576, 41.635807],\n              [115.377605, 41.603148],\n              [115.310468, 41.592854],\n              [115.290142, 41.622835],\n              [115.26612, 41.616124],\n              [115.256881, 41.580768],\n              [115.20391, 41.571367],\n              [115.195287, 41.602253],\n              [115.0992, 41.62373],\n              [115.056085, 41.602253],\n              [115.016049, 41.615229],\n              [114.860832, 41.60091],\n              [114.895325, 41.636255],\n              [114.902716, 41.695715],\n              [114.89594, 41.76762],\n              [114.868839, 41.813579],\n              [114.922426, 41.825175],\n              [114.939056, 41.846132],\n              [114.923658, 41.871093],\n              [114.915035, 41.960605],\n              [114.9021, 42.015763],\n              [114.860832, 42.054879],\n              [114.86268, 42.097967],\n              [114.825723, 42.139695],\n              [114.79431, 42.149457],\n              [114.789383, 42.130819],\n              [114.75489, 42.115727],\n              [114.675434, 42.12061],\n              [114.647717, 42.109512],\n              [114.560254, 42.132595],\n              [114.510978, 42.110844],\n              [114.502355, 42.06732],\n              [114.480181, 42.064654],\n              [114.467863, 42.025989],\n              [114.511594, 41.981962],\n              [114.478334, 41.951704],\n              [114.419203, 41.942356],\n              [114.352066, 41.953484],\n              [114.343443, 41.926774],\n              [114.282465, 41.863517],\n              [114.200545, 41.789934],\n              [114.215328, 41.75646],\n              [114.206704, 41.7386],\n              [114.237501, 41.698843],\n              [114.215328, 41.68499],\n              [114.259059, 41.623282],\n              [114.226414, 41.616572],\n              [114.221487, 41.582111],\n              [114.230726, 41.513584],\n              [114.101379, 41.537779],\n              [114.032394, 41.529715],\n              [113.976959, 41.505966],\n              [113.953553, 41.483553],\n              [113.933227, 41.487139],\n              [113.919677, 41.454404],\n              [113.877793, 41.431076],\n              [113.871017, 41.413126],\n              [113.94493, 41.392477],\n              [113.92522, 41.325546],\n              [113.899351, 41.316108],\n              [113.914749, 41.294529],\n              [113.95109, 41.282837],\n              [113.971416, 41.239649],\n              [113.992357, 41.269794],\n              [114.016379, 41.231999],\n              [113.996669, 41.19238],\n              [113.960945, 41.171211],\n              [113.920293, 41.172112],\n              [113.877793, 41.115777],\n              [113.819279, 41.09774],\n              [113.868554, 41.06887],\n              [113.973263, 40.983087],\n              [113.994821, 40.938798],\n              [114.057647, 40.925234],\n              [114.041633, 40.917546],\n              [114.055183, 40.867782],\n              [114.073661, 40.857372],\n              [114.044712, 40.830661],\n              [114.080437, 40.790348],\n              [114.104458, 40.797597],\n              [114.103227, 40.770861],\n              [114.134639, 40.737314],\n              [114.162357, 40.71373],\n              [114.183299, 40.67153],\n              [114.236269, 40.607043],\n              [114.283081, 40.590685],\n              [114.273842, 40.552954],\n              [114.293552, 40.55159],\n              [114.282465, 40.494725],\n              [114.267066, 40.474242],\n              [114.299711, 40.44009],\n              [114.286161, 40.425057],\n              [114.31203, 40.372645],\n              [114.381015, 40.36307],\n              [114.390254, 40.351213],\n              [114.438914, 40.371733],\n              [114.481413, 40.34802],\n              [114.530688, 40.345283],\n              [114.510978, 40.302851],\n              [114.46971, 40.268155],\n              [114.406269, 40.246232],\n              [114.362537, 40.249886],\n              [114.292936, 40.230242],\n              [114.255364, 40.236182],\n              [114.235654, 40.198252],\n              [114.180219, 40.191395],\n              [114.135871, 40.175392],\n              [114.097683, 40.193681],\n              [114.073046, 40.168533],\n              [114.073046, 40.168533],\n              [114.101995, 40.099901],\n              [114.086596, 40.071513],\n              [114.045944, 40.056856],\n              [114.018227, 40.103563],\n              [113.989278, 40.11226],\n              [113.959097, 40.033491],\n              [113.910438, 40.015618],\n              [114.029314, 39.985819],\n              [114.028082, 39.959218],\n              [114.047176, 39.916085],\n              [114.067502, 39.922511],\n              [114.17406, 39.897722],\n              [114.212248, 39.918839],\n              [114.229494, 39.899558],\n              [114.204241, 39.885324],\n              [114.215943, 39.8619],\n              [114.286776, 39.871087],\n              [114.285545, 39.858225],\n              [114.395182, 39.867412],\n              [114.406885, 39.833413],\n              [114.390254, 39.819165],\n              [114.41674, 39.775943],\n              [114.409964, 39.761683],\n              [114.408117, 39.652106],\n              [114.431522, 39.613851],\n              [114.49558, 39.608318],\n              [114.51529, 39.564964],\n              [114.568877, 39.573729],\n              [114.532536, 39.486027],\n              [114.501739, 39.476789],\n              [114.496812, 39.438437],\n              [114.469095, 39.400989],\n              [114.466631, 39.329736],\n              [114.430906, 39.307513],\n              [114.437066, 39.259337],\n              [114.416124, 39.242654],\n              [114.47587, 39.21623],\n              [114.443841, 39.174023],\n              [114.388406, 39.176807],\n              [114.360689, 39.134112],\n              [114.369928, 39.107648],\n              [114.345907, 39.075133],\n              [114.252284, 39.073739],\n              [114.180835, 39.049111],\n              [114.157429, 39.061194],\n              [114.10877, 39.052364],\n              [114.082901, 39.09325],\n              [114.082901, 39.09325],\n              [114.064422, 39.094179],\n              [114.050872, 39.135969],\n              [114.006524, 39.122971],\n              [113.994821, 39.095572],\n              [113.961561, 39.100681],\n              [113.930148, 39.063517],\n              [113.898119, 39.067699],\n              [113.80696, 38.989595],\n              [113.776779, 38.986804],\n              [113.76754, 38.959819],\n              [113.776163, 38.885788],\n              [113.795257, 38.860628],\n              [113.855619, 38.828933],\n              [113.836525, 38.795824],\n              [113.839605, 38.7585],\n              [113.802648, 38.763166],\n              [113.775547, 38.709949],\n              [113.720728, 38.713218],\n              [113.70225, 38.651551],\n              [113.612939, 38.645942],\n              [113.603084, 38.587024],\n              [113.561816, 38.558483],\n              [113.546417, 38.492936],\n              [113.583374, 38.459671],\n              [113.537794, 38.417952],\n              [113.525475, 38.383245],\n              [113.557504, 38.343359],\n              [113.54457, 38.270569],\n              [113.570439, 38.237202],\n              [113.598772, 38.22733],\n              [113.64312, 38.232031],\n              [113.678844, 38.20523],\n              [113.711489, 38.213695],\n              [113.720728, 38.174656],\n              [113.797105, 38.162894],\n              [113.831597, 38.16854],\n              [113.811271, 38.117707],\n              [113.876561, 38.055059],\n              [113.872249, 37.990471],\n              [113.901198, 37.984811],\n              [113.936307, 37.922993],\n              [113.959097, 37.906468],\n              [113.976959, 37.816696],\n              [114.006524, 37.813386],\n              [114.044712, 37.761834],\n              [113.996669, 37.730128],\n              [113.993589, 37.706932],\n              [114.068118, 37.721608],\n              [114.12848, 37.698409],\n              [114.139567, 37.675676],\n              [114.115545, 37.619761],\n              [114.118625, 37.59084],\n              [114.036705, 37.494037],\n              [114.014531, 37.42468],\n              [113.973879, 37.40329],\n              [113.962792, 37.355734],\n              [113.90243, 37.310052],\n              [113.886416, 37.239095],\n              [113.853155, 37.215269],\n              [113.832213, 37.167594],\n              [113.773083, 37.151855],\n              [113.773699, 37.107004],\n              [113.758301, 37.075497],\n              [113.788482, 37.059739],\n              [113.771851, 37.016745],\n              [113.791561, 36.98759],\n              [113.76138, 36.956034],\n              [113.792793, 36.894796],\n              [113.773083, 36.85506],\n              [113.731815, 36.858891],\n              [113.731815, 36.878521],\n              [113.696707, 36.882351],\n              [113.676381, 36.855539],\n              [113.680692, 36.789907],\n              [113.600004, 36.752995],\n              [113.549497, 36.752515],\n              [113.535946, 36.732373],\n              [113.499606, 36.740527],\n              [113.465113, 36.707908],\n              [113.506997, 36.705029],\n              [113.476816, 36.655114],\n              [113.486671, 36.635427],\n              [113.54457, 36.62342],\n              [113.539642, 36.594116],\n              [113.569823, 36.585947],\n              [113.588917, 36.547974],\n              [113.559968, 36.528741],\n              [113.554425, 36.494589],\n              [113.587069, 36.460904],\n              [113.635729, 36.451277],\n              [113.670221, 36.425278],\n              [113.708409, 36.423352],\n              [113.731199, 36.363135],\n              [113.755221, 36.366026],\n              [113.813119, 36.332285],\n              [113.856851, 36.329392],\n              [113.84946, 36.347711],\n              [113.882104, 36.353977],\n              [113.911054, 36.314927],\n              [113.962792, 36.353977],\n              [113.981887, 36.31782],\n              [114.002828, 36.334214],\n              [114.056415, 36.329392],\n              [114.04348, 36.303353],\n              [114.080437, 36.269585],\n              [114.129096, 36.280199],\n              [114.175907, 36.264759],\n              [114.170364, 36.245938],\n              [114.170364, 36.245938],\n              [114.203009, 36.245456],\n              [114.2104, 36.272962],\n              [114.241197, 36.251247],\n              [114.257827, 36.263794],\n              [114.299095, 36.245938],\n              [114.345291, 36.255591],\n              [114.356378, 36.230492],\n              [114.408117, 36.224699],\n              [114.417356, 36.205868],\n              [114.466015, 36.197658],\n              [114.480181, 36.177855],\n              [114.533152, 36.171575],\n              [114.586739, 36.141133],\n              [114.588587, 36.118414],\n              [114.640326, 36.137266],\n              [114.720398, 36.140166],\n              [114.734564, 36.15563],\n              [114.771521, 36.124699],\n              [114.857752, 36.127599],\n              [114.858368, 36.144516],\n              [114.912571, 36.140649],\n              [114.926737, 36.089403],\n              [114.914419, 36.052155],\n              [114.998186, 36.069572],\n              [115.04623, 36.112613],\n              [115.048693, 36.161912],\n              [115.06286, 36.178338],\n              [115.104744, 36.172058],\n              [115.12507, 36.209731],\n              [115.1842, 36.193312],\n              [115.201446, 36.210214],\n              [115.201446, 36.210214],\n              [115.202678, 36.209248],\n              [115.202678, 36.209248],\n              [115.202678, 36.208765],\n              [115.202678, 36.208765],\n              [115.242098, 36.19138],\n              [115.279055, 36.13775],\n              [115.30246, 36.127599],\n              [115.312931, 36.088436],\n              [115.365902, 36.099074],\n              [115.376989, 36.128083],\n              [115.450902, 36.152248],\n              [115.465068, 36.170125],\n              [115.483547, 36.148865],\n              [115.474923, 36.248352],\n              [115.466916, 36.258969],\n              [115.466916, 36.258969],\n              [115.462605, 36.276339],\n              [115.417025, 36.292742],\n              [115.423185, 36.32216],\n              [115.366518, 36.30914],\n              [115.368982, 36.342409],\n              [115.340033, 36.398307],\n              [115.297533, 36.413239],\n              [115.317243, 36.454166],\n              [115.291374, 36.460423],\n              [115.272895, 36.497476],\n              [115.33141, 36.550378],\n              [115.355431, 36.627262],\n              [115.365902, 36.621979],\n              [115.420105, 36.686795],\n              [115.451518, 36.702151],\n              [115.479851, 36.760187],\n              [115.524815, 36.763543],\n              [115.683727, 36.808117],\n              [115.71206, 36.883308],\n              [115.75764, 36.902453],\n              [115.79706, 36.968945],\n              [115.776734, 36.992848],\n              [115.85619, 37.060694],\n              [115.888219, 37.112254],\n              [115.879596, 37.150901],\n              [115.91224, 37.177132],\n              [115.909777, 37.20669],\n              [115.969523, 37.239572],\n              [115.975682, 37.337179],\n              [116.024341, 37.360015],\n              [116.085935, 37.373809],\n              [116.106261, 37.368577],\n              [116.169087, 37.384271],\n              [116.193109, 37.365723],\n              [116.236224, 37.361442],\n              [116.2855, 37.404241],\n              [116.226369, 37.428007],\n              [116.243, 37.447965],\n              [116.224522, 37.479791],\n              [116.240536, 37.489764],\n              [116.240536, 37.489764],\n              [116.27626, 37.466967],\n              [116.290427, 37.484065],\n              [116.278724, 37.524895],\n              [116.295355, 37.554316],\n              [116.336007, 37.581355],\n              [116.36742, 37.566177],\n              [116.379738, 37.522047],\n              [116.38097, 37.522522],\n              [116.379738, 37.522047],\n              [116.38097, 37.522522],\n              [116.433941, 37.473142],\n              [116.448108, 37.503059],\n              [116.4826, 37.521573],\n              [116.575607, 37.610754],\n              [116.604556, 37.624975],\n              [116.66307, 37.686096],\n              [116.679085, 37.728708],\n              [116.724664, 37.744327],\n              [116.753613, 37.77035],\n              [116.753613, 37.793054],\n              [116.804736, 37.848837],\n              [116.837997, 37.835132],\n              [116.919301, 37.846002],\n              [117.027091, 37.832296],\n              [117.074518, 37.848837],\n              [117.150278, 37.839385],\n              [117.185387, 37.849783],\n              [117.271618, 37.839858],\n              [117.320278, 37.861596],\n              [117.400966, 37.844584],\n              [117.438538, 37.854035],\n              [117.481038, 37.914967],\n              [117.513067, 37.94329],\n              [117.524154, 37.989527],\n              [117.557414, 38.046105],\n              [117.557414, 38.046105],\n              [117.586979, 38.071551],\n              [117.704624, 38.076262],\n              [117.746508, 38.12524],\n              [117.771145, 38.134655],\n              [117.766834, 38.158658],\n              [117.789007, 38.180772],\n              [117.808718, 38.22827],\n              [117.848754, 38.255062],\n              [117.895565, 38.301572],\n              [117.948536, 38.346644],\n              [117.957775, 38.376208],\n              [117.937449, 38.387936],\n              [117.84629, 38.368232],\n              [117.781, 38.373862],\n              [117.730493, 38.424985],\n              [117.72495, 38.457328],\n              [117.678754, 38.477008],\n              [117.644878, 38.52759],\n              [117.68553, 38.539293],\n              [117.638102, 38.54491],\n              [117.639334, 38.626776],\n              [117.55803, 38.613683],\n              [117.47919, 38.616489],\n              [117.432379, 38.601524],\n              [117.368937, 38.564566],\n              [117.25314, 38.556143],\n              [117.238358, 38.580943],\n              [117.258684, 38.608072],\n              [117.258684, 38.608072],\n              [117.213104, 38.639866],\n              [117.213104, 38.639866],\n              [117.183539, 38.61836],\n              [117.183539, 38.61836],\n              [117.150894, 38.617892],\n              [117.109626, 38.584685],\n              [117.070822, 38.608072],\n              [117.055424, 38.639398],\n              [117.068358, 38.680522],\n              [117.038793, 38.688464],\n              [116.95133, 38.689398],\n              [116.948866, 38.689398],\n              [116.950714, 38.689398],\n              [116.95133, 38.689398],\n              [116.950714, 38.689398],\n              [116.948866, 38.689398],\n              [116.877417, 38.680522],\n              [116.858939, 38.741231],\n              [116.794265, 38.744498],\n              [116.794265, 38.744498],\n              [116.746222, 38.754299],\n              [116.737599, 38.784629],\n              [116.75115, 38.831264],\n              [116.723432, 38.852706],\n              [116.722201, 38.896968],\n              [116.708034, 38.931892],\n              [116.72836, 38.975174],\n              [116.754845, 39.003084],\n              [116.754229, 39.034701],\n              [116.754229, 39.034701],\n              [116.783179, 39.05097],\n              [116.783179, 39.05097],\n              [116.812744, 39.05097],\n              [116.812744, 39.05097],\n              [116.871874, 39.054688],\n              [116.912526, 39.110898],\n              [116.91191, 39.111362],\n              [116.91191, 39.111362],\n              [116.912526, 39.110898],\n              [116.909446, 39.150822],\n              [116.870026, 39.153607],\n              [116.855859, 39.215766],\n              [116.881729, 39.225966],\n              [116.881729, 39.225966],\n              [116.87249, 39.291304],\n              [116.889736, 39.338068],\n              [116.870642, 39.357506],\n              [116.829374, 39.338994],\n              [116.818287, 39.3737],\n              [116.840461, 39.378326],\n              [116.839845, 39.413474],\n              [116.876185, 39.43474],\n              [116.832454, 39.435664],\n              [116.785026, 39.465702],\n              [116.820751, 39.482332],\n              [116.819519, 39.528507],\n              [116.78749, 39.554352],\n              [116.808432, 39.576497],\n              [116.812128, 39.615695],\n              [116.79057, 39.595868],\n              [116.748686, 39.619844],\n              [116.709266, 39.618],\n              [116.726512, 39.595407],\n              [116.726512, 39.595407],\n              [116.724048, 39.59264],\n              [116.723432, 39.59264],\n              [116.724048, 39.59264],\n              [116.723432, 39.59264],\n              [116.664918, 39.605552],\n              [116.620571, 39.601863],\n              [116.592237, 39.621227],\n              [116.592237, 39.621227],\n              [116.524484, 39.596329],\n              [116.50847, 39.551122],\n              [116.473361, 39.552968],\n              [116.478289, 39.535431],\n              [116.437637, 39.526661],\n              [116.443796, 39.510041],\n              [116.401912, 39.528046],\n              [116.411767, 39.482794],\n              [116.444412, 39.482332],\n              [116.454883, 39.453226],\n              [116.434557, 39.442597],\n              [116.361876, 39.455074],\n              [116.361876, 39.455074],\n              [116.337854, 39.455536],\n              [116.307057, 39.488337],\n              [116.257782, 39.500344],\n              [116.240536, 39.564041],\n              [116.198652, 39.589412],\n              [116.151841, 39.583416],\n              [116.130283, 39.567732],\n              [116.09887, 39.575113],\n              [116.036044, 39.571884],\n              [116.026189, 39.587567],\n              [115.995392, 39.576958],\n              [115.978146, 39.595868],\n              [115.957204, 39.560812],\n              [115.910393, 39.600479],\n              [115.910393, 39.600479],\n              [115.91532, 39.582955],\n              [115.91532, 39.582955],\n              [115.867893, 39.546507],\n              [115.867893, 39.546507],\n              [115.828473, 39.541431],\n              [115.821081, 39.522968],\n              [115.821081, 39.522968],\n              [115.806299, 39.510041],\n              [115.806299, 39.510041],\n              [115.752712, 39.515581],\n              [115.738545, 39.539585],\n              [115.738545, 39.540046],\n              [115.738545, 39.539585],\n              [115.738545, 39.540046],\n              [115.724995, 39.5442],\n              [115.724995, 39.5442],\n              [115.722531, 39.543738],\n              [115.721299, 39.543738],\n              [115.722531, 39.543738],\n              [115.722531, 39.5442],\n              [115.721299, 39.543738],\n              [115.722531, 39.5442],\n              [115.720683, 39.551122],\n              [115.720683, 39.551122],\n              [115.718835, 39.553891],\n              [115.718835, 39.553891],\n              [115.716988, 39.56035],\n              [115.716988, 39.56035],\n              [115.699125, 39.570039],\n              [115.699125, 39.570039],\n              [115.698509, 39.577881],\n              [115.698509, 39.577881],\n              [115.667712, 39.615234],\n              [115.633836, 39.599557],\n              [115.633836, 39.599557],\n              [115.587024, 39.589873],\n              [115.545756, 39.618922],\n              [115.518039, 39.597252],\n              [115.522351, 39.640124],\n              [115.478619, 39.650723],\n              [115.478619, 39.650723],\n              [115.491554, 39.670074],\n              [115.486626, 39.741899],\n              [115.439815, 39.752022],\n              [115.443511, 39.785601],\n              [115.483547, 39.798477],\n              [115.483547, 39.798477],\n              [115.50572, 39.784222],\n              [115.552532, 39.794799],\n              [115.567314, 39.816407],\n              [115.514344, 39.837549],\n              [115.526046, 39.87568],\n              [115.515575, 39.892212],\n              [115.515575, 39.892212],\n              [115.522967, 39.899099],\n              [115.481083, 39.935819],\n              [115.426264, 39.950502],\n              [115.428728, 39.984443],\n              [115.450286, 39.992697],\n              [115.454597, 40.029825],\n              [115.485394, 40.040364],\n              [115.527278, 40.076092],\n              [115.59072, 40.096239],\n              [115.599959, 40.119583],\n              [115.75456, 40.145663],\n              [115.75456, 40.145663],\n              [115.773654, 40.176307],\n              [115.806299, 40.15344],\n              [115.847567, 40.147036],\n              [115.855574, 40.188652],\n              [115.870356, 40.185909],\n              [115.89869, 40.234354],\n              [115.968907, 40.264045],\n              [115.95166, 40.281852],\n              [115.917784, 40.354405],\n              [115.864197, 40.359422],\n              [115.771806, 40.443734],\n              [115.781045, 40.49336],\n              [115.736082, 40.503372],\n              [115.755176, 40.540221],\n              [115.784741, 40.55841],\n              [115.819849, 40.55932],\n              [115.827857, 40.587504],\n              [115.885139, 40.595229],\n              [115.907929, 40.617493],\n              [115.971986, 40.6025],\n              [115.982457, 40.578868],\n              [116.005247, 40.583868],\n              [116.09887, 40.630665],\n              [116.133979, 40.666536],\n              [116.162928, 40.662451],\n              [116.171551, 40.695582],\n              [116.204812, 40.740035],\n              [116.22021, 40.744115],\n              [116.247311, 40.791707],\n              [116.273181, 40.762703],\n              [116.311369, 40.754996],\n              [116.316912, 40.772221],\n              [116.453651, 40.765876],\n              [116.46597, 40.774487],\n              [116.438253, 40.81934],\n              [116.334159, 40.90443],\n              [116.339702, 40.929303],\n              [116.370499, 40.94377],\n              [116.398216, 40.90624],\n              [116.477057, 40.899907],\n              [116.447492, 40.953715],\n              [116.455499, 40.980828],\n              [116.519557, 40.98128],\n              [116.519557, 40.98128],\n              [116.5676, 40.992574],\n              [116.598397, 40.974503],\n              [116.623034, 41.021026],\n              [116.615643, 41.053076],\n              [116.647672, 41.059394],\n              [116.688324, 41.044501],\n              [116.698795, 41.021477],\n              [116.677853, 40.970888],\n              [116.722201, 40.927495],\n              [116.713577, 40.909858],\n              [116.759773, 40.889954],\n              [116.81336, 40.848319],\n              [116.848468, 40.839264],\n              [116.924229, 40.773581],\n              [116.926692, 40.745022],\n              [116.964881, 40.709647],\n              [117.012308, 40.693767],\n              [117.11209, 40.707379],\n              [117.117018, 40.70012],\n              [117.208177, 40.694675],\n              [117.278394, 40.664267],\n              [117.319662, 40.657911],\n              [117.342451, 40.673799],\n              [117.408973, 40.686961],\n              [117.493973, 40.675161],\n              [117.514914, 40.660181],\n              [117.501364, 40.636569],\n              [117.467487, 40.649738],\n              [117.467487, 40.649738]\n            ]\n          ],\n          [\n            [\n              [117.210024, 40.082045],\n              [117.204481, 40.069681],\n              [117.159517, 40.077008],\n              [117.140423, 40.064185],\n              [117.105315, 40.074261],\n              [117.105315, 40.074261],\n              [117.051728, 40.059605],\n              [117.025243, 40.030283],\n              [116.945171, 40.04128],\n              [116.927924, 40.055024],\n              [116.867562, 40.041739],\n              [116.831222, 40.051359],\n              [116.820135, 40.02845],\n              [116.781331, 40.034866],\n              [116.757925, 39.967934],\n              [116.782563, 39.947749],\n              [116.78441, 39.891294],\n              [116.812128, 39.889916],\n              [116.865714, 39.843982],\n              [116.907598, 39.832494],\n              [116.918069, 39.84628],\n              [116.949482, 39.778703],\n              [116.902055, 39.763523],\n              [116.916837, 39.731314],\n              [116.887272, 39.72533],\n              [116.889736, 39.687576],\n              [116.90575, 39.688037],\n              [116.932236, 39.706456],\n              [116.932236, 39.706456],\n              [116.944555, 39.695405],\n              [116.944555, 39.695405],\n              [116.948866, 39.680668],\n              [116.948866, 39.680668],\n              [116.964265, 39.64335],\n              [116.983359, 39.638742],\n              [116.983359, 39.638742],\n              [117.016004, 39.653949],\n              [117.10901, 39.625375],\n              [117.10901, 39.625375],\n              [117.152742, 39.623532],\n              [117.177996, 39.645194],\n              [117.165061, 39.718886],\n              [117.165061, 39.718886],\n              [117.161981, 39.748801],\n              [117.205713, 39.763984],\n              [117.15767, 39.796638],\n              [117.156438, 39.817326],\n              [117.192162, 39.832953],\n              [117.251908, 39.834332],\n              [117.247597, 39.860981],\n              [117.227887, 39.852712],\n              [117.162597, 39.876598],\n              [117.162597, 39.876598],\n              [117.150894, 39.944996],\n              [117.198322, 39.992697],\n              [117.192162, 40.066475],\n              [117.210024, 40.082045]\n            ]\n          ],\n          [\n            [\n              [117.784696, 39.376938],\n              [117.765602, 39.400527],\n              [117.699696, 39.407463],\n              [117.673211, 39.386652],\n              [117.668899, 39.412087],\n              [117.614081, 39.407001],\n              [117.601146, 39.419485],\n              [117.570965, 39.404689],\n              [117.521074, 39.357043],\n              [117.536472, 39.338068],\n              [117.594987, 39.349176],\n              [117.669515, 39.322792],\n              [117.670747, 39.357969],\n              [117.74466, 39.354729],\n              [117.784696, 39.376938]\n            ]\n          ],\n          [\n            [\n              [118.869365, 39.142932],\n              [118.82009, 39.108576],\n              [118.857662, 39.098824],\n              [118.869365, 39.142932]\n            ]\n          ]\n        ]\n      }\n    },\n    {\n      \"type\": \"Feature\",\n      \"properties\": {\n        \"adcode\": 140000,\n        \"name\": \"山西省\",\n        \"center\": [112.549248, 37.857014],\n        \"centroid\": [112.304436, 37.618179],\n        \"childrenNum\": 11,\n        \"level\": \"province\",\n        \"parent\": { \"adcode\": 100000 },\n        \"subFeatureIndex\": 3,\n        \"acroutes\": [100000]\n      },\n      \"geometry\": {\n        \"type\": \"MultiPolygon\",\n        \"coordinates\": [\n          [\n            [\n              [110.379257, 34.600612],\n              [110.424837, 34.588295],\n              [110.488279, 34.610956],\n              [110.533242, 34.583368],\n              [110.610851, 34.607508],\n              [110.710017, 34.605045],\n              [110.749437, 34.65232],\n              [110.791937, 34.649858],\n              [110.824582, 34.615881],\n              [110.883712, 34.64395],\n              [110.903422, 34.669056],\n              [110.920052, 34.730068],\n              [110.976103, 34.706456],\n              [111.035233, 34.740887],\n              [111.118385, 34.756623],\n              [111.148566, 34.807742],\n              [111.232949, 34.789559],\n              [111.255123, 34.819535],\n              [111.29208, 34.806759],\n              [111.345666, 34.831816],\n              [111.389398, 34.815113],\n              [111.439289, 34.838202],\n              [111.502731, 34.829851],\n              [111.543999, 34.853428],\n              [111.570484, 34.843114],\n              [111.592042, 34.881416],\n              [111.617911, 34.894671],\n              [111.646861, 34.938836],\n              [111.681969, 34.9511],\n              [111.664107, 34.984449],\n              [111.740483, 35.00455],\n              [111.807005, 35.032977],\n              [111.810084, 35.062374],\n              [111.933272, 35.083435],\n              [111.97762, 35.067272],\n              [112.018888, 35.068742],\n              [112.039214, 35.045717],\n              [112.062004, 35.056005],\n              [112.05646, 35.098615],\n              [112.066315, 35.153437],\n              [112.03983, 35.194039],\n              [112.078634, 35.219467],\n              [112.058924, 35.280069],\n              [112.13838, 35.271275],\n              [112.21722, 35.253195],\n              [112.242474, 35.234622],\n              [112.304684, 35.251728],\n              [112.288053, 35.219956],\n              [112.36751, 35.219956],\n              [112.390915, 35.239021],\n              [112.513487, 35.218489],\n              [112.637291, 35.225822],\n              [112.628052, 35.263457],\n              [112.720443, 35.206265],\n              [112.772798, 35.207732],\n              [112.822073, 35.258082],\n              [112.884283, 35.243909],\n              [112.934174, 35.262968],\n              [112.936022, 35.284466],\n              [112.992072, 35.29619],\n              [112.985913, 35.33965],\n              [112.996384, 35.362104],\n              [113.067217, 35.353806],\n              [113.126347, 35.332327],\n              [113.149137, 35.350878],\n              [113.165151, 35.412845],\n              [113.185477, 35.409431],\n              [113.189789, 35.44893],\n              [113.243375, 35.449418],\n              [113.304353, 35.426989],\n              [113.31236, 35.481101],\n              [113.348085, 35.468429],\n              [113.391817, 35.506925],\n              [113.439244, 35.507412],\n              [113.49899, 35.532254],\n              [113.513773, 35.57364],\n              [113.55812, 35.621816],\n              [113.547649, 35.656835],\n              [113.578446, 35.633491],\n              [113.625258, 35.632518],\n              [113.622794, 35.674825],\n              [113.592613, 35.691838],\n              [113.587685, 35.736542],\n              [113.604932, 35.797727],\n              [113.582758, 35.818111],\n              [113.660982, 35.837035],\n              [113.637576, 35.870019],\n              [113.654207, 35.931586],\n              [113.648663, 35.994073],\n              [113.678844, 35.985841],\n              [113.694859, 36.026991],\n              [113.660366, 36.034735],\n              [113.68562, 36.056026],\n              [113.671453, 36.115514],\n              [113.655439, 36.125182],\n              [113.712721, 36.129533],\n              [113.705946, 36.148865],\n              [113.651127, 36.174473],\n              [113.697939, 36.181719],\n              [113.681924, 36.216491],\n              [113.716417, 36.262347],\n              [113.712105, 36.303353],\n              [113.736127, 36.324571],\n              [113.731199, 36.363135],\n              [113.708409, 36.423352],\n              [113.670221, 36.425278],\n              [113.635729, 36.451277],\n              [113.587069, 36.460904],\n              [113.554425, 36.494589],\n              [113.559968, 36.528741],\n              [113.588917, 36.547974],\n              [113.569823, 36.585947],\n              [113.539642, 36.594116],\n              [113.54457, 36.62342],\n              [113.486671, 36.635427],\n              [113.476816, 36.655114],\n              [113.506997, 36.705029],\n              [113.465113, 36.707908],\n              [113.499606, 36.740527],\n              [113.535946, 36.732373],\n              [113.549497, 36.752515],\n              [113.600004, 36.752995],\n              [113.680692, 36.789907],\n              [113.676381, 36.855539],\n              [113.696707, 36.882351],\n              [113.731815, 36.878521],\n              [113.731815, 36.858891],\n              [113.773083, 36.85506],\n              [113.792793, 36.894796],\n              [113.76138, 36.956034],\n              [113.791561, 36.98759],\n              [113.771851, 37.016745],\n              [113.788482, 37.059739],\n              [113.758301, 37.075497],\n              [113.773699, 37.107004],\n              [113.773083, 37.151855],\n              [113.832213, 37.167594],\n              [113.853155, 37.215269],\n              [113.886416, 37.239095],\n              [113.90243, 37.310052],\n              [113.962792, 37.355734],\n              [113.973879, 37.40329],\n              [114.014531, 37.42468],\n              [114.036705, 37.494037],\n              [114.118625, 37.59084],\n              [114.115545, 37.619761],\n              [114.139567, 37.675676],\n              [114.12848, 37.698409],\n              [114.068118, 37.721608],\n              [113.993589, 37.706932],\n              [113.996669, 37.730128],\n              [114.044712, 37.761834],\n              [114.006524, 37.813386],\n              [113.976959, 37.816696],\n              [113.959097, 37.906468],\n              [113.936307, 37.922993],\n              [113.901198, 37.984811],\n              [113.872249, 37.990471],\n              [113.876561, 38.055059],\n              [113.811271, 38.117707],\n              [113.831597, 38.16854],\n              [113.797105, 38.162894],\n              [113.720728, 38.174656],\n              [113.711489, 38.213695],\n              [113.678844, 38.20523],\n              [113.64312, 38.232031],\n              [113.598772, 38.22733],\n              [113.570439, 38.237202],\n              [113.54457, 38.270569],\n              [113.557504, 38.343359],\n              [113.525475, 38.383245],\n              [113.537794, 38.417952],\n              [113.583374, 38.459671],\n              [113.546417, 38.492936],\n              [113.561816, 38.558483],\n              [113.603084, 38.587024],\n              [113.612939, 38.645942],\n              [113.70225, 38.651551],\n              [113.720728, 38.713218],\n              [113.775547, 38.709949],\n              [113.802648, 38.763166],\n              [113.839605, 38.7585],\n              [113.836525, 38.795824],\n              [113.855619, 38.828933],\n              [113.795257, 38.860628],\n              [113.776163, 38.885788],\n              [113.76754, 38.959819],\n              [113.776779, 38.986804],\n              [113.80696, 38.989595],\n              [113.898119, 39.067699],\n              [113.930148, 39.063517],\n              [113.961561, 39.100681],\n              [113.994821, 39.095572],\n              [114.006524, 39.122971],\n              [114.050872, 39.135969],\n              [114.064422, 39.094179],\n              [114.082901, 39.09325],\n              [114.082901, 39.09325],\n              [114.10877, 39.052364],\n              [114.157429, 39.061194],\n              [114.180835, 39.049111],\n              [114.252284, 39.073739],\n              [114.345907, 39.075133],\n              [114.369928, 39.107648],\n              [114.360689, 39.134112],\n              [114.388406, 39.176807],\n              [114.443841, 39.174023],\n              [114.47587, 39.21623],\n              [114.416124, 39.242654],\n              [114.437066, 39.259337],\n              [114.430906, 39.307513],\n              [114.466631, 39.329736],\n              [114.469095, 39.400989],\n              [114.496812, 39.438437],\n              [114.501739, 39.476789],\n              [114.532536, 39.486027],\n              [114.568877, 39.573729],\n              [114.51529, 39.564964],\n              [114.49558, 39.608318],\n              [114.431522, 39.613851],\n              [114.408117, 39.652106],\n              [114.409964, 39.761683],\n              [114.41674, 39.775943],\n              [114.390254, 39.819165],\n              [114.406885, 39.833413],\n              [114.395182, 39.867412],\n              [114.285545, 39.858225],\n              [114.286776, 39.871087],\n              [114.215943, 39.8619],\n              [114.204241, 39.885324],\n              [114.229494, 39.899558],\n              [114.212248, 39.918839],\n              [114.17406, 39.897722],\n              [114.067502, 39.922511],\n              [114.047176, 39.916085],\n              [114.028082, 39.959218],\n              [114.029314, 39.985819],\n              [113.910438, 40.015618],\n              [113.959097, 40.033491],\n              [113.989278, 40.11226],\n              [114.018227, 40.103563],\n              [114.045944, 40.056856],\n              [114.086596, 40.071513],\n              [114.101995, 40.099901],\n              [114.073046, 40.168533],\n              [114.073046, 40.168533],\n              [114.097683, 40.193681],\n              [114.135871, 40.175392],\n              [114.180219, 40.191395],\n              [114.235654, 40.198252],\n              [114.255364, 40.236182],\n              [114.292936, 40.230242],\n              [114.362537, 40.249886],\n              [114.406269, 40.246232],\n              [114.46971, 40.268155],\n              [114.510978, 40.302851],\n              [114.530688, 40.345283],\n              [114.481413, 40.34802],\n              [114.438914, 40.371733],\n              [114.390254, 40.351213],\n              [114.381015, 40.36307],\n              [114.31203, 40.372645],\n              [114.286161, 40.425057],\n              [114.299711, 40.44009],\n              [114.267066, 40.474242],\n              [114.282465, 40.494725],\n              [114.293552, 40.55159],\n              [114.273842, 40.552954],\n              [114.283081, 40.590685],\n              [114.236269, 40.607043],\n              [114.183299, 40.67153],\n              [114.162357, 40.71373],\n              [114.134639, 40.737314],\n              [114.084748, 40.729605],\n              [114.063806, 40.706925],\n              [114.07243, 40.679246],\n              [114.041633, 40.608861],\n              [114.076741, 40.575686],\n              [114.080437, 40.547952],\n              [114.061959, 40.52885],\n              [114.011452, 40.515657],\n              [113.948626, 40.514747],\n              [113.890112, 40.466503],\n              [113.850691, 40.460583],\n              [113.794641, 40.517932],\n              [113.763228, 40.473787],\n              [113.688699, 40.448288],\n              [113.559968, 40.348476],\n              [113.500222, 40.334335],\n              [113.387505, 40.319279],\n              [113.316672, 40.319736],\n              [113.27602, 40.388601],\n              [113.251382, 40.413211],\n              [113.083231, 40.374925],\n              [113.03334, 40.368997],\n              [112.898449, 40.329317],\n              [112.848558, 40.206937],\n              [112.744464, 40.167161],\n              [112.712436, 40.178593],\n              [112.6299, 40.235725],\n              [112.511639, 40.269068],\n              [112.456205, 40.300112],\n              [112.418017, 40.295091],\n              [112.349031, 40.257194],\n              [112.310227, 40.256281],\n              [112.299756, 40.21105],\n              [112.232619, 40.169905],\n              [112.232003, 40.133311],\n              [112.183344, 40.083877],\n              [112.182112, 40.061437],\n              [112.142076, 40.027076],\n              [112.133453, 40.001866],\n              [112.07617, 39.919298],\n              [112.042294, 39.886243],\n              [112.012729, 39.827438],\n              [111.970229, 39.796638],\n              [111.959758, 39.692642],\n              [111.925265, 39.66731],\n              [111.9382, 39.623071],\n              [111.87907, 39.606013],\n              [111.842729, 39.620305],\n              [111.783599, 39.58895],\n              [111.722621, 39.606013],\n              [111.659179, 39.641507],\n              [111.625303, 39.633672],\n              [111.525521, 39.662242],\n              [111.497187, 39.661781],\n              [111.445448, 39.640124],\n              [111.460847, 39.606935],\n              [111.441137, 39.59679],\n              [111.422043, 39.539123],\n              [111.431282, 39.508656],\n              [111.372152, 39.479099],\n              [111.358601, 39.432428],\n              [111.337043, 39.420872],\n              [111.171971, 39.423183],\n              [111.143022, 39.407926],\n              [111.125776, 39.366297],\n              [111.159037, 39.362596],\n              [111.155341, 39.338531],\n              [111.186138, 39.35149],\n              [111.179363, 39.326959],\n              [111.202152, 39.305197],\n              [111.247732, 39.302419],\n              [111.213239, 39.257021],\n              [111.219399, 39.244044],\n              [111.163348, 39.152678],\n              [111.173819, 39.135041],\n              [111.147334, 39.100681],\n              [111.138095, 39.064447],\n              [111.094363, 39.030053],\n              [111.038313, 39.020289],\n              [110.998276, 38.998433],\n              [110.980414, 38.970056],\n              [111.009979, 38.932823],\n              [111.016755, 38.889981],\n              [110.995813, 38.868084],\n              [111.009363, 38.847579],\n              [110.965016, 38.755699],\n              [110.915125, 38.704345],\n              [110.916357, 38.673981],\n              [110.880632, 38.626776],\n              [110.898494, 38.587024],\n              [110.920052, 38.581878],\n              [110.907733, 38.521035],\n              [110.870777, 38.510265],\n              [110.874473, 38.453579],\n              [110.840596, 38.439986],\n              [110.796864, 38.453579],\n              [110.77777, 38.440924],\n              [110.746973, 38.366355],\n              [110.701394, 38.353215],\n              [110.661358, 38.308617],\n              [110.601612, 38.308147],\n              [110.57759, 38.297345],\n              [110.565887, 38.215105],\n              [110.528315, 38.211814],\n              [110.509221, 38.192061],\n              [110.519692, 38.130889],\n              [110.501829, 38.097929],\n              [110.507989, 38.013107],\n              [110.528315, 37.990471],\n              [110.522771, 37.955088],\n              [110.59422, 37.922049],\n              [110.680452, 37.790216],\n              [110.735886, 37.77035],\n              [110.750669, 37.736281],\n              [110.716792, 37.728708],\n              [110.706321, 37.705511],\n              [110.775306, 37.680886],\n              [110.793169, 37.650567],\n              [110.763604, 37.639668],\n              [110.771611, 37.594634],\n              [110.795017, 37.558586],\n              [110.770995, 37.538184],\n              [110.759292, 37.474567],\n              [110.740198, 37.44939],\n              [110.644111, 37.435135],\n              [110.630561, 37.372858],\n              [110.641648, 37.360015],\n              [110.695234, 37.34955],\n              [110.678604, 37.317668],\n              [110.690307, 37.287201],\n              [110.661974, 37.281963],\n              [110.651503, 37.256722],\n              [110.590525, 37.187145],\n              [110.53509, 37.138021],\n              [110.535706, 37.115118],\n              [110.49567, 37.086956],\n              [110.460561, 37.044932],\n              [110.417446, 37.027257],\n              [110.426685, 37.008621],\n              [110.382953, 37.022001],\n              [110.381721, 37.002408],\n              [110.424221, 36.963685],\n              [110.408823, 36.892403],\n              [110.376178, 36.882351],\n              [110.424221, 36.855539],\n              [110.406975, 36.824886],\n              [110.423605, 36.818179],\n              [110.407591, 36.776007],\n              [110.447011, 36.737649],\n              [110.438388, 36.685835],\n              [110.402663, 36.697352],\n              [110.394656, 36.676716],\n              [110.426685, 36.657514],\n              [110.447627, 36.621018],\n              [110.496902, 36.582102],\n              [110.488895, 36.556628],\n              [110.503677, 36.488335],\n              [110.47288, 36.453203],\n              [110.489511, 36.430094],\n              [110.487047, 36.393972],\n              [110.459946, 36.327946],\n              [110.474112, 36.306729],\n              [110.474112, 36.248352],\n              [110.45625, 36.22663],\n              [110.447011, 36.164328],\n              [110.467953, 36.074893],\n              [110.491974, 36.034735],\n              [110.49259, 35.994073],\n              [110.516612, 35.971796],\n              [110.502445, 35.947575],\n              [110.516612, 35.918501],\n              [110.511684, 35.879718],\n              [110.549257, 35.877778],\n              [110.550489, 35.838005],\n              [110.571431, 35.800639],\n              [110.57759, 35.701559],\n              [110.609619, 35.632031],\n              [110.589293, 35.602355],\n              [110.567735, 35.539559],\n              [110.531394, 35.511309],\n              [110.477808, 35.413821],\n              [110.45009, 35.327933],\n              [110.374946, 35.251728],\n              [110.378642, 35.210666],\n              [110.364475, 35.197952],\n              [110.373714, 35.134351],\n              [110.320743, 35.00504],\n              [110.262229, 34.944233],\n              [110.230816, 34.880925],\n              [110.246831, 34.789068],\n              [110.243135, 34.725641],\n              [110.229584, 34.692679],\n              [110.269004, 34.629671],\n              [110.29549, 34.610956],\n              [110.379257, 34.600612]\n            ]\n          ]\n        ]\n      }\n    },\n    {\n      \"type\": \"Feature\",\n      \"properties\": {\n        \"adcode\": 150000,\n        \"name\": \"内蒙古自治区\",\n        \"center\": [111.670801, 40.818311],\n        \"centroid\": [114.077429, 44.331087],\n        \"childrenNum\": 12,\n        \"level\": \"province\",\n        \"parent\": { \"adcode\": 100000 },\n        \"subFeatureIndex\": 4,\n        \"acroutes\": [100000]\n      },\n      \"geometry\": {\n        \"type\": \"Polygon\",\n        \"coordinates\": [\n          [\n            [97.172903, 42.795257],\n            [97.371235, 42.457076],\n            [97.500582, 42.243894],\n            [97.653335, 41.986856],\n            [97.84674, 41.656379],\n            [97.613915, 41.477276],\n            [97.629314, 41.440498],\n            [97.903407, 41.168057],\n            [97.971776, 41.09774],\n            [98.142391, 41.001607],\n            [98.184891, 40.988056],\n            [98.25018, 40.93925],\n            [98.333332, 40.918903],\n            [98.344419, 40.568413],\n            [98.627751, 40.677884],\n            [98.569853, 40.746836],\n            [98.668403, 40.773128],\n            [98.689345, 40.691952],\n            [98.72199, 40.657911],\n            [98.762642, 40.639748],\n            [98.802678, 40.607043],\n            [98.80699, 40.660181],\n            [98.790975, 40.705564],\n            [98.984996, 40.782644],\n            [99.041662, 40.693767],\n            [99.102025, 40.676522],\n            [99.12543, 40.715091],\n            [99.172858, 40.747289],\n            [99.174705, 40.858278],\n            [99.565827, 40.846961],\n            [99.673, 40.93292],\n            [99.985897, 40.909858],\n            [100.057346, 40.908049],\n            [100.107853, 40.875475],\n            [100.224882, 40.727337],\n            [100.237201, 40.716905],\n            [100.242744, 40.618855],\n            [100.169447, 40.541131],\n            [100.169447, 40.277743],\n            [100.007455, 40.20008],\n            [99.955716, 40.150695],\n            [99.927383, 40.063727],\n            [99.841152, 40.013326],\n            [99.751225, 40.006909],\n            [99.714268, 39.972061],\n            [99.533182, 39.891753],\n            [99.491298, 39.884406],\n            [99.459885, 39.898181],\n            [99.440791, 39.885783],\n            [99.469124, 39.875221],\n            [99.672384, 39.888079],\n            [99.822058, 39.860063],\n            [99.904593, 39.785601],\n            [99.958796, 39.769504],\n            [100.040716, 39.757083],\n            [100.128179, 39.702312],\n            [100.250135, 39.685274],\n            [100.314193, 39.606935],\n            [100.301258, 39.572345],\n            [100.326512, 39.509118],\n            [100.44354, 39.485565],\n            [100.500823, 39.481408],\n            [100.498975, 39.400527],\n            [100.606764, 39.387577],\n            [100.707778, 39.404689],\n            [100.842053, 39.405614],\n            [100.842669, 39.199999],\n            [100.864227, 39.106719],\n            [100.829118, 39.075133],\n            [100.835278, 39.025869],\n            [100.875314, 39.002619],\n            [100.901799, 39.030053],\n            [100.961545, 39.005874],\n            [100.969553, 38.946788],\n            [101.117378, 38.975174],\n            [101.228863, 39.020754],\n            [101.198682, 38.943064],\n            [101.237486, 38.907214],\n            [101.24303, 38.860628],\n            [101.33542, 38.847113],\n            [101.34158, 38.822406],\n            [101.307087, 38.80282],\n            [101.331109, 38.777164],\n            [101.412413, 38.764099],\n            [101.562702, 38.713218],\n            [101.601506, 38.65529],\n            [101.672955, 38.6908],\n            [101.777049, 38.66043],\n            [101.873751, 38.733761],\n            [101.941505, 38.808883],\n            [102.075164, 38.891378],\n            [102.045599, 38.904885],\n            [101.955055, 38.985874],\n            [101.926106, 39.000758],\n            [101.833715, 39.08907],\n            [101.902701, 39.111827],\n            [102.012338, 39.127149],\n            [102.050526, 39.141075],\n            [102.276576, 39.188868],\n            [102.3548, 39.231993],\n            [102.45335, 39.255167],\n            [102.579002, 39.183301],\n            [102.616574, 39.171703],\n            [102.883892, 39.120649],\n            [103.007696, 39.099753],\n            [103.133347, 39.192579],\n            [103.188166, 39.215302],\n            [103.259615, 39.263971],\n            [103.344615, 39.331588],\n            [103.428998, 39.353341],\n            [103.595302, 39.386652],\n            [103.728961, 39.430117],\n            [103.85338, 39.461543],\n            [103.955626, 39.456923],\n            [104.089901, 39.419947],\n            [104.073271, 39.351953],\n            [104.047401, 39.297788],\n            [104.171205, 39.160567],\n            [104.207546, 39.083495],\n            [104.190915, 39.042139],\n            [104.196459, 38.9882],\n            [104.173053, 38.94446],\n            [104.044322, 38.895105],\n            [104.011677, 38.85923],\n            [103.85954, 38.64454],\n            [103.416063, 38.404821],\n            [103.465339, 38.353215],\n            [103.507838, 38.280905],\n            [103.53494, 38.156776],\n            [103.368636, 38.08898],\n            [103.362477, 38.037621],\n            [103.40744, 37.860651],\n            [103.627947, 37.797783],\n            [103.683381, 37.777919],\n            [103.841062, 37.64725],\n            [103.874938, 37.604117],\n            [103.935916, 37.572818],\n            [104.089285, 37.465067],\n            [104.183524, 37.406618],\n            [104.237727, 37.411847],\n            [104.287002, 37.428007],\n            [104.322726, 37.44844],\n            [104.407726, 37.464592],\n            [104.419429, 37.511604],\n            [104.433595, 37.515402],\n            [104.623305, 37.522522],\n            [104.805007, 37.539133],\n            [104.866601, 37.566651],\n            [105.027977, 37.580881],\n            [105.111128, 37.633981],\n            [105.187505, 37.657674],\n            [105.221998, 37.677097],\n            [105.315004, 37.702197],\n            [105.4037, 37.710246],\n            [105.467141, 37.695094],\n            [105.598952, 37.699356],\n            [105.616199, 37.722555],\n            [105.622358, 37.777919],\n            [105.677177, 37.771769],\n            [105.760944, 37.799674],\n            [105.80406, 37.862068],\n            [105.799749, 37.939986],\n            [105.840401, 38.004147],\n            [105.780655, 38.084741],\n            [105.76772, 38.121474],\n            [105.775111, 38.186887],\n            [105.802828, 38.220277],\n            [105.842248, 38.240962],\n            [105.86627, 38.296406],\n            [105.821307, 38.366824],\n            [105.835473, 38.387467],\n            [105.827466, 38.432486],\n            [105.850872, 38.443736],\n            [105.836705, 38.476071],\n            [105.863806, 38.53508],\n            [105.856415, 38.569714],\n            [105.874277, 38.593105],\n            [105.852719, 38.641735],\n            [105.894603, 38.696405],\n            [105.88598, 38.716953],\n            [105.908154, 38.737496],\n            [105.909386, 38.791159],\n            [105.992538, 38.857366],\n            [105.97098, 38.909077],\n            [106.021487, 38.953769],\n            [106.060907, 38.96866],\n            [106.087392, 39.006339],\n            [106.078153, 39.026333],\n            [106.096631, 39.084889],\n            [106.145907, 39.153142],\n            [106.170544, 39.163352],\n            [106.192718, 39.142932],\n            [106.251232, 39.131327],\n            [106.285109, 39.146181],\n            [106.29558, 39.167992],\n            [106.280181, 39.262118],\n            [106.402753, 39.291767],\n            [106.511774, 39.272311],\n            [106.525325, 39.308439],\n            [106.556122, 39.322329],\n            [106.602318, 39.37555],\n            [106.643586, 39.357969],\n            [106.683622, 39.357506],\n            [106.751375, 39.381564],\n            [106.781556, 39.371849],\n            [106.806809, 39.318625],\n            [106.806193, 39.277407],\n            [106.790795, 39.241263],\n            [106.795723, 39.214375],\n            [106.825288, 39.19397],\n            [106.859164, 39.107648],\n            [106.878874, 39.091392],\n            [106.933693, 39.076527],\n            [106.96757, 39.054688],\n            [106.971881, 39.026333],\n            [106.954019, 38.941202],\n            [106.837606, 38.847579],\n            [106.756302, 38.748699],\n            [106.709491, 38.718821],\n            [106.66268, 38.601524],\n            [106.647897, 38.470917],\n            [106.599854, 38.389812],\n            [106.482209, 38.319417],\n            [106.555506, 38.263521],\n            [106.627571, 38.232501],\n            [106.654672, 38.22921],\n            [106.737824, 38.197706],\n            [106.779092, 38.171833],\n            [106.858548, 38.156306],\n            [106.942316, 38.132302],\n            [107.010069, 38.120532],\n            [107.051337, 38.122886],\n            [107.071047, 38.138892],\n            [107.119091, 38.134185],\n            [107.138801, 38.161011],\n            [107.19054, 38.153953],\n            [107.240431, 38.111586],\n            [107.33159, 38.086625],\n            [107.3938, 38.014993],\n            [107.440611, 37.995659],\n            [107.411662, 37.948009],\n            [107.448618, 37.933378],\n            [107.49235, 37.944706],\n            [107.560719, 37.893717],\n            [107.65003, 37.86443],\n            [107.684523, 37.888522],\n            [107.732566, 37.84931],\n            [107.842819, 37.828987],\n            [107.884703, 37.808186],\n            [107.982022, 37.787378],\n            [107.993109, 37.735335],\n            [108.025753, 37.696041],\n            [108.012819, 37.66857],\n            [108.025137, 37.649619],\n            [108.055318, 37.652462],\n            [108.134159, 37.622131],\n            [108.193905, 37.638246],\n            [108.205608, 37.655779],\n            [108.24626, 37.665728],\n            [108.293071, 37.656726],\n            [108.301078, 37.640616],\n            [108.422418, 37.648672],\n            [108.485244, 37.678044],\n            [108.532671, 37.690832],\n            [108.628142, 37.651988],\n            [108.699591, 37.669518],\n            [108.720533, 37.683728],\n            [108.777815, 37.683728],\n            [108.791982, 37.700303],\n            [108.784591, 37.764673],\n            [108.799989, 37.784068],\n            [108.791982, 37.872934],\n            [108.798141, 37.93385],\n            [108.82709, 37.989056],\n            [108.797525, 38.04799],\n            [108.830786, 38.049875],\n            [108.883141, 38.01405],\n            [108.893612, 37.978207],\n            [108.93488, 37.922521],\n            [108.9743, 37.931962],\n            [108.982923, 37.964053],\n            [109.018648, 37.971602],\n            [109.037742, 38.021593],\n            [109.06977, 38.023008],\n            [109.050676, 38.055059],\n            [109.069155, 38.091336],\n            [108.964445, 38.154894],\n            [108.938575, 38.207582],\n            [108.976148, 38.245192],\n            [108.961981, 38.26493],\n            [109.007561, 38.359316],\n            [109.051292, 38.385122],\n            [109.054372, 38.433892],\n            [109.128901, 38.480288],\n            [109.175712, 38.518694],\n            [109.196654, 38.552867],\n            [109.276726, 38.623035],\n            [109.331545, 38.597783],\n            [109.367269, 38.627711],\n            [109.329081, 38.66043],\n            [109.338936, 38.701542],\n            [109.404226, 38.720689],\n            [109.444262, 38.782763],\n            [109.511399, 38.833595],\n            [109.549587, 38.805618],\n            [109.624116, 38.85457],\n            [109.672159, 38.928167],\n            [109.685094, 38.968195],\n            [109.665384, 38.981687],\n            [109.72513, 39.018429],\n            [109.762086, 39.057476],\n            [109.793499, 39.074204],\n            [109.851397, 39.122971],\n            [109.890818, 39.103932],\n            [109.92223, 39.107183],\n            [109.893897, 39.141075],\n            [109.961035, 39.191651],\n            [109.871723, 39.243581],\n            [109.90252, 39.271848],\n            [109.962267, 39.212056],\n            [110.041107, 39.21623],\n            [110.109476, 39.249606],\n            [110.217881, 39.281113],\n            [110.184005, 39.355192],\n            [110.161831, 39.387115],\n            [110.136577, 39.39174],\n            [110.12549, 39.432891],\n            [110.152592, 39.45415],\n            [110.243751, 39.423645],\n            [110.257917, 39.407001],\n            [110.385417, 39.310291],\n            [110.429764, 39.341308],\n            [110.434692, 39.381101],\n            [110.482735, 39.360745],\n            [110.524003, 39.382952],\n            [110.559728, 39.351027],\n            [110.566503, 39.320014],\n            [110.596684, 39.282966],\n            [110.626249, 39.266751],\n            [110.702626, 39.273701],\n            [110.731575, 39.30705],\n            [110.73835, 39.348713],\n            [110.782698, 39.38804],\n            [110.869545, 39.494341],\n            [110.891103, 39.509118],\n            [110.958856, 39.519275],\n            [111.017371, 39.552045],\n            [111.101138, 39.559428],\n            [111.136863, 39.587106],\n            [111.154725, 39.569116],\n            [111.148566, 39.531277],\n            [111.10545, 39.497573],\n            [111.10545, 39.472631],\n            [111.058639, 39.447681],\n            [111.064182, 39.400989],\n            [111.098059, 39.401914],\n            [111.087588, 39.376013],\n            [111.125776, 39.366297],\n            [111.143022, 39.407926],\n            [111.171971, 39.423183],\n            [111.337043, 39.420872],\n            [111.358601, 39.432428],\n            [111.372152, 39.479099],\n            [111.431282, 39.508656],\n            [111.422043, 39.539123],\n            [111.441137, 39.59679],\n            [111.460847, 39.606935],\n            [111.445448, 39.640124],\n            [111.497187, 39.661781],\n            [111.525521, 39.662242],\n            [111.625303, 39.633672],\n            [111.659179, 39.641507],\n            [111.722621, 39.606013],\n            [111.783599, 39.58895],\n            [111.842729, 39.620305],\n            [111.87907, 39.606013],\n            [111.9382, 39.623071],\n            [111.925265, 39.66731],\n            [111.959758, 39.692642],\n            [111.970229, 39.796638],\n            [112.012729, 39.827438],\n            [112.042294, 39.886243],\n            [112.07617, 39.919298],\n            [112.133453, 40.001866],\n            [112.142076, 40.027076],\n            [112.182112, 40.061437],\n            [112.183344, 40.083877],\n            [112.232003, 40.133311],\n            [112.232619, 40.169905],\n            [112.299756, 40.21105],\n            [112.310227, 40.256281],\n            [112.349031, 40.257194],\n            [112.418017, 40.295091],\n            [112.456205, 40.300112],\n            [112.511639, 40.269068],\n            [112.6299, 40.235725],\n            [112.712436, 40.178593],\n            [112.744464, 40.167161],\n            [112.848558, 40.206937],\n            [112.898449, 40.329317],\n            [113.03334, 40.368997],\n            [113.083231, 40.374925],\n            [113.251382, 40.413211],\n            [113.27602, 40.388601],\n            [113.316672, 40.319736],\n            [113.387505, 40.319279],\n            [113.500222, 40.334335],\n            [113.559968, 40.348476],\n            [113.688699, 40.448288],\n            [113.763228, 40.473787],\n            [113.794641, 40.517932],\n            [113.850691, 40.460583],\n            [113.890112, 40.466503],\n            [113.948626, 40.514747],\n            [114.011452, 40.515657],\n            [114.061959, 40.52885],\n            [114.080437, 40.547952],\n            [114.076741, 40.575686],\n            [114.041633, 40.608861],\n            [114.07243, 40.679246],\n            [114.063806, 40.706925],\n            [114.084748, 40.729605],\n            [114.134639, 40.737314],\n            [114.103227, 40.770861],\n            [114.104458, 40.797597],\n            [114.080437, 40.790348],\n            [114.044712, 40.830661],\n            [114.073661, 40.857372],\n            [114.055183, 40.867782],\n            [114.041633, 40.917546],\n            [114.057647, 40.925234],\n            [113.994821, 40.938798],\n            [113.973263, 40.983087],\n            [113.868554, 41.06887],\n            [113.819279, 41.09774],\n            [113.877793, 41.115777],\n            [113.920293, 41.172112],\n            [113.960945, 41.171211],\n            [113.996669, 41.19238],\n            [114.016379, 41.231999],\n            [113.992357, 41.269794],\n            [113.971416, 41.239649],\n            [113.95109, 41.282837],\n            [113.914749, 41.294529],\n            [113.899351, 41.316108],\n            [113.92522, 41.325546],\n            [113.94493, 41.392477],\n            [113.871017, 41.413126],\n            [113.877793, 41.431076],\n            [113.919677, 41.454404],\n            [113.933227, 41.487139],\n            [113.953553, 41.483553],\n            [113.976959, 41.505966],\n            [114.032394, 41.529715],\n            [114.101379, 41.537779],\n            [114.230726, 41.513584],\n            [114.221487, 41.582111],\n            [114.226414, 41.616572],\n            [114.259059, 41.623282],\n            [114.215328, 41.68499],\n            [114.237501, 41.698843],\n            [114.206704, 41.7386],\n            [114.215328, 41.75646],\n            [114.200545, 41.789934],\n            [114.282465, 41.863517],\n            [114.343443, 41.926774],\n            [114.352066, 41.953484],\n            [114.419203, 41.942356],\n            [114.478334, 41.951704],\n            [114.511594, 41.981962],\n            [114.467863, 42.025989],\n            [114.480181, 42.064654],\n            [114.502355, 42.06732],\n            [114.510978, 42.110844],\n            [114.560254, 42.132595],\n            [114.647717, 42.109512],\n            [114.675434, 42.12061],\n            [114.75489, 42.115727],\n            [114.789383, 42.130819],\n            [114.79431, 42.149457],\n            [114.825723, 42.139695],\n            [114.86268, 42.097967],\n            [114.860832, 42.054879],\n            [114.9021, 42.015763],\n            [114.915035, 41.960605],\n            [114.923658, 41.871093],\n            [114.939056, 41.846132],\n            [114.922426, 41.825175],\n            [114.868839, 41.813579],\n            [114.89594, 41.76762],\n            [114.902716, 41.695715],\n            [114.895325, 41.636255],\n            [114.860832, 41.60091],\n            [115.016049, 41.615229],\n            [115.056085, 41.602253],\n            [115.0992, 41.62373],\n            [115.195287, 41.602253],\n            [115.20391, 41.571367],\n            [115.256881, 41.580768],\n            [115.26612, 41.616124],\n            [115.290142, 41.622835],\n            [115.310468, 41.592854],\n            [115.377605, 41.603148],\n            [115.345576, 41.635807],\n            [115.360975, 41.661297],\n            [115.319091, 41.691693],\n            [115.346808, 41.712247],\n            [115.42996, 41.728775],\n            [115.488474, 41.760924],\n            [115.519887, 41.76762],\n            [115.57409, 41.80555],\n            [115.654162, 41.829189],\n            [115.688038, 41.867528],\n            [115.726227, 41.870202],\n            [115.811226, 41.912525],\n            [115.834632, 41.93835],\n            [115.85311, 41.927665],\n            [115.916552, 41.945027],\n            [115.954124, 41.874213],\n            [115.994776, 41.828743],\n            [116.007095, 41.797966],\n            [116.007095, 41.79752],\n            [116.034196, 41.782795],\n            [116.09887, 41.776547],\n            [116.129051, 41.805996],\n            [116.106877, 41.831419],\n            [116.122892, 41.861734],\n            [116.194341, 41.861734],\n            [116.212819, 41.885352],\n            [116.223906, 41.932562],\n            [116.298434, 41.96817],\n            [116.310137, 41.997086],\n            [116.373579, 42.009983],\n            [116.414231, 41.982407],\n            [116.393289, 41.942802],\n            [116.453651, 41.945917],\n            [116.4826, 41.975734],\n            [116.510933, 41.974399],\n            [116.553433, 41.928555],\n            [116.597165, 41.935679],\n            [116.639049, 41.929891],\n            [116.66923, 41.947698],\n            [116.727744, 41.951259],\n            [116.748686, 41.984186],\n            [116.796113, 41.977958],\n            [116.879881, 42.018431],\n            [116.890352, 42.092639],\n            [116.850316, 42.156556],\n            [116.825062, 42.155669],\n            [116.789338, 42.200462],\n            [116.903287, 42.190708],\n            [116.918685, 42.229716],\n            [116.897743, 42.297479],\n            [116.886656, 42.366496],\n            [116.910678, 42.394789],\n            [116.910062, 42.395231],\n            [116.921765, 42.403628],\n            [116.936547, 42.410256],\n            [116.944555, 42.415116],\n            [116.97104, 42.427486],\n            [116.974736, 42.426603],\n            [116.99075, 42.425719],\n            [117.005533, 42.43367],\n            [117.009228, 42.44957],\n            [117.01662, 42.456193],\n            [117.080061, 42.463699],\n            [117.09546, 42.484004],\n            [117.135496, 42.468996],\n            [117.188467, 42.468114],\n            [117.275314, 42.481797],\n            [117.332596, 42.46105],\n            [117.390495, 42.461933],\n            [117.413284, 42.471645],\n            [117.410205, 42.519743],\n            [117.387415, 42.517537],\n            [117.434226, 42.557224],\n            [117.435458, 42.585431],\n            [117.475494, 42.602613],\n            [117.530313, 42.590278],\n            [117.537088, 42.603054],\n            [117.60053, 42.603054],\n            [117.667051, 42.582347],\n            [117.708935, 42.588515],\n            [117.779768, 42.61847],\n            [117.801326, 42.612744],\n            [117.797631, 42.585431],\n            [117.856761, 42.539148],\n            [117.874007, 42.510038],\n            [117.997811, 42.416884],\n            [118.024296, 42.385064],\n            [118.008898, 42.346595],\n            [118.060021, 42.298364],\n            [118.047702, 42.280656],\n            [117.974405, 42.25054],\n            [117.977485, 42.229716],\n            [118.033535, 42.199132],\n            [118.106216, 42.172082],\n            [118.089586, 42.12283],\n            [118.097593, 42.105072],\n            [118.155491, 42.081091],\n            [118.116687, 42.037102],\n            [118.194296, 42.031324],\n            [118.220165, 42.058434],\n            [118.212774, 42.081091],\n            [118.239259, 42.092639],\n            [118.27252, 42.083312],\n            [118.296541, 42.057545],\n            [118.286686, 42.033991],\n            [118.239875, 42.024655],\n            [118.291614, 42.007759],\n            [118.313788, 41.98819],\n            [118.306396, 41.940131],\n            [118.268824, 41.930336],\n            [118.340273, 41.87243],\n            [118.335346, 41.845241],\n            [118.29223, 41.772976],\n            [118.247266, 41.773869],\n            [118.236179, 41.80778],\n            [118.178281, 41.814917],\n            [118.140093, 41.784134],\n            [118.132702, 41.733241],\n            [118.155491, 41.712694],\n            [118.159187, 41.67605],\n            [118.206614, 41.650566],\n            [118.215237, 41.59554],\n            [118.302701, 41.55256],\n            [118.315636, 41.512688],\n            [118.271904, 41.471446],\n            [118.327338, 41.450816],\n            [118.348896, 41.428384],\n            [118.361215, 41.384844],\n            [118.348896, 41.342622],\n            [118.380309, 41.312062],\n            [118.412338, 41.331838],\n            [118.528135, 41.355202],\n            [118.629765, 41.346666],\n            [118.677192, 41.35026],\n            [118.741866, 41.324198],\n            [118.770199, 41.352956],\n            [118.843496, 41.374516],\n            [118.844727, 41.342622],\n            [118.890923, 41.300823],\n            [118.949437, 41.317906],\n            [118.980234, 41.305769],\n            [119.092951, 41.293629],\n            [119.168712, 41.294978],\n            [119.197661, 41.282837],\n            [119.211827, 41.308016],\n            [119.239545, 41.31431],\n            [119.296211, 41.325097],\n            [119.330704, 41.385293],\n            [119.309762, 41.405944],\n            [119.376283, 41.422102],\n            [119.378131, 41.459787],\n            [119.401537, 41.472343],\n            [119.406464, 41.503276],\n            [119.361501, 41.545841],\n            [119.362116, 41.566442],\n            [119.420015, 41.567785],\n            [119.415703, 41.590169],\n            [119.342406, 41.617914],\n            [119.307914, 41.657273],\n            [119.299907, 41.705545],\n            [119.319001, 41.727435],\n            [119.317769, 41.764049],\n            [119.292515, 41.790827],\n            [119.312841, 41.80555],\n            [119.334399, 41.871539],\n            [119.323312, 41.889807],\n            [119.340559, 41.926774],\n            [119.323928, 41.937014],\n            [119.324544, 41.969505],\n            [119.375667, 42.023322],\n            [119.384906, 42.08953],\n            [119.352261, 42.118391],\n            [119.314689, 42.119723],\n            [119.30853, 42.147239],\n            [119.286972, 42.154781],\n            [119.277733, 42.185387],\n            [119.237697, 42.200905],\n            [119.274037, 42.239021],\n            [119.280197, 42.260728],\n            [119.34795, 42.300578],\n            [119.432949, 42.317396],\n            [119.482841, 42.347037],\n            [119.502551, 42.388159],\n            [119.540123, 42.363401],\n            [119.572152, 42.359421],\n            [119.571536, 42.335536],\n            [119.539507, 42.297922],\n            [119.557985, 42.289068],\n            [119.609108, 42.276671],\n            [119.617115, 42.252755],\n            [119.679941, 42.240793],\n            [119.744615, 42.211545],\n            [119.841933, 42.215534],\n            [119.854868, 42.170308],\n            [119.837622, 42.135257],\n            [119.845629, 42.097079],\n            [119.87581, 42.077982],\n            [119.897368, 42.030879],\n            [119.921389, 42.014429],\n            [119.924469, 41.98908],\n            [119.950954, 41.974399],\n            [119.954034, 41.923212],\n            [119.989759, 41.899163],\n            [120.023019, 41.816701],\n            [120.041498, 41.818932],\n            [120.050737, 41.776101],\n            [120.024867, 41.737707],\n            [120.035954, 41.708226],\n            [120.096316, 41.697056],\n            [120.1382, 41.729221],\n            [120.127113, 41.77253],\n            [120.183164, 41.826513],\n            [120.188707, 41.848361],\n            [120.215808, 41.853265],\n            [120.251533, 41.884016],\n            [120.286641, 41.880005],\n            [120.290337, 41.897381],\n            [120.260156, 41.904062],\n            [120.271859, 41.925439],\n            [120.318054, 41.93746],\n            [120.309431, 41.951704],\n            [120.373489, 41.994862],\n            [120.399358, 41.984631],\n            [120.456641, 42.016208],\n            [120.450481, 42.057101],\n            [120.493597, 42.073539],\n            [120.466496, 42.105516],\n            [120.56751, 42.152119],\n            [120.58414, 42.167203],\n            [120.624792, 42.154338],\n            [120.72211, 42.203565],\n            [120.745516, 42.223512],\n            [120.79048, 42.218636],\n            [120.820661, 42.227943],\n            [120.8299, 42.252755],\n            [120.883487, 42.242565],\n            [120.883487, 42.269585],\n            [120.933994, 42.27977],\n            [120.992508, 42.264714],\n            [121.028848, 42.242565],\n            [121.070732, 42.254083],\n            [121.087978, 42.278885],\n            [121.120623, 42.280656],\n            [121.133558, 42.300135],\n            [121.184681, 42.333324],\n            [121.218558, 42.371802],\n            [121.285079, 42.387717],\n            [121.314644, 42.42837],\n            [121.304789, 42.435879],\n            [121.386093, 42.474294],\n            [121.434752, 42.475176],\n            [121.4791, 42.49636],\n            [121.506201, 42.482239],\n            [121.570875, 42.487093],\n            [121.607831, 42.516214],\n            [121.604136, 42.495037],\n            [121.66573, 42.437204],\n            [121.69899, 42.438529],\n            [121.747649, 42.484887],\n            [121.803084, 42.514891],\n            [121.817867, 42.504303],\n            [121.831417, 42.533856],\n            [121.844352, 42.522389],\n            [121.889931, 42.556784],\n            [121.921344, 42.605697],\n            [121.915801, 42.656332],\n            [121.94167, 42.666014],\n            [121.939207, 42.688453],\n            [122.018663, 42.69901],\n            [122.062394, 42.723635],\n            [122.072865, 42.710444],\n            [122.160945, 42.684934],\n            [122.204676, 42.685374],\n            [122.204676, 42.732867],\n            [122.261343, 42.695931],\n            [122.324785, 42.684934],\n            [122.338951, 42.669975],\n            [122.396234, 42.684054],\n            [122.396234, 42.707366],\n            [122.460907, 42.755282],\n            [122.439349, 42.770221],\n            [122.371596, 42.776371],\n            [122.35127, 42.830378],\n            [122.436886, 42.843105],\n            [122.556378, 42.827745],\n            [122.576088, 42.819405],\n            [122.580399, 42.789987],\n            [122.624747, 42.773296],\n            [122.653696, 42.78252],\n            [122.733152, 42.786034],\n            [122.73808, 42.77066],\n            [122.786123, 42.757479],\n            [122.848949, 42.712203],\n            [122.883442, 42.751766],\n            [122.887137, 42.770221],\n            [122.925941, 42.772417],\n            [122.945651, 42.753524],\n            [122.980144, 42.777689],\n            [123.058368, 42.768903],\n            [123.118114, 42.801405],\n            [123.227752, 42.831695],\n            [123.169853, 42.859777],\n            [123.188947, 42.895739],\n            [123.18402, 42.925983],\n            [123.259165, 42.993431],\n            [123.323222, 43.000872],\n            [123.434707, 43.027565],\n            [123.474743, 43.042438],\n            [123.536337, 43.007],\n            [123.572678, 43.003498],\n            [123.580685, 43.036314],\n            [123.631192, 43.088346],\n            [123.636119, 43.141644],\n            [123.666916, 43.179623],\n            [123.645974, 43.208855],\n            [123.676771, 43.223684],\n            [123.664453, 43.264663],\n            [123.698329, 43.272071],\n            [123.703873, 43.37047],\n            [123.608402, 43.366119],\n            [123.54496, 43.415262],\n            [123.519707, 43.402219],\n            [123.486446, 43.44525],\n            [123.442098, 43.437863],\n            [123.419925, 43.410046],\n            [123.382968, 43.469143],\n            [123.36449, 43.483475],\n            [123.315831, 43.492159],\n            [123.329998, 43.519071],\n            [123.304744, 43.550742],\n            [123.360179, 43.567223],\n            [123.452569, 43.545971],\n            [123.461193, 43.568523],\n            [123.434091, 43.575461],\n            [123.421157, 43.598435],\n            [123.5117, 43.592801],\n            [123.510468, 43.624867],\n            [123.536953, 43.633964],\n            [123.518475, 43.682024],\n            [123.520323, 43.708419],\n            [123.48275, 43.737396],\n            [123.498149, 43.771114],\n            [123.461809, 43.822518],\n            [123.467968, 43.853599],\n            [123.397135, 43.954929],\n            [123.37065, 43.970006],\n            [123.400831, 43.979481],\n            [123.365722, 44.013922],\n            [123.331229, 44.028984],\n            [123.32815, 44.084035],\n            [123.350939, 44.092633],\n            [123.362642, 44.133452],\n            [123.386664, 44.161794],\n            [123.323838, 44.179823],\n            [123.286882, 44.211574],\n            [123.277027, 44.25274],\n            [123.196955, 44.34483],\n            [123.128585, 44.367081],\n            [123.114419, 44.40258],\n            [123.142136, 44.428228],\n            [123.125506, 44.455147],\n            [123.137209, 44.486322],\n            [123.12489, 44.5098],\n            [123.06576, 44.505959],\n            [123.025108, 44.493153],\n            [122.85634, 44.398304],\n            [122.76087, 44.369648],\n            [122.702971, 44.319145],\n            [122.675254, 44.285738],\n            [122.641993, 44.283595],\n            [122.515726, 44.251025],\n            [122.483081, 44.236877],\n            [122.319241, 44.233018],\n            [122.271198, 44.255741],\n            [122.291524, 44.310152],\n            [122.294604, 44.41113],\n            [122.28598, 44.477783],\n            [122.228082, 44.480345],\n            [122.224386, 44.526016],\n            [122.196053, 44.559712],\n            [122.13138, 44.577619],\n            [122.113517, 44.615546],\n            [122.103046, 44.67388],\n            [122.117213, 44.701961],\n            [122.161561, 44.728328],\n            [122.152322, 44.744057],\n            [122.10243, 44.736406],\n            [122.110438, 44.767856],\n            [122.142467, 44.753833],\n            [122.168952, 44.770405],\n            [122.099967, 44.7823],\n            [122.098119, 44.81882],\n            [122.04946, 44.912985],\n            [122.079025, 44.914256],\n            [122.087032, 44.95281],\n            [122.074713, 45.006573],\n            [122.098735, 45.02138],\n            [122.119677, 45.068739],\n            [122.109822, 45.142236],\n            [122.143082, 45.183167],\n            [122.192358, 45.180636],\n            [122.22993, 45.206784],\n            [122.239169, 45.276313],\n            [122.147394, 45.295682],\n            [122.146778, 45.374352],\n            [122.180039, 45.409655],\n            [122.168336, 45.439897],\n            [122.064242, 45.472641],\n            [122.002648, 45.507882],\n            [121.993409, 45.552741],\n            [121.966308, 45.596308],\n            [121.995873, 45.59882],\n            [122.003264, 45.623102],\n            [121.970004, 45.692956],\n            [121.934279, 45.71051],\n            [121.867142, 45.719703],\n            [121.812323, 45.704659],\n            [121.811091, 45.687103],\n            [121.713773, 45.701734],\n            [121.666345, 45.727641],\n            [121.644172, 45.752284],\n            [121.657106, 45.770238],\n            [121.697142, 45.76314],\n            [121.754425, 45.794862],\n            [121.766744, 45.830318],\n            [121.769823, 45.84366],\n            [121.817251, 45.875336],\n            [121.805548, 45.900746],\n            [121.821562, 45.918235],\n            [121.809243, 45.961102],\n            [121.761816, 45.998947],\n            [121.819098, 46.023054],\n            [121.843736, 46.024301],\n            [121.864062, 46.002272],\n            [121.923808, 46.004767],\n            [121.92812, 45.988552],\n            [122.040221, 45.959022],\n            [122.085184, 45.912406],\n            [122.091344, 45.882002],\n            [122.200981, 45.857],\n            [122.236705, 45.831569],\n            [122.253952, 45.7982],\n            [122.301379, 45.813218],\n            [122.337719, 45.859917],\n            [122.372828, 45.856166],\n            [122.362357, 45.917403],\n            [122.446125, 45.916986],\n            [122.496016, 45.85825],\n            [122.504639, 45.786933],\n            [122.522501, 45.786933],\n            [122.556378, 45.82156],\n            [122.603189, 45.778169],\n            [122.640761, 45.771072],\n            [122.650001, 45.731401],\n            [122.671558, 45.70048],\n            [122.741775, 45.705077],\n            [122.751015, 45.735996],\n            [122.792283, 45.766063],\n            [122.752246, 45.834905],\n            [122.772572, 45.856583],\n            [122.80029, 45.856583],\n            [122.828623, 45.912406],\n            [122.792898, 46.073313],\n            [123.04605, 46.099878],\n            [123.070071, 46.123527],\n            [123.112571, 46.130163],\n            [123.102716, 46.172037],\n            [123.127354, 46.174523],\n            [123.128585, 46.210565],\n            [123.178476, 46.248239],\n            [123.142136, 46.298293],\n            [123.089781, 46.347888],\n            [123.011557, 46.434984],\n            [123.010325, 46.524823],\n            [123.002318, 46.574624],\n            [123.052825, 46.579972],\n            [123.04605, 46.617803],\n            [123.077462, 46.622324],\n            [123.098404, 46.603002],\n            [123.18094, 46.614103],\n            [123.228368, 46.588198],\n            [123.279491, 46.616981],\n            [123.276411, 46.660947],\n            [123.318295, 46.662179],\n            [123.366338, 46.677784],\n            [123.474743, 46.686817],\n            [123.603475, 46.68928],\n            [123.631808, 46.728675],\n            [123.629344, 46.813524],\n            [123.580069, 46.827447],\n            [123.625648, 46.847508],\n            [123.599163, 46.868378],\n            [123.605322, 46.891286],\n            [123.576989, 46.891286],\n            [123.575757, 46.845461],\n            [123.562823, 46.82581],\n            [123.506772, 46.827038],\n            [123.483366, 46.84587],\n            [123.52833, 46.944836],\n            [123.487678, 46.959951],\n            [123.42362, 46.934212],\n            [123.337389, 46.988943],\n            [123.301664, 46.999965],\n            [123.304128, 46.964852],\n            [123.360179, 46.970978],\n            [123.404526, 46.935438],\n            [123.40699, 46.906416],\n            [123.374345, 46.837683],\n            [123.341084, 46.826628],\n            [123.295505, 46.865105],\n            [123.221592, 46.850373],\n            [123.22344, 46.821305],\n            [123.198802, 46.803283],\n            [123.163694, 46.74016],\n            [123.103332, 46.734828],\n            [123.076846, 46.745082],\n            [123.026339, 46.718829],\n            [123.00355, 46.730726],\n            [122.996774, 46.761483],\n            [122.906847, 46.80738],\n            [122.893913, 46.895376],\n            [122.895144, 46.960359],\n            [122.83971, 46.937072],\n            [122.791051, 46.941567],\n            [122.798442, 46.9575],\n            [122.77442, 46.973837],\n            [122.778116, 47.002822],\n            [122.845869, 47.046881],\n            [122.852645, 47.072158],\n            [122.821232, 47.065636],\n            [122.710363, 47.093349],\n            [122.679566, 47.094164],\n            [122.615508, 47.124306],\n            [122.582863, 47.158092],\n            [122.531124, 47.198771],\n            [122.498479, 47.255262],\n            [122.462755, 47.27841],\n            [122.441197, 47.310476],\n            [122.418407, 47.350632],\n            [122.507103, 47.401291],\n            [122.543443, 47.495589],\n            [122.59395, 47.54732],\n            [122.765181, 47.614333],\n            [122.848949, 47.67441],\n            [122.926557, 47.697777],\n            [123.041122, 47.746492],\n            [123.161846, 47.781892],\n            [123.214201, 47.824502],\n            [123.256085, 47.876711],\n            [123.300432, 47.953723],\n            [123.537569, 48.021816],\n            [123.579453, 48.045427],\n            [123.705105, 48.152142],\n            [123.746373, 48.197638],\n            [123.862785, 48.271782],\n            [124.019234, 48.39313],\n            [124.07898, 48.43603],\n            [124.136878, 48.463023],\n            [124.25945, 48.536385],\n            [124.314269, 48.503881],\n            [124.302566, 48.456673],\n            [124.330283, 48.435633],\n            [124.309957, 48.413393],\n            [124.331515, 48.380015],\n            [124.317964, 48.35099],\n            [124.353689, 48.315978],\n            [124.365392, 48.283731],\n            [124.422058, 48.245884],\n            [124.412819, 48.219175],\n            [124.418978, 48.181679],\n            [124.475029, 48.173698],\n            [124.471333, 48.133373],\n            [124.430065, 48.12099],\n            [124.415899, 48.08782],\n            [124.46579, 48.098213],\n            [124.478108, 48.123387],\n            [124.505826, 48.124985],\n            [124.529847, 48.146951],\n            [124.512601, 48.164518],\n            [124.547094, 48.200829],\n            [124.579122, 48.262221],\n            [124.558796, 48.268197],\n            [124.579738, 48.297269],\n            [124.540934, 48.335476],\n            [124.547094, 48.35775],\n            [124.51876, 48.378027],\n            [124.52492, 48.426897],\n            [124.507674, 48.445558],\n            [124.555717, 48.467784],\n            [124.533543, 48.515379],\n            [124.548941, 48.535593],\n            [124.520608, 48.556195],\n            [124.579122, 48.596582],\n            [124.601912, 48.632587],\n            [124.624702, 48.701755],\n            [124.612383, 48.747945],\n            [124.656115, 48.783842],\n            [124.644412, 48.80789],\n            [124.654267, 48.83429],\n            [124.697383, 48.841775],\n            [124.715861, 48.885475],\n            [124.709086, 48.920487],\n            [124.744194, 48.920487],\n            [124.756513, 48.967262],\n            [124.808252, 49.020666],\n            [124.828578, 49.077933],\n            [124.809484, 49.115943],\n            [124.847672, 49.129651],\n            [124.860607, 49.166448],\n            [124.906802, 49.184054],\n            [124.983179, 49.162535],\n            [125.039845, 49.17623],\n            [125.034302, 49.157056],\n            [125.117453, 49.126127],\n            [125.158721, 49.144921],\n            [125.187671, 49.186792],\n            [125.219699, 49.189139],\n            [125.227707, 49.248947],\n            [125.214772, 49.277066],\n            [125.261583, 49.322336],\n            [125.256656, 49.359769],\n            [125.277598, 49.379644],\n            [125.25604, 49.395227],\n            [125.256656, 49.437275],\n            [125.270822, 49.454395],\n            [125.228323, 49.487063],\n            [125.211076, 49.539908],\n            [125.233866, 49.536801],\n            [125.23017, 49.595411],\n            [125.205533, 49.593859],\n            [125.16796, 49.629923],\n            [125.15441, 49.616741],\n            [125.127308, 49.655113],\n            [125.132236, 49.672157],\n            [125.164881, 49.669446],\n            [125.189518, 49.652401],\n            [125.185207, 49.634574],\n            [125.219699, 49.669058],\n            [125.225243, 49.726349],\n            [125.204301, 49.734086],\n            [125.221547, 49.754969],\n            [125.222779, 49.799026],\n            [125.177815, 49.829533],\n            [125.239409, 49.844587],\n            [125.225243, 49.867351],\n            [125.245569, 49.87198],\n            [125.212924, 49.907452],\n            [125.225859, 49.922481],\n            [125.199373, 49.935194],\n            [125.190134, 49.959841],\n            [125.231402, 49.957531],\n            [125.241873, 49.987938],\n            [125.278214, 49.996402],\n            [125.297924, 50.014481],\n            [125.283757, 50.036012],\n            [125.25296, 50.041393],\n            [125.289916, 50.057917],\n            [125.315786, 50.04562],\n            [125.328105, 50.065985],\n            [125.283757, 50.070211],\n            [125.287453, 50.093636],\n            [125.258504, 50.103618],\n            [125.27883, 50.127411],\n            [125.311474, 50.140453],\n            [125.376148, 50.137385],\n            [125.335496, 50.161161],\n            [125.382923, 50.172278],\n            [125.39093, 50.199868],\n            [125.417416, 50.195654],\n            [125.448829, 50.216338],\n            [125.442053, 50.260357],\n            [125.466075, 50.266861],\n            [125.463611, 50.295925],\n            [125.530749, 50.331085],\n            [125.520278, 50.3498],\n            [125.546763, 50.358965],\n            [125.522126, 50.404759],\n            [125.536292, 50.420014],\n            [125.567089, 50.402852],\n            [125.583104, 50.409717],\n            [125.562162, 50.438314],\n            [125.580024, 50.449366],\n            [125.627451, 50.443268],\n            [125.654553, 50.471082],\n            [125.699516, 50.487078],\n            [125.740784, 50.523237],\n            [125.754335, 50.506874],\n            [125.770349, 50.531227],\n            [125.794987, 50.532748],\n            [125.829479, 50.56165],\n            [125.807921, 50.60383],\n            [125.814697, 50.62092],\n            [125.793139, 50.643316],\n            [125.804226, 50.658874],\n            [125.789443, 50.679735],\n            [125.825784, 50.70362],\n            [125.78082, 50.725598],\n            [125.795603, 50.738856],\n            [125.758646, 50.746809],\n            [125.804226, 50.773309],\n            [125.828863, 50.756654],\n            [125.846726, 50.769524],\n            [125.836255, 50.793363],\n            [125.890457, 50.805845],\n            [125.878138, 50.816812],\n            [125.913247, 50.825885],\n            [125.939732, 50.85423],\n            [125.961906, 50.901054],\n            [125.997631, 50.872738],\n            [125.996399, 50.906715],\n            [126.02042, 50.927466],\n            [126.042594, 50.92558],\n            [126.068464, 50.967434],\n            [126.041978, 50.981753],\n            [126.033971, 51.011132],\n            [126.059225, 51.043503],\n            [125.976073, 51.084498],\n            [125.993935, 51.119072],\n            [125.970529, 51.123955],\n            [125.946508, 51.108176],\n            [125.909551, 51.138977],\n            [125.864588, 51.146487],\n            [125.850421, 51.21364],\n            [125.819008, 51.227134],\n            [125.761726, 51.226385],\n            [125.76111, 51.261976],\n            [125.740784, 51.27583],\n            [125.700132, 51.327465],\n            [125.626219, 51.380163],\n            [125.623756, 51.387633],\n            [125.62314, 51.398089],\n            [125.600966, 51.410409],\n            [125.60035, 51.413396],\n            [125.595422, 51.416755],\n            [125.559082, 51.461521],\n            [125.528285, 51.488359],\n            [125.424807, 51.562827],\n            [125.38046, 51.585516],\n            [125.35151, 51.623801],\n            [125.316402, 51.610052],\n            [125.289301, 51.633831],\n            [125.228938, 51.640517],\n            [125.214772, 51.627888],\n            [125.175968, 51.639403],\n            [125.130388, 51.635317],\n            [125.12854, 51.659083],\n            [125.098975, 51.658341],\n            [125.060171, 51.59667],\n            [125.073106, 51.553526],\n            [125.047236, 51.529704],\n            [125.004737, 51.529332],\n            [124.983795, 51.508478],\n            [124.928976, 51.498419],\n            [124.917889, 51.474196],\n            [124.942527, 51.447349],\n            [124.885244, 51.40817],\n            [124.864302, 51.37979],\n            [124.783614, 51.392115],\n            [124.76452, 51.38726],\n            [124.752817, 51.35812],\n            [124.693687, 51.3327],\n            [124.62655, 51.327465],\n            [124.58713, 51.363725],\n            [124.555717, 51.375307],\n            [124.490427, 51.380537],\n            [124.478108, 51.36223],\n            [124.443616, 51.35812],\n            [124.426985, 51.331953],\n            [124.430065, 51.301281],\n            [124.406659, 51.272086],\n            [124.339522, 51.293422],\n            [124.297638, 51.298661],\n            [124.271769, 51.308389],\n            [124.239124, 51.344664],\n            [124.192313, 51.33943],\n            [124.128255, 51.347281],\n            [124.090067, 51.3413],\n            [124.071588, 51.320734],\n            [123.994596, 51.322604],\n            [123.939777, 51.313253],\n            [123.926227, 51.300532],\n            [123.887423, 51.320734],\n            [123.842459, 51.367462],\n            [123.794416, 51.361109],\n            [123.711264, 51.398089],\n            [123.660141, 51.342795],\n            [123.661989, 51.319237],\n            [123.582533, 51.306893],\n            [123.582533, 51.294545],\n            [123.46304, 51.286686],\n            [123.440251, 51.270963],\n            [123.414381, 51.278825],\n            [123.376809, 51.266844],\n            [123.339853, 51.27246],\n            [123.294273, 51.254111],\n            [123.231447, 51.268716],\n            [123.231447, 51.279199],\n            [123.127969, 51.297913],\n            [123.069455, 51.321108],\n            [123.002934, 51.31213],\n            [122.965977, 51.345786],\n            [122.965977, 51.386886],\n            [122.946267, 51.405183],\n            [122.903768, 51.415262],\n            [122.900072, 51.445112],\n            [122.871123, 51.455181],\n            [122.854492, 51.477551],\n            [122.880362, 51.511085],\n            [122.858804, 51.524864],\n            [122.880362, 51.537894],\n            [122.874202, 51.561339],\n            [122.832935, 51.581797],\n            [122.85634, 51.606707],\n            [122.820616, 51.633088],\n            [122.816304, 51.655371],\n            [122.778732, 51.698048],\n            [122.749167, 51.746613],\n            [122.771957, 51.779579],\n            [122.732536, 51.832495],\n            [122.725761, 51.87833],\n            [122.706051, 51.890151],\n            [122.729457, 51.919321],\n            [122.726377, 51.978709],\n            [122.683877, 51.974654],\n            [122.664783, 51.99861],\n            [122.650616, 52.058997],\n            [122.625363, 52.067459],\n            [122.643841, 52.111585],\n            [122.629059, 52.13657],\n            [122.690653, 52.140243],\n            [122.73808, 52.153464],\n            [122.769493, 52.179893],\n            [122.766413, 52.232705],\n            [122.787355, 52.252494],\n            [122.76087, 52.26678],\n            [122.710979, 52.256157],\n            [122.67895, 52.276667],\n            [122.585943, 52.266413],\n            [122.560689, 52.282526],\n            [122.478153, 52.29607],\n            [122.484313, 52.341432],\n            [122.447356, 52.394052],\n            [122.419023, 52.375057],\n            [122.378987, 52.395512],\n            [122.367284, 52.413768],\n            [122.342031, 52.414133],\n            [122.326016, 52.459374],\n            [122.310618, 52.475416],\n            [122.207756, 52.469218],\n            [122.178191, 52.48963],\n            [122.168952, 52.513674],\n            [122.140003, 52.510032],\n            [122.142467, 52.495096],\n            [122.107358, 52.452445],\n            [122.080873, 52.440407],\n            [122.091344, 52.427272],\n            [122.040837, 52.413038],\n            [122.035909, 52.377615],\n            [121.976779, 52.343626],\n            [121.94783, 52.298266],\n            [121.901018, 52.280695],\n            [121.841272, 52.282526],\n            [121.769207, 52.308147],\n            [121.714389, 52.318025],\n            [121.715621, 52.342894],\n            [121.658338, 52.3904],\n            [121.678664, 52.419973],\n            [121.63986, 52.44442],\n            [121.590585, 52.443326],\n            [121.565331, 52.460468],\n            [121.519136, 52.456821],\n            [121.495114, 52.484892],\n            [121.474172, 52.482706],\n            [121.416274, 52.499468],\n            [121.411963, 52.52205],\n            [121.353448, 52.534793],\n            [121.323883, 52.573727],\n            [121.280151, 52.586819],\n            [121.225333, 52.577364],\n            [121.182217, 52.59918],\n            [121.237036, 52.619167],\n            [121.29247, 52.651855],\n            [121.309717, 52.676173],\n            [121.373158, 52.683067],\n            [121.455078, 52.73528],\n            [121.476636, 52.772225],\n            [121.511129, 52.779104],\n            [121.537614, 52.801542],\n            [121.591201, 52.824693],\n            [121.620766, 52.853251],\n            [121.604136, 52.872401],\n            [121.610295, 52.892264],\n            [121.66265, 52.912478],\n            [121.677432, 52.948192],\n            [121.715621, 52.997926],\n            [121.785838, 53.018451],\n            [121.817867, 53.061631],\n            [121.775367, 53.089674],\n            [121.784606, 53.104408],\n            [121.753193, 53.147501],\n            [121.722396, 53.145706],\n            [121.665114, 53.170467],\n            [121.660186, 53.195213],\n            [121.67928, 53.199515],\n            [121.679896, 53.240722],\n            [121.642324, 53.262564],\n            [121.615222, 53.258984],\n            [121.575802, 53.29155],\n            [121.504969, 53.323018],\n            [121.499426, 53.337314],\n            [121.416274, 53.319443],\n            [121.336818, 53.325877],\n            [121.308485, 53.301565],\n            [121.227797, 53.280459],\n            [121.155732, 53.285468],\n            [121.129246, 53.277238],\n            [121.098449, 53.306929],\n            [121.055334, 53.29155],\n            [120.950624, 53.29763],\n            [120.936457, 53.28833],\n            [120.882871, 53.294411],\n            [120.867472, 53.278669],\n            [120.820661, 53.269007],\n            [120.838523, 53.239648],\n            [120.821893, 53.241797],\n            [120.736277, 53.204892],\n            [120.690698, 53.174771],\n            [120.687002, 53.142476],\n            [120.659901, 53.137091],\n            [120.643886, 53.106923],\n            [120.562582, 53.082845],\n            [120.529321, 53.045803],\n            [120.452945, 53.01017],\n            [120.411061, 52.957927],\n            [120.363018, 52.94134],\n            [120.350699, 52.906343],\n            [120.295265, 52.891542],\n            [120.297112, 52.869872],\n            [120.222584, 52.84277],\n            [120.181316, 52.806969],\n            [120.14128, 52.813119],\n            [120.101244, 52.788877],\n            [120.031642, 52.773674],\n            [120.071063, 52.70628],\n            [120.035338, 52.646409],\n            [120.049505, 52.598453],\n            [120.07599, 52.586092],\n            [120.125265, 52.586819],\n            [120.194866, 52.578819],\n            [120.289721, 52.623527],\n            [120.396895, 52.616261],\n            [120.462184, 52.64532],\n            [120.483742, 52.630066],\n            [120.56135, 52.595544],\n            [120.605082, 52.589364],\n            [120.62664, 52.570818],\n            [120.658669, 52.56718],\n            [120.690698, 52.547532],\n            [120.734429, 52.536977],\n            [120.687002, 52.511489],\n            [120.706712, 52.492909],\n            [120.68269, 52.464479],\n            [120.688234, 52.427637],\n            [120.64943, 52.3904],\n            [120.653741, 52.371038],\n            [120.62356, 52.361172],\n            [120.627256, 52.323878],\n            [120.653741, 52.302658],\n            [120.695625, 52.290214],\n            [120.715951, 52.261286],\n            [120.755371, 52.258355],\n            [120.745516, 52.20594],\n            [120.786784, 52.15787],\n            [120.760299, 52.136937],\n            [120.76769, 52.10938],\n            [120.753523, 52.085483],\n            [120.717183, 52.072978],\n            [120.690698, 52.047221],\n            [120.691929, 52.026973],\n            [120.717799, 52.015556],\n            [120.704864, 51.983501],\n            [120.66298, 51.958061],\n            [120.656821, 51.926333],\n            [120.548416, 51.907877],\n            [120.549032, 51.882394],\n            [120.481278, 51.885719],\n            [120.480046, 51.855049],\n            [120.40059, 51.833605],\n            [120.40675, 51.81659],\n            [120.363634, 51.789945],\n            [120.317438, 51.785873],\n            [120.294649, 51.752171],\n            [120.226279, 51.717703],\n            [120.172693, 51.679868],\n            [120.087077, 51.678013],\n            [120.100628, 51.649058],\n            [120.05936, 51.634203],\n            [120.035954, 51.583657],\n            [120.052584, 51.560967],\n            [120.017476, 51.52114],\n            [119.985447, 51.505125],\n            [119.982367, 51.482396],\n            [120.002693, 51.459283],\n            [119.982983, 51.445112],\n            [119.97128, 51.40033],\n            [119.910918, 51.390994],\n            [119.914614, 51.374187],\n            [119.946643, 51.360736],\n            [119.883817, 51.336813],\n            [119.885049, 51.302777],\n            [119.811136, 51.281071],\n            [119.828383, 51.263099],\n            [119.797586, 51.243622],\n            [119.821607, 51.21439],\n            [119.784035, 51.22601],\n            [119.760629, 51.212516],\n            [119.788346, 51.174636],\n            [119.771716, 51.124331],\n            [119.752622, 51.117193],\n            [119.764325, 51.092017],\n            [119.719361, 51.075099],\n            [119.726753, 51.051028],\n            [119.678093, 51.016404],\n            [119.630666, 51.00925],\n            [119.598637, 50.984767],\n            [119.569688, 50.933879],\n            [119.491464, 50.87878],\n            [119.498855, 50.827776],\n            [119.515485, 50.814165],\n            [119.496391, 50.771795],\n            [119.506862, 50.763846],\n            [119.450196, 50.695281],\n            [119.430486, 50.684286],\n            [119.385522, 50.682769],\n            [119.394145, 50.667219],\n            [119.361501, 50.632689],\n            [119.298059, 50.616743],\n            [119.281428, 50.601551],\n            [119.295595, 50.573814],\n            [119.264182, 50.536933],\n            [119.262334, 50.490124],\n            [119.250631, 50.448604],\n            [119.22353, 50.441363],\n            [119.217371, 50.414675],\n            [119.165016, 50.422683],\n            [119.125596, 50.389118],\n            [119.176719, 50.378814],\n            [119.155777, 50.364691],\n            [119.188422, 50.347509],\n            [119.232153, 50.365455],\n            [119.259871, 50.345218],\n            [119.277117, 50.366218],\n            [119.322696, 50.352474],\n            [119.358421, 50.358965],\n            [119.381827, 50.324208],\n            [119.35103, 50.303953],\n            [119.339943, 50.244668],\n            [119.319001, 50.220933],\n            [119.358421, 50.197953],\n            [119.339327, 50.192206],\n            [119.350414, 50.166145],\n            [119.309762, 50.161161],\n            [119.290052, 50.121655],\n            [119.236465, 50.075204],\n            [119.190269, 50.087877],\n            [119.193965, 50.069826],\n            [119.163168, 50.027554],\n            [119.12498, 50.019095],\n            [119.090487, 49.985629],\n            [118.982082, 49.979087],\n            [118.964836, 49.988708],\n            [118.791757, 49.955606],\n            [118.761576, 49.959456],\n            [118.739402, 49.946364],\n            [118.672264, 49.955991],\n            [118.605127, 49.926719],\n            [118.574946, 49.931342],\n            [118.531214, 49.887791],\n            [118.485019, 49.866194],\n            [118.483787, 49.830691],\n            [118.443751, 49.835709],\n            [118.385853, 49.827217],\n            [118.398787, 49.802502],\n            [118.384005, 49.783958],\n            [118.315636, 49.766953],\n            [118.284223, 49.743755],\n            [118.220781, 49.729831],\n            [118.211542, 49.690744],\n            [118.156723, 49.660149],\n            [118.129622, 49.669446],\n            [118.082811, 49.616741],\n            [118.011362, 49.614803],\n            [117.995963, 49.623332],\n            [117.950999, 49.596187],\n            [117.866, 49.591532],\n            [117.849369, 49.551557],\n            [117.809333, 49.521263],\n            [117.638102, 49.574847],\n            [117.485349, 49.633024],\n            [117.278394, 49.636512],\n            [117.068974, 49.695389],\n            [116.736367, 49.847674],\n            [116.717889, 49.847288],\n            [116.428397, 49.430659],\n            [116.048363, 48.873274],\n            [116.077928, 48.822471],\n            [116.069305, 48.811437],\n            [115.83032, 48.560156],\n            [115.799523, 48.514982],\n            [115.822929, 48.259432],\n            [115.81061, 48.257042],\n            [115.529126, 48.155336],\n            [115.545141, 48.134971],\n            [115.539597, 48.104607],\n            [115.580249, 47.921649],\n            [115.939342, 47.683275],\n            [115.968291, 47.689721],\n            [116.111189, 47.811642],\n            [116.130283, 47.823296],\n            [116.26579, 47.876711],\n            [116.453035, 47.837358],\n            [116.669846, 47.890758],\n            [116.791186, 47.89758],\n            [116.879265, 47.893968],\n            [117.094844, 47.8241],\n            [117.384335, 47.641356],\n            [117.493357, 47.758563],\n            [117.519226, 47.761782],\n            [117.529081, 47.782697],\n            [117.813645, 48.016212],\n            [117.886942, 48.025418],\n            [117.96147, 48.011007],\n            [118.052014, 48.01421],\n            [118.107448, 48.031021],\n            [118.124694, 48.047427],\n            [118.150564, 48.036224],\n            [118.238643, 48.041826],\n            [118.238027, 48.031422],\n            [118.284839, 48.011007],\n            [118.351976, 48.006203],\n            [118.37415, 48.016612],\n            [118.422193, 48.01461],\n            [118.441903, 47.995791],\n            [118.568171, 47.992187],\n            [118.773278, 47.771034],\n            [119.134219, 47.664335],\n            [119.152081, 47.540453],\n            [119.205052, 47.520249],\n            [119.365812, 47.47739],\n            [119.32208, 47.42721],\n            [119.365812, 47.423161],\n            [119.386138, 47.397645],\n            [119.437877, 47.378602],\n            [119.450812, 47.353065],\n            [119.559217, 47.303172],\n            [119.56784, 47.248357],\n            [119.627586, 47.247544],\n            [119.716282, 47.195518],\n            [119.763093, 47.13082],\n            [119.806825, 47.055037],\n            [119.79081, 47.04525],\n            [119.795122, 47.013024],\n            [119.845013, 46.964852],\n            [119.859795, 46.917046],\n            [119.926933, 46.903963],\n            [119.920157, 46.853238],\n            [119.936172, 46.790173],\n            [119.917078, 46.758203],\n            [119.93494, 46.712674],\n            [119.911534, 46.669572],\n            [119.859179, 46.669572],\n            [119.804361, 46.68189],\n            [119.8136, 46.66834],\n            [119.783419, 46.626023],\n            [119.739687, 46.615336],\n            [119.677477, 46.584908],\n            [119.682405, 46.605058],\n            [119.656535, 46.625612],\n            [119.598637, 46.618214],\n            [119.557985, 46.633832],\n            [119.491464, 46.629311],\n            [119.431718, 46.638763],\n            [119.374435, 46.603414],\n            [119.357805, 46.619447],\n            [119.325776, 46.608759],\n            [119.26295, 46.649034],\n            [119.20074, 46.648213],\n            [119.152081, 46.658072],\n            [119.123132, 46.642872],\n            [119.073857, 46.676552],\n            [119.011647, 46.745902],\n            [118.951285, 46.722111],\n            [118.912481, 46.733188],\n            [118.914329, 46.77501],\n            [118.845343, 46.771731],\n            [118.788061, 46.717598],\n            [118.788061, 46.687227],\n            [118.677192, 46.6979],\n            [118.639004, 46.721291],\n            [118.586033, 46.692975],\n            [118.446831, 46.704467],\n            [118.41049, 46.728265],\n            [118.316252, 46.73934],\n            [118.274984, 46.715957],\n            [118.238643, 46.709392],\n            [118.192448, 46.682711],\n            [118.124078, 46.678195],\n            [118.04647, 46.631366],\n            [117.992883, 46.631366],\n            [117.982412, 46.614925],\n            [117.914659, 46.607936],\n            [117.868464, 46.575447],\n            [117.870927, 46.549935],\n            [117.813645, 46.530588],\n            [117.769913, 46.537586],\n            [117.748355, 46.521941],\n            [117.704008, 46.516587],\n            [117.641182, 46.558166],\n            [117.622704, 46.596012],\n            [117.596218, 46.603414],\n            [117.49582, 46.600535],\n            [117.42006, 46.582029],\n            [117.447777, 46.528117],\n            [117.392343, 46.463023],\n            [117.375712, 46.416421],\n            [117.383719, 46.394962],\n            [117.372017, 46.36028],\n            [117.247597, 46.366888],\n            [117.097308, 46.356976],\n            [116.876801, 46.375559],\n            [116.834302, 46.384229],\n            [116.81336, 46.355737],\n            [116.745606, 46.327642],\n            [116.673541, 46.325163],\n            [116.585462, 46.292504],\n            [116.573143, 46.258998],\n            [116.536187, 46.23251],\n            [116.439484, 46.137628],\n            [116.414231, 46.133896],\n            [116.271949, 45.966926],\n            [116.243, 45.876169],\n            [116.288579, 45.839074],\n            [116.278108, 45.831152],\n            [116.286731, 45.775247],\n            [116.260862, 45.776082],\n            [116.22329, 45.747273],\n            [116.217746, 45.72221],\n            [116.17463, 45.688775],\n            [116.1155, 45.679577],\n            [116.035428, 45.685013],\n            [116.026805, 45.661177],\n            [115.936878, 45.632727],\n            [115.864197, 45.572853],\n            [115.699741, 45.45963],\n            [115.586408, 45.440317],\n            [115.36467, 45.392427],\n            [115.178041, 45.396209],\n            [114.983404, 45.379397],\n            [114.920578, 45.386122],\n            [114.745035, 45.438217],\n            [114.600906, 45.403773],\n            [114.551014, 45.387383],\n            [114.539928, 45.325985],\n            [114.519602, 45.283893],\n            [114.459855, 45.21353],\n            [114.409348, 45.179371],\n            [114.347139, 45.119436],\n            [114.313262, 45.107189],\n            [114.19069, 45.036607],\n            [114.158045, 44.994301],\n            [114.116777, 44.957045],\n            [114.065038, 44.931206],\n            [113.907358, 44.915104],\n            [113.861778, 44.863377],\n            [113.798953, 44.849377],\n            [113.712105, 44.788247],\n            [113.631417, 44.745333],\n            [113.540874, 44.759358],\n            [113.503918, 44.777628],\n            [113.11526, 44.799714],\n            [113.037652, 44.822641],\n            [112.937869, 44.840042],\n            [112.850406, 44.840466],\n            [112.712436, 44.879494],\n            [112.599719, 44.930783],\n            [112.540589, 45.001072],\n            [112.438959, 45.071697],\n            [112.396459, 45.064512],\n            [112.113743, 45.072965],\n            [112.071243, 45.096206],\n            [112.002874, 45.090713],\n            [111.903707, 45.052252],\n            [111.764505, 44.969325],\n            [111.69244, 44.859983],\n            [111.624687, 44.778477],\n            [111.585267, 44.705789],\n            [111.560629, 44.647062],\n            [111.569868, 44.57634],\n            [111.530448, 44.55033],\n            [111.514434, 44.507666],\n            [111.478709, 44.488884],\n            [111.427586, 44.394455],\n            [111.415883, 44.35724],\n            [111.428818, 44.319573],\n            [111.507042, 44.294305],\n            [111.534144, 44.26217],\n            [111.541535, 44.206855],\n            [111.559397, 44.171238],\n            [111.662875, 44.061247],\n            [111.702295, 44.034147],\n            [111.773128, 44.010479],\n            [111.870447, 43.940279],\n            [111.959758, 43.823382],\n            [111.970845, 43.748205],\n            [111.951135, 43.693275],\n            [111.891388, 43.6738],\n            [111.79407, 43.672068],\n            [111.606209, 43.513863],\n            [111.564325, 43.490422],\n            [111.456535, 43.494329],\n            [111.400485, 43.472618],\n            [111.354289, 43.436125],\n            [111.183674, 43.396132],\n            [111.151029, 43.38004],\n            [111.069725, 43.357852],\n            [111.02045, 43.329998],\n            [110.82027, 43.149067],\n            [110.769763, 43.099272],\n            [110.736502, 43.089657],\n            [110.687227, 43.036314],\n            [110.689691, 43.02144],\n            [110.631177, 42.936061],\n            [110.469801, 42.839156],\n            [110.437156, 42.781203],\n            [110.34846, 42.742098],\n            [110.139657, 42.674815],\n            [110.108244, 42.642687],\n            [109.906216, 42.635643],\n            [109.733753, 42.579262],\n            [109.683862, 42.558988],\n            [109.544044, 42.472528],\n            [109.486761, 42.458842],\n            [109.291509, 42.435879],\n            [109.026039, 42.458401],\n            [108.983539, 42.449128],\n            [108.845569, 42.395673],\n            [108.798757, 42.415116],\n            [108.705134, 42.413349],\n            [108.532671, 42.442945],\n            [108.298614, 42.438529],\n            [108.238252, 42.460167],\n            [108.089195, 42.436321],\n            [108.022058, 42.433229],\n            [107.986949, 42.413349],\n            [107.939522, 42.403628],\n            [107.736262, 42.415116],\n            [107.57427, 42.412907],\n            [107.501589, 42.456635],\n            [107.46648, 42.458842],\n            [107.303872, 42.412465],\n            [107.271844, 42.364285],\n            [107.051337, 42.319166],\n            [106.785867, 42.291281],\n            [106.612789, 42.241679],\n            [106.372572, 42.161436],\n            [106.344855, 42.149457],\n            [106.01348, 42.032213],\n            [105.74185, 41.949033],\n            [105.589713, 41.888471],\n            [105.385221, 41.797073],\n            [105.291599, 41.749763],\n            [105.230621, 41.751103],\n            [105.009498, 41.583007],\n            [104.923267, 41.654143],\n            [104.803775, 41.652355],\n            [104.68921, 41.6452],\n            [104.524138, 41.661745],\n            [104.530298, 41.875104],\n            [104.418813, 41.860397],\n            [104.30856, 41.840782],\n            [104.080046, 41.805104],\n            [103.868779, 41.802427],\n            [103.454868, 41.877332],\n            [103.418527, 41.882233],\n            [103.20726, 41.96283],\n            [103.021862, 42.028212],\n            [102.712045, 42.153007],\n            [102.621502, 42.154338],\n            [102.540814, 42.162323],\n            [102.449039, 42.144133],\n            [102.093642, 42.223512],\n            [102.070236, 42.232374],\n            [101.877447, 42.432345],\n            [101.803534, 42.503861],\n            [101.770274, 42.509597],\n            [101.557775, 42.529887],\n            [101.291689, 42.586312],\n            [100.862995, 42.671295],\n            [100.826655, 42.675255],\n            [100.32528, 42.690213],\n            [100.272309, 42.636523],\n            [100.004376, 42.648849],\n            [99.969267, 42.647969],\n            [99.51224, 42.568244],\n            [98.962822, 42.607018],\n            [98.546447, 42.638284],\n            [98.195362, 42.653251],\n            [97.831958, 42.706047],\n            [97.28254, 42.782081],\n            [97.172903, 42.795257]\n          ]\n        ]\n      }\n    },\n    {\n      \"type\": \"Feature\",\n      \"properties\": {\n        \"adcode\": 210000,\n        \"name\": \"辽宁省\",\n        \"center\": [123.429096, 41.796767],\n        \"centroid\": [122.604994, 41.299712],\n        \"childrenNum\": 14,\n        \"level\": \"province\",\n        \"parent\": { \"adcode\": 100000 },\n        \"subFeatureIndex\": 5,\n        \"acroutes\": [100000]\n      },\n      \"geometry\": {\n        \"type\": \"MultiPolygon\",\n        \"coordinates\": [\n          [\n            [\n              [123.534489, 39.788361],\n              [123.546808, 39.756163],\n              [123.579453, 39.781002],\n              [123.612714, 39.775023],\n              [123.642279, 39.796178],\n              [123.645358, 39.823761],\n              [123.674924, 39.826979],\n              [123.687858, 39.808132],\n              [123.795032, 39.822842],\n              [123.812278, 39.831115],\n              [123.95148, 39.817786],\n              [124.002603, 39.800316],\n              [124.103001, 39.823302],\n              [124.099306, 39.777323],\n              [124.151045, 39.74558],\n              [124.173218, 39.841225],\n              [124.214486, 39.865116],\n              [124.215102, 39.883487],\n              [124.21695, 39.894049],\n              [124.218182, 39.895885],\n              [124.219414, 39.899099],\n              [124.241588, 39.928477],\n              [124.286551, 39.931689],\n              [124.288399, 39.962888],\n              [124.349377, 39.989029],\n              [124.372167, 40.021576],\n              [124.336442, 40.049985],\n              [124.346913, 40.079756],\n              [124.428217, 40.144291],\n              [124.457782, 40.177679],\n              [124.490427, 40.18408],\n              [124.513833, 40.218362],\n              [124.515065, 40.22019],\n              [124.62655, 40.291896],\n              [124.722636, 40.321561],\n              [124.739267, 40.371733],\n              [124.834121, 40.423235],\n              [124.913578, 40.481981],\n              [124.945606, 40.45603],\n              [124.985642, 40.475153],\n              [125.044157, 40.466503],\n              [125.042925, 40.483802],\n              [125.004737, 40.496091],\n              [125.015823, 40.533853],\n              [125.076801, 40.562048],\n              [125.113758, 40.569322],\n              [125.181511, 40.611132],\n              [125.262815, 40.620218],\n              [125.279445, 40.655187],\n              [125.305315, 40.661089],\n              [125.329337, 40.643835],\n              [125.375532, 40.658365],\n              [125.422343, 40.635661],\n              [125.418648, 40.673345],\n              [125.453756, 40.676522],\n              [125.459916, 40.707379],\n              [125.49564, 40.728697],\n              [125.544915, 40.729605],\n              [125.551075, 40.761796],\n              [125.585567, 40.788535],\n              [125.61698, 40.763609],\n              [125.685349, 40.769048],\n              [125.67611, 40.788082],\n              [125.641002, 40.798503],\n              [125.648393, 40.826133],\n              [125.707523, 40.866877],\n              [125.687813, 40.897645],\n              [125.652089, 40.91619],\n              [125.584335, 40.891764],\n              [125.589263, 40.931112],\n              [125.635458, 40.94151],\n              [125.650241, 40.970888],\n              [125.674879, 40.974503],\n              [125.684118, 41.021929],\n              [125.726617, 41.055332],\n              [125.739552, 41.08917],\n              [125.712451, 41.095485],\n              [125.734009, 41.125695],\n              [125.759878, 41.132908],\n              [125.791291, 41.167607],\n              [125.73832, 41.178418],\n              [125.758646, 41.232449],\n              [125.749407, 41.245499],\n              [125.695205, 41.244599],\n              [125.685349, 41.273842],\n              [125.646545, 41.264396],\n              [125.642234, 41.296327],\n              [125.62006, 41.318355],\n              [125.637306, 41.34442],\n              [125.610205, 41.365084],\n              [125.589879, 41.359245],\n              [125.581256, 41.396517],\n              [125.547995, 41.401006],\n              [125.534444, 41.428833],\n              [125.533212, 41.479069],\n              [125.493176, 41.509103],\n              [125.507343, 41.534195],\n              [125.479626, 41.544946],\n              [125.450061, 41.597777],\n              [125.461148, 41.642516],\n              [125.446981, 41.67605],\n              [125.412488, 41.691246],\n              [125.344119, 41.672474],\n              [125.317018, 41.676944],\n              [125.332416, 41.711354],\n              [125.336112, 41.768067],\n              [125.336112, 41.768067],\n              [125.323177, 41.771191],\n              [125.323177, 41.771191],\n              [125.319482, 41.776993],\n              [125.319482, 41.776993],\n              [125.294844, 41.822945],\n              [125.307779, 41.924548],\n              [125.35151, 41.92811],\n              [125.291764, 41.958825],\n              [125.29854, 41.974399],\n              [125.369989, 42.002868],\n              [125.363213, 42.017097],\n              [125.416184, 42.063766],\n              [125.414336, 42.101964],\n              [125.446365, 42.098411],\n              [125.490097, 42.136145],\n              [125.458068, 42.160105],\n              [125.458068, 42.160105],\n              [125.41372, 42.156112],\n              [125.368141, 42.182726],\n              [125.357054, 42.145464],\n              [125.305931, 42.146351],\n              [125.312706, 42.197359],\n              [125.280677, 42.175187],\n              [125.312706, 42.219966],\n              [125.27575, 42.231045],\n              [125.27575, 42.266928],\n              [125.299156, 42.289953],\n              [125.264047, 42.312528],\n              [125.224011, 42.30102],\n              [125.175352, 42.308102],\n              [125.167345, 42.351903],\n              [125.203685, 42.366938],\n              [125.185823, 42.38197],\n              [125.186439, 42.427928],\n              [125.140243, 42.44692],\n              [125.150098, 42.458842],\n              [125.105135, 42.490624],\n              [125.068794, 42.499449],\n              [125.090968, 42.515773],\n              [125.066946, 42.534738],\n              [125.089736, 42.567803],\n              [125.082961, 42.591159],\n              [125.097127, 42.622433],\n              [125.038613, 42.615387],\n              [125.010896, 42.63212],\n              [125.014592, 42.666014],\n              [124.99057, 42.677455],\n              [124.968396, 42.722756],\n              [124.996729, 42.745174],\n              [124.975171, 42.802722],\n              [124.92836, 42.819844],\n              [124.897563, 42.787791],\n              [124.874157, 42.789987],\n              [124.856911, 42.824234],\n              [124.84952, 42.882585],\n              [124.87231, 42.962344],\n              [124.869846, 42.988178],\n              [124.840897, 43.032377],\n              [124.88894, 43.074796],\n              [124.882781, 43.13422],\n              [124.785462, 43.117185],\n              [124.755281, 43.074359],\n              [124.719557, 43.069987],\n              [124.686912, 43.051185],\n              [124.677673, 43.002185],\n              [124.658579, 42.972854],\n              [124.635173, 42.972854],\n              [124.632093, 42.949642],\n              [124.607456, 42.937376],\n              [124.586514, 42.905384],\n              [124.466406, 42.847054],\n              [124.435609, 42.880831],\n              [124.371551, 42.880831],\n              [124.38079, 42.912835],\n              [124.431913, 42.930803],\n              [124.442384, 42.958841],\n              [124.42329, 42.975482],\n              [124.369703, 42.972854],\n              [124.333363, 42.997371],\n              [124.425754, 43.076107],\n              [124.366007, 43.121554],\n              [124.273617, 43.17875],\n              [124.287167, 43.207983],\n              [124.27608, 43.233278],\n              [124.228653, 43.235022],\n              [124.215102, 43.255947],\n              [124.168291, 43.244177],\n              [124.114088, 43.247229],\n              [124.117168, 43.2773],\n              [124.099306, 43.292983],\n              [124.032784, 43.280786],\n              [123.964415, 43.34088],\n              [123.896046, 43.361333],\n              [123.881263, 43.392218],\n              [123.881263, 43.392218],\n              [123.852314, 43.406133],\n              [123.857858, 43.459153],\n              [123.857858, 43.459153],\n              [123.79688, 43.489988],\n              [123.747604, 43.472184],\n              [123.749452, 43.439167],\n              [123.710032, 43.417001],\n              [123.703873, 43.37047],\n              [123.698329, 43.272071],\n              [123.664453, 43.264663],\n              [123.676771, 43.223684],\n              [123.645974, 43.208855],\n              [123.666916, 43.179623],\n              [123.636119, 43.141644],\n              [123.631192, 43.088346],\n              [123.580685, 43.036314],\n              [123.572678, 43.003498],\n              [123.536337, 43.007],\n              [123.474743, 43.042438],\n              [123.434707, 43.027565],\n              [123.323222, 43.000872],\n              [123.259165, 42.993431],\n              [123.18402, 42.925983],\n              [123.188947, 42.895739],\n              [123.169853, 42.859777],\n              [123.227752, 42.831695],\n              [123.118114, 42.801405],\n              [123.058368, 42.768903],\n              [122.980144, 42.777689],\n              [122.945651, 42.753524],\n              [122.925941, 42.772417],\n              [122.887137, 42.770221],\n              [122.883442, 42.751766],\n              [122.883442, 42.751766],\n              [122.848949, 42.712203],\n              [122.848949, 42.712203],\n              [122.786123, 42.757479],\n              [122.73808, 42.77066],\n              [122.733152, 42.786034],\n              [122.653696, 42.78252],\n              [122.624747, 42.773296],\n              [122.580399, 42.789987],\n              [122.576088, 42.819405],\n              [122.556378, 42.827745],\n              [122.436886, 42.843105],\n              [122.35127, 42.830378],\n              [122.371596, 42.776371],\n              [122.439349, 42.770221],\n              [122.460907, 42.755282],\n              [122.396234, 42.707366],\n              [122.396234, 42.684054],\n              [122.338951, 42.669975],\n              [122.324785, 42.684934],\n              [122.261343, 42.695931],\n              [122.204676, 42.732867],\n              [122.204676, 42.685374],\n              [122.160945, 42.684934],\n              [122.072865, 42.710444],\n              [122.062394, 42.723635],\n              [122.018663, 42.69901],\n              [121.939207, 42.688453],\n              [121.94167, 42.666014],\n              [121.915801, 42.656332],\n              [121.921344, 42.605697],\n              [121.889931, 42.556784],\n              [121.844352, 42.522389],\n              [121.831417, 42.533856],\n              [121.817867, 42.504303],\n              [121.803084, 42.514891],\n              [121.747649, 42.484887],\n              [121.69899, 42.438529],\n              [121.66573, 42.437204],\n              [121.604136, 42.495037],\n              [121.607831, 42.516214],\n              [121.570875, 42.487093],\n              [121.506201, 42.482239],\n              [121.4791, 42.49636],\n              [121.434752, 42.475176],\n              [121.386093, 42.474294],\n              [121.304789, 42.435879],\n              [121.314644, 42.42837],\n              [121.285079, 42.387717],\n              [121.218558, 42.371802],\n              [121.184681, 42.333324],\n              [121.133558, 42.300135],\n              [121.120623, 42.280656],\n              [121.087978, 42.278885],\n              [121.070732, 42.254083],\n              [121.028848, 42.242565],\n              [120.992508, 42.264714],\n              [120.933994, 42.27977],\n              [120.883487, 42.269585],\n              [120.883487, 42.269585],\n              [120.883487, 42.242565],\n              [120.8299, 42.252755],\n              [120.820661, 42.227943],\n              [120.79048, 42.218636],\n              [120.745516, 42.223512],\n              [120.72211, 42.203565],\n              [120.624792, 42.154338],\n              [120.58414, 42.167203],\n              [120.56751, 42.152119],\n              [120.466496, 42.105516],\n              [120.493597, 42.073539],\n              [120.450481, 42.057101],\n              [120.456641, 42.016208],\n              [120.399358, 41.984631],\n              [120.373489, 41.994862],\n              [120.309431, 41.951704],\n              [120.318054, 41.93746],\n              [120.271859, 41.925439],\n              [120.260156, 41.904062],\n              [120.290337, 41.897381],\n              [120.286641, 41.880005],\n              [120.251533, 41.884016],\n              [120.215808, 41.853265],\n              [120.188707, 41.848361],\n              [120.183164, 41.826513],\n              [120.127113, 41.77253],\n              [120.1382, 41.729221],\n              [120.096316, 41.697056],\n              [120.035954, 41.708226],\n              [120.024867, 41.737707],\n              [120.050737, 41.776101],\n              [120.041498, 41.818932],\n              [120.023019, 41.816701],\n              [119.989759, 41.899163],\n              [119.954034, 41.923212],\n              [119.950954, 41.974399],\n              [119.924469, 41.98908],\n              [119.921389, 42.014429],\n              [119.897368, 42.030879],\n              [119.87581, 42.077982],\n              [119.845629, 42.097079],\n              [119.837622, 42.135257],\n              [119.854868, 42.170308],\n              [119.841933, 42.215534],\n              [119.744615, 42.211545],\n              [119.679941, 42.240793],\n              [119.617115, 42.252755],\n              [119.609108, 42.276671],\n              [119.557985, 42.289068],\n              [119.557985, 42.289068],\n              [119.539507, 42.297922],\n              [119.571536, 42.335536],\n              [119.572152, 42.359421],\n              [119.540123, 42.363401],\n              [119.502551, 42.388159],\n              [119.482841, 42.347037],\n              [119.432949, 42.317396],\n              [119.34795, 42.300578],\n              [119.280197, 42.260728],\n              [119.274037, 42.239021],\n              [119.237697, 42.200905],\n              [119.277733, 42.185387],\n              [119.286972, 42.154781],\n              [119.30853, 42.147239],\n              [119.314689, 42.119723],\n              [119.352261, 42.118391],\n              [119.384906, 42.08953],\n              [119.375667, 42.023322],\n              [119.324544, 41.969505],\n              [119.323928, 41.937014],\n              [119.340559, 41.926774],\n              [119.323312, 41.889807],\n              [119.334399, 41.871539],\n              [119.312841, 41.80555],\n              [119.292515, 41.790827],\n              [119.317769, 41.764049],\n              [119.319001, 41.727435],\n              [119.299907, 41.705545],\n              [119.307914, 41.657273],\n              [119.342406, 41.617914],\n              [119.415703, 41.590169],\n              [119.420015, 41.567785],\n              [119.362116, 41.566442],\n              [119.361501, 41.545841],\n              [119.406464, 41.503276],\n              [119.401537, 41.472343],\n              [119.378131, 41.459787],\n              [119.376283, 41.422102],\n              [119.309762, 41.405944],\n              [119.330704, 41.385293],\n              [119.296211, 41.325097],\n              [119.239545, 41.31431],\n              [119.2494, 41.279689],\n              [119.209364, 41.244599],\n              [119.204436, 41.222546],\n              [119.169943, 41.222996],\n              [119.189038, 41.198234],\n              [119.126212, 41.138767],\n              [119.081248, 41.131555],\n              [119.080632, 41.095936],\n              [119.037516, 41.067516],\n              [118.964836, 41.079246],\n              [118.937118, 41.052625],\n              [118.951901, 41.018317],\n              [119.013495, 41.007479],\n              [119.00056, 40.967273],\n              [118.977154, 40.959138],\n              [118.977154, 40.959138],\n              [118.916792, 40.969984],\n              [118.90201, 40.960946],\n              [118.873061, 40.847866],\n              [118.845959, 40.822057],\n              [118.878604, 40.783098],\n              [118.907553, 40.775394],\n              [118.895234, 40.75409],\n              [118.950053, 40.747743],\n              [118.96114, 40.72008],\n              [119.011031, 40.687414],\n              [119.028277, 40.692406],\n              [119.054763, 40.664721],\n              [119.115125, 40.666536],\n              [119.165632, 40.69286],\n              [119.184726, 40.680153],\n              [119.14469, 40.632482],\n              [119.162552, 40.600228],\n              [119.177951, 40.609315],\n              [119.230921, 40.603863],\n              [119.22045, 40.569322],\n              [119.256175, 40.543404],\n              [119.30237, 40.530215],\n              [119.429254, 40.540221],\n              [119.477913, 40.533399],\n              [119.503783, 40.553864],\n              [119.559217, 40.547952],\n              [119.572152, 40.523846],\n              [119.553674, 40.502007],\n              [119.604797, 40.455119],\n              [119.586934, 40.375381],\n              [119.598021, 40.334335],\n              [119.651608, 40.271808],\n              [119.639289, 40.231613],\n              [119.639289, 40.231613],\n              [119.671934, 40.23938],\n              [119.716898, 40.195966],\n              [119.745847, 40.207851],\n              [119.760629, 40.136056],\n              [119.736608, 40.104936],\n              [119.772332, 40.08113],\n              [119.783419, 40.046778],\n              [119.783419, 40.046778],\n              [119.787115, 40.041739],\n              [119.787115, 40.041739],\n              [119.81668, 40.050443],\n              [119.81668, 40.050443],\n              [119.854252, 40.033033],\n              [119.845629, 40.000949],\n              [119.845629, 40.000949],\n              [119.854252, 39.98857],\n              [119.91831, 39.989946],\n              [119.941715, 40.009659],\n              [119.947259, 40.040364],\n              [120.092005, 40.077466],\n              [120.134504, 40.074719],\n              [120.161606, 40.096239],\n              [120.273091, 40.127362],\n              [120.371641, 40.174478],\n              [120.451097, 40.177679],\n              [120.491749, 40.20008],\n              [120.523778, 40.256737],\n              [120.52193, 40.304676],\n              [120.537329, 40.325211],\n              [120.602618, 40.36079],\n              [120.596459, 40.399084],\n              [120.617401, 40.41959],\n              [120.616169, 40.444645],\n              [120.619249, 40.460128],\n              [120.666676, 40.467413],\n              [120.693777, 40.505647],\n              [120.72211, 40.515657],\n              [120.72827, 40.539311],\n              [120.822509, 40.59432],\n              [120.837291, 40.644289],\n              [120.8299, 40.671076],\n              [120.861313, 40.684692],\n              [120.939537, 40.686507],\n              [120.983269, 40.712822],\n              [121.032544, 40.709193],\n              [121.028848, 40.746382],\n              [120.991276, 40.744115],\n              [120.980189, 40.766329],\n              [120.994356, 40.790801],\n              [120.971566, 40.805751],\n              [121.00729, 40.807563],\n              [121.010986, 40.784457],\n              [121.086747, 40.79805],\n              [121.076892, 40.815716],\n              [121.096602, 40.839717],\n              [121.126167, 40.86914],\n              [121.177906, 40.873665],\n              [121.23642, 40.851035],\n              [121.290622, 40.851488],\n              [121.439064, 40.830208],\n              [121.440296, 40.88181],\n              [121.499426, 40.880001],\n              [121.526527, 40.85194],\n              [121.55486, 40.849677],\n              [121.553013, 40.817528],\n              [121.576418, 40.837906],\n              [121.626309, 40.844244],\n              [121.682976, 40.829755],\n              [121.732251, 40.846961],\n              [121.735331, 40.862351],\n              [121.778446, 40.886787],\n              [121.816019, 40.894931],\n              [121.84312, 40.831567],\n              [121.883772, 40.802127],\n              [121.934279, 40.79805],\n              [121.936127, 40.711462],\n              [121.951525, 40.680607],\n              [122.025438, 40.674253],\n              [122.06609, 40.64883],\n              [122.122141, 40.657457],\n              [122.148626, 40.671983],\n              [122.133843, 40.614313],\n              [122.150474, 40.588413],\n              [122.245944, 40.519752],\n              [122.231162, 40.505192],\n              [122.265038, 40.48016],\n              [122.221923, 40.481071],\n              [122.240401, 40.461039],\n              [122.250872, 40.445555],\n              [122.229314, 40.424146],\n              [122.186814, 40.422779],\n              [122.198517, 40.382219],\n              [122.152322, 40.357597],\n              [122.135691, 40.374925],\n              [122.111054, 40.348932],\n              [122.138155, 40.338897],\n              [122.110438, 40.315629],\n              [122.079641, 40.332967],\n              [122.040221, 40.322017],\n              [122.039605, 40.260391],\n              [122.02667, 40.244862],\n              [121.940438, 40.242121],\n              [121.950293, 40.204194],\n              [121.98109, 40.173106],\n              [122.003264, 40.172191],\n              [121.995257, 40.128277],\n              [121.956453, 40.133311],\n              [121.910257, 40.072887],\n              [121.824642, 40.025701],\n              [121.796309, 39.999116],\n              [121.779062, 39.942702],\n              [121.76428, 39.933525],\n              [121.699606, 39.937196],\n              [121.626925, 39.882569],\n              [121.572107, 39.865116],\n              [121.541926, 39.874302],\n              [121.530223, 39.851334],\n              [121.472325, 39.802155],\n              [121.487107, 39.760303],\n              [121.45939, 39.747881],\n              [121.502506, 39.703233],\n              [121.482796, 39.659478],\n              [121.451999, 39.658095],\n              [121.450151, 39.624914],\n              [121.325731, 39.601402],\n              [121.299246, 39.606013],\n              [121.263521, 39.589873],\n              [121.226565, 39.554814],\n              [121.224717, 39.519275],\n              [121.268449, 39.482794],\n              [121.286927, 39.507271],\n              [121.301709, 39.476327],\n              [121.245659, 39.456923],\n              [121.270296, 39.434277],\n              [121.246891, 39.421334],\n              [121.245659, 39.389427],\n              [121.270296, 39.374162],\n              [121.307869, 39.391277],\n              [121.324499, 39.371386],\n              [121.35468, 39.377863],\n              [121.432904, 39.357506],\n              [121.435984, 39.329736],\n              [121.466781, 39.320014],\n              [121.474788, 39.296398],\n              [121.508665, 39.29223],\n              [121.51544, 39.286672],\n              [121.562252, 39.322792],\n              [121.621382, 39.326033],\n              [121.72486, 39.364447],\n              [121.711925, 39.33992],\n              [121.7187, 39.320477],\n              [121.667577, 39.310754],\n              [121.672505, 39.275554],\n              [121.623846, 39.285745],\n              [121.589353, 39.263044],\n              [121.631237, 39.22643],\n              [121.591201, 39.228748],\n              [121.586889, 39.193506],\n              [121.604136, 39.166136],\n              [121.639244, 39.166136],\n              [121.68236, 39.117863],\n              [121.631853, 39.077921],\n              [121.605983, 39.080708],\n              [121.642324, 39.11972],\n              [121.590585, 39.154999],\n              [121.562252, 39.127149],\n              [121.599208, 39.098824],\n              [121.581962, 39.075598],\n              [121.508049, 39.034237],\n              [121.431057, 39.027263],\n              [121.370695, 39.060264],\n              [121.317108, 39.012384],\n              [121.341129, 38.980757],\n              [121.275224, 38.971917],\n              [121.204391, 38.941202],\n              [121.180369, 38.959819],\n              [121.128014, 38.958888],\n              [121.08921, 38.922115],\n              [121.094138, 38.894173],\n              [121.129862, 38.879266],\n              [121.110768, 38.862026],\n              [121.12863, 38.799089],\n              [121.112, 38.776231],\n              [121.13787, 38.723023],\n              [121.198848, 38.721623],\n              [121.259825, 38.786495],\n              [121.280767, 38.786961],\n              [121.288775, 38.78976],\n              [121.315876, 38.793958],\n              [121.359608, 38.822406],\n              [121.399028, 38.812613],\n              [121.509897, 38.817743],\n              [121.564715, 38.874607],\n              [121.618302, 38.862492],\n              [121.675585, 38.86156],\n              [121.708845, 38.872744],\n              [121.719316, 38.920252],\n              [121.655874, 38.946788],\n              [121.618918, 38.950046],\n              [121.66265, 38.966333],\n              [121.671273, 39.010059],\n              [121.73841, 38.998898],\n              [121.756889, 39.025869],\n              [121.790149, 39.022614],\n              [121.804932, 38.970986],\n              [121.863446, 38.942598],\n              [121.920728, 38.969591],\n              [121.905946, 38.997503],\n              [121.852975, 39.035631],\n              [121.8887, 39.027263],\n              [121.929352, 39.024939],\n              [121.907178, 39.055617],\n              [121.923192, 39.053758],\n              [121.963228, 39.030053],\n              [122.013735, 39.073275],\n              [122.061778, 39.060264],\n              [122.071634, 39.074204],\n              [122.048228, 39.101146],\n              [122.088264, 39.112291],\n              [122.127684, 39.144788],\n              [122.167104, 39.158711],\n              [122.123988, 39.172631],\n              [122.117213, 39.213911],\n              [122.160329, 39.238019],\n              [122.242865, 39.267678],\n              [122.274893, 39.322329],\n              [122.30877, 39.346399],\n              [122.366053, 39.370461],\n              [122.412864, 39.411625],\n              [122.455364, 39.408388],\n              [122.467682, 39.403301],\n              [122.51203, 39.413474],\n              [122.532972, 39.419947],\n              [122.581631, 39.464316],\n              [122.637066, 39.488799],\n              [122.649385, 39.516505],\n              [122.682645, 39.514658],\n              [122.808913, 39.559889],\n              [122.847101, 39.581571],\n              [122.860652, 39.604629],\n              [122.941956, 39.604629],\n              [122.972753, 39.594946],\n              [122.978912, 39.616156],\n              [123.021412, 39.64335],\n              [123.010941, 39.655331],\n              [123.103332, 39.676983],\n              [123.146448, 39.647037],\n              [123.166774, 39.674219],\n              [123.212969, 39.665928],\n              [123.215433, 39.696786],\n              [123.253005, 39.689879],\n              [123.286882, 39.704154],\n              [123.270251, 39.714743],\n              [123.274563, 39.753862],\n              [123.350939, 39.750641],\n              [123.388512, 39.74742],\n              [123.392823, 39.723949],\n              [123.477823, 39.74696],\n              [123.521555, 39.772724],\n              [123.534489, 39.788361]\n            ]\n          ],\n          [\n            [\n              [122.63953, 39.286209],\n              [122.593334, 39.278334],\n              [122.539131, 39.308439],\n              [122.50895, 39.290377],\n              [122.57732, 39.269994],\n              [122.67895, 39.268605],\n              [122.673406, 39.269531],\n              [122.662935, 39.273701],\n              [122.655544, 39.277407],\n              [122.640761, 39.288061],\n              [122.63953, 39.286209]\n            ]\n          ],\n          [\n            [\n              [122.318625, 39.170775],\n              [122.345111, 39.144788],\n              [122.366053, 39.174951],\n              [122.398697, 39.16196],\n              [122.383299, 39.190723],\n              [122.393154, 39.213448],\n              [122.343263, 39.203246],\n              [122.322321, 39.177271],\n              [122.322937, 39.174487],\n              [122.319241, 39.172167],\n              [122.318625, 39.170775]\n            ]\n          ],\n          [\n            [\n              [122.691884, 39.23292],\n              [122.696812, 39.206492],\n              [122.751631, 39.229675],\n              [122.740544, 39.248679],\n              [122.635834, 39.241727],\n              [122.628443, 39.231993],\n              [122.690037, 39.234774],\n              [122.691268, 39.23431],\n              [122.691884, 39.23292]\n            ]\n          ],\n          [\n            [\n              [122.738696, 39.034701],\n              [122.704819, 39.044463],\n              [122.733152, 39.014244],\n              [122.75779, 39.009594],\n              [122.739312, 39.036561],\n              [122.738696, 39.034701]\n            ]\n          ],\n          [\n            [\n              [123.022644, 39.546507],\n              [122.96105, 39.551122],\n              [122.945035, 39.520198],\n              [122.995542, 39.495264],\n              [123.036194, 39.533123],\n              [123.022644, 39.546507]\n            ]\n          ],\n          [\n            [\n              [122.503407, 39.241263],\n              [122.502175, 39.224112],\n              [122.547755, 39.229211],\n              [122.503407, 39.241263]\n            ]\n          ],\n          [\n            [\n              [120.786784, 40.473787],\n              [120.83298, 40.491995],\n              [120.8299, 40.516112],\n              [120.805262, 40.525666],\n              [120.774465, 40.48016],\n              [120.786784, 40.473787]\n            ]\n          ],\n          [\n            [\n              [123.086702, 39.426881],\n              [123.090397, 39.450915],\n              [123.054057, 39.457847],\n              [123.086702, 39.426881]\n            ]\n          ],\n          [\n            [\n              [123.160614, 39.025404],\n              [123.205578, 39.057011],\n              [123.20065, 39.077921],\n              [123.145832, 39.091857],\n              [123.143984, 39.038885],\n              [123.160614, 39.025404]\n            ]\n          ],\n          [\n            [\n              [123.716807, 39.74512],\n              [123.756843, 39.754322],\n              [123.719887, 39.763063],\n              [123.716807, 39.74512]\n            ]\n          ]\n        ]\n      }\n    },\n    {\n      \"type\": \"Feature\",\n      \"properties\": {\n        \"adcode\": 220000,\n        \"name\": \"吉林省\",\n        \"center\": [125.3245, 43.886841],\n        \"centroid\": [126.171208, 43.703954],\n        \"childrenNum\": 9,\n        \"level\": \"province\",\n        \"parent\": { \"adcode\": 100000 },\n        \"subFeatureIndex\": 6,\n        \"acroutes\": [100000]\n      },\n      \"geometry\": {\n        \"type\": \"MultiPolygon\",\n        \"coordinates\": [\n          [\n            [\n              [129.601492, 42.415116],\n              [129.601492, 42.422627],\n              [129.591021, 42.447803],\n              [129.627361, 42.462816],\n              [129.651999, 42.426603],\n              [129.704354, 42.427045],\n              [129.748701, 42.471204],\n              [129.738846, 42.500332],\n              [129.749933, 42.546644],\n              [129.746237, 42.58455],\n              [129.786889, 42.615387],\n              [129.754245, 42.645768],\n              [129.796744, 42.681854],\n              [129.767179, 42.707806],\n              [129.78381, 42.762752],\n              [129.810911, 42.795257],\n              [129.816454, 42.851003],\n              [129.835549, 42.866796],\n              [129.846636, 42.918533],\n              [129.874969, 42.923792],\n              [129.856491, 42.951833],\n              [129.868193, 42.97373],\n              [129.903918, 42.968475],\n              [129.897143, 43.001748],\n              [129.954425, 43.010938],\n              [129.963664, 42.978547],\n              [130.002468, 42.981174],\n              [130.027106, 42.9676],\n              [130.072685, 42.971541],\n              [130.10841, 42.989929],\n              [130.144134, 42.976357],\n              [130.120729, 42.954461],\n              [130.127504, 42.932556],\n              [130.10225, 42.922916],\n              [130.136127, 42.90363],\n              [130.17062, 42.912397],\n              [130.21004, 42.902315],\n              [130.258083, 42.90626],\n              [130.277793, 42.892232],\n              [130.258083, 42.860655],\n              [130.245148, 42.799209],\n              [130.242069, 42.738582],\n              [130.257467, 42.710884],\n              [130.290112, 42.702968],\n              [130.333228, 42.64973],\n              [130.373264, 42.630799],\n              [130.388046, 42.603054],\n              [130.420691, 42.617148],\n              [130.44656, 42.607459],\n              [130.423771, 42.574855],\n              [130.435474, 42.553257],\n              [130.476125, 42.570007],\n              [130.459495, 42.588075],\n              [130.482285, 42.626837],\n              [130.522937, 42.622433],\n              [130.520473, 42.593362],\n              [130.558661, 42.495919],\n              [130.585763, 42.485328],\n              [130.581451, 42.435437],\n              [130.645509, 42.426603],\n              [130.600545, 42.450453],\n              [130.599929, 42.486211],\n              [130.565437, 42.506509],\n              [130.570364, 42.557224],\n              [130.622719, 42.573092],\n              [130.633806, 42.603494],\n              [130.592538, 42.671295],\n              [130.521089, 42.702089],\n              [130.464423, 42.688453],\n              [130.425003, 42.706926],\n              [130.40714, 42.731548],\n              [130.46627, 42.772417],\n              [130.532792, 42.787352],\n              [130.562357, 42.815015],\n              [130.603625, 42.819405],\n              [130.665835, 42.847932],\n              [130.708335, 42.846615],\n              [130.719422, 42.831695],\n              [130.75453, 42.845738],\n              [130.784095, 42.842227],\n              [130.801957, 42.879515],\n              [130.845073, 42.881269],\n              [130.890653, 42.852758],\n              [130.912826, 42.870744],\n              [130.949783, 42.876884],\n              [130.981812, 42.857145],\n              [131.043406, 42.862848],\n              [131.017536, 42.915027],\n              [131.034167, 42.929051],\n              [131.114855, 42.915027],\n              [131.145652, 42.9365],\n              [131.151195, 42.968475],\n              [131.115471, 42.975482],\n              [131.11855, 43.007875],\n              [131.102536, 43.021002],\n              [131.120398, 43.068238],\n              [131.171521, 43.06955],\n              [131.173985, 43.111506],\n              [131.207861, 43.1316],\n              [131.218948, 43.191405],\n              [131.201086, 43.203185],\n              [131.206014, 43.237202],\n              [131.255289, 43.265099],\n              [131.269455, 43.297775],\n              [131.275615, 43.369165],\n              [131.314419, 43.392653],\n              [131.295941, 43.441774],\n              [131.314419, 43.461325],\n              [131.31873, 43.499539],\n              [131.304564, 43.502144],\n              [131.294093, 43.470012],\n              [131.234963, 43.475224],\n              [131.201086, 43.442209],\n              [131.175217, 43.444816],\n              [131.142572, 43.425695],\n              [131.026775, 43.508655],\n              [130.959638, 43.48608],\n              [130.907283, 43.434387],\n              [130.864167, 43.437863],\n              [130.841378, 43.454374],\n              [130.822899, 43.503446],\n              [130.776704, 43.52341],\n              [130.727429, 43.560284],\n              [130.671378, 43.565054],\n              [130.665835, 43.583698],\n              [130.623335, 43.589767],\n              [130.630726, 43.622268],\n              [130.57098, 43.626167],\n              [130.57098, 43.626167],\n              [130.501995, 43.636563],\n              [130.488444, 43.65605],\n              [130.437937, 43.646091],\n              [130.412684, 43.652586],\n              [130.394206, 43.703227],\n              [130.423155, 43.745179],\n              [130.382503, 43.777164],\n              [130.381887, 43.817768],\n              [130.362793, 43.844967],\n              [130.386198, 43.85403],\n              [130.368336, 43.894151],\n              [130.381887, 43.910106],\n              [130.338155, 43.963975],\n              [130.364025, 43.992399],\n              [130.365256, 44.044042],\n              [130.319061, 44.03974],\n              [130.307358, 44.002731],\n              [130.27225, 43.981634],\n              [130.262395, 43.949328],\n              [130.208192, 43.948466],\n              [130.153373, 43.915711],\n              [130.143518, 43.878624],\n              [130.116417, 43.878192],\n              [130.110873, 43.852735],\n              [130.079461, 43.835039],\n              [130.027722, 43.851872],\n              [130.009243, 43.889407],\n              [130.022794, 43.917866],\n              [130.017867, 43.961821],\n              [129.979062, 44.015644],\n              [129.951345, 44.027263],\n              [129.907614, 44.023821],\n              [129.881128, 44.000148],\n              [129.868193, 44.012631],\n              [129.802904, 43.964837],\n              [129.780114, 43.892857],\n              [129.739462, 43.895876],\n              [129.743158, 43.876035],\n              [129.699426, 43.8838],\n              [129.650767, 43.873016],\n              [129.529427, 43.870427],\n              [129.467833, 43.874741],\n              [129.449971, 43.850578],\n              [129.417942, 43.843672],\n              [129.406855, 43.819496],\n              [129.348341, 43.798333],\n              [129.30892, 43.812155],\n              [129.289826, 43.797038],\n              [129.254718, 43.819496],\n              [129.211602, 43.784509],\n              [129.232544, 43.709284],\n              [129.214066, 43.695006],\n              [129.217146, 43.648689],\n              [129.232544, 43.635263],\n              [129.23008, 43.593234],\n              [129.169102, 43.561585],\n              [129.145081, 43.570258],\n              [129.093958, 43.547706],\n              [129.037907, 43.540332],\n              [129.013886, 43.522976],\n              [128.962763, 43.53903],\n              [128.949828, 43.553779],\n              [128.878379, 43.539898],\n              [128.834647, 43.587599],\n              [128.821097, 43.637429],\n              [128.78722, 43.686784],\n              [128.768126, 43.732207],\n              [128.729322, 43.736964],\n              [128.760119, 43.755554],\n              [128.739177, 43.806972],\n              [128.719467, 43.816905],\n              [128.760734, 43.857482],\n              [128.729938, 43.889838],\n              [128.696061, 43.903207],\n              [128.636315, 43.891132],\n              [128.64001, 43.948035],\n              [128.610445, 43.960529],\n              [128.584576, 43.990246],\n              [128.574721, 44.047914],\n              [128.529141, 44.112401],\n              [128.471859, 44.157501],\n              [128.450301, 44.203423],\n              [128.471859, 44.247596],\n              [128.453997, 44.257884],\n              [128.472475, 44.320001],\n              [128.446605, 44.339694],\n              [128.475555, 44.346114],\n              [128.481714, 44.375637],\n              [128.457076, 44.409848],\n              [128.463236, 44.431647],\n              [128.427511, 44.473512],\n              [128.397946, 44.483761],\n              [128.372693, 44.514495],\n              [128.295084, 44.480772],\n              [128.293237, 44.467961],\n              [128.228563, 44.445748],\n              [128.211317, 44.431647],\n              [128.172512, 44.34697],\n              [128.137404, 44.357668],\n              [128.094904, 44.354673],\n              [128.074578, 44.370075],\n              [128.049941, 44.349965],\n              [128.065339, 44.307155],\n              [128.101679, 44.293449],\n              [128.064107, 44.251454],\n              [128.104143, 44.230017],\n              [128.09244, 44.181539],\n              [128.060411, 44.168663],\n              [128.088129, 44.158359],\n              [128.091208, 44.133022],\n              [128.042549, 44.103807],\n              [127.950158, 44.088334],\n              [127.912586, 44.064687],\n              [127.862695, 44.062967],\n              [127.846065, 44.081886],\n              [127.808492, 44.086615],\n              [127.783239, 44.071997],\n              [127.729036, 44.09908],\n              [127.735811, 44.11412],\n              [127.712406, 44.199133],\n              [127.681609, 44.166946],\n              [127.641573, 44.193555],\n              [127.626174, 44.187977],\n              [127.59045, 44.227872],\n              [127.623711, 44.278025],\n              [127.579363, 44.310581],\n              [127.486356, 44.410275],\n              [127.50853, 44.437202],\n              [127.463566, 44.484615],\n              [127.465414, 44.516628],\n              [127.485124, 44.528576],\n              [127.536247, 44.522176],\n              [127.570124, 44.55033],\n              [127.557189, 44.575488],\n              [127.392733, 44.632158],\n              [127.275705, 44.640249],\n              [127.261538, 44.61299],\n              [127.214111, 44.624917],\n              [127.228893, 44.642804],\n              [127.182082, 44.644507],\n              [127.138966, 44.607451],\n              [127.094619, 44.615972],\n              [127.089691, 44.593816],\n              [127.049655, 44.566961],\n              [127.041648, 44.591258],\n              [127.044112, 44.653874],\n              [127.030561, 44.673454],\n              [127.041032, 44.712169],\n              [126.9973, 44.764882],\n              [126.984366, 44.823914],\n              [126.999764, 44.87398],\n              [127.021938, 44.898997],\n              [127.073061, 44.907051],\n              [127.092771, 44.94688],\n              [127.050271, 45.004034],\n              [127.018242, 45.024341],\n              [126.984981, 45.067893],\n              [126.970815, 45.070852],\n              [126.96404, 45.132104],\n              [126.85625, 45.145613],\n              [126.792808, 45.135481],\n              [126.787265, 45.159118],\n              [126.732446, 45.187385],\n              [126.685635, 45.187807],\n              [126.640055, 45.214373],\n              [126.644983, 45.225334],\n              [126.569222, 45.252725],\n              [126.540273, 45.23882],\n              [126.519331, 45.248091],\n              [126.402919, 45.222805],\n              [126.356107, 45.185698],\n              [126.293282, 45.180214],\n              [126.285274, 45.162494],\n              [126.235383, 45.140125],\n              [126.225528, 45.154054],\n              [126.166398, 45.13337],\n              [126.142992, 45.147723],\n              [126.091869, 45.149411],\n              [126.047522, 45.170933],\n              [125.998247, 45.162072],\n              [125.992703, 45.192447],\n              [125.957595, 45.201303],\n              [125.915095, 45.196664],\n              [125.849805, 45.23882],\n              [125.823936, 45.237978],\n              [125.815929, 45.264942],\n              [125.761726, 45.291472],\n              [125.726001, 45.336503],\n              [125.695205, 45.352066],\n              [125.712451, 45.389485],\n              [125.711835, 45.477677],\n              [125.687813, 45.514173],\n              [125.660096, 45.507043],\n              [125.61698, 45.517947],\n              [125.583104, 45.491942],\n              [125.497488, 45.469283],\n              [125.480242, 45.486488],\n              [125.424807, 45.485649],\n              [125.434662, 45.462988],\n              [125.398322, 45.416797],\n              [125.361981, 45.392847],\n              [125.319482, 45.422678],\n              [125.301619, 45.402092],\n              [125.248649, 45.417637],\n              [125.189518, 45.39915],\n              [125.137779, 45.409655],\n              [125.097127, 45.38276],\n              [125.06633, 45.39915],\n              [125.08912, 45.420998],\n              [125.0497, 45.428558],\n              [125.025678, 45.493201],\n              [124.961005, 45.495299],\n              [124.936983, 45.53388],\n              [124.911114, 45.535976],\n              [124.884628, 45.495299],\n              [124.886476, 45.442836],\n              [124.839665, 45.455852],\n              [124.792853, 45.436958],\n              [124.776223, 45.468024],\n              [124.729412, 45.444096],\n              [124.690607, 45.452493],\n              [124.625318, 45.437377],\n              [124.575427, 45.451234],\n              [124.579738, 45.424358],\n              [124.544014, 45.411756],\n              [124.507058, 45.424778],\n              [124.480572, 45.456271],\n              [124.398652, 45.440737],\n              [124.374015, 45.45795],\n              [124.352457, 45.496557],\n              [124.369087, 45.512915],\n              [124.348761, 45.546874],\n              [124.287783, 45.539329],\n              [124.264377, 45.555256],\n              [124.273001, 45.584163],\n              [124.238508, 45.591702],\n              [124.226805, 45.633564],\n              [124.162132, 45.616404],\n              [124.128255, 45.641933],\n              [124.147349, 45.665359],\n              [124.122096, 45.669123],\n              [124.13503, 45.690448],\n              [124.10177, 45.700898],\n              [124.098074, 45.722628],\n              [124.054342, 45.751449],\n              [124.014922, 45.749779],\n              [124.001987, 45.770655],\n              [124.064197, 45.802372],\n              [124.03648, 45.83824],\n              [124.067277, 45.840325],\n              [124.061118, 45.886168],\n              [123.996444, 45.906993],\n              [123.968727, 45.936551],\n              [123.973654, 45.973997],\n              [124.011842, 45.981899],\n              [123.989053, 46.011833],\n              [124.040176, 46.01973],\n              [124.034016, 46.045074],\n              [124.009995, 46.057534],\n              [124.015538, 46.088257],\n              [123.99398, 46.101123],\n              [124.01677, 46.118549],\n              [123.991516, 46.143019],\n              [124.001987, 46.166649],\n              [123.971806, 46.170379],\n              [123.956408, 46.206009],\n              [123.979814, 46.228784],\n              [123.952096, 46.256516],\n              [123.960103, 46.288369],\n              [123.936082, 46.286715],\n              [123.917604, 46.25693],\n              [123.896046, 46.303668],\n              [123.84985, 46.302428],\n              [123.775938, 46.263136],\n              [123.726047, 46.255688],\n              [123.673692, 46.258585],\n              [123.604706, 46.251964],\n              [123.569598, 46.223816],\n              [123.569598, 46.223816],\n              [123.499381, 46.259826],\n              [123.452569, 46.233338],\n              [123.430396, 46.243687],\n              [123.357099, 46.232096],\n              [123.357099, 46.232096],\n              [123.320758, 46.254447],\n              [123.286266, 46.250308],\n              [123.248078, 46.273065],\n              [123.178476, 46.248239],\n              [123.128585, 46.210565],\n              [123.127354, 46.174523],\n              [123.102716, 46.172037],\n              [123.112571, 46.130163],\n              [123.070071, 46.123527],\n              [123.04605, 46.099878],\n              [122.792898, 46.073313],\n              [122.828623, 45.912406],\n              [122.80029, 45.856583],\n              [122.772572, 45.856583],\n              [122.752246, 45.834905],\n              [122.792283, 45.766063],\n              [122.751015, 45.735996],\n              [122.741775, 45.705077],\n              [122.671558, 45.70048],\n              [122.650001, 45.731401],\n              [122.640761, 45.771072],\n              [122.603189, 45.778169],\n              [122.556378, 45.82156],\n              [122.522501, 45.786933],\n              [122.504639, 45.786933],\n              [122.496016, 45.85825],\n              [122.446125, 45.916986],\n              [122.362357, 45.917403],\n              [122.372828, 45.856166],\n              [122.337719, 45.859917],\n              [122.301379, 45.813218],\n              [122.253952, 45.7982],\n              [122.236705, 45.831569],\n              [122.200981, 45.857],\n              [122.091344, 45.882002],\n              [122.085184, 45.912406],\n              [122.040221, 45.959022],\n              [121.92812, 45.988552],\n              [121.923808, 46.004767],\n              [121.864062, 46.002272],\n              [121.843736, 46.024301],\n              [121.819098, 46.023054],\n              [121.761816, 45.998947],\n              [121.809243, 45.961102],\n              [121.821562, 45.918235],\n              [121.805548, 45.900746],\n              [121.817251, 45.875336],\n              [121.769823, 45.84366],\n              [121.766744, 45.830318],\n              [121.766744, 45.830318],\n              [121.754425, 45.794862],\n              [121.697142, 45.76314],\n              [121.657106, 45.770238],\n              [121.644172, 45.752284],\n              [121.666345, 45.727641],\n              [121.713773, 45.701734],\n              [121.811091, 45.687103],\n              [121.812323, 45.704659],\n              [121.867142, 45.719703],\n              [121.934279, 45.71051],\n              [121.970004, 45.692956],\n              [122.003264, 45.623102],\n              [121.995873, 45.59882],\n              [121.966308, 45.596308],\n              [121.993409, 45.552741],\n              [122.002648, 45.507882],\n              [122.064242, 45.472641],\n              [122.168336, 45.439897],\n              [122.180039, 45.409655],\n              [122.146778, 45.374352],\n              [122.147394, 45.295682],\n              [122.239169, 45.276313],\n              [122.22993, 45.206784],\n              [122.192358, 45.180636],\n              [122.143082, 45.183167],\n              [122.109822, 45.142236],\n              [122.119677, 45.068739],\n              [122.098735, 45.02138],\n              [122.074713, 45.006573],\n              [122.087032, 44.95281],\n              [122.079025, 44.914256],\n              [122.04946, 44.912985],\n              [122.098119, 44.81882],\n              [122.099967, 44.7823],\n              [122.168952, 44.770405],\n              [122.142467, 44.753833],\n              [122.110438, 44.767856],\n              [122.10243, 44.736406],\n              [122.152322, 44.744057],\n              [122.161561, 44.728328],\n              [122.117213, 44.701961],\n              [122.103046, 44.67388],\n              [122.113517, 44.615546],\n              [122.13138, 44.577619],\n              [122.196053, 44.559712],\n              [122.224386, 44.526016],\n              [122.228082, 44.480345],\n              [122.28598, 44.477783],\n              [122.294604, 44.41113],\n              [122.291524, 44.310152],\n              [122.271198, 44.255741],\n              [122.319241, 44.233018],\n              [122.483081, 44.236877],\n              [122.515726, 44.251025],\n              [122.641993, 44.283595],\n              [122.675254, 44.285738],\n              [122.702971, 44.319145],\n              [122.76087, 44.369648],\n              [122.85634, 44.398304],\n              [123.025108, 44.493153],\n              [123.06576, 44.505959],\n              [123.12489, 44.5098],\n              [123.137209, 44.486322],\n              [123.125506, 44.455147],\n              [123.142136, 44.428228],\n              [123.114419, 44.40258],\n              [123.128585, 44.367081],\n              [123.196955, 44.34483],\n              [123.277027, 44.25274],\n              [123.286882, 44.211574],\n              [123.323838, 44.179823],\n              [123.386664, 44.161794],\n              [123.362642, 44.133452],\n              [123.350939, 44.092633],\n              [123.32815, 44.084035],\n              [123.331229, 44.028984],\n              [123.365722, 44.013922],\n              [123.400831, 43.979481],\n              [123.37065, 43.970006],\n              [123.397135, 43.954929],\n              [123.467968, 43.853599],\n              [123.461809, 43.822518],\n              [123.498149, 43.771114],\n              [123.48275, 43.737396],\n              [123.520323, 43.708419],\n              [123.518475, 43.682024],\n              [123.536953, 43.633964],\n              [123.510468, 43.624867],\n              [123.5117, 43.592801],\n              [123.421157, 43.598435],\n              [123.434091, 43.575461],\n              [123.461193, 43.568523],\n              [123.452569, 43.545971],\n              [123.452569, 43.545971],\n              [123.360179, 43.567223],\n              [123.304744, 43.550742],\n              [123.329998, 43.519071],\n              [123.315831, 43.492159],\n              [123.36449, 43.483475],\n              [123.382968, 43.469143],\n              [123.419925, 43.410046],\n              [123.442098, 43.437863],\n              [123.486446, 43.44525],\n              [123.519707, 43.402219],\n              [123.54496, 43.415262],\n              [123.608402, 43.366119],\n              [123.703873, 43.37047],\n              [123.710032, 43.417001],\n              [123.749452, 43.439167],\n              [123.747604, 43.472184],\n              [123.79688, 43.489988],\n              [123.857858, 43.459153],\n              [123.857858, 43.459153],\n              [123.852314, 43.406133],\n              [123.881263, 43.392218],\n              [123.881263, 43.392218],\n              [123.896046, 43.361333],\n              [123.964415, 43.34088],\n              [124.032784, 43.280786],\n              [124.099306, 43.292983],\n              [124.117168, 43.2773],\n              [124.114088, 43.247229],\n              [124.168291, 43.244177],\n              [124.215102, 43.255947],\n              [124.228653, 43.235022],\n              [124.27608, 43.233278],\n              [124.287167, 43.207983],\n              [124.273617, 43.17875],\n              [124.366007, 43.121554],\n              [124.425754, 43.076107],\n              [124.333363, 42.997371],\n              [124.369703, 42.972854],\n              [124.42329, 42.975482],\n              [124.442384, 42.958841],\n              [124.431913, 42.930803],\n              [124.38079, 42.912835],\n              [124.371551, 42.880831],\n              [124.435609, 42.880831],\n              [124.466406, 42.847054],\n              [124.586514, 42.905384],\n              [124.607456, 42.937376],\n              [124.632093, 42.949642],\n              [124.635173, 42.972854],\n              [124.658579, 42.972854],\n              [124.677673, 43.002185],\n              [124.686912, 43.051185],\n              [124.719557, 43.069987],\n              [124.755281, 43.074359],\n              [124.785462, 43.117185],\n              [124.882781, 43.13422],\n              [124.88894, 43.074796],\n              [124.840897, 43.032377],\n              [124.869846, 42.988178],\n              [124.87231, 42.962344],\n              [124.84952, 42.882585],\n              [124.856911, 42.824234],\n              [124.874157, 42.789987],\n              [124.897563, 42.787791],\n              [124.92836, 42.819844],\n              [124.975171, 42.802722],\n              [124.996729, 42.745174],\n              [124.968396, 42.722756],\n              [124.99057, 42.677455],\n              [125.014592, 42.666014],\n              [125.010896, 42.63212],\n              [125.038613, 42.615387],\n              [125.097127, 42.622433],\n              [125.082961, 42.591159],\n              [125.089736, 42.567803],\n              [125.066946, 42.534738],\n              [125.090968, 42.515773],\n              [125.068794, 42.499449],\n              [125.105135, 42.490624],\n              [125.150098, 42.458842],\n              [125.140243, 42.44692],\n              [125.186439, 42.427928],\n              [125.185823, 42.38197],\n              [125.203685, 42.366938],\n              [125.167345, 42.351903],\n              [125.175352, 42.308102],\n              [125.224011, 42.30102],\n              [125.264047, 42.312528],\n              [125.299156, 42.289953],\n              [125.27575, 42.266928],\n              [125.27575, 42.231045],\n              [125.312706, 42.219966],\n              [125.280677, 42.175187],\n              [125.312706, 42.197359],\n              [125.305931, 42.146351],\n              [125.357054, 42.145464],\n              [125.368141, 42.182726],\n              [125.41372, 42.156112],\n              [125.458068, 42.160105],\n              [125.458068, 42.160105],\n              [125.490097, 42.136145],\n              [125.446365, 42.098411],\n              [125.414336, 42.101964],\n              [125.416184, 42.063766],\n              [125.363213, 42.017097],\n              [125.369989, 42.002868],\n              [125.29854, 41.974399],\n              [125.291764, 41.958825],\n              [125.35151, 41.92811],\n              [125.307779, 41.924548],\n              [125.294844, 41.822945],\n              [125.319482, 41.776993],\n              [125.319482, 41.776993],\n              [125.323177, 41.771191],\n              [125.323177, 41.771191],\n              [125.336112, 41.768067],\n              [125.336112, 41.768067],\n              [125.332416, 41.711354],\n              [125.317018, 41.676944],\n              [125.344119, 41.672474],\n              [125.412488, 41.691246],\n              [125.446981, 41.67605],\n              [125.461148, 41.642516],\n              [125.450061, 41.597777],\n              [125.479626, 41.544946],\n              [125.507343, 41.534195],\n              [125.493176, 41.509103],\n              [125.533212, 41.479069],\n              [125.534444, 41.428833],\n              [125.547995, 41.401006],\n              [125.581256, 41.396517],\n              [125.589879, 41.359245],\n              [125.610205, 41.365084],\n              [125.637306, 41.34442],\n              [125.62006, 41.318355],\n              [125.642234, 41.296327],\n              [125.646545, 41.264396],\n              [125.685349, 41.273842],\n              [125.695205, 41.244599],\n              [125.749407, 41.245499],\n              [125.758646, 41.232449],\n              [125.73832, 41.178418],\n              [125.791291, 41.167607],\n              [125.759878, 41.132908],\n              [125.734009, 41.125695],\n              [125.712451, 41.095485],\n              [125.739552, 41.08917],\n              [125.726617, 41.055332],\n              [125.684118, 41.021929],\n              [125.674879, 40.974503],\n              [125.650241, 40.970888],\n              [125.635458, 40.94151],\n              [125.589263, 40.931112],\n              [125.584335, 40.891764],\n              [125.652089, 40.91619],\n              [125.687813, 40.897645],\n              [125.707523, 40.866877],\n              [125.778356, 40.897645],\n              [125.817161, 40.866877],\n              [125.860892, 40.888597],\n              [125.875059, 40.908501],\n              [125.921254, 40.882715],\n              [125.959442, 40.88181],\n              [126.008102, 40.936537],\n              [126.041362, 40.928851],\n              [126.051833, 40.96185],\n              [126.08263, 40.976762],\n              [126.066, 40.997542],\n              [126.1085, 41.011995],\n              [126.099877, 41.036376],\n              [126.133753, 41.063906],\n              [126.124514, 41.092327],\n              [126.16763, 41.094583],\n              [126.187956, 41.113072],\n              [126.188572, 41.114875],\n              [126.295129, 41.171661],\n              [126.332086, 41.236949],\n              [126.35426, 41.244599],\n              [126.373354, 41.289133],\n              [126.437411, 41.353405],\n              [126.497158, 41.374965],\n              [126.524259, 41.349362],\n              [126.539041, 41.366881],\n              [126.497158, 41.406842],\n              [126.559983, 41.548081],\n              [126.582773, 41.563307],\n              [126.564295, 41.608965],\n              [126.592628, 41.624624],\n              [126.608027, 41.669345],\n              [126.644983, 41.661297],\n              [126.688099, 41.674262],\n              [126.724439, 41.710907],\n              [126.690562, 41.728328],\n              [126.694874, 41.751103],\n              [126.723207, 41.753335],\n              [126.8002, 41.702865],\n              [126.809439, 41.749317],\n              [126.848243, 41.734134],\n              [126.85625, 41.760031],\n              [126.887047, 41.791719],\n              [126.931395, 41.812687],\n              [126.952953, 41.804212],\n              [126.940018, 41.773423],\n              [126.979438, 41.776993],\n              [127.005923, 41.749317],\n              [127.050887, 41.744852],\n              [127.057662, 41.703758],\n              [127.037952, 41.676944],\n              [127.103242, 41.647883],\n              [127.093387, 41.629993],\n              [127.127263, 41.622388],\n              [127.135887, 41.600463],\n              [127.178386, 41.600015],\n              [127.125416, 41.566442],\n              [127.11864, 41.540018],\n              [127.164836, 41.542706],\n              [127.188241, 41.527475],\n              [127.241212, 41.520754],\n              [127.28864, 41.501932],\n              [127.253531, 41.486691],\n              [127.296031, 41.486243],\n              [127.360704, 41.466065],\n              [127.360088, 41.479518],\n              [127.405668, 41.478621],\n              [127.419835, 41.460235],\n              [127.459255, 41.461581],\n              [127.465414, 41.479069],\n              [127.526392, 41.467859],\n              [127.547334, 41.477276],\n              [127.563964, 41.432871],\n              [127.618783, 41.432871],\n              [127.636645, 41.413575],\n              [127.684073, 41.422999],\n              [127.780159, 41.427038],\n              [127.854688, 41.420755],\n              [127.86947, 41.4037],\n              [127.882405, 41.448124],\n              [127.909506, 41.42973],\n              [127.93168, 41.444984],\n              [127.970484, 41.438704],\n              [127.991426, 41.421204],\n              [128.000049, 41.442741],\n              [128.040085, 41.393375],\n              [128.110919, 41.393375],\n              [128.090593, 41.374516],\n              [128.114614, 41.364186],\n              [128.169433, 41.404149],\n              [128.203925, 41.410882],\n              [128.243345, 41.477276],\n              [128.238418, 41.497898],\n              [128.301244, 41.540018],\n              [128.317874, 41.575844],\n              [128.30186, 41.627756],\n              [128.248889, 41.681414],\n              [128.208853, 41.688565],\n              [128.163889, 41.721628],\n              [128.147875, 41.78101],\n              [128.112766, 41.793504],\n              [128.104143, 41.843457],\n              [128.115846, 41.896935],\n              [128.106607, 41.949923],\n              [128.033926, 42.000199],\n              [128.090593, 42.022877],\n              [128.294468, 42.026434],\n              [128.405338, 42.018876],\n              [128.466316, 42.020654],\n              [128.49896, 42.000644],\n              [128.598127, 42.007315],\n              [128.60675, 42.02999],\n              [128.637547, 42.035324],\n              [128.658489, 42.018876],\n              [128.70222, 42.02021],\n              [128.737945, 42.050435],\n              [128.779213, 42.033546],\n              [128.795227, 42.042436],\n              [128.898089, 42.016653],\n              [128.952908, 42.025545],\n              [128.954755, 42.083756],\n              [128.971386, 42.097079],\n              [129.008958, 42.09175],\n              [129.039139, 42.107736],\n              [129.048378, 42.137476],\n              [129.113668, 42.140583],\n              [129.166639, 42.188047],\n              [129.215914, 42.208442],\n              [129.209138, 42.237692],\n              [129.181421, 42.242122],\n              [129.183269, 42.262056],\n              [129.215914, 42.265157],\n              [129.231312, 42.283755],\n              [129.208522, 42.293052],\n              [129.260261, 42.335536],\n              [129.231312, 42.356325],\n              [129.240551, 42.376223],\n              [129.326167, 42.389927],\n              [129.30892, 42.403628],\n              [129.331094, 42.429695],\n              [129.356348, 42.427045],\n              [129.342181, 42.441179],\n              [129.368051, 42.459284],\n              [129.366203, 42.428811],\n              [129.392688, 42.42837],\n              [129.400695, 42.449128],\n              [129.452434, 42.441179],\n              [129.49863, 42.412023],\n              [129.546057, 42.361632],\n              [129.578086, 42.380202],\n              [129.569463, 42.399208],\n              [129.601492, 42.415116]\n            ]\n          ]\n        ]\n      }\n    },\n    {\n      \"type\": \"Feature\",\n      \"properties\": {\n        \"adcode\": 230000,\n        \"name\": \"黑龙江省\",\n        \"center\": [126.642464, 45.756967],\n        \"centroid\": [127.693027, 48.040465],\n        \"childrenNum\": 13,\n        \"level\": \"province\",\n        \"parent\": { \"adcode\": 100000 },\n        \"subFeatureIndex\": 7,\n        \"acroutes\": [100000]\n      },\n      \"geometry\": {\n        \"type\": \"MultiPolygon\",\n        \"coordinates\": [\n          [\n            [\n              [123.569598, 46.223816],\n              [123.604706, 46.251964],\n              [123.673692, 46.258585],\n              [123.726047, 46.255688],\n              [123.775938, 46.263136],\n              [123.84985, 46.302428],\n              [123.896046, 46.303668],\n              [123.917604, 46.25693],\n              [123.936082, 46.286715],\n              [123.960103, 46.288369],\n              [123.952096, 46.256516],\n              [123.979814, 46.228784],\n              [123.956408, 46.206009],\n              [123.971806, 46.170379],\n              [124.001987, 46.166649],\n              [123.991516, 46.143019],\n              [124.01677, 46.118549],\n              [123.99398, 46.101123],\n              [124.015538, 46.088257],\n              [124.009995, 46.057534],\n              [124.034016, 46.045074],\n              [124.040176, 46.01973],\n              [123.989053, 46.011833],\n              [124.011842, 45.981899],\n              [123.973654, 45.973997],\n              [123.968727, 45.936551],\n              [123.996444, 45.906993],\n              [124.061118, 45.886168],\n              [124.067277, 45.840325],\n              [124.03648, 45.83824],\n              [124.064197, 45.802372],\n              [124.001987, 45.770655],\n              [124.014922, 45.749779],\n              [124.054342, 45.751449],\n              [124.098074, 45.722628],\n              [124.10177, 45.700898],\n              [124.13503, 45.690448],\n              [124.122096, 45.669123],\n              [124.147349, 45.665359],\n              [124.128255, 45.641933],\n              [124.162132, 45.616404],\n              [124.226805, 45.633564],\n              [124.238508, 45.591702],\n              [124.273001, 45.584163],\n              [124.264377, 45.555256],\n              [124.287783, 45.539329],\n              [124.348761, 45.546874],\n              [124.369087, 45.512915],\n              [124.352457, 45.496557],\n              [124.374015, 45.45795],\n              [124.398652, 45.440737],\n              [124.480572, 45.456271],\n              [124.507058, 45.424778],\n              [124.544014, 45.411756],\n              [124.579738, 45.424358],\n              [124.575427, 45.451234],\n              [124.625318, 45.437377],\n              [124.690607, 45.452493],\n              [124.729412, 45.444096],\n              [124.776223, 45.468024],\n              [124.792853, 45.436958],\n              [124.839665, 45.455852],\n              [124.886476, 45.442836],\n              [124.884628, 45.495299],\n              [124.911114, 45.535976],\n              [124.936983, 45.53388],\n              [124.961005, 45.495299],\n              [125.025678, 45.493201],\n              [125.0497, 45.428558],\n              [125.08912, 45.420998],\n              [125.06633, 45.39915],\n              [125.097127, 45.38276],\n              [125.137779, 45.409655],\n              [125.189518, 45.39915],\n              [125.248649, 45.417637],\n              [125.301619, 45.402092],\n              [125.319482, 45.422678],\n              [125.361981, 45.392847],\n              [125.398322, 45.416797],\n              [125.434662, 45.462988],\n              [125.424807, 45.485649],\n              [125.480242, 45.486488],\n              [125.497488, 45.469283],\n              [125.583104, 45.491942],\n              [125.61698, 45.517947],\n              [125.660096, 45.507043],\n              [125.687813, 45.514173],\n              [125.711835, 45.477677],\n              [125.712451, 45.389485],\n              [125.695205, 45.352066],\n              [125.726001, 45.336503],\n              [125.761726, 45.291472],\n              [125.815929, 45.264942],\n              [125.823936, 45.237978],\n              [125.849805, 45.23882],\n              [125.915095, 45.196664],\n              [125.957595, 45.201303],\n              [125.992703, 45.192447],\n              [125.998247, 45.162072],\n              [126.047522, 45.170933],\n              [126.091869, 45.149411],\n              [126.142992, 45.147723],\n              [126.166398, 45.13337],\n              [126.225528, 45.154054],\n              [126.235383, 45.140125],\n              [126.285274, 45.162494],\n              [126.293282, 45.180214],\n              [126.356107, 45.185698],\n              [126.402919, 45.222805],\n              [126.519331, 45.248091],\n              [126.540273, 45.23882],\n              [126.569222, 45.252725],\n              [126.644983, 45.225334],\n              [126.640055, 45.214373],\n              [126.685635, 45.187807],\n              [126.732446, 45.187385],\n              [126.787265, 45.159118],\n              [126.792808, 45.135481],\n              [126.85625, 45.145613],\n              [126.96404, 45.132104],\n              [126.970815, 45.070852],\n              [126.984981, 45.067893],\n              [127.018242, 45.024341],\n              [127.050271, 45.004034],\n              [127.092771, 44.94688],\n              [127.073061, 44.907051],\n              [127.021938, 44.898997],\n              [126.999764, 44.87398],\n              [126.984366, 44.823914],\n              [126.9973, 44.764882],\n              [127.041032, 44.712169],\n              [127.030561, 44.673454],\n              [127.044112, 44.653874],\n              [127.041648, 44.591258],\n              [127.049655, 44.566961],\n              [127.089691, 44.593816],\n              [127.094619, 44.615972],\n              [127.138966, 44.607451],\n              [127.182082, 44.644507],\n              [127.228893, 44.642804],\n              [127.214111, 44.624917],\n              [127.261538, 44.61299],\n              [127.275705, 44.640249],\n              [127.392733, 44.632158],\n              [127.557189, 44.575488],\n              [127.570124, 44.55033],\n              [127.536247, 44.522176],\n              [127.485124, 44.528576],\n              [127.465414, 44.516628],\n              [127.463566, 44.484615],\n              [127.50853, 44.437202],\n              [127.486356, 44.410275],\n              [127.579363, 44.310581],\n              [127.623711, 44.278025],\n              [127.59045, 44.227872],\n              [127.626174, 44.187977],\n              [127.641573, 44.193555],\n              [127.681609, 44.166946],\n              [127.712406, 44.199133],\n              [127.735811, 44.11412],\n              [127.729036, 44.09908],\n              [127.783239, 44.071997],\n              [127.808492, 44.086615],\n              [127.846065, 44.081886],\n              [127.862695, 44.062967],\n              [127.912586, 44.064687],\n              [127.950158, 44.088334],\n              [128.042549, 44.103807],\n              [128.091208, 44.133022],\n              [128.088129, 44.158359],\n              [128.060411, 44.168663],\n              [128.09244, 44.181539],\n              [128.104143, 44.230017],\n              [128.064107, 44.251454],\n              [128.101679, 44.293449],\n              [128.065339, 44.307155],\n              [128.049941, 44.349965],\n              [128.074578, 44.370075],\n              [128.094904, 44.354673],\n              [128.137404, 44.357668],\n              [128.172512, 44.34697],\n              [128.211317, 44.431647],\n              [128.228563, 44.445748],\n              [128.293237, 44.467961],\n              [128.295084, 44.480772],\n              [128.372693, 44.514495],\n              [128.397946, 44.483761],\n              [128.427511, 44.473512],\n              [128.463236, 44.431647],\n              [128.457076, 44.409848],\n              [128.481714, 44.375637],\n              [128.475555, 44.346114],\n              [128.446605, 44.339694],\n              [128.472475, 44.320001],\n              [128.453997, 44.257884],\n              [128.471859, 44.247596],\n              [128.450301, 44.203423],\n              [128.471859, 44.157501],\n              [128.529141, 44.112401],\n              [128.574721, 44.047914],\n              [128.584576, 43.990246],\n              [128.610445, 43.960529],\n              [128.64001, 43.948035],\n              [128.636315, 43.891132],\n              [128.696061, 43.903207],\n              [128.729938, 43.889838],\n              [128.760734, 43.857482],\n              [128.719467, 43.816905],\n              [128.739177, 43.806972],\n              [128.760119, 43.755554],\n              [128.729322, 43.736964],\n              [128.768126, 43.732207],\n              [128.78722, 43.686784],\n              [128.821097, 43.637429],\n              [128.834647, 43.587599],\n              [128.878379, 43.539898],\n              [128.949828, 43.553779],\n              [128.962763, 43.53903],\n              [129.013886, 43.522976],\n              [129.037907, 43.540332],\n              [129.093958, 43.547706],\n              [129.145081, 43.570258],\n              [129.169102, 43.561585],\n              [129.23008, 43.593234],\n              [129.232544, 43.635263],\n              [129.217146, 43.648689],\n              [129.214066, 43.695006],\n              [129.232544, 43.709284],\n              [129.211602, 43.784509],\n              [129.254718, 43.819496],\n              [129.289826, 43.797038],\n              [129.30892, 43.812155],\n              [129.348341, 43.798333],\n              [129.406855, 43.819496],\n              [129.417942, 43.843672],\n              [129.449971, 43.850578],\n              [129.467833, 43.874741],\n              [129.529427, 43.870427],\n              [129.650767, 43.873016],\n              [129.699426, 43.8838],\n              [129.743158, 43.876035],\n              [129.739462, 43.895876],\n              [129.780114, 43.892857],\n              [129.802904, 43.964837],\n              [129.868193, 44.012631],\n              [129.881128, 44.000148],\n              [129.907614, 44.023821],\n              [129.951345, 44.027263],\n              [129.979062, 44.015644],\n              [130.017867, 43.961821],\n              [130.022794, 43.917866],\n              [130.009243, 43.889407],\n              [130.027722, 43.851872],\n              [130.079461, 43.835039],\n              [130.110873, 43.852735],\n              [130.116417, 43.878192],\n              [130.143518, 43.878624],\n              [130.153373, 43.915711],\n              [130.208192, 43.948466],\n              [130.262395, 43.949328],\n              [130.27225, 43.981634],\n              [130.307358, 44.002731],\n              [130.319061, 44.03974],\n              [130.365256, 44.044042],\n              [130.364025, 43.992399],\n              [130.338155, 43.963975],\n              [130.381887, 43.910106],\n              [130.368336, 43.894151],\n              [130.386198, 43.85403],\n              [130.362793, 43.844967],\n              [130.381887, 43.817768],\n              [130.382503, 43.777164],\n              [130.423155, 43.745179],\n              [130.394206, 43.703227],\n              [130.412684, 43.652586],\n              [130.437937, 43.646091],\n              [130.488444, 43.65605],\n              [130.501995, 43.636563],\n              [130.57098, 43.626167],\n              [130.57098, 43.626167],\n              [130.630726, 43.622268],\n              [130.623335, 43.589767],\n              [130.665835, 43.583698],\n              [130.671378, 43.565054],\n              [130.727429, 43.560284],\n              [130.776704, 43.52341],\n              [130.822899, 43.503446],\n              [130.841378, 43.454374],\n              [130.864167, 43.437863],\n              [130.907283, 43.434387],\n              [130.959638, 43.48608],\n              [131.026775, 43.508655],\n              [131.142572, 43.425695],\n              [131.175217, 43.444816],\n              [131.201086, 43.442209],\n              [131.234963, 43.475224],\n              [131.294093, 43.470012],\n              [131.304564, 43.502144],\n              [131.276847, 43.495632],\n              [131.20047, 43.532089],\n              [131.222028, 43.593234],\n              [131.216485, 43.613169],\n              [131.239274, 43.670337],\n              [131.221412, 43.682024],\n              [131.215869, 43.72745],\n              [131.232499, 43.742585],\n              [131.213405, 43.801357],\n              [131.2171, 43.836334],\n              [131.254057, 43.893289],\n              [131.26268, 43.948897],\n              [131.245434, 43.95579],\n              [131.26576, 44.034578],\n              [131.28239, 44.035868],\n              [131.287318, 44.03802],\n              [131.293477, 44.043182],\n              [131.310723, 44.046623],\n              [131.111775, 44.710042],\n              [131.090833, 44.717272],\n              [131.093297, 44.746183],\n              [131.069275, 44.759783],\n              [131.064348, 44.786973],\n              [131.016304, 44.789521],\n              [131.015688, 44.814999],\n              [130.972573, 44.820094],\n              [130.965181, 44.85065],\n              [131.07913, 44.881614],\n              [131.10192, 44.898997],\n              [131.090217, 44.924427],\n              [131.16105, 44.948151],\n              [131.20355, 44.932901],\n              [131.207861, 44.913833],\n              [131.263296, 44.929935],\n              [131.274999, 44.919766],\n              [131.313803, 44.950692],\n              [131.313803, 44.965938],\n              [131.355071, 44.990068],\n              [131.380324, 44.978216],\n              [131.409889, 44.985836],\n              [131.464708, 44.963397],\n              [131.501664, 44.977793],\n              [131.484418, 44.99557],\n              [131.529382, 45.012073],\n              [131.566338, 45.045487],\n              [131.63286, 45.075078],\n              [131.695685, 45.132104],\n              [131.687678, 45.1511],\n              [131.650722, 45.159962],\n              [131.681519, 45.215217],\n              [131.721555, 45.234606],\n              [131.759127, 45.213952],\n              [131.79362, 45.211844],\n              [131.788692, 45.245984],\n              [131.825649, 45.291472],\n              [131.82996, 45.311677],\n              [131.887858, 45.342393],\n              [131.917423, 45.339448],\n              [131.93159, 45.287683],\n              [131.976554, 45.277156],\n              [132.003655, 45.25441],\n              [132.17427, 45.216903],\n              [132.394161, 45.16376],\n              [132.76434, 45.081417],\n              [132.867202, 45.061976],\n              [132.916477, 45.031109],\n              [132.954049, 45.023072],\n              [132.98731, 45.043373],\n              [133.035969, 45.054366],\n              [133.070462, 45.097051],\n              [133.089556, 45.097473],\n              [133.107418, 45.124504],\n              [133.139447, 45.127459],\n              [133.129592, 45.211422],\n              [133.095715, 45.246827],\n              [133.110498, 45.266627],\n              [133.097563, 45.284735],\n              [133.128976, 45.336924],\n              [133.119121, 45.352908],\n              [133.144991, 45.367205],\n              [133.143759, 45.430658],\n              [133.164701, 45.437377],\n              [133.170244, 45.465506],\n              [133.203505, 45.516689],\n              [133.246005, 45.517528],\n              [133.333468, 45.562379],\n              [133.342707, 45.554836],\n              [133.393214, 45.580393],\n              [133.423395, 45.584163],\n              [133.412924, 45.618079],\n              [133.471438, 45.631053],\n              [133.448649, 45.647372],\n              [133.485605, 45.658667],\n              [133.484989, 45.691702],\n              [133.445569, 45.705077],\n              [133.454192, 45.731819],\n              [133.486837, 45.740173],\n              [133.469591, 45.777751],\n              [133.505315, 45.785681],\n              [133.469591, 45.799451],\n              [133.467743, 45.834905],\n              [133.494228, 45.840325],\n              [133.491764, 45.867002],\n              [133.51209, 45.887001],\n              [133.55459, 45.893249],\n              [133.583539, 45.868669],\n              [133.618032, 45.903662],\n              [133.614952, 45.942794],\n              [133.676546, 45.94321],\n              [133.681474, 45.986473],\n              [133.740604, 46.048812],\n              [133.745531, 46.075389],\n              [133.690713, 46.133896],\n              [133.706111, 46.163333],\n              [133.764626, 46.17328],\n              [133.794807, 46.193583],\n              [133.814517, 46.230854],\n              [133.849625, 46.203939],\n              [133.87919, 46.233752],\n              [133.867487, 46.250722],\n              [133.909987, 46.254447],\n              [133.91861, 46.280924],\n              [133.908139, 46.308216],\n              [133.922922, 46.330948],\n              [133.869335, 46.338386],\n              [133.876726, 46.362345],\n              [133.940784, 46.38134],\n              [133.948791, 46.401153],\n              [133.902596, 46.446119],\n              [133.852089, 46.450242],\n              [133.849625, 46.475389],\n              [133.890893, 46.525235],\n              [133.919842, 46.596012],\n              [134.011001, 46.637941],\n              [134.030711, 46.708981],\n              [134.033175, 46.759023],\n              [134.052885, 46.779928],\n              [134.025168, 46.810657],\n              [134.041182, 46.848326],\n              [134.042414, 46.886787],\n              [134.076291, 46.938298],\n              [134.063972, 46.979962],\n              [134.10216, 47.005678],\n              [134.118175, 47.061968],\n              [134.142812, 47.093349],\n              [134.222268, 47.105164],\n              [134.232739, 47.134892],\n              [134.230276, 47.182097],\n              [134.210566, 47.210155],\n              [134.156979, 47.248357],\n              [134.177305, 47.326299],\n              [134.203174, 47.347389],\n              [134.263536, 47.371307],\n              [134.266616, 47.391974],\n              [134.307268, 47.428829],\n              [134.339297, 47.439759],\n              [134.490202, 47.446235],\n              [134.522847, 47.468086],\n              [134.568426, 47.478199],\n              [134.576434, 47.519036],\n              [134.627556, 47.546512],\n              [134.678064, 47.588507],\n              [134.689766, 47.63813],\n              [134.779694, 47.7159],\n              [134.772918, 47.763391],\n              [134.678679, 47.819278],\n              [134.670056, 47.864667],\n              [134.677448, 47.884738],\n              [134.658969, 47.901191],\n              [134.607846, 47.909214],\n              [134.599839, 47.947711],\n              [134.55426, 47.982173],\n              [134.551796, 48.032622],\n              [134.632484, 48.099412],\n              [134.67252, 48.170505],\n              [134.679295, 48.256245],\n              [134.77107, 48.288908],\n              [134.864077, 48.332293],\n              [135.009439, 48.365703],\n              [135.090743, 48.403461],\n              [135.09567, 48.437618],\n              [135.068569, 48.459451],\n              [135.035924, 48.440795],\n              [134.996504, 48.439603],\n              [134.927519, 48.451513],\n              [134.886867, 48.437618],\n              [134.848679, 48.393925],\n              [134.820961, 48.37604],\n              [134.764295, 48.370076],\n              [134.704549, 48.405448],\n              [134.640491, 48.409818],\n              [134.578281, 48.405448],\n              [134.501905, 48.418954],\n              [134.438463, 48.405448],\n              [134.369478, 48.382797],\n              [134.20379, 48.3824],\n              [134.150819, 48.346217],\n              [134.116327, 48.333089],\n              [134.0689, 48.338659],\n              [134.029479, 48.327519],\n              [133.995603, 48.303639],\n              [133.940784, 48.302047],\n              [133.876111, 48.282536],\n              [133.824372, 48.277359],\n              [133.791111, 48.261026],\n              [133.740604, 48.254651],\n              [133.693177, 48.186866],\n              [133.667307, 48.183275],\n              [133.59709, 48.194846],\n              [133.573068, 48.182078],\n              [133.545967, 48.121389],\n              [133.451728, 48.112999],\n              [133.407997, 48.124585],\n              [133.302055, 48.103009],\n              [133.239845, 48.126583],\n              [133.182563, 48.135769],\n              [133.130208, 48.134971],\n              [133.053216, 48.110202],\n              [133.02673, 48.085421],\n              [133.016259, 48.054228],\n              [132.992238, 48.035424],\n              [132.883216, 48.002599],\n              [132.819159, 47.936887],\n              [132.769268, 47.93849],\n              [132.723072, 47.962941],\n              [132.691043, 47.962941],\n              [132.661478, 47.944905],\n              [132.662094, 47.922451],\n              [132.687348, 47.88514],\n              [132.662094, 47.854227],\n              [132.621442, 47.82852],\n              [132.599268, 47.792347],\n              [132.6005, 47.740858],\n              [132.558, 47.718316],\n              [132.469305, 47.726368],\n              [132.371987, 47.765402],\n              [132.325175, 47.762184],\n              [132.288835, 47.742065],\n              [132.272205, 47.718718],\n              [132.242639, 47.70986],\n              [132.19706, 47.714289],\n              [132.157024, 47.70543],\n              [132.086191, 47.703013],\n              [132.000575, 47.712276],\n              [131.976554, 47.673201],\n              [131.900793, 47.685692],\n              [131.825649, 47.677231],\n              [131.741881, 47.706638],\n              [131.690142, 47.707041],\n              [131.641483, 47.663932],\n              [131.59036, 47.660707],\n              [131.568186, 47.682469],\n              [131.559563, 47.724757],\n              [131.543548, 47.736028],\n              [131.456085, 47.747297],\n              [131.359998, 47.730796],\n              [131.273767, 47.738846],\n              [131.236811, 47.733211],\n              [131.183224, 47.702611],\n              [131.115471, 47.689721],\n              [131.029855, 47.694555],\n              [130.983659, 47.713081],\n              [130.966413, 47.733211],\n              [130.961486, 47.828118],\n              [130.891269, 47.927263],\n              [130.870943, 47.943301],\n              [130.770544, 47.998194],\n              [130.737284, 48.034223],\n              [130.699711, 48.044227],\n              [130.666451, 48.105007],\n              [130.673842, 48.12818],\n              [130.765617, 48.18926],\n              [130.769313, 48.231136],\n              [130.787791, 48.256643],\n              [130.817972, 48.265409],\n              [130.845073, 48.296473],\n              [130.81982, 48.341444],\n              [130.785327, 48.357353],\n              [130.747755, 48.404256],\n              [130.745907, 48.449131],\n              [130.776704, 48.480084],\n              [130.767465, 48.507846],\n              [130.711414, 48.511414],\n              [130.647357, 48.484844],\n              [130.620871, 48.49595],\n              [130.615944, 48.575601],\n              [130.605473, 48.594207],\n              [130.538335, 48.612016],\n              [130.538951, 48.635751],\n              [130.576524, 48.688719],\n              [130.622103, 48.783842],\n              [130.689856, 48.849651],\n              [130.680617, 48.881146],\n              [130.609168, 48.881146],\n              [130.559277, 48.861071],\n              [130.501995, 48.865795],\n              [130.471198, 48.905541],\n              [130.412068, 48.905148],\n              [130.279641, 48.866976],\n              [130.237757, 48.868551],\n              [130.219895, 48.893739],\n              [130.113337, 48.956653],\n              [130.059135, 48.979047],\n              [130.020946, 49.021058],\n              [129.937179, 49.040285],\n              [129.9187, 49.060681],\n              [129.934715, 49.078717],\n              [129.913157, 49.1085],\n              [129.866962, 49.113985],\n              [129.855259, 49.133567],\n              [129.864498, 49.158621],\n              [129.847867, 49.181316],\n              [129.784426, 49.184054],\n              [129.753629, 49.208692],\n              [129.761636, 49.25754],\n              [129.730223, 49.288387],\n              [129.696962, 49.298535],\n              [129.604571, 49.279018],\n              [129.562687, 49.299706],\n              [129.546057, 49.395227],\n              [129.51834, 49.423652],\n              [129.448739, 49.441167],\n              [129.390224, 49.432605],\n              [129.374826, 49.414309],\n              [129.379138, 49.367175],\n              [129.358196, 49.355871],\n              [129.320623, 49.3586],\n              [129.266421, 49.396006],\n              [129.215298, 49.399122],\n              [129.180805, 49.386657],\n              [129.143849, 49.357431],\n              [129.084719, 49.359769],\n              [129.061929, 49.374189],\n              [129.013886, 49.457119],\n              [128.932582, 49.46801],\n              [128.871604, 49.492506],\n              [128.792147, 49.473065],\n              [128.76135, 49.482009],\n              [128.763198, 49.515824],\n              [128.813089, 49.558157],\n              [128.802618, 49.58222],\n              [128.744104, 49.595023],\n              [128.715155, 49.564756],\n              [128.656025, 49.577564],\n              [128.619684, 49.593471],\n              [128.537764, 49.604332],\n              [128.500192, 49.593859],\n              [128.389939, 49.58998],\n              [128.343128, 49.544956],\n              [128.287077, 49.566309],\n              [128.243345, 49.563203],\n              [128.185447, 49.53952],\n              [128.122005, 49.55311],\n              [128.070882, 49.556604],\n              [128.001281, 49.592307],\n              [127.949542, 49.596187],\n              [127.897804, 49.579116],\n              [127.815268, 49.593859],\n              [127.782007, 49.630698],\n              [127.705015, 49.665185],\n              [127.677913, 49.697712],\n              [127.674833, 49.764247],\n              [127.653892, 49.780094],\n              [127.583059, 49.786277],\n              [127.531936, 49.826059],\n              [127.529472, 49.864265],\n              [127.547334, 49.928645],\n              [127.543638, 49.944438],\n              [127.495595, 49.994479],\n              [127.501755, 50.056764],\n              [127.58737, 50.137768],\n              [127.60708, 50.178794],\n              [127.603385, 50.239309],\n              [127.44632, 50.270686],\n              [127.371791, 50.29669],\n              [127.332371, 50.340634],\n              [127.369944, 50.403996],\n              [127.3644, 50.438314],\n              [127.30527, 50.45432],\n              [127.293567, 50.46575],\n              [127.323132, 50.52552],\n              [127.36132, 50.547582],\n              [127.370559, 50.581415],\n              [127.294799, 50.663426],\n              [127.28864, 50.699451],\n              [127.305886, 50.733932],\n              [127.295415, 50.755139],\n              [127.236285, 50.781256],\n              [127.143894, 50.910111],\n              [127.113713, 50.93765],\n              [127.052119, 50.962911],\n              [126.985597, 51.029202],\n              [126.922772, 51.061937],\n              [126.917844, 51.138977],\n              [126.899982, 51.200518],\n              [126.926467, 51.246244],\n              [126.976358, 51.291551],\n              [126.98375, 51.318863],\n              [126.970815, 51.332327],\n              [126.887047, 51.321856],\n              [126.877808, 51.300906],\n              [126.908605, 51.283691],\n              [126.92154, 51.259729],\n              [126.908605, 51.246619],\n              [126.863025, 51.248492],\n              [126.820526, 51.281071],\n              [126.813134, 51.311756],\n              [126.837156, 51.345038],\n              [126.904293, 51.340552],\n              [126.930163, 51.359241],\n              [126.908605, 51.407423],\n              [126.835308, 51.413769],\n              [126.791577, 51.432428],\n              [126.784185, 51.448095],\n              [126.812518, 51.493948],\n              [126.843931, 51.521885],\n              [126.837156, 51.536033],\n              [126.69549, 51.57845],\n              [126.67886, 51.602246],\n              [126.741069, 51.642374],\n              [126.723823, 51.679126],\n              [126.734294, 51.711399],\n              [126.724439, 51.7266],\n              [126.6727, 51.73179],\n              [126.658534, 51.762544],\n              [126.622809, 51.777357],\n              [126.580925, 51.824728],\n              [126.555056, 51.874266],\n              [126.510092, 51.922274],\n              [126.462665, 51.948471],\n              [126.468208, 51.982395],\n              [126.447882, 52.009294],\n              [126.450962, 52.027709],\n              [126.487918, 52.041699],\n              [126.514404, 52.037282],\n              [126.563679, 52.119302],\n              [126.556288, 52.136203],\n              [126.499005, 52.16044],\n              [126.457121, 52.165212],\n              [126.403535, 52.185031],\n              [126.34502, 52.192002],\n              [126.306832, 52.205574],\n              [126.312992, 52.235271],\n              [126.357955, 52.264216],\n              [126.401071, 52.279597],\n              [126.436795, 52.277034],\n              [126.4331, 52.298632],\n              [126.327774, 52.310342],\n              [126.320999, 52.342163],\n              [126.348716, 52.357882],\n              [126.353644, 52.389304],\n              [126.326542, 52.424353],\n              [126.268644, 52.475051],\n              [126.205202, 52.466302],\n              [126.192883, 52.492181],\n              [126.213209, 52.525327],\n              [126.147304, 52.573],\n              [126.066616, 52.603905],\n              [126.055529, 52.582455],\n              [126.030891, 52.576273],\n              [125.989008, 52.603178],\n              [125.968682, 52.630429],\n              [125.971145, 52.654033],\n              [125.995783, 52.675085],\n              [126.061688, 52.673271],\n              [126.072775, 52.691048],\n              [126.044442, 52.739628],\n              [126.112195, 52.757016],\n              [126.116507, 52.768243],\n              [126.052449, 52.800095],\n              [126.02042, 52.795753],\n              [125.985312, 52.758465],\n              [125.966834, 52.759914],\n              [125.937269, 52.786705],\n              [125.923718, 52.815651],\n              [125.855349, 52.866259],\n              [125.854117, 52.891542],\n              [125.827631, 52.899123],\n              [125.772197, 52.89804],\n              [125.751255, 52.88143],\n              [125.722306, 52.880347],\n              [125.678574, 52.86084],\n              [125.666871, 52.869872],\n              [125.665023, 52.913561],\n              [125.737088, 52.943504],\n              [125.742632, 52.993964],\n              [125.684118, 53.00801],\n              [125.643466, 53.039686],\n              [125.640386, 53.06199],\n              [125.613901, 53.083564],\n              [125.588647, 53.081047],\n              [125.530749, 53.0512],\n              [125.504263, 53.061271],\n              [125.503647, 53.095424],\n              [125.452524, 53.107641],\n              [125.343503, 53.14463],\n              [125.315786, 53.144989],\n              [125.252344, 53.18051],\n              [125.195062, 53.198439],\n              [125.142091, 53.204175],\n              [125.038613, 53.202741],\n              [124.970244, 53.194137],\n              [124.887708, 53.164368],\n              [124.909266, 53.118059],\n              [124.87231, 53.099018],\n              [124.832889, 53.145347],\n              [124.787926, 53.140681],\n              [124.734339, 53.146783],\n              [124.712165, 53.162574],\n              [124.720789, 53.192344],\n              [124.678905, 53.207043],\n              [124.590209, 53.208476],\n              [124.563108, 53.201666],\n              [124.496587, 53.207759],\n              [124.487348, 53.217436],\n              [124.435609, 53.223886],\n              [124.412203, 53.248601],\n              [124.375863, 53.258984],\n              [124.327819, 53.331954],\n              [124.239124, 53.379817],\n              [124.19416, 53.37339],\n              [124.125791, 53.348033],\n              [124.058038, 53.404085],\n              [124.01369, 53.403371],\n              [123.985973, 53.434401],\n              [123.865249, 53.489627],\n              [123.797495, 53.489983],\n              [123.746373, 53.500308],\n              [123.698329, 53.498528],\n              [123.668764, 53.533756],\n              [123.620721, 53.550115],\n              [123.58746, 53.546915],\n              [123.569598, 53.505291],\n              [123.53141, 53.507071],\n              [123.557895, 53.531978],\n              [123.546808, 53.551537],\n              [123.517243, 53.558292],\n              [123.490758, 53.542648],\n              [123.510468, 53.509206],\n              [123.499381, 53.497816],\n              [123.47228, 53.509206],\n              [123.454417, 53.536602],\n              [123.394055, 53.538024],\n              [123.309672, 53.56078],\n              [123.274563, 53.563269],\n              [123.231447, 53.549404],\n              [123.179092, 53.509918],\n              [123.137209, 53.498172],\n              [123.093477, 53.508138],\n              [123.052209, 53.506715],\n              [122.943804, 53.483929],\n              [122.894528, 53.462914],\n              [122.826775, 53.457213],\n              [122.763949, 53.463626],\n              [122.673406, 53.459351],\n              [122.608117, 53.465408],\n              [122.5379, 53.453293],\n              [122.496016, 53.458638],\n              [122.435038, 53.444739],\n              [122.37406, 53.47467],\n              [122.350038, 53.505647],\n              [122.266886, 53.470039],\n              [122.227466, 53.461845],\n              [122.161561, 53.468614],\n              [122.111054, 53.426913],\n              [122.077177, 53.422277],\n              [122.026054, 53.428339],\n              [121.875765, 53.426556],\n              [121.816019, 53.41336],\n              [121.754425, 53.389454],\n              [121.697758, 53.392666],\n              [121.589969, 53.350891],\n              [121.499426, 53.337314],\n              [121.504969, 53.323018],\n              [121.575802, 53.29155],\n              [121.615222, 53.258984],\n              [121.642324, 53.262564],\n              [121.679896, 53.240722],\n              [121.67928, 53.199515],\n              [121.660186, 53.195213],\n              [121.665114, 53.170467],\n              [121.722396, 53.145706],\n              [121.753193, 53.147501],\n              [121.784606, 53.104408],\n              [121.775367, 53.089674],\n              [121.817867, 53.061631],\n              [121.785838, 53.018451],\n              [121.715621, 52.997926],\n              [121.677432, 52.948192],\n              [121.66265, 52.912478],\n              [121.610295, 52.892264],\n              [121.604136, 52.872401],\n              [121.620766, 52.853251],\n              [121.591201, 52.824693],\n              [121.537614, 52.801542],\n              [121.511129, 52.779104],\n              [121.476636, 52.772225],\n              [121.455078, 52.73528],\n              [121.373158, 52.683067],\n              [121.309717, 52.676173],\n              [121.29247, 52.651855],\n              [121.237036, 52.619167],\n              [121.182217, 52.59918],\n              [121.225333, 52.577364],\n              [121.280151, 52.586819],\n              [121.323883, 52.573727],\n              [121.353448, 52.534793],\n              [121.411963, 52.52205],\n              [121.416274, 52.499468],\n              [121.474172, 52.482706],\n              [121.495114, 52.484892],\n              [121.519136, 52.456821],\n              [121.565331, 52.460468],\n              [121.590585, 52.443326],\n              [121.63986, 52.44442],\n              [121.678664, 52.419973],\n              [121.658338, 52.3904],\n              [121.715621, 52.342894],\n              [121.714389, 52.318025],\n              [121.769207, 52.308147],\n              [121.841272, 52.282526],\n              [121.901018, 52.280695],\n              [121.94783, 52.298266],\n              [121.976779, 52.343626],\n              [122.035909, 52.377615],\n              [122.040837, 52.413038],\n              [122.091344, 52.427272],\n              [122.080873, 52.440407],\n              [122.107358, 52.452445],\n              [122.142467, 52.495096],\n              [122.140003, 52.510032],\n              [122.168952, 52.513674],\n              [122.178191, 52.48963],\n              [122.207756, 52.469218],\n              [122.310618, 52.475416],\n              [122.326016, 52.459374],\n              [122.342031, 52.414133],\n              [122.367284, 52.413768],\n              [122.378987, 52.395512],\n              [122.419023, 52.375057],\n              [122.447356, 52.394052],\n              [122.484313, 52.341432],\n              [122.478153, 52.29607],\n              [122.560689, 52.282526],\n              [122.585943, 52.266413],\n              [122.67895, 52.276667],\n              [122.710979, 52.256157],\n              [122.76087, 52.26678],\n              [122.787355, 52.252494],\n              [122.766413, 52.232705],\n              [122.769493, 52.179893],\n              [122.73808, 52.153464],\n              [122.690653, 52.140243],\n              [122.629059, 52.13657],\n              [122.643841, 52.111585],\n              [122.625363, 52.067459],\n              [122.650616, 52.058997],\n              [122.664783, 51.99861],\n              [122.683877, 51.974654],\n              [122.726377, 51.978709],\n              [122.729457, 51.919321],\n              [122.706051, 51.890151],\n              [122.725761, 51.87833],\n              [122.732536, 51.832495],\n              [122.771957, 51.779579],\n              [122.749167, 51.746613],\n              [122.778732, 51.698048],\n              [122.816304, 51.655371],\n              [122.820616, 51.633088],\n              [122.85634, 51.606707],\n              [122.832935, 51.581797],\n              [122.874202, 51.561339],\n              [122.880362, 51.537894],\n              [122.858804, 51.524864],\n              [122.880362, 51.511085],\n              [122.854492, 51.477551],\n              [122.871123, 51.455181],\n              [122.900072, 51.445112],\n              [122.903768, 51.415262],\n              [122.946267, 51.405183],\n              [122.965977, 51.386886],\n              [122.965977, 51.345786],\n              [123.002934, 51.31213],\n              [123.069455, 51.321108],\n              [123.127969, 51.297913],\n              [123.231447, 51.279199],\n              [123.231447, 51.268716],\n              [123.294273, 51.254111],\n              [123.339853, 51.27246],\n              [123.376809, 51.266844],\n              [123.414381, 51.278825],\n              [123.440251, 51.270963],\n              [123.46304, 51.286686],\n              [123.582533, 51.294545],\n              [123.582533, 51.306893],\n              [123.661989, 51.319237],\n              [123.660141, 51.342795],\n              [123.711264, 51.398089],\n              [123.794416, 51.361109],\n              [123.842459, 51.367462],\n              [123.887423, 51.320734],\n              [123.926227, 51.300532],\n              [123.939777, 51.313253],\n              [123.994596, 51.322604],\n              [124.071588, 51.320734],\n              [124.090067, 51.3413],\n              [124.128255, 51.347281],\n              [124.192313, 51.33943],\n              [124.239124, 51.344664],\n              [124.271769, 51.308389],\n              [124.297638, 51.298661],\n              [124.339522, 51.293422],\n              [124.406659, 51.272086],\n              [124.430065, 51.301281],\n              [124.426985, 51.331953],\n              [124.443616, 51.35812],\n              [124.478108, 51.36223],\n              [124.490427, 51.380537],\n              [124.555717, 51.375307],\n              [124.58713, 51.363725],\n              [124.62655, 51.327465],\n              [124.693687, 51.3327],\n              [124.752817, 51.35812],\n              [124.76452, 51.38726],\n              [124.783614, 51.392115],\n              [124.864302, 51.37979],\n              [124.885244, 51.40817],\n              [124.942527, 51.447349],\n              [124.917889, 51.474196],\n              [124.928976, 51.498419],\n              [124.983795, 51.508478],\n              [125.004737, 51.529332],\n              [125.047236, 51.529704],\n              [125.073106, 51.553526],\n              [125.060171, 51.59667],\n              [125.098975, 51.658341],\n              [125.12854, 51.659083],\n              [125.130388, 51.635317],\n              [125.175968, 51.639403],\n              [125.214772, 51.627888],\n              [125.228938, 51.640517],\n              [125.289301, 51.633831],\n              [125.316402, 51.610052],\n              [125.35151, 51.623801],\n              [125.38046, 51.585516],\n              [125.424807, 51.562827],\n              [125.528285, 51.488359],\n              [125.559082, 51.461521],\n              [125.559082, 51.461521],\n              [125.595422, 51.416755],\n              [125.595422, 51.416755],\n              [125.60035, 51.413396],\n              [125.60035, 51.413396],\n              [125.600966, 51.410409],\n              [125.600966, 51.410409],\n              [125.62314, 51.398089],\n              [125.62314, 51.398089],\n              [125.623756, 51.387633],\n              [125.623756, 51.387633],\n              [125.626219, 51.380163],\n              [125.626219, 51.380163],\n              [125.700132, 51.327465],\n              [125.700132, 51.327465],\n              [125.740784, 51.27583],\n              [125.740784, 51.27583],\n              [125.76111, 51.261976],\n              [125.76111, 51.261976],\n              [125.761726, 51.226385],\n              [125.819008, 51.227134],\n              [125.850421, 51.21364],\n              [125.864588, 51.146487],\n              [125.909551, 51.138977],\n              [125.946508, 51.108176],\n              [125.970529, 51.123955],\n              [125.993935, 51.119072],\n              [125.976073, 51.084498],\n              [126.059225, 51.043503],\n              [126.033971, 51.011132],\n              [126.041978, 50.981753],\n              [126.068464, 50.967434],\n              [126.042594, 50.92558],\n              [126.02042, 50.927466],\n              [125.996399, 50.906715],\n              [125.997631, 50.872738],\n              [125.961906, 50.901054],\n              [125.939732, 50.85423],\n              [125.913247, 50.825885],\n              [125.878138, 50.816812],\n              [125.890457, 50.805845],\n              [125.836255, 50.793363],\n              [125.846726, 50.769524],\n              [125.828863, 50.756654],\n              [125.804226, 50.773309],\n              [125.758646, 50.746809],\n              [125.795603, 50.738856],\n              [125.78082, 50.725598],\n              [125.825784, 50.70362],\n              [125.789443, 50.679735],\n              [125.804226, 50.658874],\n              [125.793139, 50.643316],\n              [125.814697, 50.62092],\n              [125.807921, 50.60383],\n              [125.829479, 50.56165],\n              [125.794987, 50.532748],\n              [125.770349, 50.531227],\n              [125.754335, 50.506874],\n              [125.740784, 50.523237],\n              [125.699516, 50.487078],\n              [125.654553, 50.471082],\n              [125.627451, 50.443268],\n              [125.580024, 50.449366],\n              [125.562162, 50.438314],\n              [125.583104, 50.409717],\n              [125.567089, 50.402852],\n              [125.536292, 50.420014],\n              [125.522126, 50.404759],\n              [125.546763, 50.358965],\n              [125.520278, 50.3498],\n              [125.530749, 50.331085],\n              [125.463611, 50.295925],\n              [125.466075, 50.266861],\n              [125.442053, 50.260357],\n              [125.448829, 50.216338],\n              [125.417416, 50.195654],\n              [125.39093, 50.199868],\n              [125.382923, 50.172278],\n              [125.335496, 50.161161],\n              [125.376148, 50.137385],\n              [125.311474, 50.140453],\n              [125.27883, 50.127411],\n              [125.258504, 50.103618],\n              [125.287453, 50.093636],\n              [125.283757, 50.070211],\n              [125.328105, 50.065985],\n              [125.315786, 50.04562],\n              [125.289916, 50.057917],\n              [125.25296, 50.041393],\n              [125.283757, 50.036012],\n              [125.297924, 50.014481],\n              [125.278214, 49.996402],\n              [125.241873, 49.987938],\n              [125.231402, 49.957531],\n              [125.190134, 49.959841],\n              [125.199373, 49.935194],\n              [125.225859, 49.922481],\n              [125.212924, 49.907452],\n              [125.245569, 49.87198],\n              [125.225243, 49.867351],\n              [125.239409, 49.844587],\n              [125.177815, 49.829533],\n              [125.222779, 49.799026],\n              [125.221547, 49.754969],\n              [125.204301, 49.734086],\n              [125.225243, 49.726349],\n              [125.219699, 49.669058],\n              [125.185207, 49.634574],\n              [125.189518, 49.652401],\n              [125.164881, 49.669446],\n              [125.132236, 49.672157],\n              [125.127308, 49.655113],\n              [125.15441, 49.616741],\n              [125.16796, 49.629923],\n              [125.205533, 49.593859],\n              [125.23017, 49.595411],\n              [125.233866, 49.536801],\n              [125.211076, 49.539908],\n              [125.228323, 49.487063],\n              [125.270822, 49.454395],\n              [125.256656, 49.437275],\n              [125.25604, 49.395227],\n              [125.277598, 49.379644],\n              [125.256656, 49.359769],\n              [125.261583, 49.322336],\n              [125.214772, 49.277066],\n              [125.227707, 49.248947],\n              [125.219699, 49.189139],\n              [125.187671, 49.186792],\n              [125.158721, 49.144921],\n              [125.117453, 49.126127],\n              [125.034302, 49.157056],\n              [125.039845, 49.17623],\n              [124.983179, 49.162535],\n              [124.906802, 49.184054],\n              [124.860607, 49.166448],\n              [124.847672, 49.129651],\n              [124.809484, 49.115943],\n              [124.828578, 49.077933],\n              [124.808252, 49.020666],\n              [124.756513, 48.967262],\n              [124.744194, 48.920487],\n              [124.709086, 48.920487],\n              [124.715861, 48.885475],\n              [124.697383, 48.841775],\n              [124.654267, 48.83429],\n              [124.644412, 48.80789],\n              [124.656115, 48.783842],\n              [124.612383, 48.747945],\n              [124.624702, 48.701755],\n              [124.601912, 48.632587],\n              [124.579122, 48.596582],\n              [124.520608, 48.556195],\n              [124.548941, 48.535593],\n              [124.533543, 48.515379],\n              [124.555717, 48.467784],\n              [124.507674, 48.445558],\n              [124.52492, 48.426897],\n              [124.51876, 48.378027],\n              [124.547094, 48.35775],\n              [124.540934, 48.335476],\n              [124.579738, 48.297269],\n              [124.558796, 48.268197],\n              [124.579122, 48.262221],\n              [124.547094, 48.200829],\n              [124.512601, 48.164518],\n              [124.529847, 48.146951],\n              [124.505826, 48.124985],\n              [124.478108, 48.123387],\n              [124.46579, 48.098213],\n              [124.415899, 48.08782],\n              [124.430065, 48.12099],\n              [124.471333, 48.133373],\n              [124.475029, 48.173698],\n              [124.418978, 48.181679],\n              [124.412819, 48.219175],\n              [124.422058, 48.245884],\n              [124.365392, 48.283731],\n              [124.353689, 48.315978],\n              [124.317964, 48.35099],\n              [124.331515, 48.380015],\n              [124.309957, 48.413393],\n              [124.330283, 48.435633],\n              [124.302566, 48.456673],\n              [124.314269, 48.503881],\n              [124.25945, 48.536385],\n              [124.25945, 48.536385],\n              [124.136878, 48.463023],\n              [124.07898, 48.43603],\n              [124.019234, 48.39313],\n              [123.862785, 48.271782],\n              [123.746373, 48.197638],\n              [123.705105, 48.152142],\n              [123.579453, 48.045427],\n              [123.537569, 48.021816],\n              [123.300432, 47.953723],\n              [123.256085, 47.876711],\n              [123.214201, 47.824502],\n              [123.161846, 47.781892],\n              [123.041122, 47.746492],\n              [122.926557, 47.697777],\n              [122.848949, 47.67441],\n              [122.765181, 47.614333],\n              [122.59395, 47.54732],\n              [122.543443, 47.495589],\n              [122.507103, 47.401291],\n              [122.418407, 47.350632],\n              [122.441197, 47.310476],\n              [122.441197, 47.310476],\n              [122.462755, 47.27841],\n              [122.498479, 47.255262],\n              [122.531124, 47.198771],\n              [122.582863, 47.158092],\n              [122.582863, 47.158092],\n              [122.615508, 47.124306],\n              [122.679566, 47.094164],\n              [122.710363, 47.093349],\n              [122.710363, 47.093349],\n              [122.821232, 47.065636],\n              [122.852645, 47.072158],\n              [122.845869, 47.046881],\n              [122.778116, 47.002822],\n              [122.77442, 46.973837],\n              [122.798442, 46.9575],\n              [122.791051, 46.941567],\n              [122.83971, 46.937072],\n              [122.895144, 46.960359],\n              [122.893913, 46.895376],\n              [122.906847, 46.80738],\n              [122.996774, 46.761483],\n              [123.00355, 46.730726],\n              [123.026339, 46.718829],\n              [123.076846, 46.745082],\n              [123.103332, 46.734828],\n              [123.163694, 46.74016],\n              [123.198802, 46.803283],\n              [123.22344, 46.821305],\n              [123.221592, 46.850373],\n              [123.295505, 46.865105],\n              [123.341084, 46.826628],\n              [123.374345, 46.837683],\n              [123.40699, 46.906416],\n              [123.404526, 46.935438],\n              [123.360179, 46.970978],\n              [123.304128, 46.964852],\n              [123.301664, 46.999965],\n              [123.337389, 46.988943],\n              [123.42362, 46.934212],\n              [123.487678, 46.959951],\n              [123.52833, 46.944836],\n              [123.483366, 46.84587],\n              [123.506772, 46.827038],\n              [123.562823, 46.82581],\n              [123.575757, 46.845461],\n              [123.576989, 46.891286],\n              [123.605322, 46.891286],\n              [123.599163, 46.868378],\n              [123.625648, 46.847508],\n              [123.580069, 46.827447],\n              [123.629344, 46.813524],\n              [123.631808, 46.728675],\n              [123.603475, 46.68928],\n              [123.474743, 46.686817],\n              [123.366338, 46.677784],\n              [123.318295, 46.662179],\n              [123.276411, 46.660947],\n              [123.279491, 46.616981],\n              [123.228368, 46.588198],\n              [123.18094, 46.614103],\n              [123.098404, 46.603002],\n              [123.077462, 46.622324],\n              [123.04605, 46.617803],\n              [123.052825, 46.579972],\n              [123.002318, 46.574624],\n              [123.010325, 46.524823],\n              [123.011557, 46.434984],\n              [123.089781, 46.347888],\n              [123.142136, 46.298293],\n              [123.178476, 46.248239],\n              [123.248078, 46.273065],\n              [123.286266, 46.250308],\n              [123.320758, 46.254447],\n              [123.357099, 46.232096],\n              [123.357099, 46.232096],\n              [123.430396, 46.243687],\n              [123.452569, 46.233338],\n              [123.499381, 46.259826],\n              [123.569598, 46.223816],\n              [123.569598, 46.223816]\n            ]\n          ]\n        ]\n      }\n    },\n    {\n      \"type\": \"Feature\",\n      \"properties\": {\n        \"adcode\": 310000,\n        \"name\": \"上海市\",\n        \"center\": [121.472644, 31.231706],\n        \"centroid\": [121.438737, 31.072559],\n        \"childrenNum\": 16,\n        \"level\": \"province\",\n        \"parent\": { \"adcode\": 100000 },\n        \"subFeatureIndex\": 8,\n        \"acroutes\": [100000]\n      },\n      \"geometry\": {\n        \"type\": \"MultiPolygon\",\n        \"coordinates\": [\n          [\n            [\n              [120.901349, 31.017327],\n              [120.940153, 31.010146],\n              [120.949392, 31.030148],\n              [120.989428, 31.01425],\n              [121.000515, 30.938309],\n              [120.993124, 30.889532],\n              [121.020225, 30.872069],\n              [120.991892, 30.837133],\n              [121.038087, 30.814007],\n              [121.060261, 30.845354],\n              [121.097833, 30.857171],\n              [121.13787, 30.826342],\n              [121.123087, 30.77905],\n              [121.174826, 30.771851],\n              [121.21671, 30.785734],\n              [121.232108, 30.755909],\n              [121.272144, 30.723504],\n              [121.274608, 30.677191],\n              [121.362071, 30.679764],\n              [121.426129, 30.730192],\n              [121.517288, 30.775451],\n              [121.601056, 30.805269],\n              [121.681128, 30.818633],\n              [121.904714, 30.814007],\n              [121.943518, 30.776993],\n              [121.970004, 30.789333],\n              [121.954605, 30.825828],\n              [121.994025, 30.862823],\n              [121.990945, 30.96859],\n              [121.977395, 31.016301],\n              [121.946598, 31.066039],\n              [121.809859, 31.196669],\n              [121.722396, 31.3036],\n              [121.599208, 31.37465],\n              [121.520984, 31.394575],\n              [121.404571, 31.479337],\n              [121.343593, 31.511996],\n              [121.301093, 31.49873],\n              [121.301093, 31.49873],\n              [121.247507, 31.476785],\n              [121.241963, 31.493117],\n              [121.174826, 31.44922],\n              [121.143413, 31.392021],\n              [121.113848, 31.37465],\n              [121.130478, 31.343987],\n              [121.142797, 31.275472],\n              [121.090442, 31.291838],\n              [121.060261, 31.245289],\n              [121.076892, 31.158267],\n              [121.018377, 31.134194],\n              [120.930298, 31.141365],\n              [120.881023, 31.134706],\n              [120.859465, 31.100379],\n              [120.890878, 31.094229],\n              [120.901349, 31.017327]\n            ]\n          ],\n          [\n            [\n              [121.974931, 31.61704],\n              [121.715005, 31.673592],\n              [121.64294, 31.697527],\n              [121.599824, 31.703128],\n              [121.49881, 31.753012],\n              [121.431673, 31.769295],\n              [121.384861, 31.833382],\n              [121.323267, 31.868458],\n              [121.265369, 31.863883],\n              [121.200079, 31.834907],\n              [121.118775, 31.759119],\n              [121.145261, 31.75403],\n              [121.289391, 31.61653],\n              [121.371926, 31.553314],\n              [121.395332, 31.585437],\n              [121.434136, 31.590535],\n              [121.547469, 31.531382],\n              [121.625693, 31.501792],\n              [121.682976, 31.491075],\n              [121.819098, 31.437987],\n              [121.890547, 31.428795],\n              [121.981706, 31.464024],\n              [121.995873, 31.493117],\n              [121.974931, 31.61704]\n            ]\n          ],\n          [\n            [\n              [121.795693, 31.330186],\n              [121.792613, 31.363408],\n              [121.742106, 31.407345],\n              [121.585657, 31.454836],\n              [121.567179, 31.48342],\n              [121.520984, 31.494137],\n              [121.509897, 31.4824],\n              [121.572107, 31.435944],\n              [121.727939, 31.35472],\n              [121.76428, 31.31536],\n              [121.785222, 31.31127],\n              [121.795693, 31.330186]\n            ]\n          ],\n          [\n            [\n              [121.801852, 31.356765],\n              [121.8037, 31.328652],\n              [121.840656, 31.295418],\n              [121.932431, 31.283144],\n              [122.016199, 31.282121],\n              [122.097503, 31.255522],\n              [122.122756, 31.307179],\n              [122.116597, 31.320984],\n              [122.040837, 31.324051],\n              [121.951525, 31.337343],\n              [121.845584, 31.37465],\n              [121.792613, 31.377715],\n              [121.801852, 31.356765]\n            ]\n          ],\n          [\n            [\n              [121.626925, 31.445135],\n              [121.631853, 31.456878],\n              [121.579498, 31.479848],\n              [121.626925, 31.445135]\n            ]\n          ],\n          [\n            [\n              [121.943518, 31.215608],\n              [121.959533, 31.159291],\n              [121.995873, 31.160828],\n              [122.008808, 31.221238],\n              [121.950909, 31.228915],\n              [121.943518, 31.215608]\n            ]\n          ],\n          [\n            [\n              [121.88254, 31.240684],\n              [121.909026, 31.195133],\n              [121.923808, 31.234032],\n              [121.88254, 31.240684]\n            ]\n          ]\n        ]\n      }\n    },\n    {\n      \"type\": \"Feature\",\n      \"properties\": {\n        \"adcode\": 320000,\n        \"name\": \"江苏省\",\n        \"center\": [118.767413, 32.041544],\n        \"centroid\": [119.486506, 32.983991],\n        \"childrenNum\": 13,\n        \"level\": \"province\",\n        \"parent\": { \"adcode\": 100000 },\n        \"subFeatureIndex\": 9,\n        \"acroutes\": [100000]\n      },\n      \"geometry\": {\n        \"type\": \"MultiPolygon\",\n        \"coordinates\": [\n          [\n            [\n              [117.311654, 34.561686],\n              [117.27285, 34.556757],\n              [117.303647, 34.542463],\n              [117.267923, 34.532603],\n              [117.27285, 34.499565],\n              [117.252524, 34.48674],\n              [117.248213, 34.451216],\n              [117.166293, 34.434435],\n              [117.139191, 34.526687],\n              [117.15151, 34.559222],\n              [117.104083, 34.648874],\n              [117.073286, 34.639026],\n              [117.061583, 34.675947],\n              [117.070206, 34.713835],\n              [117.022163, 34.759081],\n              [116.969192, 34.771864],\n              [116.95133, 34.81069],\n              [116.979047, 34.815113],\n              [116.966113, 34.844588],\n              [116.929156, 34.843114],\n              [116.922381, 34.894671],\n              [116.858323, 34.928533],\n              [116.821983, 34.929515],\n              [116.815823, 34.965324],\n              [116.789338, 34.975133],\n              [116.781331, 34.916757],\n              [116.677853, 34.939327],\n              [116.622418, 34.939818],\n              [116.613795, 34.922645],\n              [116.557745, 34.908905],\n              [116.445028, 34.895652],\n              [116.408071, 34.850972],\n              [116.403144, 34.756131],\n              [116.369267, 34.749247],\n              [116.363724, 34.715311],\n              [116.392057, 34.710391],\n              [116.374195, 34.640011],\n              [116.430245, 34.650843],\n              [116.432709, 34.630163],\n              [116.477057, 34.614896],\n              [116.490607, 34.573513],\n              [116.594085, 34.511894],\n              [116.592237, 34.493646],\n              [116.662454, 34.472927],\n              [116.722816, 34.472434],\n              [116.773939, 34.453683],\n              [116.782563, 34.429993],\n              [116.828142, 34.389012],\n              [116.909446, 34.408271],\n              [116.969192, 34.389012],\n              [116.960569, 34.363821],\n              [116.983359, 34.348011],\n              [116.969192, 34.283753],\n              [117.051112, 34.221425],\n              [117.025243, 34.167469],\n              [117.046801, 34.151622],\n              [117.123793, 34.128342],\n              [117.130568, 34.101586],\n              [117.192162, 34.068873],\n              [117.257452, 34.065899],\n              [117.277162, 34.078787],\n              [117.311654, 34.067882],\n              [117.357234, 34.088205],\n              [117.404045, 34.03218],\n              [117.435458, 34.028212],\n              [117.514914, 34.060941],\n              [117.543248, 34.038627],\n              [117.569117, 33.985051],\n              [117.612849, 34.000433],\n              [117.629479, 34.028708],\n              [117.671363, 33.992494],\n              [117.672595, 33.934916],\n              [117.715095, 33.879287],\n              [117.753899, 33.891211],\n              [117.759442, 33.874318],\n              [117.739732, 33.758467],\n              [117.72495, 33.74951],\n              [117.750203, 33.710688],\n              [117.791471, 33.733585],\n              [117.843826, 33.736074],\n              [117.901724, 33.720146],\n              [117.972557, 33.74951],\n              [118.019985, 33.738562],\n              [118.065564, 33.76593],\n              [118.117919, 33.766427],\n              [118.161035, 33.735576],\n              [118.16781, 33.663381],\n              [118.112376, 33.617045],\n              [118.117919, 33.594615],\n              [118.107448, 33.475391],\n              [118.050782, 33.491863],\n              [118.027376, 33.455421],\n              [118.016905, 33.402978],\n              [118.029224, 33.374995],\n              [117.992883, 33.333005],\n              [117.974405, 33.279487],\n              [117.939297, 33.262475],\n              [117.942376, 33.224936],\n              [117.977485, 33.226437],\n              [117.988572, 33.180869],\n              [118.037231, 33.152314],\n              [118.038463, 33.134776],\n              [118.149332, 33.169348],\n              [118.178281, 33.217926],\n              [118.217085, 33.191888],\n              [118.219549, 33.114227],\n              [118.243571, 33.027967],\n              [118.244803, 32.998359],\n              [118.26944, 32.969242],\n              [118.303933, 32.96874],\n              [118.291614, 32.946143],\n              [118.252194, 32.936601],\n              [118.2331, 32.914498],\n              [118.250346, 32.848157],\n              [118.301469, 32.846145],\n              [118.300237, 32.783275],\n              [118.334114, 32.761637],\n              [118.363063, 32.770695],\n              [118.375382, 32.718849],\n              [118.411106, 32.715828],\n              [118.450526, 32.743518],\n              [118.483787, 32.721367],\n              [118.560163, 32.729926],\n              [118.572482, 32.719856],\n              [118.642699, 32.744525],\n              [118.707373, 32.72036],\n              [118.756648, 32.737477],\n              [118.73817, 32.772708],\n              [118.743097, 32.853184],\n              [118.743097, 32.853184],\n              [118.810235, 32.853687],\n              [118.821322, 32.920527],\n              [118.846575, 32.922034],\n              [118.849039, 32.956689],\n              [118.89585, 32.957694],\n              [118.89585, 32.957694],\n              [118.892771, 32.941121],\n              [118.934039, 32.93861],\n              [118.993169, 32.958196],\n              [119.020886, 32.955685],\n              [119.054763, 32.8748],\n              [119.113277, 32.823014],\n              [119.184726, 32.825529],\n              [119.211827, 32.708275],\n              [119.208748, 32.641276],\n              [119.230921, 32.607001],\n              [119.22045, 32.576748],\n              [119.152697, 32.557582],\n              [119.168096, 32.536394],\n              [119.142226, 32.499556],\n              [119.084944, 32.452602],\n              [119.041212, 32.515201],\n              [118.975923, 32.505108],\n              [118.922336, 32.557078],\n              [118.92172, 32.557078],\n              [118.922336, 32.557078],\n              [118.92172, 32.557078],\n              [118.890923, 32.553042],\n              [118.908169, 32.59238],\n              [118.84288, 32.56767],\n              [118.820706, 32.60448],\n              [118.784981, 32.582295],\n              [118.757264, 32.603976],\n              [118.73509, 32.58885],\n              [118.719076, 32.614059],\n              [118.719076, 32.614059],\n              [118.688895, 32.588346],\n              [118.658714, 32.594397],\n              [118.632844, 32.578261],\n              [118.59712, 32.600951],\n              [118.568787, 32.585825],\n              [118.564475, 32.562122],\n              [118.608823, 32.536899],\n              [118.592192, 32.481383],\n              [118.628533, 32.467751],\n              [118.691359, 32.472295],\n              [118.685199, 32.403604],\n              [118.703061, 32.328792],\n              [118.657482, 32.30148],\n              [118.674728, 32.250375],\n              [118.643931, 32.209875],\n              [118.510888, 32.194176],\n              [118.49549, 32.165304],\n              [118.501033, 32.121726],\n              [118.433896, 32.086746],\n              [118.394476, 32.076098],\n              [118.389548, 31.985281],\n              [118.363679, 31.930443],\n              [118.472084, 31.879639],\n              [118.466541, 31.857784],\n              [118.504729, 31.841516],\n              [118.481939, 31.778453],\n              [118.533678, 31.76726],\n              [118.521975, 31.743343],\n              [118.5577, 31.73011],\n              [118.571866, 31.746397],\n              [118.641467, 31.75861],\n              [118.653786, 31.73011],\n              [118.697518, 31.709747],\n              [118.643315, 31.671555],\n              [118.643315, 31.649651],\n              [118.736322, 31.633347],\n              [118.748025, 31.675629],\n              [118.773894, 31.682759],\n              [118.802844, 31.619078],\n              [118.858894, 31.623665],\n              [118.881684, 31.564023],\n              [118.885995, 31.519139],\n              [118.883532, 31.500261],\n              [118.852119, 31.393553],\n              [118.824401, 31.375672],\n              [118.767735, 31.363919],\n              [118.745561, 31.372606],\n              [118.720924, 31.322518],\n              [118.726467, 31.282121],\n              [118.756648, 31.279564],\n              [118.794836, 31.229426],\n              [118.870597, 31.242219],\n              [118.984546, 31.237102],\n              [119.014727, 31.241707],\n              [119.10527, 31.235055],\n              [119.107118, 31.250917],\n              [119.158241, 31.294907],\n              [119.197661, 31.295418],\n              [119.198277, 31.270357],\n              [119.266646, 31.250405],\n              [119.294363, 31.263195],\n              [119.338095, 31.259103],\n              [119.350414, 31.301043],\n              [119.374435, 31.258591],\n              [119.360269, 31.213049],\n              [119.391682, 31.174142],\n              [119.439109, 31.177214],\n              [119.461283, 31.156219],\n              [119.532732, 31.159291],\n              [119.599869, 31.10909],\n              [119.623891, 31.130096],\n              [119.678093, 31.167997],\n              [119.705811, 31.152634],\n              [119.715666, 31.169533],\n              [119.779723, 31.17875],\n              [119.809904, 31.148536],\n              [119.827151, 31.174142],\n              [119.878274, 31.160828],\n              [119.921389, 31.170045],\n              [119.946027, 31.106016],\n              [119.988527, 31.059375],\n              [120.001461, 31.027071],\n              [120.052584, 31.00553],\n              [120.111099, 30.955761],\n              [120.149903, 30.937283],\n              [120.223816, 30.926502],\n              [120.316206, 30.933689],\n              [120.371025, 30.948575],\n              [120.35809, 30.886964],\n              [120.42338, 30.902884],\n              [120.435083, 30.920855],\n              [120.441858, 30.860768],\n              [120.460336, 30.839702],\n              [120.489285, 30.763624],\n              [120.504684, 30.757967],\n              [120.563814, 30.835592],\n              [120.589684, 30.854089],\n              [120.654973, 30.846896],\n              [120.68269, 30.882342],\n              [120.713487, 30.88491],\n              [120.709176, 30.933176],\n              [120.684538, 30.955247],\n              [120.698089, 30.970643],\n              [120.746132, 30.962432],\n              [120.770154, 30.996809],\n              [120.820661, 31.006556],\n              [120.865624, 30.989627],\n              [120.901349, 31.017327],\n              [120.890878, 31.094229],\n              [120.859465, 31.100379],\n              [120.881023, 31.134706],\n              [120.930298, 31.141365],\n              [121.018377, 31.134194],\n              [121.076892, 31.158267],\n              [121.060261, 31.245289],\n              [121.090442, 31.291838],\n              [121.142797, 31.275472],\n              [121.130478, 31.343987],\n              [121.113848, 31.37465],\n              [121.143413, 31.392021],\n              [121.174826, 31.44922],\n              [121.241963, 31.493117],\n              [121.247507, 31.476785],\n              [121.301093, 31.49873],\n              [121.301093, 31.49873],\n              [121.343593, 31.511996],\n              [121.371926, 31.553314],\n              [121.289391, 31.61653],\n              [121.145261, 31.75403],\n              [121.118775, 31.759119],\n              [121.200079, 31.834907],\n              [121.265369, 31.863883],\n              [121.323267, 31.868458],\n              [121.384861, 31.833382],\n              [121.431673, 31.769295],\n              [121.49881, 31.753012],\n              [121.599824, 31.703128],\n              [121.64294, 31.697527],\n              [121.715005, 31.673592],\n              [121.974931, 31.61704],\n              [121.970004, 31.718911],\n              [121.889315, 31.866425],\n              [121.856055, 31.955328],\n              [121.772287, 32.032984],\n              [121.759352, 32.059362],\n              [121.525295, 32.136423],\n              [121.542542, 32.152132],\n              [121.458774, 32.177462],\n              [121.499426, 32.211394],\n              [121.493882, 32.263533],\n              [121.450151, 32.282256],\n              [121.425513, 32.430885],\n              [121.390405, 32.460682],\n              [121.352216, 32.474315],\n              [121.269681, 32.483402],\n              [121.153268, 32.52933],\n              [121.121855, 32.569183],\n              [121.076892, 32.576243],\n              [121.020225, 32.605489],\n              [120.961711, 32.612042],\n              [120.979573, 32.636236],\n              [120.963559, 32.68259],\n              [120.916131, 32.701225],\n              [120.953088, 32.714318],\n              [120.972182, 32.761134],\n              [120.981421, 32.85972],\n              [120.957399, 32.893395],\n              [120.932762, 33.005887],\n              [120.917979, 33.02596],\n              [120.871784, 33.047032],\n              [120.874247, 33.093672],\n              [120.843451, 33.209915],\n              [120.819429, 33.237951],\n              [120.833595, 33.274984],\n              [120.813885, 33.303499],\n              [120.769538, 33.307],\n              [120.741205, 33.337505],\n              [120.717183, 33.436945],\n              [120.680227, 33.520306],\n              [120.622944, 33.615051],\n              [120.611241, 33.627012],\n              [120.583524, 33.668362],\n              [120.534249, 33.782346],\n              [120.48559, 33.859411],\n              [120.367329, 34.091674],\n              [120.347619, 34.179352],\n              [120.314359, 34.255563],\n              [120.311895, 34.306991],\n              [120.103707, 34.391481],\n              [119.962657, 34.459112],\n              [119.811752, 34.485754],\n              [119.781571, 34.515839],\n              [119.641137, 34.569078],\n              [119.610956, 34.592729],\n              [119.569072, 34.615389],\n              [119.465594, 34.672994],\n              [119.525956, 34.73351],\n              [119.456971, 34.748264],\n              [119.381827, 34.752198],\n              [119.494543, 34.754656],\n              [119.497007, 34.754164],\n              [119.439725, 34.785136],\n              [119.440957, 34.769406],\n              [119.378747, 34.764489],\n              [119.312841, 34.774813],\n              [119.272189, 34.797914],\n              [119.238313, 34.799388],\n              [119.217371, 34.827886],\n              [119.202588, 34.890253],\n              [119.214907, 34.925589],\n              [119.211211, 34.981507],\n              [119.238313, 35.048657],\n              [119.285124, 35.068252],\n              [119.291899, 35.028567],\n              [119.307298, 35.032977],\n              [119.292515, 35.068742],\n              [119.306066, 35.076578],\n              [119.286972, 35.115261],\n              [119.250016, 35.124562],\n              [119.217371, 35.106939],\n              [119.137915, 35.096167],\n              [119.114509, 35.055026],\n              [119.027045, 35.055516],\n              [118.942662, 35.040817],\n              [118.928495, 35.051106],\n              [118.86259, 35.025626],\n              [118.860742, 34.944233],\n              [118.805307, 34.87307],\n              [118.80038, 34.843114],\n              [118.772047, 34.794474],\n              [118.739402, 34.792508],\n              [118.719076, 34.745313],\n              [118.764039, 34.740396],\n              [118.783749, 34.723181],\n              [118.739402, 34.693663],\n              [118.690127, 34.678408],\n              [118.664257, 34.693663],\n              [118.607591, 34.694155],\n              [118.601431, 34.714327],\n              [118.545997, 34.705964],\n              [118.460997, 34.656258],\n              [118.473932, 34.623269],\n              [118.439439, 34.626223],\n              [118.424657, 34.595193],\n              [118.439439, 34.507949],\n              [118.416034, 34.473914],\n              [118.404947, 34.427525],\n              [118.379693, 34.415183],\n              [118.290382, 34.424563],\n              [118.277447, 34.404814],\n              [118.220165, 34.405802],\n              [118.217701, 34.379134],\n              [118.179513, 34.379628],\n              [118.177665, 34.45319],\n              [118.132702, 34.483287],\n              [118.16473, 34.50499],\n              [118.185056, 34.543942],\n              [118.079115, 34.569571],\n              [118.114839, 34.614404],\n              [118.084042, 34.655766],\n              [118.053861, 34.650843],\n              [117.951615, 34.678408],\n              [117.909732, 34.670533],\n              [117.902956, 34.644443],\n              [117.793935, 34.651827],\n              [117.791471, 34.583368],\n              [117.801942, 34.518798],\n              [117.684298, 34.547392],\n              [117.659044, 34.501044],\n              [117.609769, 34.490686],\n              [117.592523, 34.462566],\n              [117.53832, 34.467006],\n              [117.465023, 34.484767],\n              [117.402813, 34.550843],\n              [117.402813, 34.569571],\n              [117.370785, 34.584846],\n              [117.325205, 34.573021],\n              [117.325205, 34.573021],\n              [117.32151, 34.566614],\n              [117.32151, 34.566614],\n              [117.311654, 34.561686],\n              [117.311654, 34.561686]\n            ]\n          ]\n        ]\n      }\n    },\n    {\n      \"type\": \"Feature\",\n      \"properties\": {\n        \"adcode\": 330000,\n        \"name\": \"浙江省\",\n        \"center\": [120.153576, 30.287459],\n        \"centroid\": [120.109913, 29.181466],\n        \"childrenNum\": 11,\n        \"level\": \"province\",\n        \"parent\": { \"adcode\": 100000 },\n        \"subFeatureIndex\": 10,\n        \"acroutes\": [100000]\n      },\n      \"geometry\": {\n        \"type\": \"MultiPolygon\",\n        \"coordinates\": [\n          [\n            [\n              [118.433896, 28.288335],\n              [118.444367, 28.253548],\n              [118.490562, 28.238259],\n              [118.493026, 28.262509],\n              [118.588497, 28.282538],\n              [118.595272, 28.258292],\n              [118.651322, 28.277267],\n              [118.674728, 28.27147],\n              [118.699366, 28.309939],\n              [118.719692, 28.312047],\n              [118.756032, 28.252493],\n              [118.802228, 28.240368],\n              [118.804075, 28.207675],\n              [118.771431, 28.188687],\n              [118.805923, 28.154923],\n              [118.802228, 28.117453],\n              [118.767735, 28.10584],\n              [118.719076, 28.063601],\n              [118.733858, 28.027684],\n              [118.730163, 27.970615],\n              [118.753568, 27.947885],\n              [118.818242, 27.916689],\n              [118.829329, 27.847921],\n              [118.873677, 27.733563],\n              [118.879836, 27.667859],\n              [118.913713, 27.619616],\n              [118.909401, 27.568168],\n              [118.869365, 27.540047],\n              [118.907553, 27.460952],\n              [118.955597, 27.4498],\n              [118.986393, 27.47582],\n              [118.983314, 27.498649],\n              [119.020886, 27.498118],\n              [119.03998, 27.478475],\n              [119.092335, 27.466262],\n              [119.129907, 27.475289],\n              [119.121284, 27.438115],\n              [119.14777, 27.424836],\n              [119.224146, 27.416868],\n              [119.26911, 27.42218],\n              [119.285124, 27.457766],\n              [119.334399, 27.480067],\n              [119.360269, 27.524657],\n              [119.416935, 27.539517],\n              [119.438493, 27.508734],\n              [119.466826, 27.526249],\n              [119.501935, 27.610601],\n              [119.501319, 27.649837],\n              [119.541971, 27.666799],\n              [119.606028, 27.674749],\n              [119.644217, 27.663619],\n              [119.626354, 27.620676],\n              [119.630666, 27.582491],\n              [119.675014, 27.574534],\n              [119.659615, 27.540578],\n              [119.690412, 27.537394],\n              [119.70889, 27.514042],\n              [119.703347, 27.446613],\n              [119.685485, 27.438646],\n              [119.711354, 27.403054],\n              [119.750774, 27.373829],\n              [119.739687, 27.362668],\n              [119.782187, 27.330241],\n              [119.768636, 27.307909],\n              [119.843165, 27.300464],\n              [119.938636, 27.329709],\n              [119.960194, 27.365857],\n              [120.008237, 27.375423],\n              [120.026099, 27.344063],\n              [120.052584, 27.338747],\n              [120.096316, 27.390302],\n              [120.136968, 27.402523],\n              [120.134504, 27.420055],\n              [120.221352, 27.420055],\n              [120.26262, 27.432804],\n              [120.273091, 27.38924],\n              [120.340844, 27.399867],\n              [120.343924, 27.363199],\n              [120.430155, 27.258976],\n              [120.401822, 27.250996],\n              [120.404286, 27.204166],\n              [120.461568, 27.142407],\n              [120.492365, 27.136016],\n              [120.545952, 27.156785],\n              [120.574901, 27.234501],\n              [120.554575, 27.25206],\n              [120.580444, 27.321203],\n              [120.665444, 27.357884],\n              [120.673451, 27.420055],\n              [120.703016, 27.478475],\n              [120.637111, 27.561271],\n              [120.634647, 27.577186],\n              [120.685154, 27.622797],\n              [120.709176, 27.682699],\n              [120.771386, 27.734623],\n              [120.777545, 27.774873],\n              [120.809574, 27.775402],\n              [120.840371, 27.758986],\n              [120.910588, 27.864852],\n              [120.942001, 27.896592],\n              [120.97403, 27.887071],\n              [121.027616, 27.832574],\n              [121.070116, 27.834162],\n              [121.107688, 27.81352],\n              [121.152036, 27.815638],\n              [121.134174, 27.787051],\n              [121.13479, 27.787051],\n              [121.149572, 27.801345],\n              [121.149572, 27.801875],\n              [121.153268, 27.809815],\n              [121.152652, 27.810344],\n              [121.192072, 27.822518],\n              [121.193304, 27.872259],\n              [121.162507, 27.879136],\n              [121.162507, 27.90717],\n              [121.099681, 27.895005],\n              [121.05595, 27.900294],\n              [120.991892, 27.95],\n              [121.015298, 27.981714],\n              [121.059029, 28.096338],\n              [121.108304, 28.139092],\n              [121.121239, 28.12537],\n              [121.140949, 28.031382],\n              [121.176058, 28.022401],\n              [121.261057, 28.034551],\n              [121.299862, 28.067297],\n              [121.328195, 28.134343],\n              [121.373774, 28.133287],\n              [121.402107, 28.197127],\n              [121.45631, 28.250385],\n              [121.488955, 28.301509],\n              [121.538846, 28.299401],\n              [121.571491, 28.279376],\n              [121.580114, 28.240368],\n              [121.627541, 28.251966],\n              [121.669425, 28.33312],\n              [121.660186, 28.355768],\n              [121.634317, 28.347868],\n              [121.658954, 28.392628],\n              [121.692831, 28.407368],\n              [121.671273, 28.472621],\n              [121.646019, 28.511544],\n              [121.634317, 28.562542],\n              [121.596128, 28.575156],\n              [121.557324, 28.645033],\n              [121.540694, 28.655537],\n              [121.646019, 28.682842],\n              [121.689135, 28.719062],\n              [121.704534, 28.804577],\n              [121.687287, 28.863294],\n              [121.774751, 28.863818],\n              [121.772287, 28.898404],\n              [121.743338, 28.954451],\n              [121.711309, 28.985865],\n              [121.712541, 29.028783],\n              [121.658954, 29.058606],\n              [121.660186, 29.118226],\n              [121.616454, 29.143318],\n              [121.608447, 29.168927],\n              [121.715621, 29.125022],\n              [121.750113, 29.136523],\n              [121.767975, 29.166837],\n              [121.780294, 29.10986],\n              [121.811091, 29.10986],\n              [121.85975, 29.086328],\n              [121.884388, 29.105677],\n              [121.966308, 29.052852],\n              [121.970004, 29.092604],\n              [121.988482, 29.110906],\n              [121.986634, 29.154817],\n              [121.948446, 29.193485],\n              [121.971851, 29.193485],\n              [121.966924, 29.249894],\n              [122.002032, 29.260336],\n              [122.000185, 29.278608],\n              [121.94475, 29.28435],\n              [121.958301, 29.334448],\n              [121.936127, 29.348012],\n              [121.937975, 29.384],\n              [121.975547, 29.411113],\n              [121.993409, 29.45229],\n              [121.973083, 29.477821],\n              [121.968772, 29.515846],\n              [121.995257, 29.545007],\n              [122.000185, 29.582486],\n              [121.966308, 29.636078],\n              [121.909641, 29.650122],\n              [121.872685, 29.632437],\n              [121.833265, 29.653242],\n              [121.937359, 29.748373],\n              [122.003264, 29.762401],\n              [122.043916, 29.822647],\n              [122.10243, 29.859504],\n              [122.143082, 29.877668],\n              [122.140003, 29.901535],\n              [122.00696, 29.891678],\n              [122.00388, 29.92021],\n              [121.971235, 29.955476],\n              [121.919497, 29.920729],\n              [121.835113, 29.958068],\n              [121.78399, 29.99332],\n              [121.721164, 29.992802],\n              [121.699606, 30.007832],\n              [121.652795, 30.071037],\n              [121.635548, 30.070002],\n              [121.561636, 30.184395],\n              [121.497578, 30.258861],\n              [121.395332, 30.338435],\n              [121.371926, 30.37097],\n              [121.328195, 30.397299],\n              [121.225333, 30.404526],\n              [121.183449, 30.434458],\n              [121.092906, 30.515952],\n              [121.058413, 30.563888],\n              [121.148956, 30.599953],\n              [121.188992, 30.632916],\n              [121.239499, 30.648878],\n              [121.274608, 30.677191],\n              [121.272144, 30.723504],\n              [121.232108, 30.755909],\n              [121.21671, 30.785734],\n              [121.174826, 30.771851],\n              [121.123087, 30.77905],\n              [121.13787, 30.826342],\n              [121.097833, 30.857171],\n              [121.060261, 30.845354],\n              [121.038087, 30.814007],\n              [120.991892, 30.837133],\n              [121.020225, 30.872069],\n              [120.993124, 30.889532],\n              [121.000515, 30.938309],\n              [120.989428, 31.01425],\n              [120.949392, 31.030148],\n              [120.940153, 31.010146],\n              [120.901349, 31.017327],\n              [120.865624, 30.989627],\n              [120.820661, 31.006556],\n              [120.770154, 30.996809],\n              [120.746132, 30.962432],\n              [120.698089, 30.970643],\n              [120.684538, 30.955247],\n              [120.709176, 30.933176],\n              [120.713487, 30.88491],\n              [120.68269, 30.882342],\n              [120.654973, 30.846896],\n              [120.589684, 30.854089],\n              [120.563814, 30.835592],\n              [120.504684, 30.757967],\n              [120.489285, 30.763624],\n              [120.460336, 30.839702],\n              [120.441858, 30.860768],\n              [120.435083, 30.920855],\n              [120.42338, 30.902884],\n              [120.35809, 30.886964],\n              [120.371025, 30.948575],\n              [120.316206, 30.933689],\n              [120.223816, 30.926502],\n              [120.149903, 30.937283],\n              [120.111099, 30.955761],\n              [120.052584, 31.00553],\n              [120.001461, 31.027071],\n              [119.988527, 31.059375],\n              [119.946027, 31.106016],\n              [119.921389, 31.170045],\n              [119.878274, 31.160828],\n              [119.827151, 31.174142],\n              [119.809904, 31.148536],\n              [119.779723, 31.17875],\n              [119.715666, 31.169533],\n              [119.705811, 31.152634],\n              [119.678093, 31.167997],\n              [119.623891, 31.130096],\n              [119.649144, 31.104991],\n              [119.629434, 31.085517],\n              [119.633746, 31.019379],\n              [119.580159, 30.967051],\n              [119.582007, 30.932149],\n              [119.563529, 30.919315],\n              [119.557369, 30.874124],\n              [119.575847, 30.829939],\n              [119.55429, 30.825828],\n              [119.527188, 30.77905],\n              [119.479761, 30.772365],\n              [119.482841, 30.704467],\n              [119.444652, 30.650422],\n              [119.408312, 30.645274],\n              [119.39045, 30.685941],\n              [119.343022, 30.664322],\n              [119.323312, 30.630341],\n              [119.238929, 30.609225],\n              [119.265414, 30.574709],\n              [119.237081, 30.546881],\n              [119.272189, 30.510281],\n              [119.326392, 30.532964],\n              [119.336247, 30.508734],\n              [119.335015, 30.448389],\n              [119.36766, 30.38491],\n              [119.402768, 30.374584],\n              [119.349182, 30.349281],\n              [119.326392, 30.372002],\n              [119.277117, 30.341018],\n              [119.246936, 30.341018],\n              [119.236465, 30.297106],\n              [119.201356, 30.290905],\n              [119.126828, 30.304856],\n              [119.091719, 30.323972],\n              [119.06277, 30.304856],\n              [118.988857, 30.332237],\n              [118.954365, 30.360126],\n              [118.880452, 30.31519],\n              [118.877988, 30.282637],\n              [118.905089, 30.216464],\n              [118.929727, 30.2025],\n              [118.852735, 30.166805],\n              [118.852119, 30.149729],\n              [118.895234, 30.148694],\n              [118.873677, 30.11505],\n              [118.878604, 30.064822],\n              [118.902626, 30.029078],\n              [118.894619, 29.937845],\n              [118.838568, 29.934733],\n              [118.841032, 29.891159],\n              [118.740634, 29.814859],\n              [118.744945, 29.73902],\n              [118.700598, 29.706277],\n              [118.647011, 29.64336],\n              [118.61991, 29.654282],\n              [118.573714, 29.638159],\n              [118.532446, 29.588731],\n              [118.500417, 29.57572],\n              [118.496106, 29.519492],\n              [118.381541, 29.504909],\n              [118.347664, 29.474174],\n              [118.329802, 29.495012],\n              [118.306396, 29.479384],\n              [118.316252, 29.422581],\n              [118.248498, 29.431443],\n              [118.193064, 29.395472],\n              [118.205382, 29.343839],\n              [118.166578, 29.314099],\n              [118.178281, 29.297921],\n              [118.138861, 29.283828],\n              [118.077883, 29.290614],\n              [118.073571, 29.216993],\n              [118.042159, 29.210202],\n              [118.027992, 29.167882],\n              [118.045238, 29.149068],\n              [118.037847, 29.102017],\n              [118.076035, 29.074822],\n              [118.066796, 29.053898],\n              [118.097593, 28.998952],\n              [118.115455, 29.009944],\n              [118.115455, 29.009944],\n              [118.133933, 28.983771],\n              [118.165346, 28.986912],\n              [118.227556, 28.942406],\n              [118.195527, 28.904167],\n              [118.270056, 28.918836],\n              [118.300237, 28.826075],\n              [118.364295, 28.813491],\n              [118.403099, 28.702791],\n              [118.428352, 28.681267],\n              [118.428352, 28.617193],\n              [118.428352, 28.617193],\n              [118.412338, 28.55676],\n              [118.4302, 28.515225],\n              [118.414802, 28.497344],\n              [118.474548, 28.478934],\n              [118.456686, 28.424738],\n              [118.432048, 28.402104],\n              [118.455454, 28.384204],\n              [118.480091, 28.327325],\n              [118.433896, 28.288335]\n            ]\n          ],\n          [\n            [\n              [122.163408, 29.988137],\n              [122.239785, 29.962735],\n              [122.279205, 29.937326],\n              [122.322321, 29.940438],\n              [122.341415, 29.976733],\n              [122.343879, 30.020269],\n              [122.310002, 30.039958],\n              [122.290908, 30.074663],\n              [122.301379, 30.086574],\n              [122.293988, 30.100554],\n              [122.152938, 30.113497],\n              [122.095655, 30.158008],\n              [122.048844, 30.147141],\n              [121.955221, 30.183878],\n              [121.934895, 30.161631],\n              [121.983554, 30.100554],\n              [121.989714, 30.077252],\n              [121.978011, 30.059125],\n              [122.027902, 29.991247],\n              [122.106742, 30.005759],\n              [122.118445, 29.986582],\n              [122.163408, 29.988137]\n            ]\n          ],\n          [\n            [\n              [122.213915, 30.186464],\n              [122.178807, 30.199396],\n              [122.152938, 30.19112],\n              [122.143698, 30.163183],\n              [122.168336, 30.138343],\n              [122.213915, 30.186464]\n            ]\n          ],\n          [\n            [\n              [122.229314, 29.711995],\n              [122.210836, 29.700559],\n              [122.269966, 29.685482],\n              [122.231162, 29.710435],\n              [122.229314, 29.711995]\n            ]\n          ],\n          [\n            [\n              [122.427646, 30.738422],\n              [122.427031, 30.697777],\n              [122.532972, 30.696748],\n              [122.528045, 30.725047],\n              [122.475074, 30.714243],\n              [122.445509, 30.745109],\n              [122.427646, 30.738422]\n            ]\n          ],\n          [\n            [\n              [122.162793, 30.329654],\n              [122.058083, 30.291938],\n              [122.154169, 30.244903],\n              [122.231778, 30.234562],\n              [122.247176, 30.30124],\n              [122.228082, 30.329654],\n              [122.191126, 30.329654],\n              [122.176343, 30.351863],\n              [122.162793, 30.329654]\n            ]\n          ],\n          [\n            [\n              [122.317393, 30.249556],\n              [122.277973, 30.242835],\n              [122.358661, 30.236113],\n              [122.365437, 30.255242],\n              [122.417175, 30.238699],\n              [122.40732, 30.272817],\n              [122.333408, 30.272817],\n              [122.317393, 30.249556]\n            ]\n          ],\n          [\n            [\n              [122.026054, 29.178333],\n              [122.013119, 29.151681],\n              [122.056851, 29.158476],\n              [122.075945, 29.176243],\n              [122.036525, 29.20759],\n              [122.026054, 29.178333]\n            ]\n          ],\n          [\n            [\n              [122.372212, 29.893234],\n              [122.386379, 29.834069],\n              [122.415944, 29.828877],\n              [122.401777, 29.869884],\n              [122.433806, 29.883376],\n              [122.43319, 29.919173],\n              [122.411632, 29.951846],\n              [122.398081, 29.9394],\n              [122.351886, 29.959105],\n              [122.330944, 29.937845],\n              [122.338951, 29.911911],\n              [122.353734, 29.89946],\n              [122.362973, 29.894272],\n              [122.372212, 29.893234]\n            ]\n          ],\n          [\n            [\n              [122.43011, 30.408655],\n              [122.432574, 30.445294],\n              [122.37406, 30.461802],\n              [122.277973, 30.471603],\n              [122.281669, 30.418461],\n              [122.318625, 30.407106],\n              [122.352502, 30.422074],\n              [122.43011, 30.408655]\n            ]\n          ],\n          [\n            [\n              [121.837577, 28.770484],\n              [121.86283, 28.782024],\n              [121.861598, 28.814016],\n              [121.837577, 28.770484]\n            ]\n          ],\n          [\n            [\n              [122.265038, 29.84549],\n              [122.221307, 29.832512],\n              [122.248408, 29.804473],\n              [122.310002, 29.766557],\n              [122.325401, 29.781621],\n              [122.299531, 29.819532],\n              [122.319241, 29.829397],\n              [122.265038, 29.84549]\n            ]\n          ],\n          [\n            [\n              [121.790765, 29.082144],\n              [121.832649, 29.050236],\n              [121.84312, 29.082144],\n              [121.82033, 29.099402],\n              [121.790765, 29.082144]\n            ]\n          ],\n          [\n            [\n              [121.201311, 27.623328],\n              [121.197616, 27.618025],\n              [121.198848, 27.616964],\n              [121.203775, 27.625979],\n              [121.201311, 27.623328]\n            ]\n          ],\n          [\n            [\n              [121.943518, 30.776993],\n              [121.968156, 30.688514],\n              [121.997105, 30.658659],\n              [122.087032, 30.602014],\n              [122.133227, 30.595317],\n              [122.075329, 30.647848],\n              [122.011271, 30.66947],\n              [121.992793, 30.695204],\n              [121.987866, 30.753338],\n              [121.970004, 30.789333],\n              [121.943518, 30.776993]\n            ]\n          ],\n          [\n            [\n              [121.889315, 28.471569],\n              [121.918881, 28.497344],\n              [121.881924, 28.502603],\n              [121.889315, 28.471569]\n            ]\n          ],\n          [\n            [\n              [122.182503, 29.650642],\n              [122.211452, 29.692241],\n              [122.200365, 29.712515],\n              [122.146778, 29.749412],\n              [122.13138, 29.788893],\n              [122.083952, 29.78318],\n              [122.047612, 29.719791],\n              [122.074097, 29.701599],\n              [122.095655, 29.716673],\n              [122.138155, 29.662083],\n              [122.182503, 29.650642]\n            ]\n          ],\n          [\n            [\n              [122.461523, 29.944068],\n              [122.459675, 29.944586],\n              [122.460291, 29.947179],\n              [122.451668, 29.943031],\n              [122.451052, 29.940956],\n              [122.450436, 29.940956],\n              [122.449204, 29.9394],\n              [122.4529, 29.936807],\n              [122.452284, 29.935252],\n              [122.45598, 29.926435],\n              [122.457827, 29.927472],\n              [122.462755, 29.927991],\n              [122.467067, 29.928509],\n              [122.459059, 29.938882],\n              [122.461523, 29.944068]\n            ]\n          ],\n          [\n            [\n              [122.570544, 30.644244],\n              [122.559457, 30.679764],\n              [122.546523, 30.651967],\n              [122.570544, 30.644244]\n            ]\n          ],\n          [\n            [\n              [121.869605, 28.423685],\n              [121.910873, 28.44],\n              [121.889931, 28.45105],\n              [121.869605, 28.423685]\n            ]\n          ],\n          [\n            [\n              [122.065474, 30.179739],\n              [122.055619, 30.200431],\n              [122.017431, 30.186464],\n              [122.025438, 30.161631],\n              [122.065474, 30.179739]\n            ]\n          ],\n          [\n            [\n              [122.391306, 29.970512],\n              [122.411632, 30.025969],\n              [122.378371, 30.023896],\n              [122.3679, 29.980361],\n              [122.391306, 29.970512]\n            ]\n          ],\n          [\n            [\n              [121.850511, 29.977251],\n              [121.874533, 29.964809],\n              [121.933047, 29.994875],\n              [121.924424, 30.052391],\n              [121.88562, 30.094859],\n              [121.848663, 30.101072],\n              [121.84004, 30.047211],\n              [121.844968, 29.982953],\n              [121.850511, 29.977251]\n            ]\n          ],\n          [\n            [\n              [121.066421, 27.478475],\n              [121.066421, 27.461483],\n              [121.107073, 27.443958],\n              [121.067036, 27.478475],\n              [121.066421, 27.478475]\n            ]\n          ],\n          [\n            [\n              [121.952141, 29.187738],\n              [121.979243, 29.160043],\n              [121.976779, 29.191918],\n              [121.952141, 29.187738]\n            ]\n          ],\n          [\n            [\n              [122.038373, 29.759284],\n              [122.011271, 29.746294],\n              [122.02975, 29.716673],\n              [122.038373, 29.759284]\n            ]\n          ],\n          [\n            [\n              [121.940438, 30.114533],\n              [121.910257, 30.089163],\n              [121.945982, 30.064304],\n              [121.962612, 30.106249],\n              [121.940438, 30.114533]\n            ]\n          ],\n          [\n            [\n              [121.957685, 30.287804],\n              [122.0008, 30.308473],\n              [121.989098, 30.339985],\n              [121.94167, 30.33327],\n              [121.921344, 30.30744],\n              [121.957685, 30.287804]\n            ]\n          ],\n          [\n            [\n              [122.192974, 29.965327],\n              [122.163408, 29.988137],\n              [122.152322, 29.97103],\n              [122.154169, 29.97103],\n              [122.155401, 29.970512],\n              [122.18435, 29.955476],\n              [122.192974, 29.965327]\n            ]\n          ],\n          [\n            [\n              [122.287828, 29.723949],\n              [122.301379, 29.748373],\n              [122.258263, 29.753569],\n              [122.241633, 29.784738],\n              [122.2133, 29.771752],\n              [122.251488, 29.731225],\n              [122.287828, 29.723949]\n            ]\n          ],\n          [\n            [\n              [121.134174, 27.787051],\n              [121.134174, 27.785992],\n              [121.13479, 27.787051],\n              [121.134174, 27.787051]\n            ]\n          ],\n          [\n            [\n              [122.760254, 30.141966],\n              [122.784275, 30.130062],\n              [122.781196, 30.13265],\n              [122.778116, 30.13679],\n              [122.770725, 30.138861],\n              [122.763333, 30.141966],\n              [122.762101, 30.142484],\n              [122.760254, 30.141966]\n            ]\n          ],\n          [\n            [\n              [122.264423, 30.269716],\n              [122.253952, 30.237147],\n              [122.315545, 30.250073],\n              [122.300147, 30.271266],\n              [122.264423, 30.269716]\n            ]\n          ],\n          [\n            [\n              [122.282901, 29.860542],\n              [122.30877, 29.849642],\n              [122.343263, 29.860542],\n              [122.343263, 29.882857],\n              [122.301379, 29.883895],\n              [122.282901, 29.860542]\n            ]\n          ],\n          [\n            [\n              [122.781196, 30.694175],\n              [122.799674, 30.716301],\n              [122.778732, 30.729677],\n              [122.757174, 30.713728],\n              [122.781196, 30.694175]\n            ]\n          ],\n          [\n            [\n              [121.098449, 27.937311],\n              [121.152652, 27.961629],\n              [121.120623, 27.986471],\n              [121.0695, 27.984357],\n              [121.038087, 27.948942],\n              [121.098449, 27.937311]\n            ]\n          ],\n          [\n            [\n              [121.185913, 27.963215],\n              [121.237652, 27.988056],\n              [121.197616, 28.000739],\n              [121.17113, 27.978543],\n              [121.185913, 27.963215]\n            ]\n          ],\n          [\n            [\n              [122.454132, 29.956513],\n              [122.447972, 29.955994],\n              [122.445509, 29.952365],\n              [122.446741, 29.951327],\n              [122.447972, 29.947698],\n              [122.459059, 29.950809],\n              [122.458443, 29.951846],\n              [122.455364, 29.955994],\n              [122.454132, 29.956513]\n            ]\n          ],\n          [\n            [\n              [122.836014, 30.698806],\n              [122.831087, 30.728648],\n              [122.807681, 30.714243],\n              [122.836014, 30.698806]\n            ]\n          ],\n          [\n            [\n              [122.200365, 29.969475],\n              [122.233626, 29.946661],\n              [122.273662, 29.93214],\n              [122.239785, 29.960142],\n              [122.200365, 29.969475]\n            ]\n          ],\n          [\n            [\n              [122.029134, 29.954957],\n              [122.043916, 29.930584],\n              [122.058699, 29.955994],\n              [122.029134, 29.954957]\n            ]\n          ],\n          [\n            [\n              [121.044247, 27.979072],\n              [121.089826, 27.998625],\n              [121.073812, 28.007608],\n              [121.044247, 27.979072]\n            ]\n          ],\n          [\n            [\n              [122.471378, 29.927472],\n              [122.470762, 29.925916],\n              [122.473226, 29.925397],\n              [122.47261, 29.927472],\n              [122.471378, 29.927472]\n            ]\n          ],\n          [\n            [\n              [122.152322, 29.97103],\n              [122.155401, 29.970512],\n              [122.154169, 29.97103],\n              [122.152322, 29.97103]\n            ]\n          ]\n        ]\n      }\n    },\n    {\n      \"type\": \"Feature\",\n      \"properties\": {\n        \"adcode\": 340000,\n        \"name\": \"安徽省\",\n        \"center\": [117.283042, 31.86119],\n        \"centroid\": [117.226884, 31.849254],\n        \"childrenNum\": 16,\n        \"level\": \"province\",\n        \"parent\": { \"adcode\": 100000 },\n        \"subFeatureIndex\": 11,\n        \"acroutes\": [100000]\n      },\n      \"geometry\": {\n        \"type\": \"MultiPolygon\",\n        \"coordinates\": [\n          [\n            [\n              [116.599629, 34.014324],\n              [116.641512, 33.978103],\n              [116.64336, 33.896675],\n              [116.631042, 33.887733],\n              [116.566984, 33.9081],\n              [116.558361, 33.881274],\n              [116.486296, 33.869846],\n              [116.437637, 33.846489],\n              [116.437021, 33.801246],\n              [116.408071, 33.805721],\n              [116.393905, 33.782843],\n              [116.316912, 33.771402],\n              [116.263326, 33.730101],\n              [116.230065, 33.735078],\n              [116.155536, 33.709693],\n              [116.132747, 33.751501],\n              [116.100102, 33.782843],\n              [116.074232, 33.781351],\n              [116.055754, 33.804727],\n              [116.05945, 33.860902],\n              [115.982457, 33.917039],\n              [116.00032, 33.965199],\n              [115.95782, 34.007875],\n              [115.904233, 34.009859],\n              [115.876516, 34.028708],\n              [115.877132, 34.002913],\n              [115.85003, 34.004898],\n              [115.846335, 34.028708],\n              [115.809378, 34.062428],\n              [115.768726, 34.061932],\n              [115.736082, 34.076805],\n              [115.705901, 34.059949],\n              [115.658473, 34.061437],\n              [115.642459, 34.03218],\n              [115.60735, 34.030196],\n              [115.579017, 33.974133],\n              [115.577785, 33.950307],\n              [115.547604, 33.874815],\n              [115.631988, 33.869846],\n              [115.614126, 33.775879],\n              [115.576553, 33.787817],\n              [115.563003, 33.772895],\n              [115.601807, 33.718653],\n              [115.601191, 33.658898],\n              [115.639995, 33.585143],\n              [115.564851, 33.576169],\n              [115.511264, 33.55323],\n              [115.463837, 33.567193],\n              [115.422569, 33.557219],\n              [115.394851, 33.506335],\n              [115.366518, 33.5233],\n              [115.345576, 33.502842],\n              [115.345576, 33.449928],\n              [115.324634, 33.457418],\n              [115.315395, 33.431451],\n              [115.328946, 33.403477],\n              [115.313547, 33.376994],\n              [115.341881, 33.370997],\n              [115.365286, 33.336005],\n              [115.361591, 33.298497],\n              [115.335105, 33.297997],\n              [115.340033, 33.260973],\n              [115.300613, 33.204407],\n              [115.303692, 33.149809],\n              [115.289526, 33.131769],\n              [115.245178, 33.135778],\n              [115.194671, 33.120743],\n              [115.168186, 33.088658],\n              [115.041302, 33.086653],\n              [114.990795, 33.102195],\n              [114.966158, 33.147304],\n              [114.932897, 33.153817],\n              [114.902716, 33.129764],\n              [114.897172, 33.086653],\n              [114.913187, 33.083143],\n              [114.925506, 33.016928],\n              [114.891629, 33.020441],\n              [114.883006, 32.990328],\n              [114.916266, 32.971251],\n              [114.943368, 32.935094],\n              [115.009273, 32.940117],\n              [115.035143, 32.932582],\n              [115.029599, 32.906962],\n              [115.139237, 32.897917],\n              [115.155867, 32.864747],\n              [115.197135, 32.856201],\n              [115.189744, 32.812452],\n              [115.211301, 32.785791],\n              [115.189744, 32.770695],\n              [115.179273, 32.726402],\n              [115.182968, 32.666973],\n              [115.20083, 32.591876],\n              [115.24333, 32.593388],\n              [115.267352, 32.578261],\n              [115.30554, 32.583303],\n              [115.304924, 32.553042],\n              [115.411482, 32.575235],\n              [115.409018, 32.549007],\n              [115.497713, 32.492489],\n              [115.5088, 32.468761],\n              [115.510648, 32.468761],\n              [115.510648, 32.468256],\n              [115.510648, 32.467751],\n              [115.509416, 32.466741],\n              [115.522967, 32.441997],\n              [115.57101, 32.419266],\n              [115.604271, 32.425833],\n              [115.626445, 32.40512],\n              [115.657857, 32.428864],\n              [115.667712, 32.409667],\n              [115.704669, 32.495013],\n              [115.742241, 32.476335],\n              [115.771806, 32.505108],\n              [115.789052, 32.468761],\n              [115.861117, 32.537403],\n              [115.891298, 32.576243],\n              [115.910393, 32.567165],\n              [115.8759, 32.542448],\n              [115.845719, 32.501575],\n              [115.883291, 32.487946],\n              [115.865429, 32.458662],\n              [115.899306, 32.390971],\n              [115.912856, 32.227596],\n              [115.941805, 32.166318],\n              [115.922095, 32.049725],\n              [115.928871, 32.003046],\n              [115.909161, 31.94314],\n              [115.920248, 31.920285],\n              [115.894994, 31.8649],\n              [115.893762, 31.832365],\n              [115.914704, 31.814567],\n              [115.886371, 31.776418],\n              [115.851878, 31.786593],\n              [115.808147, 31.770313],\n              [115.808147, 31.770313],\n              [115.767495, 31.78761],\n              [115.731154, 31.76726],\n              [115.676336, 31.778453],\n              [115.553764, 31.69549],\n              [115.534054, 31.698545],\n              [115.495249, 31.673083],\n              [115.476771, 31.643028],\n              [115.485394, 31.608885],\n              [115.439815, 31.588496],\n              [115.415793, 31.525771],\n              [115.371446, 31.495668],\n              [115.389924, 31.450241],\n              [115.373909, 31.405813],\n              [115.393004, 31.389977],\n              [115.372062, 31.349098],\n              [115.40717, 31.337854],\n              [115.443511, 31.344498],\n              [115.473076, 31.265242],\n              [115.507568, 31.267799],\n              [115.539597, 31.231985],\n              [115.540213, 31.194621],\n              [115.585793, 31.143926],\n              [115.603655, 31.17363],\n              [115.655394, 31.211002],\n              [115.700973, 31.201276],\n              [115.778582, 31.112164],\n              [115.797676, 31.128047],\n              [115.837712, 31.127022],\n              [115.867277, 31.147512],\n              [115.887603, 31.10909],\n              [115.939958, 31.071678],\n              [115.938726, 31.04707],\n              [116.006479, 31.034764],\n              [116.015102, 31.011685],\n              [116.058834, 31.012711],\n              [116.071769, 30.956787],\n              [116.03974, 30.957813],\n              [115.976298, 30.931636],\n              [115.932566, 30.889532],\n              [115.865429, 30.864364],\n              [115.848799, 30.828397],\n              [115.863581, 30.815549],\n              [115.851262, 30.756938],\n              [115.782893, 30.751795],\n              [115.762567, 30.685426],\n              [115.81369, 30.637035],\n              [115.819234, 30.597893],\n              [115.848799, 30.602014],\n              [115.876516, 30.582438],\n              [115.887603, 30.542758],\n              [115.910393, 30.519046],\n              [115.894994, 30.452517],\n              [115.921479, 30.416397],\n              [115.885139, 30.379747],\n              [115.91532, 30.337919],\n              [115.903001, 30.31364],\n              [115.985537, 30.290905],\n              [115.997856, 30.252657],\n              [116.065609, 30.204569],\n              [116.055754, 30.180774],\n              [116.088399, 30.110391],\n              [116.078544, 30.062233],\n              [116.091479, 30.036331],\n              [116.073616, 29.969993],\n              [116.128435, 29.897904],\n              [116.13521, 29.819532],\n              [116.172783, 29.828358],\n              [116.227601, 29.816936],\n              [116.250391, 29.785777],\n              [116.280572, 29.788893],\n              [116.342782, 29.835626],\n              [116.467818, 29.896347],\n              [116.525716, 29.897385],\n              [116.552201, 29.909836],\n              [116.585462, 30.045657],\n              [116.620571, 30.073109],\n              [116.666766, 30.076734],\n              [116.720353, 30.053945],\n              [116.747454, 30.057053],\n              [116.783794, 30.030632],\n              [116.802889, 29.99643],\n              [116.830606, 30.004723],\n              [116.83307, 29.95755],\n              [116.868794, 29.980361],\n              [116.900207, 29.949253],\n              [116.882961, 29.893753],\n              [116.780715, 29.792529],\n              [116.762237, 29.802396],\n              [116.673541, 29.709916],\n              [116.698795, 29.707836],\n              [116.70557, 29.69692],\n              [116.706802, 29.6964],\n              [116.704954, 29.688602],\n              [116.680317, 29.681323],\n              [116.651983, 29.637118],\n              [116.716657, 29.590813],\n              [116.721585, 29.564789],\n              [116.760389, 29.599139],\n              [116.780715, 29.569994],\n              [116.849084, 29.57624],\n              [116.873722, 29.609546],\n              [116.939627, 29.648561],\n              [116.974736, 29.657403],\n              [116.996294, 29.683403],\n              [117.041873, 29.680803],\n              [117.112706, 29.711995],\n              [117.108395, 29.75201],\n              [117.136728, 29.775388],\n              [117.123177, 29.798761],\n              [117.073286, 29.831992],\n              [117.127489, 29.86158],\n              [117.129952, 29.89946],\n              [117.171836, 29.920729],\n              [117.2168, 29.926953],\n              [117.246365, 29.915023],\n              [117.261763, 29.880781],\n              [117.25314, 29.834588],\n              [117.29256, 29.822647],\n              [117.338756, 29.848085],\n              [117.359082, 29.812782],\n              [117.382487, 29.840818],\n              [117.415132, 29.85068],\n              [117.408973, 29.802396],\n              [117.455168, 29.749412],\n              [117.453936, 29.688082],\n              [117.490277, 29.660003],\n              [117.530313, 29.654282],\n              [117.523538, 29.630356],\n              [117.543248, 29.588731],\n              [117.608537, 29.591333],\n              [117.647957, 29.614749],\n              [117.678754, 29.595496],\n              [117.690457, 29.555939],\n              [117.729877, 29.550213],\n              [117.795167, 29.570515],\n              [117.872775, 29.54761],\n              [117.933753, 29.549172],\n              [118.00397, 29.578322],\n              [118.042774, 29.566351],\n              [118.050782, 29.542924],\n              [118.095129, 29.534072],\n              [118.143788, 29.489803],\n              [118.127774, 29.47209],\n              [118.136397, 29.418932],\n              [118.193064, 29.395472],\n              [118.248498, 29.431443],\n              [118.316252, 29.422581],\n              [118.306396, 29.479384],\n              [118.329802, 29.495012],\n              [118.347664, 29.474174],\n              [118.381541, 29.504909],\n              [118.496106, 29.519492],\n              [118.500417, 29.57572],\n              [118.532446, 29.588731],\n              [118.573714, 29.638159],\n              [118.61991, 29.654282],\n              [118.647011, 29.64336],\n              [118.700598, 29.706277],\n              [118.744945, 29.73902],\n              [118.740634, 29.814859],\n              [118.841032, 29.891159],\n              [118.838568, 29.934733],\n              [118.894619, 29.937845],\n              [118.902626, 30.029078],\n              [118.878604, 30.064822],\n              [118.873677, 30.11505],\n              [118.895234, 30.148694],\n              [118.852119, 30.149729],\n              [118.852735, 30.166805],\n              [118.929727, 30.2025],\n              [118.905089, 30.216464],\n              [118.877988, 30.282637],\n              [118.880452, 30.31519],\n              [118.954365, 30.360126],\n              [118.988857, 30.332237],\n              [119.06277, 30.304856],\n              [119.091719, 30.323972],\n              [119.126828, 30.304856],\n              [119.201356, 30.290905],\n              [119.236465, 30.297106],\n              [119.246936, 30.341018],\n              [119.277117, 30.341018],\n              [119.326392, 30.372002],\n              [119.349182, 30.349281],\n              [119.402768, 30.374584],\n              [119.36766, 30.38491],\n              [119.335015, 30.448389],\n              [119.336247, 30.508734],\n              [119.326392, 30.532964],\n              [119.272189, 30.510281],\n              [119.237081, 30.546881],\n              [119.265414, 30.574709],\n              [119.238929, 30.609225],\n              [119.323312, 30.630341],\n              [119.343022, 30.664322],\n              [119.39045, 30.685941],\n              [119.408312, 30.645274],\n              [119.444652, 30.650422],\n              [119.482841, 30.704467],\n              [119.479761, 30.772365],\n              [119.527188, 30.77905],\n              [119.55429, 30.825828],\n              [119.575847, 30.829939],\n              [119.557369, 30.874124],\n              [119.563529, 30.919315],\n              [119.582007, 30.932149],\n              [119.580159, 30.967051],\n              [119.633746, 31.019379],\n              [119.629434, 31.085517],\n              [119.649144, 31.104991],\n              [119.623891, 31.130096],\n              [119.599869, 31.10909],\n              [119.532732, 31.159291],\n              [119.461283, 31.156219],\n              [119.439109, 31.177214],\n              [119.391682, 31.174142],\n              [119.360269, 31.213049],\n              [119.374435, 31.258591],\n              [119.350414, 31.301043],\n              [119.338095, 31.259103],\n              [119.294363, 31.263195],\n              [119.266646, 31.250405],\n              [119.198277, 31.270357],\n              [119.197661, 31.295418],\n              [119.158241, 31.294907],\n              [119.107118, 31.250917],\n              [119.10527, 31.235055],\n              [119.014727, 31.241707],\n              [118.984546, 31.237102],\n              [118.870597, 31.242219],\n              [118.794836, 31.229426],\n              [118.756648, 31.279564],\n              [118.726467, 31.282121],\n              [118.720924, 31.322518],\n              [118.745561, 31.372606],\n              [118.767735, 31.363919],\n              [118.824401, 31.375672],\n              [118.852119, 31.393553],\n              [118.883532, 31.500261],\n              [118.857046, 31.506384],\n              [118.865669, 31.519139],\n              [118.885995, 31.519139],\n              [118.881684, 31.564023],\n              [118.858894, 31.623665],\n              [118.802844, 31.619078],\n              [118.773894, 31.682759],\n              [118.748025, 31.675629],\n              [118.736322, 31.633347],\n              [118.643315, 31.649651],\n              [118.643315, 31.671555],\n              [118.697518, 31.709747],\n              [118.653786, 31.73011],\n              [118.641467, 31.75861],\n              [118.571866, 31.746397],\n              [118.5577, 31.73011],\n              [118.521975, 31.743343],\n              [118.533678, 31.76726],\n              [118.481939, 31.778453],\n              [118.504729, 31.841516],\n              [118.466541, 31.857784],\n              [118.472084, 31.879639],\n              [118.363679, 31.930443],\n              [118.389548, 31.985281],\n              [118.394476, 32.076098],\n              [118.433896, 32.086746],\n              [118.501033, 32.121726],\n              [118.49549, 32.165304],\n              [118.510888, 32.194176],\n              [118.643931, 32.209875],\n              [118.674728, 32.250375],\n              [118.657482, 32.30148],\n              [118.703061, 32.328792],\n              [118.685199, 32.403604],\n              [118.691359, 32.472295],\n              [118.628533, 32.467751],\n              [118.592192, 32.481383],\n              [118.608823, 32.536899],\n              [118.564475, 32.562122],\n              [118.568787, 32.585825],\n              [118.59712, 32.600951],\n              [118.632844, 32.578261],\n              [118.658714, 32.594397],\n              [118.688895, 32.588346],\n              [118.719076, 32.614059],\n              [118.719076, 32.614059],\n              [118.73509, 32.58885],\n              [118.757264, 32.603976],\n              [118.784981, 32.582295],\n              [118.820706, 32.60448],\n              [118.84288, 32.56767],\n              [118.908169, 32.59238],\n              [118.890923, 32.553042],\n              [118.92172, 32.557078],\n              [118.922336, 32.557078],\n              [118.92172, 32.557078],\n              [118.922336, 32.557078],\n              [118.975923, 32.505108],\n              [119.041212, 32.515201],\n              [119.084944, 32.452602],\n              [119.142226, 32.499556],\n              [119.168096, 32.536394],\n              [119.152697, 32.557582],\n              [119.22045, 32.576748],\n              [119.230921, 32.607001],\n              [119.208748, 32.641276],\n              [119.211827, 32.708275],\n              [119.184726, 32.825529],\n              [119.113277, 32.823014],\n              [119.054763, 32.8748],\n              [119.020886, 32.955685],\n              [118.993169, 32.958196],\n              [118.934039, 32.93861],\n              [118.892771, 32.941121],\n              [118.89585, 32.957694],\n              [118.89585, 32.957694],\n              [118.849039, 32.956689],\n              [118.846575, 32.922034],\n              [118.821322, 32.920527],\n              [118.810235, 32.853687],\n              [118.743097, 32.853184],\n              [118.743097, 32.853184],\n              [118.73817, 32.772708],\n              [118.756648, 32.737477],\n              [118.707373, 32.72036],\n              [118.642699, 32.744525],\n              [118.572482, 32.719856],\n              [118.560163, 32.729926],\n              [118.483787, 32.721367],\n              [118.450526, 32.743518],\n              [118.411106, 32.715828],\n              [118.375382, 32.718849],\n              [118.363063, 32.770695],\n              [118.334114, 32.761637],\n              [118.300237, 32.783275],\n              [118.301469, 32.846145],\n              [118.250346, 32.848157],\n              [118.2331, 32.914498],\n              [118.252194, 32.936601],\n              [118.291614, 32.946143],\n              [118.303933, 32.96874],\n              [118.26944, 32.969242],\n              [118.244803, 32.998359],\n              [118.243571, 33.027967],\n              [118.219549, 33.114227],\n              [118.217085, 33.191888],\n              [118.178281, 33.217926],\n              [118.149332, 33.169348],\n              [118.038463, 33.134776],\n              [118.037231, 33.152314],\n              [117.988572, 33.180869],\n              [117.977485, 33.226437],\n              [117.942376, 33.224936],\n              [117.939297, 33.262475],\n              [117.974405, 33.279487],\n              [117.992883, 33.333005],\n              [118.029224, 33.374995],\n              [118.016905, 33.402978],\n              [118.027376, 33.455421],\n              [118.050782, 33.491863],\n              [118.107448, 33.475391],\n              [118.117919, 33.594615],\n              [118.112376, 33.617045],\n              [118.16781, 33.663381],\n              [118.161035, 33.735576],\n              [118.117919, 33.766427],\n              [118.065564, 33.76593],\n              [118.019985, 33.738562],\n              [117.972557, 33.74951],\n              [117.901724, 33.720146],\n              [117.843826, 33.736074],\n              [117.791471, 33.733585],\n              [117.750203, 33.710688],\n              [117.72495, 33.74951],\n              [117.739732, 33.758467],\n              [117.759442, 33.874318],\n              [117.753899, 33.891211],\n              [117.715095, 33.879287],\n              [117.672595, 33.934916],\n              [117.671363, 33.992494],\n              [117.629479, 34.028708],\n              [117.612849, 34.000433],\n              [117.569117, 33.985051],\n              [117.543248, 34.038627],\n              [117.514914, 34.060941],\n              [117.435458, 34.028212],\n              [117.404045, 34.03218],\n              [117.357234, 34.088205],\n              [117.311654, 34.067882],\n              [117.277162, 34.078787],\n              [117.257452, 34.065899],\n              [117.192162, 34.068873],\n              [117.130568, 34.101586],\n              [117.123793, 34.128342],\n              [117.046801, 34.151622],\n              [117.025243, 34.167469],\n              [117.051112, 34.221425],\n              [116.969192, 34.283753],\n              [116.983359, 34.348011],\n              [116.960569, 34.363821],\n              [116.969192, 34.389012],\n              [116.909446, 34.408271],\n              [116.828142, 34.389012],\n              [116.782563, 34.429993],\n              [116.773939, 34.453683],\n              [116.722816, 34.472434],\n              [116.662454, 34.472927],\n              [116.592237, 34.493646],\n              [116.594085, 34.511894],\n              [116.490607, 34.573513],\n              [116.477057, 34.614896],\n              [116.432709, 34.630163],\n              [116.430245, 34.650843],\n              [116.374195, 34.640011],\n              [116.334159, 34.620806],\n              [116.32492, 34.601104],\n              [116.286116, 34.608986],\n              [116.247927, 34.551829],\n              [116.196804, 34.575977],\n              [116.191261, 34.535561],\n              [116.204196, 34.508442],\n              [116.178326, 34.496112],\n              [116.162312, 34.459605],\n              [116.178942, 34.430487],\n              [116.215898, 34.403333],\n              [116.213435, 34.382098],\n              [116.255934, 34.376665],\n              [116.301514, 34.342082],\n              [116.357564, 34.319843],\n              [116.372347, 34.26595],\n              [116.409303, 34.273863],\n              [116.409303, 34.273863],\n              [116.456731, 34.268917],\n              [116.516477, 34.296114],\n              [116.562056, 34.285731],\n              [116.582382, 34.266444],\n              [116.545426, 34.241711],\n              [116.542962, 34.203608],\n              [116.565752, 34.16945],\n              [116.536187, 34.151127],\n              [116.52818, 34.122892],\n              [116.576223, 34.068873],\n              [116.576223, 34.068873],\n              [116.599629, 34.014324],\n              [116.599629, 34.014324]\n            ]\n          ],\n          [\n            [\n              [118.865669, 31.519139],\n              [118.857046, 31.506384],\n              [118.883532, 31.500261],\n              [118.885995, 31.519139],\n              [118.865669, 31.519139]\n            ]\n          ],\n          [\n            [\n              [116.698795, 29.707836],\n              [116.673541, 29.709916],\n              [116.653831, 29.694841],\n              [116.680317, 29.681323],\n              [116.704954, 29.688602],\n              [116.706802, 29.6964],\n              [116.70557, 29.69692],\n              [116.698795, 29.707836]\n            ]\n          ],\n          [\n            [\n              [115.5088, 32.468761],\n              [115.509416, 32.466741],\n              [115.510648, 32.467751],\n              [115.510648, 32.468256],\n              [115.510648, 32.468761],\n              [115.5088, 32.468761]\n            ]\n          ]\n        ]\n      }\n    },\n    {\n      \"type\": \"Feature\",\n      \"properties\": {\n        \"adcode\": 350000,\n        \"name\": \"福建省\",\n        \"center\": [119.306239, 26.075302],\n        \"centroid\": [118.006468, 26.069925],\n        \"childrenNum\": 9,\n        \"level\": \"province\",\n        \"parent\": { \"adcode\": 100000 },\n        \"subFeatureIndex\": 12,\n        \"acroutes\": [100000]\n      },\n      \"geometry\": {\n        \"type\": \"MultiPolygon\",\n        \"coordinates\": [\n          [\n            [\n              [119.004872, 24.970009],\n              [118.989473, 24.973807],\n              [119.023966, 25.04377],\n              [119.016575, 25.058409],\n              [118.974691, 25.024792],\n              [118.945126, 25.028588],\n              [118.892155, 25.092558],\n              [118.974691, 25.115319],\n              [118.951901, 25.15162],\n              [118.985162, 25.168954],\n              [118.985162, 25.19495],\n              [118.942046, 25.211195],\n              [118.940198, 25.21715],\n              [118.943278, 25.221482],\n              [118.903242, 25.239347],\n              [118.900162, 25.242595],\n              [118.919256, 25.248008],\n              [118.91556, 25.256668],\n              [118.918024, 25.25721],\n              [118.956212, 25.272905],\n              [118.996864, 25.266411],\n              [118.975307, 25.237723],\n              [118.990089, 25.20199],\n              [119.055379, 25.219316],\n              [119.074473, 25.211195],\n              [119.054147, 25.168412],\n              [119.032589, 25.17437],\n              [119.028893, 25.139702],\n              [119.06585, 25.102855],\n              [119.075705, 25.099604],\n              [119.134219, 25.106107],\n              [119.107118, 25.075214],\n              [119.119436, 25.012861],\n              [119.146538, 25.056782],\n              [119.165632, 25.145661],\n              [119.137299, 25.15487],\n              [119.108349, 25.193867],\n              [119.131755, 25.223106],\n              [119.190269, 25.175995],\n              [119.231537, 25.188993],\n              [119.26911, 25.159746],\n              [119.314689, 25.190076],\n              [119.294979, 25.237182],\n              [119.331935, 25.230685],\n              [119.380595, 25.250173],\n              [119.333167, 25.287516],\n              [119.299291, 25.328634],\n              [119.247552, 25.333502],\n              [119.240776, 25.316733],\n              [119.218603, 25.368115],\n              [119.14469, 25.388121],\n              [119.151465, 25.426503],\n              [119.191501, 25.424341],\n              [119.232153, 25.442176],\n              [119.219834, 25.468654],\n              [119.256175, 25.488643],\n              [119.275269, 25.476758],\n              [119.26295, 25.428124],\n              [119.288204, 25.410827],\n              [119.353493, 25.411908],\n              [119.343638, 25.472436],\n              [119.359037, 25.521592],\n              [119.400921, 25.493505],\n              [119.45266, 25.493505],\n              [119.438493, 25.412449],\n              [119.463131, 25.448661],\n              [119.491464, 25.443257],\n              [119.48592, 25.418935],\n              [119.507478, 25.396231],\n              [119.486536, 25.369737],\n              [119.548746, 25.365952],\n              [119.578927, 25.400556],\n              [119.555521, 25.429205],\n              [119.577695, 25.445959],\n              [119.59063, 25.398394],\n              [119.582623, 25.374063],\n              [119.597405, 25.334584],\n              [119.649144, 25.342697],\n              [119.665159, 25.3719],\n              [119.656535, 25.396772],\n              [119.670086, 25.435691],\n              [119.622659, 25.434069],\n              [119.675014, 25.468113],\n              [119.682405, 25.445959],\n              [119.688564, 25.441095],\n              [119.773564, 25.395691],\n              [119.764325, 25.433529],\n              [119.804977, 25.457847],\n              [119.866571, 25.455145],\n              [119.864107, 25.469734],\n              [119.862875, 25.474597],\n              [119.811136, 25.507009],\n              [119.81668, 25.532393],\n              [119.861027, 25.531313],\n              [119.883817, 25.546432],\n              [119.831462, 25.579905],\n              [119.843165, 25.597717],\n              [119.790194, 25.614447],\n              [119.785883, 25.66786],\n              [119.700267, 25.616606],\n              [119.683637, 25.592859],\n              [119.716898, 25.551292],\n              [119.715666, 25.51187],\n              [119.680557, 25.497827],\n              [119.675014, 25.475137],\n              [119.634362, 25.475137],\n              [119.611572, 25.519972],\n              [119.616499, 25.556691],\n              [119.586934, 25.59232],\n              [119.534579, 25.585303],\n              [119.541355, 25.6247],\n              [119.478529, 25.631715],\n              [119.472986, 25.662466],\n              [119.543819, 25.684581],\n              [119.602949, 25.68512],\n              [119.602949, 25.714779],\n              [119.626354, 25.723406],\n              [119.628202, 25.87212],\n              [119.638057, 25.889888],\n              [119.69534, 25.904424],\n              [119.723673, 26.011503],\n              [119.700267, 26.032477],\n              [119.668854, 26.026024],\n              [119.654688, 26.090002],\n              [119.618963, 26.11956],\n              [119.604181, 26.168985],\n              [119.664543, 26.202282],\n              [119.676246, 26.262943],\n              [119.7711, 26.285481],\n              [119.802513, 26.268846],\n              [119.806825, 26.307479],\n              [119.845013, 26.323036],\n              [119.862875, 26.307479],\n              [119.904143, 26.308552],\n              [119.95465, 26.352534],\n              [119.946027, 26.374519],\n              [119.893672, 26.355752],\n              [119.835774, 26.434019],\n              [119.83639, 26.454381],\n              [119.788346, 26.583435],\n              [119.740303, 26.610727],\n              [119.670086, 26.618218],\n              [119.605412, 26.595744],\n              [119.577695, 26.622498],\n              [119.619579, 26.649246],\n              [119.637441, 26.703256],\n              [119.664543, 26.726243],\n              [119.711354, 26.686681],\n              [119.833926, 26.690959],\n              [119.864107, 26.671174],\n              [119.873962, 26.642827],\n              [119.908455, 26.661547],\n              [119.899216, 26.693098],\n              [119.938636, 26.747088],\n              [119.942947, 26.784492],\n              [120.052584, 26.786629],\n              [120.061824, 26.768997],\n              [119.99407, 26.720363],\n              [119.969433, 26.686681],\n              [119.972512, 26.654594],\n              [119.949107, 26.624638],\n              [119.901679, 26.624638],\n              [119.851788, 26.595209],\n              [119.828383, 26.524013],\n              [119.867187, 26.509019],\n              [119.947875, 26.56042],\n              [119.93802, 26.576478],\n              [119.967585, 26.597885],\n              [120.007621, 26.595744],\n              [120.063671, 26.627848],\n              [120.093852, 26.613938],\n              [120.1382, 26.638012],\n              [120.110483, 26.692563],\n              [120.162222, 26.717691],\n              [120.151135, 26.750829],\n              [120.106787, 26.752966],\n              [120.136352, 26.797847],\n              [120.103707, 26.794642],\n              [120.102476, 26.82669],\n              [120.073526, 26.823485],\n              [120.054432, 26.863533],\n              [120.117874, 26.882751],\n              [120.126497, 26.920644],\n              [120.130193, 26.917976],\n              [120.1807, 26.920644],\n              [120.233055, 26.907837],\n              [120.25954, 26.982526],\n              [120.279866, 26.987326],\n              [120.275554, 27.027315],\n              [120.29588, 27.035845],\n              [120.282946, 27.089671],\n              [120.391967, 27.081146],\n              [120.403054, 27.10086],\n              [120.461568, 27.142407],\n              [120.404286, 27.204166],\n              [120.401822, 27.250996],\n              [120.430155, 27.258976],\n              [120.343924, 27.363199],\n              [120.340844, 27.399867],\n              [120.273091, 27.38924],\n              [120.26262, 27.432804],\n              [120.221352, 27.420055],\n              [120.134504, 27.420055],\n              [120.136968, 27.402523],\n              [120.096316, 27.390302],\n              [120.052584, 27.338747],\n              [120.026099, 27.344063],\n              [120.008237, 27.375423],\n              [119.960194, 27.365857],\n              [119.938636, 27.329709],\n              [119.843165, 27.300464],\n              [119.768636, 27.307909],\n              [119.782187, 27.330241],\n              [119.739687, 27.362668],\n              [119.750774, 27.373829],\n              [119.711354, 27.403054],\n              [119.685485, 27.438646],\n              [119.703347, 27.446613],\n              [119.70889, 27.514042],\n              [119.690412, 27.537394],\n              [119.659615, 27.540578],\n              [119.675014, 27.574534],\n              [119.630666, 27.582491],\n              [119.626354, 27.620676],\n              [119.644217, 27.663619],\n              [119.606028, 27.674749],\n              [119.541971, 27.666799],\n              [119.501319, 27.649837],\n              [119.501935, 27.610601],\n              [119.466826, 27.526249],\n              [119.438493, 27.508734],\n              [119.416935, 27.539517],\n              [119.360269, 27.524657],\n              [119.334399, 27.480067],\n              [119.285124, 27.457766],\n              [119.26911, 27.42218],\n              [119.224146, 27.416868],\n              [119.14777, 27.424836],\n              [119.121284, 27.438115],\n              [119.129907, 27.475289],\n              [119.092335, 27.466262],\n              [119.03998, 27.478475],\n              [119.020886, 27.498118],\n              [118.983314, 27.498649],\n              [118.986393, 27.47582],\n              [118.955597, 27.4498],\n              [118.907553, 27.460952],\n              [118.869365, 27.540047],\n              [118.909401, 27.568168],\n              [118.913713, 27.619616],\n              [118.879836, 27.667859],\n              [118.873677, 27.733563],\n              [118.829329, 27.847921],\n              [118.818242, 27.916689],\n              [118.753568, 27.947885],\n              [118.730163, 27.970615],\n              [118.733858, 28.027684],\n              [118.719076, 28.063601],\n              [118.767735, 28.10584],\n              [118.802228, 28.117453],\n              [118.805923, 28.154923],\n              [118.771431, 28.188687],\n              [118.804075, 28.207675],\n              [118.802228, 28.240368],\n              [118.756032, 28.252493],\n              [118.719692, 28.312047],\n              [118.699366, 28.309939],\n              [118.674728, 28.27147],\n              [118.651322, 28.277267],\n              [118.595272, 28.258292],\n              [118.588497, 28.282538],\n              [118.493026, 28.262509],\n              [118.490562, 28.238259],\n              [118.444367, 28.253548],\n              [118.433896, 28.288335],\n              [118.424041, 28.291497],\n              [118.314404, 28.221913],\n              [118.339041, 28.193962],\n              [118.375382, 28.186577],\n              [118.361215, 28.155978],\n              [118.356288, 28.091586],\n              [118.242339, 28.075746],\n              [118.199839, 28.049869],\n              [118.153644, 28.062016],\n              [118.120999, 28.041946],\n              [118.129006, 28.017118],\n              [118.094513, 28.003909],\n              [118.096977, 27.970615],\n              [117.999043, 27.991227],\n              [117.965166, 27.962687],\n              [117.942992, 27.974315],\n              [117.910963, 27.949471],\n              [117.856145, 27.94577],\n              [117.78716, 27.896063],\n              [117.788392, 27.855858],\n              [117.740348, 27.800286],\n              [117.704624, 27.834162],\n              [117.68245, 27.823577],\n              [117.649805, 27.851625],\n              [117.609769, 27.863265],\n              [117.556182, 27.966387],\n              [117.52169, 27.982243],\n              [117.477958, 27.930966],\n              [117.453936, 27.939955],\n              [117.407741, 27.893948],\n              [117.366473, 27.88231],\n              [117.341836, 27.855858],\n              [117.334444, 27.8876],\n              [117.280242, 27.871201],\n              [117.276546, 27.847921],\n              [117.303031, 27.833103],\n              [117.296256, 27.764282],\n              [117.245133, 27.71926],\n              [117.205097, 27.714492],\n              [117.204481, 27.683759],\n              [117.174916, 27.677399],\n              [117.114554, 27.692238],\n              [117.096076, 27.667329],\n              [117.11209, 27.645596],\n              [117.094228, 27.627569],\n              [117.065279, 27.665739],\n              [117.040641, 27.669979],\n              [117.003685, 27.625449],\n              [117.024627, 27.592569],\n              [117.01662, 27.563393],\n              [117.054808, 27.5427],\n              [117.076982, 27.566046],\n              [117.103467, 27.533149],\n              [117.110242, 27.458828],\n              [117.133032, 27.42218],\n              [117.107163, 27.393491],\n              [117.104699, 27.330773],\n              [117.140423, 27.322798],\n              [117.136728, 27.303123],\n              [117.171836, 27.29036],\n              [117.149662, 27.241419],\n              [117.044953, 27.146667],\n              [117.05296, 27.100327],\n              [116.967344, 27.061962],\n              [116.936547, 27.019319],\n              [116.910062, 27.034779],\n              [116.851548, 27.009188],\n              [116.817671, 27.018252],\n              [116.679085, 26.978259],\n              [116.632889, 26.933984],\n              [116.602092, 26.888623],\n              [116.548506, 26.84004],\n              [116.543578, 26.803723],\n              [116.557745, 26.773806],\n              [116.515245, 26.720898],\n              [116.520172, 26.684543],\n              [116.566368, 26.650315],\n              [116.553433, 26.575942],\n              [116.539267, 26.559349],\n              [116.597165, 26.512768],\n              [116.610716, 26.476882],\n              [116.638433, 26.477418],\n              [116.608252, 26.429732],\n              [116.601476, 26.372911],\n              [116.553433, 26.365404],\n              [116.553433, 26.400253],\n              [116.519557, 26.410437],\n              [116.499846, 26.361651],\n              [116.459194, 26.345026],\n              [116.437021, 26.308016],\n              [116.412999, 26.297822],\n              [116.385282, 26.238253],\n              [116.400064, 26.202819],\n              [116.392057, 26.171133],\n              [116.435789, 26.159854],\n              [116.476441, 26.172745],\n              [116.489375, 26.113649],\n              [116.384666, 26.030864],\n              [116.360028, 25.991601],\n              [116.369883, 25.963088],\n              [116.326152, 25.956631],\n              [116.303362, 25.924341],\n              [116.258398, 25.902809],\n              [116.225138, 25.908731],\n              [116.17771, 25.894195],\n              [116.132131, 25.860273],\n              [116.131515, 25.824185],\n              [116.18079, 25.778926],\n              [116.129667, 25.758985],\n              [116.106877, 25.701299],\n              [116.067457, 25.703995],\n              [116.068689, 25.646282],\n              [116.041588, 25.62416],\n              [116.063145, 25.56317],\n              [116.040356, 25.548052],\n              [116.03666, 25.514571],\n              [116.005247, 25.490264],\n              [116.023109, 25.435691],\n              [115.992928, 25.374063],\n              [116.008327, 25.319437],\n              [115.987385, 25.290221],\n              [115.949813, 25.292386],\n              [115.930719, 25.236099],\n              [115.855574, 25.20957],\n              [115.860501, 25.165704],\n              [115.888219, 25.128866],\n              [115.880212, 25.092016],\n              [115.908545, 25.084428],\n              [115.928255, 25.050276],\n              [115.873436, 25.019911],\n              [115.925175, 24.960786],\n              [115.870356, 24.959701],\n              [115.89253, 24.936911],\n              [115.907929, 24.923343],\n              [115.985537, 24.899461],\n              [116.015102, 24.905975],\n              [116.068073, 24.850053],\n              [116.153073, 24.846795],\n              [116.191877, 24.877203],\n              [116.221442, 24.829959],\n              [116.251007, 24.82507],\n              [116.244232, 24.793563],\n              [116.297202, 24.801712],\n              [116.345862, 24.828872],\n              [116.363724, 24.87123],\n              [116.395137, 24.877746],\n              [116.417927, 24.840821],\n              [116.381586, 24.82507],\n              [116.375427, 24.803885],\n              [116.419158, 24.767482],\n              [116.416079, 24.744113],\n              [116.44626, 24.714216],\n              [116.485064, 24.720196],\n              [116.517709, 24.652225],\n              [116.506622, 24.621218],\n              [116.530027, 24.604895],\n              [116.570679, 24.621762],\n              [116.600861, 24.654401],\n              [116.623034, 24.64189],\n              [116.667382, 24.658752],\n              [116.777635, 24.679418],\n              [116.815207, 24.654944],\n              [116.761005, 24.583128],\n              [116.759157, 24.545572],\n              [116.796729, 24.502014],\n              [116.83307, 24.496568],\n              [116.860787, 24.460075],\n              [116.839229, 24.442097],\n              [116.903903, 24.369614],\n              [116.895895, 24.350533],\n              [116.919301, 24.321087],\n              [116.914374, 24.287817],\n              [116.938395, 24.28127],\n              [116.933468, 24.220157],\n              [116.956257, 24.216883],\n              [116.998757, 24.179217],\n              [116.9347, 24.126794],\n              [116.930388, 24.064514],\n              [116.953178, 24.008218],\n              [116.981511, 23.999471],\n              [116.976583, 23.931659],\n              [116.955642, 23.922359],\n              [116.981511, 23.855602],\n              [117.012308, 23.855054],\n              [117.019083, 23.801952],\n              [117.048032, 23.758687],\n              [117.055424, 23.694038],\n              [117.123793, 23.647448],\n              [117.147199, 23.654027],\n              [117.192778, 23.629356],\n              [117.192778, 23.5619],\n              [117.291328, 23.571225],\n              [117.302415, 23.550379],\n              [117.387415, 23.555317],\n              [117.463791, 23.584937],\n              [117.454552, 23.628259],\n              [117.493357, 23.642514],\n              [117.501364, 23.70445],\n              [117.54448, 23.715956],\n              [117.601762, 23.70171],\n              [117.660276, 23.789357],\n              [117.651653, 23.815093],\n              [117.671979, 23.878041],\n              [117.691073, 23.888985],\n              [117.762522, 23.886796],\n              [117.792703, 23.906494],\n              [117.807486, 23.947521],\n              [117.864768, 24.004938],\n              [117.910347, 24.012045],\n              [117.927594, 24.039922],\n              [117.936217, 24.100029],\n              [118.000275, 24.152462],\n              [118.019369, 24.197232],\n              [118.074803, 24.225615],\n              [118.115455, 24.229435],\n              [118.158571, 24.269814],\n              [118.112376, 24.357075],\n              [118.081579, 24.35653],\n              [118.088354, 24.408858],\n              [118.048934, 24.418122],\n              [118.084042, 24.528695],\n              [118.121615, 24.570067],\n              [118.150564, 24.583673],\n              [118.169042, 24.559725],\n              [118.242955, 24.51236],\n              [118.375382, 24.536317],\n              [118.363679, 24.567889],\n              [118.444367, 24.614689],\n              [118.512736, 24.60816],\n              [118.557084, 24.572788],\n              [118.558316, 24.51236],\n              [118.614366, 24.521617],\n              [118.680272, 24.58204],\n              [118.687047, 24.63373],\n              [118.661178, 24.622306],\n              [118.652554, 24.653857],\n              [118.670417, 24.679962],\n              [118.703677, 24.665278],\n              [118.778822, 24.743569],\n              [118.786213, 24.77672],\n              [118.650707, 24.808774],\n              [118.647627, 24.843536],\n              [118.702445, 24.865258],\n              [118.69875, 24.848967],\n              [118.748641, 24.84245],\n              [118.807771, 24.870687],\n              [118.834256, 24.854397],\n              [118.864437, 24.887518],\n              [118.933423, 24.870687],\n              [118.988857, 24.878831],\n              [118.987009, 24.898375],\n              [118.932807, 24.906518],\n              [118.91864, 24.932569],\n              [118.945741, 24.954275],\n              [119.014111, 24.941252],\n              [119.032589, 24.961328],\n              [119.032589, 24.961871],\n              [119.007335, 24.963499],\n              [119.004872, 24.970009]\n            ]\n          ],\n          [\n            [\n              [118.412338, 24.514538],\n              [118.374766, 24.458986],\n              [118.318715, 24.486765],\n              [118.298389, 24.477506],\n              [118.31194, 24.424661],\n              [118.282375, 24.413218],\n              [118.329802, 24.382152],\n              [118.353208, 24.415398],\n              [118.405563, 24.427931],\n              [118.457918, 24.412128],\n              [118.477012, 24.437738],\n              [118.451758, 24.506915],\n              [118.412338, 24.514538]\n            ]\n          ],\n          [\n            [\n              [119.471138, 25.197116],\n              [119.507478, 25.183036],\n              [119.52534, 25.157579],\n              [119.549362, 25.161912],\n              [119.566608, 25.210112],\n              [119.540739, 25.20199],\n              [119.501319, 25.21715],\n              [119.473601, 25.259916],\n              [119.44342, 25.238806],\n              [119.444036, 25.20199],\n              [119.471138, 25.197116]\n            ]\n          ],\n          [\n            [\n              [119.580159, 25.627398],\n              [119.611572, 25.669479],\n              [119.580775, 25.650059],\n              [119.580159, 25.627398]\n            ]\n          ],\n          [\n            [\n              [119.976824, 26.191005],\n              [120.016244, 26.217316],\n              [119.998998, 26.235569],\n              [119.970665, 26.217852],\n              [119.976824, 26.191005]\n            ]\n          ],\n          [\n            [\n              [118.230636, 24.401228],\n              [118.273752, 24.441007],\n              [118.233716, 24.445911],\n              [118.230636, 24.401228]\n            ]\n          ],\n          [\n            [\n              [119.906607, 26.68989],\n              [119.926933, 26.664756],\n              [119.950954, 26.692563],\n              [119.906607, 26.68989]\n            ]\n          ],\n          [\n            [\n              [118.204151, 24.504737],\n              [118.191832, 24.536861],\n              [118.14502, 24.560814],\n              [118.093281, 24.540672],\n              [118.068644, 24.463344],\n              [118.084042, 24.435559],\n              [118.143173, 24.420847],\n              [118.19368, 24.463344],\n              [118.204151, 24.504737]\n            ]\n          ],\n          [\n            [\n              [119.929397, 26.134067],\n              [119.960194, 26.146961],\n              [119.919542, 26.172208],\n              [119.929397, 26.134067]\n            ]\n          ],\n          [\n            [\n              [119.642985, 26.129231],\n              [119.665159, 26.155556],\n              [119.62697, 26.173282],\n              [119.606028, 26.15287],\n              [119.642985, 26.129231]\n            ]\n          ],\n          [\n            [\n              [120.034106, 26.488667],\n              [120.066751, 26.498308],\n              [120.071679, 26.521336],\n              [120.035954, 26.515981],\n              [120.034106, 26.488667]\n            ]\n          ],\n          [\n            [\n              [119.662079, 25.646822],\n              [119.673782, 25.632794],\n              [119.718745, 25.634952],\n              [119.716898, 25.664624],\n              [119.662079, 25.646822]\n            ]\n          ],\n          [\n            [\n              [119.760629, 26.613402],\n              [119.776644, 26.600025],\n              [119.818527, 26.616613],\n              [119.796354, 26.630523],\n              [119.760629, 26.613402]\n            ]\n          ],\n          [\n            [\n              [120.135736, 26.550784],\n              [120.167149, 26.571661],\n              [120.153598, 26.604841],\n              [120.117874, 26.568984],\n              [120.135736, 26.550784]\n            ]\n          ],\n          [\n            [\n              [120.360554, 26.916909],\n              [120.394431, 26.933984],\n              [120.363018, 26.967592],\n              [120.327909, 26.963858],\n              [120.319286, 26.944654],\n              [120.360554, 26.916909]\n            ]\n          ],\n          [\n            [\n              [120.150519, 26.798916],\n              [120.140048, 26.795176],\n              [120.163454, 26.798381],\n              [120.161606, 26.803189],\n              [120.150519, 26.798916]\n            ]\n          ],\n          [\n            [\n              [119.668238, 26.628383],\n              [119.720593, 26.635873],\n              [119.758781, 26.659408],\n              [119.748926, 26.681334],\n              [119.712586, 26.6685],\n              [119.673782, 26.680799],\n              [119.651608, 26.657269],\n              [119.668238, 26.628383]\n            ]\n          ]\n        ]\n      }\n    },\n    {\n      \"type\": \"Feature\",\n      \"properties\": {\n        \"adcode\": 360000,\n        \"name\": \"江西省\",\n        \"center\": [115.892151, 28.676493],\n        \"centroid\": [115.732975, 27.636112],\n        \"childrenNum\": 11,\n        \"level\": \"province\",\n        \"parent\": { \"adcode\": 100000 },\n        \"subFeatureIndex\": 13,\n        \"acroutes\": [100000]\n      },\n      \"geometry\": {\n        \"type\": \"MultiPolygon\",\n        \"coordinates\": [\n          [\n            [\n              [118.193064, 29.395472],\n              [118.136397, 29.418932],\n              [118.127774, 29.47209],\n              [118.143788, 29.489803],\n              [118.095129, 29.534072],\n              [118.050782, 29.542924],\n              [118.042774, 29.566351],\n              [118.00397, 29.578322],\n              [117.933753, 29.549172],\n              [117.872775, 29.54761],\n              [117.795167, 29.570515],\n              [117.729877, 29.550213],\n              [117.690457, 29.555939],\n              [117.678754, 29.595496],\n              [117.647957, 29.614749],\n              [117.608537, 29.591333],\n              [117.543248, 29.588731],\n              [117.523538, 29.630356],\n              [117.530313, 29.654282],\n              [117.490277, 29.660003],\n              [117.453936, 29.688082],\n              [117.455168, 29.749412],\n              [117.408973, 29.802396],\n              [117.415132, 29.85068],\n              [117.382487, 29.840818],\n              [117.359082, 29.812782],\n              [117.338756, 29.848085],\n              [117.29256, 29.822647],\n              [117.25314, 29.834588],\n              [117.261763, 29.880781],\n              [117.246365, 29.915023],\n              [117.2168, 29.926953],\n              [117.171836, 29.920729],\n              [117.129952, 29.89946],\n              [117.127489, 29.86158],\n              [117.073286, 29.831992],\n              [117.123177, 29.798761],\n              [117.136728, 29.775388],\n              [117.108395, 29.75201],\n              [117.112706, 29.711995],\n              [117.041873, 29.680803],\n              [116.996294, 29.683403],\n              [116.974736, 29.657403],\n              [116.939627, 29.648561],\n              [116.873722, 29.609546],\n              [116.849084, 29.57624],\n              [116.780715, 29.569994],\n              [116.760389, 29.599139],\n              [116.721585, 29.564789],\n              [116.716657, 29.590813],\n              [116.651983, 29.637118],\n              [116.680317, 29.681323],\n              [116.653831, 29.694841],\n              [116.673541, 29.709916],\n              [116.762237, 29.802396],\n              [116.780715, 29.792529],\n              [116.882961, 29.893753],\n              [116.900207, 29.949253],\n              [116.868794, 29.980361],\n              [116.83307, 29.95755],\n              [116.830606, 30.004723],\n              [116.802889, 29.99643],\n              [116.783794, 30.030632],\n              [116.747454, 30.057053],\n              [116.720353, 30.053945],\n              [116.666766, 30.076734],\n              [116.620571, 30.073109],\n              [116.585462, 30.045657],\n              [116.552201, 29.909836],\n              [116.525716, 29.897385],\n              [116.467818, 29.896347],\n              [116.342782, 29.835626],\n              [116.280572, 29.788893],\n              [116.250391, 29.785777],\n              [116.227601, 29.816936],\n              [116.172783, 29.828358],\n              [116.13521, 29.819532],\n              [116.087167, 29.795125],\n              [116.049595, 29.761881],\n              [115.965827, 29.724469],\n              [115.909777, 29.723949],\n              [115.837096, 29.748373],\n              [115.762567, 29.793048],\n              [115.706517, 29.837703],\n              [115.667712, 29.850161],\n              [115.611662, 29.841337],\n              [115.51188, 29.840299],\n              [115.479235, 29.811224],\n              [115.470612, 29.739539],\n              [115.412714, 29.688602],\n              [115.355431, 29.649602],\n              [115.304924, 29.637118],\n              [115.28583, 29.618391],\n              [115.250722, 29.660003],\n              [115.176809, 29.654803],\n              [115.113367, 29.684963],\n              [115.117679, 29.655843],\n              [115.143548, 29.645961],\n              [115.120142, 29.597578],\n              [115.157099, 29.584568],\n              [115.154019, 29.510117],\n              [115.086266, 29.525741],\n              [115.087498, 29.560104],\n              [115.033295, 29.546568],\n              [115.00065, 29.572076],\n              [114.947679, 29.542924],\n              [114.966773, 29.522096],\n              [114.940288, 29.493971],\n              [114.900868, 29.505951],\n              [114.860216, 29.476258],\n              [114.888549, 29.436134],\n              [114.918114, 29.454374],\n              [114.90518, 29.473132],\n              [114.935977, 29.486678],\n              [114.947063, 29.465317],\n              [114.931049, 29.422581],\n              [114.895325, 29.397557],\n              [114.866375, 29.404335],\n              [114.812173, 29.383478],\n              [114.784455, 29.386086],\n              [114.759818, 29.363139],\n              [114.740724, 29.386607],\n              [114.67297, 29.395993],\n              [114.621847, 29.379828],\n              [114.589819, 29.352707],\n              [114.519602, 29.325578],\n              [114.466015, 29.324013],\n              [114.440145, 29.341752],\n              [114.376088, 29.322969],\n              [114.341595, 29.327665],\n              [114.307102, 29.365225],\n              [114.259059, 29.343839],\n              [114.252284, 29.23475],\n              [114.169748, 29.216993],\n              [114.063191, 29.204978],\n              [114.034857, 29.152204],\n              [113.98743, 29.126068],\n              [113.952321, 29.092604],\n              [113.94185, 29.047097],\n              [113.961561, 28.999476],\n              [113.955401, 28.978536],\n              [113.973879, 28.937692],\n              [114.008988, 28.955498],\n              [114.005292, 28.917788],\n              [114.028082, 28.891069],\n              [114.060111, 28.902596],\n              [114.056415, 28.872204],\n              [114.076741, 28.834464],\n              [114.124784, 28.843376],\n              [114.153734, 28.829221],\n              [114.137719, 28.779926],\n              [114.157429, 28.761566],\n              [114.122321, 28.623497],\n              [114.132176, 28.607211],\n              [114.08598, 28.558337],\n              [114.138335, 28.533629],\n              [114.15435, 28.507337],\n              [114.218407, 28.48472],\n              [114.217175, 28.466308],\n              [114.172212, 28.432632],\n              [114.214712, 28.403157],\n              [114.252284, 28.395787],\n              [114.2529, 28.319423],\n              [114.198081, 28.29097],\n              [114.182067, 28.249858],\n              [114.143879, 28.246694],\n              [114.109386, 28.205038],\n              [114.107538, 28.182885],\n              [114.068734, 28.171806],\n              [114.012068, 28.174972],\n              [113.992357, 28.161255],\n              [114.025002, 28.080499],\n              [114.047176, 28.057263],\n              [114.025618, 28.031382],\n              [113.970184, 28.041418],\n              [113.966488, 28.017646],\n              [113.936307, 28.018703],\n              [113.914133, 27.991227],\n              [113.864242, 28.004966],\n              [113.845148, 27.971672],\n              [113.822974, 27.982243],\n              [113.752141, 27.93361],\n              [113.72812, 27.874904],\n              [113.756453, 27.860091],\n              [113.763228, 27.799228],\n              [113.69917, 27.740979],\n              [113.696707, 27.71979],\n              [113.652359, 27.663619],\n              [113.607395, 27.625449],\n              [113.608627, 27.585143],\n              [113.579062, 27.545354],\n              [113.583374, 27.524657],\n              [113.627105, 27.49971],\n              [113.591381, 27.467855],\n              [113.59754, 27.428554],\n              [113.632033, 27.40518],\n              [113.605548, 27.38924],\n              [113.616635, 27.345658],\n              [113.657902, 27.347253],\n              [113.699786, 27.331836],\n              [113.72812, 27.350442],\n              [113.872865, 27.384988],\n              [113.872865, 27.346721],\n              [113.854387, 27.30525],\n              [113.872865, 27.289828],\n              [113.846996, 27.222262],\n              [113.779242, 27.137081],\n              [113.771851, 27.096598],\n              [113.803264, 27.099261],\n              [113.824206, 27.036378],\n              [113.86301, 27.018252],\n              [113.892575, 26.964925],\n              [113.927068, 26.948922],\n              [113.890112, 26.895562],\n              [113.877177, 26.859262],\n              [113.835909, 26.806394],\n              [113.853771, 26.769532],\n              [113.860546, 26.664221],\n              [113.912901, 26.613938],\n              [113.996669, 26.615543],\n              [114.019459, 26.587182],\n              [114.10877, 26.56952],\n              [114.07243, 26.480096],\n              [114.110002, 26.482775],\n              [114.090292, 26.455988],\n              [114.085364, 26.406149],\n              [114.062575, 26.406149],\n              [114.030546, 26.376664],\n              [114.047792, 26.337518],\n              [114.021307, 26.288701],\n              [114.029314, 26.266163],\n              [113.978807, 26.237716],\n              [113.972647, 26.20604],\n              [113.949242, 26.192616],\n              [113.962792, 26.150722],\n              [114.013299, 26.184023],\n              [114.088444, 26.168448],\n              [114.102611, 26.187783],\n              [114.181451, 26.214631],\n              [114.216559, 26.203355],\n              [114.237501, 26.152333],\n              [114.188842, 26.121172],\n              [114.10569, 26.097526],\n              [114.121089, 26.085702],\n              [114.087828, 26.06635],\n              [114.044096, 26.076564],\n              [114.008372, 26.015806],\n              [114.028082, 25.98138],\n              [114.028082, 25.893119],\n              [113.971416, 25.836036],\n              [113.961561, 25.77731],\n              [113.920293, 25.741197],\n              [113.913517, 25.701299],\n              [113.957249, 25.611749],\n              [113.983118, 25.599336],\n              [113.986198, 25.529153],\n              [113.962792, 25.528072],\n              [113.94493, 25.441635],\n              [114.003444, 25.442716],\n              [113.983118, 25.415152],\n              [114.050256, 25.36433],\n              [114.029314, 25.328093],\n              [114.017611, 25.273987],\n              [114.039785, 25.250714],\n              [114.055799, 25.277775],\n              [114.083517, 25.275611],\n              [114.115545, 25.302125],\n              [114.190074, 25.316733],\n              [114.204857, 25.29942],\n              [114.260291, 25.291845],\n              [114.2954, 25.299961],\n              [114.31511, 25.33837],\n              [114.382863, 25.317274],\n              [114.43029, 25.343779],\n              [114.438914, 25.376226],\n              [114.477718, 25.37136],\n              [114.541159, 25.416773],\n              [114.599674, 25.385959],\n              [114.63663, 25.324306],\n              [114.714238, 25.315651],\n              [114.743188, 25.274528],\n              [114.73518, 25.225813],\n              [114.693912, 25.213902],\n              [114.685905, 25.173287],\n              [114.73518, 25.155954],\n              [114.735796, 25.121822],\n              [114.664963, 25.10123],\n              [114.640326, 25.074129],\n              [114.604601, 25.083886],\n              [114.561485, 25.077382],\n              [114.532536, 25.022623],\n              [114.506051, 24.999844],\n              [114.45616, 24.99659],\n              [114.454928, 24.977062],\n              [114.395798, 24.951019],\n              [114.403189, 24.877746],\n              [114.378551, 24.861457],\n              [114.342211, 24.807145],\n              [114.336052, 24.749004],\n              [114.281849, 24.724001],\n              [114.27261, 24.700624],\n              [114.169132, 24.689749],\n              [114.19069, 24.656576],\n              [114.258443, 24.641346],\n              [114.289856, 24.619042],\n              [114.300943, 24.578775],\n              [114.363769, 24.582584],\n              [114.391486, 24.563535],\n              [114.403189, 24.497657],\n              [114.429058, 24.48622],\n              [114.534384, 24.559181],\n              [114.589819, 24.537406],\n              [114.627391, 24.576598],\n              [114.664963, 24.583673],\n              [114.704999, 24.525973],\n              [114.73826, 24.565168],\n              [114.729637, 24.608704],\n              [114.781376, 24.613057],\n              [114.827571, 24.588026],\n              [114.846665, 24.602719],\n              [114.868839, 24.562446],\n              [114.893477, 24.582584],\n              [114.909491, 24.661471],\n              [114.940288, 24.650049],\n              [115.00373, 24.679418],\n              [115.024672, 24.669085],\n              [115.057317, 24.703343],\n              [115.083802, 24.699537],\n              [115.104744, 24.667997],\n              [115.1842, 24.711498],\n              [115.258729, 24.728894],\n              [115.269816, 24.749548],\n              [115.306772, 24.758787],\n              [115.358511, 24.735416],\n              [115.372678, 24.774546],\n              [115.412714, 24.79302],\n              [115.476771, 24.762591],\n              [115.522967, 24.702799],\n              [115.555611, 24.683768],\n              [115.569778, 24.622306],\n              [115.605503, 24.62557],\n              [115.671408, 24.604895],\n              [115.68927, 24.545027],\n              [115.752712, 24.546116],\n              [115.785357, 24.567345],\n              [115.843871, 24.562446],\n              [115.840791, 24.584217],\n              [115.797676, 24.628834],\n              [115.780429, 24.663103],\n              [115.801371, 24.705517],\n              [115.769342, 24.708236],\n              [115.756408, 24.749004],\n              [115.776734, 24.774546],\n              [115.764415, 24.791933],\n              [115.790284, 24.856027],\n              [115.807531, 24.862543],\n              [115.824161, 24.909232],\n              [115.863581, 24.891318],\n              [115.861733, 24.863629],\n              [115.907313, 24.879917],\n              [115.885139, 24.898918],\n              [115.89253, 24.936911],\n              [115.870356, 24.959701],\n              [115.925175, 24.960786],\n              [115.873436, 25.019911],\n              [115.928255, 25.050276],\n              [115.908545, 25.084428],\n              [115.880212, 25.092016],\n              [115.888219, 25.128866],\n              [115.860501, 25.165704],\n              [115.855574, 25.20957],\n              [115.930719, 25.236099],\n              [115.949813, 25.292386],\n              [115.987385, 25.290221],\n              [116.008327, 25.319437],\n              [115.992928, 25.374063],\n              [116.023109, 25.435691],\n              [116.005247, 25.490264],\n              [116.03666, 25.514571],\n              [116.040356, 25.548052],\n              [116.063145, 25.56317],\n              [116.041588, 25.62416],\n              [116.068689, 25.646282],\n              [116.067457, 25.703995],\n              [116.106877, 25.701299],\n              [116.129667, 25.758985],\n              [116.18079, 25.778926],\n              [116.131515, 25.824185],\n              [116.132131, 25.860273],\n              [116.17771, 25.894195],\n              [116.225138, 25.908731],\n              [116.258398, 25.902809],\n              [116.303362, 25.924341],\n              [116.326152, 25.956631],\n              [116.369883, 25.963088],\n              [116.360028, 25.991601],\n              [116.384666, 26.030864],\n              [116.489375, 26.113649],\n              [116.476441, 26.172745],\n              [116.435789, 26.159854],\n              [116.392057, 26.171133],\n              [116.400064, 26.202819],\n              [116.385282, 26.238253],\n              [116.412999, 26.297822],\n              [116.437021, 26.308016],\n              [116.459194, 26.345026],\n              [116.499846, 26.361651],\n              [116.519557, 26.410437],\n              [116.553433, 26.400253],\n              [116.553433, 26.365404],\n              [116.601476, 26.372911],\n              [116.608252, 26.429732],\n              [116.638433, 26.477418],\n              [116.610716, 26.476882],\n              [116.597165, 26.512768],\n              [116.539267, 26.559349],\n              [116.553433, 26.575942],\n              [116.566368, 26.650315],\n              [116.520172, 26.684543],\n              [116.515245, 26.720898],\n              [116.557745, 26.773806],\n              [116.543578, 26.803723],\n              [116.548506, 26.84004],\n              [116.602092, 26.888623],\n              [116.632889, 26.933984],\n              [116.679085, 26.978259],\n              [116.817671, 27.018252],\n              [116.851548, 27.009188],\n              [116.910062, 27.034779],\n              [116.936547, 27.019319],\n              [116.967344, 27.061962],\n              [117.05296, 27.100327],\n              [117.044953, 27.146667],\n              [117.149662, 27.241419],\n              [117.171836, 27.29036],\n              [117.136728, 27.303123],\n              [117.140423, 27.322798],\n              [117.104699, 27.330773],\n              [117.107163, 27.393491],\n              [117.133032, 27.42218],\n              [117.110242, 27.458828],\n              [117.103467, 27.533149],\n              [117.076982, 27.566046],\n              [117.054808, 27.5427],\n              [117.01662, 27.563393],\n              [117.024627, 27.592569],\n              [117.003685, 27.625449],\n              [117.040641, 27.669979],\n              [117.065279, 27.665739],\n              [117.094228, 27.627569],\n              [117.11209, 27.645596],\n              [117.096076, 27.667329],\n              [117.114554, 27.692238],\n              [117.174916, 27.677399],\n              [117.204481, 27.683759],\n              [117.205097, 27.714492],\n              [117.245133, 27.71926],\n              [117.296256, 27.764282],\n              [117.303031, 27.833103],\n              [117.276546, 27.847921],\n              [117.280242, 27.871201],\n              [117.334444, 27.8876],\n              [117.341836, 27.855858],\n              [117.366473, 27.88231],\n              [117.407741, 27.893948],\n              [117.453936, 27.939955],\n              [117.477958, 27.930966],\n              [117.52169, 27.982243],\n              [117.556182, 27.966387],\n              [117.609769, 27.863265],\n              [117.649805, 27.851625],\n              [117.68245, 27.823577],\n              [117.704624, 27.834162],\n              [117.740348, 27.800286],\n              [117.788392, 27.855858],\n              [117.78716, 27.896063],\n              [117.856145, 27.94577],\n              [117.910963, 27.949471],\n              [117.942992, 27.974315],\n              [117.965166, 27.962687],\n              [117.999043, 27.991227],\n              [118.096977, 27.970615],\n              [118.094513, 28.003909],\n              [118.129006, 28.017118],\n              [118.120999, 28.041946],\n              [118.153644, 28.062016],\n              [118.199839, 28.049869],\n              [118.242339, 28.075746],\n              [118.356288, 28.091586],\n              [118.361215, 28.155978],\n              [118.375382, 28.186577],\n              [118.339041, 28.193962],\n              [118.314404, 28.221913],\n              [118.424041, 28.291497],\n              [118.433896, 28.288335],\n              [118.480091, 28.327325],\n              [118.455454, 28.384204],\n              [118.432048, 28.402104],\n              [118.456686, 28.424738],\n              [118.474548, 28.478934],\n              [118.414802, 28.497344],\n              [118.4302, 28.515225],\n              [118.412338, 28.55676],\n              [118.428352, 28.617193],\n              [118.428352, 28.617193],\n              [118.428352, 28.681267],\n              [118.403099, 28.702791],\n              [118.364295, 28.813491],\n              [118.300237, 28.826075],\n              [118.270056, 28.918836],\n              [118.195527, 28.904167],\n              [118.227556, 28.942406],\n              [118.165346, 28.986912],\n              [118.133933, 28.983771],\n              [118.115455, 29.009944],\n              [118.115455, 29.009944],\n              [118.097593, 28.998952],\n              [118.066796, 29.053898],\n              [118.076035, 29.074822],\n              [118.037847, 29.102017],\n              [118.045238, 29.149068],\n              [118.027992, 29.167882],\n              [118.042159, 29.210202],\n              [118.073571, 29.216993],\n              [118.077883, 29.290614],\n              [118.138861, 29.283828],\n              [118.178281, 29.297921],\n              [118.166578, 29.314099],\n              [118.205382, 29.343839],\n              [118.193064, 29.395472]\n            ]\n          ]\n        ]\n      }\n    },\n    {\n      \"type\": \"Feature\",\n      \"properties\": {\n        \"adcode\": 370000,\n        \"name\": \"山东省\",\n        \"center\": [117.000923, 36.675807],\n        \"centroid\": [118.187759, 36.376092],\n        \"childrenNum\": 16,\n        \"level\": \"province\",\n        \"parent\": { \"adcode\": 100000 },\n        \"subFeatureIndex\": 14,\n        \"acroutes\": [100000]\n      },\n      \"geometry\": {\n        \"type\": \"MultiPolygon\",\n        \"coordinates\": [\n          [\n            [\n              [116.374195, 34.640011],\n              [116.392057, 34.710391],\n              [116.363724, 34.715311],\n              [116.369267, 34.749247],\n              [116.403144, 34.756131],\n              [116.408071, 34.850972],\n              [116.445028, 34.895652],\n              [116.557745, 34.908905],\n              [116.613795, 34.922645],\n              [116.622418, 34.939818],\n              [116.677853, 34.939327],\n              [116.781331, 34.916757],\n              [116.789338, 34.975133],\n              [116.815823, 34.965324],\n              [116.821983, 34.929515],\n              [116.858323, 34.928533],\n              [116.922381, 34.894671],\n              [116.929156, 34.843114],\n              [116.966113, 34.844588],\n              [116.979047, 34.815113],\n              [116.95133, 34.81069],\n              [116.969192, 34.771864],\n              [117.022163, 34.759081],\n              [117.070206, 34.713835],\n              [117.061583, 34.675947],\n              [117.073286, 34.639026],\n              [117.104083, 34.648874],\n              [117.15151, 34.559222],\n              [117.139191, 34.526687],\n              [117.166293, 34.434435],\n              [117.248213, 34.451216],\n              [117.252524, 34.48674],\n              [117.27285, 34.499565],\n              [117.267923, 34.532603],\n              [117.303647, 34.542463],\n              [117.27285, 34.556757],\n              [117.311654, 34.561686],\n              [117.311654, 34.561686],\n              [117.32151, 34.566614],\n              [117.32151, 34.566614],\n              [117.325205, 34.573021],\n              [117.325205, 34.573021],\n              [117.370785, 34.584846],\n              [117.402813, 34.569571],\n              [117.402813, 34.550843],\n              [117.465023, 34.484767],\n              [117.53832, 34.467006],\n              [117.592523, 34.462566],\n              [117.609769, 34.490686],\n              [117.659044, 34.501044],\n              [117.684298, 34.547392],\n              [117.801942, 34.518798],\n              [117.791471, 34.583368],\n              [117.793935, 34.651827],\n              [117.902956, 34.644443],\n              [117.909732, 34.670533],\n              [117.951615, 34.678408],\n              [118.053861, 34.650843],\n              [118.084042, 34.655766],\n              [118.114839, 34.614404],\n              [118.079115, 34.569571],\n              [118.185056, 34.543942],\n              [118.16473, 34.50499],\n              [118.132702, 34.483287],\n              [118.177665, 34.45319],\n              [118.179513, 34.379628],\n              [118.217701, 34.379134],\n              [118.220165, 34.405802],\n              [118.277447, 34.404814],\n              [118.290382, 34.424563],\n              [118.379693, 34.415183],\n              [118.404947, 34.427525],\n              [118.416034, 34.473914],\n              [118.439439, 34.507949],\n              [118.424657, 34.595193],\n              [118.439439, 34.626223],\n              [118.473932, 34.623269],\n              [118.460997, 34.656258],\n              [118.545997, 34.705964],\n              [118.601431, 34.714327],\n              [118.607591, 34.694155],\n              [118.664257, 34.693663],\n              [118.690127, 34.678408],\n              [118.739402, 34.693663],\n              [118.783749, 34.723181],\n              [118.764039, 34.740396],\n              [118.719076, 34.745313],\n              [118.739402, 34.792508],\n              [118.772047, 34.794474],\n              [118.80038, 34.843114],\n              [118.805307, 34.87307],\n              [118.860742, 34.944233],\n              [118.86259, 35.025626],\n              [118.928495, 35.051106],\n              [118.942662, 35.040817],\n              [119.027045, 35.055516],\n              [119.114509, 35.055026],\n              [119.137915, 35.096167],\n              [119.217371, 35.106939],\n              [119.250016, 35.124562],\n              [119.286972, 35.115261],\n              [119.306066, 35.076578],\n              [119.354109, 35.080007],\n              [119.373819, 35.078538],\n              [119.428022, 35.121136],\n              [119.397841, 35.137777],\n              [119.411392, 35.231689],\n              [119.450812, 35.285443],\n              [119.493312, 35.318655],\n              [119.538275, 35.296678],\n              [119.543819, 35.347949],\n              [119.590014, 35.37284],\n              [119.579543, 35.406504],\n              [119.618963, 35.459655],\n              [119.663311, 35.562931],\n              [119.662079, 35.589215],\n              [119.718129, 35.615492],\n              [119.75139, 35.617924],\n              [119.772332, 35.578995],\n              [119.780339, 35.584835],\n              [119.792658, 35.615492],\n              [119.824071, 35.646136],\n              [119.83023, 35.620357],\n              [119.868419, 35.60868],\n              [119.925085, 35.637382],\n              [119.91215, 35.660725],\n              [119.950339, 35.729741],\n              [119.920157, 35.739943],\n              [119.926317, 35.759856],\n              [119.958346, 35.760342],\n              [120.01378, 35.714193],\n              [120.049505, 35.786562],\n              [120.032258, 35.812288],\n              [120.064287, 35.873414],\n              [120.112331, 35.885052],\n              [120.125265, 35.906868],\n              [120.152983, 35.907353],\n              [120.207801, 35.947575],\n              [120.169613, 35.888446],\n              [120.202258, 35.89184],\n              [120.209033, 35.917531],\n              [120.265699, 35.966468],\n              [120.30512, 35.971796],\n              [120.316206, 36.002304],\n              [120.289721, 36.017311],\n              [120.285409, 36.01247],\n              [120.249069, 35.992136],\n              [120.257076, 36.025055],\n              [120.198562, 35.995525],\n              [120.234902, 36.030863],\n              [120.239214, 36.062316],\n              [120.181316, 36.066669],\n              [120.152367, 36.095206],\n              [120.116642, 36.102943],\n              [120.108635, 36.127599],\n              [120.142512, 36.143549],\n              [120.140664, 36.173507],\n              [120.181316, 36.203936],\n              [120.22012, 36.209248],\n              [120.224432, 36.19138],\n              [120.260772, 36.198624],\n              [120.263236, 36.182202],\n              [120.310047, 36.185101],\n              [120.297112, 36.225664],\n              [120.319902, 36.232423],\n              [120.362402, 36.196209],\n              [120.35809, 36.174956],\n              [120.286025, 36.047317],\n              [120.337764, 36.055058],\n              [120.429539, 36.056994],\n              [120.468959, 36.087952],\n              [120.546568, 36.091821],\n              [120.546568, 36.107778],\n              [120.593995, 36.100525],\n              [120.615553, 36.120348],\n              [120.64327, 36.114547],\n              [120.672835, 36.130016],\n              [120.712255, 36.126632],\n              [120.696857, 36.15563],\n              [120.696857, 36.203936],\n              [120.680843, 36.238698],\n              [120.686386, 36.279234],\n              [120.657437, 36.276339],\n              [120.66298, 36.331803],\n              [120.744284, 36.327946],\n              [120.694393, 36.390118],\n              [120.759683, 36.46283],\n              [120.828668, 36.46668],\n              [120.837291, 36.459942],\n              [120.858849, 36.424797],\n              [120.848994, 36.403124],\n              [120.871784, 36.36699],\n              [120.911204, 36.412276],\n              [120.917979, 36.417573],\n              [120.90874, 36.450315],\n              [120.938305, 36.447908],\n              [120.965407, 36.466199],\n              [120.95432, 36.507578],\n              [120.983269, 36.546051],\n              [120.962327, 36.562877],\n              [120.909972, 36.568645],\n              [120.884718, 36.601323],\n              [120.847146, 36.618617],\n              [120.882255, 36.627262],\n              [120.926602, 36.611892],\n              [120.955551, 36.575855],\n              [121.028848, 36.572971],\n              [121.078123, 36.607568],\n              [121.161275, 36.651273],\n              [121.251818, 36.671436],\n              [121.29863, 36.702151],\n              [121.31218, 36.702151],\n              [121.35776, 36.713186],\n              [121.400876, 36.701191],\n              [121.3941, 36.738129],\n              [121.454462, 36.752515],\n              [121.496962, 36.795179],\n              [121.506817, 36.803805],\n              [121.565331, 36.830635],\n              [121.548701, 36.807638],\n              [121.485259, 36.786073],\n              [121.532071, 36.73621],\n              [121.575186, 36.740047],\n              [121.556092, 36.764502],\n              [121.651563, 36.723739],\n              [121.631853, 36.80093],\n              [121.6762, 36.819137],\n              [121.726092, 36.826323],\n              [121.762432, 36.84644],\n              [121.767975, 36.874691],\n              [121.927504, 36.932597],\n              [121.965076, 36.938337],\n              [122.008808, 36.96225],\n              [122.042684, 36.871819],\n              [122.051923, 36.904846],\n              [122.093191, 36.913938],\n              [122.115981, 36.94025],\n              [122.124604, 36.944077],\n              [122.141235, 36.938337],\n              [122.119677, 36.891924],\n              [122.175727, 36.894317],\n              [122.188662, 36.866073],\n              [122.174495, 36.842609],\n              [122.220691, 36.848835],\n              [122.275509, 36.83734],\n              [122.280437, 36.835904],\n              [122.344495, 36.828239],\n              [122.378371, 36.844525],\n              [122.383915, 36.865595],\n              [122.415944, 36.85937],\n              [122.454748, 36.879],\n              [122.452284, 36.88618],\n              [122.434422, 36.914416],\n              [122.483081, 36.913938],\n              [122.48924, 36.886659],\n              [122.532356, 36.901496],\n              [122.55761, 36.968467],\n              [122.544675, 37.004797],\n              [122.583479, 37.037289],\n              [122.575472, 37.054485],\n              [122.494168, 37.033945],\n              [122.467067, 37.037289],\n              [122.478769, 37.058784],\n              [122.484313, 37.128956],\n              [122.533588, 37.153286],\n              [122.581015, 37.147562],\n              [122.573624, 37.176178],\n              [122.624131, 37.190959],\n              [122.592718, 37.261485],\n              [122.567465, 37.25958],\n              [122.573624, 37.296247],\n              [122.611196, 37.339558],\n              [122.607501, 37.364296],\n              [122.650616, 37.388551],\n              [122.6925, 37.373809],\n              [122.714058, 37.392355],\n              [122.701739, 37.418501],\n              [122.67587, 37.413273],\n              [122.641377, 37.428482],\n              [122.553914, 37.407093],\n              [122.4954, 37.413748],\n              [122.487393, 37.43466],\n              [122.41656, 37.414699],\n              [122.337103, 37.414223],\n              [122.281053, 37.430858],\n              [122.287212, 37.445114],\n              [122.25272, 37.467917],\n              [122.194205, 37.456041],\n              [122.166488, 37.438937],\n              [122.131996, 37.49926],\n              [122.163408, 37.519199],\n              [122.150474, 37.557163],\n              [122.08888, 37.554316],\n              [122.075329, 37.540556],\n              [122.017431, 37.531065],\n              [121.997721, 37.494512],\n              [121.923808, 37.473142],\n              [121.772903, 37.466492],\n              [121.66573, 37.473617],\n              [121.635548, 37.494037],\n              [121.575802, 37.460317],\n              [121.571491, 37.441313],\n              [121.477252, 37.475992],\n              [121.460006, 37.522522],\n              [121.400876, 37.557638],\n              [121.395948, 37.589891],\n              [121.435368, 37.592737],\n              [121.391021, 37.625449],\n              [121.349137, 37.635403],\n              [121.358376, 37.597479],\n              [121.304789, 37.582778],\n              [121.217326, 37.582778],\n              [121.17421, 37.597479],\n              [121.148956, 37.626397],\n              [121.161891, 37.646302],\n              [121.142797, 37.661464],\n              [121.160043, 37.698882],\n              [121.136022, 37.723501],\n              [121.037471, 37.718767],\n              [120.994356, 37.759468],\n              [120.943233, 37.785486],\n              [120.940769, 37.819533],\n              [120.874863, 37.833241],\n              [120.845298, 37.826623],\n              [120.839139, 37.82426],\n              [120.733197, 37.833714],\n              [120.656821, 37.793054],\n              [120.634031, 37.796364],\n              [120.590915, 37.7642],\n              [120.517619, 37.750005],\n              [120.454793, 37.757576],\n              [120.367945, 37.697935],\n              [120.227511, 37.693673],\n              [120.22012, 37.671886],\n              [120.269395, 37.658622],\n              [120.272475, 37.636824],\n              [120.215192, 37.621183],\n              [120.208417, 37.588469],\n              [120.246605, 37.556689],\n              [120.222584, 37.532963],\n              [120.144359, 37.481691],\n              [120.086461, 37.465067],\n              [120.064903, 37.448915],\n              [120.010085, 37.442263],\n              [119.949723, 37.419927],\n              [119.926933, 37.386649],\n              [119.843781, 37.376662],\n              [119.837006, 37.346695],\n              [119.883201, 37.311004],\n              [119.89244, 37.263866],\n              [119.865339, 37.233854],\n              [119.83023, 37.225754],\n              [119.808057, 37.196203],\n              [119.740303, 37.133727],\n              [119.687332, 37.143746],\n              [119.678709, 37.158056],\n              [119.576463, 37.127524],\n              [119.489616, 37.134681],\n              [119.428022, 37.125616],\n              [119.361501, 37.125616],\n              [119.327624, 37.115595],\n              [119.301138, 37.139452],\n              [119.298675, 37.197156],\n              [119.2069, 37.223371],\n              [119.190885, 37.25958],\n              [119.204436, 37.280058],\n              [119.136683, 37.230995],\n              [119.12806, 37.254816],\n              [119.091103, 37.257674],\n              [119.084328, 37.239572],\n              [119.054147, 37.254816],\n              [119.03998, 37.30434],\n              [119.001176, 37.31862],\n              [118.942662, 37.497361],\n              [118.939582, 37.527268],\n              [118.988857, 37.620709],\n              [119.023966, 37.642037],\n              [119.153313, 37.655305],\n              [119.236465, 37.651988],\n              [119.262334, 37.660517],\n              [119.280197, 37.692726],\n              [119.309146, 37.805349],\n              [119.291899, 37.869627],\n              [119.24016, 37.878131],\n              [119.212443, 37.838913],\n              [119.16132, 37.81906],\n              [119.12806, 37.847892],\n              [119.110813, 37.921577],\n              [119.001792, 37.99613],\n              [118.974075, 38.094162],\n              [118.908169, 38.139362],\n              [118.811467, 38.157717],\n              [118.703677, 38.151129],\n              [118.626069, 38.138421],\n              [118.607591, 38.129006],\n              [118.597736, 38.079088],\n              [118.552156, 38.05553],\n              [118.534294, 38.063541],\n              [118.517048, 38.088509],\n              [118.504729, 38.11394],\n              [118.44991, 38.124299],\n              [118.431432, 38.106406],\n              [118.404331, 38.121003],\n              [118.331034, 38.12524],\n              [118.217085, 38.146893],\n              [118.177665, 38.186417],\n              [118.112376, 38.210403],\n              [118.045238, 38.214165],\n              [118.018753, 38.202409],\n              [117.896797, 38.279495],\n              [117.895565, 38.301572],\n              [117.848754, 38.255062],\n              [117.808718, 38.22827],\n              [117.789007, 38.180772],\n              [117.766834, 38.158658],\n              [117.771145, 38.134655],\n              [117.746508, 38.12524],\n              [117.704624, 38.076262],\n              [117.586979, 38.071551],\n              [117.557414, 38.046105],\n              [117.557414, 38.046105],\n              [117.524154, 37.989527],\n              [117.513067, 37.94329],\n              [117.481038, 37.914967],\n              [117.438538, 37.854035],\n              [117.400966, 37.844584],\n              [117.320278, 37.861596],\n              [117.271618, 37.839858],\n              [117.185387, 37.849783],\n              [117.150278, 37.839385],\n              [117.074518, 37.848837],\n              [117.027091, 37.832296],\n              [116.919301, 37.846002],\n              [116.837997, 37.835132],\n              [116.804736, 37.848837],\n              [116.753613, 37.793054],\n              [116.753613, 37.77035],\n              [116.724664, 37.744327],\n              [116.679085, 37.728708],\n              [116.66307, 37.686096],\n              [116.604556, 37.624975],\n              [116.575607, 37.610754],\n              [116.4826, 37.521573],\n              [116.448108, 37.503059],\n              [116.433941, 37.473142],\n              [116.38097, 37.522522],\n              [116.379738, 37.522047],\n              [116.38097, 37.522522],\n              [116.379738, 37.522047],\n              [116.36742, 37.566177],\n              [116.336007, 37.581355],\n              [116.295355, 37.554316],\n              [116.278724, 37.524895],\n              [116.290427, 37.484065],\n              [116.27626, 37.466967],\n              [116.240536, 37.489764],\n              [116.240536, 37.489764],\n              [116.224522, 37.479791],\n              [116.243, 37.447965],\n              [116.226369, 37.428007],\n              [116.2855, 37.404241],\n              [116.236224, 37.361442],\n              [116.193109, 37.365723],\n              [116.169087, 37.384271],\n              [116.106261, 37.368577],\n              [116.085935, 37.373809],\n              [116.024341, 37.360015],\n              [115.975682, 37.337179],\n              [115.969523, 37.239572],\n              [115.909777, 37.20669],\n              [115.91224, 37.177132],\n              [115.879596, 37.150901],\n              [115.888219, 37.112254],\n              [115.85619, 37.060694],\n              [115.776734, 36.992848],\n              [115.79706, 36.968945],\n              [115.75764, 36.902453],\n              [115.71206, 36.883308],\n              [115.683727, 36.808117],\n              [115.524815, 36.763543],\n              [115.479851, 36.760187],\n              [115.451518, 36.702151],\n              [115.420105, 36.686795],\n              [115.365902, 36.621979],\n              [115.355431, 36.627262],\n              [115.33141, 36.550378],\n              [115.272895, 36.497476],\n              [115.291374, 36.460423],\n              [115.317243, 36.454166],\n              [115.297533, 36.413239],\n              [115.340033, 36.398307],\n              [115.368982, 36.342409],\n              [115.366518, 36.30914],\n              [115.423185, 36.32216],\n              [115.417025, 36.292742],\n              [115.462605, 36.276339],\n              [115.466916, 36.258969],\n              [115.466916, 36.258969],\n              [115.474923, 36.248352],\n              [115.483547, 36.148865],\n              [115.484163, 36.125666],\n              [115.449054, 36.047317],\n              [115.447822, 36.01247],\n              [115.362822, 35.971796],\n              [115.353583, 35.938854],\n              [115.364054, 35.894264],\n              [115.335105, 35.796756],\n              [115.363438, 35.779765],\n              [115.407786, 35.80889],\n              [115.460141, 35.867594],\n              [115.487858, 35.880688],\n              [115.495249, 35.896203],\n              [115.505104, 35.899112],\n              [115.513112, 35.890385],\n              [115.583945, 35.921893],\n              [115.648618, 35.922863],\n              [115.699125, 35.966468],\n              [115.774886, 35.974702],\n              [115.779813, 35.993588],\n              [115.817386, 36.012954],\n              [115.859886, 36.003756],\n              [115.89869, 36.026507],\n              [115.989849, 36.045381],\n              [116.057602, 36.104877],\n              [116.099486, 36.112129],\n              [116.063145, 36.028927],\n              [116.048979, 35.970343],\n              [115.984921, 35.974218],\n              [115.911624, 35.960171],\n              [115.907929, 35.92674],\n              [115.873436, 35.918985],\n              [115.882675, 35.879718],\n              [115.859886, 35.857894],\n              [115.81677, 35.844312],\n              [115.773654, 35.854014],\n              [115.73485, 35.833154],\n              [115.696046, 35.788989],\n              [115.693582, 35.754028],\n              [115.622749, 35.739457],\n              [115.52851, 35.733628],\n              [115.48601, 35.710306],\n              [115.383148, 35.568772],\n              [115.34496, 35.55368],\n              [115.356047, 35.490359],\n              [115.307388, 35.480126],\n              [115.237171, 35.423087],\n              [115.172497, 35.426501],\n              [115.126302, 35.41821],\n              [115.117679, 35.400163],\n              [115.091809, 35.416259],\n              [115.073947, 35.374304],\n              [115.04315, 35.376744],\n              [114.957534, 35.261014],\n              [114.929201, 35.244886],\n              [114.932281, 35.198441],\n              [114.861448, 35.182301],\n              [114.841738, 35.15099],\n              [114.883006, 35.098615],\n              [114.835578, 35.076578],\n              [114.818948, 35.051596],\n              [114.852209, 35.041797],\n              [114.824492, 35.012393],\n              [114.880542, 35.00357],\n              [114.923658, 34.968757],\n              [114.950759, 34.989843],\n              [115.008041, 34.988372],\n              [115.028983, 34.9717],\n              [115.075179, 35.000628],\n              [115.12815, 35.00455],\n              [115.157099, 34.957968],\n              [115.219309, 34.96042],\n              [115.205142, 34.914303],\n              [115.251953, 34.906451],\n              [115.239019, 34.87798],\n              [115.256265, 34.845079],\n              [115.317243, 34.859321],\n              [115.42688, 34.805285],\n              [115.449054, 34.74433],\n              [115.433655, 34.725149],\n              [115.461373, 34.637057],\n              [115.515575, 34.582383],\n              [115.553148, 34.568586],\n              [115.622749, 34.574499],\n              [115.685575, 34.556265],\n              [115.697278, 34.594207],\n              [115.787821, 34.580905],\n              [115.827241, 34.558236],\n              [115.838328, 34.5676],\n              [115.984305, 34.589281],\n              [115.991081, 34.615389],\n              [116.037276, 34.593222],\n              [116.101334, 34.60603],\n              [116.134594, 34.559715],\n              [116.156768, 34.5538],\n              [116.196804, 34.575977],\n              [116.247927, 34.551829],\n              [116.286116, 34.608986],\n              [116.32492, 34.601104],\n              [116.334159, 34.620806],\n              [116.374195, 34.640011]\n            ]\n          ],\n          [\n            [\n              [120.729502, 37.947065],\n              [120.721495, 37.917328],\n              [120.76461, 37.895134],\n              [120.76461, 37.923937],\n              [120.729502, 37.947065]\n            ]\n          ],\n          [\n            [\n              [120.692545, 37.983867],\n              [120.732581, 37.961694],\n              [120.724574, 37.987641],\n              [120.692545, 37.983867]\n            ]\n          ],\n          [\n            [\n              [120.990044, 36.413239],\n              [120.978341, 36.428649],\n              [120.950624, 36.414684],\n              [120.990044, 36.413239]\n            ]\n          ],\n          [\n            [\n              [120.750444, 38.150188],\n              [120.7874, 38.158658],\n              [120.742436, 38.199116],\n              [120.750444, 38.150188]\n            ]\n          ],\n          [\n            [\n              [120.918595, 38.345236],\n              [120.914899, 38.373393],\n              [120.895189, 38.36307],\n              [120.918595, 38.345236]\n            ]\n          ],\n          [\n            [\n              [120.159142, 35.765198],\n              [120.169613, 35.740428],\n              [120.193019, 35.756942],\n              [120.172077, 35.785591],\n              [120.159142, 35.765198]\n            ]\n          ],\n          [\n            [\n              [120.62664, 37.94565],\n              [120.631567, 37.981037],\n              [120.602002, 37.978678],\n              [120.62664, 37.94565]\n            ]\n          ],\n          [\n            [\n              [120.802183, 38.284193],\n              [120.848378, 38.305799],\n              [120.816349, 38.318008],\n              [120.802183, 38.284193]\n            ]\n          ],\n          [\n            [\n              [121.489571, 37.577086],\n              [121.489571, 37.577561],\n              [121.489571, 37.578509],\n              [121.488955, 37.578035],\n              [121.489571, 37.577086]\n            ]\n          ],\n          [\n            [\n              [121.485875, 37.578509],\n              [121.487723, 37.578035],\n              [121.487723, 37.578509],\n              [121.485875, 37.578509]\n            ]\n          ],\n          [\n            [\n              [121.487723, 37.578509],\n              [121.487723, 37.577561],\n              [121.488955, 37.578035],\n              [121.488955, 37.578509],\n              [121.488339, 37.578509],\n              [121.487723, 37.578509]\n            ]\n          ],\n          [\n            [\n              [115.495249, 35.896203],\n              [115.487858, 35.880688],\n              [115.513112, 35.890385],\n              [115.505104, 35.899112],\n              [115.495249, 35.896203]\n            ]\n          ]\n        ]\n      }\n    },\n    {\n      \"type\": \"Feature\",\n      \"properties\": {\n        \"adcode\": 410000,\n        \"name\": \"河南省\",\n        \"center\": [113.665412, 34.757975],\n        \"centroid\": [113.619717, 33.902648],\n        \"childrenNum\": 18,\n        \"level\": \"province\",\n        \"parent\": { \"adcode\": 100000 },\n        \"subFeatureIndex\": 15,\n        \"acroutes\": [100000]\n      },\n      \"geometry\": {\n        \"type\": \"MultiPolygon\",\n        \"coordinates\": [\n          [\n            [\n              [112.716747, 32.357612],\n              [112.735841, 32.356095],\n              [112.776493, 32.358623],\n              [112.860877, 32.396024],\n              [112.888594, 32.37682],\n              [112.912, 32.390971],\n              [112.992072, 32.378336],\n              [113.000695, 32.41674],\n              [113.025949, 32.425328],\n              [113.078919, 32.394508],\n              [113.107869, 32.398551],\n              [113.118956, 32.375809],\n              [113.155912, 32.380863],\n              [113.158992, 32.410677],\n              [113.211962, 32.431895],\n              [113.2366, 32.407141],\n              [113.333918, 32.336377],\n              [113.317904, 32.327275],\n              [113.353628, 32.294904],\n              [113.376418, 32.298445],\n              [113.428773, 32.270618],\n              [113.511925, 32.316654],\n              [113.624642, 32.36115],\n              [113.650511, 32.412698],\n              [113.700402, 32.420782],\n              [113.735511, 32.410677],\n              [113.76754, 32.370249],\n              [113.753989, 32.328286],\n              [113.768772, 32.30148],\n              [113.768156, 32.284279],\n              [113.758301, 32.27669],\n              [113.749061, 32.272642],\n              [113.73859, 32.255942],\n              [113.752757, 32.215951],\n              [113.782322, 32.184553],\n              [113.750293, 32.11615],\n              [113.722576, 32.12426],\n              [113.728735, 32.083197],\n              [113.791561, 32.036028],\n              [113.757685, 31.98985],\n              [113.817431, 31.964467],\n              [113.805728, 31.929428],\n              [113.832213, 31.918761],\n              [113.830981, 31.87913],\n              [113.854387, 31.843042],\n              [113.893807, 31.847109],\n              [113.914749, 31.877098],\n              [113.957865, 31.852701],\n              [113.952321, 31.793714],\n              [113.988662, 31.749959],\n              [114.017611, 31.770822],\n              [114.086596, 31.782014],\n              [114.121705, 31.809482],\n              [114.134024, 31.843042],\n              [114.191922, 31.852192],\n              [114.235654, 31.833382],\n              [114.292936, 31.752503],\n              [114.350218, 31.755557],\n              [114.403189, 31.746906],\n              [114.443841, 31.728074],\n              [114.530688, 31.742834],\n              [114.549783, 31.766751],\n              [114.586123, 31.762172],\n              [114.57134, 31.660858],\n              [114.547935, 31.623665],\n              [114.560869, 31.560963],\n              [114.572572, 31.553824],\n              [114.61692, 31.585437],\n              [114.641558, 31.582378],\n              [114.696376, 31.525771],\n              [114.778912, 31.520669],\n              [114.789383, 31.480358],\n              [114.830035, 31.45892],\n              [114.870071, 31.479337],\n              [114.884238, 31.469129],\n              [114.962462, 31.494648],\n              [114.995107, 31.471171],\n              [115.022824, 31.527811],\n              [115.096121, 31.508425],\n              [115.114599, 31.530362],\n              [115.106592, 31.567592],\n              [115.12507, 31.599201],\n              [115.16449, 31.604808],\n              [115.212533, 31.555354],\n              [115.235939, 31.555354],\n              [115.218077, 31.515057],\n              [115.211301, 31.442072],\n              [115.252569, 31.421646],\n              [115.250722, 31.392021],\n              [115.301229, 31.383846],\n              [115.338801, 31.40428],\n              [115.373909, 31.405813],\n              [115.389924, 31.450241],\n              [115.371446, 31.495668],\n              [115.415793, 31.525771],\n              [115.439815, 31.588496],\n              [115.485394, 31.608885],\n              [115.476771, 31.643028],\n              [115.495249, 31.673083],\n              [115.534054, 31.698545],\n              [115.553764, 31.69549],\n              [115.676336, 31.778453],\n              [115.731154, 31.76726],\n              [115.767495, 31.78761],\n              [115.808147, 31.770313],\n              [115.808147, 31.770313],\n              [115.851878, 31.786593],\n              [115.886371, 31.776418],\n              [115.914704, 31.814567],\n              [115.893762, 31.832365],\n              [115.894994, 31.8649],\n              [115.920248, 31.920285],\n              [115.909161, 31.94314],\n              [115.928871, 32.003046],\n              [115.922095, 32.049725],\n              [115.941805, 32.166318],\n              [115.912856, 32.227596],\n              [115.899306, 32.390971],\n              [115.865429, 32.458662],\n              [115.883291, 32.487946],\n              [115.845719, 32.501575],\n              [115.8759, 32.542448],\n              [115.910393, 32.567165],\n              [115.891298, 32.576243],\n              [115.861117, 32.537403],\n              [115.789052, 32.468761],\n              [115.771806, 32.505108],\n              [115.742241, 32.476335],\n              [115.704669, 32.495013],\n              [115.667712, 32.409667],\n              [115.657857, 32.428864],\n              [115.626445, 32.40512],\n              [115.604271, 32.425833],\n              [115.57101, 32.419266],\n              [115.522967, 32.441997],\n              [115.509416, 32.466741],\n              [115.5088, 32.468761],\n              [115.497713, 32.492489],\n              [115.409018, 32.549007],\n              [115.411482, 32.575235],\n              [115.304924, 32.553042],\n              [115.30554, 32.583303],\n              [115.267352, 32.578261],\n              [115.24333, 32.593388],\n              [115.20083, 32.591876],\n              [115.182968, 32.666973],\n              [115.179273, 32.726402],\n              [115.189744, 32.770695],\n              [115.211301, 32.785791],\n              [115.189744, 32.812452],\n              [115.197135, 32.856201],\n              [115.155867, 32.864747],\n              [115.139237, 32.897917],\n              [115.029599, 32.906962],\n              [115.035143, 32.932582],\n              [115.009273, 32.940117],\n              [114.943368, 32.935094],\n              [114.916266, 32.971251],\n              [114.883006, 32.990328],\n              [114.891629, 33.020441],\n              [114.925506, 33.016928],\n              [114.913187, 33.083143],\n              [114.897172, 33.086653],\n              [114.902716, 33.129764],\n              [114.932897, 33.153817],\n              [114.966158, 33.147304],\n              [114.990795, 33.102195],\n              [115.041302, 33.086653],\n              [115.168186, 33.088658],\n              [115.194671, 33.120743],\n              [115.245178, 33.135778],\n              [115.289526, 33.131769],\n              [115.303692, 33.149809],\n              [115.300613, 33.204407],\n              [115.340033, 33.260973],\n              [115.335105, 33.297997],\n              [115.361591, 33.298497],\n              [115.365286, 33.336005],\n              [115.341881, 33.370997],\n              [115.313547, 33.376994],\n              [115.328946, 33.403477],\n              [115.315395, 33.431451],\n              [115.324634, 33.457418],\n              [115.345576, 33.449928],\n              [115.345576, 33.502842],\n              [115.366518, 33.5233],\n              [115.394851, 33.506335],\n              [115.422569, 33.557219],\n              [115.463837, 33.567193],\n              [115.511264, 33.55323],\n              [115.564851, 33.576169],\n              [115.639995, 33.585143],\n              [115.601191, 33.658898],\n              [115.601807, 33.718653],\n              [115.563003, 33.772895],\n              [115.576553, 33.787817],\n              [115.614126, 33.775879],\n              [115.631988, 33.869846],\n              [115.547604, 33.874815],\n              [115.577785, 33.950307],\n              [115.579017, 33.974133],\n              [115.60735, 34.030196],\n              [115.642459, 34.03218],\n              [115.658473, 34.061437],\n              [115.705901, 34.059949],\n              [115.736082, 34.076805],\n              [115.768726, 34.061932],\n              [115.809378, 34.062428],\n              [115.846335, 34.028708],\n              [115.85003, 34.004898],\n              [115.877132, 34.002913],\n              [115.876516, 34.028708],\n              [115.904233, 34.009859],\n              [115.95782, 34.007875],\n              [116.00032, 33.965199],\n              [115.982457, 33.917039],\n              [116.05945, 33.860902],\n              [116.055754, 33.804727],\n              [116.074232, 33.781351],\n              [116.100102, 33.782843],\n              [116.132747, 33.751501],\n              [116.155536, 33.709693],\n              [116.230065, 33.735078],\n              [116.263326, 33.730101],\n              [116.316912, 33.771402],\n              [116.393905, 33.782843],\n              [116.408071, 33.805721],\n              [116.437021, 33.801246],\n              [116.437637, 33.846489],\n              [116.486296, 33.869846],\n              [116.558361, 33.881274],\n              [116.566984, 33.9081],\n              [116.631042, 33.887733],\n              [116.64336, 33.896675],\n              [116.641512, 33.978103],\n              [116.599629, 34.014324],\n              [116.599629, 34.014324],\n              [116.576223, 34.068873],\n              [116.576223, 34.068873],\n              [116.52818, 34.122892],\n              [116.536187, 34.151127],\n              [116.565752, 34.16945],\n              [116.542962, 34.203608],\n              [116.545426, 34.241711],\n              [116.582382, 34.266444],\n              [116.562056, 34.285731],\n              [116.516477, 34.296114],\n              [116.456731, 34.268917],\n              [116.409303, 34.273863],\n              [116.409303, 34.273863],\n              [116.372347, 34.26595],\n              [116.357564, 34.319843],\n              [116.301514, 34.342082],\n              [116.255934, 34.376665],\n              [116.213435, 34.382098],\n              [116.215898, 34.403333],\n              [116.178942, 34.430487],\n              [116.162312, 34.459605],\n              [116.178326, 34.496112],\n              [116.204196, 34.508442],\n              [116.191261, 34.535561],\n              [116.196804, 34.575977],\n              [116.156768, 34.5538],\n              [116.134594, 34.559715],\n              [116.101334, 34.60603],\n              [116.037276, 34.593222],\n              [115.991081, 34.615389],\n              [115.984305, 34.589281],\n              [115.838328, 34.5676],\n              [115.827241, 34.558236],\n              [115.787821, 34.580905],\n              [115.697278, 34.594207],\n              [115.685575, 34.556265],\n              [115.622749, 34.574499],\n              [115.553148, 34.568586],\n              [115.515575, 34.582383],\n              [115.461373, 34.637057],\n              [115.433655, 34.725149],\n              [115.449054, 34.74433],\n              [115.42688, 34.805285],\n              [115.317243, 34.859321],\n              [115.256265, 34.845079],\n              [115.239019, 34.87798],\n              [115.251953, 34.906451],\n              [115.205142, 34.914303],\n              [115.219309, 34.96042],\n              [115.157099, 34.957968],\n              [115.12815, 35.00455],\n              [115.075179, 35.000628],\n              [115.028983, 34.9717],\n              [115.008041, 34.988372],\n              [114.950759, 34.989843],\n              [114.923658, 34.968757],\n              [114.880542, 35.00357],\n              [114.824492, 35.012393],\n              [114.852209, 35.041797],\n              [114.818948, 35.051596],\n              [114.835578, 35.076578],\n              [114.883006, 35.098615],\n              [114.841738, 35.15099],\n              [114.861448, 35.182301],\n              [114.932281, 35.198441],\n              [114.929201, 35.244886],\n              [114.957534, 35.261014],\n              [115.04315, 35.376744],\n              [115.073947, 35.374304],\n              [115.091809, 35.416259],\n              [115.117679, 35.400163],\n              [115.126302, 35.41821],\n              [115.172497, 35.426501],\n              [115.237171, 35.423087],\n              [115.307388, 35.480126],\n              [115.356047, 35.490359],\n              [115.34496, 35.55368],\n              [115.383148, 35.568772],\n              [115.48601, 35.710306],\n              [115.52851, 35.733628],\n              [115.622749, 35.739457],\n              [115.693582, 35.754028],\n              [115.696046, 35.788989],\n              [115.73485, 35.833154],\n              [115.773654, 35.854014],\n              [115.81677, 35.844312],\n              [115.859886, 35.857894],\n              [115.882675, 35.879718],\n              [115.873436, 35.918985],\n              [115.907929, 35.92674],\n              [115.911624, 35.960171],\n              [115.984921, 35.974218],\n              [116.048979, 35.970343],\n              [116.063145, 36.028927],\n              [116.099486, 36.112129],\n              [116.057602, 36.104877],\n              [115.989849, 36.045381],\n              [115.89869, 36.026507],\n              [115.859886, 36.003756],\n              [115.817386, 36.012954],\n              [115.779813, 35.993588],\n              [115.774886, 35.974702],\n              [115.699125, 35.966468],\n              [115.648618, 35.922863],\n              [115.583945, 35.921893],\n              [115.513112, 35.890385],\n              [115.487858, 35.880688],\n              [115.460141, 35.867594],\n              [115.407786, 35.80889],\n              [115.363438, 35.779765],\n              [115.335105, 35.796756],\n              [115.364054, 35.894264],\n              [115.353583, 35.938854],\n              [115.362822, 35.971796],\n              [115.447822, 36.01247],\n              [115.449054, 36.047317],\n              [115.484163, 36.125666],\n              [115.483547, 36.148865],\n              [115.465068, 36.170125],\n              [115.450902, 36.152248],\n              [115.376989, 36.128083],\n              [115.365902, 36.099074],\n              [115.312931, 36.088436],\n              [115.30246, 36.127599],\n              [115.279055, 36.13775],\n              [115.242098, 36.19138],\n              [115.202678, 36.208765],\n              [115.202678, 36.208765],\n              [115.202678, 36.209248],\n              [115.202678, 36.209248],\n              [115.201446, 36.210214],\n              [115.201446, 36.210214],\n              [115.1842, 36.193312],\n              [115.12507, 36.209731],\n              [115.104744, 36.172058],\n              [115.06286, 36.178338],\n              [115.048693, 36.161912],\n              [115.04623, 36.112613],\n              [114.998186, 36.069572],\n              [114.914419, 36.052155],\n              [114.926737, 36.089403],\n              [114.912571, 36.140649],\n              [114.858368, 36.144516],\n              [114.857752, 36.127599],\n              [114.771521, 36.124699],\n              [114.734564, 36.15563],\n              [114.720398, 36.140166],\n              [114.640326, 36.137266],\n              [114.588587, 36.118414],\n              [114.586739, 36.141133],\n              [114.533152, 36.171575],\n              [114.480181, 36.177855],\n              [114.466015, 36.197658],\n              [114.417356, 36.205868],\n              [114.408117, 36.224699],\n              [114.356378, 36.230492],\n              [114.345291, 36.255591],\n              [114.299095, 36.245938],\n              [114.257827, 36.263794],\n              [114.241197, 36.251247],\n              [114.2104, 36.272962],\n              [114.203009, 36.245456],\n              [114.170364, 36.245938],\n              [114.170364, 36.245938],\n              [114.175907, 36.264759],\n              [114.129096, 36.280199],\n              [114.080437, 36.269585],\n              [114.04348, 36.303353],\n              [114.056415, 36.329392],\n              [114.002828, 36.334214],\n              [113.981887, 36.31782],\n              [113.962792, 36.353977],\n              [113.911054, 36.314927],\n              [113.882104, 36.353977],\n              [113.84946, 36.347711],\n              [113.856851, 36.329392],\n              [113.813119, 36.332285],\n              [113.755221, 36.366026],\n              [113.731199, 36.363135],\n              [113.736127, 36.324571],\n              [113.712105, 36.303353],\n              [113.716417, 36.262347],\n              [113.681924, 36.216491],\n              [113.697939, 36.181719],\n              [113.651127, 36.174473],\n              [113.705946, 36.148865],\n              [113.712721, 36.129533],\n              [113.655439, 36.125182],\n              [113.671453, 36.115514],\n              [113.68562, 36.056026],\n              [113.660366, 36.034735],\n              [113.694859, 36.026991],\n              [113.678844, 35.985841],\n              [113.648663, 35.994073],\n              [113.654207, 35.931586],\n              [113.637576, 35.870019],\n              [113.660982, 35.837035],\n              [113.582758, 35.818111],\n              [113.604932, 35.797727],\n              [113.587685, 35.736542],\n              [113.592613, 35.691838],\n              [113.622794, 35.674825],\n              [113.625258, 35.632518],\n              [113.578446, 35.633491],\n              [113.547649, 35.656835],\n              [113.55812, 35.621816],\n              [113.513773, 35.57364],\n              [113.49899, 35.532254],\n              [113.439244, 35.507412],\n              [113.391817, 35.506925],\n              [113.348085, 35.468429],\n              [113.31236, 35.481101],\n              [113.304353, 35.426989],\n              [113.243375, 35.449418],\n              [113.189789, 35.44893],\n              [113.185477, 35.409431],\n              [113.165151, 35.412845],\n              [113.149137, 35.350878],\n              [113.126347, 35.332327],\n              [113.067217, 35.353806],\n              [112.996384, 35.362104],\n              [112.985913, 35.33965],\n              [112.992072, 35.29619],\n              [112.936022, 35.284466],\n              [112.934174, 35.262968],\n              [112.884283, 35.243909],\n              [112.822073, 35.258082],\n              [112.772798, 35.207732],\n              [112.720443, 35.206265],\n              [112.628052, 35.263457],\n              [112.637291, 35.225822],\n              [112.513487, 35.218489],\n              [112.390915, 35.239021],\n              [112.36751, 35.219956],\n              [112.288053, 35.219956],\n              [112.304684, 35.251728],\n              [112.242474, 35.234622],\n              [112.21722, 35.253195],\n              [112.13838, 35.271275],\n              [112.058924, 35.280069],\n              [112.078634, 35.219467],\n              [112.03983, 35.194039],\n              [112.066315, 35.153437],\n              [112.05646, 35.098615],\n              [112.062004, 35.056005],\n              [112.039214, 35.045717],\n              [112.018888, 35.068742],\n              [111.97762, 35.067272],\n              [111.933272, 35.083435],\n              [111.810084, 35.062374],\n              [111.807005, 35.032977],\n              [111.740483, 35.00455],\n              [111.664107, 34.984449],\n              [111.681969, 34.9511],\n              [111.646861, 34.938836],\n              [111.617911, 34.894671],\n              [111.592042, 34.881416],\n              [111.570484, 34.843114],\n              [111.543999, 34.853428],\n              [111.502731, 34.829851],\n              [111.439289, 34.838202],\n              [111.389398, 34.815113],\n              [111.345666, 34.831816],\n              [111.29208, 34.806759],\n              [111.255123, 34.819535],\n              [111.232949, 34.789559],\n              [111.148566, 34.807742],\n              [111.118385, 34.756623],\n              [111.035233, 34.740887],\n              [110.976103, 34.706456],\n              [110.920052, 34.730068],\n              [110.903422, 34.669056],\n              [110.883712, 34.64395],\n              [110.824582, 34.615881],\n              [110.791937, 34.649858],\n              [110.749437, 34.65232],\n              [110.710017, 34.605045],\n              [110.610851, 34.607508],\n              [110.533242, 34.583368],\n              [110.488279, 34.610956],\n              [110.424837, 34.588295],\n              [110.379257, 34.600612],\n              [110.366939, 34.566614],\n              [110.404511, 34.557743],\n              [110.372482, 34.544435],\n              [110.360779, 34.516825],\n              [110.403279, 34.433448],\n              [110.403279, 34.433448],\n              [110.473496, 34.393457],\n              [110.503677, 34.33714],\n              [110.451938, 34.292653],\n              [110.428533, 34.288203],\n              [110.43962, 34.243196],\n              [110.507989, 34.217466],\n              [110.55172, 34.213012],\n              [110.55788, 34.193214],\n              [110.621938, 34.177372],\n              [110.642264, 34.161032],\n              [110.61393, 34.113478],\n              [110.591757, 34.101586],\n              [110.587445, 34.023252],\n              [110.620706, 34.035652],\n              [110.671213, 33.966192],\n              [110.665669, 33.937895],\n              [110.627481, 33.925482],\n              [110.628713, 33.910086],\n              [110.587445, 33.887733],\n              [110.612083, 33.852453],\n              [110.66259, 33.85295],\n              [110.712481, 33.833564],\n              [110.74143, 33.798759],\n              [110.782082, 33.796272],\n              [110.81719, 33.751003],\n              [110.831973, 33.713675],\n              [110.823966, 33.685793],\n              [110.878784, 33.634486],\n              [110.966864, 33.609071],\n              [111.00382, 33.578662],\n              [111.002588, 33.535772],\n              [111.02661, 33.478386],\n              [111.02661, 33.467903],\n              [110.996429, 33.435946],\n              [111.025994, 33.375495],\n              [111.025994, 33.330504],\n              [110.984726, 33.255469],\n              [111.046936, 33.202905],\n              [111.045704, 33.169849],\n              [111.08882, 33.181871],\n              [111.12824, 33.15532],\n              [111.146102, 33.12375],\n              [111.179363, 33.115229],\n              [111.192913, 33.071609],\n              [111.152877, 33.039507],\n              [111.221862, 33.042517],\n              [111.258819, 33.006389],\n              [111.273601, 32.971753],\n              [111.242804, 32.930573],\n              [111.255123, 32.883846],\n              [111.276065, 32.903445],\n              [111.293311, 32.859217],\n              [111.380159, 32.829049],\n              [111.41342, 32.757108],\n              [111.475629, 32.760127],\n              [111.458383, 32.726402],\n              [111.513202, 32.674026],\n              [111.530448, 32.628172],\n              [111.577875, 32.593388],\n              [111.640701, 32.634724],\n              [111.646245, 32.605993],\n              [111.713382, 32.606497],\n              [111.808853, 32.536899],\n              [111.858128, 32.528826],\n              [111.890157, 32.503089],\n              [111.948671, 32.51722],\n              [111.975772, 32.471791],\n              [112.014576, 32.450077],\n              [112.063851, 32.474315],\n              [112.081098, 32.425833],\n              [112.155626, 32.377326],\n              [112.150083, 32.411688],\n              [112.172873, 32.385412],\n              [112.206133, 32.392992],\n              [112.328089, 32.321712],\n              [112.360118, 32.3657],\n              [112.390915, 32.37126],\n              [112.448814, 32.34295],\n              [112.477147, 32.380863],\n              [112.530733, 32.37682],\n              [112.545516, 32.404109],\n              [112.589248, 32.381369],\n              [112.612037, 32.386928],\n              [112.645298, 32.368227],\n              [112.716747, 32.357612]\n            ]\n          ],\n          [\n            [\n              [113.768156, 32.284279],\n              [113.768772, 32.30148],\n              [113.749061, 32.272642],\n              [113.758301, 32.27669],\n              [113.768156, 32.284279]\n            ]\n          ]\n        ]\n      }\n    },\n    {\n      \"type\": \"Feature\",\n      \"properties\": {\n        \"adcode\": 420000,\n        \"name\": \"湖北省\",\n        \"center\": [114.298572, 30.584355],\n        \"centroid\": [112.271301, 30.987527],\n        \"childrenNum\": 17,\n        \"level\": \"province\",\n        \"parent\": { \"adcode\": 100000 },\n        \"subFeatureIndex\": 16,\n        \"acroutes\": [100000]\n      },\n      \"geometry\": {\n        \"type\": \"MultiPolygon\",\n        \"coordinates\": [\n          [\n            [\n              [111.045704, 33.169849],\n              [111.034001, 33.177864],\n              [111.035849, 33.187881],\n              [111.046936, 33.202905],\n              [110.984726, 33.255469],\n              [110.960704, 33.253967],\n              [110.9219, 33.203907],\n              [110.865234, 33.213921],\n              [110.828893, 33.201403],\n              [110.824582, 33.158327],\n              [110.753133, 33.15031],\n              [110.702626, 33.097182],\n              [110.650887, 33.157324],\n              [110.623785, 33.143796],\n              [110.59422, 33.168346],\n              [110.57759, 33.250464],\n              [110.54125, 33.255469],\n              [110.471032, 33.171352],\n              [110.398352, 33.176862],\n              [110.398352, 33.176862],\n              [110.372482, 33.186379],\n              [110.33799, 33.160331],\n              [110.285635, 33.171352],\n              [110.218497, 33.163336],\n              [110.164911, 33.209415],\n              [110.031252, 33.191888],\n              [109.999223, 33.212419],\n              [109.973353, 33.203907],\n              [109.916687, 33.229942],\n              [109.852013, 33.247961],\n              [109.813209, 33.236449],\n              [109.732521, 33.231443],\n              [109.693101, 33.254468],\n              [109.649985, 33.251465],\n              [109.619804, 33.275484],\n              [109.60687, 33.235949],\n              [109.514479, 33.237951],\n              [109.498464, 33.207412],\n              [109.438718, 33.152314],\n              [109.468283, 33.140288],\n              [109.522486, 33.138785],\n              [109.576073, 33.110216],\n              [109.688174, 33.116733],\n              [109.704188, 33.101694],\n              [109.794731, 33.067095],\n              [109.785492, 32.987316],\n              [109.76455, 32.909474],\n              [109.789804, 32.882339],\n              [109.847702, 32.893395],\n              [109.856941, 32.910479],\n              [109.907448, 32.903947],\n              [109.927158, 32.887364],\n              [109.988752, 32.886359],\n              [110.051578, 32.851676],\n              [110.105164, 32.832569],\n              [110.142121, 32.802895],\n              [110.127338, 32.77774],\n              [110.159367, 32.767173],\n              [110.156903, 32.683093],\n              [110.206179, 32.633212],\n              [110.153824, 32.593388],\n              [110.124259, 32.616579],\n              [110.090382, 32.617083],\n              [110.084223, 32.580782],\n              [110.017701, 32.546989],\n              [109.97089, 32.577756],\n              [109.910528, 32.592884],\n              [109.816905, 32.577252],\n              [109.746072, 32.594901],\n              [109.726978, 32.608513],\n              [109.631507, 32.599943],\n              [109.619804, 32.56767],\n              [109.637051, 32.540935],\n              [109.575457, 32.506622],\n              [109.526797, 32.43341],\n              [109.529877, 32.405625],\n              [109.502776, 32.38895],\n              [109.513247, 32.342444],\n              [109.495385, 32.300468],\n              [109.528645, 32.270112],\n              [109.550203, 32.225065],\n              [109.592703, 32.219495],\n              [109.604406, 32.199241],\n              [109.58716, 32.161251],\n              [109.621652, 32.106519],\n              [109.590855, 32.047696],\n              [109.590855, 32.012688],\n              [109.631507, 31.962436],\n              [109.62042, 31.928412],\n              [109.584696, 31.900472],\n              [109.60379, 31.885737],\n              [109.633971, 31.824738],\n              [109.633971, 31.804396],\n              [109.592087, 31.789136],\n              [109.585928, 31.726546],\n              [109.622268, 31.711783],\n              [109.683246, 31.719929],\n              [109.731289, 31.700582],\n              [109.737449, 31.628761],\n              [109.76455, 31.602769],\n              [109.745456, 31.598182],\n              [109.727594, 31.548214],\n              [109.837847, 31.555354],\n              [109.894513, 31.519139],\n              [109.969658, 31.508935],\n              [109.94502, 31.47066],\n              [109.98752, 31.474744],\n              [110.036795, 31.436966],\n              [110.054042, 31.410921],\n              [110.118715, 31.409899],\n              [110.161831, 31.314338],\n              [110.155671, 31.279564],\n              [110.180309, 31.179774],\n              [110.200019, 31.158779],\n              [110.180309, 31.121899],\n              [110.147048, 31.116776],\n              [110.119947, 31.088592],\n              [110.120563, 31.0322],\n              [110.140273, 31.030661],\n              [110.140889, 30.987062],\n              [110.172918, 30.978853],\n              [110.153824, 30.953708],\n              [110.151976, 30.911613],\n              [110.082375, 30.799614],\n              [110.048498, 30.800642],\n              [110.019549, 30.829425],\n              [110.008462, 30.883369],\n              [109.943788, 30.878746],\n              [109.894513, 30.899803],\n              [109.828608, 30.864364],\n              [109.780564, 30.848437],\n              [109.701724, 30.783677],\n              [109.656761, 30.760538],\n              [109.661072, 30.738936],\n              [109.625348, 30.702923],\n              [109.590855, 30.69366],\n              [109.574225, 30.646818],\n              [109.543428, 30.63961],\n              [109.535421, 30.664837],\n              [109.435638, 30.595832],\n              [109.418392, 30.559766],\n              [109.35495, 30.487076],\n              [109.337088, 30.521623],\n              [109.36111, 30.551004],\n              [109.314298, 30.599953],\n              [109.299516, 30.630341],\n              [109.245313, 30.580892],\n              [109.191726, 30.545851],\n              [109.191726, 30.545851],\n              [109.143683, 30.521108],\n              [109.103647, 30.565949],\n              [109.09256, 30.578831],\n              [109.106111, 30.61077],\n              [109.111654, 30.646303],\n              [109.071002, 30.640125],\n              [109.042669, 30.655571],\n              [109.006329, 30.626736],\n              [108.971836, 30.627766],\n              [108.893612, 30.565434],\n              [108.838793, 30.503062],\n              [108.808612, 30.491202],\n              [108.789518, 30.513374],\n              [108.743939, 30.494812],\n              [108.698975, 30.54482],\n              [108.688504, 30.58759],\n              [108.642925, 30.578831],\n              [108.6497, 30.53915],\n              [108.56778, 30.468508],\n              [108.556077, 30.487592],\n              [108.512961, 30.501515],\n              [108.472925, 30.487076],\n              [108.42673, 30.492233],\n              [108.411331, 30.438586],\n              [108.430425, 30.416397],\n              [108.402092, 30.376649],\n              [108.431041, 30.354446],\n              [108.460606, 30.35961],\n              [108.501258, 30.314673],\n              [108.524048, 30.309506],\n              [108.54499, 30.269716],\n              [108.581947, 30.255759],\n              [108.551766, 30.1637],\n              [108.56778, 30.157491],\n              [108.546222, 30.104178],\n              [108.513577, 30.057571],\n              [108.532055, 30.051873],\n              [108.536367, 29.983472],\n              [108.517889, 29.9394],\n              [108.516041, 29.885451],\n              [108.467998, 29.864175],\n              [108.433505, 29.880262],\n              [108.371295, 29.841337],\n              [108.424266, 29.815897],\n              [108.422418, 29.772791],\n              [108.442744, 29.778505],\n              [108.437201, 29.741098],\n              [108.460606, 29.741098],\n              [108.504338, 29.707836],\n              [108.504954, 29.728626],\n              [108.548686, 29.749412],\n              [108.52528, 29.770713],\n              [108.556077, 29.818493],\n              [108.601041, 29.863656],\n              [108.658939, 29.854833],\n              [108.680497, 29.800319],\n              [108.676801, 29.749412],\n              [108.690968, 29.689642],\n              [108.752562, 29.649082],\n              [108.786438, 29.691721],\n              [108.797525, 29.660003],\n              [108.781511, 29.635558],\n              [108.844337, 29.658443],\n              [108.888068, 29.628795],\n              [108.870206, 29.596537],\n              [108.901003, 29.604863],\n              [108.913322, 29.574679],\n              [108.878213, 29.539279],\n              [108.888684, 29.502305],\n              [108.866511, 29.470527],\n              [108.884373, 29.440824],\n              [108.927488, 29.435612],\n              [108.934264, 29.399643],\n              [108.919481, 29.3261],\n              [108.983539, 29.332883],\n              [108.999553, 29.36366],\n              [109.034662, 29.360531],\n              [109.060531, 29.403292],\n              [109.11227, 29.361053],\n              [109.106727, 29.288526],\n              [109.141835, 29.270256],\n              [109.110422, 29.21647],\n              [109.139372, 29.168927],\n              [109.162777, 29.180946],\n              [109.215748, 29.145409],\n              [109.232378, 29.119271],\n              [109.274262, 29.121885],\n              [109.261328, 29.161089],\n              [109.275494, 29.202366],\n              [109.257632, 29.222738],\n              [109.312451, 29.25146],\n              [109.352487, 29.284872],\n              [109.343863, 29.369398],\n              [109.391291, 29.372005],\n              [109.368501, 29.413719],\n              [109.418392, 29.453332],\n              [109.415928, 29.497617],\n              [109.436254, 29.488761],\n              [109.433791, 29.530948],\n              [109.458428, 29.513242],\n              [109.467051, 29.560104],\n              [109.488609, 29.553336],\n              [109.516326, 29.626194],\n              [109.558826, 29.606944],\n              [109.578536, 29.629836],\n              [109.651833, 29.625674],\n              [109.664768, 29.599659],\n              [109.717739, 29.615269],\n              [109.701108, 29.636078],\n              [109.714659, 29.673524],\n              [109.760238, 29.689122],\n              [109.755311, 29.733304],\n              [109.779333, 29.757725],\n              [109.869876, 29.774869],\n              [109.908064, 29.763959],\n              [109.941325, 29.774349],\n              [110.02386, 29.769674],\n              [110.113788, 29.789932],\n              [110.160599, 29.753569],\n              [110.219729, 29.746814],\n              [110.289946, 29.6964],\n              [110.302265, 29.661563],\n              [110.339221, 29.668324],\n              [110.372482, 29.633477],\n              [110.447011, 29.664684],\n              [110.467337, 29.713034],\n              [110.507373, 29.692241],\n              [110.562807, 29.712515],\n              [110.642879, 29.775907],\n              [110.60038, 29.839779],\n              [110.549873, 29.848085],\n              [110.538786, 29.895828],\n              [110.49875, 29.91243],\n              [110.517228, 29.961179],\n              [110.557264, 29.988137],\n              [110.491358, 30.019751],\n              [110.497518, 30.055499],\n              [110.531394, 30.061197],\n              [110.600996, 30.054463],\n              [110.650887, 30.07777],\n              [110.712481, 30.033223],\n              [110.756212, 30.054463],\n              [110.746973, 30.112979],\n              [110.851067, 30.126439],\n              [110.924364, 30.111426],\n              [110.929907, 30.063268],\n              [111.031537, 30.048765],\n              [111.242188, 30.040476],\n              [111.266826, 30.01146],\n              [111.3315, 29.970512],\n              [111.342587, 29.944586],\n              [111.382623, 29.95029],\n              [111.394325, 29.912948],\n              [111.436825, 29.930065],\n              [111.475629, 29.918654],\n              [111.527368, 29.925916],\n              [111.553854, 29.894272],\n              [111.669034, 29.888565],\n              [111.669034, 29.888565],\n              [111.705375, 29.890121],\n              [111.723853, 29.909317],\n              [111.723853, 29.909317],\n              [111.75773, 29.92021],\n              [111.8107, 29.901017],\n              [111.861207, 29.856909],\n              [111.899396, 29.855871],\n              [111.899396, 29.855871],\n              [111.925881, 29.836665],\n              [111.965917, 29.832512],\n              [111.95483, 29.796683],\n              [112.008417, 29.778505],\n              [112.07617, 29.743696],\n              [112.065699, 29.681323],\n              [112.089721, 29.685482],\n              [112.111279, 29.659483],\n              [112.178416, 29.656883],\n              [112.202438, 29.633997],\n              [112.244322, 29.659483],\n              [112.233851, 29.61631],\n              [112.303452, 29.585609],\n              [112.281278, 29.536676],\n              [112.291133, 29.517409],\n              [112.333017, 29.545007],\n              [112.368741, 29.541362],\n              [112.424792, 29.598619],\n              [112.439574, 29.633997],\n              [112.499321, 29.629316],\n              [112.54182, 29.60122],\n              [112.572001, 29.624113],\n              [112.640371, 29.607985],\n              [112.650842, 29.592374],\n              [112.693957, 29.601741],\n              [112.714283, 29.648561],\n              [112.733378, 29.645441],\n              [112.788812, 29.681323],\n              [112.79374, 29.735902],\n              [112.861493, 29.78318],\n              [112.894138, 29.783699],\n              [112.902145, 29.79149],\n              [112.929246, 29.77383],\n              [112.923703, 29.766557],\n              [112.926782, 29.692241],\n              [112.944645, 29.682883],\n              [112.974826, 29.732784],\n              [113.025949, 29.772791],\n              [113.005007, 29.693801],\n              [112.915696, 29.620992],\n              [112.912, 29.606944],\n              [112.950188, 29.473132],\n              [113.034572, 29.523658],\n              [113.057362, 29.522616],\n              [113.078304, 29.438218],\n              [113.099861, 29.459585],\n              [113.145441, 29.449163],\n              [113.181781, 29.485636],\n              [113.222433, 29.543965],\n              [113.277252, 29.594976],\n              [113.37765, 29.703158],\n              [113.571671, 29.849123],\n              [113.575367, 29.809147],\n              [113.550729, 29.768115],\n              [113.558736, 29.727067],\n              [113.540258, 29.699519],\n              [113.547033, 29.675603],\n              [113.606164, 29.666764],\n              [113.663446, 29.684443],\n              [113.680692, 29.64336],\n              [113.704098, 29.634518],\n              [113.73859, 29.579363],\n              [113.710257, 29.555419],\n              [113.630801, 29.523137],\n              [113.677613, 29.513763],\n              [113.755221, 29.446557],\n              [113.731199, 29.393907],\n              [113.674533, 29.388172],\n              [113.660982, 29.333405],\n              [113.632033, 29.316186],\n              [113.609859, 29.25146],\n              [113.651743, 29.225872],\n              [113.693011, 29.226394],\n              [113.691779, 29.19662],\n              [113.66283, 29.16945],\n              [113.690547, 29.114566],\n              [113.696091, 29.077437],\n              [113.722576, 29.104631],\n              [113.749677, 29.060699],\n              [113.775547, 29.095219],\n              [113.816199, 29.105154],\n              [113.852539, 29.058606],\n              [113.882104, 29.065407],\n              [113.876561, 29.038202],\n              [113.898119, 29.029307],\n              [113.94185, 29.047097],\n              [113.952321, 29.092604],\n              [113.98743, 29.126068],\n              [114.034857, 29.152204],\n              [114.063191, 29.204978],\n              [114.169748, 29.216993],\n              [114.252284, 29.23475],\n              [114.259059, 29.343839],\n              [114.307102, 29.365225],\n              [114.341595, 29.327665],\n              [114.376088, 29.322969],\n              [114.440145, 29.341752],\n              [114.466015, 29.324013],\n              [114.519602, 29.325578],\n              [114.589819, 29.352707],\n              [114.621847, 29.379828],\n              [114.67297, 29.395993],\n              [114.740724, 29.386607],\n              [114.759818, 29.363139],\n              [114.784455, 29.386086],\n              [114.812173, 29.383478],\n              [114.866375, 29.404335],\n              [114.895325, 29.397557],\n              [114.931049, 29.422581],\n              [114.947063, 29.465317],\n              [114.935977, 29.486678],\n              [114.90518, 29.473132],\n              [114.918114, 29.454374],\n              [114.888549, 29.436134],\n              [114.860216, 29.476258],\n              [114.900868, 29.505951],\n              [114.940288, 29.493971],\n              [114.966773, 29.522096],\n              [114.947679, 29.542924],\n              [115.00065, 29.572076],\n              [115.033295, 29.546568],\n              [115.087498, 29.560104],\n              [115.086266, 29.525741],\n              [115.154019, 29.510117],\n              [115.157099, 29.584568],\n              [115.120142, 29.597578],\n              [115.143548, 29.645961],\n              [115.117679, 29.655843],\n              [115.113367, 29.684963],\n              [115.176809, 29.654803],\n              [115.250722, 29.660003],\n              [115.28583, 29.618391],\n              [115.304924, 29.637118],\n              [115.355431, 29.649602],\n              [115.412714, 29.688602],\n              [115.470612, 29.739539],\n              [115.479235, 29.811224],\n              [115.51188, 29.840299],\n              [115.611662, 29.841337],\n              [115.667712, 29.850161],\n              [115.706517, 29.837703],\n              [115.762567, 29.793048],\n              [115.837096, 29.748373],\n              [115.909777, 29.723949],\n              [115.965827, 29.724469],\n              [116.049595, 29.761881],\n              [116.087167, 29.795125],\n              [116.13521, 29.819532],\n              [116.128435, 29.897904],\n              [116.073616, 29.969993],\n              [116.091479, 30.036331],\n              [116.078544, 30.062233],\n              [116.088399, 30.110391],\n              [116.055754, 30.180774],\n              [116.065609, 30.204569],\n              [115.997856, 30.252657],\n              [115.985537, 30.290905],\n              [115.903001, 30.31364],\n              [115.91532, 30.337919],\n              [115.885139, 30.379747],\n              [115.921479, 30.416397],\n              [115.894994, 30.452517],\n              [115.910393, 30.519046],\n              [115.887603, 30.542758],\n              [115.876516, 30.582438],\n              [115.848799, 30.602014],\n              [115.819234, 30.597893],\n              [115.81369, 30.637035],\n              [115.762567, 30.685426],\n              [115.782893, 30.751795],\n              [115.851262, 30.756938],\n              [115.863581, 30.815549],\n              [115.848799, 30.828397],\n              [115.865429, 30.864364],\n              [115.932566, 30.889532],\n              [115.976298, 30.931636],\n              [116.03974, 30.957813],\n              [116.071769, 30.956787],\n              [116.058834, 31.012711],\n              [116.015102, 31.011685],\n              [116.006479, 31.034764],\n              [115.938726, 31.04707],\n              [115.939958, 31.071678],\n              [115.887603, 31.10909],\n              [115.867277, 31.147512],\n              [115.837712, 31.127022],\n              [115.797676, 31.128047],\n              [115.778582, 31.112164],\n              [115.700973, 31.201276],\n              [115.655394, 31.211002],\n              [115.603655, 31.17363],\n              [115.585793, 31.143926],\n              [115.540213, 31.194621],\n              [115.539597, 31.231985],\n              [115.507568, 31.267799],\n              [115.473076, 31.265242],\n              [115.443511, 31.344498],\n              [115.40717, 31.337854],\n              [115.372062, 31.349098],\n              [115.393004, 31.389977],\n              [115.373909, 31.405813],\n              [115.338801, 31.40428],\n              [115.301229, 31.383846],\n              [115.250722, 31.392021],\n              [115.252569, 31.421646],\n              [115.211301, 31.442072],\n              [115.218077, 31.515057],\n              [115.235939, 31.555354],\n              [115.212533, 31.555354],\n              [115.16449, 31.604808],\n              [115.12507, 31.599201],\n              [115.106592, 31.567592],\n              [115.114599, 31.530362],\n              [115.096121, 31.508425],\n              [115.022824, 31.527811],\n              [114.995107, 31.471171],\n              [114.962462, 31.494648],\n              [114.884238, 31.469129],\n              [114.870071, 31.479337],\n              [114.830035, 31.45892],\n              [114.789383, 31.480358],\n              [114.778912, 31.520669],\n              [114.696376, 31.525771],\n              [114.641558, 31.582378],\n              [114.61692, 31.585437],\n              [114.572572, 31.553824],\n              [114.560869, 31.560963],\n              [114.547935, 31.623665],\n              [114.57134, 31.660858],\n              [114.586123, 31.762172],\n              [114.549783, 31.766751],\n              [114.530688, 31.742834],\n              [114.443841, 31.728074],\n              [114.403189, 31.746906],\n              [114.350218, 31.755557],\n              [114.292936, 31.752503],\n              [114.235654, 31.833382],\n              [114.191922, 31.852192],\n              [114.134024, 31.843042],\n              [114.121705, 31.809482],\n              [114.086596, 31.782014],\n              [114.017611, 31.770822],\n              [113.988662, 31.749959],\n              [113.952321, 31.793714],\n              [113.957865, 31.852701],\n              [113.914749, 31.877098],\n              [113.893807, 31.847109],\n              [113.854387, 31.843042],\n              [113.830981, 31.87913],\n              [113.832213, 31.918761],\n              [113.805728, 31.929428],\n              [113.817431, 31.964467],\n              [113.757685, 31.98985],\n              [113.791561, 32.036028],\n              [113.728735, 32.083197],\n              [113.722576, 32.12426],\n              [113.750293, 32.11615],\n              [113.782322, 32.184553],\n              [113.752757, 32.215951],\n              [113.73859, 32.255942],\n              [113.749061, 32.272642],\n              [113.768772, 32.30148],\n              [113.753989, 32.328286],\n              [113.76754, 32.370249],\n              [113.735511, 32.410677],\n              [113.700402, 32.420782],\n              [113.650511, 32.412698],\n              [113.624642, 32.36115],\n              [113.511925, 32.316654],\n              [113.428773, 32.270618],\n              [113.376418, 32.298445],\n              [113.353628, 32.294904],\n              [113.317904, 32.327275],\n              [113.333918, 32.336377],\n              [113.2366, 32.407141],\n              [113.211962, 32.431895],\n              [113.158992, 32.410677],\n              [113.155912, 32.380863],\n              [113.118956, 32.375809],\n              [113.107869, 32.398551],\n              [113.078919, 32.394508],\n              [113.025949, 32.425328],\n              [113.000695, 32.41674],\n              [112.992072, 32.378336],\n              [112.912, 32.390971],\n              [112.888594, 32.37682],\n              [112.860877, 32.396024],\n              [112.776493, 32.358623],\n              [112.735841, 32.356095],\n              [112.733993, 32.356601],\n              [112.724138, 32.358623],\n              [112.716747, 32.357612],\n              [112.645298, 32.368227],\n              [112.612037, 32.386928],\n              [112.589248, 32.381369],\n              [112.545516, 32.404109],\n              [112.530733, 32.37682],\n              [112.477147, 32.380863],\n              [112.448814, 32.34295],\n              [112.390915, 32.37126],\n              [112.360118, 32.3657],\n              [112.328089, 32.321712],\n              [112.206133, 32.392992],\n              [112.172873, 32.385412],\n              [112.150083, 32.411688],\n              [112.155626, 32.377326],\n              [112.081098, 32.425833],\n              [112.063851, 32.474315],\n              [112.014576, 32.450077],\n              [111.975772, 32.471791],\n              [111.948671, 32.51722],\n              [111.890157, 32.503089],\n              [111.858128, 32.528826],\n              [111.808853, 32.536899],\n              [111.713382, 32.606497],\n              [111.646245, 32.605993],\n              [111.640701, 32.634724],\n              [111.577875, 32.593388],\n              [111.530448, 32.628172],\n              [111.513202, 32.674026],\n              [111.458383, 32.726402],\n              [111.475629, 32.760127],\n              [111.41342, 32.757108],\n              [111.380159, 32.829049],\n              [111.293311, 32.859217],\n              [111.276065, 32.903445],\n              [111.255123, 32.883846],\n              [111.242804, 32.930573],\n              [111.273601, 32.971753],\n              [111.258819, 33.006389],\n              [111.221862, 33.042517],\n              [111.152877, 33.039507],\n              [111.192913, 33.071609],\n              [111.179363, 33.115229],\n              [111.146102, 33.12375],\n              [111.12824, 33.15532],\n              [111.08882, 33.181871],\n              [111.045704, 33.169849]\n            ]\n          ],\n          [\n            [\n              [109.106111, 30.570587],\n              [109.101183, 30.579346],\n              [109.09872, 30.579346],\n              [109.106111, 30.570587]\n            ]\n          ],\n          [\n            [\n              [111.046936, 33.202905],\n              [111.035849, 33.187881],\n              [111.034001, 33.177864],\n              [111.045704, 33.169849],\n              [111.046936, 33.202905]\n            ]\n          ],\n          [\n            [\n              [112.716747, 32.357612],\n              [112.735841, 32.356095],\n              [112.733993, 32.356601],\n              [112.724138, 32.358623],\n              [112.716747, 32.357612]\n            ]\n          ],\n          [\n            [\n              [112.902145, 29.79149],\n              [112.894138, 29.783699],\n              [112.923703, 29.766557],\n              [112.929246, 29.77383],\n              [112.902145, 29.79149]\n            ]\n          ]\n        ]\n      }\n    },\n    {\n      \"type\": \"Feature\",\n      \"properties\": {\n        \"adcode\": 430000,\n        \"name\": \"湖南省\",\n        \"center\": [112.982279, 28.19409],\n        \"centroid\": [111.711649, 27.629216],\n        \"childrenNum\": 14,\n        \"level\": \"province\",\n        \"parent\": { \"adcode\": 100000 },\n        \"subFeatureIndex\": 17,\n        \"acroutes\": [100000]\n      },\n      \"geometry\": {\n        \"type\": \"MultiPolygon\",\n        \"coordinates\": [\n          [\n            [\n              [112.024431, 24.740308],\n              [112.03367, 24.771286],\n              [112.124214, 24.841364],\n              [112.149467, 24.837019],\n              [112.167329, 24.859828],\n              [112.175337, 24.927685],\n              [112.119902, 24.963499],\n              [112.12175, 24.989538],\n              [112.155626, 25.026419],\n              [112.151931, 25.055698],\n              [112.177184, 25.106649],\n              [112.187039, 25.182494],\n              [112.246785, 25.185202],\n              [112.256025, 25.159204],\n              [112.302836, 25.157037],\n              [112.315771, 25.175453],\n              [112.365046, 25.191701],\n              [112.414937, 25.14241],\n              [112.44327, 25.185744],\n              [112.458053, 25.152162],\n              [112.562762, 25.124531],\n              [112.628052, 25.140785],\n              [112.660081, 25.132658],\n              [112.712436, 25.083344],\n              [112.714899, 25.025876],\n              [112.742001, 24.99876],\n              [112.743233, 24.959701],\n              [112.778341, 24.947764],\n              [112.780805, 24.896747],\n              [112.873812, 24.896747],\n              [112.904609, 24.921715],\n              [112.941565, 24.915745],\n              [112.994536, 24.927142],\n              [113.009934, 24.977604],\n              [112.979137, 25.03401],\n              [113.004391, 25.089306],\n              [112.96805, 25.141869],\n              [112.97421, 25.168412],\n              [113.034572, 25.198199],\n              [112.992688, 25.247467],\n              [112.958195, 25.254503],\n              [112.897833, 25.238264],\n              [112.867036, 25.249632],\n              [112.854718, 25.337829],\n              [112.891058, 25.339993],\n              [112.924319, 25.296714],\n              [112.93479, 25.325929],\n              [112.969898, 25.350269],\n              [113.013014, 25.352432],\n              [113.078304, 25.382174],\n              [113.096782, 25.412449],\n              [113.131274, 25.414611],\n              [113.11834, 25.445418],\n              [113.176854, 25.471355],\n              [113.226129, 25.50971],\n              [113.248919, 25.514031],\n              [113.311129, 25.490264],\n              [113.314208, 25.442716],\n              [113.341926, 25.448661],\n              [113.373338, 25.402719],\n              [113.407215, 25.401637],\n              [113.449715, 25.359463],\n              [113.479896, 25.375145],\n              [113.535946, 25.368656],\n              [113.579062, 25.34432],\n              [113.584606, 25.306453],\n              [113.611707, 25.327552],\n              [113.680076, 25.334584],\n              [113.686852, 25.351891],\n              [113.753373, 25.362707],\n              [113.76446, 25.333502],\n              [113.814967, 25.328634],\n              [113.839605, 25.363248],\n              [113.877177, 25.380552],\n              [113.887032, 25.436772],\n              [113.94493, 25.441635],\n              [113.962792, 25.528072],\n              [113.986198, 25.529153],\n              [113.983118, 25.599336],\n              [113.957249, 25.611749],\n              [113.913517, 25.701299],\n              [113.920293, 25.741197],\n              [113.961561, 25.77731],\n              [113.971416, 25.836036],\n              [114.028082, 25.893119],\n              [114.028082, 25.98138],\n              [114.008372, 26.015806],\n              [114.044096, 26.076564],\n              [114.087828, 26.06635],\n              [114.121089, 26.085702],\n              [114.10569, 26.097526],\n              [114.188842, 26.121172],\n              [114.237501, 26.152333],\n              [114.216559, 26.203355],\n              [114.181451, 26.214631],\n              [114.102611, 26.187783],\n              [114.088444, 26.168448],\n              [114.013299, 26.184023],\n              [113.962792, 26.150722],\n              [113.949242, 26.192616],\n              [113.972647, 26.20604],\n              [113.978807, 26.237716],\n              [114.029314, 26.266163],\n              [114.021307, 26.288701],\n              [114.047792, 26.337518],\n              [114.030546, 26.376664],\n              [114.062575, 26.406149],\n              [114.085364, 26.406149],\n              [114.090292, 26.455988],\n              [114.110002, 26.482775],\n              [114.07243, 26.480096],\n              [114.10877, 26.56952],\n              [114.019459, 26.587182],\n              [113.996669, 26.615543],\n              [113.912901, 26.613938],\n              [113.860546, 26.664221],\n              [113.853771, 26.769532],\n              [113.835909, 26.806394],\n              [113.877177, 26.859262],\n              [113.890112, 26.895562],\n              [113.927068, 26.948922],\n              [113.892575, 26.964925],\n              [113.86301, 27.018252],\n              [113.824206, 27.036378],\n              [113.803264, 27.099261],\n              [113.771851, 27.096598],\n              [113.779242, 27.137081],\n              [113.846996, 27.222262],\n              [113.872865, 27.289828],\n              [113.854387, 27.30525],\n              [113.872865, 27.346721],\n              [113.872865, 27.384988],\n              [113.72812, 27.350442],\n              [113.699786, 27.331836],\n              [113.657902, 27.347253],\n              [113.616635, 27.345658],\n              [113.605548, 27.38924],\n              [113.632033, 27.40518],\n              [113.59754, 27.428554],\n              [113.591381, 27.467855],\n              [113.627105, 27.49971],\n              [113.583374, 27.524657],\n              [113.579062, 27.545354],\n              [113.608627, 27.585143],\n              [113.607395, 27.625449],\n              [113.652359, 27.663619],\n              [113.696707, 27.71979],\n              [113.69917, 27.740979],\n              [113.763228, 27.799228],\n              [113.756453, 27.860091],\n              [113.72812, 27.874904],\n              [113.752141, 27.93361],\n              [113.822974, 27.982243],\n              [113.845148, 27.971672],\n              [113.864242, 28.004966],\n              [113.914133, 27.991227],\n              [113.936307, 28.018703],\n              [113.966488, 28.017646],\n              [113.970184, 28.041418],\n              [114.025618, 28.031382],\n              [114.047176, 28.057263],\n              [114.025002, 28.080499],\n              [113.992357, 28.161255],\n              [114.012068, 28.174972],\n              [114.068734, 28.171806],\n              [114.107538, 28.182885],\n              [114.109386, 28.205038],\n              [114.143879, 28.246694],\n              [114.182067, 28.249858],\n              [114.198081, 28.29097],\n              [114.2529, 28.319423],\n              [114.252284, 28.395787],\n              [114.214712, 28.403157],\n              [114.172212, 28.432632],\n              [114.217175, 28.466308],\n              [114.218407, 28.48472],\n              [114.15435, 28.507337],\n              [114.138335, 28.533629],\n              [114.08598, 28.558337],\n              [114.132176, 28.607211],\n              [114.122321, 28.623497],\n              [114.157429, 28.761566],\n              [114.137719, 28.779926],\n              [114.153734, 28.829221],\n              [114.124784, 28.843376],\n              [114.076741, 28.834464],\n              [114.056415, 28.872204],\n              [114.060111, 28.902596],\n              [114.028082, 28.891069],\n              [114.005292, 28.917788],\n              [114.008988, 28.955498],\n              [113.973879, 28.937692],\n              [113.955401, 28.978536],\n              [113.961561, 28.999476],\n              [113.94185, 29.047097],\n              [113.898119, 29.029307],\n              [113.876561, 29.038202],\n              [113.882104, 29.065407],\n              [113.852539, 29.058606],\n              [113.816199, 29.105154],\n              [113.775547, 29.095219],\n              [113.749677, 29.060699],\n              [113.722576, 29.104631],\n              [113.696091, 29.077437],\n              [113.690547, 29.114566],\n              [113.66283, 29.16945],\n              [113.691779, 29.19662],\n              [113.693011, 29.226394],\n              [113.651743, 29.225872],\n              [113.609859, 29.25146],\n              [113.632033, 29.316186],\n              [113.660982, 29.333405],\n              [113.674533, 29.388172],\n              [113.731199, 29.393907],\n              [113.755221, 29.446557],\n              [113.677613, 29.513763],\n              [113.630801, 29.523137],\n              [113.710257, 29.555419],\n              [113.73859, 29.579363],\n              [113.704098, 29.634518],\n              [113.680692, 29.64336],\n              [113.663446, 29.684443],\n              [113.606164, 29.666764],\n              [113.547033, 29.675603],\n              [113.540258, 29.699519],\n              [113.558736, 29.727067],\n              [113.550729, 29.768115],\n              [113.575367, 29.809147],\n              [113.571671, 29.849123],\n              [113.37765, 29.703158],\n              [113.277252, 29.594976],\n              [113.222433, 29.543965],\n              [113.181781, 29.485636],\n              [113.145441, 29.449163],\n              [113.099861, 29.459585],\n              [113.078304, 29.438218],\n              [113.057362, 29.522616],\n              [113.034572, 29.523658],\n              [112.950188, 29.473132],\n              [112.912, 29.606944],\n              [112.915696, 29.620992],\n              [113.005007, 29.693801],\n              [113.025949, 29.772791],\n              [112.974826, 29.732784],\n              [112.944645, 29.682883],\n              [112.926782, 29.692241],\n              [112.923703, 29.766557],\n              [112.894138, 29.783699],\n              [112.861493, 29.78318],\n              [112.79374, 29.735902],\n              [112.788812, 29.681323],\n              [112.733378, 29.645441],\n              [112.714283, 29.648561],\n              [112.693957, 29.601741],\n              [112.650842, 29.592374],\n              [112.640371, 29.607985],\n              [112.572001, 29.624113],\n              [112.54182, 29.60122],\n              [112.499321, 29.629316],\n              [112.439574, 29.633997],\n              [112.424792, 29.598619],\n              [112.368741, 29.541362],\n              [112.333017, 29.545007],\n              [112.291133, 29.517409],\n              [112.281278, 29.536676],\n              [112.303452, 29.585609],\n              [112.233851, 29.61631],\n              [112.244322, 29.659483],\n              [112.202438, 29.633997],\n              [112.178416, 29.656883],\n              [112.111279, 29.659483],\n              [112.089721, 29.685482],\n              [112.065699, 29.681323],\n              [112.07617, 29.743696],\n              [112.008417, 29.778505],\n              [111.95483, 29.796683],\n              [111.965917, 29.832512],\n              [111.925881, 29.836665],\n              [111.899396, 29.855871],\n              [111.899396, 29.855871],\n              [111.861207, 29.856909],\n              [111.8107, 29.901017],\n              [111.75773, 29.92021],\n              [111.723853, 29.909317],\n              [111.723853, 29.909317],\n              [111.705375, 29.890121],\n              [111.669034, 29.888565],\n              [111.669034, 29.888565],\n              [111.553854, 29.894272],\n              [111.527368, 29.925916],\n              [111.475629, 29.918654],\n              [111.436825, 29.930065],\n              [111.394325, 29.912948],\n              [111.382623, 29.95029],\n              [111.342587, 29.944586],\n              [111.3315, 29.970512],\n              [111.266826, 30.01146],\n              [111.242188, 30.040476],\n              [111.031537, 30.048765],\n              [110.929907, 30.063268],\n              [110.924364, 30.111426],\n              [110.851067, 30.126439],\n              [110.746973, 30.112979],\n              [110.756212, 30.054463],\n              [110.712481, 30.033223],\n              [110.650887, 30.07777],\n              [110.600996, 30.054463],\n              [110.531394, 30.061197],\n              [110.497518, 30.055499],\n              [110.491358, 30.019751],\n              [110.557264, 29.988137],\n              [110.517228, 29.961179],\n              [110.49875, 29.91243],\n              [110.538786, 29.895828],\n              [110.549873, 29.848085],\n              [110.60038, 29.839779],\n              [110.642879, 29.775907],\n              [110.562807, 29.712515],\n              [110.507373, 29.692241],\n              [110.467337, 29.713034],\n              [110.447011, 29.664684],\n              [110.372482, 29.633477],\n              [110.339221, 29.668324],\n              [110.302265, 29.661563],\n              [110.289946, 29.6964],\n              [110.219729, 29.746814],\n              [110.160599, 29.753569],\n              [110.113788, 29.789932],\n              [110.02386, 29.769674],\n              [109.941325, 29.774349],\n              [109.908064, 29.763959],\n              [109.869876, 29.774869],\n              [109.779333, 29.757725],\n              [109.755311, 29.733304],\n              [109.760238, 29.689122],\n              [109.714659, 29.673524],\n              [109.701108, 29.636078],\n              [109.717739, 29.615269],\n              [109.664768, 29.599659],\n              [109.651833, 29.625674],\n              [109.578536, 29.629836],\n              [109.558826, 29.606944],\n              [109.516326, 29.626194],\n              [109.488609, 29.553336],\n              [109.467051, 29.560104],\n              [109.458428, 29.513242],\n              [109.433791, 29.530948],\n              [109.436254, 29.488761],\n              [109.415928, 29.497617],\n              [109.418392, 29.453332],\n              [109.368501, 29.413719],\n              [109.391291, 29.372005],\n              [109.343863, 29.369398],\n              [109.352487, 29.284872],\n              [109.312451, 29.25146],\n              [109.257632, 29.222738],\n              [109.275494, 29.202366],\n              [109.261328, 29.161089],\n              [109.274262, 29.121885],\n              [109.232378, 29.119271],\n              [109.240386, 29.086328],\n              [109.312451, 29.066453],\n              [109.319842, 29.042388],\n              [109.294588, 29.015177],\n              [109.292741, 28.987436],\n              [109.261328, 28.952356],\n              [109.235458, 28.882161],\n              [109.246545, 28.80143],\n              [109.241002, 28.776779],\n              [109.2989, 28.7474],\n              [109.294588, 28.722211],\n              [109.252704, 28.691767],\n              [109.271183, 28.671816],\n              [109.192958, 28.636104],\n              [109.201581, 28.597753],\n              [109.235458, 28.61982],\n              [109.252089, 28.606685],\n              [109.306907, 28.62087],\n              [109.319842, 28.579886],\n              [109.273646, 28.53836],\n              [109.274262, 28.494714],\n              [109.260712, 28.46473],\n              [109.264407, 28.392628],\n              [109.289045, 28.373673],\n              [109.268719, 28.33786],\n              [109.275494, 28.313101],\n              [109.317994, 28.277795],\n              [109.33524, 28.293605],\n              [109.388211, 28.268307],\n              [109.367885, 28.254602],\n              [109.340168, 28.19027],\n              [109.33832, 28.141731],\n              [109.314298, 28.103729],\n              [109.298284, 28.036136],\n              [109.335856, 28.063073],\n              [109.378972, 28.034551],\n              [109.362342, 28.007608],\n              [109.319842, 27.988585],\n              [109.30198, 27.956343],\n              [109.32169, 27.868027],\n              [109.346943, 27.838396],\n              [109.332777, 27.782815],\n              [109.37774, 27.736741],\n              [109.366653, 27.721909],\n              [109.414081, 27.725087],\n              [109.470747, 27.680049],\n              [109.45658, 27.673689],\n              [109.470131, 27.62863],\n              [109.451037, 27.586204],\n              [109.461508, 27.567637],\n              [109.404841, 27.55066],\n              [109.303211, 27.47582],\n              [109.300132, 27.423774],\n              [109.245313, 27.41793],\n              [109.202197, 27.450331],\n              [109.167089, 27.41793],\n              [109.141835, 27.448207],\n              [109.142451, 27.418461],\n              [109.103647, 27.336621],\n              [109.044517, 27.331304],\n              [109.053756, 27.293551],\n              [108.983539, 27.26802],\n              [108.963213, 27.235565],\n              [108.907778, 27.204699],\n              [108.926873, 27.160512],\n              [108.878829, 27.106187],\n              [108.79075, 27.084343],\n              [108.877597, 27.01612],\n              [108.942887, 27.017186],\n              [108.942887, 27.017186],\n              [108.940423, 27.044907],\n              [109.007561, 27.08008],\n              [109.032814, 27.104056],\n              [109.128901, 27.122701],\n              [109.101183, 27.06889],\n              [109.165857, 27.066758],\n              [109.21698, 27.114711],\n              [109.239154, 27.14933],\n              [109.264407, 27.131755],\n              [109.33524, 27.139212],\n              [109.358646, 27.153058],\n              [109.415312, 27.154123],\n              [109.441182, 27.117907],\n              [109.472595, 27.134951],\n              [109.454733, 27.069423],\n              [109.486761, 27.053968],\n              [109.497848, 27.079548],\n              [109.520022, 27.058764],\n              [109.555131, 26.946788],\n              [109.436254, 26.892359],\n              [109.452885, 26.861932],\n              [109.486761, 26.895562],\n              [109.509551, 26.877947],\n              [109.513247, 26.84004],\n              [109.497232, 26.815474],\n              [109.522486, 26.749226],\n              [109.528645, 26.743881],\n              [109.554515, 26.73533],\n              [109.597015, 26.756173],\n              [109.568065, 26.726243],\n              [109.528645, 26.743881],\n              [109.52187, 26.749226],\n              [109.486761, 26.759913],\n              [109.447957, 26.759913],\n              [109.407305, 26.719829],\n              [109.35495, 26.693098],\n              [109.283501, 26.698445],\n              [109.306291, 26.661012],\n              [109.334008, 26.646036],\n              [109.35495, 26.658873],\n              [109.390675, 26.598955],\n              [109.407305, 26.533116],\n              [109.381436, 26.518659],\n              [109.385747, 26.493487],\n              [109.362342, 26.472061],\n              [109.38082, 26.454381],\n              [109.319842, 26.418477],\n              [109.29582, 26.350389],\n              [109.271183, 26.327863],\n              [109.285965, 26.295676],\n              [109.325385, 26.29031],\n              [109.351255, 26.264016],\n              [109.369733, 26.277432],\n              [109.442414, 26.289774],\n              [109.467051, 26.313917],\n              [109.439334, 26.238789],\n              [109.47629, 26.148035],\n              [109.513863, 26.128157],\n              [109.502776, 26.096451],\n              [109.449805, 26.101826],\n              [109.452885, 26.055598],\n              [109.48245, 26.029788],\n              [109.513247, 25.998056],\n              [109.560058, 26.021184],\n              [109.588391, 26.019571],\n              [109.635203, 26.047533],\n              [109.649369, 26.016882],\n              [109.730057, 25.989988],\n              [109.710963, 25.954478],\n              [109.693717, 25.959321],\n              [109.67955, 25.921649],\n              [109.685094, 25.880197],\n              [109.768246, 25.890427],\n              [109.779333, 25.866196],\n              [109.811361, 25.877504],\n              [109.826144, 25.911422],\n              [109.806434, 25.973848],\n              [109.782412, 25.996981],\n              [109.814441, 26.041081],\n              [109.864332, 26.027637],\n              [109.898825, 26.095377],\n              [109.904368, 26.135679],\n              [109.970274, 26.195301],\n              [110.03002, 26.166299],\n              [110.099005, 26.168985],\n              [110.100853, 26.132455],\n              [110.065128, 26.050221],\n              [110.100853, 26.020108],\n              [110.168606, 26.028713],\n              [110.181541, 26.060437],\n              [110.24991, 26.010965],\n              [110.257301, 25.961473],\n              [110.325671, 25.975462],\n              [110.373098, 26.088927],\n              [110.437772, 26.153945],\n              [110.477808, 26.179727],\n              [110.495054, 26.166299],\n              [110.546793, 26.233421],\n              [110.552952, 26.283335],\n              [110.584365, 26.296749],\n              [110.612083, 26.333764],\n              [110.643495, 26.308552],\n              [110.673676, 26.317135],\n              [110.721104, 26.294066],\n              [110.742046, 26.313917],\n              [110.73527, 26.270993],\n              [110.759292, 26.248451],\n              [110.836284, 26.255966],\n              [110.939762, 26.286554],\n              [110.926212, 26.320354],\n              [110.944074, 26.326791],\n              [110.94469, 26.373447],\n              [110.974255, 26.385778],\n              [111.008747, 26.35897],\n              [111.008132, 26.336982],\n              [111.090667, 26.308016],\n              [111.208928, 26.30426],\n              [111.204616, 26.276359],\n              [111.228022, 26.261333],\n              [111.277913, 26.272066],\n              [111.293311, 26.222148],\n              [111.271754, 26.217316],\n              [111.274833, 26.183486],\n              [111.258203, 26.151796],\n              [111.26621, 26.095914],\n              [111.244652, 26.078177],\n              [111.267442, 26.058824],\n              [111.235413, 26.048071],\n              [111.189834, 25.953402],\n              [111.230486, 25.916267],\n              [111.251428, 25.864581],\n              [111.29208, 25.854349],\n              [111.297007, 25.874274],\n              [111.346282, 25.906577],\n              [111.376463, 25.906039],\n              [111.383239, 25.881812],\n              [111.460231, 25.885042],\n              [111.4861, 25.859196],\n              [111.43313, 25.84627],\n              [111.442369, 25.77192],\n              [111.399869, 25.744431],\n              [111.30871, 25.720171],\n              [111.309942, 25.645203],\n              [111.343202, 25.602574],\n              [111.324724, 25.564249],\n              [111.32842, 25.521592],\n              [111.279145, 25.42326],\n              [111.210776, 25.363248],\n              [111.184906, 25.367034],\n              [111.138711, 25.303748],\n              [111.103602, 25.285351],\n              [111.112841, 25.21715],\n              [110.998892, 25.161371],\n              [110.98411, 25.101772],\n              [110.951465, 25.04377],\n              [110.968711, 24.975434],\n              [111.009363, 24.921172],\n              [111.100522, 24.945593],\n              [111.101754, 25.035095],\n              [111.139943, 25.042144],\n              [111.200921, 25.074672],\n              [111.221862, 25.106649],\n              [111.274833, 25.151078],\n              [111.321645, 25.105023],\n              [111.36784, 25.108817],\n              [111.375231, 25.128324],\n              [111.435593, 25.093642],\n              [111.416499, 25.047566],\n              [111.467622, 25.02208],\n              [111.460231, 24.992793],\n              [111.43313, 24.979774],\n              [111.434977, 24.951562],\n              [111.470086, 24.92877],\n              [111.447296, 24.892947],\n              [111.449144, 24.857113],\n              [111.479325, 24.797366],\n              [111.461463, 24.728894],\n              [111.431282, 24.687574],\n              [111.451608, 24.665822],\n              [111.499035, 24.667997],\n              [111.526752, 24.637538],\n              [111.570484, 24.64461],\n              [111.588962, 24.690837],\n              [111.641933, 24.684856],\n              [111.637621, 24.715303],\n              [111.666571, 24.760961],\n              [111.708455, 24.788673],\n              [111.783599, 24.785957],\n              [111.814396, 24.770199],\n              [111.868599, 24.771829],\n              [111.875374, 24.756613],\n              [111.929577, 24.75607],\n              [111.951135, 24.769655],\n              [112.024431, 24.740308]\n            ]\n          ],\n          [\n            [\n              [109.528645, 26.743881],\n              [109.522486, 26.749226],\n              [109.52187, 26.749226],\n              [109.528645, 26.743881]\n            ]\n          ]\n        ]\n      }\n    },\n    {\n      \"type\": \"Feature\",\n      \"properties\": {\n        \"adcode\": 440000,\n        \"name\": \"广东省\",\n        \"center\": [113.280637, 23.125178],\n        \"centroid\": [113.429919, 23.334643],\n        \"childrenNum\": 21,\n        \"level\": \"province\",\n        \"parent\": { \"adcode\": 100000 },\n        \"subFeatureIndex\": 18,\n        \"acroutes\": [100000]\n      },\n      \"geometry\": {\n        \"type\": \"MultiPolygon\",\n        \"coordinates\": [\n          [\n            [\n              [113.558736, 22.212244],\n              [113.594461, 22.228864],\n              [113.595693, 22.304186],\n              [113.617866, 22.315259],\n              [113.604932, 22.339617],\n              [113.627721, 22.349027],\n              [113.669605, 22.416539],\n              [113.66591, 22.438667],\n              [113.624642, 22.443092],\n              [113.608627, 22.408793],\n              [113.573519, 22.41156],\n              [113.631417, 22.475723],\n              [113.668373, 22.4807],\n              [113.691779, 22.514981],\n              [113.740438, 22.534329],\n              [113.717033, 22.645391],\n              [113.678228, 22.726007],\n              [113.733663, 22.736494],\n              [113.758301, 22.683496],\n              [113.765692, 22.665825],\n              [113.803264, 22.593463],\n              [113.856851, 22.539857],\n              [113.869786, 22.459685],\n              [113.893807, 22.442539],\n              [113.952937, 22.486783],\n              [113.954785, 22.491206],\n              [113.976343, 22.510558],\n              [114.031778, 22.503923],\n              [114.082285, 22.512216],\n              [114.095219, 22.534329],\n              [114.156813, 22.543726],\n              [114.166052, 22.559201],\n              [114.222719, 22.553122],\n              [114.232574, 22.539857],\n              [114.294784, 22.563623],\n              [114.321885, 22.587385],\n              [114.381631, 22.60175],\n              [114.427211, 22.589042],\n              [114.472174, 22.522168],\n              [114.476486, 22.459132],\n              [114.506667, 22.438667],\n              [114.549167, 22.465769],\n              [114.611377, 22.481806],\n              [114.628623, 22.513875],\n              [114.614456, 22.545384],\n              [114.568261, 22.560859],\n              [114.559022, 22.583517],\n              [114.603369, 22.638763],\n              [114.579964, 22.661407],\n              [114.51529, 22.655332],\n              [114.567029, 22.685705],\n              [114.591666, 22.690122],\n              [114.601521, 22.730975],\n              [114.689601, 22.7674],\n              [114.709927, 22.787817],\n              [114.749963, 22.764089],\n              [114.73518, 22.724351],\n              [114.728405, 22.651466],\n              [114.743803, 22.632687],\n              [114.746267, 22.581859],\n              [114.866375, 22.591805],\n              [114.88547, 22.538751],\n              [114.922426, 22.549253],\n              [114.927969, 22.621639],\n              [114.945216, 22.645391],\n              [115.039454, 22.713862],\n              [115.02344, 22.726007],\n              [115.053621, 22.747533],\n              [115.076411, 22.788368],\n              [115.154635, 22.80161],\n              [115.190975, 22.77347],\n              [115.190359, 22.818711],\n              [115.236555, 22.82533],\n              [115.230396, 22.776781],\n              [115.319091, 22.783402],\n              [115.338185, 22.776781],\n              [115.349272, 22.712206],\n              [115.381301, 22.684048],\n              [115.430576, 22.684048],\n              [115.471844, 22.697852],\n              [115.575322, 22.650914],\n              [115.565467, 22.684048],\n              [115.609198, 22.753052],\n              [115.541445, 22.755259],\n              [115.570394, 22.786713],\n              [115.583945, 22.82864],\n              [115.654162, 22.865591],\n              [115.696046, 22.84298],\n              [115.760103, 22.834707],\n              [115.788437, 22.809885],\n              [115.796444, 22.739254],\n              [115.829089, 22.734838],\n              [115.883291, 22.78561],\n              [115.931334, 22.802713],\n              [115.965211, 22.800506],\n              [115.99724, 22.826985],\n              [116.05637, 22.844635],\n              [116.104413, 22.816505],\n              [116.14137, 22.835259],\n              [116.239304, 22.921275],\n              [116.259014, 22.932298],\n              [116.302746, 22.951588],\n              [116.382818, 22.91907],\n              [116.449955, 22.936707],\n              [116.50539, 22.930645],\n              [116.544194, 22.996769],\n              [116.576839, 23.014397],\n              [116.557129, 23.056253],\n              [116.566368, 23.088738],\n              [116.550969, 23.109656],\n              [116.566368, 23.134424],\n              [116.665534, 23.158086],\n              [116.701259, 23.198248],\n              [116.74499, 23.215299],\n              [116.806584, 23.200998],\n              [116.821367, 23.240597],\n              [116.798577, 23.244996],\n              [116.782563, 23.313714],\n              [116.871874, 23.4159],\n              [116.871258, 23.416449],\n              [116.874338, 23.447199],\n              [116.874953, 23.447748],\n              [116.895895, 23.476295],\n              [116.888504, 23.501543],\n              [116.92854, 23.530079],\n              [116.963649, 23.507031],\n              [117.01046, 23.502641],\n              [117.044953, 23.539955],\n              [117.085605, 23.536663],\n              [117.192778, 23.5619],\n              [117.192778, 23.629356],\n              [117.147199, 23.654027],\n              [117.123793, 23.647448],\n              [117.055424, 23.694038],\n              [117.048032, 23.758687],\n              [117.019083, 23.801952],\n              [117.012308, 23.855054],\n              [116.981511, 23.855602],\n              [116.955642, 23.922359],\n              [116.976583, 23.931659],\n              [116.981511, 23.999471],\n              [116.953178, 24.008218],\n              [116.930388, 24.064514],\n              [116.9347, 24.126794],\n              [116.998757, 24.179217],\n              [116.956257, 24.216883],\n              [116.933468, 24.220157],\n              [116.938395, 24.28127],\n              [116.914374, 24.287817],\n              [116.919301, 24.321087],\n              [116.895895, 24.350533],\n              [116.903903, 24.369614],\n              [116.839229, 24.442097],\n              [116.860787, 24.460075],\n              [116.83307, 24.496568],\n              [116.796729, 24.502014],\n              [116.759157, 24.545572],\n              [116.761005, 24.583128],\n              [116.815207, 24.654944],\n              [116.777635, 24.679418],\n              [116.667382, 24.658752],\n              [116.623034, 24.64189],\n              [116.600861, 24.654401],\n              [116.570679, 24.621762],\n              [116.530027, 24.604895],\n              [116.506622, 24.621218],\n              [116.517709, 24.652225],\n              [116.485064, 24.720196],\n              [116.44626, 24.714216],\n              [116.416079, 24.744113],\n              [116.419158, 24.767482],\n              [116.375427, 24.803885],\n              [116.381586, 24.82507],\n              [116.417927, 24.840821],\n              [116.395137, 24.877746],\n              [116.363724, 24.87123],\n              [116.345862, 24.828872],\n              [116.297202, 24.801712],\n              [116.244232, 24.793563],\n              [116.251007, 24.82507],\n              [116.221442, 24.829959],\n              [116.191877, 24.877203],\n              [116.153073, 24.846795],\n              [116.068073, 24.850053],\n              [116.015102, 24.905975],\n              [115.985537, 24.899461],\n              [115.907929, 24.923343],\n              [115.89253, 24.936911],\n              [115.885139, 24.898918],\n              [115.907313, 24.879917],\n              [115.861733, 24.863629],\n              [115.863581, 24.891318],\n              [115.824161, 24.909232],\n              [115.807531, 24.862543],\n              [115.790284, 24.856027],\n              [115.764415, 24.791933],\n              [115.776734, 24.774546],\n              [115.756408, 24.749004],\n              [115.769342, 24.708236],\n              [115.801371, 24.705517],\n              [115.780429, 24.663103],\n              [115.797676, 24.628834],\n              [115.840791, 24.584217],\n              [115.843871, 24.562446],\n              [115.785357, 24.567345],\n              [115.752712, 24.546116],\n              [115.68927, 24.545027],\n              [115.671408, 24.604895],\n              [115.605503, 24.62557],\n              [115.569778, 24.622306],\n              [115.555611, 24.683768],\n              [115.522967, 24.702799],\n              [115.476771, 24.762591],\n              [115.412714, 24.79302],\n              [115.372678, 24.774546],\n              [115.358511, 24.735416],\n              [115.306772, 24.758787],\n              [115.269816, 24.749548],\n              [115.258729, 24.728894],\n              [115.1842, 24.711498],\n              [115.104744, 24.667997],\n              [115.083802, 24.699537],\n              [115.057317, 24.703343],\n              [115.024672, 24.669085],\n              [115.00373, 24.679418],\n              [114.940288, 24.650049],\n              [114.909491, 24.661471],\n              [114.893477, 24.582584],\n              [114.868839, 24.562446],\n              [114.846665, 24.602719],\n              [114.827571, 24.588026],\n              [114.781376, 24.613057],\n              [114.729637, 24.608704],\n              [114.73826, 24.565168],\n              [114.704999, 24.525973],\n              [114.664963, 24.583673],\n              [114.627391, 24.576598],\n              [114.589819, 24.537406],\n              [114.534384, 24.559181],\n              [114.429058, 24.48622],\n              [114.403189, 24.497657],\n              [114.391486, 24.563535],\n              [114.363769, 24.582584],\n              [114.300943, 24.578775],\n              [114.289856, 24.619042],\n              [114.258443, 24.641346],\n              [114.19069, 24.656576],\n              [114.169132, 24.689749],\n              [114.27261, 24.700624],\n              [114.281849, 24.724001],\n              [114.336052, 24.749004],\n              [114.342211, 24.807145],\n              [114.378551, 24.861457],\n              [114.403189, 24.877746],\n              [114.395798, 24.951019],\n              [114.454928, 24.977062],\n              [114.45616, 24.99659],\n              [114.506051, 24.999844],\n              [114.532536, 25.022623],\n              [114.561485, 25.077382],\n              [114.604601, 25.083886],\n              [114.640326, 25.074129],\n              [114.664963, 25.10123],\n              [114.735796, 25.121822],\n              [114.73518, 25.155954],\n              [114.685905, 25.173287],\n              [114.693912, 25.213902],\n              [114.73518, 25.225813],\n              [114.743188, 25.274528],\n              [114.714238, 25.315651],\n              [114.63663, 25.324306],\n              [114.599674, 25.385959],\n              [114.541159, 25.416773],\n              [114.477718, 25.37136],\n              [114.438914, 25.376226],\n              [114.43029, 25.343779],\n              [114.382863, 25.317274],\n              [114.31511, 25.33837],\n              [114.2954, 25.299961],\n              [114.260291, 25.291845],\n              [114.204857, 25.29942],\n              [114.190074, 25.316733],\n              [114.115545, 25.302125],\n              [114.083517, 25.275611],\n              [114.055799, 25.277775],\n              [114.039785, 25.250714],\n              [114.017611, 25.273987],\n              [114.029314, 25.328093],\n              [114.050256, 25.36433],\n              [113.983118, 25.415152],\n              [114.003444, 25.442716],\n              [113.94493, 25.441635],\n              [113.887032, 25.436772],\n              [113.877177, 25.380552],\n              [113.839605, 25.363248],\n              [113.814967, 25.328634],\n              [113.76446, 25.333502],\n              [113.753373, 25.362707],\n              [113.686852, 25.351891],\n              [113.680076, 25.334584],\n              [113.611707, 25.327552],\n              [113.584606, 25.306453],\n              [113.579062, 25.34432],\n              [113.535946, 25.368656],\n              [113.479896, 25.375145],\n              [113.449715, 25.359463],\n              [113.407215, 25.401637],\n              [113.373338, 25.402719],\n              [113.341926, 25.448661],\n              [113.314208, 25.442716],\n              [113.311129, 25.490264],\n              [113.248919, 25.514031],\n              [113.226129, 25.50971],\n              [113.176854, 25.471355],\n              [113.11834, 25.445418],\n              [113.131274, 25.414611],\n              [113.096782, 25.412449],\n              [113.078304, 25.382174],\n              [113.013014, 25.352432],\n              [112.969898, 25.350269],\n              [112.93479, 25.325929],\n              [112.924319, 25.296714],\n              [112.891058, 25.339993],\n              [112.854718, 25.337829],\n              [112.867036, 25.249632],\n              [112.897833, 25.238264],\n              [112.958195, 25.254503],\n              [112.992688, 25.247467],\n              [113.034572, 25.198199],\n              [112.97421, 25.168412],\n              [112.96805, 25.141869],\n              [113.004391, 25.089306],\n              [112.979137, 25.03401],\n              [113.009934, 24.977604],\n              [112.994536, 24.927142],\n              [112.941565, 24.915745],\n              [112.904609, 24.921715],\n              [112.873812, 24.896747],\n              [112.780805, 24.896747],\n              [112.778341, 24.947764],\n              [112.743233, 24.959701],\n              [112.742001, 24.99876],\n              [112.714899, 25.025876],\n              [112.712436, 25.083344],\n              [112.660081, 25.132658],\n              [112.628052, 25.140785],\n              [112.562762, 25.124531],\n              [112.458053, 25.152162],\n              [112.44327, 25.185744],\n              [112.414937, 25.14241],\n              [112.365046, 25.191701],\n              [112.315771, 25.175453],\n              [112.302836, 25.157037],\n              [112.256025, 25.159204],\n              [112.246785, 25.185202],\n              [112.187039, 25.182494],\n              [112.177184, 25.106649],\n              [112.151931, 25.055698],\n              [112.155626, 25.026419],\n              [112.12175, 24.989538],\n              [112.119902, 24.963499],\n              [112.175337, 24.927685],\n              [112.167329, 24.859828],\n              [112.149467, 24.837019],\n              [112.124214, 24.841364],\n              [112.03367, 24.771286],\n              [112.024431, 24.740308],\n              [111.961606, 24.721283],\n              [111.939432, 24.686487],\n              [111.953598, 24.64733],\n              [111.927729, 24.629378],\n              [111.936968, 24.595645],\n              [111.972077, 24.578775],\n              [112.007185, 24.534684],\n              [112.009649, 24.503103],\n              [111.985011, 24.467701],\n              [112.025047, 24.438828],\n              [112.057692, 24.387057],\n              [112.05954, 24.339628],\n              [112.026279, 24.294908],\n              [111.990555, 24.279634],\n              [111.986243, 24.25672],\n              [111.958526, 24.263813],\n              [111.912946, 24.221795],\n              [111.877222, 24.227252],\n              [111.871062, 24.176487],\n              [111.886461, 24.163929],\n              [111.878454, 24.109862],\n              [111.92157, 24.012045],\n              [111.940664, 23.987989],\n              [111.911714, 23.943693],\n              [111.854432, 23.947521],\n              [111.845809, 23.904305],\n              [111.812548, 23.887343],\n              [111.824867, 23.832612],\n              [111.8107, 23.80688],\n              [111.722621, 23.823305],\n              [111.683201, 23.822758],\n              [111.683201, 23.822758],\n              [111.654868, 23.833159],\n              [111.627766, 23.78881],\n              [111.621607, 23.725819],\n              [111.666571, 23.718696],\n              [111.614832, 23.65896],\n              [111.615448, 23.639225],\n              [111.555702, 23.64087],\n              [111.487332, 23.626615],\n              [111.479941, 23.532822],\n              [111.428818, 23.466414],\n              [111.399869, 23.469159],\n              [111.383239, 23.399423],\n              [111.389398, 23.375804],\n              [111.363528, 23.340641],\n              [111.376463, 23.30437],\n              [111.353058, 23.284582],\n              [111.36476, 23.240047],\n              [111.388782, 23.210349],\n              [111.38447, 23.16744],\n              [111.365992, 23.14488],\n              [111.377695, 23.082132],\n              [111.402333, 23.066165],\n              [111.43313, 23.073322],\n              [111.433746, 23.036428],\n              [111.389398, 23.005583],\n              [111.403565, 22.99126],\n              [111.362913, 22.967568],\n              [111.374615, 22.938361],\n              [111.358601, 22.889301],\n              [111.218167, 22.748085],\n              [111.185522, 22.735942],\n              [111.118385, 22.744773],\n              [111.058023, 22.729871],\n              [111.089435, 22.695643],\n              [111.055559, 22.648705],\n              [110.997045, 22.631582],\n              [110.958856, 22.636553],\n              [110.950233, 22.61059],\n              [110.896031, 22.613352],\n              [110.897878, 22.591805],\n              [110.812263, 22.576333],\n              [110.778386, 22.585174],\n              [110.749437, 22.556991],\n              [110.762988, 22.518298],\n              [110.740198, 22.498947],\n              [110.74143, 22.464109],\n              [110.688459, 22.477935],\n              [110.712481, 22.440879],\n              [110.711249, 22.369506],\n              [110.74143, 22.361757],\n              [110.749437, 22.329653],\n              [110.787009, 22.28259],\n              [110.759292, 22.274837],\n              [110.725415, 22.29588],\n              [110.687843, 22.249914],\n              [110.646575, 22.220554],\n              [110.678604, 22.172901],\n              [110.629329, 22.149068],\n              [110.598532, 22.162924],\n              [110.602843, 22.18343],\n              [110.55788, 22.196175],\n              [110.505525, 22.14297],\n              [110.456866, 22.189526],\n              [110.414366, 22.208365],\n              [110.378026, 22.164587],\n              [110.34846, 22.195621],\n              [110.326287, 22.152393],\n              [110.364475, 22.125785],\n              [110.35154, 22.097508],\n              [110.359547, 22.015973],\n              [110.352772, 21.97602],\n              [110.374946, 21.967695],\n              [110.374946, 21.967695],\n              [110.378642, 21.939942],\n              [110.378642, 21.939942],\n              [110.391576, 21.89386],\n              [110.337374, 21.887751],\n              [110.290562, 21.917736],\n              [110.283787, 21.892194],\n              [110.224041, 21.882198],\n              [110.224041, 21.882198],\n              [110.212338, 21.886085],\n              [110.212338, 21.886085],\n              [110.196323, 21.899968],\n              [110.12857, 21.902744],\n              [110.101469, 21.86998],\n              [110.050962, 21.857205],\n              [109.999839, 21.881643],\n              [109.94502, 21.84443],\n              [109.940093, 21.769419],\n              [109.916071, 21.668787],\n              [109.888354, 21.652101],\n              [109.888354, 21.652101],\n              [109.839695, 21.636525],\n              [109.786108, 21.637638],\n              [109.778101, 21.670455],\n              [109.742992, 21.616497],\n              [109.754695, 21.556396],\n              [109.788572, 21.490702],\n              [109.785492, 21.45673],\n              [109.819369, 21.445033],\n              [109.894513, 21.442248],\n              [109.904368, 21.429992],\n              [109.868644, 21.365913],\n              [109.770709, 21.359783],\n              [109.757775, 21.346963],\n              [109.763934, 21.226514],\n              [109.674623, 21.136671],\n              [109.674007, 21.067997],\n              [109.655529, 20.929435],\n              [109.664768, 20.862343],\n              [109.711579, 20.774519],\n              [109.730057, 20.719673],\n              [109.74484, 20.621124],\n              [109.793499, 20.615522],\n              [109.813825, 20.574627],\n              [109.811977, 20.541566],\n              [109.839695, 20.489439],\n              [109.888354, 20.475423],\n              [109.895745, 20.42776],\n              [109.864948, 20.40196],\n              [109.861252, 20.376717],\n              [109.916071, 20.316677],\n              [109.909296, 20.236961],\n              [109.929006, 20.211691],\n              [109.993679, 20.254368],\n              [110.082375, 20.258859],\n              [110.118099, 20.219553],\n              [110.168606, 20.219553],\n              [110.220345, 20.25156],\n              [110.296722, 20.249314],\n              [110.349076, 20.258859],\n              [110.384185, 20.293103],\n              [110.425453, 20.291419],\n              [110.452554, 20.311064],\n              [110.491358, 20.373912],\n              [110.54125, 20.42047],\n              [110.550489, 20.47262],\n              [110.499982, 20.572386],\n              [110.487047, 20.640167],\n              [110.466105, 20.680485],\n              [110.411286, 20.670966],\n              [110.392192, 20.682724],\n              [110.407591, 20.731987],\n              [110.393424, 20.816479],\n              [110.350924, 20.84165],\n              [110.327519, 20.847802],\n              [110.269004, 20.839972],\n              [110.209874, 20.860106],\n              [110.184005, 20.891979],\n              [110.180925, 20.98197],\n              [110.204947, 21.003202],\n              [110.208642, 21.050684],\n              [110.241903, 21.016051],\n              [110.24991, 21.045098],\n              [110.296722, 21.093684],\n              [110.39096, 21.124949],\n              [110.422373, 21.190807],\n              [110.451322, 21.186343],\n              [110.501213, 21.217588],\n              [110.534474, 21.204198],\n              [110.626249, 21.215915],\n              [110.65951, 21.239902],\n              [110.713097, 21.3124],\n              [110.768531, 21.364799],\n              [110.796248, 21.37483],\n              [110.888639, 21.367585],\n              [110.929291, 21.375945],\n              [111.034617, 21.438906],\n              [111.103602, 21.455616],\n              [111.171355, 21.458401],\n              [111.28284, 21.485691],\n              [111.276065, 21.443362],\n              [111.250196, 21.45116],\n              [111.257587, 21.41495],\n              [111.28592, 21.41885],\n              [111.353058, 21.464528],\n              [111.382623, 21.495714],\n              [111.444217, 21.514088],\n              [111.494724, 21.501282],\n              [111.521825, 21.517429],\n              [111.560629, 21.50518],\n              [111.609904, 21.530234],\n              [111.650556, 21.512418],\n              [111.677658, 21.529677],\n              [111.693672, 21.590345],\n              [111.736788, 21.609821],\n              [111.794686, 21.61149],\n              [111.832258, 21.578659],\n              [111.810084, 21.555283],\n              [111.887693, 21.578659],\n              [111.941896, 21.607039],\n              [111.972692, 21.603144],\n              [112.026895, 21.633744],\n              [111.997946, 21.657107],\n              [111.954214, 21.667674],\n              [111.956062, 21.710494],\n              [112.036134, 21.761637],\n              [112.136532, 21.793871],\n              [112.192583, 21.789425],\n              [112.196894, 21.736624],\n              [112.236315, 21.727173],\n              [112.238778, 21.702153],\n              [112.353343, 21.707157],\n              [112.415553, 21.734956],\n              [112.427256, 21.789981],\n              [112.445734, 21.803317],\n              [112.497473, 21.785535],\n              [112.535661, 21.753856],\n              [112.647146, 21.758302],\n              [112.68595, 21.810541],\n              [112.792508, 21.921067],\n              [112.841167, 21.920512],\n              [112.893522, 21.84443],\n              [112.929862, 21.838875],\n              [112.989608, 21.869424],\n              [113.047507, 21.956595],\n              [113.053666, 22.012089],\n              [113.032108, 22.04593],\n              [113.045659, 22.088636],\n              [113.086927, 22.12634],\n              [113.091854, 22.065344],\n              [113.142977, 22.012089],\n              [113.1516, 21.979905],\n              [113.235368, 21.887751],\n              [113.266781, 21.871646],\n              [113.319752, 21.909407],\n              [113.330223, 21.96159],\n              [113.442324, 22.009315],\n              [113.45957, 22.043711],\n              [113.527939, 22.073663],\n              [113.567359, 22.075327],\n              [113.554425, 22.107489],\n              [113.554425, 22.142416],\n              [113.534715, 22.174009],\n              [113.53841, 22.209473],\n              [113.558736, 22.212244]\n            ]\n          ],\n          [\n            [\n              [117.024627, 23.437865],\n              [116.982743, 23.460924],\n              [116.944555, 23.440061],\n              [116.951946, 23.419744],\n              [117.027091, 23.41535],\n              [117.050496, 23.400522],\n              [117.081909, 23.409309],\n              [117.124409, 23.389537],\n              [117.142887, 23.400522],\n              [117.142887, 23.459826],\n              [117.129336, 23.483431],\n              [117.093612, 23.459277],\n              [117.058503, 23.47355],\n              [117.029554, 23.443356],\n              [117.024627, 23.437865]\n            ]\n          ],\n          [\n            [\n              [112.853486, 21.740515],\n              [112.876275, 21.772753],\n              [112.840551, 21.776644],\n              [112.782653, 21.739959],\n              [112.724138, 21.719945],\n              [112.70566, 21.679354],\n              [112.734609, 21.666562],\n              [112.780189, 21.671568],\n              [112.730914, 21.613715],\n              [112.775261, 21.564189],\n              [112.817145, 21.590345],\n              [112.798667, 21.610933],\n              [112.821457, 21.655994],\n              [112.804826, 21.686583],\n              [112.83316, 21.736624],\n              [112.853486, 21.740515]\n            ]\n          ],\n          [\n            [\n              [112.530733, 21.583667],\n              [112.563378, 21.591458],\n              [112.571385, 21.619835],\n              [112.621277, 21.606482],\n              [112.665624, 21.642644],\n              [112.639139, 21.67268],\n              [112.66624, 21.683803],\n              [112.663776, 21.714386],\n              [112.592327, 21.693256],\n              [112.560299, 21.666562],\n              [112.57077, 21.645982],\n              [112.535045, 21.628737],\n              [112.530733, 21.583667]\n            ]\n          ],\n          [\n            [\n              [114.231342, 22.016528],\n              [114.311414, 22.041493],\n              [114.302791, 22.050368],\n              [114.239965, 22.03539],\n              [114.231342, 22.016528]\n            ]\n          ],\n          [\n            [\n              [110.43346, 21.171276],\n              [110.489511, 21.138904],\n              [110.508605, 21.140579],\n              [110.544945, 21.083633],\n              [110.582517, 21.094801],\n              [110.632409, 21.210893],\n              [110.589293, 21.194713],\n              [110.525235, 21.190249],\n              [110.499366, 21.213125],\n              [110.445163, 21.184669],\n              [110.431612, 21.180763],\n              [110.43346, 21.171276]\n            ]\n          ],\n          [\n            [\n              [112.435263, 21.663781],\n              [112.456205, 21.648763],\n              [112.458669, 21.68992],\n              [112.435263, 21.663781]\n            ]\n          ],\n          [\n            [\n              [110.517844, 21.079166],\n              [110.459946, 21.062971],\n              [110.398352, 21.096476],\n              [110.352772, 21.079724],\n              [110.305961, 21.0881],\n              [110.27578, 21.033369],\n              [110.211106, 20.986999],\n              [110.201251, 20.938378],\n              [110.309656, 20.963529],\n              [110.347845, 20.984763],\n              [110.407591, 20.990351],\n              [110.47288, 20.983087],\n              [110.511684, 20.916578],\n              [110.535706, 20.922727],\n              [110.539402, 20.987557],\n              [110.560344, 21.061295],\n              [110.517844, 21.079166]\n            ]\n          ],\n          [\n            [\n              [113.765076, 21.962145],\n              [113.774315, 21.998218],\n              [113.74167, 21.991559],\n              [113.765076, 21.962145]\n            ]\n          ],\n          [\n            [\n              [113.723192, 21.922177],\n              [113.742902, 21.950489],\n              [113.71888, 21.951599],\n              [113.723192, 21.922177]\n            ]\n          ],\n          [\n            [\n              [113.142977, 21.831653],\n              [113.162071, 21.853873],\n              [113.203955, 21.861093],\n              [113.167615, 21.876644],\n              [113.136818, 21.868869],\n              [113.142977, 21.831653]\n            ]\n          ],\n          [\n            [\n              [113.819894, 22.396068],\n              [113.813735, 22.419858],\n              [113.786634, 22.413773],\n              [113.819894, 22.396068]\n            ]\n          ],\n          [\n            [\n              [114.190074, 21.986564],\n              [114.229494, 21.995443],\n              [114.180835, 22.00987],\n              [114.190074, 21.986564]\n            ]\n          ],\n          [\n            [\n              [114.153734, 21.97491],\n              [114.171596, 22.000437],\n              [114.124169, 21.985455],\n              [114.153734, 21.97491]\n            ]\n          ],\n          [\n            [\n              [116.769628, 20.771721],\n              [116.761005, 20.750456],\n              [116.87249, 20.738143],\n              [116.889736, 20.683284],\n              [116.849084, 20.628405],\n              [116.749302, 20.600958],\n              [116.796113, 20.582471],\n              [116.862635, 20.588633],\n              [116.905135, 20.619443],\n              [116.934084, 20.676565],\n              [116.925461, 20.726949],\n              [116.88604, 20.775638],\n              [116.820135, 20.780674],\n              [116.769628, 20.771721]\n            ]\n          ],\n          [\n            [\n              [113.025333, 21.847762],\n              [113.045659, 21.882753],\n              [113.007471, 21.869424],\n              [113.025333, 21.847762]\n            ]\n          ],\n          [\n            [\n              [110.405127, 20.678245],\n              [110.437772, 20.677685],\n              [110.414366, 20.710157],\n              [110.405127, 20.678245]\n            ]\n          ],\n          [\n            [\n              [110.644727, 20.935584],\n              [110.584365, 20.948998],\n              [110.548641, 20.908752],\n              [110.562807, 20.861224],\n              [110.611467, 20.860106],\n              [110.646575, 20.917137],\n              [110.644727, 20.935584]\n            ]\n          ],\n          [\n            [\n              [110.556648, 20.32734],\n              [110.593604, 20.360447],\n              [110.586213, 20.381205],\n              [110.556648, 20.32734]\n            ]\n          ],\n          [\n            [\n              [115.943037, 21.097592],\n              [115.953508, 21.064088],\n              [115.989233, 21.035603],\n              [116.040356, 21.02052],\n              [116.067457, 21.04063],\n              [116.044051, 21.110434],\n              [116.024341, 21.12439],\n              [115.965211, 21.123832],\n              [115.943037, 21.097592]\n            ]\n          ],\n          [\n            [\n              [115.926407, 20.981411],\n              [115.939342, 20.945644],\n              [115.970139, 20.919373],\n              [115.999088, 20.922727],\n              [116.000936, 20.948439],\n              [115.954124, 20.99985],\n              [115.926407, 20.981411]\n            ]\n          ],\n          [\n            [\n              [115.834632, 22.722695],\n              [115.834632, 22.722143],\n              [115.835248, 22.722695],\n              [115.834632, 22.722695]\n            ]\n          ],\n          [\n            [\n              [115.834632, 22.723247],\n              [115.834632, 22.722695],\n              [115.835248, 22.722695],\n              [115.834632, 22.723247]\n            ]\n          ]\n        ]\n      }\n    },\n    {\n      \"type\": \"Feature\",\n      \"properties\": {\n        \"adcode\": 450000,\n        \"name\": \"广西壮族自治区\",\n        \"center\": [108.320004, 22.82402],\n        \"centroid\": [108.7944, 23.833381],\n        \"childrenNum\": 14,\n        \"level\": \"province\",\n        \"parent\": { \"adcode\": 100000 },\n        \"subFeatureIndex\": 19,\n        \"acroutes\": [100000]\n      },\n      \"geometry\": {\n        \"type\": \"MultiPolygon\",\n        \"coordinates\": [\n          [\n            [\n              [109.48245, 26.029788],\n              [109.473211, 26.006663],\n              [109.408537, 25.967392],\n              [109.435022, 25.93349],\n              [109.396834, 25.900117],\n              [109.359262, 25.836036],\n              [109.339552, 25.83442],\n              [109.327849, 25.76168],\n              [109.340168, 25.731493],\n              [109.296436, 25.71424],\n              [109.207125, 25.740119],\n              [109.206509, 25.788087],\n              [109.147995, 25.741736],\n              [109.13198, 25.762758],\n              [109.143683, 25.795092],\n              [109.095024, 25.80533],\n              [109.077778, 25.776771],\n              [109.048213, 25.790781],\n              [108.989698, 25.778926],\n              [108.999553, 25.765453],\n              [108.963829, 25.732572],\n              [108.940423, 25.740119],\n              [108.896076, 25.71424],\n              [108.900387, 25.682423],\n              [108.953974, 25.686738],\n              [108.953974, 25.686738],\n              [109.007561, 25.734728],\n              [109.043285, 25.738502],\n              [109.07901, 25.72071],\n              [109.075314, 25.693749],\n              [109.030966, 25.629556],\n              [109.051908, 25.566949],\n              [109.088249, 25.550752],\n              [109.024807, 25.51241],\n              [108.949046, 25.557231],\n              [108.8893, 25.543193],\n              [108.890532, 25.556151],\n              [108.826474, 25.550212],\n              [108.814772, 25.526992],\n              [108.781511, 25.554531],\n              [108.799989, 25.576666],\n              [108.783975, 25.628477],\n              [108.724844, 25.634952],\n              [108.68912, 25.623081],\n              [108.68604, 25.587462],\n              [108.660787, 25.584763],\n              [108.658323, 25.550212],\n              [108.68912, 25.533473],\n              [108.634917, 25.520512],\n              [108.6072, 25.491885],\n              [108.600425, 25.432448],\n              [108.62999, 25.335666],\n              [108.625062, 25.308076],\n              [108.589338, 25.335125],\n              [108.585642, 25.365952],\n              [108.471693, 25.458928],\n              [108.418723, 25.443257],\n              [108.400244, 25.491344],\n              [108.359592, 25.513491],\n              [108.348506, 25.536173],\n              [108.308469, 25.525912],\n              [108.280752, 25.48],\n              [108.241332, 25.46217],\n              [108.251803, 25.430286],\n              [108.192673, 25.458928],\n              [108.162492, 25.444878],\n              [108.193289, 25.405421],\n              [108.142782, 25.390825],\n              [108.152021, 25.324306],\n              [108.143398, 25.269658],\n              [108.115065, 25.210112],\n              [108.080572, 25.193867],\n              [108.001732, 25.196574],\n              [107.928435, 25.155954],\n              [107.872384, 25.141327],\n              [107.839124, 25.115861],\n              [107.762747, 25.125073],\n              [107.789233, 25.15487],\n              [107.760283, 25.188451],\n              [107.762131, 25.229061],\n              [107.741805, 25.24043],\n              [107.700537, 25.194408],\n              [107.696226, 25.219858],\n              [107.661733, 25.258833],\n              [107.659885, 25.316192],\n              [107.632168, 25.310241],\n              [107.599523, 25.250714],\n              [107.576734, 25.256668],\n              [107.512676, 25.209029],\n              [107.472024, 25.213902],\n              [107.489886, 25.276693],\n              [107.481263, 25.299961],\n              [107.432604, 25.289139],\n              [107.409198, 25.347024],\n              [107.420901, 25.392987],\n              [107.375937, 25.411908],\n              [107.358691, 25.393528],\n              [107.318039, 25.401637],\n              [107.308184, 25.432988],\n              [107.336517, 25.461089],\n              [107.263836, 25.543193],\n              [107.232423, 25.556691],\n              [107.228728, 25.604733],\n              [107.205322, 25.607971],\n              [107.185612, 25.578825],\n              [107.064272, 25.559391],\n              [107.066736, 25.50917],\n              [107.015613, 25.495666],\n              [106.996519, 25.442716],\n              [106.963874, 25.437852],\n              [106.987896, 25.358922],\n              [107.012533, 25.352973],\n              [107.013765, 25.275611],\n              [106.975577, 25.232851],\n              [106.933077, 25.250714],\n              [106.904128, 25.231768],\n              [106.888113, 25.181953],\n              [106.853005, 25.186827],\n              [106.787715, 25.17112],\n              [106.764926, 25.183036],\n              [106.732281, 25.162454],\n              [106.691013, 25.179245],\n              [106.644817, 25.164621],\n              [106.63989, 25.132658],\n              [106.590615, 25.08768],\n              [106.551195, 25.082802],\n              [106.519782, 25.054072],\n              [106.450181, 25.033468],\n              [106.442173, 25.019369],\n              [106.332536, 24.988454],\n              [106.304819, 24.973807],\n              [106.253696, 24.971094],\n              [106.215508, 24.981944],\n              [106.191486, 24.95319],\n              [106.145291, 24.954275],\n              [106.197645, 24.885889],\n              [106.206269, 24.851139],\n              [106.173008, 24.760417],\n              [106.150218, 24.762591],\n              [106.113878, 24.714216],\n              [106.047356, 24.684312],\n              [106.024566, 24.633186],\n              [105.961741, 24.677786],\n              [105.942031, 24.725088],\n              [105.863806, 24.729437],\n              [105.827466, 24.702799],\n              [105.767104, 24.719109],\n              [105.70551, 24.768569],\n              [105.617431, 24.78161],\n              [105.607576, 24.803885],\n              [105.573083, 24.797366],\n              [105.497322, 24.809318],\n              [105.493011, 24.833217],\n              [105.457286, 24.87123],\n              [105.428337, 24.930941],\n              [105.365511, 24.943423],\n              [105.334099, 24.9266],\n              [105.267577, 24.929313],\n              [105.251563, 24.967296],\n              [105.212758, 24.995505],\n              [105.178266, 24.985199],\n              [105.157324, 24.958616],\n              [105.131454, 24.959701],\n              [105.09573, 24.92877],\n              [105.096346, 24.928228],\n              [105.082179, 24.915745],\n              [105.077868, 24.918459],\n              [105.039064, 24.872859],\n              [105.026745, 24.815836],\n              [105.03352, 24.787586],\n              [104.899245, 24.752809],\n              [104.865985, 24.730524],\n              [104.841963, 24.676155],\n              [104.771746, 24.659839],\n              [104.729246, 24.617953],\n              [104.703377, 24.645698],\n              [104.628848, 24.660927],\n              [104.595587, 24.709323],\n              [104.529682, 24.731611],\n              [104.489646, 24.653313],\n              [104.520443, 24.535228],\n              [104.550008, 24.518894],\n              [104.575877, 24.424661],\n              [104.616529, 24.421937],\n              [104.63008, 24.397958],\n              [104.610986, 24.377246],\n              [104.641783, 24.367979],\n              [104.70892, 24.321087],\n              [104.721239, 24.340173],\n              [104.703377, 24.419757],\n              [104.715695, 24.441552],\n              [104.74834, 24.435559],\n              [104.765587, 24.45953],\n              [104.784681, 24.443732],\n              [104.83642, 24.446456],\n              [104.914028, 24.426296],\n              [104.930042, 24.411038],\n              [104.979933, 24.412673],\n              [105.042759, 24.442097],\n              [105.106817, 24.414853],\n              [105.111744, 24.37234],\n              [105.138846, 24.376701],\n              [105.188121, 24.347261],\n              [105.196744, 24.326541],\n              [105.164715, 24.288362],\n              [105.215222, 24.214699],\n              [105.24294, 24.208695],\n              [105.229389, 24.165567],\n              [105.182577, 24.167205],\n              [105.20044, 24.105491],\n              [105.260186, 24.061236],\n              [105.292831, 24.074896],\n              [105.273121, 24.092927],\n              [105.320548, 24.116416],\n              [105.334099, 24.094566],\n              [105.395692, 24.065607],\n              [105.406163, 24.043748],\n              [105.493011, 24.016965],\n              [105.533663, 24.130071],\n              [105.594641, 24.137718],\n              [105.628518, 24.126794],\n              [105.649459, 24.032816],\n              [105.704278, 24.0667],\n              [105.739387, 24.059596],\n              [105.765256, 24.073804],\n              [105.802212, 24.051945],\n              [105.796669, 24.023524],\n              [105.841633, 24.03063],\n              [105.859495, 24.056864],\n              [105.89214, 24.040468],\n              [105.908154, 24.069432],\n              [105.901995, 24.099482],\n              [105.919241, 24.122425],\n              [105.963589, 24.110954],\n              [105.998081, 24.120786],\n              [106.011632, 24.099482],\n              [106.04982, 24.089649],\n              [106.053516, 24.051399],\n              [106.096631, 24.018058],\n              [106.091088, 23.998924],\n              [106.128044, 23.956819],\n              [106.157609, 23.891174],\n              [106.192718, 23.879135],\n              [106.173008, 23.861622],\n              [106.192102, 23.824947],\n              [106.136667, 23.795381],\n              [106.157609, 23.724175],\n              [106.149602, 23.665538],\n              [106.120653, 23.605229],\n              [106.141595, 23.569579],\n              [106.08616, 23.524043],\n              [106.071994, 23.495506],\n              [106.039965, 23.484529],\n              [105.999929, 23.447748],\n              [105.986378, 23.489469],\n              [105.935871, 23.508678],\n              [105.913081, 23.499348],\n              [105.89214, 23.52514],\n              [105.852103, 23.526786],\n              [105.815763, 23.507031],\n              [105.805908, 23.467512],\n              [105.758481, 23.459826],\n              [105.699966, 23.40162],\n              [105.637757, 23.404366],\n              [105.694423, 23.363168],\n              [105.699966, 23.327453],\n              [105.649459, 23.346136],\n              [105.593409, 23.312614],\n              [105.560148, 23.257093],\n              [105.526272, 23.234548],\n              [105.542902, 23.184495],\n              [105.558916, 23.177893],\n              [105.574931, 23.066165],\n              [105.625438, 23.064513],\n              [105.648844, 23.078828],\n              [105.724604, 23.06231],\n              [105.74185, 23.030921],\n              [105.780039, 23.022659],\n              [105.805908, 22.994565],\n              [105.839169, 22.987403],\n              [105.879205, 22.916865],\n              [105.893987, 22.936707],\n              [105.959277, 22.948832],\n              [105.994385, 22.93781],\n              [106.019639, 22.990709],\n              [106.08616, 22.996218],\n              [106.106486, 22.980792],\n              [106.153914, 22.988505],\n              [106.206885, 22.978588],\n              [106.270326, 22.907494],\n              [106.258007, 22.889852],\n              [106.286957, 22.867245],\n              [106.366413, 22.857871],\n              [106.37134, 22.878273],\n              [106.41384, 22.877171],\n              [106.504383, 22.91025],\n              [106.525941, 22.946628],\n              [106.562282, 22.923479],\n              [106.606013, 22.925684],\n              [106.631267, 22.88103],\n              [106.657136, 22.863385],\n              [106.674998, 22.891506],\n              [106.716882, 22.881582],\n              [106.709491, 22.866142],\n              [106.774781, 22.812643],\n              [106.776012, 22.813746],\n              [106.778476, 22.814298],\n              [106.779092, 22.813746],\n              [106.779708, 22.813195],\n              [106.78094, 22.813195],\n              [106.784636, 22.812643],\n              [106.796338, 22.812091],\n              [106.801882, 22.815401],\n              [106.804346, 22.816505],\n              [106.808657, 22.817608],\n              [106.813585, 22.817608],\n              [106.838838, 22.803265],\n              [106.820976, 22.768504],\n              [106.768621, 22.739254],\n              [106.780324, 22.708894],\n              [106.756302, 22.68957],\n              [106.711955, 22.575228],\n              [106.650361, 22.575228],\n              [106.61402, 22.602303],\n              [106.585071, 22.517192],\n              [106.588151, 22.472958],\n              [106.560434, 22.455813],\n              [106.588767, 22.374486],\n              [106.562897, 22.345706],\n              [106.663296, 22.33076],\n              [106.670071, 22.283144],\n              [106.688549, 22.260438],\n              [106.7021, 22.207257],\n              [106.673151, 22.182322],\n              [106.706411, 22.160707],\n              [106.691629, 22.13521],\n              [106.71565, 22.089745],\n              [106.706411, 22.021521],\n              [106.683006, 21.999882],\n              [106.698404, 21.959925],\n              [106.73844, 22.008205],\n              [106.790179, 22.004876],\n              [106.802498, 21.98157],\n              [106.859164, 21.986009],\n              [106.926302, 21.967695],\n              [106.935541, 21.933836],\n              [106.974345, 21.923288],\n              [106.999598, 21.947714],\n              [107.05996, 21.914959],\n              [107.058729, 21.887196],\n              [107.018693, 21.859427],\n              [107.018077, 21.81943],\n              [107.093837, 21.803317],\n              [107.148656, 21.758858],\n              [107.194851, 21.736624],\n              [107.199163, 21.718833],\n              [107.242279, 21.703265],\n              [107.271844, 21.727173],\n              [107.310648, 21.733844],\n              [107.356843, 21.667674],\n              [107.363619, 21.602031],\n              [107.388256, 21.594241],\n              [107.431372, 21.642088],\n              [107.477567, 21.659888],\n              [107.500973, 21.613715],\n              [107.486806, 21.59591],\n              [107.547168, 21.58645],\n              [107.584741, 21.614828],\n              [107.603219, 21.597579],\n              [107.712856, 21.616497],\n              [107.807711, 21.655438],\n              [107.837892, 21.640419],\n              [107.863761, 21.650988],\n              [107.892095, 21.622617],\n              [107.893942, 21.596466],\n              [107.929051, 21.585893],\n              [107.958, 21.534131],\n              [108.034376, 21.545821],\n              [108.108289, 21.508521],\n              [108.193905, 21.519656],\n              [108.156332, 21.55083],\n              [108.205608, 21.597579],\n              [108.241332, 21.599805],\n              [108.249955, 21.561406],\n              [108.210535, 21.505737],\n              [108.230245, 21.491259],\n              [108.330027, 21.540254],\n              [108.397781, 21.533017],\n              [108.492635, 21.554727],\n              [108.591802, 21.677129],\n              [108.626294, 21.67991],\n              [108.658939, 21.643757],\n              [108.678033, 21.659331],\n              [108.735931, 21.628181],\n              [108.734084, 21.626512],\n              [108.745786, 21.602587],\n              [108.801837, 21.626512],\n              [108.83325, 21.610933],\n              [108.881293, 21.627068],\n              [108.937959, 21.589789],\n              [109.093792, 21.579215],\n              [109.09872, 21.571424],\n              [109.110422, 21.568085],\n              [109.138756, 21.567528],\n              [109.142451, 21.511861],\n              [109.074698, 21.489589],\n              [109.039589, 21.457844],\n              [109.046365, 21.424421],\n              [109.095024, 21.419407],\n              [109.138756, 21.388762],\n              [109.186183, 21.390991],\n              [109.245929, 21.425536],\n              [109.41716, 21.438906],\n              [109.484914, 21.453388],\n              [109.529877, 21.437234],\n              [109.540964, 21.466199],\n              [109.576689, 21.493487],\n              [109.604406, 21.523553],\n              [109.612413, 21.556953],\n              [109.654913, 21.493487],\n              [109.704188, 21.462857],\n              [109.785492, 21.45673],\n              [109.788572, 21.490702],\n              [109.754695, 21.556396],\n              [109.742992, 21.616497],\n              [109.778101, 21.670455],\n              [109.786108, 21.637638],\n              [109.839695, 21.636525],\n              [109.888354, 21.652101],\n              [109.888354, 21.652101],\n              [109.916071, 21.668787],\n              [109.940093, 21.769419],\n              [109.94502, 21.84443],\n              [109.999839, 21.881643],\n              [110.050962, 21.857205],\n              [110.101469, 21.86998],\n              [110.12857, 21.902744],\n              [110.196323, 21.899968],\n              [110.212338, 21.886085],\n              [110.212338, 21.886085],\n              [110.224041, 21.882198],\n              [110.224041, 21.882198],\n              [110.283787, 21.892194],\n              [110.290562, 21.917736],\n              [110.337374, 21.887751],\n              [110.391576, 21.89386],\n              [110.378642, 21.939942],\n              [110.378642, 21.939942],\n              [110.374946, 21.967695],\n              [110.374946, 21.967695],\n              [110.352772, 21.97602],\n              [110.359547, 22.015973],\n              [110.35154, 22.097508],\n              [110.364475, 22.125785],\n              [110.326287, 22.152393],\n              [110.34846, 22.195621],\n              [110.378026, 22.164587],\n              [110.414366, 22.208365],\n              [110.456866, 22.189526],\n              [110.505525, 22.14297],\n              [110.55788, 22.196175],\n              [110.602843, 22.18343],\n              [110.598532, 22.162924],\n              [110.629329, 22.149068],\n              [110.678604, 22.172901],\n              [110.646575, 22.220554],\n              [110.687843, 22.249914],\n              [110.725415, 22.29588],\n              [110.759292, 22.274837],\n              [110.787009, 22.28259],\n              [110.749437, 22.329653],\n              [110.74143, 22.361757],\n              [110.711249, 22.369506],\n              [110.712481, 22.440879],\n              [110.688459, 22.477935],\n              [110.74143, 22.464109],\n              [110.740198, 22.498947],\n              [110.762988, 22.518298],\n              [110.749437, 22.556991],\n              [110.778386, 22.585174],\n              [110.812263, 22.576333],\n              [110.897878, 22.591805],\n              [110.896031, 22.613352],\n              [110.950233, 22.61059],\n              [110.958856, 22.636553],\n              [110.997045, 22.631582],\n              [111.055559, 22.648705],\n              [111.089435, 22.695643],\n              [111.058023, 22.729871],\n              [111.118385, 22.744773],\n              [111.185522, 22.735942],\n              [111.218167, 22.748085],\n              [111.358601, 22.889301],\n              [111.374615, 22.938361],\n              [111.362913, 22.967568],\n              [111.403565, 22.99126],\n              [111.389398, 23.005583],\n              [111.433746, 23.036428],\n              [111.43313, 23.073322],\n              [111.402333, 23.066165],\n              [111.377695, 23.082132],\n              [111.365992, 23.14488],\n              [111.38447, 23.16744],\n              [111.388782, 23.210349],\n              [111.36476, 23.240047],\n              [111.353058, 23.284582],\n              [111.376463, 23.30437],\n              [111.363528, 23.340641],\n              [111.389398, 23.375804],\n              [111.383239, 23.399423],\n              [111.399869, 23.469159],\n              [111.428818, 23.466414],\n              [111.479941, 23.532822],\n              [111.487332, 23.626615],\n              [111.555702, 23.64087],\n              [111.615448, 23.639225],\n              [111.614832, 23.65896],\n              [111.666571, 23.718696],\n              [111.621607, 23.725819],\n              [111.627766, 23.78881],\n              [111.654868, 23.833159],\n              [111.683201, 23.822758],\n              [111.683201, 23.822758],\n              [111.722621, 23.823305],\n              [111.8107, 23.80688],\n              [111.824867, 23.832612],\n              [111.812548, 23.887343],\n              [111.845809, 23.904305],\n              [111.854432, 23.947521],\n              [111.911714, 23.943693],\n              [111.940664, 23.987989],\n              [111.92157, 24.012045],\n              [111.878454, 24.109862],\n              [111.886461, 24.163929],\n              [111.871062, 24.176487],\n              [111.877222, 24.227252],\n              [111.912946, 24.221795],\n              [111.958526, 24.263813],\n              [111.986243, 24.25672],\n              [111.990555, 24.279634],\n              [112.026279, 24.294908],\n              [112.05954, 24.339628],\n              [112.057692, 24.387057],\n              [112.025047, 24.438828],\n              [111.985011, 24.467701],\n              [112.009649, 24.503103],\n              [112.007185, 24.534684],\n              [111.972077, 24.578775],\n              [111.936968, 24.595645],\n              [111.927729, 24.629378],\n              [111.953598, 24.64733],\n              [111.939432, 24.686487],\n              [111.961606, 24.721283],\n              [112.024431, 24.740308],\n              [111.951135, 24.769655],\n              [111.929577, 24.75607],\n              [111.875374, 24.756613],\n              [111.868599, 24.771829],\n              [111.814396, 24.770199],\n              [111.783599, 24.785957],\n              [111.708455, 24.788673],\n              [111.666571, 24.760961],\n              [111.637621, 24.715303],\n              [111.641933, 24.684856],\n              [111.588962, 24.690837],\n              [111.570484, 24.64461],\n              [111.526752, 24.637538],\n              [111.499035, 24.667997],\n              [111.451608, 24.665822],\n              [111.431282, 24.687574],\n              [111.461463, 24.728894],\n              [111.479325, 24.797366],\n              [111.449144, 24.857113],\n              [111.447296, 24.892947],\n              [111.470086, 24.92877],\n              [111.434977, 24.951562],\n              [111.43313, 24.979774],\n              [111.460231, 24.992793],\n              [111.467622, 25.02208],\n              [111.416499, 25.047566],\n              [111.435593, 25.093642],\n              [111.375231, 25.128324],\n              [111.36784, 25.108817],\n              [111.321645, 25.105023],\n              [111.274833, 25.151078],\n              [111.221862, 25.106649],\n              [111.200921, 25.074672],\n              [111.139943, 25.042144],\n              [111.101754, 25.035095],\n              [111.100522, 24.945593],\n              [111.009363, 24.921172],\n              [110.968711, 24.975434],\n              [110.951465, 25.04377],\n              [110.98411, 25.101772],\n              [110.998892, 25.161371],\n              [111.112841, 25.21715],\n              [111.103602, 25.285351],\n              [111.138711, 25.303748],\n              [111.184906, 25.367034],\n              [111.210776, 25.363248],\n              [111.279145, 25.42326],\n              [111.32842, 25.521592],\n              [111.324724, 25.564249],\n              [111.343202, 25.602574],\n              [111.309942, 25.645203],\n              [111.30871, 25.720171],\n              [111.399869, 25.744431],\n              [111.442369, 25.77192],\n              [111.43313, 25.84627],\n              [111.4861, 25.859196],\n              [111.460231, 25.885042],\n              [111.383239, 25.881812],\n              [111.376463, 25.906039],\n              [111.346282, 25.906577],\n              [111.297007, 25.874274],\n              [111.29208, 25.854349],\n              [111.251428, 25.864581],\n              [111.230486, 25.916267],\n              [111.189834, 25.953402],\n              [111.235413, 26.048071],\n              [111.267442, 26.058824],\n              [111.244652, 26.078177],\n              [111.26621, 26.095914],\n              [111.258203, 26.151796],\n              [111.274833, 26.183486],\n              [111.271754, 26.217316],\n              [111.293311, 26.222148],\n              [111.277913, 26.272066],\n              [111.228022, 26.261333],\n              [111.204616, 26.276359],\n              [111.208928, 26.30426],\n              [111.090667, 26.308016],\n              [111.008132, 26.336982],\n              [111.008747, 26.35897],\n              [110.974255, 26.385778],\n              [110.94469, 26.373447],\n              [110.944074, 26.326791],\n              [110.926212, 26.320354],\n              [110.939762, 26.286554],\n              [110.836284, 26.255966],\n              [110.759292, 26.248451],\n              [110.73527, 26.270993],\n              [110.742046, 26.313917],\n              [110.721104, 26.294066],\n              [110.673676, 26.317135],\n              [110.643495, 26.308552],\n              [110.612083, 26.333764],\n              [110.584365, 26.296749],\n              [110.552952, 26.283335],\n              [110.546793, 26.233421],\n              [110.495054, 26.166299],\n              [110.477808, 26.179727],\n              [110.437772, 26.153945],\n              [110.373098, 26.088927],\n              [110.325671, 25.975462],\n              [110.257301, 25.961473],\n              [110.24991, 26.010965],\n              [110.181541, 26.060437],\n              [110.168606, 26.028713],\n              [110.100853, 26.020108],\n              [110.065128, 26.050221],\n              [110.100853, 26.132455],\n              [110.099005, 26.168985],\n              [110.03002, 26.166299],\n              [109.970274, 26.195301],\n              [109.904368, 26.135679],\n              [109.898825, 26.095377],\n              [109.864332, 26.027637],\n              [109.814441, 26.041081],\n              [109.782412, 25.996981],\n              [109.806434, 25.973848],\n              [109.826144, 25.911422],\n              [109.811361, 25.877504],\n              [109.779333, 25.866196],\n              [109.768246, 25.890427],\n              [109.685094, 25.880197],\n              [109.67955, 25.921649],\n              [109.693717, 25.959321],\n              [109.710963, 25.954478],\n              [109.730057, 25.989988],\n              [109.649369, 26.016882],\n              [109.635203, 26.047533],\n              [109.588391, 26.019571],\n              [109.560058, 26.021184],\n              [109.513247, 25.998056],\n              [109.48245, 26.029788]\n            ]\n          ],\n          [\n            [\n              [105.096346, 24.928228],\n              [105.09573, 24.92877],\n              [105.077868, 24.918459],\n              [105.082179, 24.915745],\n              [105.096346, 24.928228]\n            ]\n          ],\n          [\n            [\n              [109.088249, 21.014934],\n              [109.11227, 21.02499],\n              [109.117814, 21.017727],\n              [109.144299, 21.041189],\n              [109.138756, 21.067439],\n              [109.09256, 21.057386],\n              [109.088865, 21.031134],\n              [109.088249, 21.014934]\n            ]\n          ]\n        ]\n      }\n    },\n    {\n      \"type\": \"Feature\",\n      \"properties\": {\n        \"adcode\": 460000,\n        \"name\": \"海南省\",\n        \"center\": [110.33119, 20.031971],\n        \"centroid\": [109.754859, 19.189767],\n        \"childrenNum\": 19,\n        \"level\": \"province\",\n        \"parent\": { \"adcode\": 100000 },\n        \"subFeatureIndex\": 20,\n        \"acroutes\": [100000]\n      },\n      \"geometry\": {\n        \"type\": \"MultiPolygon\",\n        \"coordinates\": [\n          [\n            [\n              [110.106396, 20.026812],\n              [110.042339, 19.991384],\n              [109.997375, 19.980136],\n              [109.965346, 19.993634],\n              [109.898825, 19.994196],\n              [109.855093, 19.984073],\n              [109.814441, 19.993072],\n              [109.76147, 19.981261],\n              [109.712195, 20.017253],\n              [109.657993, 20.01163],\n              [109.585312, 19.98801],\n              [109.526797, 19.943573],\n              [109.498464, 19.873236],\n              [109.411001, 19.895184],\n              [109.349407, 19.898561],\n              [109.300748, 19.917693],\n              [109.25948, 19.898561],\n              [109.255784, 19.867045],\n              [109.231147, 19.863105],\n              [109.159082, 19.79048],\n              [109.169553, 19.736411],\n              [109.147379, 19.704863],\n              [109.093792, 19.68965],\n              [109.048829, 19.619764],\n              [108.993394, 19.587065],\n              [108.92872, 19.524468],\n              [108.855424, 19.469182],\n              [108.806148, 19.450561],\n              [108.765496, 19.400894],\n              [108.694047, 19.387346],\n              [108.644772, 19.349518],\n              [108.609048, 19.276661],\n              [108.591186, 19.141592],\n              [108.598577, 19.055633],\n              [108.630606, 19.003017],\n              [108.637997, 18.924346],\n              [108.595497, 18.872256],\n              [108.593033, 18.809386],\n              [108.65278, 18.740258],\n              [108.663866, 18.67337],\n              [108.641077, 18.565614],\n              [108.644772, 18.486738],\n              [108.68912, 18.447571],\n              [108.776583, 18.441894],\n              [108.881293, 18.416344],\n              [108.905315, 18.389087],\n              [108.944735, 18.314107],\n              [109.006329, 18.323198],\n              [109.108575, 18.323766],\n              [109.138756, 18.268081],\n              [109.17448, 18.260125],\n              [109.287813, 18.264671],\n              [109.355566, 18.215221],\n              [109.441182, 18.199303],\n              [109.467051, 18.173718],\n              [109.527413, 18.169169],\n              [109.584696, 18.143579],\n              [109.661688, 18.175424],\n              [109.726362, 18.177698],\n              [109.749767, 18.193618],\n              [109.785492, 18.339672],\n              [109.919767, 18.375457],\n              [110.022629, 18.360121],\n              [110.070672, 18.376025],\n              [110.090382, 18.399309],\n              [110.116867, 18.506602],\n              [110.214186, 18.578662],\n              [110.246215, 18.609859],\n              [110.329366, 18.642185],\n              [110.367555, 18.631977],\n              [110.499366, 18.651824],\n              [110.499366, 18.751592],\n              [110.578206, 18.784458],\n              [110.590525, 18.838841],\n              [110.585597, 18.88075],\n              [110.619474, 19.152334],\n              [110.676756, 19.286264],\n              [110.706321, 19.320153],\n              [110.729727, 19.378878],\n              [110.787009, 19.399765],\n              [110.844292, 19.449996],\n              [110.888023, 19.518827],\n              [110.920668, 19.552668],\n              [111.008747, 19.60398],\n              [111.061718, 19.612436],\n              [111.071573, 19.628784],\n              [111.043856, 19.763448],\n              [111.013675, 19.850159],\n              [110.966248, 20.018377],\n              [110.940994, 20.028499],\n              [110.871393, 20.01163],\n              [110.808567, 20.035808],\n              [110.778386, 20.068415],\n              [110.744509, 20.074036],\n              [110.717408, 20.148778],\n              [110.687843, 20.163947],\n              [110.655814, 20.134169],\n              [110.562191, 20.110006],\n              [110.526467, 20.07516],\n              [110.495054, 20.077408],\n              [110.387265, 20.113378],\n              [110.318279, 20.108882],\n              [110.28933, 20.056047],\n              [110.243135, 20.077408],\n              [110.144585, 20.074598],\n              [110.106396, 20.026812]\n            ]\n          ],\n          [\n            [\n              [112.208597, 3.876129],\n              [112.241858, 3.845677],\n              [112.280046, 3.86777],\n              [112.260336, 3.917925],\n              [112.219068, 3.908969],\n              [112.208597, 3.876129]\n            ]\n          ],\n          [\n            [\n              [113.266165, 8.125929],\n              [113.311129, 8.177469],\n              [113.343157, 8.193463],\n              [113.288955, 8.119412],\n              [113.349933, 8.172137],\n              [113.386273, 8.238479],\n              [113.386273, 8.289412],\n              [113.354244, 8.304217],\n              [113.353628, 8.237887],\n              [113.293882, 8.176284],\n              [113.266165, 8.125929]\n            ]\n          ],\n          [\n            [\n              [111.99733, 3.848065],\n              [112.015192, 3.823583],\n              [112.064467, 3.830152],\n              [112.073707, 3.865979],\n              [112.03367, 3.892251],\n              [111.99733, 3.848065]\n            ]\n          ],\n          [\n            [\n              [111.463311, 17.077491],\n              [111.536607, 17.104949],\n              [111.4861, 17.058039],\n              [111.559397, 17.087788],\n              [111.542151, 17.11982],\n              [111.452224, 17.092936],\n              [111.463311, 17.077491]\n            ]\n          ],\n          [\n            [\n              [117.708319, 15.182712],\n              [117.712631, 15.118592],\n              [117.726798, 15.105303],\n              [117.827812, 15.111659],\n              [117.72495, 15.131302],\n              [117.720638, 15.195418],\n              [117.74466, 15.217941],\n              [117.784696, 15.16885],\n              [117.838899, 15.15903],\n              [117.782848, 15.187333],\n              [117.748355, 15.230068],\n              [117.715095, 15.222561],\n              [117.708319, 15.182712]\n            ]\n          ],\n          [\n            [\n              [112.241858, 3.942404],\n              [112.292365, 3.946583],\n              [112.288053, 3.97345],\n              [112.254177, 3.97942],\n              [112.241858, 3.942404]\n            ]\n          ],\n          [\n            [\n              [111.734324, 16.19732],\n              [111.779903, 16.19732],\n              [111.81686, 16.224329],\n              [111.813164, 16.261676],\n              [111.782367, 16.273741],\n              [111.716462, 16.249036],\n              [111.789758, 16.250186],\n              [111.790374, 16.220307],\n              [111.734324, 16.19732]\n            ]\n          ],\n          [\n            [\n              [111.649324, 16.255931],\n              [111.577875, 16.208239],\n              [111.56802, 16.162834],\n              [111.611136, 16.156511],\n              [111.690592, 16.211112],\n              [111.606825, 16.177779],\n              [111.598817, 16.198469],\n              [111.681353, 16.262251],\n              [111.649324, 16.255931]\n            ]\n          ],\n          [\n            [\n              [113.896887, 7.607204],\n              [113.919677, 7.566865],\n              [113.98743, 7.536014],\n              [114.058879, 7.537794],\n              [114.157429, 7.561525],\n              [114.289856, 7.617288],\n              [114.368696, 7.638642],\n              [114.407501, 7.683126],\n              [114.419819, 7.765557],\n              [114.464167, 7.814771],\n              [114.540543, 7.862201],\n              [114.555326, 7.891249],\n              [114.540543, 7.945783],\n              [114.511594, 7.966527],\n              [114.47279, 7.968898],\n              [114.414892, 7.952895],\n              [114.268298, 7.870501],\n              [114.211632, 7.786904],\n              [114.095219, 7.721082],\n              [114.029314, 7.670078],\n              [113.921524, 7.639235],\n              [113.896887, 7.607204]\n            ]\n          ],\n          [\n            [\n              [113.976959, 8.872888],\n              [114.013299, 8.836817],\n              [114.035473, 8.783591],\n              [114.060111, 8.816119],\n              [114.041017, 8.843913],\n              [113.989894, 8.878801],\n              [113.976959, 8.872888]\n            ]\n          ],\n          [\n            [\n              [113.956017, 8.840365],\n              [113.975111, 8.793054],\n              [114.012068, 8.798376],\n              [113.977575, 8.841548],\n              [113.956017, 8.840365]\n            ]\n          ],\n          [\n            [\n              [111.97454, 16.323715],\n              [112.002258, 16.306484],\n              [112.07617, 16.323715],\n              [112.074938, 16.349558],\n              [112.047221, 16.360469],\n              [112.002874, 16.350707],\n              [111.97454, 16.323715]\n            ]\n          ],\n          [\n            [\n              [111.739251, 16.452898],\n              [111.766969, 16.470116],\n              [111.786679, 16.520039],\n              [111.759577, 16.545857],\n              [111.765737, 16.495366],\n              [111.739251, 16.452898]\n            ]\n          ],\n          [\n            [\n              [112.216604, 8.866383],\n              [112.206133, 8.88767],\n              [112.180264, 8.862244],\n              [112.216604, 8.866383]\n            ]\n          ],\n          [\n            [\n              [113.792177, 7.373422],\n              [113.828518, 7.362145],\n              [113.829134, 7.383511],\n              [113.792177, 7.373422]\n            ]\n          ],\n          [\n            [\n              [114.194386, 8.764664],\n              [114.201161, 8.727991],\n              [114.248588, 8.724442],\n              [114.222103, 8.784773],\n              [114.194386, 8.764664]\n            ]\n          ],\n          [\n            [\n              [112.232619, 16.996239],\n              [112.207981, 16.987081],\n              [112.222764, 16.960751],\n              [112.292981, 16.96762],\n              [112.266496, 16.993949],\n              [112.232619, 16.996239]\n            ]\n          ],\n          [\n            [\n              [114.689601, 10.345648],\n              [114.702536, 10.312677],\n              [114.725941, 10.319154],\n              [114.747499, 10.37214],\n              [114.717318, 10.380381],\n              [114.689601, 10.345648]\n            ]\n          ],\n          [\n            [\n              [115.837712, 9.709775],\n              [115.861117, 9.694438],\n              [115.867277, 9.650191],\n              [115.901153, 9.67084],\n              [115.925791, 9.781734],\n              [115.901153, 9.795888],\n              [115.870972, 9.778785],\n              [115.837712, 9.709775]\n            ]\n          ],\n          [\n            [\n              [114.617536, 9.965688],\n              [114.642173, 9.917351],\n              [114.672355, 9.927963],\n              [114.685905, 9.979245],\n              [114.617536, 9.965688]\n            ]\n          ],\n          [\n            [\n              [113.769387, 7.636862],\n              [113.773699, 7.601865],\n              [113.814967, 7.603051],\n              [113.831597, 7.644573],\n              [113.769387, 7.636862]\n            ]\n          ],\n          [\n            [\n              [109.463972, 7.344339],\n              [109.463972, 7.315254],\n              [109.513247, 7.320002],\n              [109.571761, 7.373422],\n              [109.654297, 7.479648],\n              [109.709115, 7.511095],\n              [109.791651, 7.524742],\n              [109.938861, 7.504569],\n              [109.948716, 7.522962],\n              [109.904984, 7.55144],\n              [109.816289, 7.572797],\n              [109.72205, 7.575763],\n              [109.653065, 7.559745],\n              [109.536037, 7.448792],\n              [109.463972, 7.344339]\n            ]\n          ],\n          [\n            [\n              [116.273181, 8.879392],\n              [116.294123, 8.858105],\n              [116.332311, 8.901269],\n              [116.305826, 8.917233],\n              [116.273181, 8.879392]\n            ]\n          ],\n          [\n            [\n              [112.476531, 16.001247],\n              [112.570154, 16.011027],\n              [112.612037, 16.039212],\n              [112.588016, 16.070844],\n              [112.462364, 16.043813],\n              [112.448814, 16.005274],\n              [112.476531, 16.001247]\n            ]\n          ],\n          [\n            [\n              [112.537509, 8.846278],\n              [112.57077, 8.815527],\n              [112.639755, 8.818484],\n              [112.598487, 8.859288],\n              [112.537509, 8.846278]\n            ]\n          ],\n          [\n            [\n              [114.469095, 10.836261],\n              [114.475254, 10.814512],\n              [114.513442, 10.848605],\n              [114.565181, 10.836261],\n              [114.593514, 10.856245],\n              [114.587355, 10.909138],\n              [114.55471, 10.900911],\n              [114.469095, 10.836261]\n            ]\n          ],\n          [\n            [\n              [112.409393, 16.294996],\n              [112.383524, 16.265698],\n              [112.411241, 16.2634],\n              [112.475915, 16.288677],\n              [112.531349, 16.285805],\n              [112.536893, 16.312228],\n              [112.509176, 16.317397],\n              [112.409393, 16.294996]\n            ]\n          ],\n          [\n            [\n              [116.48876, 10.395686],\n              [116.461658, 10.34918],\n              [116.467202, 10.309144],\n              [116.511549, 10.297957],\n              [116.566368, 10.304434],\n              [116.644592, 10.335051],\n              [116.637817, 10.365076],\n              [116.514629, 10.34918],\n              [116.542346, 10.41982],\n              [116.526332, 10.426883],\n              [116.48876, 10.395686]\n            ]\n          ],\n          [\n            [\n              [112.349031, 16.912088],\n              [112.360734, 16.925257],\n              [112.334249, 16.962469],\n              [112.30222, 16.963041],\n              [112.349031, 16.912088]\n            ]\n          ],\n          [\n            [\n              [111.500267, 16.45175],\n              [111.49534, 16.4374],\n              [111.545847, 16.43453],\n              [111.538455, 16.461507],\n              [111.500267, 16.45175]\n            ]\n          ],\n          [\n            [\n              [115.500177, 9.897897],\n              [115.54822, 9.869007],\n              [115.585177, 9.896128],\n              [115.581481, 9.917351],\n              [115.518039, 9.933857],\n              [115.500177, 9.897897]\n            ]\n          ],\n          [\n            [\n              [114.669891, 8.210048],\n              [114.691449, 8.18517],\n              [114.74134, 8.189316],\n              [114.726557, 8.21064],\n              [114.669891, 8.210048]\n            ]\n          ],\n          [\n            [\n              [114.507899, 8.120004],\n              [114.530073, 8.103415],\n              [114.595978, 8.120596],\n              [114.624311, 8.149626],\n              [114.595978, 8.15792],\n              [114.507899, 8.120004]\n            ]\n          ],\n          [\n            [\n              [115.16757, 8.386523],\n              [115.18112, 8.345668],\n              [115.235939, 8.321982],\n              [115.285214, 8.314876],\n              [115.315395, 8.356326],\n              [115.299381, 8.370537],\n              [115.202678, 8.395403],\n              [115.16757, 8.386523]\n            ]\n          ],\n          [\n            [\n              [113.895039, 8.00505],\n              [113.904894, 7.963564],\n              [113.9708, 7.944597],\n              [113.969568, 7.974825],\n              [113.940003, 8.018088],\n              [113.895039, 8.00505]\n            ]\n          ],\n          [\n            [\n              [115.436119, 9.393447],\n              [115.450286, 9.345028],\n              [115.469996, 9.3592],\n              [115.456445, 9.417064],\n              [115.436119, 9.393447]\n            ]\n          ],\n          [\n            [\n              [116.457347, 9.174326],\n              [116.477057, 9.137103],\n              [116.500462, 9.164282],\n              [116.457347, 9.174326]\n            ]\n          ],\n          [\n            [\n              [113.638192, 8.976942],\n              [113.654823, 8.962163],\n              [113.730583, 9.004133],\n              [113.719496, 9.020092],\n              [113.644968, 8.989355],\n              [113.638192, 8.976942]\n            ]\n          ],\n          [\n            [\n              [114.696992, 11.004322],\n              [114.710543, 11.001972],\n              [114.793079, 11.07657],\n              [114.799854, 11.10476],\n              [114.766593, 11.110045],\n              [114.710543, 11.039567],\n              [114.696992, 11.004322]\n            ]\n          ],\n          [\n            [\n              [114.62, 11.432264],\n              [114.652644, 11.436957],\n              [114.661884, 11.522584],\n              [114.621232, 11.518479],\n              [114.62, 11.432264]\n            ]\n          ],\n          [\n            [\n              [114.910723, 10.863298],\n              [114.931049, 10.841551],\n              [114.959998, 10.902087],\n              [114.934129, 10.902674],\n              [114.910723, 10.863298]\n            ]\n          ],\n          [\n            [\n              [111.572948, 16.470116],\n              [111.578491, 16.447158],\n              [111.614216, 16.44027],\n              [111.592658, 16.490775],\n              [111.572948, 16.470116]\n            ]\n          ],\n          [\n            [\n              [113.939387, 8.875253],\n              [113.912285, 8.888853],\n              [113.893807, 8.862836],\n              [113.916597, 8.837999],\n              [113.939387, 8.875253]\n            ]\n          ],\n          [\n            [\n              [109.936397, 7.848566],\n              [109.936397, 7.823665],\n              [109.988136, 7.8124],\n              [110.050346, 7.846194],\n              [110.082991, 7.896584],\n              [110.078063, 7.949339],\n              [110.0331, 7.944597],\n              [109.953027, 7.888878],\n              [109.936397, 7.848566]\n            ]\n          ],\n          [\n            [\n              [116.727128, 11.501473],\n              [116.765316, 11.430504],\n              [116.772092, 11.445755],\n              [116.738215, 11.514961],\n              [116.727128, 11.501473]\n            ]\n          ],\n          [\n            [\n              [111.690592, 16.587731],\n              [111.724469, 16.560198],\n              [111.717078, 16.59404],\n              [111.690592, 16.587731]\n            ]\n          ],\n          [\n            [\n              [112.507328, 16.466098],\n              [112.586784, 16.525777],\n              [112.575081, 16.537251],\n              [112.499321, 16.493645],\n              [112.507328, 16.466098]\n            ]\n          ],\n          [\n            [\n              [111.761425, 16.061642],\n              [111.791606, 16.028859],\n              [111.828563, 16.049565],\n              [111.829795, 16.070844],\n              [111.761425, 16.061642]\n            ]\n          ],\n          [\n            [\n              [113.845764, 10.018733],\n              [113.865474, 10.00341],\n              [113.872249, 10.123029],\n              [113.856851, 10.12185],\n              [113.845764, 10.018733]\n            ]\n          ],\n          [\n            [\n              [114.791847, 8.160882],\n              [114.777064, 8.114079],\n              [114.812173, 8.110524],\n              [114.818332, 8.141332],\n              [114.791847, 8.160882]\n            ]\n          ],\n          [\n            [\n              [116.557129, 9.745167],\n              [116.566368, 9.718623],\n              [116.593469, 9.723932],\n              [116.557129, 9.745167]\n            ]\n          ],\n          [\n            [\n              [115.28275, 10.191951],\n              [115.288294, 10.172513],\n              [115.333257, 10.200198],\n              [115.28891, 10.211388],\n              [115.28275, 10.191951]\n            ]\n          ],\n          [\n            [\n              [116.832454, 10.476908],\n              [116.855243, 10.468669],\n              [116.868794, 10.495739],\n              [116.832454, 10.476908]\n            ]\n          ],\n          [\n            [\n              [114.703151, 16.170307],\n              [114.816484, 16.198469],\n              [114.802934, 16.215135],\n              [114.704383, 16.199044],\n              [114.703151, 16.170307]\n            ]\n          ],\n          [\n            [\n              [115.97753, 9.321997],\n              [115.926407, 9.311366],\n              [115.943037, 9.269433],\n              [115.976298, 9.268252],\n              [115.999088, 9.293649],\n              [115.97753, 9.321997]\n            ]\n          ],\n          [\n            [\n              [113.660366, 9.231039],\n              [113.676997, 9.202683],\n              [113.697323, 9.225722],\n              [113.660366, 9.231039]\n            ]\n          ],\n          [\n            [\n              [114.665579, 7.590001],\n              [114.671739, 7.563898],\n              [114.72163, 7.59178],\n              [114.703767, 7.614915],\n              [114.665579, 7.590001]\n            ]\n          ],\n          [\n            [\n              [114.493116, 10.717504],\n              [114.513442, 10.722208],\n              [114.562717, 10.778064],\n              [114.539312, 10.793349],\n              [114.493116, 10.717504]\n            ]\n          ],\n          [\n            [\n              [117.770529, 10.773361],\n              [117.798862, 10.753371],\n              [117.835819, 10.803931],\n              [117.831507, 10.838612],\n              [117.801942, 10.839788],\n              [117.775457, 10.809222],\n              [117.770529, 10.773361]\n            ]\n          ],\n          [\n            [\n              [114.242429, 10.242014],\n              [114.263371, 10.239658],\n              [114.326197, 10.284414],\n              [114.312646, 10.300901],\n              [114.265219, 10.275581],\n              [114.242429, 10.242014]\n            ]\n          ],\n          [\n            [\n              [114.688985, 11.469217],\n              [114.722246, 11.429331],\n              [114.737644, 11.463938],\n              [114.720398, 11.49209],\n              [114.688985, 11.469217]\n            ]\n          ],\n          [\n            [\n              [116.638433, 10.503977],\n              [116.653215, 10.491031],\n              [116.70865, 10.492797],\n              [116.699411, 10.517511],\n              [116.638433, 10.503977]\n            ]\n          ],\n          [\n            [\n              [110.459946, 8.116449],\n              [110.471032, 8.072012],\n              [110.554184, 8.093935],\n              [110.599764, 8.156735],\n              [110.568351, 8.17273],\n              [110.461793, 8.128298],\n              [110.459946, 8.116449]\n            ]\n          ],\n          [\n            [\n              [111.463311, 8.52504],\n              [111.497187, 8.523857],\n              [111.509506, 8.550489],\n              [111.463311, 8.52504]\n            ]\n          ],\n          [\n            [\n              [115.258113, 8.509652],\n              [115.271048, 8.477098],\n              [115.296301, 8.510836],\n              [115.258113, 8.509652]\n            ]\n          ],\n          [\n            [\n              [113.221817, 8.073789],\n              [113.235984, 8.068456],\n              [113.283411, 8.111117],\n              [113.269861, 8.120004],\n              [113.221817, 8.073789]\n            ]\n          ],\n          [\n            [\n              [114.074893, 10.929118],\n              [114.064422, 10.904437],\n              [114.110002, 10.918541],\n              [114.096451, 10.947921],\n              [114.074893, 10.929118]\n            ]\n          ],\n          [\n            [\n              [117.258068, 10.320331],\n              [117.299336, 10.313855],\n              [117.299952, 10.343293],\n              [117.274698, 10.358011],\n              [117.258068, 10.320331]\n            ]\n          ],\n          [\n            [\n              [114.212864, 16.040937],\n              [114.31203, 16.034611],\n              [114.306487, 16.057616],\n              [114.268914, 16.059342],\n              [114.212864, 16.040937]\n            ]\n          ],\n          [\n            [\n              [110.609003, 8.010976],\n              [110.642879, 7.989049],\n              [110.641648, 8.031125],\n              [110.622553, 8.041199],\n              [110.609003, 8.010976]\n            ]\n          ],\n          [\n            [\n              [115.509416, 8.490712],\n              [115.521735, 8.460523],\n              [115.55438, 8.461115],\n              [115.569162, 8.49012],\n              [115.558691, 8.523265],\n              [115.514344, 8.519122],\n              [115.509416, 8.490712]\n            ]\n          ],\n          [\n            [\n              [111.539071, 7.54432],\n              [111.542767, 7.524742],\n              [111.583419, 7.543134],\n              [111.612368, 7.592374],\n              [111.566788, 7.606017],\n              [111.539071, 7.54432]\n            ]\n          ],\n          [\n            [\n              [111.657947, 8.672974],\n              [111.665955, 8.622683],\n              [111.717694, 8.6499],\n              [111.697368, 8.67889],\n              [111.657947, 8.672974]\n            ]\n          ],\n          [\n            [\n              [110.460561, 7.799948],\n              [110.487663, 7.783346],\n              [110.511684, 7.805878],\n              [110.485199, 7.827815],\n              [110.460561, 7.799948]\n            ]\n          ],\n          [\n            [\n              [112.345952, 8.926101],\n              [112.392763, 8.919598],\n              [112.384756, 8.946793],\n              [112.345952, 8.926101]\n            ]\n          ],\n          [\n            [\n              [116.469665, 9.810041],\n              [116.47952, 9.785272],\n              [116.50847, 9.79117],\n              [116.490607, 9.821246],\n              [116.469665, 9.810041]\n            ]\n          ],\n          [\n            [\n              [111.925265, 8.070827],\n              [111.949287, 8.05068],\n              [111.994866, 8.047125],\n              [112.018888, 8.065494],\n              [112.013344, 8.093342],\n              [111.95483, 8.106377],\n              [111.925265, 8.070827]\n            ]\n          ],\n          [\n            [\n              [114.457392, 15.599305],\n              [114.466631, 15.576823],\n              [114.491884, 15.59354],\n              [114.457392, 15.599305]\n            ]\n          ],\n          [\n            [\n              [114.985252, 11.078332],\n              [115.013585, 11.063062],\n              [115.021592, 11.085967],\n              [114.985252, 11.078332]\n            ]\n          ],\n          [\n            [\n              [114.10569, 16.004124],\n              [114.110618, 15.978235],\n              [114.132176, 16.007575],\n              [114.10569, 16.004124]\n            ]\n          ],\n          [\n            [\n              [116.045283, 10.095338],\n              [116.067457, 10.065876],\n              [116.09579, 10.09357],\n              [116.070537, 10.12892],\n              [116.045283, 10.095338]\n            ]\n          ],\n          [\n            [\n              [117.266691, 10.69163],\n              [117.348611, 10.672811],\n              [117.404661, 10.671047],\n              [117.418212, 10.702803],\n              [117.369553, 10.7422],\n              [117.293176, 10.735144],\n              [117.266691, 10.69163]\n            ]\n          ],\n          [\n            [\n              [114.854057, 7.244611],\n              [114.819564, 7.192957],\n              [114.869455, 7.198895],\n              [114.854057, 7.244611]\n            ]\n          ],\n          [\n            [\n              [112.823305, 8.910729],\n              [112.859645, 8.889444],\n              [112.873196, 8.908364],\n              [112.823305, 8.910729]\n            ]\n          ],\n          [\n            [\n              [111.670266, 7.651098],\n              [111.707223, 7.648725],\n              [111.749722, 7.703884],\n              [111.726317, 7.729977],\n              [111.691208, 7.711593],\n              [111.670266, 7.651098]\n            ]\n          ],\n          [\n            [\n              [112.207981, 8.835634],\n              [112.235699, 8.827355],\n              [112.241242, 8.852783],\n              [112.207981, 8.835634]\n            ]\n          ],\n          [\n            [\n              [112.527654, 5.79444],\n              [112.531965, 5.766455],\n              [112.562762, 5.75931],\n              [112.562146, 5.820637],\n              [112.527654, 5.79444]\n            ]\n          ],\n          [\n            [\n              [114.599058, 8.846278],\n              [114.645869, 8.844504],\n              [114.68221, 8.881166],\n              [114.665579, 8.900087],\n              [114.61692, 8.881166],\n              [114.599058, 8.846278]\n            ]\n          ],\n          [\n            [\n              [114.868223, 7.983715],\n              [114.907643, 7.951117],\n              [114.914419, 8.00742],\n              [114.883006, 8.011569],\n              [114.868223, 7.983715]\n            ]\n          ],\n          [\n            [\n              [112.945261, 8.410204],\n              [112.985297, 8.429149],\n              [112.949572, 8.432701],\n              [112.945261, 8.410204]\n            ]\n          ],\n          [\n            [\n              [113.600004, 6.961929],\n              [113.580294, 6.920344],\n              [113.62341, 6.942325],\n              [113.600004, 6.961929]\n            ]\n          ],\n          [\n            [\n              [116.695099, 16.345538],\n              [116.708034, 16.299591],\n              [116.738831, 16.303612],\n              [116.747454, 16.360469],\n              [116.717889, 16.373676],\n              [116.695099, 16.345538]\n            ]\n          ],\n          [\n            [\n              [117.347995, 10.090624],\n              [117.354154, 10.06293],\n              [117.385567, 10.063519],\n              [117.373864, 10.106532],\n              [117.347995, 10.090624]\n            ]\n          ],\n          [\n            [\n              [112.993304, 19.472003],\n              [113.038883, 19.480466],\n              [113.048123, 19.506417],\n              [113.029028, 19.52898],\n              [112.993304, 19.52616],\n              [112.980369, 19.496263],\n              [112.993304, 19.472003]\n            ]\n          ],\n          [\n            [\n              [114.448153, 16.034035],\n              [114.485109, 16.034611],\n              [114.521449, 16.056466],\n              [114.465399, 16.067393],\n              [114.448153, 16.034035]\n            ]\n          ],\n          [\n            [\n              [113.832213, 19.158552],\n              [113.874097, 19.151203],\n              [113.914749, 19.172119],\n              [113.920293, 19.223551],\n              [113.875945, 19.237113],\n              [113.80696, 19.222986],\n              [113.799568, 19.19925],\n              [113.832213, 19.158552]\n            ]\n          ],\n          [\n            [\n              [112.650842, 5.106941],\n              [112.655769, 5.055676],\n              [112.682871, 5.048522],\n              [112.719211, 5.075944],\n              [112.678559, 5.121247],\n              [112.650842, 5.106941]\n            ]\n          ],\n          [\n            [\n              [111.638853, 7.907254],\n              [111.665339, 7.887099],\n              [111.712766, 7.887099],\n              [111.713382, 7.927408],\n              [111.651788, 7.932743],\n              [111.638853, 7.907254]\n            ]\n          ],\n          [\n            [\n              [112.244322, 8.874662],\n              [112.281278, 8.855148],\n              [112.288669, 8.885896],\n              [112.244322, 8.874662]\n            ]\n          ],\n          [\n            [\n              [112.89229, 7.844416],\n              [112.929862, 7.827815],\n              [112.93171, 7.867537],\n              [112.89229, 7.844416]\n            ]\n          ],\n          [\n            [\n              [112.583088, 5.56159],\n              [112.606494, 5.51751],\n              [112.614501, 5.465683],\n              [112.642834, 5.489512],\n              [112.616349, 5.568737],\n              [112.583088, 5.56159]\n            ]\n          ],\n          [\n            [\n              [112.523342, 5.656289],\n              [112.5449, 5.616386],\n              [112.565842, 5.63068],\n              [112.56153, 5.677133],\n              [112.528886, 5.687257],\n              [112.523342, 5.656289]\n            ]\n          ],\n          [\n            [\n              [115.361591, 13.948985],\n              [115.397315, 13.92517],\n              [115.438583, 13.943757],\n              [115.423185, 13.977443],\n              [115.377605, 13.968732],\n              [115.361591, 13.948985]\n            ]\n          ],\n          [\n            [\n              [113.596924, 10.240836],\n              [113.617866, 10.22199],\n              [113.638192, 10.243192],\n              [113.596924, 10.240836]\n            ]\n          ],\n          [\n            [\n              [113.860546, 15.477068],\n              [113.893807, 15.463802],\n              [113.890112, 15.490909],\n              [113.860546, 15.477068]\n            ]\n          ],\n          [\n            [\n              [112.907072, 4.993079],\n              [112.943413, 4.991887],\n              [112.952652, 5.047926],\n              [112.910768, 5.038388],\n              [112.907072, 4.993079]\n            ]\n          ],\n          [\n            [\n              [112.557219, 5.109326],\n              [112.568922, 5.071771],\n              [112.610806, 5.091443],\n              [112.601567, 5.120055],\n              [112.557219, 5.109326]\n            ]\n          ],\n          [\n            [\n              [112.350263, 5.621747],\n              [112.385988, 5.615791],\n              [112.385372, 5.643187],\n              [112.350263, 5.621747]\n            ]\n          ],\n          [\n            [\n              [112.226459, 16.759147],\n              [112.254177, 16.751698],\n              [112.262184, 16.778057],\n              [112.211061, 16.795819],\n              [112.226459, 16.759147]\n            ]\n          ],\n          [\n            [\n              [112.233851, 15.69612],\n              [112.25972, 15.734718],\n              [112.240626, 15.741055],\n              [112.20367, 15.71398],\n              [112.233851, 15.69612]\n            ]\n          ],\n          [\n            [\n              [112.612037, 5.367973],\n              [112.640371, 5.347715],\n              [112.685334, 5.371548],\n              [112.690878, 5.406702],\n              [112.62374, 5.401935],\n              [112.612037, 5.367973]\n            ]\n          ],\n          [\n            [\n              [112.472219, 5.73966],\n              [112.496857, 5.736683],\n              [112.498089, 5.775387],\n              [112.472219, 5.73966]\n            ]\n          ],\n          [\n            [\n              [113.217506, 6.306249],\n              [113.230441, 6.285429],\n              [113.243991, 6.325878],\n              [113.217506, 6.306249]\n            ]\n          ],\n          [\n            [\n              [116.152457, 9.579384],\n              [116.189413, 9.565221],\n              [116.187565, 9.595317],\n              [116.152457, 9.579384]\n            ]\n          ],\n          [\n            [\n              [114.948911, 7.508722],\n              [114.960614, 7.484988],\n              [115.012353, 7.484988],\n              [115.013585, 7.525928],\n              [114.948911, 7.508722]\n            ]\n          ],\n          [\n            [\n              [111.553854, 7.807656],\n              [111.585267, 7.771487],\n              [111.619759, 7.840265],\n              [111.603745, 7.861608],\n              [111.553854, 7.807656]\n            ]\n          ],\n          [\n            [\n              [113.938771, 15.8355],\n              [113.973263, 15.805558],\n              [113.9708, 15.83953],\n              [113.938771, 15.8355]\n            ]\n          ],\n          [\n            [\n              [114.926122, 16.036911],\n              [114.895325, 16.036336],\n              [114.910723, 16.001823],\n              [114.926122, 16.036911]\n            ]\n          ],\n          [\n            [\n              [116.749302, 9.056736],\n              [116.699411, 9.049053],\n              [116.70865, 9.024229],\n              [116.740679, 9.028367],\n              [116.749302, 9.056736]\n            ]\n          ],\n          [\n            [\n              [112.64653, 16.385733],\n              [112.681639, 16.400661],\n              [112.660081, 16.426494],\n              [112.64653, 16.385733]\n            ]\n          ],\n          [\n            [\n              [111.203384, 19.92557],\n              [111.203384, 19.925007],\n              [111.204, 19.92557],\n              [111.204, 19.926132],\n              [111.203384, 19.92557]\n            ]\n          ],\n          [\n            [\n              [115.758256, 10.461018],\n              [115.776118, 10.434534],\n              [115.801987, 10.463372],\n              [115.758256, 10.461018]\n            ]\n          ],\n          [\n            [\n              [117.21372, 10.735144],\n              [117.187235, 10.741612],\n              [117.206945, 10.707507],\n              [117.21372, 10.735144]\n            ]\n          ],\n          [\n            [\n              [112.671784, 16.331755],\n              [112.701349, 16.331755],\n              [112.677943, 16.35932],\n              [112.671784, 16.331755]\n            ]\n          ],\n          [\n            [\n              [115.782277, 10.541046],\n              [115.795212, 10.499858],\n              [115.805067, 10.524571],\n              [115.782277, 10.541046]\n            ]\n          ],\n          [\n            [\n              [112.512255, 9.544566],\n              [112.50856, 9.525679],\n              [112.568922, 9.516826],\n              [112.567074, 9.554008],\n              [112.512255, 9.544566]\n            ]\n          ],\n          [\n            [\n              [114.610145, 15.649447],\n              [114.581195, 15.625242],\n              [114.610761, 15.615444],\n              [114.610145, 15.649447]\n            ]\n          ],\n          [\n            [\n              [117.299336, 11.077745],\n              [117.264227, 11.063062],\n              [117.284553, 11.02547],\n              [117.304263, 11.027232],\n              [117.299336, 11.077745]\n            ]\n          ],\n          [\n            [\n              [117.691073, 11.048965],\n              [117.653501, 11.046029],\n              [117.655965, 11.024882],\n              [117.690457, 11.016658],\n              [117.691073, 11.048965]\n            ]\n          ],\n          [\n            [\n              [114.166668, 9.38459],\n              [114.175291, 9.342075],\n              [114.195617, 9.350933],\n              [114.194386, 9.391676],\n              [114.166668, 9.38459]\n            ]\n          ],\n          [\n            [\n              [114.714854, 9.736909],\n              [114.693296, 9.741038],\n              [114.680978, 9.707416],\n              [114.704999, 9.700337],\n              [114.714854, 9.736909]\n            ]\n          ],\n          [\n            [\n              [112.554139, 5.97839],\n              [112.553523, 5.942676],\n              [112.575697, 5.971247],\n              [112.554139, 5.97839]\n            ]\n          ]\n        ]\n      }\n    },\n    {\n      \"type\": \"Feature\",\n      \"properties\": {\n        \"adcode\": 500000,\n        \"name\": \"重庆市\",\n        \"center\": [106.504962, 29.533155],\n        \"centroid\": [107.8839, 30.067297],\n        \"childrenNum\": 38,\n        \"level\": \"province\",\n        \"parent\": { \"adcode\": 100000 },\n        \"subFeatureIndex\": 21,\n        \"acroutes\": [100000]\n      },\n      \"geometry\": {\n        \"type\": \"MultiPolygon\",\n        \"coordinates\": [\n          [\n            [\n              [106.37442, 28.525742],\n              [106.403369, 28.569901],\n              [106.477282, 28.530474],\n              [106.504999, 28.544669],\n              [106.466811, 28.586193],\n              [106.49268, 28.591448],\n              [106.502535, 28.661313],\n              [106.528405, 28.677591],\n              [106.492064, 28.742153],\n              [106.461883, 28.761041],\n              [106.45326, 28.817162],\n              [106.474202, 28.832891],\n              [106.561666, 28.756319],\n              [106.56105, 28.719062],\n              [106.587535, 28.691767],\n              [106.6171, 28.691242],\n              [106.617716, 28.66709],\n              [106.651593, 28.649235],\n              [106.618332, 28.645033],\n              [106.63681, 28.622972],\n              [106.606629, 28.593024],\n              [106.615252, 28.549401],\n              [106.567825, 28.523638],\n              [106.564745, 28.485247],\n              [106.632499, 28.503655],\n              [106.697788, 28.47683],\n              [106.708259, 28.450524],\n              [106.747063, 28.467361],\n              [106.726121, 28.51838],\n              [106.73844, 28.554657],\n              [106.77786, 28.563068],\n              [106.756918, 28.607211],\n              [106.784636, 28.626649],\n              [106.807425, 28.589346],\n              [106.830831, 28.623497],\n              [106.866556, 28.624548],\n              [106.889345, 28.695966],\n              [106.86594, 28.690192],\n              [106.824056, 28.756319],\n              [106.845614, 28.780975],\n              [106.872099, 28.777304],\n              [106.923222, 28.809821],\n              [106.951555, 28.766812],\n              [106.988512, 28.776254],\n              [106.983584, 28.851239],\n              [107.019308, 28.861722],\n              [107.016229, 28.882685],\n              [107.14188, 28.887925],\n              [107.206554, 28.868535],\n              [107.194851, 28.838134],\n              [107.227496, 28.836037],\n              [107.210866, 28.817686],\n              [107.219489, 28.772582],\n              [107.24659, 28.76209],\n              [107.261373, 28.792514],\n              [107.327894, 28.810869],\n              [107.339597, 28.845997],\n              [107.383945, 28.848618],\n              [107.41351, 28.911502],\n              [107.441227, 28.943977],\n              [107.412894, 28.960211],\n              [107.396879, 28.993718],\n              [107.364235, 29.00942],\n              [107.395647, 29.041341],\n              [107.369778, 29.091558],\n              [107.412278, 29.094696],\n              [107.427676, 29.128682],\n              [107.408582, 29.138091],\n              [107.401807, 29.184603],\n              [107.441227, 29.203934],\n              [107.486806, 29.174153],\n              [107.570574, 29.218037],\n              [107.589052, 29.150113],\n              [107.605683, 29.164747],\n              [107.659885, 29.162656],\n              [107.700537, 29.141228],\n              [107.749197, 29.199754],\n              [107.810791, 29.139137],\n              [107.784921, 29.048143],\n              [107.823725, 29.034016],\n              [107.810175, 28.984295],\n              [107.867457, 28.960211],\n              [107.882855, 29.00628],\n              [107.908725, 29.007327],\n              [107.925971, 29.032446],\n              [108.026369, 29.039772],\n              [108.070717, 29.086328],\n              [108.150173, 29.053375],\n              [108.193289, 29.072207],\n              [108.256115, 29.040295],\n              [108.277673, 29.091558],\n              [108.306622, 29.079006],\n              [108.297999, 29.045527],\n              [108.319556, 28.961258],\n              [108.345426, 28.943453],\n              [108.357745, 28.893165],\n              [108.346658, 28.859625],\n              [108.352817, 28.815589],\n              [108.386078, 28.803003],\n              [108.385462, 28.772058],\n              [108.347274, 28.736381],\n              [108.332491, 28.679166],\n              [108.439049, 28.634003],\n              [108.501258, 28.626649],\n              [108.50249, 28.63768],\n              [108.575787, 28.659738],\n              [108.636149, 28.621396],\n              [108.604736, 28.590922],\n              [108.610896, 28.539412],\n              [108.573939, 28.531],\n              [108.586874, 28.463678],\n              [108.609664, 28.43579],\n              [108.609048, 28.407368],\n              [108.576403, 28.38631],\n              [108.580099, 28.343128],\n              [108.611512, 28.324691],\n              [108.667562, 28.334173],\n              [108.656475, 28.359981],\n              [108.697127, 28.401051],\n              [108.688504, 28.422106],\n              [108.640461, 28.456838],\n              [108.657091, 28.47683],\n              [108.700207, 28.48209],\n              [108.709446, 28.501026],\n              [108.746402, 28.45105],\n              [108.780279, 28.42579],\n              [108.759953, 28.389995],\n              [108.783359, 28.380518],\n              [108.761801, 28.304143],\n              [108.726692, 28.282011],\n              [108.738395, 28.228241],\n              [108.772888, 28.212949],\n              [108.821547, 28.245113],\n              [108.855424, 28.199764],\n              [108.89546, 28.219804],\n              [108.923793, 28.217167],\n              [108.929952, 28.19027],\n              [109.005713, 28.162837],\n              [109.026655, 28.220331],\n              [109.086401, 28.184467],\n              [109.101799, 28.202401],\n              [109.081473, 28.247749],\n              [109.117198, 28.277795],\n              [109.152306, 28.349975],\n              [109.153538, 28.417369],\n              [109.191726, 28.471043],\n              [109.23361, 28.474726],\n              [109.274262, 28.494714],\n              [109.273646, 28.53836],\n              [109.319842, 28.579886],\n              [109.306907, 28.62087],\n              [109.252089, 28.606685],\n              [109.235458, 28.61982],\n              [109.201581, 28.597753],\n              [109.192958, 28.636104],\n              [109.271183, 28.671816],\n              [109.252704, 28.691767],\n              [109.294588, 28.722211],\n              [109.2989, 28.7474],\n              [109.241002, 28.776779],\n              [109.246545, 28.80143],\n              [109.235458, 28.882161],\n              [109.261328, 28.952356],\n              [109.292741, 28.987436],\n              [109.294588, 29.015177],\n              [109.319842, 29.042388],\n              [109.312451, 29.066453],\n              [109.240386, 29.086328],\n              [109.232378, 29.119271],\n              [109.215748, 29.145409],\n              [109.162777, 29.180946],\n              [109.139372, 29.168927],\n              [109.110422, 29.21647],\n              [109.141835, 29.270256],\n              [109.106727, 29.288526],\n              [109.11227, 29.361053],\n              [109.060531, 29.403292],\n              [109.034662, 29.360531],\n              [108.999553, 29.36366],\n              [108.983539, 29.332883],\n              [108.919481, 29.3261],\n              [108.934264, 29.399643],\n              [108.927488, 29.435612],\n              [108.884373, 29.440824],\n              [108.866511, 29.470527],\n              [108.888684, 29.502305],\n              [108.878213, 29.539279],\n              [108.913322, 29.574679],\n              [108.901003, 29.604863],\n              [108.870206, 29.596537],\n              [108.888068, 29.628795],\n              [108.844337, 29.658443],\n              [108.781511, 29.635558],\n              [108.797525, 29.660003],\n              [108.786438, 29.691721],\n              [108.752562, 29.649082],\n              [108.690968, 29.689642],\n              [108.676801, 29.749412],\n              [108.680497, 29.800319],\n              [108.658939, 29.854833],\n              [108.601041, 29.863656],\n              [108.556077, 29.818493],\n              [108.52528, 29.770713],\n              [108.548686, 29.749412],\n              [108.504954, 29.728626],\n              [108.504338, 29.707836],\n              [108.460606, 29.741098],\n              [108.437201, 29.741098],\n              [108.442744, 29.778505],\n              [108.422418, 29.772791],\n              [108.424266, 29.815897],\n              [108.371295, 29.841337],\n              [108.433505, 29.880262],\n              [108.467998, 29.864175],\n              [108.516041, 29.885451],\n              [108.517889, 29.9394],\n              [108.536367, 29.983472],\n              [108.532055, 30.051873],\n              [108.513577, 30.057571],\n              [108.546222, 30.104178],\n              [108.56778, 30.157491],\n              [108.551766, 30.1637],\n              [108.581947, 30.255759],\n              [108.54499, 30.269716],\n              [108.524048, 30.309506],\n              [108.501258, 30.314673],\n              [108.460606, 30.35961],\n              [108.431041, 30.354446],\n              [108.402092, 30.376649],\n              [108.430425, 30.416397],\n              [108.411331, 30.438586],\n              [108.42673, 30.492233],\n              [108.472925, 30.487076],\n              [108.512961, 30.501515],\n              [108.556077, 30.487592],\n              [108.56778, 30.468508],\n              [108.6497, 30.53915],\n              [108.642925, 30.578831],\n              [108.688504, 30.58759],\n              [108.698975, 30.54482],\n              [108.743939, 30.494812],\n              [108.789518, 30.513374],\n              [108.808612, 30.491202],\n              [108.838793, 30.503062],\n              [108.893612, 30.565434],\n              [108.971836, 30.627766],\n              [109.006329, 30.626736],\n              [109.042669, 30.655571],\n              [109.071002, 30.640125],\n              [109.111654, 30.646303],\n              [109.106111, 30.61077],\n              [109.105495, 30.585529],\n              [109.102415, 30.580377],\n              [109.101183, 30.579346],\n              [109.106111, 30.570587],\n              [109.103647, 30.565949],\n              [109.143683, 30.521108],\n              [109.191726, 30.545851],\n              [109.191726, 30.545851],\n              [109.245313, 30.580892],\n              [109.299516, 30.630341],\n              [109.314298, 30.599953],\n              [109.36111, 30.551004],\n              [109.337088, 30.521623],\n              [109.35495, 30.487076],\n              [109.418392, 30.559766],\n              [109.435638, 30.595832],\n              [109.535421, 30.664837],\n              [109.543428, 30.63961],\n              [109.574225, 30.646818],\n              [109.590855, 30.69366],\n              [109.625348, 30.702923],\n              [109.661072, 30.738936],\n              [109.656761, 30.760538],\n              [109.701724, 30.783677],\n              [109.780564, 30.848437],\n              [109.828608, 30.864364],\n              [109.894513, 30.899803],\n              [109.943788, 30.878746],\n              [110.008462, 30.883369],\n              [110.019549, 30.829425],\n              [110.048498, 30.800642],\n              [110.082375, 30.799614],\n              [110.151976, 30.911613],\n              [110.153824, 30.953708],\n              [110.172918, 30.978853],\n              [110.140889, 30.987062],\n              [110.140273, 31.030661],\n              [110.120563, 31.0322],\n              [110.119947, 31.088592],\n              [110.147048, 31.116776],\n              [110.180309, 31.121899],\n              [110.200019, 31.158779],\n              [110.180309, 31.179774],\n              [110.155671, 31.279564],\n              [110.161831, 31.314338],\n              [110.118715, 31.409899],\n              [110.054042, 31.410921],\n              [110.036795, 31.436966],\n              [109.98752, 31.474744],\n              [109.94502, 31.47066],\n              [109.969658, 31.508935],\n              [109.894513, 31.519139],\n              [109.837847, 31.555354],\n              [109.727594, 31.548214],\n              [109.745456, 31.598182],\n              [109.76455, 31.602769],\n              [109.737449, 31.628761],\n              [109.731289, 31.700582],\n              [109.683246, 31.719929],\n              [109.622268, 31.711783],\n              [109.585928, 31.726546],\n              [109.549587, 31.73011],\n              [109.502776, 31.716365],\n              [109.446109, 31.722983],\n              [109.381436, 31.705165],\n              [109.281654, 31.716874],\n              [109.282885, 31.743343],\n              [109.253936, 31.759628],\n              [109.279806, 31.776418],\n              [109.27611, 31.79931],\n              [109.195422, 31.817618],\n              [109.191111, 31.85575],\n              [109.123357, 31.892851],\n              [109.085785, 31.929428],\n              [108.986619, 31.980205],\n              [108.902235, 31.984774],\n              [108.837561, 32.039072],\n              [108.78767, 32.04871],\n              [108.75133, 32.076098],\n              [108.734084, 32.106519],\n              [108.676801, 32.10297],\n              [108.585026, 32.17189],\n              [108.543758, 32.177969],\n              [108.509882, 32.201266],\n              [108.480317, 32.182527],\n              [108.399013, 32.194176],\n              [108.370063, 32.172397],\n              [108.379918, 32.154158],\n              [108.379918, 32.154158],\n              [108.379303, 32.153652],\n              [108.379303, 32.153652],\n              [108.399628, 32.147065],\n              [108.452599, 32.090296],\n              [108.42981, 32.061391],\n              [108.372527, 32.077112],\n              [108.344194, 32.067477],\n              [108.362056, 32.035521],\n              [108.329411, 32.020299],\n              [108.370063, 31.988835],\n              [108.351585, 31.971575],\n              [108.307238, 31.997463],\n              [108.259194, 31.967006],\n              [108.343578, 31.860834],\n              [108.386078, 31.854226],\n              [108.391005, 31.829822],\n              [108.429194, 31.809482],\n              [108.455063, 31.814059],\n              [108.462454, 31.780488],\n              [108.535135, 31.757592],\n              [108.50557, 31.734182],\n              [108.514809, 31.693963],\n              [108.546838, 31.665442],\n              [108.519121, 31.665952],\n              [108.468614, 31.636404],\n              [108.442744, 31.633856],\n              [108.390389, 31.591555],\n              [108.386078, 31.544134],\n              [108.339266, 31.539033],\n              [108.344194, 31.512506],\n              [108.254883, 31.49873],\n              [108.233941, 31.506894],\n              [108.191441, 31.492096],\n              [108.193289, 31.467598],\n              [108.224086, 31.464024],\n              [108.216079, 31.41041],\n              [108.153869, 31.371073],\n              [108.185898, 31.336831],\n              [108.095354, 31.268311],\n              [108.038688, 31.252964],\n              [108.031297, 31.217144],\n              [108.07626, 31.231985],\n              [108.089811, 31.204859],\n              [108.025753, 31.116263],\n              [108.009123, 31.109602],\n              [108.026985, 31.061938],\n              [108.060246, 31.052197],\n              [108.00358, 31.025533],\n              [107.983254, 30.983983],\n              [107.942602, 30.989114],\n              [107.948145, 30.918802],\n              [107.994956, 30.908533],\n              [107.956152, 30.882855],\n              [107.851443, 30.792931],\n              [107.788001, 30.81966],\n              [107.763979, 30.817091],\n              [107.760899, 30.862823],\n              [107.739957, 30.884396],\n              [107.693146, 30.875665],\n              [107.645103, 30.821202],\n              [107.57735, 30.847924],\n              [107.515756, 30.854603],\n              [107.483111, 30.838675],\n              [107.498509, 30.809381],\n              [107.454162, 30.771851],\n              [107.454162, 30.771851],\n              [107.424597, 30.74048],\n              [107.458473, 30.704981],\n              [107.477567, 30.664837],\n              [107.516987, 30.644759],\n              [107.485575, 30.598408],\n              [107.427676, 30.547397],\n              [107.443075, 30.53348],\n              [107.408582, 30.521623],\n              [107.368546, 30.468508],\n              [107.338981, 30.386459],\n              [107.288474, 30.337402],\n              [107.257677, 30.267131],\n              [107.221337, 30.213878],\n              [107.103076, 30.090198],\n              [107.080286, 30.094341],\n              [107.084598, 30.063786],\n              [107.058113, 30.043066],\n              [107.055649, 30.040476],\n              [107.054417, 30.040994],\n              [107.053801, 30.043584],\n              [107.02054, 30.036849],\n              [106.981736, 30.08502],\n              [106.976193, 30.083467],\n              [106.94478, 30.037367],\n              [106.913367, 30.025451],\n              [106.862244, 30.033223],\n              [106.83699, 30.049801],\n              [106.825904, 30.03115],\n              [106.825904, 30.03115],\n              [106.785252, 30.01716],\n              [106.732281, 30.027005],\n              [106.724274, 30.058607],\n              [106.699636, 30.074145],\n              [106.700252, 30.111944],\n              [106.672535, 30.122297],\n              [106.677462, 30.156974],\n              [106.631883, 30.186464],\n              [106.611557, 30.235596],\n              [106.612173, 30.235596],\n              [106.611557, 30.235596],\n              [106.612173, 30.235596],\n              [106.612173, 30.235596],\n              [106.612789, 30.235596],\n              [106.612789, 30.235596],\n              [106.642354, 30.246454],\n              [106.611557, 30.292455],\n              [106.560434, 30.31519],\n              [106.545035, 30.296589],\n              [106.49884, 30.295556],\n              [106.43971, 30.308473],\n              [106.428623, 30.254725],\n              [106.401521, 30.242318],\n              [106.349167, 30.24542],\n              [106.334384, 30.225772],\n              [106.306667, 30.238182],\n              [106.296196, 30.205603],\n              [106.264167, 30.20974],\n              [106.260471, 30.19681],\n              [106.232754, 30.185947],\n              [106.180399, 30.233011],\n              [106.168696, 30.303823],\n              [106.132356, 30.323972],\n              [106.132972, 30.30279],\n              [106.07261, 30.333786],\n              [106.031958, 30.373551],\n              [105.943263, 30.372002],\n              [105.900763, 30.405042],\n              [105.84656, 30.410203],\n              [105.825618, 30.436006],\n              [105.792357, 30.427234],\n              [105.760329, 30.384393],\n              [105.754785, 30.342567],\n              [105.714749, 30.322939],\n              [105.720292, 30.252657],\n              [105.720292, 30.252657],\n              [105.670401, 30.254208],\n              [105.624822, 30.275918],\n              [105.619894, 30.234045],\n              [105.662394, 30.210258],\n              [105.642684, 30.186464],\n              [105.56138, 30.183878],\n              [105.550909, 30.179222],\n              [105.536127, 30.152834],\n              [105.596489, 30.159043],\n              [105.574315, 30.130579],\n              [105.580474, 30.129544],\n              [105.582938, 30.127474],\n              [105.582938, 30.12385],\n              [105.642068, 30.101072],\n              [105.638988, 30.076216],\n              [105.676561, 30.06793],\n              [105.687032, 30.038922],\n              [105.719677, 30.042548],\n              [105.753553, 30.018196],\n              [105.723372, 29.975177],\n              [105.730763, 29.95755],\n              [105.70243, 29.924879],\n              [105.717213, 29.893753],\n              [105.738771, 29.891159],\n              [105.707974, 29.840818],\n              [105.610655, 29.837184],\n              [105.582938, 29.819013],\n              [105.574931, 29.744216],\n              [105.529351, 29.707836],\n              [105.481924, 29.718232],\n              [105.476996, 29.674564],\n              [105.419714, 29.688082],\n              [105.38091, 29.628275],\n              [105.347649, 29.621512],\n              [105.332867, 29.592374],\n              [105.296526, 29.571035],\n              [105.305149, 29.53199],\n              [105.337794, 29.459064],\n              [105.334099, 29.441345],\n              [105.387069, 29.455416],\n              [105.387069, 29.455416],\n              [105.399388, 29.43874],\n              [105.372903, 29.421018],\n              [105.426489, 29.419454],\n              [105.441888, 29.400686],\n              [105.418482, 29.352185],\n              [105.42033, 29.31149],\n              [105.465294, 29.322969],\n              [105.459134, 29.288526],\n              [105.513337, 29.283306],\n              [105.521344, 29.264513],\n              [105.557684, 29.278608],\n              [105.631597, 29.280174],\n              [105.647612, 29.253027],\n              [105.695039, 29.287482],\n              [105.712285, 29.219082],\n              [105.703662, 29.176766],\n              [105.728916, 29.134432],\n              [105.752321, 29.129727],\n              [105.728916, 29.1062],\n              [105.757865, 29.069068],\n              [105.74185, 29.039249],\n              [105.766488, 29.013607],\n              [105.762176, 28.9911],\n              [105.801596, 28.958116],\n              [105.797285, 28.936121],\n              [105.830546, 28.944501],\n              [105.852719, 28.927217],\n              [105.910002, 28.920407],\n              [105.969132, 28.965971],\n              [106.001161, 28.973824],\n              [106.040581, 28.955498],\n              [106.049204, 28.906263],\n              [106.070762, 28.919884],\n              [106.101559, 28.898928],\n              [106.14837, 28.901548],\n              [106.173008, 28.920407],\n              [106.206885, 28.904691],\n              [106.264783, 28.845997],\n              [106.245689, 28.817686],\n              [106.267863, 28.779402],\n              [106.274022, 28.739004],\n              [106.305435, 28.704365],\n              [106.304203, 28.64976],\n              [106.346703, 28.583565],\n              [106.33192, 28.55308],\n              [106.37442, 28.525742]\n            ]\n          ],\n          [\n            [\n              [109.105495, 30.585529],\n              [109.106111, 30.61077],\n              [109.09256, 30.578831],\n              [109.09872, 30.579346],\n              [109.101183, 30.579346],\n              [109.102415, 30.580377],\n              [109.105495, 30.585529]\n            ]\n          ],\n          [\n            [\n              [105.582938, 30.12385],\n              [105.582938, 30.127474],\n              [105.580474, 30.129544],\n              [105.574315, 30.130579],\n              [105.582938, 30.12385]\n            ]\n          ],\n          [\n            [\n              [109.09872, 30.579346],\n              [109.09256, 30.578831],\n              [109.103647, 30.565949],\n              [109.106111, 30.570587],\n              [109.09872, 30.579346]\n            ]\n          ],\n          [\n            [\n              [107.058113, 30.043066],\n              [107.053801, 30.043584],\n              [107.054417, 30.040994],\n              [107.055649, 30.040476],\n              [107.058113, 30.043066]\n            ]\n          ]\n        ]\n      }\n    },\n    {\n      \"type\": \"Feature\",\n      \"properties\": {\n        \"adcode\": 510000,\n        \"name\": \"四川省\",\n        \"center\": [104.065735, 30.659462],\n        \"centroid\": [102.693453, 30.674545],\n        \"childrenNum\": 21,\n        \"level\": \"province\",\n        \"parent\": { \"adcode\": 100000 },\n        \"subFeatureIndex\": 22,\n        \"acroutes\": [100000]\n      },\n      \"geometry\": {\n        \"type\": \"MultiPolygon\",\n        \"coordinates\": [\n          [\n            [\n              [101.167885, 27.198311],\n              [101.170349, 27.175421],\n              [101.145095, 27.103523],\n              [101.157414, 27.094999],\n              [101.136472, 27.023584],\n              [101.228863, 26.981992],\n              [101.227015, 26.959057],\n              [101.264587, 26.955323],\n              [101.267667, 26.903034],\n              [101.311399, 26.903034],\n              [101.365602, 26.883819],\n              [101.399478, 26.841642],\n              [101.358826, 26.771669],\n              [101.387159, 26.753501],\n              [101.389623, 26.723036],\n              [101.435819, 26.740675],\n              [101.458608, 26.731054],\n              [101.445674, 26.77434],\n              [101.466, 26.786629],\n              [101.513427, 26.768463],\n              [101.453065, 26.692563],\n              [101.481398, 26.673313],\n              [101.461072, 26.640687],\n              [101.461688, 26.606447],\n              [101.402558, 26.604841],\n              [101.395783, 26.591998],\n              [101.422884, 26.53151],\n              [101.458608, 26.49563],\n              [101.506652, 26.499915],\n              [101.530057, 26.467239],\n              [101.565782, 26.454381],\n              [101.637847, 26.388995],\n              [101.635383, 26.357361],\n              [101.660636, 26.346635],\n              [101.64031, 26.318745],\n              [101.597195, 26.303187],\n              [101.586108, 26.279579],\n              [101.630455, 26.224832],\n              [101.690202, 26.241473],\n              [101.737013, 26.219463],\n              [101.773353, 26.168448],\n              [101.807846, 26.156093],\n              [101.796759, 26.114723],\n              [101.839875, 26.082477],\n              [101.835563, 26.04592],\n              [101.857737, 26.049146],\n              [101.899621, 26.099139],\n              [101.929186, 26.105588],\n              [101.954439, 26.084627],\n              [102.020961, 26.096451],\n              [102.080091, 26.065275],\n              [102.107808, 26.068501],\n              [102.152156, 26.10935],\n              [102.174946, 26.146961],\n              [102.242699, 26.190468],\n              [102.245163, 26.212483],\n              [102.349257, 26.244694],\n              [102.392372, 26.296749],\n              [102.440416, 26.300505],\n              [102.542046, 26.338591],\n              [102.570995, 26.362723],\n              [102.629509, 26.336982],\n              [102.638748, 26.307479],\n              [102.60056, 26.250598],\n              [102.659074, 26.221611],\n              [102.709581, 26.210336],\n              [102.739762, 26.268846],\n              [102.785342, 26.298895],\n              [102.833385, 26.306406],\n              [102.878964, 26.364332],\n              [102.893131, 26.338591],\n              [102.975667, 26.340736],\n              [102.998457, 26.371839],\n              [102.988602, 26.413117],\n              [102.989833, 26.482775],\n              [103.030485, 26.485989],\n              [103.052659, 26.514374],\n              [103.052659, 26.555602],\n              [103.035413, 26.556673],\n              [103.026174, 26.664221],\n              [103.005232, 26.679195],\n              [103.008312, 26.710741],\n              [102.983674, 26.76686],\n              [102.991681, 26.775409],\n              [102.966428, 26.837904],\n              [102.949181, 26.843244],\n              [102.896211, 26.91264],\n              [102.894979, 27.001724],\n              [102.870957, 27.026782],\n              [102.913457, 27.133886],\n              [102.904218, 27.227584],\n              [102.883276, 27.258444],\n              [102.883892, 27.299401],\n              [102.899906, 27.317481],\n              [102.941174, 27.405711],\n              [102.989833, 27.367983],\n              [103.055739, 27.40943],\n              [103.080992, 27.396679],\n              [103.141355, 27.420586],\n              [103.144434, 27.450331],\n              [103.19063, 27.523596],\n              [103.232514, 27.56976],\n              [103.2861, 27.561802],\n              [103.29226, 27.632872],\n              [103.349542, 27.678459],\n              [103.369868, 27.708664],\n              [103.393274, 27.709194],\n              [103.461027, 27.779638],\n              [103.487512, 27.794992],\n              [103.509686, 27.843687],\n              [103.502295, 27.910343],\n              [103.55465, 27.978543],\n              [103.515846, 27.965329],\n              [103.486281, 28.033495],\n              [103.459179, 28.021345],\n              [103.430846, 28.044587],\n              [103.470266, 28.122204],\n              [103.533092, 28.168641],\n              [103.573128, 28.230877],\n              [103.643961, 28.260401],\n              [103.692004, 28.232459],\n              [103.701859, 28.198709],\n              [103.740048, 28.23615],\n              [103.770845, 28.233514],\n              [103.828743, 28.285173],\n              [103.877402, 28.316262],\n              [103.85338, 28.356822],\n              [103.860156, 28.383677],\n              [103.828743, 28.44],\n              [103.829975, 28.459995],\n              [103.781931, 28.525216],\n              [103.802873, 28.563068],\n              [103.838598, 28.587244],\n              [103.833054, 28.605109],\n              [103.850917, 28.66709],\n              [103.887873, 28.61982],\n              [103.910047, 28.631377],\n              [103.953779, 28.600906],\n              [104.05972, 28.6277],\n              [104.09606, 28.603533],\n              [104.117618, 28.634003],\n              [104.170589, 28.642932],\n              [104.230951, 28.635579],\n              [104.252509, 28.660788],\n              [104.277147, 28.631902],\n              [104.314719, 28.615617],\n              [104.372617, 28.649235],\n              [104.425588, 28.626649],\n              [104.417581, 28.598279],\n              [104.375697, 28.5946],\n              [104.355987, 28.555183],\n              [104.323342, 28.540989],\n              [104.260516, 28.536257],\n              [104.267908, 28.499448],\n              [104.254357, 28.403683],\n              [104.282074, 28.343128],\n              [104.314103, 28.306778],\n              [104.343052, 28.334173],\n              [104.384936, 28.329959],\n              [104.392943, 28.291497],\n              [104.420045, 28.269889],\n              [104.44961, 28.269889],\n              [104.462544, 28.241422],\n              [104.442834, 28.211366],\n              [104.402182, 28.202928],\n              [104.406494, 28.173389],\n              [104.444682, 28.16231],\n              [104.448994, 28.113758],\n              [104.40095, 28.091586],\n              [104.373233, 28.051454],\n              [104.304248, 28.050926],\n              [104.30856, 28.036136],\n              [104.362762, 28.012891],\n              [104.40095, 27.952114],\n              [104.44961, 27.927794],\n              [104.508124, 27.878078],\n              [104.52537, 27.889187],\n              [104.573413, 27.840512],\n              [104.607906, 27.857974],\n              [104.63316, 27.850567],\n              [104.676275, 27.880723],\n              [104.743413, 27.901881],\n              [104.761891, 27.884426],\n              [104.796999, 27.901352],\n              [104.842579, 27.900294],\n              [104.888158, 27.914574],\n              [104.918339, 27.938897],\n              [104.903557, 27.962158],\n              [104.975006, 28.020816],\n              [104.980549, 28.063073],\n              [105.002107, 28.064129],\n              [105.061853, 28.096866],\n              [105.119752, 28.07205],\n              [105.168411, 28.071522],\n              [105.186889, 28.054623],\n              [105.167795, 28.021345],\n              [105.186273, 27.995454],\n              [105.218302, 27.990698],\n              [105.247867, 28.009193],\n              [105.270657, 27.99704],\n              [105.284823, 27.935725],\n              [105.233084, 27.895534],\n              [105.25957, 27.827811],\n              [105.313157, 27.810874],\n              [105.273736, 27.794992],\n              [105.293447, 27.770637],\n              [105.290367, 27.712373],\n              [105.308229, 27.704955],\n              [105.353809, 27.748924],\n              [105.44004, 27.775402],\n              [105.508409, 27.769048],\n              [105.560148, 27.71979],\n              [105.605112, 27.715552],\n              [105.62359, 27.666269],\n              [105.664242, 27.683759],\n              [105.720292, 27.683759],\n              [105.722756, 27.706015],\n              [105.76772, 27.7182],\n              [105.848408, 27.707074],\n              [105.868118, 27.732504],\n              [105.922937, 27.746805],\n              [105.92848, 27.729855],\n              [105.985146, 27.749983],\n              [106.023335, 27.746805],\n              [106.063987, 27.776991],\n              [106.120653, 27.779638],\n              [106.193334, 27.75422],\n              [106.242609, 27.767459],\n              [106.306667, 27.808756],\n              [106.337464, 27.859033],\n              [106.325145, 27.898708],\n              [106.304819, 27.899237],\n              [106.307899, 27.936782],\n              [106.328225, 27.952643],\n              [106.286341, 28.007079],\n              [106.246305, 28.011835],\n              [106.266631, 28.066769],\n              [106.206885, 28.134343],\n              [106.145291, 28.162837],\n              [106.093552, 28.162837],\n              [105.975907, 28.107952],\n              [105.943878, 28.143314],\n              [105.895219, 28.119565],\n              [105.860727, 28.159672],\n              [105.889676, 28.237732],\n              [105.848408, 28.255656],\n              [105.824386, 28.306251],\n              [105.78743, 28.335753],\n              [105.76464, 28.308359],\n              [105.76464, 28.308359],\n              [105.737539, 28.30309],\n              [105.730147, 28.271997],\n              [105.68888, 28.284119],\n              [105.639604, 28.324164],\n              [105.655003, 28.362615],\n              [105.643916, 28.431053],\n              [105.612503, 28.438947],\n              [105.62359, 28.517854],\n              [105.68272, 28.534154],\n              [105.693191, 28.58882],\n              [105.712901, 28.586718],\n              [105.74493, 28.616668],\n              [105.757249, 28.590397],\n              [105.78435, 28.610889],\n              [105.808372, 28.599855],\n              [105.884748, 28.595126],\n              [105.889676, 28.670765],\n              [105.937719, 28.686517],\n              [105.966668, 28.761041],\n              [106.001161, 28.743727],\n              [106.030726, 28.694917],\n              [106.085544, 28.681792],\n              [106.103407, 28.636104],\n              [106.14837, 28.642932],\n              [106.17116, 28.629275],\n              [106.184711, 28.58882],\n              [106.254928, 28.539412],\n              [106.2925, 28.537309],\n              [106.304819, 28.505233],\n              [106.349167, 28.473674],\n              [106.379348, 28.479986],\n              [106.37442, 28.525742],\n              [106.33192, 28.55308],\n              [106.346703, 28.583565],\n              [106.304203, 28.64976],\n              [106.305435, 28.704365],\n              [106.274022, 28.739004],\n              [106.267863, 28.779402],\n              [106.245689, 28.817686],\n              [106.264783, 28.845997],\n              [106.206885, 28.904691],\n              [106.173008, 28.920407],\n              [106.14837, 28.901548],\n              [106.101559, 28.898928],\n              [106.070762, 28.919884],\n              [106.049204, 28.906263],\n              [106.040581, 28.955498],\n              [106.001161, 28.973824],\n              [105.969132, 28.965971],\n              [105.910002, 28.920407],\n              [105.852719, 28.927217],\n              [105.830546, 28.944501],\n              [105.797285, 28.936121],\n              [105.801596, 28.958116],\n              [105.762176, 28.9911],\n              [105.766488, 29.013607],\n              [105.74185, 29.039249],\n              [105.757865, 29.069068],\n              [105.728916, 29.1062],\n              [105.752321, 29.129727],\n              [105.728916, 29.134432],\n              [105.703662, 29.176766],\n              [105.712285, 29.219082],\n              [105.695039, 29.287482],\n              [105.647612, 29.253027],\n              [105.631597, 29.280174],\n              [105.557684, 29.278608],\n              [105.521344, 29.264513],\n              [105.513337, 29.283306],\n              [105.459134, 29.288526],\n              [105.465294, 29.322969],\n              [105.42033, 29.31149],\n              [105.418482, 29.352185],\n              [105.441888, 29.400686],\n              [105.426489, 29.419454],\n              [105.372903, 29.421018],\n              [105.399388, 29.43874],\n              [105.387069, 29.455416],\n              [105.387069, 29.455416],\n              [105.334099, 29.441345],\n              [105.337794, 29.459064],\n              [105.305149, 29.53199],\n              [105.296526, 29.571035],\n              [105.332867, 29.592374],\n              [105.347649, 29.621512],\n              [105.38091, 29.628275],\n              [105.419714, 29.688082],\n              [105.476996, 29.674564],\n              [105.481924, 29.718232],\n              [105.529351, 29.707836],\n              [105.574931, 29.744216],\n              [105.582938, 29.819013],\n              [105.610655, 29.837184],\n              [105.707974, 29.840818],\n              [105.738771, 29.891159],\n              [105.717213, 29.893753],\n              [105.70243, 29.924879],\n              [105.730763, 29.95755],\n              [105.723372, 29.975177],\n              [105.753553, 30.018196],\n              [105.719677, 30.042548],\n              [105.687032, 30.038922],\n              [105.676561, 30.06793],\n              [105.638988, 30.076216],\n              [105.642068, 30.101072],\n              [105.582938, 30.12385],\n              [105.574315, 30.130579],\n              [105.596489, 30.159043],\n              [105.536127, 30.152834],\n              [105.550909, 30.179222],\n              [105.556453, 30.187499],\n              [105.558916, 30.18543],\n              [105.56138, 30.183878],\n              [105.642684, 30.186464],\n              [105.662394, 30.210258],\n              [105.619894, 30.234045],\n              [105.624822, 30.275918],\n              [105.670401, 30.254208],\n              [105.720292, 30.252657],\n              [105.720292, 30.252657],\n              [105.714749, 30.322939],\n              [105.754785, 30.342567],\n              [105.760329, 30.384393],\n              [105.792357, 30.427234],\n              [105.825618, 30.436006],\n              [105.84656, 30.410203],\n              [105.900763, 30.405042],\n              [105.943263, 30.372002],\n              [106.031958, 30.373551],\n              [106.07261, 30.333786],\n              [106.132972, 30.30279],\n              [106.132356, 30.323972],\n              [106.168696, 30.303823],\n              [106.180399, 30.233011],\n              [106.232754, 30.185947],\n              [106.260471, 30.19681],\n              [106.260471, 30.204051],\n              [106.260471, 30.207672],\n              [106.264167, 30.20974],\n              [106.296196, 30.205603],\n              [106.306667, 30.238182],\n              [106.334384, 30.225772],\n              [106.349167, 30.24542],\n              [106.401521, 30.242318],\n              [106.428623, 30.254725],\n              [106.43971, 30.308473],\n              [106.49884, 30.295556],\n              [106.545035, 30.296589],\n              [106.560434, 30.31519],\n              [106.611557, 30.292455],\n              [106.642354, 30.246454],\n              [106.612789, 30.235596],\n              [106.612789, 30.235596],\n              [106.612173, 30.235596],\n              [106.612173, 30.235596],\n              [106.611557, 30.235596],\n              [106.612173, 30.235596],\n              [106.611557, 30.235596],\n              [106.631883, 30.186464],\n              [106.677462, 30.156974],\n              [106.672535, 30.122297],\n              [106.700252, 30.111944],\n              [106.699636, 30.074145],\n              [106.724274, 30.058607],\n              [106.732281, 30.027005],\n              [106.785252, 30.01716],\n              [106.825904, 30.03115],\n              [106.825904, 30.03115],\n              [106.83699, 30.049801],\n              [106.862244, 30.033223],\n              [106.913367, 30.025451],\n              [106.94478, 30.037367],\n              [106.976193, 30.083467],\n              [106.975577, 30.088127],\n              [106.976809, 30.088127],\n              [106.977425, 30.087609],\n              [106.978656, 30.087609],\n              [106.979888, 30.088127],\n              [106.980504, 30.087609],\n              [106.981736, 30.08502],\n              [107.02054, 30.036849],\n              [107.053801, 30.043584],\n              [107.058113, 30.043066],\n              [107.084598, 30.063786],\n              [107.080286, 30.094341],\n              [107.103076, 30.090198],\n              [107.221337, 30.213878],\n              [107.257677, 30.267131],\n              [107.288474, 30.337402],\n              [107.338981, 30.386459],\n              [107.368546, 30.468508],\n              [107.408582, 30.521623],\n              [107.443075, 30.53348],\n              [107.427676, 30.547397],\n              [107.485575, 30.598408],\n              [107.516987, 30.644759],\n              [107.477567, 30.664837],\n              [107.458473, 30.704981],\n              [107.424597, 30.74048],\n              [107.454162, 30.771851],\n              [107.454162, 30.771851],\n              [107.498509, 30.809381],\n              [107.483111, 30.838675],\n              [107.515756, 30.854603],\n              [107.57735, 30.847924],\n              [107.645103, 30.821202],\n              [107.693146, 30.875665],\n              [107.739957, 30.884396],\n              [107.760899, 30.862823],\n              [107.763979, 30.817091],\n              [107.788001, 30.81966],\n              [107.851443, 30.792931],\n              [107.956152, 30.882855],\n              [107.994956, 30.908533],\n              [107.948145, 30.918802],\n              [107.942602, 30.989114],\n              [107.983254, 30.983983],\n              [108.00358, 31.025533],\n              [108.060246, 31.052197],\n              [108.026985, 31.061938],\n              [108.009123, 31.109602],\n              [108.025753, 31.116263],\n              [108.089811, 31.204859],\n              [108.07626, 31.231985],\n              [108.031297, 31.217144],\n              [108.038688, 31.252964],\n              [108.095354, 31.268311],\n              [108.185898, 31.336831],\n              [108.153869, 31.371073],\n              [108.216079, 31.41041],\n              [108.224086, 31.464024],\n              [108.193289, 31.467598],\n              [108.191441, 31.492096],\n              [108.233941, 31.506894],\n              [108.254883, 31.49873],\n              [108.344194, 31.512506],\n              [108.339266, 31.539033],\n              [108.386078, 31.544134],\n              [108.390389, 31.591555],\n              [108.442744, 31.633856],\n              [108.468614, 31.636404],\n              [108.519121, 31.665952],\n              [108.546838, 31.665442],\n              [108.514809, 31.693963],\n              [108.50557, 31.734182],\n              [108.535135, 31.757592],\n              [108.462454, 31.780488],\n              [108.455063, 31.814059],\n              [108.429194, 31.809482],\n              [108.391005, 31.829822],\n              [108.386078, 31.854226],\n              [108.343578, 31.860834],\n              [108.259194, 31.967006],\n              [108.307238, 31.997463],\n              [108.351585, 31.971575],\n              [108.370063, 31.988835],\n              [108.329411, 32.020299],\n              [108.362056, 32.035521],\n              [108.344194, 32.067477],\n              [108.372527, 32.077112],\n              [108.42981, 32.061391],\n              [108.452599, 32.090296],\n              [108.399628, 32.147065],\n              [108.379303, 32.153652],\n              [108.379303, 32.153652],\n              [108.379918, 32.154158],\n              [108.379918, 32.154158],\n              [108.370063, 32.172397],\n              [108.399013, 32.194176],\n              [108.480317, 32.182527],\n              [108.509882, 32.201266],\n              [108.507418, 32.245819],\n              [108.469846, 32.270618],\n              [108.414411, 32.252399],\n              [108.389773, 32.263533],\n              [108.310933, 32.232152],\n              [108.240716, 32.274666],\n              [108.179738, 32.221521],\n              [108.156948, 32.239239],\n              [108.143398, 32.219495],\n              [108.086731, 32.233165],\n              [108.018362, 32.2119],\n              [108.024521, 32.177462],\n              [107.979558, 32.146051],\n              [107.924739, 32.197215],\n              [107.890247, 32.214432],\n              [107.864377, 32.201266],\n              [107.812022, 32.247844],\n              [107.753508, 32.338399],\n              [107.707929, 32.331826],\n              [107.680827, 32.397035],\n              [107.648183, 32.413709],\n              [107.598291, 32.411688],\n              [107.527458, 32.38238],\n              [107.489886, 32.425328],\n              [107.456625, 32.41775],\n              [107.460937, 32.453612],\n              [107.438763, 32.465732],\n              [107.436299, 32.529835],\n              [107.382097, 32.54043],\n              [107.356843, 32.506622],\n              [107.313727, 32.489965],\n              [107.287858, 32.457147],\n              [107.263836, 32.403099],\n              [107.212097, 32.428864],\n              [107.189924, 32.468256],\n              [107.127098, 32.482393],\n              [107.080286, 32.542448],\n              [107.108004, 32.600951],\n              [107.098765, 32.649338],\n              [107.05996, 32.686115],\n              [107.066736, 32.708779],\n              [107.012533, 32.721367],\n              [106.912751, 32.704247],\n              [106.903512, 32.721367],\n              [106.854853, 32.724388],\n              [106.82344, 32.705254],\n              [106.793259, 32.712807],\n              [106.783404, 32.735967],\n              [106.733513, 32.739491],\n              [106.670071, 32.694678],\n              [106.626955, 32.682086],\n              [106.585687, 32.68813],\n              [106.517934, 32.668485],\n              [106.498224, 32.649338],\n              [106.451412, 32.65992],\n              [106.421231, 32.616579],\n              [106.389203, 32.62666],\n              [106.347935, 32.671003],\n              [106.301123, 32.680071],\n              [106.267863, 32.673522],\n              [106.254928, 32.693671],\n              [106.17424, 32.6977],\n              [106.120037, 32.719856],\n              [106.071378, 32.758114],\n              [106.07261, 32.76365],\n              [106.093552, 32.82402],\n              [106.071378, 32.828546],\n              [106.044277, 32.864747],\n              [106.011632, 32.829552],\n              [105.969132, 32.849162],\n              [105.93156, 32.826032],\n              [105.893371, 32.838603],\n              [105.849024, 32.817985],\n              [105.825002, 32.824523],\n              [105.822538, 32.770192],\n              [105.779423, 32.750061],\n              [105.768952, 32.767676],\n              [105.719061, 32.759624],\n              [105.677793, 32.726402],\n              [105.596489, 32.69921],\n              [105.585402, 32.728919],\n              [105.563844, 32.724891],\n              [105.555221, 32.794343],\n              [105.534279, 32.790822],\n              [105.524424, 32.847654],\n              [105.495475, 32.873292],\n              [105.49917, 32.911986],\n              [105.467757, 32.930071],\n              [105.414171, 32.922034],\n              [105.408011, 32.885857],\n              [105.38091, 32.876307],\n              [105.396308, 32.85067],\n              [105.396308, 32.85067],\n              [105.427721, 32.784281],\n              [105.454207, 32.767173],\n              [105.448663, 32.732946],\n              [105.368591, 32.712807],\n              [105.347033, 32.68259],\n              [105.297758, 32.656897],\n              [105.263265, 32.652362],\n              [105.219534, 32.666469],\n              [105.215222, 32.63674],\n              [105.185041, 32.617587],\n              [105.111128, 32.593893],\n              [105.0791, 32.637244],\n              [105.026745, 32.650346],\n              [104.925115, 32.607505],\n              [104.881999, 32.600951],\n              [104.845659, 32.653873],\n              [104.820405, 32.662943],\n              [104.795768, 32.643292],\n              [104.739717, 32.635228],\n              [104.696601, 32.673522],\n              [104.643015, 32.661935],\n              [104.592508, 32.695685],\n              [104.582653, 32.722374],\n              [104.526602, 32.728416],\n              [104.51182, 32.753585],\n              [104.458849, 32.748551],\n              [104.363994, 32.822511],\n              [104.294393, 32.835586],\n              [104.277147, 32.90244],\n              [104.288234, 32.942628],\n              [104.345516, 32.940117],\n              [104.378161, 32.953174],\n              [104.383704, 32.994343],\n              [104.426204, 33.010906],\n              [104.391711, 33.035493],\n              [104.337509, 33.038002],\n              [104.378161, 33.109214],\n              [104.351059, 33.158828],\n              [104.32827, 33.223934],\n              [104.323958, 33.26898],\n              [104.303632, 33.304499],\n              [104.333813, 33.315502],\n              [104.386168, 33.298497],\n              [104.420045, 33.327004],\n              [104.373849, 33.345004],\n              [104.292545, 33.336505],\n              [104.272219, 33.391486],\n              [104.22048, 33.404477],\n              [104.213089, 33.446932],\n              [104.180444, 33.472895],\n              [104.155191, 33.542755],\n              [104.176749, 33.5996],\n              [104.103452, 33.663381],\n              [104.046169, 33.686291],\n              [103.980264, 33.670852],\n              [103.861388, 33.682307],\n              [103.778236, 33.658898],\n              [103.690772, 33.69376],\n              [103.667983, 33.685793],\n              [103.645809, 33.708697],\n              [103.593454, 33.716164],\n              [103.563889, 33.699735],\n              [103.552186, 33.671351],\n              [103.520157, 33.678323],\n              [103.545411, 33.719649],\n              [103.518309, 33.807213],\n              [103.464723, 33.80224],\n              [103.434542, 33.752993],\n              [103.35447, 33.743539],\n              [103.278709, 33.774387],\n              [103.284868, 33.80224],\n              [103.24976, 33.814175],\n              [103.228202, 33.79478],\n              [103.165376, 33.805721],\n              [103.153673, 33.819147],\n              [103.181391, 33.900649],\n              [103.16476, 33.929454],\n              [103.1315, 33.931937],\n              [103.120413, 33.953286],\n              [103.157369, 33.998944],\n              [103.147514, 34.036644],\n              [103.119797, 34.03466],\n              [103.129652, 34.065899],\n              [103.178927, 34.079779],\n              [103.121644, 34.112487],\n              [103.124108, 34.162022],\n              [103.100087, 34.181828],\n              [103.052043, 34.195194],\n              [103.005848, 34.184798],\n              [102.973203, 34.205588],\n              [102.977515, 34.252595],\n              [102.949181, 34.292159],\n              [102.911609, 34.312923],\n              [102.85987, 34.301058],\n              [102.856791, 34.270895],\n              [102.798276, 34.272874],\n              [102.779798, 34.236764],\n              [102.728675, 34.235774],\n              [102.694799, 34.198659],\n              [102.664002, 34.192719],\n              [102.651067, 34.165983],\n              [102.598712, 34.14766],\n              [102.655994, 34.113478],\n              [102.649219, 34.080275],\n              [102.615958, 34.099604],\n              [102.511865, 34.086222],\n              [102.471213, 34.072839],\n              [102.437336, 34.087214],\n              [102.406539, 34.033172],\n              [102.392372, 33.971651],\n              [102.345561, 33.969666],\n              [102.315996, 33.993983],\n              [102.287047, 33.977607],\n              [102.248858, 33.98654],\n              [102.226069, 33.963214],\n              [102.16817, 33.983066],\n              [102.136142, 33.965199],\n              [102.25317, 33.861399],\n              [102.261177, 33.821136],\n              [102.243315, 33.786823],\n              [102.296286, 33.783838],\n              [102.324619, 33.754486],\n              [102.284583, 33.719151],\n              [102.342481, 33.725622],\n              [102.31538, 33.665374],\n              [102.346793, 33.605582],\n              [102.440416, 33.574673],\n              [102.477988, 33.543254],\n              [102.446575, 33.53228],\n              [102.461358, 33.501345],\n              [102.462589, 33.449429],\n              [102.447807, 33.454922],\n              [102.392988, 33.404477],\n              [102.368967, 33.41247],\n              [102.310452, 33.397982],\n              [102.296286, 33.413969],\n              [102.258098, 33.409472],\n              [102.218062, 33.349503],\n              [102.192192, 33.337005],\n              [102.217446, 33.247961],\n              [102.200815, 33.223434],\n              [102.160163, 33.242956],\n              [102.144765, 33.273983],\n              [102.117047, 33.288492],\n              [102.08933, 33.227439],\n              [102.08933, 33.204908],\n              [102.054838, 33.189884],\n              [101.99386, 33.1999],\n              [101.935345, 33.186879],\n              [101.921795, 33.153817],\n              [101.887302, 33.135778],\n              [101.865744, 33.103198],\n              [101.825708, 33.119239],\n              [101.841723, 33.184876],\n              [101.83002, 33.213921],\n              [101.770274, 33.248962],\n              [101.769658, 33.26898],\n              [101.877447, 33.314502],\n              [101.887302, 33.383991],\n              [101.915635, 33.425957],\n              [101.946432, 33.442937],\n              [101.906396, 33.48188],\n              [101.907012, 33.539264],\n              [101.884222, 33.578163],\n              [101.844186, 33.602591],\n              [101.831252, 33.554726],\n              [101.783208, 33.556721],\n              [101.769042, 33.538765],\n              [101.777665, 33.533776],\n              [101.769042, 33.45592],\n              [101.695745, 33.433948],\n              [101.663716, 33.383991],\n              [101.64955, 33.323004],\n              [101.677883, 33.297497],\n              [101.735781, 33.279987],\n              [101.709912, 33.21292],\n              [101.653861, 33.162835],\n              [101.661252, 33.135778],\n              [101.633535, 33.101193],\n              [101.557775, 33.167344],\n              [101.515275, 33.192889],\n              [101.487557, 33.226938],\n              [101.403174, 33.225436],\n              [101.386543, 33.207412],\n              [101.393935, 33.157826],\n              [101.381616, 33.153316],\n              [101.297232, 33.262475],\n              [101.217776, 33.256469],\n              [101.182668, 33.26948],\n              [101.156798, 33.236449],\n              [101.124769, 33.221431],\n              [101.11553, 33.194893],\n              [101.169733, 33.10019],\n              [101.143863, 33.086151],\n              [101.146327, 33.056563],\n              [101.184515, 33.041514],\n              [101.171581, 33.009902],\n              [101.183899, 32.984304],\n              [101.129081, 32.989324],\n              [101.134624, 32.95217],\n              [101.124153, 32.909976],\n              [101.178356, 32.892892],\n              [101.223935, 32.855698],\n              [101.237486, 32.825026],\n              [101.22332, 32.725898],\n              [101.157414, 32.661431],\n              [101.124769, 32.658408],\n              [101.077342, 32.68259],\n              [101.030531, 32.660424],\n              [100.99727, 32.627668],\n              [100.956618, 32.621116],\n              [100.93198, 32.600447],\n              [100.887633, 32.632708],\n              [100.834046, 32.648835],\n              [100.77122, 32.643795],\n              [100.690532, 32.678056],\n              [100.71209, 32.645307],\n              [100.710242, 32.610026],\n              [100.673286, 32.628172],\n              [100.661583, 32.616075],\n              [100.657887, 32.546484],\n              [100.645568, 32.526303],\n              [100.603069, 32.553547],\n              [100.54517, 32.569687],\n              [100.516837, 32.632204],\n              [100.470026, 32.694678],\n              [100.450932, 32.694678],\n              [100.420135, 32.73194],\n              [100.378251, 32.698707],\n              [100.399193, 32.756101],\n              [100.339447, 32.719353],\n              [100.258759, 32.742511],\n              [100.231041, 32.696189],\n              [100.229809, 32.650346],\n              [100.208252, 32.606497],\n              [100.189773, 32.630692],\n              [100.109701, 32.640268],\n              [100.088143, 32.668988],\n              [100.139266, 32.724388],\n              [100.117093, 32.802392],\n              [100.123252, 32.837095],\n              [100.064738, 32.895907],\n              [100.029629, 32.895907],\n              [100.038252, 32.929066],\n              [99.956332, 32.948152],\n              [99.947709, 32.986814],\n              [99.877492, 33.045527],\n              [99.877492, 32.993339],\n              [99.851007, 32.941623],\n              [99.805427, 32.940619],\n              [99.788181, 32.956689],\n              [99.764159, 32.924545],\n              [99.791877, 32.883344],\n              [99.766623, 32.826032],\n              [99.760464, 32.769689],\n              [99.717964, 32.732443],\n              [99.700718, 32.76667],\n              [99.646515, 32.774721],\n              [99.640355, 32.790822],\n              [99.589233, 32.789312],\n              [99.558436, 32.839106],\n              [99.45311, 32.862233],\n              [99.376118, 32.899927],\n              [99.353944, 32.885354],\n              [99.268944, 32.878318],\n              [99.24677, 32.924043],\n              [99.235067, 32.982296],\n              [99.214741, 32.991332],\n              [99.196263, 33.035493],\n              [99.124814, 33.046028],\n              [99.090322, 33.079131],\n              [99.024416, 33.094675],\n              [99.014561, 33.081137],\n              [98.971445, 33.098185],\n              [98.967134, 33.115229],\n              [98.92217, 33.118738],\n              [98.858728, 33.150811],\n              [98.804526, 33.219428],\n              [98.802062, 33.270481],\n              [98.759562, 33.276985],\n              [98.779888, 33.370497],\n              [98.736157, 33.406975],\n              [98.742316, 33.477887],\n              [98.725686, 33.503341],\n              [98.678258, 33.522801],\n              [98.648077, 33.548741],\n              [98.652389, 33.595114],\n              [98.622824, 33.610067],\n              [98.61728, 33.637476],\n              [98.6567, 33.64744],\n              [98.610505, 33.682805],\n              [98.582788, 33.731595],\n              [98.539672, 33.746525],\n              [98.51873, 33.77389],\n              [98.494092, 33.768915],\n              [98.492861, 33.796272],\n              [98.463295, 33.848477],\n              [98.434962, 33.843009],\n              [98.407245, 33.867362],\n              [98.425723, 33.913066],\n              [98.415252, 33.956761],\n              [98.440506, 33.981577],\n              [98.428187, 34.029204],\n              [98.396774, 34.053008],\n              [98.399854, 34.085231],\n              [98.344419, 34.094648],\n              [98.258188, 34.083249],\n              [98.206449, 34.08424],\n              [98.158405, 34.107037],\n              [98.098043, 34.122892],\n              [98.028442, 34.122892],\n              [97.95453, 34.190739],\n              [97.898479, 34.209548],\n              [97.8104, 34.207568],\n              [97.796849, 34.199154],\n              [97.796849, 34.199154],\n              [97.789458, 34.182818],\n              [97.789458, 34.182818],\n              [97.766668, 34.158555],\n              [97.665654, 34.126855],\n              [97.70261, 34.036644],\n              [97.652719, 33.998448],\n              [97.660111, 33.956264],\n              [97.629314, 33.919523],\n              [97.601596, 33.929951],\n              [97.52214, 33.903133],\n              [97.503662, 33.912073],\n              [97.460546, 33.887236],\n              [97.395257, 33.889224],\n              [97.398336, 33.848477],\n              [97.371851, 33.842015],\n              [97.373083, 33.817655],\n              [97.406344, 33.795278],\n              [97.422974, 33.754984],\n              [97.418046, 33.728608],\n              [97.435293, 33.682307],\n              [97.415583, 33.605582],\n              [97.450075, 33.582152],\n              [97.523372, 33.577166],\n              [97.511669, 33.520805],\n              [97.552321, 33.465906],\n              [97.625618, 33.461412],\n              [97.674893, 33.432949],\n              [97.754349, 33.409972],\n              [97.676125, 33.341004],\n              [97.622538, 33.337005],\n              [97.607756, 33.263976],\n              [97.548626, 33.203907],\n              [97.487648, 33.168346],\n              [97.498119, 33.137783],\n              [97.487032, 33.107209],\n              [97.517213, 33.097683],\n              [97.542466, 33.035995],\n              [97.499966, 33.011408],\n              [97.523988, 32.988822],\n              [97.438372, 32.976271],\n              [97.375547, 32.956689],\n              [97.347829, 32.895907],\n              [97.376163, 32.886359],\n              [97.392793, 32.828546],\n              [97.386018, 32.77925],\n              [97.429133, 32.714318],\n              [97.42359, 32.70475],\n              [97.48272, 32.654377],\n              [97.535075, 32.638252],\n              [97.543698, 32.62162],\n              [97.607756, 32.614059],\n              [97.616995, 32.586329],\n              [97.700763, 32.53488],\n              [97.730944, 32.527312],\n              [97.795617, 32.521257],\n              [97.80732, 32.50006],\n              [97.863986, 32.499051],\n              [97.880001, 32.486431],\n              [97.940363, 32.482393],\n              [98.079565, 32.415224],\n              [98.107283, 32.391476],\n              [98.125145, 32.401077],\n              [98.218768, 32.342444],\n              [98.208913, 32.318171],\n              [98.23047, 32.262521],\n              [98.218768, 32.234683],\n              [98.260035, 32.208862],\n              [98.303151, 32.121726],\n              [98.357354, 32.087253],\n              [98.404781, 32.045159],\n              [98.402933, 32.026896],\n              [98.434962, 32.007613],\n              [98.432498, 31.922825],\n              [98.399238, 31.895899],\n              [98.426339, 31.856767],\n              [98.414636, 31.832365],\n              [98.461448, 31.800327],\n              [98.508875, 31.751995],\n              [98.516882, 31.717383],\n              [98.545831, 31.717383],\n              [98.553839, 31.660349],\n              [98.619128, 31.591555],\n              [98.651157, 31.57881],\n              [98.696736, 31.538523],\n              [98.714599, 31.508935],\n              [98.844562, 31.429817],\n              [98.84333, 31.416028],\n              [98.887062, 31.37465],\n              [98.810685, 31.306668],\n              [98.805758, 31.279052],\n              [98.773113, 31.249382],\n              [98.691809, 31.333253],\n              [98.643766, 31.338876],\n              [98.616048, 31.3036],\n              [98.60373, 31.257568],\n              [98.62344, 31.221238],\n              [98.602498, 31.192062],\n              [98.675179, 31.15417],\n              [98.710287, 31.1178],\n              [98.712135, 31.082954],\n              [98.736772, 31.049121],\n              [98.774961, 31.031174],\n              [98.806374, 30.995783],\n              [98.797135, 30.948575],\n              [98.774345, 30.908019],\n              [98.797135, 30.87926],\n              [98.850105, 30.849465],\n              [98.904924, 30.782649],\n              [98.957895, 30.765166],\n              [98.963438, 30.728134],\n              [98.907388, 30.698292],\n              [98.92217, 30.609225],\n              [98.939417, 30.598923],\n              [98.926482, 30.569556],\n              [98.932025, 30.521623],\n              [98.965286, 30.449937],\n              [98.967134, 30.33482],\n              [98.986844, 30.280569],\n              [98.970829, 30.260928],\n              [98.993003, 30.215429],\n              [98.9813, 30.182843],\n              [98.989308, 30.151799],\n              [99.044742, 30.079842],\n              [99.036735, 30.053945],\n              [99.055213, 29.958587],\n              [99.068148, 29.931621],\n              [99.0238, 29.846009],\n              [99.018873, 29.792009],\n              [98.992387, 29.677163],\n              [99.014561, 29.607464],\n              [99.052133, 29.563748],\n              [99.044742, 29.520013],\n              [99.066916, 29.421018],\n              [99.058909, 29.417368],\n              [99.075539, 29.316186],\n              [99.114343, 29.243628],\n              [99.113727, 29.221171],\n              [99.105104, 29.162656],\n              [99.118039, 29.100971],\n              [99.113727, 29.07273],\n              [99.132206, 28.94869],\n              [99.123582, 28.890021],\n              [99.103872, 28.841803],\n              [99.114343, 28.765763],\n              [99.134053, 28.734806],\n              [99.126662, 28.698066],\n              [99.147604, 28.640831],\n              [99.183944, 28.58882],\n              [99.170394, 28.566221],\n              [99.191952, 28.494714],\n              [99.187024, 28.44],\n              [99.16485, 28.425264],\n              [99.200575, 28.365774],\n              [99.229524, 28.350502],\n              [99.237531, 28.317842],\n              [99.28927, 28.286227],\n              [99.306516, 28.227714],\n              [99.374886, 28.18183],\n              [99.412458, 28.295186],\n              [99.392748, 28.318369],\n              [99.437095, 28.398419],\n              [99.404451, 28.44421],\n              [99.426625, 28.454207],\n              [99.396444, 28.491032],\n              [99.403219, 28.546246],\n              [99.463581, 28.549401],\n              [99.466045, 28.579886],\n              [99.504233, 28.619294],\n              [99.540573, 28.623497],\n              [99.53195, 28.677591],\n              [99.553508, 28.710664],\n              [99.614486, 28.740054],\n              [99.609559, 28.784122],\n              [99.625573, 28.81454],\n              [99.676696, 28.810345],\n              [99.717964, 28.846521],\n              [99.722275, 28.757369],\n              [99.755536, 28.701216],\n              [99.79434, 28.699116],\n              [99.834992, 28.660788],\n              [99.834376, 28.628225],\n              [99.873181, 28.631902],\n              [99.875644, 28.611939],\n              [99.91876, 28.599329],\n              [99.985281, 28.529422],\n              [99.990209, 28.47683],\n              [100.073977, 28.426317],\n              [100.057346, 28.368934],\n              [100.136803, 28.349975],\n              [100.176223, 28.325218],\n              [100.147274, 28.288862],\n              [100.188541, 28.252493],\n              [100.153433, 28.208202],\n              [100.102926, 28.201873],\n              [100.091223, 28.181302],\n              [100.062274, 28.193962],\n              [100.033325, 28.184467],\n              [100.021006, 28.147008],\n              [100.05673, 28.097922],\n              [100.088759, 28.029269],\n              [100.120788, 28.018703],\n              [100.196549, 27.936254],\n              [100.170063, 27.907699],\n              [100.210715, 27.87702],\n              [100.30865, 27.861149],\n              [100.30865, 27.830457],\n              [100.28586, 27.80611],\n              [100.304954, 27.788639],\n              [100.311729, 27.724028],\n              [100.327744, 27.72032],\n              [100.350534, 27.755809],\n              [100.412127, 27.816167],\n              [100.442924, 27.86644],\n              [100.504518, 27.852154],\n              [100.511294, 27.827811],\n              [100.54517, 27.809286],\n              [100.609228, 27.859033],\n              [100.634482, 27.915631],\n              [100.681293, 27.923035],\n              [100.719481, 27.858503],\n              [100.707162, 27.800816],\n              [100.757053, 27.770107],\n              [100.775532, 27.743098],\n              [100.782307, 27.691708],\n              [100.848212, 27.672099],\n              [100.827886, 27.615904],\n              [100.854988, 27.623858],\n              [100.91227, 27.521473],\n              [100.901183, 27.453517],\n              [100.936908, 27.469448],\n              [100.95169, 27.426961],\n              [101.021907, 27.332899],\n              [101.026219, 27.270679],\n              [101.042233, 27.22173],\n              [101.071798, 27.194585],\n              [101.119226, 27.208957],\n              [101.167885, 27.198311],\n              [101.167885, 27.198311]\n            ]\n          ],\n          [\n            [\n              [106.264167, 30.20974],\n              [106.260471, 30.207672],\n              [106.260471, 30.204051],\n              [106.260471, 30.19681],\n              [106.264167, 30.20974]\n            ]\n          ],\n          [\n            [\n              [106.976809, 30.088127],\n              [106.975577, 30.088127],\n              [106.976193, 30.083467],\n              [106.981736, 30.08502],\n              [106.980504, 30.087609],\n              [106.979888, 30.088127],\n              [106.978656, 30.087609],\n              [106.977425, 30.087609],\n              [106.976809, 30.088127]\n            ]\n          ],\n          [\n            [\n              [105.558916, 30.18543],\n              [105.556453, 30.187499],\n              [105.550909, 30.179222],\n              [105.56138, 30.183878],\n              [105.558916, 30.18543]\n            ]\n          ]\n        ]\n      }\n    },\n    {\n      \"type\": \"Feature\",\n      \"properties\": {\n        \"adcode\": 520000,\n        \"name\": \"贵州省\",\n        \"center\": [106.713478, 26.578343],\n        \"centroid\": [106.880455, 26.826368],\n        \"childrenNum\": 9,\n        \"level\": \"province\",\n        \"parent\": { \"adcode\": 100000 },\n        \"subFeatureIndex\": 23,\n        \"acroutes\": [100000]\n      },\n      \"geometry\": {\n        \"type\": \"MultiPolygon\",\n        \"coordinates\": [\n          [\n            [\n              [109.274262, 28.494714],\n              [109.23361, 28.474726],\n              [109.191726, 28.471043],\n              [109.153538, 28.417369],\n              [109.152306, 28.349975],\n              [109.117198, 28.277795],\n              [109.081473, 28.247749],\n              [109.101799, 28.202401],\n              [109.086401, 28.184467],\n              [109.026655, 28.220331],\n              [109.005713, 28.162837],\n              [108.929952, 28.19027],\n              [108.923793, 28.217167],\n              [108.89546, 28.219804],\n              [108.855424, 28.199764],\n              [108.821547, 28.245113],\n              [108.772888, 28.212949],\n              [108.738395, 28.228241],\n              [108.726692, 28.282011],\n              [108.761801, 28.304143],\n              [108.783359, 28.380518],\n              [108.759953, 28.389995],\n              [108.780279, 28.42579],\n              [108.746402, 28.45105],\n              [108.709446, 28.501026],\n              [108.700207, 28.48209],\n              [108.657091, 28.47683],\n              [108.640461, 28.456838],\n              [108.688504, 28.422106],\n              [108.697127, 28.401051],\n              [108.656475, 28.359981],\n              [108.667562, 28.334173],\n              [108.611512, 28.324691],\n              [108.580099, 28.343128],\n              [108.576403, 28.38631],\n              [108.609048, 28.407368],\n              [108.609664, 28.43579],\n              [108.586874, 28.463678],\n              [108.573939, 28.531],\n              [108.610896, 28.539412],\n              [108.604736, 28.590922],\n              [108.636149, 28.621396],\n              [108.575787, 28.659738],\n              [108.50249, 28.63768],\n              [108.501258, 28.626649],\n              [108.439049, 28.634003],\n              [108.332491, 28.679166],\n              [108.347274, 28.736381],\n              [108.385462, 28.772058],\n              [108.386078, 28.803003],\n              [108.352817, 28.815589],\n              [108.346658, 28.859625],\n              [108.357745, 28.893165],\n              [108.345426, 28.943453],\n              [108.319556, 28.961258],\n              [108.297999, 29.045527],\n              [108.306622, 29.079006],\n              [108.277673, 29.091558],\n              [108.256115, 29.040295],\n              [108.193289, 29.072207],\n              [108.150173, 29.053375],\n              [108.070717, 29.086328],\n              [108.026369, 29.039772],\n              [107.925971, 29.032446],\n              [107.908725, 29.007327],\n              [107.882855, 29.00628],\n              [107.867457, 28.960211],\n              [107.810175, 28.984295],\n              [107.823725, 29.034016],\n              [107.784921, 29.048143],\n              [107.810791, 29.139137],\n              [107.749197, 29.199754],\n              [107.700537, 29.141228],\n              [107.659885, 29.162656],\n              [107.605683, 29.164747],\n              [107.589052, 29.150113],\n              [107.570574, 29.218037],\n              [107.486806, 29.174153],\n              [107.441227, 29.203934],\n              [107.401807, 29.184603],\n              [107.408582, 29.138091],\n              [107.427676, 29.128682],\n              [107.412278, 29.094696],\n              [107.369778, 29.091558],\n              [107.395647, 29.041341],\n              [107.364235, 29.00942],\n              [107.396879, 28.993718],\n              [107.412894, 28.960211],\n              [107.441227, 28.943977],\n              [107.41351, 28.911502],\n              [107.383945, 28.848618],\n              [107.339597, 28.845997],\n              [107.327894, 28.810869],\n              [107.261373, 28.792514],\n              [107.24659, 28.76209],\n              [107.219489, 28.772582],\n              [107.210866, 28.817686],\n              [107.227496, 28.836037],\n              [107.194851, 28.838134],\n              [107.206554, 28.868535],\n              [107.14188, 28.887925],\n              [107.016229, 28.882685],\n              [107.019308, 28.861722],\n              [106.983584, 28.851239],\n              [106.988512, 28.776254],\n              [106.951555, 28.766812],\n              [106.923222, 28.809821],\n              [106.872099, 28.777304],\n              [106.845614, 28.780975],\n              [106.824056, 28.756319],\n              [106.86594, 28.690192],\n              [106.889345, 28.695966],\n              [106.866556, 28.624548],\n              [106.830831, 28.623497],\n              [106.807425, 28.589346],\n              [106.784636, 28.626649],\n              [106.756918, 28.607211],\n              [106.77786, 28.563068],\n              [106.73844, 28.554657],\n              [106.726121, 28.51838],\n              [106.747063, 28.467361],\n              [106.708259, 28.450524],\n              [106.697788, 28.47683],\n              [106.632499, 28.503655],\n              [106.564745, 28.485247],\n              [106.567825, 28.523638],\n              [106.615252, 28.549401],\n              [106.606629, 28.593024],\n              [106.63681, 28.622972],\n              [106.618332, 28.645033],\n              [106.651593, 28.649235],\n              [106.617716, 28.66709],\n              [106.6171, 28.691242],\n              [106.587535, 28.691767],\n              [106.56105, 28.719062],\n              [106.561666, 28.756319],\n              [106.474202, 28.832891],\n              [106.45326, 28.817162],\n              [106.461883, 28.761041],\n              [106.492064, 28.742153],\n              [106.528405, 28.677591],\n              [106.502535, 28.661313],\n              [106.49268, 28.591448],\n              [106.466811, 28.586193],\n              [106.504999, 28.544669],\n              [106.477282, 28.530474],\n              [106.403369, 28.569901],\n              [106.37442, 28.525742],\n              [106.379348, 28.479986],\n              [106.349167, 28.473674],\n              [106.304819, 28.505233],\n              [106.2925, 28.537309],\n              [106.254928, 28.539412],\n              [106.184711, 28.58882],\n              [106.17116, 28.629275],\n              [106.14837, 28.642932],\n              [106.103407, 28.636104],\n              [106.085544, 28.681792],\n              [106.030726, 28.694917],\n              [106.001161, 28.743727],\n              [105.966668, 28.761041],\n              [105.937719, 28.686517],\n              [105.889676, 28.670765],\n              [105.884748, 28.595126],\n              [105.808372, 28.599855],\n              [105.78435, 28.610889],\n              [105.757249, 28.590397],\n              [105.74493, 28.616668],\n              [105.712901, 28.586718],\n              [105.693191, 28.58882],\n              [105.68272, 28.534154],\n              [105.62359, 28.517854],\n              [105.612503, 28.438947],\n              [105.643916, 28.431053],\n              [105.655003, 28.362615],\n              [105.639604, 28.324164],\n              [105.68888, 28.284119],\n              [105.730147, 28.271997],\n              [105.737539, 28.30309],\n              [105.76464, 28.308359],\n              [105.76464, 28.308359],\n              [105.78743, 28.335753],\n              [105.824386, 28.306251],\n              [105.848408, 28.255656],\n              [105.889676, 28.237732],\n              [105.860727, 28.159672],\n              [105.895219, 28.119565],\n              [105.943878, 28.143314],\n              [105.975907, 28.107952],\n              [106.093552, 28.162837],\n              [106.145291, 28.162837],\n              [106.206885, 28.134343],\n              [106.266631, 28.066769],\n              [106.246305, 28.011835],\n              [106.286341, 28.007079],\n              [106.328225, 27.952643],\n              [106.307899, 27.936782],\n              [106.304819, 27.899237],\n              [106.325145, 27.898708],\n              [106.337464, 27.859033],\n              [106.306667, 27.808756],\n              [106.242609, 27.767459],\n              [106.193334, 27.75422],\n              [106.120653, 27.779638],\n              [106.063987, 27.776991],\n              [106.023335, 27.746805],\n              [105.985146, 27.749983],\n              [105.92848, 27.729855],\n              [105.922937, 27.746805],\n              [105.868118, 27.732504],\n              [105.848408, 27.707074],\n              [105.76772, 27.7182],\n              [105.722756, 27.706015],\n              [105.720292, 27.683759],\n              [105.664242, 27.683759],\n              [105.62359, 27.666269],\n              [105.605112, 27.715552],\n              [105.560148, 27.71979],\n              [105.508409, 27.769048],\n              [105.44004, 27.775402],\n              [105.353809, 27.748924],\n              [105.308229, 27.704955],\n              [105.29591, 27.631811],\n              [105.304533, 27.611661],\n              [105.25649, 27.582491],\n              [105.232469, 27.546945],\n              [105.260186, 27.514573],\n              [105.234316, 27.489093],\n              [105.233084, 27.436522],\n              [105.182577, 27.367451],\n              [105.184425, 27.392959],\n              [105.120984, 27.418461],\n              [105.068013, 27.418461],\n              [105.01073, 27.379143],\n              [104.913412, 27.327051],\n              [104.871528, 27.290891],\n              [104.851818, 27.299401],\n              [104.856746, 27.332368],\n              [104.824717, 27.3531],\n              [104.77113, 27.317481],\n              [104.7545, 27.345658],\n              [104.611602, 27.306846],\n              [104.570334, 27.331836],\n              [104.539537, 27.327583],\n              [104.497037, 27.414743],\n              [104.467472, 27.414211],\n              [104.363378, 27.467855],\n              [104.30856, 27.407305],\n              [104.295625, 27.37436],\n              [104.247582, 27.336621],\n              [104.248813, 27.291955],\n              [104.210625, 27.297273],\n              [104.173053, 27.263232],\n              [104.113923, 27.338216],\n              [104.084358, 27.330773],\n              [104.01722, 27.383926],\n              [104.015372, 27.429086],\n              [103.956242, 27.425367],\n              [103.932221, 27.443958],\n              [103.905119, 27.38552],\n              [103.903271, 27.347785],\n              [103.874322, 27.331304],\n              [103.865699, 27.28185],\n              [103.80041, 27.26536],\n              [103.801641, 27.250464],\n              [103.748671, 27.210021],\n              [103.696316, 27.126429],\n              [103.63349, 27.12057],\n              [103.620555, 27.096598],\n              [103.652584, 27.092868],\n              [103.659975, 27.065692],\n              [103.614396, 27.079548],\n              [103.601461, 27.061962],\n              [103.623635, 27.035312],\n              [103.623019, 27.007056],\n              [103.675374, 27.051836],\n              [103.704939, 27.049171],\n              [103.73204, 27.018785],\n              [103.753598, 26.963858],\n              [103.775156, 26.951056],\n              [103.763453, 26.905702],\n              [103.779468, 26.87421],\n              [103.722185, 26.851253],\n              [103.705555, 26.794642],\n              [103.725265, 26.742812],\n              [103.773308, 26.716621],\n              [103.759142, 26.689355],\n              [103.748671, 26.623568],\n              [103.763453, 26.585041],\n              [103.815808, 26.55239],\n              [103.819504, 26.529903],\n              [103.865699, 26.512232],\n              [103.953163, 26.521336],\n              [104.008597, 26.511697],\n              [104.067727, 26.51491],\n              [104.068343, 26.573266],\n              [104.121314, 26.638012],\n              [104.160734, 26.646571],\n              [104.222328, 26.620358],\n              [104.268524, 26.617683],\n              [104.274683, 26.633733],\n              [104.313487, 26.612867],\n              [104.353523, 26.620893],\n              [104.398487, 26.686147],\n              [104.424356, 26.709137],\n              [104.468088, 26.644431],\n              [104.459465, 26.602701],\n              [104.488414, 26.579689],\n              [104.556783, 26.590393],\n              [104.579573, 26.568449],\n              [104.57095, 26.524549],\n              [104.598667, 26.520801],\n              [104.638703, 26.477954],\n              [104.631928, 26.451702],\n              [104.665804, 26.434019],\n              [104.664572, 26.397572],\n              [104.684283, 26.3772],\n              [104.659645, 26.335373],\n              [104.592508, 26.317672],\n              [104.542616, 26.253282],\n              [104.548776, 26.226979],\n              [104.518595, 26.165762],\n              [104.52845, 26.114186],\n              [104.499501, 26.070651],\n              [104.460081, 26.085702],\n              [104.470552, 26.009352],\n              [104.438523, 25.92757],\n              [104.414501, 25.909807],\n              [104.441602, 25.868889],\n              [104.42374, 25.841961],\n              [104.397871, 25.76168],\n              [104.370769, 25.730415],\n              [104.328886, 25.760602],\n              [104.310407, 25.647901],\n              [104.332581, 25.598796],\n              [104.389248, 25.595558],\n              [104.428668, 25.576126],\n              [104.436059, 25.520512],\n              [104.418813, 25.499447],\n              [104.434827, 25.472436],\n              [104.44961, 25.495126],\n              [104.483486, 25.494585],\n              [104.524138, 25.526992],\n              [104.556783, 25.524832],\n              [104.543232, 25.400556],\n              [104.566638, 25.402719],\n              [104.615913, 25.364871],\n              [104.646094, 25.356759],\n              [104.639935, 25.295632],\n              [104.689826, 25.296173],\n              [104.736021, 25.268034],\n              [104.816094, 25.262622],\n              [104.826565, 25.235558],\n              [104.806854, 25.224189],\n              [104.822869, 25.170037],\n              [104.801927, 25.163537],\n              [104.753884, 25.214443],\n              [104.724319, 25.195491],\n              [104.732326, 25.167871],\n              [104.695369, 25.122364],\n              [104.685514, 25.078466],\n              [104.619609, 25.060577],\n              [104.684898, 25.054072],\n              [104.713232, 24.996048],\n              [104.663957, 24.964584],\n              [104.635623, 24.903803],\n              [104.586964, 24.872859],\n              [104.539537, 24.813663],\n              [104.542616, 24.75607],\n              [104.529682, 24.731611],\n              [104.595587, 24.709323],\n              [104.628848, 24.660927],\n              [104.703377, 24.645698],\n              [104.729246, 24.617953],\n              [104.771746, 24.659839],\n              [104.841963, 24.676155],\n              [104.865985, 24.730524],\n              [104.899245, 24.752809],\n              [105.03352, 24.787586],\n              [105.026745, 24.815836],\n              [105.039064, 24.872859],\n              [105.077868, 24.918459],\n              [105.09573, 24.92877],\n              [105.131454, 24.959701],\n              [105.157324, 24.958616],\n              [105.178266, 24.985199],\n              [105.212758, 24.995505],\n              [105.251563, 24.967296],\n              [105.267577, 24.929313],\n              [105.334099, 24.9266],\n              [105.365511, 24.943423],\n              [105.428337, 24.930941],\n              [105.457286, 24.87123],\n              [105.493011, 24.833217],\n              [105.497322, 24.809318],\n              [105.573083, 24.797366],\n              [105.607576, 24.803885],\n              [105.617431, 24.78161],\n              [105.70551, 24.768569],\n              [105.767104, 24.719109],\n              [105.827466, 24.702799],\n              [105.863806, 24.729437],\n              [105.942031, 24.725088],\n              [105.961741, 24.677786],\n              [106.024566, 24.633186],\n              [106.047356, 24.684312],\n              [106.113878, 24.714216],\n              [106.150218, 24.762591],\n              [106.173008, 24.760417],\n              [106.206269, 24.851139],\n              [106.197645, 24.885889],\n              [106.145291, 24.954275],\n              [106.191486, 24.95319],\n              [106.215508, 24.981944],\n              [106.253696, 24.971094],\n              [106.304819, 24.973807],\n              [106.332536, 24.988454],\n              [106.442173, 25.019369],\n              [106.450181, 25.033468],\n              [106.519782, 25.054072],\n              [106.551195, 25.082802],\n              [106.590615, 25.08768],\n              [106.63989, 25.132658],\n              [106.644817, 25.164621],\n              [106.691013, 25.179245],\n              [106.732281, 25.162454],\n              [106.764926, 25.183036],\n              [106.787715, 25.17112],\n              [106.853005, 25.186827],\n              [106.888113, 25.181953],\n              [106.904128, 25.231768],\n              [106.933077, 25.250714],\n              [106.975577, 25.232851],\n              [107.013765, 25.275611],\n              [107.012533, 25.352973],\n              [106.987896, 25.358922],\n              [106.963874, 25.437852],\n              [106.996519, 25.442716],\n              [107.015613, 25.495666],\n              [107.066736, 25.50917],\n              [107.064272, 25.559391],\n              [107.185612, 25.578825],\n              [107.205322, 25.607971],\n              [107.228728, 25.604733],\n              [107.232423, 25.556691],\n              [107.263836, 25.543193],\n              [107.336517, 25.461089],\n              [107.308184, 25.432988],\n              [107.318039, 25.401637],\n              [107.358691, 25.393528],\n              [107.375937, 25.411908],\n              [107.420901, 25.392987],\n              [107.409198, 25.347024],\n              [107.432604, 25.289139],\n              [107.481263, 25.299961],\n              [107.489886, 25.276693],\n              [107.472024, 25.213902],\n              [107.512676, 25.209029],\n              [107.576734, 25.256668],\n              [107.599523, 25.250714],\n              [107.632168, 25.310241],\n              [107.659885, 25.316192],\n              [107.661733, 25.258833],\n              [107.696226, 25.219858],\n              [107.700537, 25.194408],\n              [107.741805, 25.24043],\n              [107.762131, 25.229061],\n              [107.760283, 25.188451],\n              [107.789233, 25.15487],\n              [107.762747, 25.125073],\n              [107.839124, 25.115861],\n              [107.872384, 25.141327],\n              [107.928435, 25.155954],\n              [108.001732, 25.196574],\n              [108.080572, 25.193867],\n              [108.115065, 25.210112],\n              [108.143398, 25.269658],\n              [108.152021, 25.324306],\n              [108.142782, 25.390825],\n              [108.193289, 25.405421],\n              [108.162492, 25.444878],\n              [108.192673, 25.458928],\n              [108.251803, 25.430286],\n              [108.241332, 25.46217],\n              [108.280752, 25.48],\n              [108.308469, 25.525912],\n              [108.348506, 25.536173],\n              [108.359592, 25.513491],\n              [108.400244, 25.491344],\n              [108.418723, 25.443257],\n              [108.471693, 25.458928],\n              [108.585642, 25.365952],\n              [108.589338, 25.335125],\n              [108.625062, 25.308076],\n              [108.62999, 25.335666],\n              [108.600425, 25.432448],\n              [108.6072, 25.491885],\n              [108.634917, 25.520512],\n              [108.68912, 25.533473],\n              [108.658323, 25.550212],\n              [108.660787, 25.584763],\n              [108.68604, 25.587462],\n              [108.68912, 25.623081],\n              [108.724844, 25.634952],\n              [108.783975, 25.628477],\n              [108.799989, 25.576666],\n              [108.781511, 25.554531],\n              [108.814772, 25.526992],\n              [108.826474, 25.550212],\n              [108.890532, 25.556151],\n              [108.8893, 25.543193],\n              [108.949046, 25.557231],\n              [109.024807, 25.51241],\n              [109.088249, 25.550752],\n              [109.051908, 25.566949],\n              [109.030966, 25.629556],\n              [109.075314, 25.693749],\n              [109.07901, 25.72071],\n              [109.043285, 25.738502],\n              [109.007561, 25.734728],\n              [108.953974, 25.686738],\n              [108.953974, 25.686738],\n              [108.900387, 25.682423],\n              [108.896076, 25.71424],\n              [108.940423, 25.740119],\n              [108.963829, 25.732572],\n              [108.999553, 25.765453],\n              [108.989698, 25.778926],\n              [109.048213, 25.790781],\n              [109.077778, 25.776771],\n              [109.095024, 25.80533],\n              [109.143683, 25.795092],\n              [109.13198, 25.762758],\n              [109.147995, 25.741736],\n              [109.206509, 25.788087],\n              [109.207125, 25.740119],\n              [109.296436, 25.71424],\n              [109.340168, 25.731493],\n              [109.327849, 25.76168],\n              [109.339552, 25.83442],\n              [109.359262, 25.836036],\n              [109.396834, 25.900117],\n              [109.435022, 25.93349],\n              [109.408537, 25.967392],\n              [109.473211, 26.006663],\n              [109.48245, 26.029788],\n              [109.452885, 26.055598],\n              [109.449805, 26.101826],\n              [109.502776, 26.096451],\n              [109.513863, 26.128157],\n              [109.47629, 26.148035],\n              [109.439334, 26.238789],\n              [109.467051, 26.313917],\n              [109.442414, 26.289774],\n              [109.369733, 26.277432],\n              [109.351255, 26.264016],\n              [109.325385, 26.29031],\n              [109.285965, 26.295676],\n              [109.271183, 26.327863],\n              [109.29582, 26.350389],\n              [109.319842, 26.418477],\n              [109.38082, 26.454381],\n              [109.362342, 26.472061],\n              [109.385747, 26.493487],\n              [109.381436, 26.518659],\n              [109.407305, 26.533116],\n              [109.390675, 26.598955],\n              [109.35495, 26.658873],\n              [109.334008, 26.646036],\n              [109.306291, 26.661012],\n              [109.283501, 26.698445],\n              [109.35495, 26.693098],\n              [109.407305, 26.719829],\n              [109.447957, 26.759913],\n              [109.486761, 26.759913],\n              [109.47629, 26.829894],\n              [109.467051, 26.83203],\n              [109.452885, 26.861932],\n              [109.436254, 26.892359],\n              [109.555131, 26.946788],\n              [109.520022, 27.058764],\n              [109.497848, 27.079548],\n              [109.486761, 27.053968],\n              [109.454733, 27.069423],\n              [109.472595, 27.134951],\n              [109.441182, 27.117907],\n              [109.415312, 27.154123],\n              [109.358646, 27.153058],\n              [109.33524, 27.139212],\n              [109.264407, 27.131755],\n              [109.239154, 27.14933],\n              [109.21698, 27.114711],\n              [109.165857, 27.066758],\n              [109.101183, 27.06889],\n              [109.128901, 27.122701],\n              [109.032814, 27.104056],\n              [109.007561, 27.08008],\n              [108.940423, 27.044907],\n              [108.942887, 27.017186],\n              [108.942887, 27.017186],\n              [108.877597, 27.01612],\n              [108.79075, 27.084343],\n              [108.878829, 27.106187],\n              [108.926873, 27.160512],\n              [108.907778, 27.204699],\n              [108.963213, 27.235565],\n              [108.983539, 27.26802],\n              [109.053756, 27.293551],\n              [109.044517, 27.331304],\n              [109.103647, 27.336621],\n              [109.142451, 27.418461],\n              [109.141835, 27.448207],\n              [109.167089, 27.41793],\n              [109.202197, 27.450331],\n              [109.245313, 27.41793],\n              [109.300132, 27.423774],\n              [109.303211, 27.47582],\n              [109.404841, 27.55066],\n              [109.461508, 27.567637],\n              [109.451037, 27.586204],\n              [109.470131, 27.62863],\n              [109.45658, 27.673689],\n              [109.470747, 27.680049],\n              [109.414081, 27.725087],\n              [109.366653, 27.721909],\n              [109.37774, 27.736741],\n              [109.332777, 27.782815],\n              [109.346943, 27.838396],\n              [109.32169, 27.868027],\n              [109.30198, 27.956343],\n              [109.319842, 27.988585],\n              [109.362342, 28.007608],\n              [109.378972, 28.034551],\n              [109.335856, 28.063073],\n              [109.298284, 28.036136],\n              [109.314298, 28.103729],\n              [109.33832, 28.141731],\n              [109.340168, 28.19027],\n              [109.367885, 28.254602],\n              [109.388211, 28.268307],\n              [109.33524, 28.293605],\n              [109.317994, 28.277795],\n              [109.275494, 28.313101],\n              [109.268719, 28.33786],\n              [109.289045, 28.373673],\n              [109.264407, 28.392628],\n              [109.260712, 28.46473],\n              [109.274262, 28.494714]\n            ]\n          ],\n          [\n            [\n              [109.47629, 26.829894],\n              [109.486761, 26.759913],\n              [109.52187, 26.749226],\n              [109.522486, 26.749226],\n              [109.497232, 26.815474],\n              [109.513247, 26.84004],\n              [109.509551, 26.877947],\n              [109.486761, 26.895562],\n              [109.452885, 26.861932],\n              [109.467051, 26.83203],\n              [109.47629, 26.829894]\n            ]\n          ],\n          [\n            [\n              [109.528645, 26.743881],\n              [109.568065, 26.726243],\n              [109.597015, 26.756173],\n              [109.554515, 26.73533],\n              [109.528645, 26.743881]\n            ]\n          ]\n        ]\n      }\n    },\n    {\n      \"type\": \"Feature\",\n      \"properties\": {\n        \"adcode\": 530000,\n        \"name\": \"云南省\",\n        \"center\": [102.712251, 25.040609],\n        \"centroid\": [101.485106, 25.008643],\n        \"childrenNum\": 16,\n        \"level\": \"province\",\n        \"parent\": { \"adcode\": 100000 },\n        \"subFeatureIndex\": 24,\n        \"acroutes\": [100000]\n      },\n      \"geometry\": {\n        \"type\": \"MultiPolygon\",\n        \"coordinates\": [\n          [\n            [\n              [105.308229, 27.704955],\n              [105.290367, 27.712373],\n              [105.293447, 27.770637],\n              [105.273736, 27.794992],\n              [105.313157, 27.810874],\n              [105.25957, 27.827811],\n              [105.233084, 27.895534],\n              [105.284823, 27.935725],\n              [105.270657, 27.99704],\n              [105.247867, 28.009193],\n              [105.218302, 27.990698],\n              [105.186273, 27.995454],\n              [105.167795, 28.021345],\n              [105.186889, 28.054623],\n              [105.168411, 28.071522],\n              [105.119752, 28.07205],\n              [105.061853, 28.096866],\n              [105.002107, 28.064129],\n              [104.980549, 28.063073],\n              [104.975006, 28.020816],\n              [104.903557, 27.962158],\n              [104.918339, 27.938897],\n              [104.888158, 27.914574],\n              [104.842579, 27.900294],\n              [104.796999, 27.901352],\n              [104.761891, 27.884426],\n              [104.743413, 27.901881],\n              [104.676275, 27.880723],\n              [104.63316, 27.850567],\n              [104.607906, 27.857974],\n              [104.573413, 27.840512],\n              [104.52537, 27.889187],\n              [104.508124, 27.878078],\n              [104.44961, 27.927794],\n              [104.40095, 27.952114],\n              [104.362762, 28.012891],\n              [104.30856, 28.036136],\n              [104.304248, 28.050926],\n              [104.373233, 28.051454],\n              [104.40095, 28.091586],\n              [104.448994, 28.113758],\n              [104.444682, 28.16231],\n              [104.406494, 28.173389],\n              [104.402182, 28.202928],\n              [104.442834, 28.211366],\n              [104.462544, 28.241422],\n              [104.44961, 28.269889],\n              [104.420045, 28.269889],\n              [104.392943, 28.291497],\n              [104.384936, 28.329959],\n              [104.343052, 28.334173],\n              [104.314103, 28.306778],\n              [104.282074, 28.343128],\n              [104.254357, 28.403683],\n              [104.267908, 28.499448],\n              [104.260516, 28.536257],\n              [104.323342, 28.540989],\n              [104.355987, 28.555183],\n              [104.375697, 28.5946],\n              [104.417581, 28.598279],\n              [104.425588, 28.626649],\n              [104.372617, 28.649235],\n              [104.314719, 28.615617],\n              [104.277147, 28.631902],\n              [104.252509, 28.660788],\n              [104.230951, 28.635579],\n              [104.170589, 28.642932],\n              [104.117618, 28.634003],\n              [104.09606, 28.603533],\n              [104.05972, 28.6277],\n              [103.953779, 28.600906],\n              [103.910047, 28.631377],\n              [103.887873, 28.61982],\n              [103.850917, 28.66709],\n              [103.833054, 28.605109],\n              [103.838598, 28.587244],\n              [103.802873, 28.563068],\n              [103.781931, 28.525216],\n              [103.829975, 28.459995],\n              [103.828743, 28.44],\n              [103.860156, 28.383677],\n              [103.85338, 28.356822],\n              [103.877402, 28.316262],\n              [103.828743, 28.285173],\n              [103.770845, 28.233514],\n              [103.740048, 28.23615],\n              [103.701859, 28.198709],\n              [103.692004, 28.232459],\n              [103.643961, 28.260401],\n              [103.573128, 28.230877],\n              [103.533092, 28.168641],\n              [103.470266, 28.122204],\n              [103.430846, 28.044587],\n              [103.459179, 28.021345],\n              [103.486281, 28.033495],\n              [103.515846, 27.965329],\n              [103.55465, 27.978543],\n              [103.502295, 27.910343],\n              [103.509686, 27.843687],\n              [103.487512, 27.794992],\n              [103.461027, 27.779638],\n              [103.393274, 27.709194],\n              [103.369868, 27.708664],\n              [103.349542, 27.678459],\n              [103.29226, 27.632872],\n              [103.2861, 27.561802],\n              [103.232514, 27.56976],\n              [103.19063, 27.523596],\n              [103.144434, 27.450331],\n              [103.141355, 27.420586],\n              [103.080992, 27.396679],\n              [103.055739, 27.40943],\n              [102.989833, 27.367983],\n              [102.941174, 27.405711],\n              [102.899906, 27.317481],\n              [102.883892, 27.299401],\n              [102.883276, 27.258444],\n              [102.904218, 27.227584],\n              [102.913457, 27.133886],\n              [102.870957, 27.026782],\n              [102.894979, 27.001724],\n              [102.896211, 26.91264],\n              [102.949181, 26.843244],\n              [102.966428, 26.837904],\n              [102.991681, 26.775409],\n              [102.983674, 26.76686],\n              [103.008312, 26.710741],\n              [103.005232, 26.679195],\n              [103.026174, 26.664221],\n              [103.035413, 26.556673],\n              [103.052659, 26.555602],\n              [103.052659, 26.514374],\n              [103.030485, 26.485989],\n              [102.989833, 26.482775],\n              [102.988602, 26.413117],\n              [102.998457, 26.371839],\n              [102.975667, 26.340736],\n              [102.893131, 26.338591],\n              [102.878964, 26.364332],\n              [102.833385, 26.306406],\n              [102.785342, 26.298895],\n              [102.739762, 26.268846],\n              [102.709581, 26.210336],\n              [102.659074, 26.221611],\n              [102.60056, 26.250598],\n              [102.638748, 26.307479],\n              [102.629509, 26.336982],\n              [102.570995, 26.362723],\n              [102.542046, 26.338591],\n              [102.440416, 26.300505],\n              [102.392372, 26.296749],\n              [102.349257, 26.244694],\n              [102.245163, 26.212483],\n              [102.242699, 26.190468],\n              [102.174946, 26.146961],\n              [102.152156, 26.10935],\n              [102.107808, 26.068501],\n              [102.080091, 26.065275],\n              [102.020961, 26.096451],\n              [101.954439, 26.084627],\n              [101.929186, 26.105588],\n              [101.899621, 26.099139],\n              [101.857737, 26.049146],\n              [101.835563, 26.04592],\n              [101.839875, 26.082477],\n              [101.796759, 26.114723],\n              [101.807846, 26.156093],\n              [101.773353, 26.168448],\n              [101.737013, 26.219463],\n              [101.690202, 26.241473],\n              [101.630455, 26.224832],\n              [101.586108, 26.279579],\n              [101.597195, 26.303187],\n              [101.64031, 26.318745],\n              [101.660636, 26.346635],\n              [101.635383, 26.357361],\n              [101.637847, 26.388995],\n              [101.565782, 26.454381],\n              [101.530057, 26.467239],\n              [101.506652, 26.499915],\n              [101.458608, 26.49563],\n              [101.422884, 26.53151],\n              [101.395783, 26.591998],\n              [101.402558, 26.604841],\n              [101.461688, 26.606447],\n              [101.461072, 26.640687],\n              [101.481398, 26.673313],\n              [101.453065, 26.692563],\n              [101.513427, 26.768463],\n              [101.466, 26.786629],\n              [101.445674, 26.77434],\n              [101.458608, 26.731054],\n              [101.435819, 26.740675],\n              [101.389623, 26.723036],\n              [101.387159, 26.753501],\n              [101.358826, 26.771669],\n              [101.399478, 26.841642],\n              [101.365602, 26.883819],\n              [101.311399, 26.903034],\n              [101.267667, 26.903034],\n              [101.264587, 26.955323],\n              [101.227015, 26.959057],\n              [101.228863, 26.981992],\n              [101.136472, 27.023584],\n              [101.157414, 27.094999],\n              [101.145095, 27.103523],\n              [101.170349, 27.175421],\n              [101.167885, 27.198311],\n              [101.167885, 27.198311],\n              [101.119226, 27.208957],\n              [101.071798, 27.194585],\n              [101.042233, 27.22173],\n              [101.026219, 27.270679],\n              [101.021907, 27.332899],\n              [100.95169, 27.426961],\n              [100.936908, 27.469448],\n              [100.901183, 27.453517],\n              [100.91227, 27.521473],\n              [100.854988, 27.623858],\n              [100.827886, 27.615904],\n              [100.848212, 27.672099],\n              [100.782307, 27.691708],\n              [100.775532, 27.743098],\n              [100.757053, 27.770107],\n              [100.707162, 27.800816],\n              [100.719481, 27.858503],\n              [100.681293, 27.923035],\n              [100.634482, 27.915631],\n              [100.609228, 27.859033],\n              [100.54517, 27.809286],\n              [100.511294, 27.827811],\n              [100.504518, 27.852154],\n              [100.442924, 27.86644],\n              [100.412127, 27.816167],\n              [100.350534, 27.755809],\n              [100.327744, 27.72032],\n              [100.311729, 27.724028],\n              [100.304954, 27.788639],\n              [100.28586, 27.80611],\n              [100.30865, 27.830457],\n              [100.30865, 27.861149],\n              [100.210715, 27.87702],\n              [100.170063, 27.907699],\n              [100.196549, 27.936254],\n              [100.120788, 28.018703],\n              [100.088759, 28.029269],\n              [100.05673, 28.097922],\n              [100.021006, 28.147008],\n              [100.033325, 28.184467],\n              [100.062274, 28.193962],\n              [100.091223, 28.181302],\n              [100.102926, 28.201873],\n              [100.153433, 28.208202],\n              [100.188541, 28.252493],\n              [100.147274, 28.288862],\n              [100.176223, 28.325218],\n              [100.136803, 28.349975],\n              [100.057346, 28.368934],\n              [100.073977, 28.426317],\n              [99.990209, 28.47683],\n              [99.985281, 28.529422],\n              [99.91876, 28.599329],\n              [99.875644, 28.611939],\n              [99.873181, 28.631902],\n              [99.834376, 28.628225],\n              [99.834992, 28.660788],\n              [99.79434, 28.699116],\n              [99.755536, 28.701216],\n              [99.722275, 28.757369],\n              [99.717964, 28.846521],\n              [99.676696, 28.810345],\n              [99.625573, 28.81454],\n              [99.609559, 28.784122],\n              [99.614486, 28.740054],\n              [99.553508, 28.710664],\n              [99.53195, 28.677591],\n              [99.540573, 28.623497],\n              [99.504233, 28.619294],\n              [99.466045, 28.579886],\n              [99.463581, 28.549401],\n              [99.403219, 28.546246],\n              [99.396444, 28.491032],\n              [99.426625, 28.454207],\n              [99.404451, 28.44421],\n              [99.437095, 28.398419],\n              [99.392748, 28.318369],\n              [99.412458, 28.295186],\n              [99.374886, 28.18183],\n              [99.306516, 28.227714],\n              [99.28927, 28.286227],\n              [99.237531, 28.317842],\n              [99.229524, 28.350502],\n              [99.200575, 28.365774],\n              [99.16485, 28.425264],\n              [99.187024, 28.44],\n              [99.191952, 28.494714],\n              [99.170394, 28.566221],\n              [99.183944, 28.58882],\n              [99.147604, 28.640831],\n              [99.126662, 28.698066],\n              [99.134053, 28.734806],\n              [99.114343, 28.765763],\n              [99.103872, 28.841803],\n              [99.123582, 28.890021],\n              [99.132206, 28.94869],\n              [99.113727, 29.07273],\n              [99.118039, 29.100971],\n              [99.105104, 29.162656],\n              [99.113727, 29.221171],\n              [99.037351, 29.20759],\n              [99.024416, 29.188783],\n              [98.9813, 29.204978],\n              [98.960974, 29.165792],\n              [98.967134, 29.128159],\n              [98.991771, 29.105677],\n              [99.013329, 29.036632],\n              [98.925866, 28.978536],\n              [98.917859, 28.886877],\n              [98.973909, 28.864867],\n              [98.972677, 28.832367],\n              [98.922786, 28.823978],\n              [98.912931, 28.800906],\n              [98.852569, 28.798283],\n              [98.827932, 28.821356],\n              [98.821772, 28.920931],\n              [98.786048, 28.998952],\n              [98.757714, 29.004186],\n              [98.70228, 28.9644],\n              [98.655469, 28.976966],\n              [98.624056, 28.95864],\n              [98.6567, 28.910454],\n              [98.643766, 28.895261],\n              [98.668403, 28.843376],\n              [98.652389, 28.817162],\n              [98.683802, 28.740054],\n              [98.666555, 28.712239],\n              [98.594491, 28.667615],\n              [98.637606, 28.552029],\n              [98.619128, 28.50944],\n              [98.625903, 28.489455],\n              [98.673947, 28.478934],\n              [98.693041, 28.43158],\n              [98.740468, 28.348395],\n              [98.746628, 28.321003],\n              [98.710287, 28.288862],\n              [98.712135, 28.229296],\n              [98.649925, 28.200291],\n              [98.625903, 28.165475],\n              [98.559382, 28.182885],\n              [98.494092, 28.141203],\n              [98.464527, 28.151229],\n              [98.428803, 28.104785],\n              [98.389383, 28.114814],\n              [98.389999, 28.16442],\n              [98.370289, 28.18394],\n              [98.37768, 28.246167],\n              [98.353042, 28.293078],\n              [98.317934, 28.324691],\n              [98.301303, 28.384204],\n              [98.208913, 28.358401],\n              [98.207681, 28.330486],\n              [98.231702, 28.314681],\n              [98.266811, 28.242477],\n              [98.21692, 28.212949],\n              [98.169492, 28.206093],\n              [98.17442, 28.163365],\n              [98.139311, 28.142259],\n              [98.160253, 28.101089],\n              [98.133152, 27.990698],\n              [98.143007, 27.948942],\n              [98.187355, 27.939426],\n              [98.205217, 27.889716],\n              [98.169492, 27.851096],\n              [98.215688, 27.810874],\n              [98.234166, 27.690648],\n              [98.283441, 27.654608],\n              [98.310542, 27.583552],\n              [98.317318, 27.51935],\n              [98.337644, 27.508734],\n              [98.388767, 27.515104],\n              [98.429419, 27.549068],\n              [98.430035, 27.653547],\n              [98.444201, 27.665209],\n              [98.474998, 27.634462],\n              [98.53536, 27.620676],\n              [98.554454, 27.646126],\n              [98.587099, 27.587265],\n              [98.583404, 27.571351],\n              [98.650541, 27.567637],\n              [98.662244, 27.586734],\n              [98.706591, 27.553313],\n              [98.685034, 27.484315],\n              [98.704744, 27.462014],\n              [98.686881, 27.425367],\n              [98.702896, 27.412618],\n              [98.706591, 27.362136],\n              [98.741084, 27.330241],\n              [98.734925, 27.287168],\n              [98.717062, 27.271211],\n              [98.723222, 27.221198],\n              [98.696121, 27.211086],\n              [98.713983, 27.139744],\n              [98.712751, 27.075817],\n              [98.765722, 27.05077],\n              [98.762642, 27.018252],\n              [98.732461, 27.002257],\n              [98.757098, 26.877947],\n              [98.730613, 26.851253],\n              [98.762026, 26.798916],\n              [98.746012, 26.696841],\n              [98.770033, 26.690424],\n              [98.762642, 26.660478],\n              [98.781736, 26.620893],\n              [98.773113, 26.578083],\n              [98.753403, 26.559349],\n              [98.757098, 26.491881],\n              [98.741084, 26.432947],\n              [98.750323, 26.424372],\n              [98.733693, 26.350926],\n              [98.681338, 26.308016],\n              [98.672715, 26.239863],\n              [98.713367, 26.231274],\n              [98.735541, 26.185097],\n              [98.712751, 26.156093],\n              [98.720142, 26.127082],\n              [98.661012, 26.087852],\n              [98.656084, 26.139977],\n              [98.632679, 26.145887],\n              [98.575396, 26.118485],\n              [98.602498, 26.054523],\n              [98.614201, 25.968468],\n              [98.637606, 25.971696],\n              [98.686881, 25.925955],\n              [98.705976, 25.855426],\n              [98.677642, 25.816105],\n              [98.640686, 25.798864],\n              [98.553839, 25.845731],\n              [98.529201, 25.840884],\n              [98.476846, 25.77731],\n              [98.461448, 25.735267],\n              [98.457752, 25.682963],\n              [98.409709, 25.664084],\n              [98.402317, 25.593939],\n              [98.326557, 25.566409],\n              [98.314854, 25.543193],\n              [98.247717, 25.607971],\n              [98.170724, 25.620383],\n              [98.189818, 25.569108],\n              [98.163949, 25.524292],\n              [98.131304, 25.51025],\n              [98.15779, 25.457307],\n              [98.137464, 25.381633],\n              [98.101123, 25.388662],\n              [98.099891, 25.354055],\n              [98.06971, 25.311864],\n              [98.006884, 25.298338],\n              [98.0075, 25.279399],\n              [97.940363, 25.214985],\n              [97.904023, 25.216609],\n              [97.875689, 25.25721],\n              [97.839349, 25.27074],\n              [97.796233, 25.155954],\n              [97.743262, 25.078466],\n              [97.719857, 25.080634],\n              [97.727864, 25.04377],\n              [97.716777, 24.978147],\n              [97.729712, 24.908689],\n              [97.785762, 24.876117],\n              [97.797465, 24.845709],\n              [97.765436, 24.823984],\n              [97.680437, 24.827243],\n              [97.652103, 24.790846],\n              [97.569567, 24.765852],\n              [97.547394, 24.739221],\n              [97.569567, 24.708236],\n              [97.570799, 24.602719],\n              [97.554785, 24.490577],\n              [97.530147, 24.443187],\n              [97.588662, 24.435559],\n              [97.669966, 24.452993],\n              [97.679821, 24.401228],\n              [97.716161, 24.358711],\n              [97.662574, 24.339083],\n              [97.665038, 24.296544],\n              [97.721089, 24.295999],\n              [97.767284, 24.258357],\n              [97.729712, 24.227252],\n              [97.72848, 24.183585],\n              [97.754349, 24.163929],\n              [97.748806, 24.160653],\n              [97.743262, 24.159561],\n              [97.730944, 24.113685],\n              [97.700763, 24.093473],\n              [97.697067, 24.092927],\n              [97.637321, 24.04812],\n              [97.628698, 24.004938],\n              [97.572647, 23.983068],\n              [97.529531, 23.943146],\n              [97.5283, 23.926736],\n              [97.618227, 23.888438],\n              [97.640401, 23.866001],\n              [97.647176, 23.840823],\n              [97.684132, 23.876946],\n              [97.718009, 23.867643],\n              [97.72848, 23.895551],\n              [97.763588, 23.907041],\n              [97.795617, 23.951897],\n              [97.8104, 23.943146],\n              [97.863371, 23.978693],\n              [97.896015, 23.974319],\n              [97.902175, 24.014231],\n              [97.984095, 24.031177],\n              [97.995182, 24.04648],\n              [98.091268, 24.085824],\n              [98.096196, 24.08637],\n              [98.123297, 24.092927],\n              [98.125761, 24.092927],\n              [98.132536, 24.09238],\n              [98.19721, 24.09839],\n              [98.219999, 24.113685],\n              [98.343187, 24.098936],\n              [98.37768, 24.114232],\n              [98.48239, 24.122425],\n              [98.487933, 24.123517],\n              [98.547063, 24.128433],\n              [98.593875, 24.08036],\n              [98.646229, 24.106038],\n              [98.681954, 24.100029],\n              [98.71891, 24.127887],\n              [98.818692, 24.133348],\n              [98.841482, 24.126794],\n              [98.876591, 24.15137],\n              [98.895069, 24.098936],\n              [98.807606, 24.025164],\n              [98.773729, 24.022431],\n              [98.727533, 23.970491],\n              [98.701048, 23.981427],\n              [98.673331, 23.960647],\n              [98.701048, 23.946427],\n              [98.68565, 23.90157],\n              [98.701664, 23.834254],\n              [98.669019, 23.800857],\n              [98.696121, 23.784429],\n              [98.784816, 23.781691],\n              [98.824236, 23.727462],\n              [98.811917, 23.703354],\n              [98.835939, 23.683625],\n              [98.847026, 23.632097],\n              [98.882134, 23.620035],\n              [98.882134, 23.595358],\n              [98.844562, 23.578904],\n              [98.80391, 23.540504],\n              [98.826084, 23.470257],\n              [98.874743, 23.483431],\n              [98.912315, 23.426333],\n              [98.920938, 23.360971],\n              [98.872895, 23.329651],\n              [98.906772, 23.331849],\n              [98.936953, 23.309866],\n              [98.928946, 23.26589],\n              [98.889525, 23.209249],\n              [98.906772, 23.185595],\n              [99.002242, 23.160287],\n              [99.057677, 23.164689],\n              [99.048438, 23.11461],\n              [99.106336, 23.086536],\n              [99.187024, 23.100299],\n              [99.255393, 23.077727],\n              [99.281879, 23.101399],\n              [99.3484, 23.12892],\n              [99.380429, 23.099748],\n              [99.440791, 23.079379],\n              [99.477747, 23.083233],\n              [99.528255, 23.065614],\n              [99.517168, 23.006685],\n              [99.533798, 22.961507],\n              [99.563363, 22.925684],\n              [99.531334, 22.897019],\n              [99.446951, 22.934503],\n              [99.43648, 22.913557],\n              [99.462965, 22.844635],\n              [99.401371, 22.826434],\n              [99.385357, 22.761882],\n              [99.326842, 22.751396],\n              [99.31514, 22.737598],\n              [99.339777, 22.708894],\n              [99.385973, 22.57136],\n              [99.359487, 22.535435],\n              [99.382277, 22.493418],\n              [99.297277, 22.41156],\n              [99.251698, 22.393301],\n              [99.278183, 22.34626],\n              [99.233836, 22.296434],\n              [99.235683, 22.250468],\n              [99.207966, 22.232188],\n              [99.175321, 22.185647],\n              [99.188256, 22.162924],\n              [99.156227, 22.159599],\n              [99.219669, 22.110816],\n              [99.294814, 22.109152],\n              [99.35456, 22.095845],\n              [99.400139, 22.100281],\n              [99.486987, 22.128557],\n              [99.516552, 22.099726],\n              [99.562747, 22.113034],\n              [99.578762, 22.098617],\n              [99.581841, 22.103053],\n              [99.648979, 22.100835],\n              [99.696406, 22.067562],\n              [99.762927, 22.068117],\n              [99.870101, 22.029288],\n              [99.871333, 22.067007],\n              [99.972347, 22.053141],\n              [99.965571, 22.014309],\n              [100.000064, 21.973245],\n              [99.982202, 21.919401],\n              [99.960028, 21.907186],\n              [99.944014, 21.821097],\n              [99.991441, 21.703821],\n              [100.049339, 21.669899],\n              [100.094303, 21.702709],\n              [100.131875, 21.699929],\n              [100.169447, 21.663225],\n              [100.107853, 21.585337],\n              [100.123252, 21.565302],\n              [100.131259, 21.504066],\n              [100.168831, 21.482906],\n              [100.184846, 21.516315],\n              [100.206404, 21.509634],\n              [100.235353, 21.466756],\n              [100.298795, 21.477894],\n              [100.349302, 21.528564],\n              [100.437381, 21.533017],\n              [100.48296, 21.458958],\n              [100.526692, 21.471211],\n              [100.579047, 21.451717],\n              [100.691764, 21.510748],\n              [100.730568, 21.518542],\n              [100.753358, 21.555283],\n              [100.789082, 21.570867],\n              [100.804481, 21.609821],\n              [100.847597, 21.634856],\n              [100.870386, 21.67268],\n              [100.896872, 21.68269],\n              [100.899335, 21.684915],\n              [100.936292, 21.694368],\n              [100.937524, 21.693812],\n              [101.015132, 21.707157],\n              [101.089661, 21.773865],\n              [101.123537, 21.771642],\n              [101.111835, 21.746074],\n              [101.116762, 21.691032],\n              [101.153102, 21.669343],\n              [101.169117, 21.590345],\n              [101.146943, 21.560293],\n              [101.209153, 21.55751],\n              [101.210385, 21.509077],\n              [101.225167, 21.499055],\n              [101.193138, 21.473996],\n              [101.194986, 21.424979],\n              [101.142631, 21.409379],\n              [101.183899, 21.334699],\n              [101.244877, 21.302364],\n              [101.246725, 21.275598],\n              [101.222088, 21.234324],\n              [101.290457, 21.17853],\n              [101.387775, 21.225956],\n              [101.439514, 21.227072],\n              [101.532521, 21.252174],\n              [101.601506, 21.233208],\n              [101.588572, 21.191365],\n              [101.605818, 21.172392],\n              [101.672339, 21.194713],\n              [101.703136, 21.14616],\n              [101.76473, 21.147835],\n              [101.794911, 21.208104],\n              [101.834331, 21.204756],\n              [101.833715, 21.252731],\n              [101.791832, 21.285636],\n              [101.745636, 21.297345],\n              [101.730238, 21.336929],\n              [101.749948, 21.409379],\n              [101.741324, 21.482906],\n              [101.772737, 21.512975],\n              [101.755491, 21.538027],\n              [101.754875, 21.58478],\n              [101.804766, 21.577546],\n              [101.828788, 21.617054],\n              [101.807846, 21.644313],\n              [101.780129, 21.640975],\n              [101.76781, 21.716054],\n              [101.747484, 21.729953],\n              [101.771506, 21.833319],\n              [101.740093, 21.845541],\n              [101.735165, 21.875534],\n              [101.700057, 21.897191],\n              [101.701288, 21.938832],\n              [101.666796, 21.934391],\n              [101.606434, 21.967695],\n              [101.626144, 22.005986],\n              [101.573789, 22.115251],\n              [101.602738, 22.131883],\n              [101.596579, 22.161262],\n              [101.547304, 22.238282],\n              [101.56455, 22.269299],\n              [101.625528, 22.28259],\n              [101.671723, 22.372826],\n              [101.648318, 22.400494],\n              [101.672339, 22.47517],\n              [101.715455, 22.477935],\n              [101.774585, 22.506135],\n              [101.824476, 22.45692],\n              [101.823244, 22.42705],\n              [101.862665, 22.389427],\n              [101.901469, 22.384447],\n              [101.907628, 22.437007],\n              [101.978461, 22.427603],\n              [102.046214, 22.458026],\n              [102.131214, 22.430922],\n              [102.145381, 22.397727],\n              [102.179257, 22.430369],\n              [102.270416, 22.419858],\n              [102.25625, 22.457473],\n              [102.322771, 22.554227],\n              [102.356648, 22.563623],\n              [102.404691, 22.629925],\n              [102.384365, 22.679631],\n              [102.43672, 22.699508],\n              [102.45951, 22.762986],\n              [102.510633, 22.774574],\n              [102.551285, 22.743669],\n              [102.569763, 22.701164],\n              [102.607335, 22.730975],\n              [102.657226, 22.687913],\n              [102.688639, 22.70006],\n              [102.80074, 22.620534],\n              [102.82353, 22.623296],\n              [102.880196, 22.586832],\n              [102.892515, 22.533223],\n              [102.930703, 22.482359],\n              [102.986754, 22.477935],\n              [103.030485, 22.441432],\n              [103.081608, 22.454154],\n              [103.071753, 22.488441],\n              [103.183238, 22.558649],\n              [103.161065, 22.590147],\n              [103.195557, 22.648153],\n              [103.220195, 22.643734],\n              [103.283021, 22.678526],\n              [103.288564, 22.732078],\n              [103.321209, 22.777885],\n              [103.323057, 22.807678],\n              [103.375411, 22.794989],\n              [103.441317, 22.753052],\n              [103.436389, 22.6973],\n              [103.457947, 22.658646],\n              [103.50907, 22.601198],\n              [103.529396, 22.59291],\n              [103.580519, 22.66693],\n              [103.567585, 22.701164],\n              [103.642113, 22.794989],\n              [103.740048, 22.709446],\n              [103.743127, 22.697852],\n              [103.766533, 22.688465],\n              [103.825047, 22.615562],\n              [103.863851, 22.584069],\n              [103.875554, 22.565833],\n              [103.894032, 22.564728],\n              [103.964865, 22.502265],\n              [104.009213, 22.517745],\n              [104.009213, 22.575228],\n              [104.022148, 22.593463],\n              [104.04309, 22.67687],\n              [104.045553, 22.728215],\n              [104.089901, 22.768504],\n              [104.117618, 22.808781],\n              [104.224176, 22.826434],\n              [104.261748, 22.841877],\n              [104.274067, 22.828088],\n              [104.256821, 22.77347],\n              [104.272835, 22.73815],\n              [104.323342, 22.728767],\n              [104.375697, 22.690122],\n              [104.422508, 22.734838],\n              [104.498885, 22.774574],\n              [104.527834, 22.814298],\n              [104.596203, 22.846289],\n              [104.674428, 22.817056],\n              [104.737869, 22.825882],\n              [104.732942, 22.852356],\n              [104.760659, 22.862282],\n              [104.772362, 22.893711],\n              [104.846275, 22.926235],\n              [104.860441, 22.970874],\n              [104.821021, 23.032022],\n              [104.804391, 23.110207],\n              [104.874608, 23.123417],\n              [104.882615, 23.163589],\n              [104.912796, 23.175693],\n              [104.949136, 23.152033],\n              [104.958991, 23.188896],\n              [105.093266, 23.260942],\n              [105.122215, 23.247745],\n              [105.181962, 23.279084],\n              [105.238012, 23.26424],\n              [105.260186, 23.31811],\n              [105.325475, 23.390086],\n              [105.353809, 23.362069],\n              [105.372903, 23.317561],\n              [105.416018, 23.283482],\n              [105.445584, 23.292827],\n              [105.50225, 23.202648],\n              [105.542902, 23.184495],\n              [105.526272, 23.234548],\n              [105.560148, 23.257093],\n              [105.593409, 23.312614],\n              [105.649459, 23.346136],\n              [105.699966, 23.327453],\n              [105.694423, 23.363168],\n              [105.637757, 23.404366],\n              [105.699966, 23.40162],\n              [105.758481, 23.459826],\n              [105.805908, 23.467512],\n              [105.815763, 23.507031],\n              [105.852103, 23.526786],\n              [105.89214, 23.52514],\n              [105.913081, 23.499348],\n              [105.935871, 23.508678],\n              [105.986378, 23.489469],\n              [105.999929, 23.447748],\n              [106.039965, 23.484529],\n              [106.071994, 23.495506],\n              [106.08616, 23.524043],\n              [106.141595, 23.569579],\n              [106.120653, 23.605229],\n              [106.149602, 23.665538],\n              [106.157609, 23.724175],\n              [106.136667, 23.795381],\n              [106.192102, 23.824947],\n              [106.173008, 23.861622],\n              [106.192718, 23.879135],\n              [106.157609, 23.891174],\n              [106.128044, 23.956819],\n              [106.091088, 23.998924],\n              [106.096631, 24.018058],\n              [106.053516, 24.051399],\n              [106.04982, 24.089649],\n              [106.011632, 24.099482],\n              [105.998081, 24.120786],\n              [105.963589, 24.110954],\n              [105.919241, 24.122425],\n              [105.901995, 24.099482],\n              [105.908154, 24.069432],\n              [105.89214, 24.040468],\n              [105.859495, 24.056864],\n              [105.841633, 24.03063],\n              [105.796669, 24.023524],\n              [105.802212, 24.051945],\n              [105.765256, 24.073804],\n              [105.739387, 24.059596],\n              [105.704278, 24.0667],\n              [105.649459, 24.032816],\n              [105.628518, 24.126794],\n              [105.594641, 24.137718],\n              [105.533663, 24.130071],\n              [105.493011, 24.016965],\n              [105.406163, 24.043748],\n              [105.395692, 24.065607],\n              [105.334099, 24.094566],\n              [105.320548, 24.116416],\n              [105.273121, 24.092927],\n              [105.292831, 24.074896],\n              [105.260186, 24.061236],\n              [105.20044, 24.105491],\n              [105.182577, 24.167205],\n              [105.229389, 24.165567],\n              [105.24294, 24.208695],\n              [105.215222, 24.214699],\n              [105.164715, 24.288362],\n              [105.196744, 24.326541],\n              [105.188121, 24.347261],\n              [105.138846, 24.376701],\n              [105.111744, 24.37234],\n              [105.106817, 24.414853],\n              [105.042759, 24.442097],\n              [104.979933, 24.412673],\n              [104.930042, 24.411038],\n              [104.914028, 24.426296],\n              [104.83642, 24.446456],\n              [104.784681, 24.443732],\n              [104.765587, 24.45953],\n              [104.74834, 24.435559],\n              [104.715695, 24.441552],\n              [104.703377, 24.419757],\n              [104.721239, 24.340173],\n              [104.70892, 24.321087],\n              [104.641783, 24.367979],\n              [104.610986, 24.377246],\n              [104.63008, 24.397958],\n              [104.616529, 24.421937],\n              [104.575877, 24.424661],\n              [104.550008, 24.518894],\n              [104.520443, 24.535228],\n              [104.489646, 24.653313],\n              [104.529682, 24.731611],\n              [104.542616, 24.75607],\n              [104.539537, 24.813663],\n              [104.586964, 24.872859],\n              [104.635623, 24.903803],\n              [104.663957, 24.964584],\n              [104.713232, 24.996048],\n              [104.684898, 25.054072],\n              [104.619609, 25.060577],\n              [104.685514, 25.078466],\n              [104.695369, 25.122364],\n              [104.732326, 25.167871],\n              [104.724319, 25.195491],\n              [104.753884, 25.214443],\n              [104.801927, 25.163537],\n              [104.822869, 25.170037],\n              [104.806854, 25.224189],\n              [104.826565, 25.235558],\n              [104.816094, 25.262622],\n              [104.736021, 25.268034],\n              [104.689826, 25.296173],\n              [104.639935, 25.295632],\n              [104.646094, 25.356759],\n              [104.615913, 25.364871],\n              [104.566638, 25.402719],\n              [104.543232, 25.400556],\n              [104.556783, 25.524832],\n              [104.524138, 25.526992],\n              [104.483486, 25.494585],\n              [104.44961, 25.495126],\n              [104.434827, 25.472436],\n              [104.418813, 25.499447],\n              [104.436059, 25.520512],\n              [104.428668, 25.576126],\n              [104.389248, 25.595558],\n              [104.332581, 25.598796],\n              [104.310407, 25.647901],\n              [104.328886, 25.760602],\n              [104.370769, 25.730415],\n              [104.397871, 25.76168],\n              [104.42374, 25.841961],\n              [104.441602, 25.868889],\n              [104.414501, 25.909807],\n              [104.438523, 25.92757],\n              [104.470552, 26.009352],\n              [104.460081, 26.085702],\n              [104.499501, 26.070651],\n              [104.52845, 26.114186],\n              [104.518595, 26.165762],\n              [104.548776, 26.226979],\n              [104.542616, 26.253282],\n              [104.592508, 26.317672],\n              [104.659645, 26.335373],\n              [104.684283, 26.3772],\n              [104.664572, 26.397572],\n              [104.665804, 26.434019],\n              [104.631928, 26.451702],\n              [104.638703, 26.477954],\n              [104.598667, 26.520801],\n              [104.57095, 26.524549],\n              [104.579573, 26.568449],\n              [104.556783, 26.590393],\n              [104.488414, 26.579689],\n              [104.459465, 26.602701],\n              [104.468088, 26.644431],\n              [104.424356, 26.709137],\n              [104.398487, 26.686147],\n              [104.353523, 26.620893],\n              [104.313487, 26.612867],\n              [104.274683, 26.633733],\n              [104.268524, 26.617683],\n              [104.222328, 26.620358],\n              [104.160734, 26.646571],\n              [104.121314, 26.638012],\n              [104.068343, 26.573266],\n              [104.067727, 26.51491],\n              [104.008597, 26.511697],\n              [103.953163, 26.521336],\n              [103.865699, 26.512232],\n              [103.819504, 26.529903],\n              [103.815808, 26.55239],\n              [103.763453, 26.585041],\n              [103.748671, 26.623568],\n              [103.759142, 26.689355],\n              [103.773308, 26.716621],\n              [103.725265, 26.742812],\n              [103.705555, 26.794642],\n              [103.722185, 26.851253],\n              [103.779468, 26.87421],\n              [103.763453, 26.905702],\n              [103.775156, 26.951056],\n              [103.753598, 26.963858],\n              [103.73204, 27.018785],\n              [103.704939, 27.049171],\n              [103.675374, 27.051836],\n              [103.623019, 27.007056],\n              [103.623635, 27.035312],\n              [103.601461, 27.061962],\n              [103.614396, 27.079548],\n              [103.659975, 27.065692],\n              [103.652584, 27.092868],\n              [103.620555, 27.096598],\n              [103.63349, 27.12057],\n              [103.696316, 27.126429],\n              [103.748671, 27.210021],\n              [103.801641, 27.250464],\n              [103.80041, 27.26536],\n              [103.865699, 27.28185],\n              [103.874322, 27.331304],\n              [103.903271, 27.347785],\n              [103.905119, 27.38552],\n              [103.932221, 27.443958],\n              [103.956242, 27.425367],\n              [104.015372, 27.429086],\n              [104.01722, 27.383926],\n              [104.084358, 27.330773],\n              [104.113923, 27.338216],\n              [104.173053, 27.263232],\n              [104.210625, 27.297273],\n              [104.248813, 27.291955],\n              [104.247582, 27.336621],\n              [104.295625, 27.37436],\n              [104.30856, 27.407305],\n              [104.363378, 27.467855],\n              [104.467472, 27.414211],\n              [104.497037, 27.414743],\n              [104.539537, 27.327583],\n              [104.570334, 27.331836],\n              [104.611602, 27.306846],\n              [104.7545, 27.345658],\n              [104.77113, 27.317481],\n              [104.824717, 27.3531],\n              [104.856746, 27.332368],\n              [104.851818, 27.299401],\n              [104.871528, 27.290891],\n              [104.913412, 27.327051],\n              [105.01073, 27.379143],\n              [105.068013, 27.418461],\n              [105.120984, 27.418461],\n              [105.184425, 27.392959],\n              [105.182577, 27.367451],\n              [105.233084, 27.436522],\n              [105.234316, 27.489093],\n              [105.260186, 27.514573],\n              [105.232469, 27.546945],\n              [105.25649, 27.582491],\n              [105.304533, 27.611661],\n              [105.29591, 27.631811],\n              [105.308229, 27.704955]\n            ]\n          ]\n        ]\n      }\n    },\n    {\n      \"type\": \"Feature\",\n      \"properties\": {\n        \"adcode\": 540000,\n        \"name\": \"西藏自治区\",\n        \"center\": [91.132212, 29.660361],\n        \"centroid\": [88.388277, 31.56375],\n        \"childrenNum\": 7,\n        \"level\": \"province\",\n        \"parent\": { \"adcode\": 100000 },\n        \"subFeatureIndex\": 25,\n        \"acroutes\": [100000]\n      },\n      \"geometry\": {\n        \"type\": \"MultiPolygon\",\n        \"coordinates\": [\n          [\n            [\n              [89.711414, 36.093272],\n              [89.614711, 36.109712],\n              [89.594385, 36.126632],\n              [89.490291, 36.151281],\n              [89.375727, 36.228078],\n              [89.335075, 36.23725],\n              [89.292575, 36.231457],\n              [89.232213, 36.295636],\n              [89.198952, 36.260417],\n              [89.126887, 36.254626],\n              [89.10225, 36.281164],\n              [89.054822, 36.291777],\n              [89.013554, 36.315409],\n              [88.964279, 36.318785],\n              [88.926091, 36.36458],\n              [88.870657, 36.348193],\n              [88.838628, 36.353496],\n              [88.802903, 36.33807],\n              [88.783809, 36.291777],\n              [88.766563, 36.292259],\n              [88.690186, 36.367954],\n              [88.623665, 36.389636],\n              [88.618121, 36.428168],\n              [88.573158, 36.461386],\n              [88.498629, 36.446463],\n              [88.470912, 36.48208],\n              [88.41055, 36.473418],\n              [88.356963, 36.477268],\n              [88.366202, 36.458016],\n              [88.282434, 36.470049],\n              [88.241782, 36.468605],\n              [88.222688, 36.447426],\n              [88.182652, 36.452721],\n              [88.134609, 36.427205],\n              [88.092109, 36.43539],\n              [88.006494, 36.430575],\n              [87.983088, 36.437797],\n              [87.95845, 36.408423],\n              [87.919646, 36.39349],\n              [87.838342, 36.383855],\n              [87.826023, 36.391563],\n              [87.767509, 36.3747],\n              [87.731785, 36.384818],\n              [87.6203, 36.360243],\n              [87.570409, 36.342409],\n              [87.470626, 36.354459],\n              [87.460155, 36.409868],\n              [87.426895, 36.42576],\n              [87.386859, 36.412757],\n              [87.363453, 36.420463],\n              [87.348055, 36.393008],\n              [87.292004, 36.358797],\n              [87.193454, 36.349158],\n              [87.161425, 36.325535],\n              [87.149106, 36.297565],\n              [87.08628, 36.310587],\n              [87.051788, 36.2966],\n              [86.996353, 36.308658],\n              [86.943998, 36.284058],\n              [86.931064, 36.265242],\n              [86.887332, 36.262829],\n              [86.86331, 36.299977],\n              [86.836209, 36.291294],\n              [86.746282, 36.291777],\n              [86.69947, 36.24449],\n              [86.599072, 36.222285],\n              [86.531935, 36.227113],\n              [86.515305, 36.205385],\n              [86.454943, 36.221319],\n              [86.392733, 36.206834],\n              [86.35824, 36.168676],\n              [86.2794, 36.170608],\n              [86.248603, 36.141616],\n              [86.187625, 36.130983],\n              [86.182081, 36.064734],\n              [86.199944, 36.047801],\n              [86.173458, 36.008113],\n              [86.150668, 36.00424],\n              [86.129111, 35.941761],\n              [86.093386, 35.906868],\n              [86.090306, 35.876809],\n              [86.05335, 35.842857],\n              [86.035488, 35.846738],\n              [85.949256, 35.778794],\n              [85.903677, 35.78462],\n              [85.835308, 35.771996],\n              [85.811286, 35.778794],\n              [85.691178, 35.751114],\n              [85.65299, 35.731199],\n              [85.612953, 35.651486],\n              [85.566142, 35.6403],\n              [85.518715, 35.680658],\n              [85.373969, 35.700101],\n              [85.341324, 35.753543],\n              [85.271107, 35.788989],\n              [85.146071, 35.742371],\n              [85.053065, 35.752086],\n              [84.99455, 35.737028],\n              [84.973608, 35.709334],\n              [84.920022, 35.696213],\n              [84.798066, 35.647595],\n              [84.729081, 35.613546],\n              [84.704443, 35.616951],\n              [84.628067, 35.595055],\n              [84.570168, 35.588242],\n              [84.513502, 35.564391],\n              [84.448828, 35.550272],\n              [84.475929, 35.516181],\n              [84.45314, 35.473303],\n              [84.424191, 35.466479],\n              [84.333032, 35.413821],\n              [84.274517, 35.404065],\n              [84.200605, 35.381135],\n              [84.160569, 35.359663],\n              [84.140859, 35.379184],\n              [84.095895, 35.362592],\n              [84.077417, 35.400163],\n              [84.005968, 35.422599],\n              [83.906186, 35.40309],\n              [83.885244, 35.367472],\n              [83.79778, 35.354783],\n              [83.785462, 35.36308],\n              [83.677672, 35.361128],\n              [83.622238, 35.335256],\n              [83.599448, 35.351366],\n              [83.54155, 35.341603],\n              [83.540318, 35.364056],\n              [83.502745, 35.360639],\n              [83.449159, 35.382111],\n              [83.405427, 35.380648],\n              [83.333978, 35.397236],\n              [83.280391, 35.401138],\n              [83.251442, 35.417722],\n              [83.178145, 35.38943],\n              [83.127022, 35.398699],\n              [83.088834, 35.425526],\n              [83.067892, 35.46258],\n              [82.998907, 35.484512],\n              [82.971806, 35.548324],\n              [82.981661, 35.599922],\n              [82.956407, 35.636409],\n              [82.967494, 35.667532],\n              [82.894813, 35.673852],\n              [82.873871, 35.688922],\n              [82.795031, 35.688436],\n              [82.780249, 35.666073],\n              [82.731589, 35.637868],\n              [82.652133, 35.67288],\n              [82.628727, 35.692324],\n              [82.546192, 35.708362],\n              [82.501844, 35.701073],\n              [82.468583, 35.717595],\n              [82.424852, 35.712736],\n              [82.392823, 35.656349],\n              [82.336156, 35.651486],\n              [82.350323, 35.611113],\n              [82.328149, 35.559523],\n              [82.2992, 35.544916],\n              [82.263475, 35.547837],\n              [82.234526, 35.520565],\n              [82.189563, 35.513258],\n              [82.164925, 35.495719],\n              [82.086701, 35.467454],\n              [82.071302, 35.450393],\n              [82.034346, 35.451855],\n              [82.029419, 35.426013],\n              [82.05344, 35.35039],\n              [82.030034, 35.321585],\n              [81.99123, 35.30547],\n              [81.955506, 35.307423],\n              [81.927789, 35.271275],\n              [81.853876, 35.25857],\n              [81.804601, 35.270786],\n              [81.736847, 35.26248],\n              [81.68634, 35.235599],\n              [81.513261, 35.23511],\n              [81.504638, 35.279092],\n              [81.447972, 35.318167],\n              [81.441196, 35.333303],\n              [81.385762, 35.335256],\n              [81.363588, 35.354783],\n              [81.314313, 35.337209],\n              [81.285364, 35.345508],\n              [81.26627, 35.322562],\n              [81.219458, 35.319144],\n              [81.191741, 35.36552],\n              [81.142466, 35.365032],\n              [81.103662, 35.386015],\n              [81.09935, 35.40748],\n              [81.054387, 35.402602],\n              [81.031597, 35.380648],\n              [81.030981, 35.337209],\n              [81.002648, 35.334768],\n              [81.026053, 35.31133],\n              [80.963844, 35.310842],\n              [80.924423, 35.330862],\n              [80.894242, 35.324027],\n              [80.844351, 35.345508],\n              [80.759968, 35.334768],\n              [80.689135, 35.339162],\n              [80.690982, 35.364544],\n              [80.65649, 35.393821],\n              [80.599823, 35.409431],\n              [80.56841, 35.391381],\n              [80.532686, 35.404553],\n              [80.514824, 35.391869],\n              [80.444607, 35.417235],\n              [80.432904, 35.449418],\n              [80.375006, 35.387966],\n              [80.321419, 35.38699],\n              [80.286926, 35.35283],\n              [80.267832, 35.295701],\n              [80.362687, 35.20871],\n              [80.257977, 35.203331],\n              [80.223484, 35.177409],\n              [80.23026, 35.147565],\n              [80.118159, 35.066293],\n              [80.078123, 35.076578],\n              [80.031311, 35.034447],\n              [80.04363, 35.022196],\n              [80.02392, 34.971209],\n              [80.041782, 34.943252],\n              [80.034391, 34.902033],\n              [80.003594, 34.895162],\n              [79.996819, 34.856375],\n              [79.961094, 34.862759],\n              [79.926602, 34.849499],\n              [79.947544, 34.821008],\n              [79.898268, 34.732035],\n              [79.906892, 34.683821],\n              [79.866856, 34.671517],\n              [79.88595, 34.642965],\n              [79.84345, 34.55725],\n              [79.861312, 34.528166],\n              [79.801566, 34.478847],\n              [79.735661, 34.471447],\n              [79.699936, 34.477861],\n              [79.675914, 34.451216],\n              [79.58106, 34.456151],\n              [79.545335, 34.476381],\n              [79.504683, 34.45467],\n              [79.435082, 34.447761],\n              [79.363017, 34.428018],\n              [79.326677, 34.44332],\n              [79.274322, 34.435916],\n              [79.241677, 34.415183],\n              [79.179467, 34.422588],\n              [79.161605, 34.441345],\n              [79.072294, 34.412714],\n              [79.039033, 34.421601],\n              [79.0107, 34.399877],\n              [79.048888, 34.348506],\n              [79.039649, 34.33467],\n              [79.019939, 34.313417],\n              [78.981751, 34.31836],\n              [78.958345, 34.230827],\n              [78.941099, 34.212022],\n              [78.9257, 34.155584],\n              [78.910302, 34.143202],\n              [78.878273, 34.163012],\n              [78.828998, 34.125369],\n              [78.801897, 34.137258],\n              [78.737223, 34.089692],\n              [78.661462, 34.086718],\n              [78.656535, 34.030196],\n              [78.736607, 33.999937],\n              [78.744614, 33.980585],\n              [78.734143, 33.918529],\n              [78.762476, 33.90959],\n              [78.756317, 33.8773],\n              [78.766172, 33.823124],\n              [78.758165, 33.790802],\n              [78.779723, 33.73259],\n              [78.692259, 33.676331],\n              [78.684868, 33.654415],\n              [78.713201, 33.623025],\n              [78.755085, 33.623025],\n              [78.74215, 33.55323],\n              [78.816679, 33.480882],\n              [78.84994, 33.419963],\n              [78.896751, 33.41247],\n              [78.949722, 33.376495],\n              [78.9682, 33.334505],\n              [79.022403, 33.323504],\n              [79.041497, 33.268479],\n              [79.083997, 33.245459],\n              [79.072294, 33.22844],\n              [79.10925, 33.200401],\n              [79.152366, 33.184375],\n              [79.162221, 33.165841],\n              [79.139431, 33.117735],\n              [79.162837, 33.01191],\n              [79.204721, 32.964724],\n              [79.255844, 32.942628],\n              [79.227511, 32.89038],\n              [79.237982, 32.846145],\n              [79.225047, 32.784281],\n              [79.275554, 32.778746],\n              [79.301423, 32.728919],\n              [79.27309, 32.678056],\n              [79.299575, 32.637244],\n              [79.308199, 32.596918],\n              [79.272474, 32.561113],\n              [79.252148, 32.516715],\n              [79.190554, 32.511669],\n              [79.180083, 32.492994],\n              [79.135736, 32.472295],\n              [79.124649, 32.416235],\n              [79.103091, 32.369744],\n              [79.067982, 32.380863],\n              [79.005772, 32.375304],\n              [78.970664, 32.331826],\n              [78.904142, 32.374798],\n              [78.87273, 32.40512],\n              [78.81052, 32.436441],\n              [78.782186, 32.480373],\n              [78.760629, 32.563635],\n              [78.781571, 32.608009],\n              [78.74215, 32.654881],\n              [78.741534, 32.703743],\n              [78.6861, 32.680071],\n              [78.675013, 32.658408],\n              [78.628202, 32.630188],\n              [78.588782, 32.637748],\n              [78.577695, 32.615067],\n              [78.518564, 32.605993],\n              [78.500086, 32.580782],\n              [78.424942, 32.565652],\n              [78.395377, 32.530339],\n              [78.426174, 32.502584],\n              [78.472985, 32.435431],\n              [78.458818, 32.379853],\n              [78.483456, 32.357106],\n              [78.480992, 32.329297],\n              [78.508709, 32.297939],\n              [78.475449, 32.236708],\n              [78.430485, 32.212407],\n              [78.429869, 32.194683],\n              [78.469905, 32.127808],\n              [78.509941, 32.147065],\n              [78.527188, 32.11463],\n              [78.609107, 32.052768],\n              [78.60726, 32.023851],\n              [78.705194, 31.988835],\n              [78.762476, 31.947203],\n              [78.768636, 31.92638],\n              [78.739687, 31.885228],\n              [78.665158, 31.851684],\n              [78.654687, 31.819144],\n              [78.706426, 31.778453],\n              [78.763092, 31.668499],\n              [78.798817, 31.675629],\n              [78.806824, 31.64099],\n              [78.845628, 31.609905],\n              [78.833925, 31.584927],\n              [78.779723, 31.545154],\n              [78.740303, 31.532912],\n              [78.729832, 31.478316],\n              [78.755701, 31.478316],\n              [78.792041, 31.435944],\n              [78.760013, 31.392531],\n              [78.755085, 31.355742],\n              [78.795121, 31.301043],\n              [78.859179, 31.289281],\n              [78.865338, 31.312804],\n              [78.884432, 31.277006],\n              [78.923852, 31.246824],\n              [78.930628, 31.220726],\n              [78.997765, 31.158779],\n              [78.97436, 31.115751],\n              [79.010084, 31.043994],\n              [79.059359, 31.028097],\n              [79.096931, 30.992192],\n              [79.181931, 31.015788],\n              [79.205953, 31.0004],\n              [79.227511, 30.949088],\n              [79.33222, 30.969103],\n              [79.316206, 31.01784],\n              [79.35809, 31.031174],\n              [79.404901, 31.071678],\n              [79.424611, 31.061425],\n              [79.427075, 31.018353],\n              [79.505915, 31.027584],\n              [79.550879, 30.957813],\n              [79.59769, 30.925989],\n              [79.660516, 30.956787],\n              [79.668523, 30.980392],\n              [79.729501, 30.941389],\n              [79.75845, 30.936769],\n              [79.835443, 30.851006],\n              [79.890877, 30.855116],\n              [79.913051, 30.833022],\n              [79.900732, 30.7991],\n              [79.961094, 30.771337],\n              [79.955551, 30.738422],\n              [79.970333, 30.685941],\n              [80.014065, 30.661748],\n              [80.04363, 30.603559],\n              [80.143412, 30.55822],\n              [80.214245, 30.586044],\n              [80.261673, 30.566465],\n              [80.322035, 30.564403],\n              [80.357759, 30.520592],\n              [80.43044, 30.515952],\n              [80.446454, 30.495327],\n              [80.504969, 30.483466],\n              [80.549316, 30.448905],\n              [80.585041, 30.463866],\n              [80.633084, 30.458707],\n              [80.692214, 30.416913],\n              [80.719316, 30.414848],\n              [80.81725, 30.321389],\n              [80.910873, 30.30279],\n              [80.933662, 30.266614],\n              [80.996488, 30.267648],\n              [81.034677, 30.246971],\n              [81.038372, 30.205086],\n              [81.082104, 30.151281],\n              [81.085799, 30.100554],\n              [81.110437, 30.085538],\n              [81.09627, 30.052909],\n              [81.131995, 30.016124],\n              [81.225618, 30.005759],\n              [81.256415, 30.011978],\n              [81.247792, 30.032705],\n              [81.2829, 30.061197],\n              [81.293371, 30.094859],\n              [81.269349, 30.153351],\n              [81.335871, 30.149729],\n              [81.393769, 30.199396],\n              [81.397465, 30.240767],\n              [81.419023, 30.270232],\n              [81.406088, 30.291938],\n              [81.427646, 30.305373],\n              [81.399929, 30.319323],\n              [81.406088, 30.369421],\n              [81.432573, 30.379231],\n              [81.406704, 30.40401],\n              [81.418407, 30.420525],\n              [81.454131, 30.412268],\n              [81.494783, 30.381296],\n              [81.555761, 30.369421],\n              [81.566232, 30.428782],\n              [81.613044, 30.412784],\n              [81.63029, 30.446842],\n              [81.723913, 30.407623],\n              [81.759021, 30.385426],\n              [81.872354, 30.373035],\n              [81.939491, 30.344633],\n              [81.954274, 30.355995],\n              [81.99123, 30.322939],\n              [82.022027, 30.339468],\n              [82.060215, 30.332237],\n              [82.104563, 30.346182],\n              [82.132896, 30.30434],\n              [82.11873, 30.279019],\n              [82.114418, 30.226806],\n              [82.142135, 30.200948],\n              [82.188947, 30.18543],\n              [82.207425, 30.143519],\n              [82.183403, 30.12178],\n              [82.17786, 30.06793],\n              [82.246845, 30.071555],\n              [82.311519, 30.035813],\n              [82.333693, 30.045138],\n              [82.368185, 30.014051],\n              [82.412533, 30.011978],\n              [82.431011, 29.989692],\n              [82.474743, 29.973622],\n              [82.498148, 29.947698],\n              [82.560974, 29.955476],\n              [82.609017, 29.886489],\n              [82.64351, 29.868846],\n              [82.6238, 29.834588],\n              [82.703872, 29.847566],\n              [82.737749, 29.80655],\n              [82.691553, 29.766037],\n              [82.757459, 29.761881],\n              [82.774089, 29.726548],\n              [82.816589, 29.717192],\n              [82.830756, 29.687562],\n              [82.885574, 29.689122],\n              [82.9484, 29.704718],\n              [82.966878, 29.658963],\n              [83.011226, 29.667804],\n              [83.088834, 29.604863],\n              [83.12887, 29.623593],\n              [83.159667, 29.61735],\n              [83.164595, 29.595496],\n              [83.217565, 29.60018],\n              [83.266841, 29.571035],\n              [83.27608, 29.505951],\n              [83.325355, 29.502826],\n              [83.383253, 29.42206],\n              [83.415898, 29.420496],\n              [83.423289, 29.361053],\n              [83.450391, 29.332883],\n              [83.463941, 29.285916],\n              [83.492274, 29.280174],\n              [83.548941, 29.201322],\n              [83.57789, 29.203934],\n              [83.596368, 29.174153],\n              [83.656114, 29.16736],\n              [83.667201, 29.200277],\n              [83.727563, 29.244672],\n              [83.800244, 29.249372],\n              [83.82057, 29.294267],\n              [83.851367, 29.294789],\n              [83.911729, 29.323491],\n              [83.949301, 29.312533],\n              [83.986874, 29.325057],\n              [84.002272, 29.291658],\n              [84.052163, 29.296877],\n              [84.116837, 29.286438],\n              [84.130388, 29.239972],\n              [84.203068, 29.239972],\n              [84.197525, 29.210202],\n              [84.17104, 29.19453],\n              [84.176583, 29.133909],\n              [84.20738, 29.118749],\n              [84.192597, 29.084236],\n              [84.194445, 29.045004],\n              [84.224626, 29.049189],\n              [84.248648, 29.030353],\n              [84.228322, 28.949738],\n              [84.234481, 28.889497],\n              [84.268358, 28.895261],\n              [84.330568, 28.859101],\n              [84.340423, 28.866963],\n              [84.408176, 28.85386],\n              [84.404481, 28.828173],\n              [84.434046, 28.823978],\n              [84.445133, 28.764189],\n              [84.483321, 28.735331],\n              [84.557233, 28.74635],\n              [84.620059, 28.732182],\n              [84.650856, 28.714338],\n              [84.669334, 28.680742],\n              [84.699515, 28.671816],\n              [84.698284, 28.633478],\n              [84.773428, 28.610363],\n              [84.857196, 28.567798],\n              [84.896616, 28.587244],\n              [84.981616, 28.586193],\n              [84.995782, 28.611414],\n              [85.05676, 28.674441],\n              [85.126361, 28.676016],\n              [85.155926, 28.643983],\n              [85.195963, 28.624022],\n              [85.18426, 28.587244],\n              [85.189803, 28.544669],\n              [85.160238, 28.49261],\n              [85.108499, 28.461047],\n              [85.129441, 28.377885],\n              [85.113427, 28.344708],\n              [85.179948, 28.324164],\n              [85.209513, 28.338914],\n              [85.272339, 28.282538],\n              [85.349947, 28.298347],\n              [85.379512, 28.274105],\n              [85.415853, 28.321003],\n              [85.458969, 28.332593],\n              [85.520563, 28.326798],\n              [85.602483, 28.295712],\n              [85.601251, 28.254075],\n              [85.650526, 28.283592],\n              [85.682555, 28.375779],\n              [85.720743, 28.372093],\n              [85.753388, 28.227714],\n              [85.791576, 28.195544],\n              [85.854402, 28.172334],\n              [85.871648, 28.124843],\n              [85.898749, 28.101617],\n              [85.901213, 28.053566],\n              [85.980053, 27.984357],\n              [85.949256, 27.937311],\n              [86.002227, 27.90717],\n              [86.053966, 27.900823],\n              [86.125415, 27.923035],\n              [86.082915, 28.018175],\n              [86.086611, 28.090002],\n              [86.128495, 28.086835],\n              [86.140198, 28.114814],\n              [86.19132, 28.167058],\n              [86.223965, 28.092642],\n              [86.206103, 28.084195],\n              [86.231972, 27.974315],\n              [86.27324, 27.976958],\n              [86.308965, 27.950528],\n              [86.393349, 27.926736],\n              [86.414906, 27.904526],\n              [86.450015, 27.908757],\n              [86.475884, 27.944713],\n              [86.514689, 27.954757],\n              [86.513457, 27.996511],\n              [86.537478, 28.044587],\n              [86.55842, 28.047757],\n              [86.568891, 28.103201],\n              [86.60092, 28.097922],\n              [86.611391, 28.069938],\n              [86.647732, 28.06941],\n              [86.662514, 28.092114],\n              [86.700086, 28.101617],\n              [86.74813, 28.089474],\n              [86.768456, 28.06941],\n              [86.756753, 28.032967],\n              [86.827586, 28.012363],\n              [86.864542, 28.022401],\n              [86.885484, 27.995983],\n              [86.926752, 27.985942],\n              [86.935375, 27.955286],\n              [87.035157, 27.946299],\n              [87.080737, 27.910872],\n              [87.118309, 27.840512],\n              [87.173744, 27.818284],\n              [87.227946, 27.812991],\n              [87.249504, 27.839454],\n              [87.280917, 27.845275],\n              [87.317258, 27.826753],\n              [87.364069, 27.824106],\n              [87.421967, 27.856916],\n              [87.418272, 27.825694],\n              [87.45954, 27.820931],\n              [87.58088, 27.859562],\n              [87.598126, 27.814579],\n              [87.670191, 27.832045],\n              [87.668343, 27.809815],\n              [87.727473, 27.802933],\n              [87.77798, 27.860091],\n              [87.782292, 27.890774],\n              [87.826639, 27.927794],\n              [87.930733, 27.909285],\n              [87.982472, 27.884426],\n              [88.037291, 27.901881],\n              [88.090877, 27.885484],\n              [88.111819, 27.864852],\n              [88.137689, 27.878607],\n              [88.120442, 27.915103],\n              [88.156783, 27.957929],\n              [88.203594, 27.943127],\n              [88.242398, 27.967444],\n              [88.254101, 27.939426],\n              [88.357579, 27.986471],\n              [88.401311, 27.976958],\n              [88.43334, 28.002852],\n              [88.469064, 28.009721],\n              [88.498013, 28.04089],\n              [88.554064, 28.027684],\n              [88.565151, 28.083139],\n              [88.620585, 28.091586],\n              [88.645223, 28.111119],\n              [88.67602, 28.068353],\n              [88.764099, 28.068353],\n              [88.812142, 28.018175],\n              [88.842939, 28.006023],\n              [88.846635, 27.921448],\n              [88.864497, 27.921448],\n              [88.888519, 27.846863],\n              [88.863265, 27.811932],\n              [88.870657, 27.743098],\n              [88.850331, 27.710783],\n              [88.852178, 27.671039],\n              [88.816454, 27.641354],\n              [88.813374, 27.606889],\n              [88.770874, 27.563924],\n              [88.797976, 27.521473],\n              [88.783193, 27.467324],\n              [88.809063, 27.405711],\n              [88.838012, 27.37808],\n              [88.867577, 27.3818],\n              [88.901453, 27.327583],\n              [88.920548, 27.325456],\n              [88.911924, 27.272807],\n              [88.942105, 27.261636],\n              [88.984605, 27.208957],\n              [89.067757, 27.240354],\n              [89.077612, 27.287168],\n              [89.152757, 27.319076],\n              [89.182938, 27.373829],\n              [89.132431, 27.441302],\n              [89.095474, 27.471572],\n              [89.109025, 27.537925],\n              [89.163228, 27.574534],\n              [89.128735, 27.611131],\n              [89.131815, 27.633402],\n              [89.184786, 27.673689],\n              [89.238988, 27.796581],\n              [89.295655, 27.84845],\n              [89.375727, 27.875962],\n              [89.44348, 27.968501],\n              [89.461958, 28.03191],\n              [89.511233, 28.086307],\n              [89.541414, 28.088418],\n              [89.605472, 28.161782],\n              [89.720037, 28.170224],\n              [89.779167, 28.197127],\n              [89.789638, 28.240895],\n              [89.869094, 28.221386],\n              [89.901739, 28.18183],\n              [89.976268, 28.189215],\n              [90.017536, 28.162837],\n              [90.03355, 28.136981],\n              [90.07297, 28.155451],\n              [90.103151, 28.141731],\n              [90.124709, 28.190797],\n              [90.166593, 28.187632],\n              [90.189999, 28.161782],\n              [90.231882, 28.144897],\n              [90.297172, 28.153868],\n              [90.367389, 28.088946],\n              [90.384019, 28.06096],\n              [90.43699, 28.063073],\n              [90.47949, 28.044587],\n              [90.513983, 28.062016],\n              [90.569417, 28.044059],\n              [90.591591, 28.021345],\n              [90.701844, 28.076274],\n              [90.741264, 28.053038],\n              [90.802242, 28.040362],\n              [90.806554, 28.015005],\n              [90.853365, 27.969029],\n              [90.896481, 27.946299],\n              [90.96177, 27.9537],\n              [90.976553, 27.935725],\n              [90.96485, 27.900294],\n              [91.025828, 27.857445],\n              [91.113292, 27.846333],\n              [91.155175, 27.894476],\n              [91.147784, 27.927794],\n              [91.162567, 27.968501],\n              [91.216153, 27.989113],\n              [91.251878, 27.970615],\n              [91.309776, 28.057791],\n              [91.464993, 28.002852],\n              [91.490246, 27.971672],\n              [91.486551, 27.937311],\n              [91.552456, 27.90717],\n              [91.611586, 27.891303],\n              [91.618978, 27.856916],\n              [91.561079, 27.855329],\n              [91.544449, 27.820401],\n              [91.610355, 27.819343],\n              [91.642383, 27.7664],\n              [91.622673, 27.692238],\n              [91.570934, 27.650897],\n              [91.562311, 27.627569],\n              [91.582637, 27.598933],\n              [91.564775, 27.58196],\n              [91.585101, 27.540578],\n              [91.626985, 27.509265],\n              [91.663325, 27.507142],\n              [91.71876, 27.467324],\n              [91.753868, 27.462545],\n              [91.839484, 27.489624],\n              [91.946657, 27.464138],\n              [92.010715, 27.474758],\n              [92.021802, 27.444489],\n              [92.064918, 27.391365],\n              [92.125896, 27.273339],\n              [92.091403, 27.264296],\n              [92.071077, 27.237694],\n              [92.061222, 27.190327],\n              [92.032273, 27.167967],\n              [92.02673, 27.108318],\n              [92.043976, 27.052902],\n              [92.076005, 27.041175],\n              [92.124664, 26.960124],\n              [92.109265, 26.854991],\n              [92.197961, 26.86994],\n              [92.28604, 26.892359],\n              [92.404916, 26.9025],\n              [92.496691, 26.921711],\n              [92.549046, 26.941453],\n              [92.64698, 26.952656],\n              [92.682089, 26.947855],\n              [92.802813, 26.895028],\n              [92.909371, 26.914241],\n              [93.050421, 26.883819],\n              [93.111399, 26.880082],\n              [93.232739, 26.906769],\n              [93.56781, 26.938252],\n              [93.625092, 26.955323],\n              [93.747048, 27.015587],\n              [93.817265, 27.025183],\n              [93.841903, 27.045973],\n              [93.849294, 27.168499],\n              [93.970634, 27.30525],\n              [94.056866, 27.375423],\n              [94.147409, 27.458297],\n              [94.220705, 27.536333],\n              [94.277372, 27.58143],\n              [94.353132, 27.578778],\n              [94.399944, 27.589386],\n              [94.443675, 27.585143],\n              [94.478168, 27.602116],\n              [94.524979, 27.596282],\n              [94.660486, 27.650367],\n              [94.722696, 27.683759],\n              [94.78121, 27.699127],\n              [94.836645, 27.728796],\n              [94.88592, 27.743098],\n              [94.947514, 27.792345],\n              [95.015267, 27.82887],\n              [95.067006, 27.840512],\n              [95.28628, 27.939955],\n              [95.32878, 28.017646],\n              [95.352802, 28.04089],\n              [95.371896, 28.110063],\n              [95.39715, 28.142259],\n              [95.437802, 28.161782],\n              [95.528345, 28.182885],\n              [95.674322, 28.254075],\n              [95.740228, 28.275159],\n              [95.787655, 28.270416],\n              [95.832003, 28.295186],\n              [95.874502, 28.29782],\n              [95.899756, 28.278322],\n              [95.907763, 28.241422],\n              [95.936096, 28.240368],\n              [95.989067, 28.198181],\n              [96.074683, 28.193434],\n              [96.098088, 28.212421],\n              [96.194175, 28.212949],\n              [96.275479, 28.228241],\n              [96.298269, 28.140148],\n              [96.367254, 28.118509],\n              [96.398667, 28.118509],\n              [96.395587, 28.143842],\n              [96.426384, 28.161782],\n              [96.46334, 28.143314],\n              [96.499681, 28.067297],\n              [96.538485, 28.075218],\n              [96.623485, 28.024514],\n              [96.635188, 27.994926],\n              [96.690622, 27.948942],\n              [96.711564, 27.9574],\n              [96.784245, 27.931495],\n              [96.810114, 27.890245],\n              [96.849534, 27.874375],\n              [96.908049, 27.884426],\n              [96.972722, 27.861149],\n              [97.008447, 27.807698],\n              [97.049099, 27.81405],\n              [97.062649, 27.742568],\n              [97.097758, 27.740979],\n              [97.103301, 27.780697],\n              [97.167975, 27.811932],\n              [97.253591, 27.891832],\n              [97.303482, 27.913516],\n              [97.324424, 27.880723],\n              [97.386634, 27.882839],\n              [97.372467, 27.907699],\n              [97.379242, 27.970087],\n              [97.413119, 28.01342],\n              [97.378626, 28.031382],\n              [97.375547, 28.062545],\n              [97.320728, 28.054095],\n              [97.305945, 28.071522],\n              [97.340438, 28.104785],\n              [97.326887, 28.132759],\n              [97.352757, 28.149646],\n              [97.362612, 28.199236],\n              [97.349677, 28.235623],\n              [97.398336, 28.238786],\n              [97.402032, 28.279903],\n              [97.422358, 28.297293],\n              [97.461162, 28.26778],\n              [97.469169, 28.30309],\n              [97.518445, 28.327852],\n              [97.488879, 28.347341],\n              [97.485184, 28.38631],\n              [97.499966, 28.428948],\n              [97.521524, 28.444736],\n              [97.507974, 28.46473],\n              [97.521524, 28.495766],\n              [97.569567, 28.541515],\n              [97.60406, 28.515225],\n              [97.634857, 28.532051],\n              [97.68598, 28.519958],\n              [97.737103, 28.465782],\n              [97.738335, 28.396313],\n              [97.769748, 28.3742],\n              [97.801161, 28.326798],\n              [97.842429, 28.326798],\n              [97.871378, 28.361561],\n              [97.907718, 28.363141],\n              [98.020435, 28.253548],\n              [98.008116, 28.214003],\n              [98.03337, 28.187105],\n              [98.056775, 28.202401],\n              [98.090036, 28.195544],\n              [98.097427, 28.166531],\n              [98.139311, 28.142259],\n              [98.17442, 28.163365],\n              [98.169492, 28.206093],\n              [98.21692, 28.212949],\n              [98.266811, 28.242477],\n              [98.231702, 28.314681],\n              [98.207681, 28.330486],\n              [98.208913, 28.358401],\n              [98.301303, 28.384204],\n              [98.317934, 28.324691],\n              [98.353042, 28.293078],\n              [98.37768, 28.246167],\n              [98.370289, 28.18394],\n              [98.389999, 28.16442],\n              [98.389383, 28.114814],\n              [98.428803, 28.104785],\n              [98.464527, 28.151229],\n              [98.494092, 28.141203],\n              [98.559382, 28.182885],\n              [98.625903, 28.165475],\n              [98.649925, 28.200291],\n              [98.712135, 28.229296],\n              [98.710287, 28.288862],\n              [98.746628, 28.321003],\n              [98.740468, 28.348395],\n              [98.693041, 28.43158],\n              [98.673947, 28.478934],\n              [98.625903, 28.489455],\n              [98.619128, 28.50944],\n              [98.637606, 28.552029],\n              [98.594491, 28.667615],\n              [98.666555, 28.712239],\n              [98.683802, 28.740054],\n              [98.652389, 28.817162],\n              [98.668403, 28.843376],\n              [98.643766, 28.895261],\n              [98.6567, 28.910454],\n              [98.624056, 28.95864],\n              [98.655469, 28.976966],\n              [98.70228, 28.9644],\n              [98.757714, 29.004186],\n              [98.786048, 28.998952],\n              [98.821772, 28.920931],\n              [98.827932, 28.821356],\n              [98.852569, 28.798283],\n              [98.912931, 28.800906],\n              [98.922786, 28.823978],\n              [98.972677, 28.832367],\n              [98.973909, 28.864867],\n              [98.917859, 28.886877],\n              [98.925866, 28.978536],\n              [99.013329, 29.036632],\n              [98.991771, 29.105677],\n              [98.967134, 29.128159],\n              [98.960974, 29.165792],\n              [98.9813, 29.204978],\n              [99.024416, 29.188783],\n              [99.037351, 29.20759],\n              [99.113727, 29.221171],\n              [99.114343, 29.243628],\n              [99.075539, 29.316186],\n              [99.058909, 29.417368],\n              [99.066916, 29.421018],\n              [99.044742, 29.520013],\n              [99.052133, 29.563748],\n              [99.014561, 29.607464],\n              [98.992387, 29.677163],\n              [99.018873, 29.792009],\n              [99.0238, 29.846009],\n              [99.068148, 29.931621],\n              [99.055213, 29.958587],\n              [99.036735, 30.053945],\n              [99.044742, 30.079842],\n              [98.989308, 30.151799],\n              [98.9813, 30.182843],\n              [98.993003, 30.215429],\n              [98.970829, 30.260928],\n              [98.986844, 30.280569],\n              [98.967134, 30.33482],\n              [98.965286, 30.449937],\n              [98.932025, 30.521623],\n              [98.926482, 30.569556],\n              [98.939417, 30.598923],\n              [98.92217, 30.609225],\n              [98.907388, 30.698292],\n              [98.963438, 30.728134],\n              [98.957895, 30.765166],\n              [98.904924, 30.782649],\n              [98.850105, 30.849465],\n              [98.797135, 30.87926],\n              [98.774345, 30.908019],\n              [98.797135, 30.948575],\n              [98.806374, 30.995783],\n              [98.774961, 31.031174],\n              [98.736772, 31.049121],\n              [98.712135, 31.082954],\n              [98.710287, 31.1178],\n              [98.675179, 31.15417],\n              [98.602498, 31.192062],\n              [98.62344, 31.221238],\n              [98.60373, 31.257568],\n              [98.616048, 31.3036],\n              [98.643766, 31.338876],\n              [98.691809, 31.333253],\n              [98.773113, 31.249382],\n              [98.805758, 31.279052],\n              [98.810685, 31.306668],\n              [98.887062, 31.37465],\n              [98.84333, 31.416028],\n              [98.844562, 31.429817],\n              [98.714599, 31.508935],\n              [98.696736, 31.538523],\n              [98.651157, 31.57881],\n              [98.619128, 31.591555],\n              [98.553839, 31.660349],\n              [98.545831, 31.717383],\n              [98.516882, 31.717383],\n              [98.508875, 31.751995],\n              [98.461448, 31.800327],\n              [98.414636, 31.832365],\n              [98.426339, 31.856767],\n              [98.399238, 31.895899],\n              [98.432498, 31.922825],\n              [98.434962, 32.007613],\n              [98.402933, 32.026896],\n              [98.404781, 32.045159],\n              [98.357354, 32.087253],\n              [98.303151, 32.121726],\n              [98.260035, 32.208862],\n              [98.218768, 32.234683],\n              [98.23047, 32.262521],\n              [98.208913, 32.318171],\n              [98.218768, 32.342444],\n              [98.125145, 32.401077],\n              [98.107283, 32.391476],\n              [98.079565, 32.415224],\n              [97.940363, 32.482393],\n              [97.880001, 32.486431],\n              [97.863986, 32.499051],\n              [97.80732, 32.50006],\n              [97.795617, 32.521257],\n              [97.730944, 32.527312],\n              [97.684132, 32.530339],\n              [97.670582, 32.51722],\n              [97.540618, 32.536899],\n              [97.50243, 32.530844],\n              [97.463626, 32.55506],\n              [97.448843, 32.586833],\n              [97.411887, 32.575235],\n              [97.374315, 32.546484],\n              [97.3583, 32.563635],\n              [97.332431, 32.542448],\n              [97.334895, 32.514192],\n              [97.388481, 32.501575],\n              [97.341054, 32.440987],\n              [97.387865, 32.427349],\n              [97.424822, 32.322723],\n              [97.415583, 32.296421],\n              [97.371235, 32.273148],\n              [97.32196, 32.303503],\n              [97.299786, 32.294904],\n              [97.264062, 32.182527],\n              [97.271453, 32.139971],\n              [97.313953, 32.130342],\n              [97.293011, 32.096887],\n              [97.308409, 32.076605],\n              [97.258518, 32.072041],\n              [97.219714, 32.109054],\n              [97.201852, 32.090296],\n              [97.233881, 32.063927],\n              [97.214786, 32.042623],\n              [97.188301, 32.055304],\n              [97.169823, 32.032984],\n              [97.127323, 32.044145],\n              [97.028773, 32.04871],\n              [97.006599, 32.067984],\n              [96.935766, 32.048203],\n              [96.965947, 32.008628],\n              [96.941925, 31.986297],\n              [96.894498, 32.013703],\n              [96.863085, 31.996448],\n              [96.868629, 31.964975],\n              [96.824281, 32.007613],\n              [96.722651, 32.013195],\n              [96.742977, 32.001016],\n              [96.753448, 31.944156],\n              [96.776238, 31.935015],\n              [96.81073, 31.894375],\n              [96.794716, 31.869474],\n              [96.760223, 31.860325],\n              [96.765767, 31.819144],\n              [96.799027, 31.792188],\n              [96.840295, 31.720438],\n              [96.790404, 31.698545],\n              [96.778701, 31.675629],\n              [96.722651, 31.686833],\n              [96.691854, 31.722474],\n              [96.661057, 31.705674],\n              [96.615477, 31.737236],\n              [96.56805, 31.711783],\n              [96.519391, 31.74945],\n              [96.468884, 31.769804],\n              [96.435623, 31.796258],\n              [96.407906, 31.845583],\n              [96.389428, 31.919777],\n              [96.288414, 31.919777],\n              [96.253305, 31.929936],\n              [96.220044, 31.905553],\n              [96.188632, 31.904028],\n              [96.214501, 31.876589],\n              [96.202798, 31.841008],\n              [96.183088, 31.835924],\n              [96.178161, 31.775401],\n              [96.231131, 31.749959],\n              [96.222508, 31.733164],\n              [96.252073, 31.697527],\n              [96.245298, 31.657802],\n              [96.221892, 31.647613],\n              [96.207726, 31.598691],\n              [96.156603, 31.602769],\n              [96.148595, 31.686324],\n              [96.135661, 31.70211],\n              [96.064828, 31.720438],\n              [95.989067, 31.78761],\n              [95.983524, 31.816601],\n              [95.89914, 31.81711],\n              [95.846169, 31.736218],\n              [95.853561, 31.714329],\n              [95.823995, 31.68225],\n              [95.779648, 31.748941],\n              [95.634286, 31.782523],\n              [95.580083, 31.76726],\n              [95.546823, 31.73978],\n              [95.511714, 31.750468],\n              [95.480301, 31.795749],\n              [95.456896, 31.801853],\n              [95.406389, 31.896915],\n              [95.408852, 31.918761],\n              [95.3682, 31.92892],\n              [95.360809, 31.95939],\n              [95.395918, 32.001523],\n              [95.454432, 32.007613],\n              [95.421171, 32.033999],\n              [95.454432, 32.061898],\n              [95.440265, 32.157705],\n              [95.406389, 32.182021],\n              [95.367584, 32.178982],\n              [95.366968, 32.151118],\n              [95.31523, 32.148585],\n              [95.270266, 32.194683],\n              [95.270266, 32.194683],\n              [95.239469, 32.287315],\n              [95.241317, 32.3207],\n              [95.214216, 32.321712],\n              [95.20744, 32.297433],\n              [95.10581, 32.258979],\n              [95.079325, 32.279726],\n              [95.096571, 32.322217],\n              [95.193274, 32.332331],\n              [95.261643, 32.348006],\n              [95.228382, 32.363678],\n              [95.218527, 32.397035],\n              [95.153853, 32.386423],\n              [95.081789, 32.384907],\n              [95.075013, 32.376315],\n              [95.075013, 32.376315],\n              [95.057151, 32.395014],\n              [94.988166, 32.422802],\n              [94.944434, 32.404109],\n              [94.912405, 32.41573],\n              [94.889616, 32.472295],\n              [94.852043, 32.463712],\n              [94.80708, 32.486431],\n              [94.78737, 32.522266],\n              [94.762116, 32.526303],\n              [94.737479, 32.587338],\n              [94.638312, 32.645307],\n              [94.614291, 32.673522],\n              [94.591501, 32.640772],\n              [94.522516, 32.595909],\n              [94.459074, 32.599439],\n              [94.463386, 32.572209],\n              [94.435052, 32.562626],\n              [94.395016, 32.594397],\n              [94.371611, 32.524789],\n              [94.350053, 32.533871],\n              [94.294002, 32.519743],\n              [94.292154, 32.502584],\n              [94.250886, 32.51722],\n              [94.196684, 32.51621],\n              [94.176974, 32.454117],\n              [94.137554, 32.433915],\n              [94.091974, 32.463207],\n              [94.049474, 32.469771],\n              [94.03038, 32.448057],\n              [93.978641, 32.459672],\n              [93.960163, 32.484917],\n              [93.90904, 32.463207],\n              [93.861613, 32.466237],\n              [93.851142, 32.50965],\n              [93.820345, 32.549511],\n              [93.75136, 32.56313],\n              [93.721795, 32.578261],\n              [93.651577, 32.571705],\n              [93.618933, 32.522771],\n              [93.516687, 32.47583],\n              [93.501904, 32.503593],\n              [93.476651, 32.504603],\n              [93.4631, 32.556069],\n              [93.411977, 32.558086],\n              [93.385492, 32.525294],\n              [93.33868, 32.5712],\n              [93.308499, 32.580278],\n              [93.300492, 32.619604],\n              [93.260456, 32.62666],\n              [93.239514, 32.662439],\n              [93.210565, 32.655385],\n              [93.176688, 32.6705],\n              [93.159442, 32.644803],\n              [93.087993, 32.63674],\n              [93.069515, 32.626156],\n              [93.023935, 32.703239],\n              [93.019624, 32.737477],\n              [93.00053, 32.741001],\n              [92.964189, 32.714821],\n              [92.933392, 32.719353],\n              [92.866871, 32.698203],\n              [92.822523, 32.729926],\n              [92.789262, 32.719856],\n              [92.756618, 32.743014],\n              [92.686401, 32.76516],\n              [92.667922, 32.73194],\n              [92.634662, 32.720863],\n              [92.574916, 32.741001],\n              [92.56814, 32.73194],\n              [92.484372, 32.745028],\n              [92.459119, 32.76365],\n              [92.411076, 32.748048],\n              [92.355641, 32.764657],\n              [92.343938, 32.738484],\n              [92.310062, 32.751571],\n              [92.255243, 32.720863],\n              [92.198577, 32.754591],\n              [92.211511, 32.788306],\n              [92.193649, 32.801889],\n              [92.227526, 32.821003],\n              [92.205352, 32.866255],\n              [92.145606, 32.885857],\n              [92.101874, 32.860222],\n              [92.038432, 32.860725],\n              [92.018722, 32.829552],\n              [91.955897, 32.8205],\n              [91.896766, 32.907967],\n              [91.857962, 32.90244],\n              [91.839484, 32.948152],\n              [91.799448, 32.942126],\n              [91.752637, 32.969242],\n              [91.685499, 32.989324],\n              [91.664557, 33.012913],\n              [91.583253, 33.0375],\n              [91.55492, 33.060074],\n              [91.535826, 33.10019],\n              [91.49579, 33.109214],\n              [91.436044, 33.066092],\n              [91.370138, 33.100691],\n              [91.311624, 33.108211],\n              [91.261733, 33.141291],\n              [91.226624, 33.141792],\n              [91.18782, 33.106206],\n              [91.161335, 33.108712],\n              [91.147784, 33.07211],\n              [91.072024, 33.113224],\n              [91.037531, 33.098686],\n              [91.001807, 33.11573],\n              [90.927894, 33.120241],\n              [90.902024, 33.083143],\n              [90.88293, 33.120241],\n              [90.803474, 33.114227],\n              [90.740032, 33.142293],\n              [90.704308, 33.135778],\n              [90.627315, 33.180368],\n              [90.562642, 33.229441],\n              [90.490577, 33.264977],\n              [90.405577, 33.260473],\n              [90.363077, 33.279487],\n              [90.332896, 33.310501],\n              [90.246665, 33.423959],\n              [90.22018, 33.437943],\n              [90.107463, 33.460913],\n              [90.088984, 33.478885],\n              [90.083441, 33.525295],\n              [90.01076, 33.553728],\n              [89.984275, 33.612061],\n              [90.008296, 33.687785],\n              [89.981195, 33.70322],\n              [89.983659, 33.725622],\n              [89.907282, 33.741051],\n              [89.902355, 33.758467],\n              [89.942391, 33.801246],\n              [89.899891, 33.80771],\n              [89.837065, 33.868853],\n              [89.795181, 33.865374],\n              [89.73174, 33.921509],\n              [89.718805, 33.946832],\n              [89.688008, 33.959739],\n              [89.684928, 33.990013],\n              [89.635037, 34.049537],\n              [89.656595, 34.057966],\n              [89.655979, 34.097126],\n              [89.71203, 34.131809],\n              [89.756993, 34.124874],\n              [89.760073, 34.152613],\n              [89.789638, 34.150632],\n              [89.816739, 34.16945],\n              [89.838297, 34.263477],\n              [89.825362, 34.293642],\n              [89.86663, 34.324785],\n              [89.858623, 34.359375],\n              [89.820435, 34.369255],\n              [89.799493, 34.39642],\n              [89.819819, 34.420614],\n              [89.823515, 34.455657],\n              [89.814891, 34.548871],\n              [89.777935, 34.574499],\n              [89.798877, 34.628686],\n              [89.74837, 34.641981],\n              [89.72558, 34.660689],\n              [89.732356, 34.732035],\n              [89.799493, 34.743838],\n              [89.825978, 34.796931],\n              [89.867862, 34.81069],\n              [89.838913, 34.865705],\n              [89.814891, 34.86816],\n              [89.821051, 34.902033],\n              [89.78779, 34.921664],\n              [89.747138, 34.903506],\n              [89.707102, 34.919701],\n              [89.670146, 34.887798],\n              [89.578987, 34.895162],\n              [89.560509, 34.938836],\n              [89.59069, 35.057965],\n              [89.593153, 35.104491],\n              [89.579603, 35.118688],\n              [89.519241, 35.133862],\n              [89.46935, 35.214577],\n              [89.450255, 35.223867],\n              [89.48598, 35.256616],\n              [89.531559, 35.276161],\n              [89.494603, 35.298632],\n              [89.516161, 35.330862],\n              [89.497067, 35.361128],\n              [89.58761, 35.383575],\n              [89.619639, 35.412357],\n              [89.658443, 35.425526],\n              [89.685544, 35.416259],\n              [89.739131, 35.468429],\n              [89.765, 35.482563],\n              [89.740979, 35.507412],\n              [89.720037, 35.501566],\n              [89.699711, 35.544916],\n              [89.71203, 35.581915],\n              [89.75145, 35.580942],\n              [89.765616, 35.599922],\n              [89.726196, 35.648082],\n              [89.748986, 35.66267],\n              [89.747138, 35.7516],\n              [89.782863, 35.773453],\n              [89.767464, 35.799183],\n              [89.801957, 35.848193],\n              [89.778551, 35.861775],\n              [89.707718, 35.849163],\n              [89.654747, 35.848193],\n              [89.62395, 35.859349],\n              [89.550654, 35.856924],\n              [89.554965, 35.873414],\n              [89.489676, 35.903475],\n              [89.428082, 35.917531],\n              [89.434857, 35.992136],\n              [89.404676, 36.016827],\n              [89.417611, 36.044897],\n              [89.474893, 36.022151],\n              [89.605472, 36.038123],\n              [89.688624, 36.091337],\n              [89.711414, 36.093272]\n            ]\n          ]\n        ]\n      }\n    },\n    {\n      \"type\": \"Feature\",\n      \"properties\": {\n        \"adcode\": 610000,\n        \"name\": \"陕西省\",\n        \"center\": [108.948024, 34.263161],\n        \"centroid\": [108.887114, 35.263661],\n        \"childrenNum\": 10,\n        \"level\": \"province\",\n        \"parent\": { \"adcode\": 100000 },\n        \"subFeatureIndex\": 26,\n        \"acroutes\": [100000]\n      },\n      \"geometry\": {\n        \"type\": \"MultiPolygon\",\n        \"coordinates\": [\n          [\n            [\n              [110.379257, 34.600612],\n              [110.29549, 34.610956],\n              [110.269004, 34.629671],\n              [110.229584, 34.692679],\n              [110.243135, 34.725641],\n              [110.246831, 34.789068],\n              [110.230816, 34.880925],\n              [110.262229, 34.944233],\n              [110.320743, 35.00504],\n              [110.373714, 35.134351],\n              [110.364475, 35.197952],\n              [110.378642, 35.210666],\n              [110.374946, 35.251728],\n              [110.45009, 35.327933],\n              [110.477808, 35.413821],\n              [110.531394, 35.511309],\n              [110.567735, 35.539559],\n              [110.589293, 35.602355],\n              [110.609619, 35.632031],\n              [110.57759, 35.701559],\n              [110.571431, 35.800639],\n              [110.550489, 35.838005],\n              [110.549257, 35.877778],\n              [110.511684, 35.879718],\n              [110.516612, 35.918501],\n              [110.502445, 35.947575],\n              [110.516612, 35.971796],\n              [110.49259, 35.994073],\n              [110.491974, 36.034735],\n              [110.467953, 36.074893],\n              [110.447011, 36.164328],\n              [110.45625, 36.22663],\n              [110.474112, 36.248352],\n              [110.474112, 36.306729],\n              [110.459946, 36.327946],\n              [110.487047, 36.393972],\n              [110.489511, 36.430094],\n              [110.47288, 36.453203],\n              [110.503677, 36.488335],\n              [110.488895, 36.556628],\n              [110.496902, 36.582102],\n              [110.447627, 36.621018],\n              [110.426685, 36.657514],\n              [110.394656, 36.676716],\n              [110.402663, 36.697352],\n              [110.438388, 36.685835],\n              [110.447011, 36.737649],\n              [110.407591, 36.776007],\n              [110.423605, 36.818179],\n              [110.406975, 36.824886],\n              [110.424221, 36.855539],\n              [110.376178, 36.882351],\n              [110.408823, 36.892403],\n              [110.424221, 36.963685],\n              [110.381721, 37.002408],\n              [110.382953, 37.022001],\n              [110.426685, 37.008621],\n              [110.417446, 37.027257],\n              [110.460561, 37.044932],\n              [110.49567, 37.086956],\n              [110.535706, 37.115118],\n              [110.53509, 37.138021],\n              [110.590525, 37.187145],\n              [110.651503, 37.256722],\n              [110.661974, 37.281963],\n              [110.690307, 37.287201],\n              [110.678604, 37.317668],\n              [110.695234, 37.34955],\n              [110.641648, 37.360015],\n              [110.630561, 37.372858],\n              [110.644111, 37.435135],\n              [110.740198, 37.44939],\n              [110.759292, 37.474567],\n              [110.770995, 37.538184],\n              [110.795017, 37.558586],\n              [110.771611, 37.594634],\n              [110.763604, 37.639668],\n              [110.793169, 37.650567],\n              [110.775306, 37.680886],\n              [110.706321, 37.705511],\n              [110.716792, 37.728708],\n              [110.750669, 37.736281],\n              [110.735886, 37.77035],\n              [110.680452, 37.790216],\n              [110.59422, 37.922049],\n              [110.522771, 37.955088],\n              [110.528315, 37.990471],\n              [110.507989, 38.013107],\n              [110.501829, 38.097929],\n              [110.519692, 38.130889],\n              [110.509221, 38.192061],\n              [110.528315, 38.211814],\n              [110.565887, 38.215105],\n              [110.57759, 38.297345],\n              [110.601612, 38.308147],\n              [110.661358, 38.308617],\n              [110.701394, 38.353215],\n              [110.746973, 38.366355],\n              [110.77777, 38.440924],\n              [110.796864, 38.453579],\n              [110.840596, 38.439986],\n              [110.874473, 38.453579],\n              [110.870777, 38.510265],\n              [110.907733, 38.521035],\n              [110.920052, 38.581878],\n              [110.898494, 38.587024],\n              [110.880632, 38.626776],\n              [110.916357, 38.673981],\n              [110.915125, 38.704345],\n              [110.965016, 38.755699],\n              [111.009363, 38.847579],\n              [110.995813, 38.868084],\n              [111.016755, 38.889981],\n              [111.009979, 38.932823],\n              [110.980414, 38.970056],\n              [110.998276, 38.998433],\n              [111.038313, 39.020289],\n              [111.094363, 39.030053],\n              [111.138095, 39.064447],\n              [111.147334, 39.100681],\n              [111.173819, 39.135041],\n              [111.163348, 39.152678],\n              [111.219399, 39.244044],\n              [111.213239, 39.257021],\n              [111.247732, 39.302419],\n              [111.202152, 39.305197],\n              [111.179363, 39.326959],\n              [111.186138, 39.35149],\n              [111.155341, 39.338531],\n              [111.159037, 39.362596],\n              [111.125776, 39.366297],\n              [111.087588, 39.376013],\n              [111.098059, 39.401914],\n              [111.064182, 39.400989],\n              [111.058639, 39.447681],\n              [111.10545, 39.472631],\n              [111.10545, 39.497573],\n              [111.148566, 39.531277],\n              [111.154725, 39.569116],\n              [111.136863, 39.587106],\n              [111.101138, 39.559428],\n              [111.017371, 39.552045],\n              [110.958856, 39.519275],\n              [110.891103, 39.509118],\n              [110.869545, 39.494341],\n              [110.782698, 39.38804],\n              [110.73835, 39.348713],\n              [110.731575, 39.30705],\n              [110.702626, 39.273701],\n              [110.626249, 39.266751],\n              [110.596684, 39.282966],\n              [110.566503, 39.320014],\n              [110.559728, 39.351027],\n              [110.524003, 39.382952],\n              [110.482735, 39.360745],\n              [110.434692, 39.381101],\n              [110.429764, 39.341308],\n              [110.385417, 39.310291],\n              [110.257917, 39.407001],\n              [110.243751, 39.423645],\n              [110.152592, 39.45415],\n              [110.12549, 39.432891],\n              [110.136577, 39.39174],\n              [110.161831, 39.387115],\n              [110.184005, 39.355192],\n              [110.217881, 39.281113],\n              [110.109476, 39.249606],\n              [110.041107, 39.21623],\n              [109.962267, 39.212056],\n              [109.90252, 39.271848],\n              [109.871723, 39.243581],\n              [109.961035, 39.191651],\n              [109.893897, 39.141075],\n              [109.92223, 39.107183],\n              [109.890818, 39.103932],\n              [109.851397, 39.122971],\n              [109.793499, 39.074204],\n              [109.762086, 39.057476],\n              [109.72513, 39.018429],\n              [109.665384, 38.981687],\n              [109.685094, 38.968195],\n              [109.672159, 38.928167],\n              [109.624116, 38.85457],\n              [109.549587, 38.805618],\n              [109.511399, 38.833595],\n              [109.444262, 38.782763],\n              [109.404226, 38.720689],\n              [109.338936, 38.701542],\n              [109.329081, 38.66043],\n              [109.367269, 38.627711],\n              [109.331545, 38.597783],\n              [109.276726, 38.623035],\n              [109.196654, 38.552867],\n              [109.175712, 38.518694],\n              [109.128901, 38.480288],\n              [109.054372, 38.433892],\n              [109.051292, 38.385122],\n              [109.007561, 38.359316],\n              [108.961981, 38.26493],\n              [108.976148, 38.245192],\n              [108.938575, 38.207582],\n              [108.964445, 38.154894],\n              [109.069155, 38.091336],\n              [109.050676, 38.055059],\n              [109.06977, 38.023008],\n              [109.037742, 38.021593],\n              [109.018648, 37.971602],\n              [108.982923, 37.964053],\n              [108.9743, 37.931962],\n              [108.93488, 37.922521],\n              [108.893612, 37.978207],\n              [108.883141, 38.01405],\n              [108.830786, 38.049875],\n              [108.797525, 38.04799],\n              [108.82709, 37.989056],\n              [108.798141, 37.93385],\n              [108.791982, 37.872934],\n              [108.799989, 37.784068],\n              [108.784591, 37.764673],\n              [108.791982, 37.700303],\n              [108.777815, 37.683728],\n              [108.720533, 37.683728],\n              [108.699591, 37.669518],\n              [108.628142, 37.651988],\n              [108.532671, 37.690832],\n              [108.485244, 37.678044],\n              [108.422418, 37.648672],\n              [108.301078, 37.640616],\n              [108.293071, 37.656726],\n              [108.24626, 37.665728],\n              [108.205608, 37.655779],\n              [108.193905, 37.638246],\n              [108.134159, 37.622131],\n              [108.055318, 37.652462],\n              [108.025137, 37.649619],\n              [108.012819, 37.66857],\n              [108.025753, 37.696041],\n              [107.993109, 37.735335],\n              [107.982022, 37.787378],\n              [107.884703, 37.808186],\n              [107.842819, 37.828987],\n              [107.732566, 37.84931],\n              [107.684523, 37.888522],\n              [107.65003, 37.86443],\n              [107.659269, 37.844112],\n              [107.646335, 37.805349],\n              [107.620465, 37.776026],\n              [107.599523, 37.791162],\n              [107.57119, 37.776499],\n              [107.499125, 37.765619],\n              [107.484959, 37.706458],\n              [107.425828, 37.684201],\n              [107.387024, 37.691305],\n              [107.389488, 37.671413],\n              [107.422133, 37.665254],\n              [107.361155, 37.613125],\n              [107.311264, 37.609806],\n              [107.330358, 37.584201],\n              [107.369162, 37.58752],\n              [107.345756, 37.518725],\n              [107.284162, 37.481691],\n              [107.282931, 37.437036],\n              [107.257677, 37.337179],\n              [107.273075, 37.29101],\n              [107.309416, 37.239095],\n              [107.270612, 37.229089],\n              [107.317423, 37.200017],\n              [107.336517, 37.165687],\n              [107.334669, 37.138975],\n              [107.306952, 37.100799],\n              [107.281083, 37.127047],\n              [107.268764, 37.099367],\n              [107.28601, 37.054963],\n              [107.288474, 37.008143],\n              [107.288474, 37.008143],\n              [107.291554, 36.979463],\n              [107.291554, 36.979463],\n              [107.310032, 36.912502],\n              [107.336517, 36.925899],\n              [107.365466, 36.905324],\n              [107.478183, 36.908196],\n              [107.533618, 36.867031],\n              [107.540393, 36.828718],\n              [107.5909, 36.836382],\n              [107.642023, 36.819137],\n              [107.670356, 36.83303],\n              [107.722095, 36.802367],\n              [107.742421, 36.811951],\n              [107.768291, 36.792783],\n              [107.866841, 36.766899],\n              [107.907493, 36.750118],\n              [107.914268, 36.720861],\n              [107.940754, 36.694953],\n              [107.938906, 36.655594],\n              [108.006659, 36.683435],\n              [108.02329, 36.647912],\n              [108.001732, 36.639269],\n              [108.060862, 36.592194],\n              [108.079956, 36.614294],\n              [108.092891, 36.587388],\n              [108.163724, 36.563839],\n              [108.1976, 36.630144],\n              [108.222854, 36.631105],\n              [108.204992, 36.606607],\n              [108.204992, 36.606607],\n              [108.210535, 36.577296],\n              [108.245644, 36.571048],\n              [108.262274, 36.549417],\n              [108.340498, 36.559032],\n              [108.365136, 36.519603],\n              [108.391621, 36.505654],\n              [108.408252, 36.45946],\n              [108.460606, 36.422871],\n              [108.495099, 36.422389],\n              [108.514809, 36.445501],\n              [108.510498, 36.47438],\n              [108.562852, 36.43876],\n              [108.618903, 36.433946],\n              [108.651548, 36.384818],\n              [108.641693, 36.359279],\n              [108.646004, 36.254143],\n              [108.712526, 36.138716],\n              [108.682345, 36.062316],\n              [108.688504, 36.021183],\n              [108.659555, 35.990683],\n              [108.652164, 35.94806],\n              [108.593649, 35.950967],\n              [108.562852, 35.921409],\n              [108.518505, 35.905414],\n              [108.499411, 35.872444],\n              [108.527744, 35.82442],\n              [108.533903, 35.746257],\n              [108.517889, 35.699615],\n              [108.539447, 35.605761],\n              [108.618287, 35.557088],\n              [108.625678, 35.537124],\n              [108.605968, 35.503028],\n              [108.631222, 35.418698],\n              [108.61028, 35.355271],\n              [108.614591, 35.328909],\n              [108.583178, 35.294724],\n              [108.547454, 35.304981],\n              [108.48894, 35.275184],\n              [108.36144, 35.279581],\n              [108.345426, 35.300586],\n              [108.296767, 35.267855],\n              [108.239484, 35.256127],\n              [108.221622, 35.296678],\n              [108.174811, 35.304981],\n              [108.094739, 35.280069],\n              [108.049159, 35.253683],\n              [107.949993, 35.245375],\n              [107.960464, 35.263457],\n              [107.867457, 35.256127],\n              [107.841587, 35.276649],\n              [107.745501, 35.311819],\n              [107.737494, 35.267366],\n              [107.667277, 35.257104],\n              [107.652494, 35.244886],\n              [107.686371, 35.218],\n              [107.715936, 35.168114],\n              [107.727639, 35.120157],\n              [107.769523, 35.064333],\n              [107.769523, 35.064333],\n              [107.773218, 35.060904],\n              [107.773218, 35.060904],\n              [107.814486, 35.024646],\n              [107.846515, 35.024646],\n              [107.863145, 34.999158],\n              [107.842203, 34.979056],\n              [107.741805, 34.953553],\n              [107.675284, 34.9511],\n              [107.638943, 34.935402],\n              [107.619849, 34.964834],\n              [107.564415, 34.968757],\n              [107.523763, 34.909886],\n              [107.455394, 34.916757],\n              [107.400575, 34.932949],\n              [107.369162, 34.917738],\n              [107.350068, 34.93393],\n              [107.286626, 34.931968],\n              [107.252749, 34.880925],\n              [107.189308, 34.893198],\n              [107.162206, 34.944233],\n              [107.119707, 34.950119],\n              [107.089526, 34.976604],\n              [107.08275, 35.024156],\n              [107.012533, 35.029547],\n              [106.990975, 35.068252],\n              [106.950323, 35.066782],\n              [106.901664, 35.094698],\n              [106.838222, 35.080007],\n              [106.710723, 35.100574],\n              [106.706411, 35.081966],\n              [106.615252, 35.071191],\n              [106.577064, 35.089312],\n              [106.541956, 35.083925],\n              [106.52163, 35.027587],\n              [106.494528, 35.006021],\n              [106.494528, 35.006021],\n              [106.484673, 34.983959],\n              [106.493296, 34.941289],\n              [106.527789, 34.876507],\n              [106.556122, 34.861285],\n              [106.550579, 34.82936],\n              [106.575216, 34.769897],\n              [106.539492, 34.745805],\n              [106.505615, 34.746789],\n              [106.487137, 34.715311],\n              [106.456956, 34.703996],\n              [106.442173, 34.675455],\n              [106.471122, 34.634102],\n              [106.419384, 34.643458],\n              [106.314058, 34.578934],\n              [106.341159, 34.568093],\n              [106.334384, 34.517811],\n              [106.455108, 34.531617],\n              [106.514238, 34.511894],\n              [106.513622, 34.498085],\n              [106.558586, 34.48822],\n              [106.610941, 34.454177],\n              [106.638042, 34.391481],\n              [106.717498, 34.369255],\n              [106.691013, 34.337635],\n              [106.705179, 34.299575],\n              [106.68239, 34.256057],\n              [106.652825, 34.24369],\n              [106.63373, 34.260014],\n              [106.589383, 34.253584],\n              [106.577064, 34.280786],\n              [106.526557, 34.292159],\n              [106.496376, 34.238248],\n              [106.5321, 34.254079],\n              [106.55797, 34.229837],\n              [106.585071, 34.149641],\n              [106.560434, 34.109514],\n              [106.501919, 34.105055],\n              [106.505615, 34.056479],\n              [106.471738, 34.024244],\n              [106.474202, 33.970659],\n              [106.41076, 33.909093],\n              [106.428007, 33.866368],\n              [106.475434, 33.875809],\n              [106.491448, 33.834559],\n              [106.461883, 33.789807],\n              [106.488369, 33.757969],\n              [106.482825, 33.707203],\n              [106.534564, 33.695254],\n              [106.575832, 33.631497],\n              [106.58076, 33.576169],\n              [106.540108, 33.512822],\n              [106.456956, 33.532779],\n              [106.447101, 33.613058],\n              [106.384891, 33.612061],\n              [106.35163, 33.587137],\n              [106.303587, 33.604585],\n              [106.237681, 33.564201],\n              [106.187174, 33.546746],\n              [106.108334, 33.569686],\n              [106.117573, 33.602591],\n              [106.086776, 33.617045],\n              [106.047356, 33.610067],\n              [105.971596, 33.613058],\n              [105.940183, 33.570684],\n              [105.902611, 33.556222],\n              [105.871198, 33.511325],\n              [105.842248, 33.489866],\n              [105.831162, 33.451926],\n              [105.837937, 33.410971],\n              [105.827466, 33.379993],\n              [105.709822, 33.382991],\n              [105.755401, 33.329004],\n              [105.752937, 33.291994],\n              [105.791741, 33.278486],\n              [105.799133, 33.258471],\n              [105.862574, 33.234447],\n              [105.917393, 33.237951],\n              [105.965436, 33.204407],\n              [105.968516, 33.154318],\n              [105.93156, 33.178365],\n              [105.897067, 33.146803],\n              [105.923552, 33.147805],\n              [105.934639, 33.112221],\n              [105.914929, 33.066092],\n              [105.926632, 33.042517],\n              [105.917393, 32.993841],\n              [105.861959, 32.939112],\n              [105.82685, 32.950663],\n              [105.735691, 32.905454],\n              [105.656851, 32.895405],\n              [105.638373, 32.879323],\n              [105.590329, 32.87681],\n              [105.565692, 32.906962],\n              [105.528119, 32.919019],\n              [105.49917, 32.911986],\n              [105.495475, 32.873292],\n              [105.524424, 32.847654],\n              [105.534279, 32.790822],\n              [105.555221, 32.794343],\n              [105.563844, 32.724891],\n              [105.585402, 32.728919],\n              [105.596489, 32.69921],\n              [105.677793, 32.726402],\n              [105.719061, 32.759624],\n              [105.768952, 32.767676],\n              [105.779423, 32.750061],\n              [105.822538, 32.770192],\n              [105.825002, 32.824523],\n              [105.849024, 32.817985],\n              [105.893371, 32.838603],\n              [105.93156, 32.826032],\n              [105.969132, 32.849162],\n              [106.011632, 32.829552],\n              [106.044277, 32.864747],\n              [106.071378, 32.828546],\n              [106.093552, 32.82402],\n              [106.07261, 32.76365],\n              [106.076921, 32.76365],\n              [106.076305, 32.759121],\n              [106.071378, 32.758114],\n              [106.120037, 32.719856],\n              [106.17424, 32.6977],\n              [106.254928, 32.693671],\n              [106.267863, 32.673522],\n              [106.301123, 32.680071],\n              [106.347935, 32.671003],\n              [106.389203, 32.62666],\n              [106.421231, 32.616579],\n              [106.451412, 32.65992],\n              [106.498224, 32.649338],\n              [106.517934, 32.668485],\n              [106.585687, 32.68813],\n              [106.626955, 32.682086],\n              [106.670071, 32.694678],\n              [106.733513, 32.739491],\n              [106.783404, 32.735967],\n              [106.793259, 32.712807],\n              [106.82344, 32.705254],\n              [106.854853, 32.724388],\n              [106.903512, 32.721367],\n              [106.912751, 32.704247],\n              [107.012533, 32.721367],\n              [107.066736, 32.708779],\n              [107.05996, 32.686115],\n              [107.098765, 32.649338],\n              [107.108004, 32.600951],\n              [107.080286, 32.542448],\n              [107.127098, 32.482393],\n              [107.189924, 32.468256],\n              [107.212097, 32.428864],\n              [107.263836, 32.403099],\n              [107.287858, 32.457147],\n              [107.313727, 32.489965],\n              [107.356843, 32.506622],\n              [107.382097, 32.54043],\n              [107.436299, 32.529835],\n              [107.438763, 32.465732],\n              [107.460937, 32.453612],\n              [107.456625, 32.41775],\n              [107.489886, 32.425328],\n              [107.527458, 32.38238],\n              [107.598291, 32.411688],\n              [107.648183, 32.413709],\n              [107.680827, 32.397035],\n              [107.707929, 32.331826],\n              [107.753508, 32.338399],\n              [107.812022, 32.247844],\n              [107.864377, 32.201266],\n              [107.890247, 32.214432],\n              [107.924739, 32.197215],\n              [107.979558, 32.146051],\n              [108.024521, 32.177462],\n              [108.018362, 32.2119],\n              [108.086731, 32.233165],\n              [108.143398, 32.219495],\n              [108.156948, 32.239239],\n              [108.179738, 32.221521],\n              [108.240716, 32.274666],\n              [108.310933, 32.232152],\n              [108.389773, 32.263533],\n              [108.414411, 32.252399],\n              [108.469846, 32.270618],\n              [108.507418, 32.245819],\n              [108.509882, 32.201266],\n              [108.543758, 32.177969],\n              [108.585026, 32.17189],\n              [108.676801, 32.10297],\n              [108.734084, 32.106519],\n              [108.75133, 32.076098],\n              [108.78767, 32.04871],\n              [108.837561, 32.039072],\n              [108.902235, 31.984774],\n              [108.986619, 31.980205],\n              [109.085785, 31.929428],\n              [109.123357, 31.892851],\n              [109.191111, 31.85575],\n              [109.195422, 31.817618],\n              [109.27611, 31.79931],\n              [109.279806, 31.776418],\n              [109.253936, 31.759628],\n              [109.282885, 31.743343],\n              [109.281654, 31.716874],\n              [109.381436, 31.705165],\n              [109.446109, 31.722983],\n              [109.502776, 31.716365],\n              [109.549587, 31.73011],\n              [109.585928, 31.726546],\n              [109.592087, 31.789136],\n              [109.633971, 31.804396],\n              [109.633971, 31.824738],\n              [109.60379, 31.885737],\n              [109.584696, 31.900472],\n              [109.62042, 31.928412],\n              [109.631507, 31.962436],\n              [109.590855, 32.012688],\n              [109.590855, 32.047696],\n              [109.621652, 32.106519],\n              [109.58716, 32.161251],\n              [109.604406, 32.199241],\n              [109.592703, 32.219495],\n              [109.550203, 32.225065],\n              [109.528645, 32.270112],\n              [109.495385, 32.300468],\n              [109.513247, 32.342444],\n              [109.502776, 32.38895],\n              [109.529877, 32.405625],\n              [109.526797, 32.43341],\n              [109.575457, 32.506622],\n              [109.637051, 32.540935],\n              [109.619804, 32.56767],\n              [109.631507, 32.599943],\n              [109.726978, 32.608513],\n              [109.746072, 32.594901],\n              [109.816905, 32.577252],\n              [109.910528, 32.592884],\n              [109.97089, 32.577756],\n              [110.017701, 32.546989],\n              [110.084223, 32.580782],\n              [110.090382, 32.617083],\n              [110.124259, 32.616579],\n              [110.153824, 32.593388],\n              [110.206179, 32.633212],\n              [110.156903, 32.683093],\n              [110.159367, 32.767173],\n              [110.127338, 32.77774],\n              [110.142121, 32.802895],\n              [110.105164, 32.832569],\n              [110.051578, 32.851676],\n              [109.988752, 32.886359],\n              [109.927158, 32.887364],\n              [109.907448, 32.903947],\n              [109.856941, 32.910479],\n              [109.847702, 32.893395],\n              [109.789804, 32.882339],\n              [109.76455, 32.909474],\n              [109.785492, 32.987316],\n              [109.794731, 33.067095],\n              [109.704188, 33.101694],\n              [109.688174, 33.116733],\n              [109.576073, 33.110216],\n              [109.522486, 33.138785],\n              [109.468283, 33.140288],\n              [109.438718, 33.152314],\n              [109.498464, 33.207412],\n              [109.514479, 33.237951],\n              [109.60687, 33.235949],\n              [109.619804, 33.275484],\n              [109.649985, 33.251465],\n              [109.693101, 33.254468],\n              [109.732521, 33.231443],\n              [109.813209, 33.236449],\n              [109.852013, 33.247961],\n              [109.916687, 33.229942],\n              [109.973353, 33.203907],\n              [109.999223, 33.212419],\n              [110.031252, 33.191888],\n              [110.164911, 33.209415],\n              [110.218497, 33.163336],\n              [110.285635, 33.171352],\n              [110.33799, 33.160331],\n              [110.372482, 33.186379],\n              [110.398352, 33.176862],\n              [110.398352, 33.176862],\n              [110.471032, 33.171352],\n              [110.54125, 33.255469],\n              [110.57759, 33.250464],\n              [110.59422, 33.168346],\n              [110.623785, 33.143796],\n              [110.650887, 33.157324],\n              [110.702626, 33.097182],\n              [110.753133, 33.15031],\n              [110.824582, 33.158327],\n              [110.828893, 33.201403],\n              [110.865234, 33.213921],\n              [110.9219, 33.203907],\n              [110.960704, 33.253967],\n              [110.984726, 33.255469],\n              [111.025994, 33.330504],\n              [111.025994, 33.375495],\n              [110.996429, 33.435946],\n              [111.02661, 33.467903],\n              [111.021066, 33.471397],\n              [111.021682, 33.476389],\n              [111.02661, 33.478386],\n              [111.002588, 33.535772],\n              [111.00382, 33.578662],\n              [110.966864, 33.609071],\n              [110.878784, 33.634486],\n              [110.823966, 33.685793],\n              [110.831973, 33.713675],\n              [110.81719, 33.751003],\n              [110.782082, 33.796272],\n              [110.74143, 33.798759],\n              [110.712481, 33.833564],\n              [110.66259, 33.85295],\n              [110.612083, 33.852453],\n              [110.587445, 33.887733],\n              [110.628713, 33.910086],\n              [110.627481, 33.925482],\n              [110.665669, 33.937895],\n              [110.671213, 33.966192],\n              [110.620706, 34.035652],\n              [110.587445, 34.023252],\n              [110.591757, 34.101586],\n              [110.61393, 34.113478],\n              [110.642264, 34.161032],\n              [110.621938, 34.177372],\n              [110.55788, 34.193214],\n              [110.55172, 34.213012],\n              [110.507989, 34.217466],\n              [110.43962, 34.243196],\n              [110.428533, 34.288203],\n              [110.451938, 34.292653],\n              [110.503677, 34.33714],\n              [110.473496, 34.393457],\n              [110.403279, 34.433448],\n              [110.403279, 34.433448],\n              [110.360779, 34.516825],\n              [110.372482, 34.544435],\n              [110.404511, 34.557743],\n              [110.366939, 34.566614],\n              [110.379257, 34.600612]\n            ]\n          ],\n          [\n            [\n              [111.02661, 33.478386],\n              [111.021682, 33.476389],\n              [111.021066, 33.471397],\n              [111.02661, 33.467903],\n              [111.02661, 33.478386]\n            ]\n          ],\n          [\n            [\n              [106.076921, 32.76365],\n              [106.07261, 32.76365],\n              [106.071378, 32.758114],\n              [106.076305, 32.759121],\n              [106.076921, 32.76365]\n            ]\n          ]\n        ]\n      }\n    },\n    {\n      \"type\": \"Feature\",\n      \"properties\": {\n        \"adcode\": 620000,\n        \"name\": \"甘肃省\",\n        \"center\": [103.823557, 36.058039],\n        \"childrenNum\": 14,\n        \"level\": \"province\",\n        \"parent\": { \"adcode\": 100000 },\n        \"subFeatureIndex\": 27,\n        \"acroutes\": [100000]\n      },\n      \"geometry\": {\n        \"type\": \"MultiPolygon\",\n        \"coordinates\": [\n          [\n            [\n              [106.506231, 35.737514],\n              [106.504383, 35.736057],\n              [106.498224, 35.732656],\n              [106.49268, 35.732656],\n              [106.434782, 35.688436],\n              [106.460036, 35.643705],\n              [106.47913, 35.575101],\n              [106.460036, 35.578995],\n              [106.440941, 35.52641],\n              [106.465579, 35.481101],\n              [106.490217, 35.480613],\n              [106.483441, 35.450393],\n              [106.503767, 35.415284],\n              [106.501304, 35.364056],\n              [106.472354, 35.310842],\n              [106.415688, 35.276161],\n              [106.368261, 35.273718],\n              [106.363333, 35.238532],\n              [106.319601, 35.265411],\n              [106.241377, 35.358687],\n              [106.237681, 35.409431],\n              [106.196414, 35.409919],\n              [106.173008, 35.437716],\n              [106.129892, 35.393333],\n              [106.113262, 35.361616],\n              [106.083081, 35.421624],\n              [106.073226, 35.420649],\n              [106.067682, 35.436254],\n              [106.073226, 35.447468],\n              [106.071378, 35.449418],\n              [106.06953, 35.458193],\n              [106.071994, 35.463555],\n              [106.054132, 35.45478],\n              [106.034422, 35.469404],\n              [106.002393, 35.438692],\n              [105.894603, 35.413821],\n              [105.897683, 35.451368],\n              [106.048588, 35.488898],\n              [106.047356, 35.498155],\n              [106.023335, 35.49377],\n              [106.017175, 35.519103],\n              [105.900147, 35.54735],\n              [105.868734, 35.540046],\n              [105.847176, 35.490359],\n              [105.816379, 35.575101],\n              [105.800365, 35.564878],\n              [105.762176, 35.602841],\n              [105.759097, 35.634464],\n              [105.713517, 35.650513],\n              [105.722756, 35.673366],\n              [105.690727, 35.698643],\n              [105.723988, 35.725854],\n              [105.740618, 35.698643],\n              [105.759097, 35.724883],\n              [105.70243, 35.733142],\n              [105.667322, 35.749657],\n              [105.595873, 35.715651],\n              [105.481924, 35.727312],\n              [105.457286, 35.771511],\n              [105.432033, 35.787533],\n              [105.428953, 35.819082],\n              [105.408627, 35.822479],\n              [105.38091, 35.792873],\n              [105.371055, 35.844312],\n              [105.39754, 35.857409],\n              [105.350113, 35.875839],\n              [105.324859, 35.941761],\n              [105.343954, 36.033767],\n              [105.406163, 36.074409],\n              [105.430801, 36.10391],\n              [105.491163, 36.101009],\n              [105.515185, 36.147415],\n              [105.478844, 36.213111],\n              [105.460366, 36.223733],\n              [105.45975, 36.268137],\n              [105.476381, 36.293224],\n              [105.455439, 36.321678],\n              [105.425873, 36.330357],\n              [105.401236, 36.369881],\n              [105.398156, 36.430575],\n              [105.363048, 36.443093],\n              [105.362432, 36.496514],\n              [105.322396, 36.535954],\n              [105.281744, 36.522489],\n              [105.252179, 36.553263],\n              [105.2762, 36.563358],\n              [105.261418, 36.602764],\n              [105.22015, 36.631105],\n              [105.225693, 36.664716],\n              [105.201056, 36.700711],\n              [105.218302, 36.730455],\n              [105.272505, 36.739567],\n              [105.275584, 36.752515],\n              [105.319932, 36.742924],\n              [105.340874, 36.764502],\n              [105.334714, 36.80093],\n              [105.303302, 36.820575],\n              [105.279896, 36.86751],\n              [105.244787, 36.894796],\n              [105.178882, 36.892403],\n              [105.185657, 36.942164],\n              [105.165331, 36.99476],\n              [105.128991, 36.996194],\n              [105.05939, 37.022956],\n              [105.03968, 37.007187],\n              [105.004571, 37.035378],\n              [104.95468, 37.040156],\n              [104.954064, 37.077407],\n              [104.914644, 37.097935],\n              [104.888158, 37.15901],\n              [104.864753, 37.17284],\n              [104.85613, 37.211933],\n              [104.776673, 37.246718],\n              [104.717543, 37.208597],\n              [104.638087, 37.201923],\n              [104.600515, 37.242907],\n              [104.624536, 37.298627],\n              [104.651022, 37.290534],\n              [104.673812, 37.317668],\n              [104.713848, 37.329566],\n              [104.662109, 37.367626],\n              [104.679971, 37.408044],\n              [104.521059, 37.43466],\n              [104.499501, 37.421353],\n              [104.448994, 37.42468],\n              [104.437907, 37.445589],\n              [104.365226, 37.418026],\n              [104.298705, 37.414223],\n              [104.287002, 37.428007],\n              [104.237727, 37.411847],\n              [104.183524, 37.406618],\n              [104.089285, 37.465067],\n              [103.935916, 37.572818],\n              [103.874938, 37.604117],\n              [103.841062, 37.64725],\n              [103.683381, 37.777919],\n              [103.627947, 37.797783],\n              [103.40744, 37.860651],\n              [103.362477, 38.037621],\n              [103.368636, 38.08898],\n              [103.53494, 38.156776],\n              [103.507838, 38.280905],\n              [103.465339, 38.353215],\n              [103.416063, 38.404821],\n              [103.85954, 38.64454],\n              [104.011677, 38.85923],\n              [104.044322, 38.895105],\n              [104.173053, 38.94446],\n              [104.196459, 38.9882],\n              [104.190915, 39.042139],\n              [104.207546, 39.083495],\n              [104.171205, 39.160567],\n              [104.047401, 39.297788],\n              [104.073271, 39.351953],\n              [104.089901, 39.419947],\n              [103.955626, 39.456923],\n              [103.85338, 39.461543],\n              [103.728961, 39.430117],\n              [103.595302, 39.386652],\n              [103.428998, 39.353341],\n              [103.344615, 39.331588],\n              [103.259615, 39.263971],\n              [103.188166, 39.215302],\n              [103.133347, 39.192579],\n              [103.007696, 39.099753],\n              [102.883892, 39.120649],\n              [102.616574, 39.171703],\n              [102.579002, 39.183301],\n              [102.45335, 39.255167],\n              [102.3548, 39.231993],\n              [102.276576, 39.188868],\n              [102.050526, 39.141075],\n              [102.012338, 39.127149],\n              [101.902701, 39.111827],\n              [101.833715, 39.08907],\n              [101.926106, 39.000758],\n              [101.955055, 38.985874],\n              [102.045599, 38.904885],\n              [102.075164, 38.891378],\n              [101.941505, 38.808883],\n              [101.873751, 38.733761],\n              [101.777049, 38.66043],\n              [101.672955, 38.6908],\n              [101.601506, 38.65529],\n              [101.562702, 38.713218],\n              [101.412413, 38.764099],\n              [101.331109, 38.777164],\n              [101.307087, 38.80282],\n              [101.34158, 38.822406],\n              [101.33542, 38.847113],\n              [101.24303, 38.860628],\n              [101.237486, 38.907214],\n              [101.198682, 38.943064],\n              [101.228863, 39.020754],\n              [101.117378, 38.975174],\n              [100.969553, 38.946788],\n              [100.961545, 39.005874],\n              [100.901799, 39.030053],\n              [100.875314, 39.002619],\n              [100.835278, 39.025869],\n              [100.829118, 39.075133],\n              [100.864227, 39.106719],\n              [100.842669, 39.199999],\n              [100.842053, 39.405614],\n              [100.707778, 39.404689],\n              [100.606764, 39.387577],\n              [100.498975, 39.400527],\n              [100.500823, 39.481408],\n              [100.44354, 39.485565],\n              [100.326512, 39.509118],\n              [100.301258, 39.572345],\n              [100.314193, 39.606935],\n              [100.250135, 39.685274],\n              [100.128179, 39.702312],\n              [100.040716, 39.757083],\n              [99.958796, 39.769504],\n              [99.904593, 39.785601],\n              [99.822058, 39.860063],\n              [99.672384, 39.888079],\n              [99.469124, 39.875221],\n              [99.440791, 39.885783],\n              [99.459885, 39.898181],\n              [99.491298, 39.884406],\n              [99.533182, 39.891753],\n              [99.714268, 39.972061],\n              [99.751225, 40.006909],\n              [99.841152, 40.013326],\n              [99.927383, 40.063727],\n              [99.955716, 40.150695],\n              [100.007455, 40.20008],\n              [100.169447, 40.277743],\n              [100.169447, 40.541131],\n              [100.242744, 40.618855],\n              [100.237201, 40.716905],\n              [100.224882, 40.727337],\n              [100.107853, 40.875475],\n              [100.057346, 40.908049],\n              [99.985897, 40.909858],\n              [99.673, 40.93292],\n              [99.565827, 40.846961],\n              [99.174705, 40.858278],\n              [99.172858, 40.747289],\n              [99.12543, 40.715091],\n              [99.102025, 40.676522],\n              [99.041662, 40.693767],\n              [98.984996, 40.782644],\n              [98.790975, 40.705564],\n              [98.80699, 40.660181],\n              [98.802678, 40.607043],\n              [98.762642, 40.639748],\n              [98.72199, 40.657911],\n              [98.689345, 40.691952],\n              [98.668403, 40.773128],\n              [98.569853, 40.746836],\n              [98.627751, 40.677884],\n              [98.344419, 40.568413],\n              [98.333332, 40.918903],\n              [98.25018, 40.93925],\n              [98.184891, 40.988056],\n              [98.142391, 41.001607],\n              [97.971776, 41.09774],\n              [97.903407, 41.168057],\n              [97.629314, 41.440498],\n              [97.613915, 41.477276],\n              [97.84674, 41.656379],\n              [97.653335, 41.986856],\n              [97.500582, 42.243894],\n              [97.371235, 42.457076],\n              [97.172903, 42.795257],\n              [96.968411, 42.756161],\n              [96.742361, 42.75704],\n              [96.386348, 42.727592],\n              [96.166458, 42.623314],\n              [96.103632, 42.604375],\n              [96.072219, 42.569566],\n              [96.02356, 42.542675],\n              [96.0174, 42.482239],\n              [95.978596, 42.436762],\n              [96.06606, 42.414674],\n              [96.042038, 42.352787],\n              [96.040806, 42.326688],\n              [96.178161, 42.21775],\n              [96.077147, 42.149457],\n              [96.13874, 42.05399],\n              [96.137509, 42.019765],\n              [96.117183, 41.985966],\n              [96.054973, 41.936124],\n              [95.998306, 41.906289],\n              [95.855408, 41.849699],\n              [95.801206, 41.848361],\n              [95.759322, 41.835878],\n              [95.65646, 41.826067],\n              [95.57146, 41.796181],\n              [95.445193, 41.719841],\n              [95.39407, 41.693481],\n              [95.335556, 41.644305],\n              [95.299831, 41.565994],\n              [95.247476, 41.61344],\n              [95.194505, 41.694821],\n              [95.199433, 41.719395],\n              [95.16494, 41.735474],\n              [95.135991, 41.772976],\n              [95.110738, 41.768513],\n              [95.011572, 41.726541],\n              [94.969072, 41.718948],\n              [94.861898, 41.668451],\n              [94.809543, 41.619256],\n              [94.750413, 41.538227],\n              [94.534219, 41.505966],\n              [94.184365, 41.268444],\n              [94.01067, 41.114875],\n              [93.908424, 40.983539],\n              [93.809874, 40.879548],\n              [93.820961, 40.793519],\n              [93.760599, 40.664721],\n              [93.506216, 40.648376],\n              [92.928465, 40.572504],\n              [92.920458, 40.391792],\n              [92.906907, 40.310609],\n              [92.796654, 40.153897],\n              [92.745531, 39.868331],\n              [92.687632, 39.657174],\n              [92.639589, 39.514196],\n              [92.52564, 39.368611],\n              [92.378431, 39.258411],\n              [92.339011, 39.236628],\n              [92.343938, 39.146181],\n              [92.366112, 39.096037],\n              [92.366728, 39.059335],\n              [92.41046, 39.03842],\n              [92.459119, 39.042604],\n              [92.459119, 39.063982],\n              [92.489916, 39.099753],\n              [92.545966, 39.111362],\n              [92.659299, 39.109969],\n              [92.765857, 39.136898],\n              [92.866871, 39.138754],\n              [92.889045, 39.160103],\n              [92.938936, 39.169848],\n              [92.978356, 39.143396],\n              [93.043029, 39.146645],\n              [93.115094, 39.17959],\n              [93.142196, 39.160567],\n              [93.131725, 39.108112],\n              [93.165601, 39.090928],\n              [93.198246, 39.045857],\n              [93.179152, 38.923977],\n              [93.237666, 38.916062],\n              [93.274007, 38.896036],\n              [93.453245, 38.915596],\n              [93.729186, 38.924443],\n              [93.834511, 38.867618],\n              [93.884403, 38.867618],\n              [93.884403, 38.826136],\n              [93.769838, 38.821007],\n              [93.756287, 38.807484],\n              [93.773533, 38.771099],\n              [93.800019, 38.750566],\n              [93.885018, 38.720689],\n              [93.95154, 38.715086],\n              [93.973098, 38.724891],\n              [94.281067, 38.7599],\n              [94.370379, 38.7627],\n              [94.511429, 38.445142],\n              [94.527443, 38.425922],\n              [94.527443, 38.365416],\n              [94.56132, 38.351807],\n              [94.582878, 38.36917],\n              [94.672805, 38.386998],\n              [94.812623, 38.385591],\n              [94.861282, 38.393565],\n              [94.884072, 38.414669],\n              [94.973999, 38.430142],\n              [95.045448, 38.418889],\n              [95.072549, 38.402476],\n              [95.122441, 38.417014],\n              [95.140919, 38.392158],\n              [95.185266, 38.379492],\n              [95.209904, 38.327868],\n              [95.229614, 38.330685],\n              [95.259179, 38.302981],\n              [95.315846, 38.318947],\n              [95.408236, 38.300163],\n              [95.440881, 38.310965],\n              [95.455664, 38.291709],\n              [95.487693, 38.314721],\n              [95.51849, 38.294997],\n              [95.585011, 38.343359],\n              [95.608417, 38.339134],\n              [95.671858, 38.388405],\n              [95.703887, 38.400131],\n              [95.723597, 38.378554],\n              [95.775952, 38.356031],\n              [95.83693, 38.344298],\n              [95.852945, 38.287481],\n              [95.89606, 38.2903],\n              [95.932401, 38.259291],\n              [95.93856, 38.237202],\n              [96.006929, 38.207582],\n              [96.06606, 38.173245],\n              [96.109175, 38.187358],\n              [96.221892, 38.149246],\n              [96.252689, 38.167599],\n              [96.264392, 38.145952],\n              [96.313051, 38.161952],\n              [96.301964, 38.183124],\n              [96.335841, 38.246132],\n              [96.378341, 38.277146],\n              [96.46334, 38.277616],\n              [96.665369, 38.23015],\n              [96.655514, 38.295936],\n              [96.638883, 38.307208],\n              [96.626564, 38.356031],\n              [96.698013, 38.422172],\n              [96.707868, 38.459203],\n              [96.6666, 38.483567],\n              [96.706637, 38.505582],\n              [96.780549, 38.504177],\n              [96.800259, 38.52759],\n              [96.767614, 38.552399],\n              [96.808882, 38.582346],\n              [96.7941, 38.608072],\n              [96.847071, 38.599186],\n              [96.876636, 38.580475],\n              [96.961019, 38.558015],\n              [97.055874, 38.594508],\n              [97.047251, 38.653888],\n              [97.057722, 38.67258],\n              [97.009063, 38.702477],\n              [97.023229, 38.755699],\n              [97.00044, 38.7613],\n              [96.987505, 38.793025],\n              [96.993664, 38.834993],\n              [96.983809, 38.869016],\n              [96.940693, 38.90768],\n              [96.938846, 38.95563],\n              [96.965331, 39.017034],\n              [96.95794, 39.041674],\n              [96.969643, 39.097895],\n              [97.012142, 39.142004],\n              [96.962251, 39.198144],\n              [97.017686, 39.208347],\n              [97.060186, 39.19768],\n              [97.14149, 39.199999],\n              [97.220946, 39.193042],\n              [97.315185, 39.164744],\n              [97.347213, 39.167528],\n              [97.371235, 39.140611],\n              [97.401416, 39.146645],\n              [97.458698, 39.117863],\n              [97.504894, 39.076527],\n              [97.58127, 39.052364],\n              [97.679205, 39.010524],\n              [97.701379, 38.963076],\n              [97.828878, 38.93003],\n              [97.875689, 38.898365],\n              [98.009348, 38.85923],\n              [98.029058, 38.834061],\n              [98.068478, 38.816344],\n              [98.091884, 38.786495],\n              [98.167645, 38.840121],\n              [98.242173, 38.880664],\n              [98.235398, 38.918855],\n              [98.276666, 38.963541],\n              [98.287753, 38.992386],\n              [98.280977, 39.027263],\n              [98.316702, 39.040744],\n              [98.383839, 39.029588],\n              [98.401086, 39.001688],\n              [98.432498, 38.996107],\n              [98.428187, 38.976104],\n              [98.457752, 38.952838],\n              [98.526737, 38.95563],\n              [98.584635, 38.93003],\n              [98.624056, 38.959353],\n              [98.612353, 38.977035],\n              [98.661628, 38.993782],\n              [98.70536, 39.043533],\n              [98.730613, 39.057011],\n              [98.743548, 39.086747],\n              [98.816845, 39.085818],\n              [98.818076, 39.064911],\n              [98.886446, 39.040744],\n              [98.903076, 39.012384],\n              [98.951735, 38.987735],\n              [99.054597, 38.97657],\n              [99.107568, 38.951907],\n              [99.071843, 38.921184],\n              [99.068764, 38.896968],\n              [99.141445, 38.852706],\n              [99.222133, 38.788827],\n              [99.291118, 38.765966],\n              [99.361951, 38.718354],\n              [99.375502, 38.684727],\n              [99.412458, 38.665571],\n              [99.450646, 38.60433],\n              [99.501769, 38.612281],\n              [99.52887, 38.546314],\n              [99.585537, 38.498556],\n              [99.63974, 38.474666],\n              [99.65945, 38.449361],\n              [99.727203, 38.415607],\n              [99.758, 38.410449],\n              [99.826985, 38.370109],\n              [99.960028, 38.320825],\n              [100.001912, 38.315191],\n              [100.049955, 38.283254],\n              [100.071513, 38.284663],\n              [100.117093, 38.253652],\n              [100.126332, 38.231561],\n              [100.182998, 38.222158],\n              [100.159592, 38.291239],\n              [100.163904, 38.328337],\n              [100.136803, 38.33444],\n              [100.093071, 38.407166],\n              [100.022238, 38.432017],\n              [100.001296, 38.467169],\n              [100.025933, 38.507923],\n              [100.064122, 38.518694],\n              [100.086911, 38.492936],\n              [100.113397, 38.497151],\n              [100.163288, 38.461546],\n              [100.24028, 38.441861],\n              [100.259374, 38.366355],\n              [100.301874, 38.388405],\n              [100.331439, 38.337257],\n              [100.318505, 38.329276],\n              [100.396729, 38.293118],\n              [100.424446, 38.307208],\n              [100.432453, 38.275267],\n              [100.459555, 38.2654],\n              [100.474953, 38.288891],\n              [100.516837, 38.272448],\n              [100.545786, 38.247072],\n              [100.595061, 38.242372],\n              [100.619083, 38.26587],\n              [100.71517, 38.253652],\n              [100.752126, 38.238612],\n              [100.825423, 38.158658],\n              [100.860531, 38.148305],\n              [100.913502, 38.17889],\n              [100.93814, 38.16007],\n              [100.91843, 38.129006],\n              [100.922125, 38.084741],\n              [100.888864, 38.056001],\n              [100.895024, 38.013107],\n              [100.91843, 37.999432],\n              [100.964009, 38.011221],\n              [101.077342, 37.941874],\n              [101.103211, 37.946593],\n              [101.114298, 37.92016],\n              [101.152486, 37.891356],\n              [101.159262, 37.86821],\n              [101.202994, 37.84742],\n              [101.276906, 37.83655],\n              [101.362522, 37.791162],\n              [101.382848, 37.822369],\n              [101.459224, 37.86632],\n              [101.551615, 37.835604],\n              [101.598427, 37.827569],\n              [101.670491, 37.754264],\n              [101.659405, 37.733441],\n              [101.791832, 37.696041],\n              [101.815853, 37.654357],\n              [101.854657, 37.664781],\n              [101.873135, 37.686569],\n              [101.946432, 37.728235],\n              [101.998787, 37.724921],\n              [102.036359, 37.685149],\n              [102.048678, 37.651515],\n              [102.035128, 37.627819],\n              [102.102265, 37.582304],\n              [102.131214, 37.54625],\n              [102.103497, 37.482641],\n              [102.125055, 37.48549],\n              [102.176794, 37.458892],\n              [102.19712, 37.420403],\n              [102.299981, 37.391404],\n              [102.29875, 37.370004],\n              [102.368351, 37.327662],\n              [102.428097, 37.308624],\n              [102.419474, 37.294343],\n              [102.45335, 37.271487],\n              [102.457662, 37.248147],\n              [102.490307, 37.223371],\n              [102.533422, 37.217176],\n              [102.578386, 37.17284],\n              [102.599944, 37.174748],\n              [102.642444, 37.099845],\n              [102.583314, 37.104618],\n              [102.488459, 37.078362],\n              [102.506321, 37.019134],\n              [102.450271, 36.968467],\n              [102.499546, 36.954599],\n              [102.526031, 36.928291],\n              [102.56114, 36.91968],\n              [102.587009, 36.869904],\n              [102.639364, 36.852666],\n              [102.720052, 36.767858],\n              [102.692335, 36.775528],\n              [102.639364, 36.732853],\n              [102.612879, 36.738129],\n              [102.601176, 36.710307],\n              [102.630741, 36.650793],\n              [102.684328, 36.619097],\n              [102.724364, 36.613813],\n              [102.714509, 36.599401],\n              [102.761936, 36.568645],\n              [102.734219, 36.562396],\n              [102.753313, 36.525855],\n              [102.793349, 36.497957],\n              [102.771791, 36.47438],\n              [102.829689, 36.365544],\n              [102.831537, 36.365544],\n              [102.838928, 36.345783],\n              [102.836465, 36.344819],\n              [102.845704, 36.331803],\n              [102.896827, 36.331803],\n              [102.922696, 36.298047],\n              [103.024942, 36.256556],\n              [103.021246, 36.232906],\n              [103.066826, 36.216974],\n              [103.048964, 36.199107],\n              [102.986754, 36.193312],\n              [102.965812, 36.151765],\n              [102.948566, 36.150798],\n              [102.941174, 36.104877],\n              [102.882044, 36.082632],\n              [102.932551, 36.048285],\n              [102.968276, 36.044414],\n              [102.951645, 36.021667],\n              [102.971971, 35.995525],\n              [102.942406, 35.92674],\n              [102.954725, 35.858864],\n              [102.94487, 35.829757],\n              [102.914073, 35.845282],\n              [102.81737, 35.850133],\n              [102.787189, 35.862745],\n              [102.739146, 35.821023],\n              [102.715125, 35.815685],\n              [102.686175, 35.771996],\n              [102.707733, 35.70496],\n              [102.744074, 35.657807],\n              [102.7644, 35.653431],\n              [102.763168, 35.612086],\n              [102.808747, 35.560496],\n              [102.746537, 35.545403],\n              [102.729291, 35.523487],\n              [102.782878, 35.527871],\n              [102.743458, 35.494745],\n              [102.695414, 35.528358],\n              [102.570995, 35.548324],\n              [102.531575, 35.580455],\n              [102.503241, 35.585322],\n              [102.49893, 35.545403],\n              [102.437952, 35.455268],\n              [102.447807, 35.437229],\n              [102.408387, 35.409431],\n              [102.314764, 35.434303],\n              [102.293822, 35.424063],\n              [102.287663, 35.36552],\n              [102.317844, 35.343067],\n              [102.311684, 35.31426],\n              [102.280887, 35.303028],\n              [102.3123, 35.282512],\n              [102.370199, 35.263946],\n              [102.365887, 35.235599],\n              [102.404075, 35.179366],\n              [102.346793, 35.164201],\n              [102.310452, 35.128967],\n              [102.29567, 35.071681],\n              [102.252554, 35.048657],\n              [102.218062, 35.057475],\n              [102.211286, 35.034937],\n              [102.176178, 35.032977],\n              [102.157699, 35.010923],\n              [102.133678, 35.014844],\n              [102.094874, 34.986901],\n              [102.048062, 34.910868],\n              [102.068388, 34.887798],\n              [101.985852, 34.90007],\n              [101.916867, 34.873561],\n              [101.923027, 34.835746],\n              [101.917483, 34.705964],\n              [101.919947, 34.621791],\n              [101.934729, 34.58731],\n              [101.956287, 34.582876],\n              [101.97415, 34.548871],\n              [102.001867, 34.538519],\n              [102.093026, 34.536547],\n              [102.139837, 34.50351],\n              [102.155852, 34.507456],\n              [102.169402, 34.457631],\n              [102.205743, 34.407777],\n              [102.259329, 34.355917],\n              [102.237156, 34.34307],\n              [102.237156, 34.34307],\n              [102.186649, 34.352952],\n              [102.149692, 34.271885],\n              [102.067772, 34.293642],\n              [102.062229, 34.227858],\n              [102.01357, 34.218456],\n              [102.030816, 34.190739],\n              [102.003099, 34.162022],\n              [101.965526, 34.167469],\n              [101.955055, 34.109514],\n              [101.897773, 34.133791],\n              [101.874367, 34.130323],\n              [101.851578, 34.153108],\n              [101.836795, 34.124378],\n              [101.788136, 34.131809],\n              [101.764114, 34.122892],\n              [101.736397, 34.080275],\n              [101.718535, 34.083249],\n              [101.703136, 34.119424],\n              [101.674187, 34.110506],\n              [101.6206, 34.178857],\n              [101.53868, 34.212022],\n              [101.492485, 34.195689],\n              [101.482014, 34.218951],\n              [101.417956, 34.227858],\n              [101.369913, 34.248143],\n              [101.327413, 34.24468],\n              [101.325565, 34.268423],\n              [101.268899, 34.278808],\n              [101.228863, 34.298586],\n              [101.235022, 34.325279],\n              [101.193754, 34.336646],\n              [101.178356, 34.320831],\n              [101.098284, 34.329233],\n              [101.054552, 34.322808],\n              [100.986799, 34.374689],\n              [100.951074, 34.38358],\n              [100.895024, 34.375183],\n              [100.868538, 34.332693],\n              [100.821727, 34.317371],\n              [100.798321, 34.260014],\n              [100.809408, 34.247153],\n              [100.764445, 34.178857],\n              [100.806329, 34.155584],\n              [100.848828, 34.089692],\n              [100.870386, 34.083744],\n              [100.880857, 34.036644],\n              [100.93506, 33.990013],\n              [100.927669, 33.975126],\n              [100.965857, 33.946832],\n              [100.994806, 33.891707],\n              [101.023139, 33.896178],\n              [101.054552, 33.863386],\n              [101.153718, 33.8445],\n              [101.153102, 33.823124],\n              [101.190675, 33.791796],\n              [101.186363, 33.741051],\n              [101.162957, 33.719649],\n              [101.177124, 33.685295],\n              [101.166653, 33.659894],\n              [101.217776, 33.669856],\n              [101.23687, 33.685793],\n              [101.302776, 33.657902],\n              [101.385312, 33.644949],\n              [101.424732, 33.655411],\n              [101.428427, 33.680315],\n              [101.501724, 33.702723],\n              [101.58426, 33.674339],\n              [101.585492, 33.645448],\n              [101.616905, 33.598603],\n              [101.611977, 33.565199],\n              [101.622448, 33.502343],\n              [101.718535, 33.494857],\n              [101.748716, 33.505337],\n              [101.769042, 33.538765],\n              [101.783208, 33.556721],\n              [101.831252, 33.554726],\n              [101.844186, 33.602591],\n              [101.884222, 33.578163],\n              [101.907012, 33.539264],\n              [101.906396, 33.48188],\n              [101.946432, 33.442937],\n              [101.915635, 33.425957],\n              [101.887302, 33.383991],\n              [101.877447, 33.314502],\n              [101.769658, 33.26898],\n              [101.770274, 33.248962],\n              [101.83002, 33.213921],\n              [101.841723, 33.184876],\n              [101.825708, 33.119239],\n              [101.865744, 33.103198],\n              [101.887302, 33.135778],\n              [101.921795, 33.153817],\n              [101.935345, 33.186879],\n              [101.99386, 33.1999],\n              [102.054838, 33.189884],\n              [102.08933, 33.204908],\n              [102.08933, 33.227439],\n              [102.117047, 33.288492],\n              [102.144765, 33.273983],\n              [102.160163, 33.242956],\n              [102.200815, 33.223434],\n              [102.217446, 33.247961],\n              [102.192192, 33.337005],\n              [102.218062, 33.349503],\n              [102.258098, 33.409472],\n              [102.296286, 33.413969],\n              [102.310452, 33.397982],\n              [102.368967, 33.41247],\n              [102.392988, 33.404477],\n              [102.447807, 33.454922],\n              [102.462589, 33.449429],\n              [102.461358, 33.501345],\n              [102.446575, 33.53228],\n              [102.477988, 33.543254],\n              [102.440416, 33.574673],\n              [102.346793, 33.605582],\n              [102.31538, 33.665374],\n              [102.342481, 33.725622],\n              [102.284583, 33.719151],\n              [102.324619, 33.754486],\n              [102.296286, 33.783838],\n              [102.243315, 33.786823],\n              [102.261177, 33.821136],\n              [102.25317, 33.861399],\n              [102.136142, 33.965199],\n              [102.16817, 33.983066],\n              [102.226069, 33.963214],\n              [102.248858, 33.98654],\n              [102.287047, 33.977607],\n              [102.315996, 33.993983],\n              [102.345561, 33.969666],\n              [102.392372, 33.971651],\n              [102.406539, 34.033172],\n              [102.437336, 34.087214],\n              [102.471213, 34.072839],\n              [102.511865, 34.086222],\n              [102.615958, 34.099604],\n              [102.649219, 34.080275],\n              [102.655994, 34.113478],\n              [102.598712, 34.14766],\n              [102.651067, 34.165983],\n              [102.664002, 34.192719],\n              [102.694799, 34.198659],\n              [102.728675, 34.235774],\n              [102.779798, 34.236764],\n              [102.798276, 34.272874],\n              [102.856791, 34.270895],\n              [102.85987, 34.301058],\n              [102.911609, 34.312923],\n              [102.949181, 34.292159],\n              [102.977515, 34.252595],\n              [102.973203, 34.205588],\n              [103.005848, 34.184798],\n              [103.052043, 34.195194],\n              [103.100087, 34.181828],\n              [103.124108, 34.162022],\n              [103.121644, 34.112487],\n              [103.178927, 34.079779],\n              [103.129652, 34.065899],\n              [103.119797, 34.03466],\n              [103.147514, 34.036644],\n              [103.157369, 33.998944],\n              [103.120413, 33.953286],\n              [103.1315, 33.931937],\n              [103.16476, 33.929454],\n              [103.181391, 33.900649],\n              [103.153673, 33.819147],\n              [103.165376, 33.805721],\n              [103.228202, 33.79478],\n              [103.24976, 33.814175],\n              [103.284868, 33.80224],\n              [103.278709, 33.774387],\n              [103.35447, 33.743539],\n              [103.434542, 33.752993],\n              [103.464723, 33.80224],\n              [103.518309, 33.807213],\n              [103.545411, 33.719649],\n              [103.520157, 33.678323],\n              [103.552186, 33.671351],\n              [103.563889, 33.699735],\n              [103.593454, 33.716164],\n              [103.645809, 33.708697],\n              [103.667983, 33.685793],\n              [103.690772, 33.69376],\n              [103.778236, 33.658898],\n              [103.861388, 33.682307],\n              [103.980264, 33.670852],\n              [104.046169, 33.686291],\n              [104.103452, 33.663381],\n              [104.176749, 33.5996],\n              [104.155191, 33.542755],\n              [104.180444, 33.472895],\n              [104.213089, 33.446932],\n              [104.22048, 33.404477],\n              [104.272219, 33.391486],\n              [104.292545, 33.336505],\n              [104.373849, 33.345004],\n              [104.420045, 33.327004],\n              [104.386168, 33.298497],\n              [104.333813, 33.315502],\n              [104.303632, 33.304499],\n              [104.323958, 33.26898],\n              [104.32827, 33.223934],\n              [104.351059, 33.158828],\n              [104.378161, 33.109214],\n              [104.337509, 33.038002],\n              [104.391711, 33.035493],\n              [104.426204, 33.010906],\n              [104.383704, 32.994343],\n              [104.378161, 32.953174],\n              [104.345516, 32.940117],\n              [104.288234, 32.942628],\n              [104.277147, 32.90244],\n              [104.294393, 32.835586],\n              [104.363994, 32.822511],\n              [104.458849, 32.748551],\n              [104.51182, 32.753585],\n              [104.526602, 32.728416],\n              [104.582653, 32.722374],\n              [104.592508, 32.695685],\n              [104.643015, 32.661935],\n              [104.696601, 32.673522],\n              [104.739717, 32.635228],\n              [104.795768, 32.643292],\n              [104.820405, 32.662943],\n              [104.845659, 32.653873],\n              [104.881999, 32.600951],\n              [104.925115, 32.607505],\n              [105.026745, 32.650346],\n              [105.0791, 32.637244],\n              [105.111128, 32.593893],\n              [105.185041, 32.617587],\n              [105.215222, 32.63674],\n              [105.219534, 32.666469],\n              [105.263265, 32.652362],\n              [105.297758, 32.656897],\n              [105.347033, 32.68259],\n              [105.368591, 32.712807],\n              [105.448663, 32.732946],\n              [105.454207, 32.767173],\n              [105.427721, 32.784281],\n              [105.396308, 32.85067],\n              [105.396308, 32.85067],\n              [105.38091, 32.876307],\n              [105.408011, 32.885857],\n              [105.414171, 32.922034],\n              [105.467757, 32.930071],\n              [105.49917, 32.911986],\n              [105.528119, 32.919019],\n              [105.565692, 32.906962],\n              [105.590329, 32.87681],\n              [105.638373, 32.879323],\n              [105.656851, 32.895405],\n              [105.735691, 32.905454],\n              [105.82685, 32.950663],\n              [105.861959, 32.939112],\n              [105.917393, 32.993841],\n              [105.926632, 33.042517],\n              [105.914929, 33.066092],\n              [105.934639, 33.112221],\n              [105.923552, 33.147805],\n              [105.897067, 33.146803],\n              [105.93156, 33.178365],\n              [105.968516, 33.154318],\n              [105.965436, 33.204407],\n              [105.917393, 33.237951],\n              [105.862574, 33.234447],\n              [105.799133, 33.258471],\n              [105.791741, 33.278486],\n              [105.752937, 33.291994],\n              [105.755401, 33.329004],\n              [105.709822, 33.382991],\n              [105.827466, 33.379993],\n              [105.837937, 33.410971],\n              [105.831162, 33.451926],\n              [105.842248, 33.489866],\n              [105.871198, 33.511325],\n              [105.902611, 33.556222],\n              [105.940183, 33.570684],\n              [105.971596, 33.613058],\n              [106.047356, 33.610067],\n              [106.086776, 33.617045],\n              [106.117573, 33.602591],\n              [106.108334, 33.569686],\n              [106.187174, 33.546746],\n              [106.237681, 33.564201],\n              [106.303587, 33.604585],\n              [106.35163, 33.587137],\n              [106.384891, 33.612061],\n              [106.447101, 33.613058],\n              [106.456956, 33.532779],\n              [106.540108, 33.512822],\n              [106.58076, 33.576169],\n              [106.575832, 33.631497],\n              [106.534564, 33.695254],\n              [106.482825, 33.707203],\n              [106.488369, 33.757969],\n              [106.461883, 33.789807],\n              [106.491448, 33.834559],\n              [106.475434, 33.875809],\n              [106.428007, 33.866368],\n              [106.41076, 33.909093],\n              [106.474202, 33.970659],\n              [106.471738, 34.024244],\n              [106.505615, 34.056479],\n              [106.501919, 34.105055],\n              [106.560434, 34.109514],\n              [106.585071, 34.149641],\n              [106.55797, 34.229837],\n              [106.5321, 34.254079],\n              [106.496376, 34.238248],\n              [106.526557, 34.292159],\n              [106.577064, 34.280786],\n              [106.589383, 34.253584],\n              [106.63373, 34.260014],\n              [106.652825, 34.24369],\n              [106.68239, 34.256057],\n              [106.705179, 34.299575],\n              [106.691013, 34.337635],\n              [106.717498, 34.369255],\n              [106.638042, 34.391481],\n              [106.610941, 34.454177],\n              [106.558586, 34.48822],\n              [106.513622, 34.498085],\n              [106.514238, 34.511894],\n              [106.455108, 34.531617],\n              [106.334384, 34.517811],\n              [106.341159, 34.568093],\n              [106.314058, 34.578934],\n              [106.419384, 34.643458],\n              [106.471122, 34.634102],\n              [106.442173, 34.675455],\n              [106.456956, 34.703996],\n              [106.487137, 34.715311],\n              [106.505615, 34.746789],\n              [106.539492, 34.745805],\n              [106.575216, 34.769897],\n              [106.550579, 34.82936],\n              [106.556122, 34.861285],\n              [106.527789, 34.876507],\n              [106.493296, 34.941289],\n              [106.484673, 34.983959],\n              [106.494528, 35.006021],\n              [106.494528, 35.006021],\n              [106.52163, 35.027587],\n              [106.541956, 35.083925],\n              [106.577064, 35.089312],\n              [106.615252, 35.071191],\n              [106.706411, 35.081966],\n              [106.710723, 35.100574],\n              [106.838222, 35.080007],\n              [106.901664, 35.094698],\n              [106.950323, 35.066782],\n              [106.990975, 35.068252],\n              [107.012533, 35.029547],\n              [107.08275, 35.024156],\n              [107.089526, 34.976604],\n              [107.119707, 34.950119],\n              [107.162206, 34.944233],\n              [107.189308, 34.893198],\n              [107.252749, 34.880925],\n              [107.286626, 34.931968],\n              [107.350068, 34.93393],\n              [107.369162, 34.917738],\n              [107.400575, 34.932949],\n              [107.455394, 34.916757],\n              [107.523763, 34.909886],\n              [107.564415, 34.968757],\n              [107.619849, 34.964834],\n              [107.638943, 34.935402],\n              [107.675284, 34.9511],\n              [107.741805, 34.953553],\n              [107.842203, 34.979056],\n              [107.863145, 34.999158],\n              [107.846515, 35.024646],\n              [107.814486, 35.024646],\n              [107.773218, 35.060904],\n              [107.773218, 35.060904],\n              [107.769523, 35.064333],\n              [107.769523, 35.064333],\n              [107.727639, 35.120157],\n              [107.715936, 35.168114],\n              [107.686371, 35.218],\n              [107.652494, 35.244886],\n              [107.667277, 35.257104],\n              [107.737494, 35.267366],\n              [107.745501, 35.311819],\n              [107.841587, 35.276649],\n              [107.867457, 35.256127],\n              [107.960464, 35.263457],\n              [107.949993, 35.245375],\n              [108.049159, 35.253683],\n              [108.094739, 35.280069],\n              [108.174811, 35.304981],\n              [108.221622, 35.296678],\n              [108.239484, 35.256127],\n              [108.296767, 35.267855],\n              [108.345426, 35.300586],\n              [108.36144, 35.279581],\n              [108.48894, 35.275184],\n              [108.547454, 35.304981],\n              [108.583178, 35.294724],\n              [108.614591, 35.328909],\n              [108.61028, 35.355271],\n              [108.631222, 35.418698],\n              [108.605968, 35.503028],\n              [108.625678, 35.537124],\n              [108.618287, 35.557088],\n              [108.539447, 35.605761],\n              [108.517889, 35.699615],\n              [108.533903, 35.746257],\n              [108.527744, 35.82442],\n              [108.499411, 35.872444],\n              [108.518505, 35.905414],\n              [108.562852, 35.921409],\n              [108.593649, 35.950967],\n              [108.652164, 35.94806],\n              [108.659555, 35.990683],\n              [108.688504, 36.021183],\n              [108.682345, 36.062316],\n              [108.712526, 36.138716],\n              [108.646004, 36.254143],\n              [108.641693, 36.359279],\n              [108.651548, 36.384818],\n              [108.618903, 36.433946],\n              [108.562852, 36.43876],\n              [108.510498, 36.47438],\n              [108.514809, 36.445501],\n              [108.495099, 36.422389],\n              [108.460606, 36.422871],\n              [108.408252, 36.45946],\n              [108.391621, 36.505654],\n              [108.365136, 36.519603],\n              [108.340498, 36.559032],\n              [108.262274, 36.549417],\n              [108.245644, 36.571048],\n              [108.210535, 36.577296],\n              [108.204992, 36.606607],\n              [108.204992, 36.606607],\n              [108.222854, 36.631105],\n              [108.1976, 36.630144],\n              [108.163724, 36.563839],\n              [108.092891, 36.587388],\n              [108.079956, 36.614294],\n              [108.060862, 36.592194],\n              [108.001732, 36.639269],\n              [108.02329, 36.647912],\n              [108.006659, 36.683435],\n              [107.938906, 36.655594],\n              [107.940754, 36.694953],\n              [107.914268, 36.720861],\n              [107.907493, 36.750118],\n              [107.866841, 36.766899],\n              [107.768291, 36.792783],\n              [107.742421, 36.811951],\n              [107.722095, 36.802367],\n              [107.670356, 36.83303],\n              [107.642023, 36.819137],\n              [107.5909, 36.836382],\n              [107.540393, 36.828718],\n              [107.533618, 36.867031],\n              [107.478183, 36.908196],\n              [107.365466, 36.905324],\n              [107.336517, 36.925899],\n              [107.310032, 36.912502],\n              [107.291554, 36.979463],\n              [107.291554, 36.979463],\n              [107.288474, 37.008143],\n              [107.288474, 37.008143],\n              [107.28601, 37.054963],\n              [107.268764, 37.099367],\n              [107.234887, 37.096503],\n              [107.181916, 37.143269],\n              [107.133873, 37.134681],\n              [107.095685, 37.115595],\n              [107.030395, 37.140883],\n              [107.031011, 37.108436],\n              [106.998367, 37.106527],\n              [106.905976, 37.151378],\n              [106.912135, 37.110345],\n              [106.891193, 37.098413],\n              [106.818512, 37.141838],\n              [106.776012, 37.158056],\n              [106.772933, 37.120367],\n              [106.750143, 37.09889],\n              [106.728585, 37.121321],\n              [106.687933, 37.12991],\n              [106.673151, 37.1113],\n              [106.6171, 37.135158],\n              [106.605397, 37.127524],\n              [106.645433, 37.064992],\n              [106.666991, 37.016745],\n              [106.646665, 37.000496],\n              [106.64297, 36.962729],\n              [106.594926, 36.967988],\n              [106.595542, 36.94025],\n              [106.540108, 36.984244],\n              [106.549347, 36.941685],\n              [106.601702, 36.918244],\n              [106.609709, 36.878521],\n              [106.609709, 36.878521],\n              [106.626955, 36.892403],\n              [106.637426, 36.867031],\n              [106.637426, 36.867031],\n              [106.657752, 36.820575],\n              [106.627571, 36.752995],\n              [106.644817, 36.72278],\n              [106.59431, 36.750118],\n              [106.514238, 36.715584],\n              [106.519782, 36.708868],\n              [106.519782, 36.708868],\n              [106.530869, 36.690154],\n              [106.490833, 36.685835],\n              [106.491448, 36.628703],\n              [106.444637, 36.624861],\n              [106.465579, 36.583063],\n              [106.444637, 36.557109],\n              [106.397826, 36.576816],\n              [106.392282, 36.556628],\n              [106.363949, 36.577296],\n              [106.37134, 36.549417],\n              [106.39721, 36.548455],\n              [106.455724, 36.496995],\n              [106.494528, 36.494589],\n              [106.523477, 36.468605],\n              [106.492064, 36.422389],\n              [106.510543, 36.379037],\n              [106.497608, 36.31348],\n              [106.470507, 36.306246],\n              [106.504383, 36.266207],\n              [106.54134, 36.25366],\n              [106.559202, 36.292259],\n              [106.647897, 36.259451],\n              [106.685469, 36.273445],\n              [106.698404, 36.244008],\n              [106.735976, 36.23725],\n              [106.772933, 36.212628],\n              [106.808657, 36.21118],\n              [106.833295, 36.229044],\n              [106.858548, 36.206834],\n              [106.858548, 36.206834],\n              [106.873947, 36.178338],\n              [106.873947, 36.178338],\n              [106.930613, 36.138716],\n              [106.925686, 36.115997],\n              [106.957715, 36.091337],\n              [106.940468, 36.064734],\n              [106.928149, 36.011502],\n              [106.94786, 35.988262],\n              [106.90228, 35.943699],\n              [106.93862, 35.952905],\n              [106.940468, 35.931101],\n              [106.912751, 35.93207],\n              [106.849925, 35.887476],\n              [106.927534, 35.810346],\n              [106.897353, 35.759856],\n              [106.868403, 35.771996],\n              [106.867171, 35.738485],\n              [106.819128, 35.7448],\n              [106.806193, 35.70982],\n              [106.750759, 35.725369],\n              [106.750759, 35.689408],\n              [106.674998, 35.728284],\n              [106.66268, 35.70739],\n              [106.633115, 35.714679],\n              [106.620796, 35.743829],\n              [106.595542, 35.727312],\n              [106.566593, 35.738971],\n              [106.506231, 35.737514]\n            ]\n          ],\n          [\n            [\n              [106.047356, 35.498155],\n              [106.048588, 35.488898],\n              [106.054132, 35.45478],\n              [106.071994, 35.463555],\n              [106.078769, 35.509848],\n              [106.047356, 35.498155]\n            ]\n          ],\n          [\n            [\n              [102.831537, 36.365544],\n              [102.829689, 36.365544],\n              [102.836465, 36.344819],\n              [102.838928, 36.345783],\n              [102.831537, 36.365544]\n            ]\n          ],\n          [\n            [\n              [106.073226, 35.447468],\n              [106.067682, 35.436254],\n              [106.073226, 35.420649],\n              [106.083081, 35.421624],\n              [106.073226, 35.447468]\n            ]\n          ],\n          [\n            [\n              [106.504383, 35.736057],\n              [106.506231, 35.737514],\n              [106.49268, 35.732656],\n              [106.498224, 35.732656],\n              [106.504383, 35.736057]\n            ]\n          ]\n        ]\n      }\n    },\n    {\n      \"type\": \"Feature\",\n      \"properties\": {\n        \"adcode\": 630000,\n        \"name\": \"青海省\",\n        \"center\": [101.778916, 36.623178],\n        \"centroid\": [96.043533, 35.726403],\n        \"childrenNum\": 8,\n        \"level\": \"province\",\n        \"parent\": { \"adcode\": 100000 },\n        \"subFeatureIndex\": 28,\n        \"acroutes\": [100000]\n      },\n      \"geometry\": {\n        \"type\": \"MultiPolygon\",\n        \"coordinates\": [\n          [\n            [\n              [102.829689, 36.365544],\n              [102.771791, 36.47438],\n              [102.793349, 36.497957],\n              [102.753313, 36.525855],\n              [102.734219, 36.562396],\n              [102.761936, 36.568645],\n              [102.714509, 36.599401],\n              [102.724364, 36.613813],\n              [102.684328, 36.619097],\n              [102.630741, 36.650793],\n              [102.601176, 36.710307],\n              [102.612879, 36.738129],\n              [102.639364, 36.732853],\n              [102.692335, 36.775528],\n              [102.720052, 36.767858],\n              [102.639364, 36.852666],\n              [102.587009, 36.869904],\n              [102.56114, 36.91968],\n              [102.526031, 36.928291],\n              [102.499546, 36.954599],\n              [102.450271, 36.968467],\n              [102.506321, 37.019134],\n              [102.488459, 37.078362],\n              [102.583314, 37.104618],\n              [102.642444, 37.099845],\n              [102.599944, 37.174748],\n              [102.578386, 37.17284],\n              [102.533422, 37.217176],\n              [102.490307, 37.223371],\n              [102.457662, 37.248147],\n              [102.45335, 37.271487],\n              [102.419474, 37.294343],\n              [102.428097, 37.308624],\n              [102.368351, 37.327662],\n              [102.29875, 37.370004],\n              [102.299981, 37.391404],\n              [102.19712, 37.420403],\n              [102.176794, 37.458892],\n              [102.125055, 37.48549],\n              [102.103497, 37.482641],\n              [102.131214, 37.54625],\n              [102.102265, 37.582304],\n              [102.035128, 37.627819],\n              [102.048678, 37.651515],\n              [102.036359, 37.685149],\n              [101.998787, 37.724921],\n              [101.946432, 37.728235],\n              [101.873135, 37.686569],\n              [101.854657, 37.664781],\n              [101.815853, 37.654357],\n              [101.791832, 37.696041],\n              [101.659405, 37.733441],\n              [101.670491, 37.754264],\n              [101.598427, 37.827569],\n              [101.551615, 37.835604],\n              [101.459224, 37.86632],\n              [101.382848, 37.822369],\n              [101.362522, 37.791162],\n              [101.276906, 37.83655],\n              [101.202994, 37.84742],\n              [101.159262, 37.86821],\n              [101.152486, 37.891356],\n              [101.114298, 37.92016],\n              [101.103211, 37.946593],\n              [101.077342, 37.941874],\n              [100.964009, 38.011221],\n              [100.91843, 37.999432],\n              [100.895024, 38.013107],\n              [100.888864, 38.056001],\n              [100.922125, 38.084741],\n              [100.91843, 38.129006],\n              [100.93814, 38.16007],\n              [100.913502, 38.17889],\n              [100.860531, 38.148305],\n              [100.825423, 38.158658],\n              [100.752126, 38.238612],\n              [100.71517, 38.253652],\n              [100.619083, 38.26587],\n              [100.595061, 38.242372],\n              [100.545786, 38.247072],\n              [100.516837, 38.272448],\n              [100.474953, 38.288891],\n              [100.459555, 38.2654],\n              [100.432453, 38.275267],\n              [100.424446, 38.307208],\n              [100.396729, 38.293118],\n              [100.318505, 38.329276],\n              [100.331439, 38.337257],\n              [100.301874, 38.388405],\n              [100.259374, 38.366355],\n              [100.24028, 38.441861],\n              [100.163288, 38.461546],\n              [100.113397, 38.497151],\n              [100.086911, 38.492936],\n              [100.064122, 38.518694],\n              [100.025933, 38.507923],\n              [100.001296, 38.467169],\n              [100.022238, 38.432017],\n              [100.093071, 38.407166],\n              [100.136803, 38.33444],\n              [100.163904, 38.328337],\n              [100.159592, 38.291239],\n              [100.182998, 38.222158],\n              [100.126332, 38.231561],\n              [100.117093, 38.253652],\n              [100.071513, 38.284663],\n              [100.049955, 38.283254],\n              [100.001912, 38.315191],\n              [99.960028, 38.320825],\n              [99.826985, 38.370109],\n              [99.758, 38.410449],\n              [99.727203, 38.415607],\n              [99.65945, 38.449361],\n              [99.63974, 38.474666],\n              [99.585537, 38.498556],\n              [99.52887, 38.546314],\n              [99.501769, 38.612281],\n              [99.450646, 38.60433],\n              [99.412458, 38.665571],\n              [99.375502, 38.684727],\n              [99.361951, 38.718354],\n              [99.291118, 38.765966],\n              [99.222133, 38.788827],\n              [99.141445, 38.852706],\n              [99.068764, 38.896968],\n              [99.071843, 38.921184],\n              [99.107568, 38.951907],\n              [99.054597, 38.97657],\n              [98.951735, 38.987735],\n              [98.903076, 39.012384],\n              [98.886446, 39.040744],\n              [98.818076, 39.064911],\n              [98.816845, 39.085818],\n              [98.743548, 39.086747],\n              [98.730613, 39.057011],\n              [98.70536, 39.043533],\n              [98.661628, 38.993782],\n              [98.612353, 38.977035],\n              [98.624056, 38.959353],\n              [98.584635, 38.93003],\n              [98.526737, 38.95563],\n              [98.457752, 38.952838],\n              [98.428187, 38.976104],\n              [98.432498, 38.996107],\n              [98.401086, 39.001688],\n              [98.383839, 39.029588],\n              [98.316702, 39.040744],\n              [98.280977, 39.027263],\n              [98.287753, 38.992386],\n              [98.276666, 38.963541],\n              [98.235398, 38.918855],\n              [98.242173, 38.880664],\n              [98.167645, 38.840121],\n              [98.091884, 38.786495],\n              [98.068478, 38.816344],\n              [98.029058, 38.834061],\n              [98.009348, 38.85923],\n              [97.875689, 38.898365],\n              [97.828878, 38.93003],\n              [97.701379, 38.963076],\n              [97.679205, 39.010524],\n              [97.58127, 39.052364],\n              [97.504894, 39.076527],\n              [97.458698, 39.117863],\n              [97.401416, 39.146645],\n              [97.371235, 39.140611],\n              [97.347213, 39.167528],\n              [97.315185, 39.164744],\n              [97.220946, 39.193042],\n              [97.14149, 39.199999],\n              [97.060186, 39.19768],\n              [97.017686, 39.208347],\n              [96.962251, 39.198144],\n              [97.012142, 39.142004],\n              [96.969643, 39.097895],\n              [96.95794, 39.041674],\n              [96.965331, 39.017034],\n              [96.938846, 38.95563],\n              [96.940693, 38.90768],\n              [96.983809, 38.869016],\n              [96.993664, 38.834993],\n              [96.987505, 38.793025],\n              [97.00044, 38.7613],\n              [97.023229, 38.755699],\n              [97.009063, 38.702477],\n              [97.057722, 38.67258],\n              [97.047251, 38.653888],\n              [97.055874, 38.594508],\n              [96.961019, 38.558015],\n              [96.876636, 38.580475],\n              [96.847071, 38.599186],\n              [96.7941, 38.608072],\n              [96.808882, 38.582346],\n              [96.767614, 38.552399],\n              [96.800259, 38.52759],\n              [96.780549, 38.504177],\n              [96.706637, 38.505582],\n              [96.6666, 38.483567],\n              [96.707868, 38.459203],\n              [96.698013, 38.422172],\n              [96.626564, 38.356031],\n              [96.638883, 38.307208],\n              [96.655514, 38.295936],\n              [96.665369, 38.23015],\n              [96.46334, 38.277616],\n              [96.378341, 38.277146],\n              [96.335841, 38.246132],\n              [96.301964, 38.183124],\n              [96.313051, 38.161952],\n              [96.264392, 38.145952],\n              [96.252689, 38.167599],\n              [96.221892, 38.149246],\n              [96.109175, 38.187358],\n              [96.06606, 38.173245],\n              [96.006929, 38.207582],\n              [95.93856, 38.237202],\n              [95.932401, 38.259291],\n              [95.89606, 38.2903],\n              [95.852945, 38.287481],\n              [95.83693, 38.344298],\n              [95.775952, 38.356031],\n              [95.723597, 38.378554],\n              [95.703887, 38.400131],\n              [95.671858, 38.388405],\n              [95.608417, 38.339134],\n              [95.585011, 38.343359],\n              [95.51849, 38.294997],\n              [95.487693, 38.314721],\n              [95.455664, 38.291709],\n              [95.440881, 38.310965],\n              [95.408236, 38.300163],\n              [95.315846, 38.318947],\n              [95.259179, 38.302981],\n              [95.229614, 38.330685],\n              [95.209904, 38.327868],\n              [95.185266, 38.379492],\n              [95.140919, 38.392158],\n              [95.122441, 38.417014],\n              [95.072549, 38.402476],\n              [95.045448, 38.418889],\n              [94.973999, 38.430142],\n              [94.884072, 38.414669],\n              [94.861282, 38.393565],\n              [94.812623, 38.385591],\n              [94.672805, 38.386998],\n              [94.582878, 38.36917],\n              [94.56132, 38.351807],\n              [94.527443, 38.365416],\n              [94.527443, 38.425922],\n              [94.511429, 38.445142],\n              [94.370379, 38.7627],\n              [94.281067, 38.7599],\n              [93.973098, 38.724891],\n              [93.95154, 38.715086],\n              [93.885018, 38.720689],\n              [93.800019, 38.750566],\n              [93.773533, 38.771099],\n              [93.756287, 38.807484],\n              [93.769838, 38.821007],\n              [93.884403, 38.826136],\n              [93.884403, 38.867618],\n              [93.834511, 38.867618],\n              [93.729186, 38.924443],\n              [93.453245, 38.915596],\n              [93.274007, 38.896036],\n              [93.237666, 38.916062],\n              [93.179152, 38.923977],\n              [93.198246, 39.045857],\n              [93.165601, 39.090928],\n              [93.131725, 39.108112],\n              [93.142196, 39.160567],\n              [93.115094, 39.17959],\n              [93.043029, 39.146645],\n              [92.978356, 39.143396],\n              [92.938936, 39.169848],\n              [92.889045, 39.160103],\n              [92.866871, 39.138754],\n              [92.765857, 39.136898],\n              [92.659299, 39.109969],\n              [92.545966, 39.111362],\n              [92.489916, 39.099753],\n              [92.459119, 39.063982],\n              [92.459119, 39.042604],\n              [92.41046, 39.03842],\n              [92.416003, 39.010524],\n              [92.380279, 38.999828],\n              [92.263866, 39.002153],\n              [92.197961, 38.983548],\n              [92.173323, 38.960749],\n              [92.10865, 38.963541],\n              [91.966368, 38.930961],\n              [91.880752, 38.899297],\n              [91.87952, 38.884391],\n              [91.806223, 38.872744],\n              [91.694738, 38.86622],\n              [91.681188, 38.852706],\n              [91.501333, 38.815411],\n              [91.446515, 38.813546],\n              [91.298689, 38.746365],\n              [91.242639, 38.752433],\n              [91.188436, 38.73096],\n              [90.992567, 38.695003],\n              [90.970394, 38.697806],\n              [90.899561, 38.679588],\n              [90.724634, 38.658094],\n              [90.65996, 38.674449],\n              [90.619308, 38.664636],\n              [90.645794, 38.635191],\n              [90.606374, 38.610878],\n              [90.608837, 38.594508],\n              [90.560794, 38.593573],\n              [90.525685, 38.561291],\n              [90.463476, 38.556611],\n              [90.465323, 38.521971],\n              [90.427135, 38.493873],\n              [90.353222, 38.482162],\n              [90.315034, 38.501835],\n              [90.248513, 38.491531],\n              [90.130868, 38.494341],\n              [90.111774, 38.477945],\n              [90.111774, 38.418889],\n              [90.129636, 38.400131],\n              [90.179528, 38.396848],\n              [90.137644, 38.340543],\n              [90.280542, 38.238142],\n              [90.352607, 38.233441],\n              [90.361846, 38.300163],\n              [90.401882, 38.311434],\n              [90.531229, 38.319886],\n              [90.516446, 38.207111],\n              [90.519526, 37.730601],\n              [90.579272, 37.720661],\n              [90.586663, 37.703144],\n              [90.643946, 37.696988],\n              [90.777605, 37.648672],\n              [90.820104, 37.613599],\n              [90.854597, 37.604117],\n              [90.882314, 37.575664],\n              [90.865684, 37.53059],\n              [90.911879, 37.519674],\n              [90.958075, 37.477891],\n              [91.019669, 37.493088],\n              [91.073256, 37.475992],\n              [91.099741, 37.447965],\n              [91.113292, 37.387124],\n              [91.136081, 37.355734],\n              [91.134849, 37.324331],\n              [91.194596, 37.273868],\n              [91.1909, 37.205737],\n              [91.280211, 37.163779],\n              [91.286371, 37.105095],\n              [91.303617, 37.083136],\n              [91.291298, 37.042544],\n              [91.303617, 37.012444],\n              [91.216153, 37.010054],\n              [91.181045, 37.025345],\n              [91.133618, 37.007665],\n              [91.126842, 36.978507],\n              [91.051698, 36.96751],\n              [91.036915, 36.929727],\n              [90.983944, 36.913459],\n              [90.924198, 36.921115],\n              [90.853981, 36.915373],\n              [90.758511, 36.825844],\n              [90.732025, 36.825844],\n              [90.727098, 36.755872],\n              [90.754815, 36.721341],\n              [90.720938, 36.708868],\n              [90.706156, 36.658955],\n              [90.730793, 36.655594],\n              [90.72217, 36.620058],\n              [90.741264, 36.585947],\n              [90.810865, 36.585466],\n              [90.831191, 36.55807],\n              [90.905104, 36.560474],\n              [91.011662, 36.539801],\n              [91.035683, 36.529703],\n              [91.039995, 36.474861],\n              [91.028292, 36.443093],\n              [91.051698, 36.433946],\n              [91.026444, 36.323607],\n              [91.07264, 36.299012],\n              [91.051698, 36.238215],\n              [91.096045, 36.219871],\n              [91.09235, 36.163844],\n              [91.124994, 36.115514],\n              [91.081263, 36.088436],\n              [90.979017, 36.106811],\n              [90.922966, 36.028927],\n              [90.850285, 36.016827],\n              [90.815793, 36.035703],\n              [90.776373, 36.086501],\n              [90.659344, 36.13485],\n              [90.613149, 36.126632],\n              [90.534925, 36.147899],\n              [90.478258, 36.13195],\n              [90.424055, 36.133883],\n              [90.325505, 36.159496],\n              [90.23681, 36.160462],\n              [90.198006, 36.187516],\n              [90.130252, 36.2078],\n              [90.145651, 36.239181],\n              [90.058188, 36.255591],\n              [90.043405, 36.276822],\n              [90.003369, 36.278752],\n              [90.028006, 36.258486],\n              [90.019999, 36.213594],\n              [89.997825, 36.168193],\n              [89.944855, 36.140649],\n              [89.941159, 36.067637],\n              [89.914058, 36.079246],\n              [89.819819, 36.080697],\n              [89.766848, 36.073925],\n              [89.711414, 36.093272],\n              [89.688624, 36.091337],\n              [89.605472, 36.038123],\n              [89.474893, 36.022151],\n              [89.417611, 36.044897],\n              [89.404676, 36.016827],\n              [89.434857, 35.992136],\n              [89.428082, 35.917531],\n              [89.489676, 35.903475],\n              [89.554965, 35.873414],\n              [89.550654, 35.856924],\n              [89.62395, 35.859349],\n              [89.654747, 35.848193],\n              [89.707718, 35.849163],\n              [89.778551, 35.861775],\n              [89.801957, 35.848193],\n              [89.767464, 35.799183],\n              [89.782863, 35.773453],\n              [89.747138, 35.7516],\n              [89.748986, 35.66267],\n              [89.726196, 35.648082],\n              [89.765616, 35.599922],\n              [89.75145, 35.580942],\n              [89.71203, 35.581915],\n              [89.699711, 35.544916],\n              [89.720037, 35.501566],\n              [89.740979, 35.507412],\n              [89.765, 35.482563],\n              [89.739131, 35.468429],\n              [89.685544, 35.416259],\n              [89.658443, 35.425526],\n              [89.619639, 35.412357],\n              [89.58761, 35.383575],\n              [89.497067, 35.361128],\n              [89.516161, 35.330862],\n              [89.494603, 35.298632],\n              [89.531559, 35.276161],\n              [89.48598, 35.256616],\n              [89.450255, 35.223867],\n              [89.46935, 35.214577],\n              [89.519241, 35.133862],\n              [89.579603, 35.118688],\n              [89.593153, 35.104491],\n              [89.59069, 35.057965],\n              [89.560509, 34.938836],\n              [89.578987, 34.895162],\n              [89.670146, 34.887798],\n              [89.707102, 34.919701],\n              [89.747138, 34.903506],\n              [89.78779, 34.921664],\n              [89.821051, 34.902033],\n              [89.814891, 34.86816],\n              [89.838913, 34.865705],\n              [89.867862, 34.81069],\n              [89.825978, 34.796931],\n              [89.799493, 34.743838],\n              [89.732356, 34.732035],\n              [89.72558, 34.660689],\n              [89.74837, 34.641981],\n              [89.798877, 34.628686],\n              [89.777935, 34.574499],\n              [89.814891, 34.548871],\n              [89.823515, 34.455657],\n              [89.819819, 34.420614],\n              [89.799493, 34.39642],\n              [89.820435, 34.369255],\n              [89.858623, 34.359375],\n              [89.86663, 34.324785],\n              [89.825362, 34.293642],\n              [89.838297, 34.263477],\n              [89.816739, 34.16945],\n              [89.789638, 34.150632],\n              [89.760073, 34.152613],\n              [89.756993, 34.124874],\n              [89.71203, 34.131809],\n              [89.655979, 34.097126],\n              [89.656595, 34.057966],\n              [89.635037, 34.049537],\n              [89.684928, 33.990013],\n              [89.688008, 33.959739],\n              [89.718805, 33.946832],\n              [89.73174, 33.921509],\n              [89.795181, 33.865374],\n              [89.837065, 33.868853],\n              [89.899891, 33.80771],\n              [89.942391, 33.801246],\n              [89.902355, 33.758467],\n              [89.907282, 33.741051],\n              [89.983659, 33.725622],\n              [89.981195, 33.70322],\n              [90.008296, 33.687785],\n              [89.984275, 33.612061],\n              [90.01076, 33.553728],\n              [90.083441, 33.525295],\n              [90.088984, 33.478885],\n              [90.107463, 33.460913],\n              [90.22018, 33.437943],\n              [90.246665, 33.423959],\n              [90.332896, 33.310501],\n              [90.363077, 33.279487],\n              [90.405577, 33.260473],\n              [90.490577, 33.264977],\n              [90.562642, 33.229441],\n              [90.627315, 33.180368],\n              [90.704308, 33.135778],\n              [90.740032, 33.142293],\n              [90.803474, 33.114227],\n              [90.88293, 33.120241],\n              [90.902024, 33.083143],\n              [90.927894, 33.120241],\n              [91.001807, 33.11573],\n              [91.037531, 33.098686],\n              [91.072024, 33.113224],\n              [91.147784, 33.07211],\n              [91.161335, 33.108712],\n              [91.18782, 33.106206],\n              [91.226624, 33.141792],\n              [91.261733, 33.141291],\n              [91.311624, 33.108211],\n              [91.370138, 33.100691],\n              [91.436044, 33.066092],\n              [91.49579, 33.109214],\n              [91.535826, 33.10019],\n              [91.55492, 33.060074],\n              [91.583253, 33.0375],\n              [91.664557, 33.012913],\n              [91.685499, 32.989324],\n              [91.752637, 32.969242],\n              [91.799448, 32.942126],\n              [91.839484, 32.948152],\n              [91.857962, 32.90244],\n              [91.896766, 32.907967],\n              [91.955897, 32.8205],\n              [92.018722, 32.829552],\n              [92.038432, 32.860725],\n              [92.101874, 32.860222],\n              [92.145606, 32.885857],\n              [92.205352, 32.866255],\n              [92.227526, 32.821003],\n              [92.193649, 32.801889],\n              [92.211511, 32.788306],\n              [92.198577, 32.754591],\n              [92.255243, 32.720863],\n              [92.310062, 32.751571],\n              [92.343938, 32.738484],\n              [92.355641, 32.764657],\n              [92.411076, 32.748048],\n              [92.459119, 32.76365],\n              [92.484372, 32.745028],\n              [92.56814, 32.73194],\n              [92.574916, 32.741001],\n              [92.634662, 32.720863],\n              [92.667922, 32.73194],\n              [92.686401, 32.76516],\n              [92.756618, 32.743014],\n              [92.789262, 32.719856],\n              [92.822523, 32.729926],\n              [92.866871, 32.698203],\n              [92.933392, 32.719353],\n              [92.964189, 32.714821],\n              [93.00053, 32.741001],\n              [93.019624, 32.737477],\n              [93.023935, 32.703239],\n              [93.069515, 32.626156],\n              [93.087993, 32.63674],\n              [93.159442, 32.644803],\n              [93.176688, 32.6705],\n              [93.210565, 32.655385],\n              [93.239514, 32.662439],\n              [93.260456, 32.62666],\n              [93.300492, 32.619604],\n              [93.308499, 32.580278],\n              [93.33868, 32.5712],\n              [93.385492, 32.525294],\n              [93.411977, 32.558086],\n              [93.4631, 32.556069],\n              [93.476651, 32.504603],\n              [93.501904, 32.503593],\n              [93.516687, 32.47583],\n              [93.618933, 32.522771],\n              [93.651577, 32.571705],\n              [93.721795, 32.578261],\n              [93.75136, 32.56313],\n              [93.820345, 32.549511],\n              [93.851142, 32.50965],\n              [93.861613, 32.466237],\n              [93.90904, 32.463207],\n              [93.960163, 32.484917],\n              [93.978641, 32.459672],\n              [94.03038, 32.448057],\n              [94.049474, 32.469771],\n              [94.091974, 32.463207],\n              [94.137554, 32.433915],\n              [94.176974, 32.454117],\n              [94.196684, 32.51621],\n              [94.250886, 32.51722],\n              [94.292154, 32.502584],\n              [94.294002, 32.519743],\n              [94.350053, 32.533871],\n              [94.371611, 32.524789],\n              [94.395016, 32.594397],\n              [94.435052, 32.562626],\n              [94.463386, 32.572209],\n              [94.459074, 32.599439],\n              [94.522516, 32.595909],\n              [94.591501, 32.640772],\n              [94.614291, 32.673522],\n              [94.638312, 32.645307],\n              [94.737479, 32.587338],\n              [94.762116, 32.526303],\n              [94.78737, 32.522266],\n              [94.80708, 32.486431],\n              [94.852043, 32.463712],\n              [94.889616, 32.472295],\n              [94.912405, 32.41573],\n              [94.944434, 32.404109],\n              [94.988166, 32.422802],\n              [95.057151, 32.395014],\n              [95.075013, 32.376315],\n              [95.075013, 32.376315],\n              [95.081789, 32.384907],\n              [95.153853, 32.386423],\n              [95.218527, 32.397035],\n              [95.228382, 32.363678],\n              [95.261643, 32.348006],\n              [95.193274, 32.332331],\n              [95.096571, 32.322217],\n              [95.079325, 32.279726],\n              [95.10581, 32.258979],\n              [95.20744, 32.297433],\n              [95.214216, 32.321712],\n              [95.241317, 32.3207],\n              [95.239469, 32.287315],\n              [95.270266, 32.194683],\n              [95.270266, 32.194683],\n              [95.31523, 32.148585],\n              [95.366968, 32.151118],\n              [95.367584, 32.178982],\n              [95.406389, 32.182021],\n              [95.440265, 32.157705],\n              [95.454432, 32.061898],\n              [95.421171, 32.033999],\n              [95.454432, 32.007613],\n              [95.395918, 32.001523],\n              [95.360809, 31.95939],\n              [95.3682, 31.92892],\n              [95.408852, 31.918761],\n              [95.406389, 31.896915],\n              [95.456896, 31.801853],\n              [95.480301, 31.795749],\n              [95.511714, 31.750468],\n              [95.546823, 31.73978],\n              [95.580083, 31.76726],\n              [95.634286, 31.782523],\n              [95.779648, 31.748941],\n              [95.823995, 31.68225],\n              [95.853561, 31.714329],\n              [95.846169, 31.736218],\n              [95.89914, 31.81711],\n              [95.983524, 31.816601],\n              [95.989067, 31.78761],\n              [96.064828, 31.720438],\n              [96.135661, 31.70211],\n              [96.148595, 31.686324],\n              [96.156603, 31.602769],\n              [96.207726, 31.598691],\n              [96.221892, 31.647613],\n              [96.245298, 31.657802],\n              [96.252073, 31.697527],\n              [96.222508, 31.733164],\n              [96.231131, 31.749959],\n              [96.178161, 31.775401],\n              [96.183088, 31.835924],\n              [96.202798, 31.841008],\n              [96.214501, 31.876589],\n              [96.188632, 31.904028],\n              [96.220044, 31.905553],\n              [96.253305, 31.929936],\n              [96.288414, 31.919777],\n              [96.389428, 31.919777],\n              [96.407906, 31.845583],\n              [96.435623, 31.796258],\n              [96.468884, 31.769804],\n              [96.519391, 31.74945],\n              [96.56805, 31.711783],\n              [96.615477, 31.737236],\n              [96.661057, 31.705674],\n              [96.691854, 31.722474],\n              [96.722651, 31.686833],\n              [96.778701, 31.675629],\n              [96.790404, 31.698545],\n              [96.840295, 31.720438],\n              [96.799027, 31.792188],\n              [96.765767, 31.819144],\n              [96.760223, 31.860325],\n              [96.794716, 31.869474],\n              [96.81073, 31.894375],\n              [96.776238, 31.935015],\n              [96.753448, 31.944156],\n              [96.742977, 32.001016],\n              [96.722651, 32.013195],\n              [96.824281, 32.007613],\n              [96.868629, 31.964975],\n              [96.863085, 31.996448],\n              [96.894498, 32.013703],\n              [96.941925, 31.986297],\n              [96.965947, 32.008628],\n              [96.935766, 32.048203],\n              [97.006599, 32.067984],\n              [97.028773, 32.04871],\n              [97.127323, 32.044145],\n              [97.169823, 32.032984],\n              [97.188301, 32.055304],\n              [97.214786, 32.042623],\n              [97.233881, 32.063927],\n              [97.201852, 32.090296],\n              [97.219714, 32.109054],\n              [97.258518, 32.072041],\n              [97.308409, 32.076605],\n              [97.293011, 32.096887],\n              [97.313953, 32.130342],\n              [97.271453, 32.139971],\n              [97.264062, 32.182527],\n              [97.299786, 32.294904],\n              [97.32196, 32.303503],\n              [97.371235, 32.273148],\n              [97.415583, 32.296421],\n              [97.424822, 32.322723],\n              [97.387865, 32.427349],\n              [97.341054, 32.440987],\n              [97.388481, 32.501575],\n              [97.334895, 32.514192],\n              [97.332431, 32.542448],\n              [97.3583, 32.563635],\n              [97.374315, 32.546484],\n              [97.411887, 32.575235],\n              [97.448843, 32.586833],\n              [97.463626, 32.55506],\n              [97.50243, 32.530844],\n              [97.540618, 32.536899],\n              [97.670582, 32.51722],\n              [97.684132, 32.530339],\n              [97.730944, 32.527312],\n              [97.700763, 32.53488],\n              [97.616995, 32.586329],\n              [97.607756, 32.614059],\n              [97.543698, 32.62162],\n              [97.535075, 32.638252],\n              [97.48272, 32.654377],\n              [97.42359, 32.70475],\n              [97.429133, 32.714318],\n              [97.386018, 32.77925],\n              [97.392793, 32.828546],\n              [97.376163, 32.886359],\n              [97.347829, 32.895907],\n              [97.375547, 32.956689],\n              [97.438372, 32.976271],\n              [97.523988, 32.988822],\n              [97.499966, 33.011408],\n              [97.542466, 33.035995],\n              [97.517213, 33.097683],\n              [97.487032, 33.107209],\n              [97.498119, 33.137783],\n              [97.487648, 33.168346],\n              [97.548626, 33.203907],\n              [97.607756, 33.263976],\n              [97.622538, 33.337005],\n              [97.676125, 33.341004],\n              [97.754349, 33.409972],\n              [97.674893, 33.432949],\n              [97.625618, 33.461412],\n              [97.552321, 33.465906],\n              [97.511669, 33.520805],\n              [97.523372, 33.577166],\n              [97.450075, 33.582152],\n              [97.415583, 33.605582],\n              [97.435293, 33.682307],\n              [97.418046, 33.728608],\n              [97.422974, 33.754984],\n              [97.406344, 33.795278],\n              [97.373083, 33.817655],\n              [97.371851, 33.842015],\n              [97.398336, 33.848477],\n              [97.395257, 33.889224],\n              [97.460546, 33.887236],\n              [97.503662, 33.912073],\n              [97.52214, 33.903133],\n              [97.601596, 33.929951],\n              [97.629314, 33.919523],\n              [97.660111, 33.956264],\n              [97.652719, 33.998448],\n              [97.70261, 34.036644],\n              [97.665654, 34.126855],\n              [97.766668, 34.158555],\n              [97.789458, 34.182818],\n              [97.789458, 34.182818],\n              [97.796849, 34.199154],\n              [97.796849, 34.199154],\n              [97.8104, 34.207568],\n              [97.898479, 34.209548],\n              [97.95453, 34.190739],\n              [98.028442, 34.122892],\n              [98.098043, 34.122892],\n              [98.158405, 34.107037],\n              [98.206449, 34.08424],\n              [98.258188, 34.083249],\n              [98.344419, 34.094648],\n              [98.399854, 34.085231],\n              [98.396774, 34.053008],\n              [98.428187, 34.029204],\n              [98.440506, 33.981577],\n              [98.415252, 33.956761],\n              [98.425723, 33.913066],\n              [98.407245, 33.867362],\n              [98.434962, 33.843009],\n              [98.463295, 33.848477],\n              [98.492861, 33.796272],\n              [98.494092, 33.768915],\n              [98.51873, 33.77389],\n              [98.539672, 33.746525],\n              [98.582788, 33.731595],\n              [98.610505, 33.682805],\n              [98.6567, 33.64744],\n              [98.61728, 33.637476],\n              [98.622824, 33.610067],\n              [98.652389, 33.595114],\n              [98.648077, 33.548741],\n              [98.678258, 33.522801],\n              [98.725686, 33.503341],\n              [98.742316, 33.477887],\n              [98.736157, 33.406975],\n              [98.779888, 33.370497],\n              [98.759562, 33.276985],\n              [98.802062, 33.270481],\n              [98.804526, 33.219428],\n              [98.858728, 33.150811],\n              [98.92217, 33.118738],\n              [98.967134, 33.115229],\n              [98.971445, 33.098185],\n              [99.014561, 33.081137],\n              [99.024416, 33.094675],\n              [99.090322, 33.079131],\n              [99.124814, 33.046028],\n              [99.196263, 33.035493],\n              [99.214741, 32.991332],\n              [99.235067, 32.982296],\n              [99.24677, 32.924043],\n              [99.268944, 32.878318],\n              [99.353944, 32.885354],\n              [99.376118, 32.899927],\n              [99.45311, 32.862233],\n              [99.558436, 32.839106],\n              [99.589233, 32.789312],\n              [99.640355, 32.790822],\n              [99.646515, 32.774721],\n              [99.700718, 32.76667],\n              [99.717964, 32.732443],\n              [99.760464, 32.769689],\n              [99.766623, 32.826032],\n              [99.791877, 32.883344],\n              [99.764159, 32.924545],\n              [99.788181, 32.956689],\n              [99.805427, 32.940619],\n              [99.851007, 32.941623],\n              [99.877492, 32.993339],\n              [99.877492, 33.045527],\n              [99.947709, 32.986814],\n              [99.956332, 32.948152],\n              [100.038252, 32.929066],\n              [100.029629, 32.895907],\n              [100.064738, 32.895907],\n              [100.123252, 32.837095],\n              [100.117093, 32.802392],\n              [100.139266, 32.724388],\n              [100.088143, 32.668988],\n              [100.109701, 32.640268],\n              [100.189773, 32.630692],\n              [100.208252, 32.606497],\n              [100.229809, 32.650346],\n              [100.231041, 32.696189],\n              [100.258759, 32.742511],\n              [100.339447, 32.719353],\n              [100.399193, 32.756101],\n              [100.378251, 32.698707],\n              [100.420135, 32.73194],\n              [100.450932, 32.694678],\n              [100.470026, 32.694678],\n              [100.516837, 32.632204],\n              [100.54517, 32.569687],\n              [100.603069, 32.553547],\n              [100.645568, 32.526303],\n              [100.657887, 32.546484],\n              [100.661583, 32.616075],\n              [100.673286, 32.628172],\n              [100.710242, 32.610026],\n              [100.71209, 32.645307],\n              [100.690532, 32.678056],\n              [100.77122, 32.643795],\n              [100.834046, 32.648835],\n              [100.887633, 32.632708],\n              [100.93198, 32.600447],\n              [100.956618, 32.621116],\n              [100.99727, 32.627668],\n              [101.030531, 32.660424],\n              [101.077342, 32.68259],\n              [101.124769, 32.658408],\n              [101.157414, 32.661431],\n              [101.22332, 32.725898],\n              [101.237486, 32.825026],\n              [101.223935, 32.855698],\n              [101.178356, 32.892892],\n              [101.124153, 32.909976],\n              [101.134624, 32.95217],\n              [101.129081, 32.989324],\n              [101.183899, 32.984304],\n              [101.171581, 33.009902],\n              [101.184515, 33.041514],\n              [101.146327, 33.056563],\n              [101.143863, 33.086151],\n              [101.169733, 33.10019],\n              [101.11553, 33.194893],\n              [101.124769, 33.221431],\n              [101.156798, 33.236449],\n              [101.182668, 33.26948],\n              [101.217776, 33.256469],\n              [101.297232, 33.262475],\n              [101.381616, 33.153316],\n              [101.393935, 33.157826],\n              [101.386543, 33.207412],\n              [101.403174, 33.225436],\n              [101.487557, 33.226938],\n              [101.515275, 33.192889],\n              [101.557775, 33.167344],\n              [101.633535, 33.101193],\n              [101.661252, 33.135778],\n              [101.653861, 33.162835],\n              [101.709912, 33.21292],\n              [101.735781, 33.279987],\n              [101.677883, 33.297497],\n              [101.64955, 33.323004],\n              [101.663716, 33.383991],\n              [101.695745, 33.433948],\n              [101.769042, 33.45592],\n              [101.777665, 33.533776],\n              [101.769042, 33.538765],\n              [101.748716, 33.505337],\n              [101.718535, 33.494857],\n              [101.622448, 33.502343],\n              [101.611977, 33.565199],\n              [101.616905, 33.598603],\n              [101.585492, 33.645448],\n              [101.58426, 33.674339],\n              [101.501724, 33.702723],\n              [101.428427, 33.680315],\n              [101.424732, 33.655411],\n              [101.385312, 33.644949],\n              [101.302776, 33.657902],\n              [101.23687, 33.685793],\n              [101.217776, 33.669856],\n              [101.166653, 33.659894],\n              [101.177124, 33.685295],\n              [101.162957, 33.719649],\n              [101.186363, 33.741051],\n              [101.190675, 33.791796],\n              [101.153102, 33.823124],\n              [101.153718, 33.8445],\n              [101.054552, 33.863386],\n              [101.023139, 33.896178],\n              [100.994806, 33.891707],\n              [100.965857, 33.946832],\n              [100.927669, 33.975126],\n              [100.93506, 33.990013],\n              [100.880857, 34.036644],\n              [100.870386, 34.083744],\n              [100.848828, 34.089692],\n              [100.806329, 34.155584],\n              [100.764445, 34.178857],\n              [100.809408, 34.247153],\n              [100.798321, 34.260014],\n              [100.821727, 34.317371],\n              [100.868538, 34.332693],\n              [100.895024, 34.375183],\n              [100.951074, 34.38358],\n              [100.986799, 34.374689],\n              [101.054552, 34.322808],\n              [101.098284, 34.329233],\n              [101.178356, 34.320831],\n              [101.193754, 34.336646],\n              [101.235022, 34.325279],\n              [101.228863, 34.298586],\n              [101.268899, 34.278808],\n              [101.325565, 34.268423],\n              [101.327413, 34.24468],\n              [101.369913, 34.248143],\n              [101.417956, 34.227858],\n              [101.482014, 34.218951],\n              [101.492485, 34.195689],\n              [101.53868, 34.212022],\n              [101.6206, 34.178857],\n              [101.674187, 34.110506],\n              [101.703136, 34.119424],\n              [101.718535, 34.083249],\n              [101.736397, 34.080275],\n              [101.764114, 34.122892],\n              [101.788136, 34.131809],\n              [101.836795, 34.124378],\n              [101.851578, 34.153108],\n              [101.874367, 34.130323],\n              [101.897773, 34.133791],\n              [101.955055, 34.109514],\n              [101.965526, 34.167469],\n              [102.003099, 34.162022],\n              [102.030816, 34.190739],\n              [102.01357, 34.218456],\n              [102.062229, 34.227858],\n              [102.067772, 34.293642],\n              [102.149692, 34.271885],\n              [102.186649, 34.352952],\n              [102.237156, 34.34307],\n              [102.237156, 34.34307],\n              [102.259329, 34.355917],\n              [102.205743, 34.407777],\n              [102.169402, 34.457631],\n              [102.155852, 34.507456],\n              [102.139837, 34.50351],\n              [102.093026, 34.536547],\n              [102.001867, 34.538519],\n              [101.97415, 34.548871],\n              [101.956287, 34.582876],\n              [101.934729, 34.58731],\n              [101.919947, 34.621791],\n              [101.917483, 34.705964],\n              [101.923027, 34.835746],\n              [101.916867, 34.873561],\n              [101.985852, 34.90007],\n              [102.068388, 34.887798],\n              [102.048062, 34.910868],\n              [102.094874, 34.986901],\n              [102.133678, 35.014844],\n              [102.157699, 35.010923],\n              [102.176178, 35.032977],\n              [102.211286, 35.034937],\n              [102.218062, 35.057475],\n              [102.252554, 35.048657],\n              [102.29567, 35.071681],\n              [102.310452, 35.128967],\n              [102.346793, 35.164201],\n              [102.404075, 35.179366],\n              [102.365887, 35.235599],\n              [102.370199, 35.263946],\n              [102.3123, 35.282512],\n              [102.280887, 35.303028],\n              [102.311684, 35.31426],\n              [102.317844, 35.343067],\n              [102.287663, 35.36552],\n              [102.293822, 35.424063],\n              [102.314764, 35.434303],\n              [102.408387, 35.409431],\n              [102.447807, 35.437229],\n              [102.437952, 35.455268],\n              [102.49893, 35.545403],\n              [102.503241, 35.585322],\n              [102.531575, 35.580455],\n              [102.570995, 35.548324],\n              [102.695414, 35.528358],\n              [102.743458, 35.494745],\n              [102.782878, 35.527871],\n              [102.729291, 35.523487],\n              [102.746537, 35.545403],\n              [102.808747, 35.560496],\n              [102.763168, 35.612086],\n              [102.7644, 35.653431],\n              [102.744074, 35.657807],\n              [102.707733, 35.70496],\n              [102.686175, 35.771996],\n              [102.715125, 35.815685],\n              [102.739146, 35.821023],\n              [102.787189, 35.862745],\n              [102.81737, 35.850133],\n              [102.914073, 35.845282],\n              [102.94487, 35.829757],\n              [102.954725, 35.858864],\n              [102.942406, 35.92674],\n              [102.971971, 35.995525],\n              [102.951645, 36.021667],\n              [102.968276, 36.044414],\n              [102.932551, 36.048285],\n              [102.882044, 36.082632],\n              [102.941174, 36.104877],\n              [102.948566, 36.150798],\n              [102.965812, 36.151765],\n              [102.986754, 36.193312],\n              [103.048964, 36.199107],\n              [103.066826, 36.216974],\n              [103.021246, 36.232906],\n              [103.024942, 36.256556],\n              [102.922696, 36.298047],\n              [102.896827, 36.331803],\n              [102.845704, 36.331803],\n              [102.836465, 36.344819],\n              [102.829689, 36.365544]\n            ]\n          ]\n        ]\n      }\n    },\n    {\n      \"type\": \"Feature\",\n      \"properties\": {\n        \"adcode\": 640000,\n        \"name\": \"宁夏回族自治区\",\n        \"center\": [106.278179, 38.46637],\n        \"centroid\": [106.169866, 37.291332],\n        \"childrenNum\": 5,\n        \"level\": \"province\",\n        \"parent\": { \"adcode\": 100000 },\n        \"subFeatureIndex\": 29,\n        \"acroutes\": [100000]\n      },\n      \"geometry\": {\n        \"type\": \"MultiPolygon\",\n        \"coordinates\": [\n          [\n            [\n              [107.268764, 37.099367],\n              [107.281083, 37.127047],\n              [107.306952, 37.100799],\n              [107.334669, 37.138975],\n              [107.336517, 37.165687],\n              [107.317423, 37.200017],\n              [107.270612, 37.229089],\n              [107.309416, 37.239095],\n              [107.273075, 37.29101],\n              [107.257677, 37.337179],\n              [107.282931, 37.437036],\n              [107.284162, 37.481691],\n              [107.345756, 37.518725],\n              [107.369162, 37.58752],\n              [107.330358, 37.584201],\n              [107.311264, 37.609806],\n              [107.361155, 37.613125],\n              [107.422133, 37.665254],\n              [107.389488, 37.671413],\n              [107.387024, 37.691305],\n              [107.425828, 37.684201],\n              [107.484959, 37.706458],\n              [107.499125, 37.765619],\n              [107.57119, 37.776499],\n              [107.599523, 37.791162],\n              [107.620465, 37.776026],\n              [107.646335, 37.805349],\n              [107.659269, 37.844112],\n              [107.65003, 37.86443],\n              [107.560719, 37.893717],\n              [107.49235, 37.944706],\n              [107.448618, 37.933378],\n              [107.411662, 37.948009],\n              [107.440611, 37.995659],\n              [107.3938, 38.014993],\n              [107.33159, 38.086625],\n              [107.240431, 38.111586],\n              [107.19054, 38.153953],\n              [107.138801, 38.161011],\n              [107.119091, 38.134185],\n              [107.071047, 38.138892],\n              [107.051337, 38.122886],\n              [107.010069, 38.120532],\n              [106.942316, 38.132302],\n              [106.858548, 38.156306],\n              [106.779092, 38.171833],\n              [106.737824, 38.197706],\n              [106.654672, 38.22921],\n              [106.627571, 38.232501],\n              [106.555506, 38.263521],\n              [106.482209, 38.319417],\n              [106.599854, 38.389812],\n              [106.647897, 38.470917],\n              [106.66268, 38.601524],\n              [106.709491, 38.718821],\n              [106.756302, 38.748699],\n              [106.837606, 38.847579],\n              [106.954019, 38.941202],\n              [106.971881, 39.026333],\n              [106.96757, 39.054688],\n              [106.933693, 39.076527],\n              [106.878874, 39.091392],\n              [106.859164, 39.107648],\n              [106.825288, 39.19397],\n              [106.795723, 39.214375],\n              [106.790795, 39.241263],\n              [106.806193, 39.277407],\n              [106.806809, 39.318625],\n              [106.781556, 39.371849],\n              [106.751375, 39.381564],\n              [106.683622, 39.357506],\n              [106.643586, 39.357969],\n              [106.602318, 39.37555],\n              [106.556122, 39.322329],\n              [106.525325, 39.308439],\n              [106.511774, 39.272311],\n              [106.402753, 39.291767],\n              [106.280181, 39.262118],\n              [106.29558, 39.167992],\n              [106.285109, 39.146181],\n              [106.251232, 39.131327],\n              [106.192718, 39.142932],\n              [106.170544, 39.163352],\n              [106.145907, 39.153142],\n              [106.096631, 39.084889],\n              [106.078153, 39.026333],\n              [106.087392, 39.006339],\n              [106.060907, 38.96866],\n              [106.021487, 38.953769],\n              [105.97098, 38.909077],\n              [105.992538, 38.857366],\n              [105.909386, 38.791159],\n              [105.908154, 38.737496],\n              [105.88598, 38.716953],\n              [105.894603, 38.696405],\n              [105.852719, 38.641735],\n              [105.874277, 38.593105],\n              [105.856415, 38.569714],\n              [105.863806, 38.53508],\n              [105.836705, 38.476071],\n              [105.850872, 38.443736],\n              [105.827466, 38.432486],\n              [105.835473, 38.387467],\n              [105.821307, 38.366824],\n              [105.86627, 38.296406],\n              [105.842248, 38.240962],\n              [105.802828, 38.220277],\n              [105.775111, 38.186887],\n              [105.76772, 38.121474],\n              [105.780655, 38.084741],\n              [105.840401, 38.004147],\n              [105.799749, 37.939986],\n              [105.80406, 37.862068],\n              [105.760944, 37.799674],\n              [105.677177, 37.771769],\n              [105.622358, 37.777919],\n              [105.616199, 37.722555],\n              [105.598952, 37.699356],\n              [105.467141, 37.695094],\n              [105.4037, 37.710246],\n              [105.315004, 37.702197],\n              [105.221998, 37.677097],\n              [105.187505, 37.657674],\n              [105.111128, 37.633981],\n              [105.027977, 37.580881],\n              [104.866601, 37.566651],\n              [104.805007, 37.539133],\n              [104.623305, 37.522522],\n              [104.433595, 37.515402],\n              [104.419429, 37.511604],\n              [104.407726, 37.464592],\n              [104.322726, 37.44844],\n              [104.287002, 37.428007],\n              [104.298705, 37.414223],\n              [104.365226, 37.418026],\n              [104.437907, 37.445589],\n              [104.448994, 37.42468],\n              [104.499501, 37.421353],\n              [104.521059, 37.43466],\n              [104.679971, 37.408044],\n              [104.662109, 37.367626],\n              [104.713848, 37.329566],\n              [104.673812, 37.317668],\n              [104.651022, 37.290534],\n              [104.624536, 37.298627],\n              [104.600515, 37.242907],\n              [104.638087, 37.201923],\n              [104.717543, 37.208597],\n              [104.776673, 37.246718],\n              [104.85613, 37.211933],\n              [104.864753, 37.17284],\n              [104.888158, 37.15901],\n              [104.914644, 37.097935],\n              [104.954064, 37.077407],\n              [104.95468, 37.040156],\n              [105.004571, 37.035378],\n              [105.03968, 37.007187],\n              [105.05939, 37.022956],\n              [105.128991, 36.996194],\n              [105.165331, 36.99476],\n              [105.185657, 36.942164],\n              [105.178882, 36.892403],\n              [105.244787, 36.894796],\n              [105.279896, 36.86751],\n              [105.303302, 36.820575],\n              [105.334714, 36.80093],\n              [105.340874, 36.764502],\n              [105.319932, 36.742924],\n              [105.275584, 36.752515],\n              [105.272505, 36.739567],\n              [105.218302, 36.730455],\n              [105.201056, 36.700711],\n              [105.225693, 36.664716],\n              [105.22015, 36.631105],\n              [105.261418, 36.602764],\n              [105.2762, 36.563358],\n              [105.252179, 36.553263],\n              [105.281744, 36.522489],\n              [105.322396, 36.535954],\n              [105.362432, 36.496514],\n              [105.363048, 36.443093],\n              [105.398156, 36.430575],\n              [105.401236, 36.369881],\n              [105.425873, 36.330357],\n              [105.455439, 36.321678],\n              [105.476381, 36.293224],\n              [105.45975, 36.268137],\n              [105.460366, 36.223733],\n              [105.478844, 36.213111],\n              [105.515185, 36.147415],\n              [105.491163, 36.101009],\n              [105.430801, 36.10391],\n              [105.406163, 36.074409],\n              [105.343954, 36.033767],\n              [105.324859, 35.941761],\n              [105.350113, 35.875839],\n              [105.39754, 35.857409],\n              [105.371055, 35.844312],\n              [105.38091, 35.792873],\n              [105.408627, 35.822479],\n              [105.428953, 35.819082],\n              [105.432033, 35.787533],\n              [105.457286, 35.771511],\n              [105.481924, 35.727312],\n              [105.595873, 35.715651],\n              [105.667322, 35.749657],\n              [105.70243, 35.733142],\n              [105.759097, 35.724883],\n              [105.740618, 35.698643],\n              [105.723988, 35.725854],\n              [105.690727, 35.698643],\n              [105.722756, 35.673366],\n              [105.713517, 35.650513],\n              [105.759097, 35.634464],\n              [105.762176, 35.602841],\n              [105.800365, 35.564878],\n              [105.816379, 35.575101],\n              [105.847176, 35.490359],\n              [105.868734, 35.540046],\n              [105.900147, 35.54735],\n              [106.017175, 35.519103],\n              [106.023335, 35.49377],\n              [106.047356, 35.498155],\n              [106.078769, 35.509848],\n              [106.071994, 35.463555],\n              [106.06953, 35.458193],\n              [106.073842, 35.45478],\n              [106.073226, 35.450393],\n              [106.071378, 35.449418],\n              [106.073226, 35.447468],\n              [106.083081, 35.421624],\n              [106.113262, 35.361616],\n              [106.129892, 35.393333],\n              [106.173008, 35.437716],\n              [106.196414, 35.409919],\n              [106.237681, 35.409431],\n              [106.241377, 35.358687],\n              [106.319601, 35.265411],\n              [106.363333, 35.238532],\n              [106.368261, 35.273718],\n              [106.415688, 35.276161],\n              [106.472354, 35.310842],\n              [106.501304, 35.364056],\n              [106.503767, 35.415284],\n              [106.483441, 35.450393],\n              [106.490217, 35.480613],\n              [106.465579, 35.481101],\n              [106.440941, 35.52641],\n              [106.460036, 35.578995],\n              [106.47913, 35.575101],\n              [106.460036, 35.643705],\n              [106.434782, 35.688436],\n              [106.49268, 35.732656],\n              [106.506231, 35.737514],\n              [106.566593, 35.738971],\n              [106.595542, 35.727312],\n              [106.620796, 35.743829],\n              [106.633115, 35.714679],\n              [106.66268, 35.70739],\n              [106.674998, 35.728284],\n              [106.750759, 35.689408],\n              [106.750759, 35.725369],\n              [106.806193, 35.70982],\n              [106.819128, 35.7448],\n              [106.867171, 35.738485],\n              [106.868403, 35.771996],\n              [106.897353, 35.759856],\n              [106.927534, 35.810346],\n              [106.849925, 35.887476],\n              [106.912751, 35.93207],\n              [106.940468, 35.931101],\n              [106.93862, 35.952905],\n              [106.90228, 35.943699],\n              [106.94786, 35.988262],\n              [106.928149, 36.011502],\n              [106.940468, 36.064734],\n              [106.957715, 36.091337],\n              [106.925686, 36.115997],\n              [106.930613, 36.138716],\n              [106.873947, 36.178338],\n              [106.873947, 36.178338],\n              [106.858548, 36.206834],\n              [106.858548, 36.206834],\n              [106.833295, 36.229044],\n              [106.808657, 36.21118],\n              [106.772933, 36.212628],\n              [106.735976, 36.23725],\n              [106.698404, 36.244008],\n              [106.685469, 36.273445],\n              [106.647897, 36.259451],\n              [106.559202, 36.292259],\n              [106.54134, 36.25366],\n              [106.504383, 36.266207],\n              [106.470507, 36.306246],\n              [106.497608, 36.31348],\n              [106.510543, 36.379037],\n              [106.492064, 36.422389],\n              [106.523477, 36.468605],\n              [106.494528, 36.494589],\n              [106.455724, 36.496995],\n              [106.39721, 36.548455],\n              [106.37134, 36.549417],\n              [106.363949, 36.577296],\n              [106.392282, 36.556628],\n              [106.397826, 36.576816],\n              [106.444637, 36.557109],\n              [106.465579, 36.583063],\n              [106.444637, 36.624861],\n              [106.491448, 36.628703],\n              [106.490833, 36.685835],\n              [106.530869, 36.690154],\n              [106.519782, 36.708868],\n              [106.519782, 36.708868],\n              [106.514238, 36.715584],\n              [106.59431, 36.750118],\n              [106.644817, 36.72278],\n              [106.627571, 36.752995],\n              [106.657752, 36.820575],\n              [106.637426, 36.867031],\n              [106.637426, 36.867031],\n              [106.626955, 36.892403],\n              [106.609709, 36.878521],\n              [106.609709, 36.878521],\n              [106.601702, 36.918244],\n              [106.549347, 36.941685],\n              [106.540108, 36.984244],\n              [106.595542, 36.94025],\n              [106.594926, 36.967988],\n              [106.64297, 36.962729],\n              [106.646665, 37.000496],\n              [106.666991, 37.016745],\n              [106.645433, 37.064992],\n              [106.605397, 37.127524],\n              [106.6171, 37.135158],\n              [106.673151, 37.1113],\n              [106.687933, 37.12991],\n              [106.728585, 37.121321],\n              [106.750143, 37.09889],\n              [106.772933, 37.120367],\n              [106.776012, 37.158056],\n              [106.818512, 37.141838],\n              [106.891193, 37.098413],\n              [106.912135, 37.110345],\n              [106.905976, 37.151378],\n              [106.998367, 37.106527],\n              [107.031011, 37.108436],\n              [107.030395, 37.140883],\n              [107.095685, 37.115595],\n              [107.133873, 37.134681],\n              [107.181916, 37.143269],\n              [107.234887, 37.096503],\n              [107.268764, 37.099367]\n            ]\n          ],\n          [\n            [\n              [106.048588, 35.488898],\n              [105.897683, 35.451368],\n              [105.894603, 35.413821],\n              [106.002393, 35.438692],\n              [106.034422, 35.469404],\n              [106.054132, 35.45478],\n              [106.048588, 35.488898]\n            ]\n          ],\n          [\n            [\n              [106.073842, 35.45478],\n              [106.06953, 35.458193],\n              [106.071378, 35.449418],\n              [106.073226, 35.450393],\n              [106.073842, 35.45478]\n            ]\n          ]\n        ]\n      }\n    },\n    {\n      \"type\": \"Feature\",\n      \"properties\": {\n        \"adcode\": 650000,\n        \"name\": \"新疆维吾尔自治区\",\n        \"center\": [87.617733, 43.792818],\n        \"centroid\": [85.294711, 41.371801],\n        \"childrenNum\": 24,\n        \"level\": \"province\",\n        \"parent\": { \"adcode\": 100000 },\n        \"subFeatureIndex\": 30,\n        \"acroutes\": [100000]\n      },\n      \"geometry\": {\n        \"type\": \"MultiPolygon\",\n        \"coordinates\": [\n          [\n            [\n              [96.386348, 42.727592],\n              [96.363558, 42.900562],\n              [95.921314, 43.229789],\n              [95.880046, 43.28035],\n              [95.857872, 43.417436],\n              [95.735916, 43.597569],\n              [95.705735, 43.67077],\n              [95.645373, 43.787966],\n              [95.623199, 43.855756],\n              [95.527113, 44.007466],\n              [95.426099, 44.009618],\n              [95.377439, 44.025972],\n              [95.326932, 44.028554],\n              [95.35157, 44.090054],\n              [95.355882, 44.166087],\n              [95.376208, 44.227444],\n              [95.4107, 44.245024],\n              [95.43041, 44.281882],\n              [95.41378, 44.298589],\n              [95.238853, 44.277169],\n              [95.1286, 44.269884],\n              [94.998637, 44.253169],\n              [94.945666, 44.292592],\n              [94.826174, 44.320001],\n              [94.768275, 44.34055],\n              [94.722696, 44.34055],\n              [94.673421, 44.397021],\n              [94.606283, 44.448311],\n              [94.557008, 44.462408],\n              [94.470777, 44.509373],\n              [94.390705, 44.521749],\n              [94.359292, 44.515775],\n              [94.329727, 44.582734],\n              [94.279836, 44.603617],\n              [94.227481, 44.645785],\n              [94.215162, 44.667921],\n              [94.152336, 44.684944],\n              [94.066105, 44.732154],\n              [93.723642, 44.865498],\n              [93.716251, 44.894334],\n              [93.613389, 44.926546],\n              [93.509296, 44.968055],\n              [93.434767, 44.955351],\n              [93.376869, 44.985412],\n              [93.314659, 44.995147],\n              [93.314043, 44.980333],\n              [93.252449, 44.991761],\n              [93.174225, 45.015458],\n              [93.100312, 45.007419],\n              [93.062124, 45.018419],\n              [93.002377, 45.009958],\n              [92.932776, 45.017573],\n              [92.922921, 45.03703],\n              [92.884117, 45.046756],\n              [92.847777, 45.038721],\n              [92.779407, 45.050561],\n              [92.683937, 45.02561],\n              [92.547814, 45.018419],\n              [92.501003, 45.001072],\n              [92.414155, 45.018419],\n              [92.348866, 45.014188],\n              [92.315605, 45.028994],\n              [92.240461, 45.015881],\n              [92.100026, 45.081417],\n              [92.056911, 45.086911],\n              [91.885679, 45.078882],\n              [91.803144, 45.082685],\n              [91.694738, 45.065357],\n              [91.561695, 45.075501],\n              [91.500101, 45.103809],\n              [91.448978, 45.156586],\n              [91.429268, 45.156586],\n              [91.37753, 45.11099],\n              [91.33503, 45.129571],\n              [91.242023, 45.13717],\n              [91.230936, 45.153632],\n              [91.195827, 45.159118],\n              [91.17119, 45.199616],\n              [91.129922, 45.21606],\n              [91.050466, 45.208892],\n              [91.007966, 45.218589],\n              [90.96177, 45.201303],\n              [90.881698, 45.192025],\n              [90.866916, 45.209314],\n              [90.897713, 45.249776],\n              [90.877387, 45.280946],\n              [90.831807, 45.300313],\n              [90.804706, 45.29484],\n              [90.813329, 45.32851],\n              [90.773909, 45.405874],\n              [90.772677, 45.432338],\n              [90.723402, 45.464667],\n              [90.671047, 45.487747],\n              [90.676591, 45.582488],\n              [90.714779, 45.728895],\n              [90.799778, 45.834905],\n              [90.890937, 45.921566],\n              [91.028292, 46.023054],\n              [91.014741, 46.06667],\n              [91.021517, 46.121038],\n              [90.98456, 46.160431],\n              [90.94822, 46.219262],\n              [90.955611, 46.233752],\n              [90.900177, 46.31235],\n              [90.983328, 46.374734],\n              [90.996263, 46.419309],\n              [91.025828, 46.444057],\n              [91.038147, 46.500936],\n              [91.060937, 46.516999],\n              [91.079415, 46.558989],\n              [91.068328, 46.579149],\n              [91.017821, 46.58244],\n              [91.036299, 46.670393],\n              [91.054161, 46.717598],\n              [91.019053, 46.766402],\n              [90.992567, 46.769682],\n              [90.992567, 46.790583],\n              [90.942676, 46.82581],\n              [90.958075, 46.879425],\n              [90.929742, 46.893331],\n              [90.92235, 46.938707],\n              [90.901408, 46.960768],\n              [90.830575, 46.995883],\n              [90.767134, 46.992617],\n              [90.691989, 47.080717],\n              [90.653801, 47.111681],\n              [90.579888, 47.198364],\n              [90.56141, 47.206903],\n              [90.521374, 47.2845],\n              [90.488113, 47.317374],\n              [90.526301, 47.379007],\n              [90.507823, 47.400076],\n              [90.468403, 47.404937],\n              [90.459164, 47.43895],\n              [90.474562, 47.462422],\n              [90.468403, 47.497611],\n              [90.398186, 47.547724],\n              [90.376012, 47.603036],\n              [90.346447, 47.637324],\n              [90.384635, 47.644179],\n              [90.331665, 47.681663],\n              [90.216484, 47.70543],\n              [90.180144, 47.72516],\n              [90.13518, 47.723147],\n              [90.07605, 47.777469],\n              [90.070506, 47.820483],\n              [90.086521, 47.86547],\n              [90.066195, 47.883534],\n              [90.040941, 47.874704],\n              [89.960253, 47.885942],\n              [89.957789, 47.842982],\n              [89.86971, 47.834144],\n              [89.761921, 47.835751],\n              [89.735435, 47.89758],\n              [89.651052, 47.913627],\n              [89.645508, 47.947711],\n              [89.595617, 47.973359],\n              [89.599313, 48.015811],\n              [89.569132, 48.037825],\n              [89.498299, 48.02822],\n              [89.38127, 48.046227],\n              [89.359712, 48.026219],\n              [89.308589, 48.021816],\n              [89.282104, 47.994189],\n              [89.231597, 47.98017],\n              [89.156452, 47.996992],\n              [89.078228, 47.98698],\n              [89.044967, 48.009806],\n              [89.027105, 48.051028],\n              [88.953808, 48.090618],\n              [88.939026, 48.115396],\n              [88.824461, 48.107005],\n              [88.79736, 48.133772],\n              [88.721599, 48.160526],\n              [88.700657, 48.180881],\n              [88.668628, 48.171303],\n              [88.638447, 48.183674],\n              [88.601491, 48.221567],\n              [88.594716, 48.259831],\n              [88.575006, 48.277757],\n              [88.605803, 48.337863],\n              [88.573774, 48.351785],\n              [88.573158, 48.369679],\n              [88.535586, 48.368884],\n              [88.523267, 48.403461],\n              [88.503557, 48.412996],\n              [88.462289, 48.392335],\n              [88.438267, 48.393528],\n              [88.360659, 48.433251],\n              [88.363123, 48.460641],\n              [88.318159, 48.478497],\n              [88.229464, 48.498329],\n              [88.196819, 48.493967],\n              [88.151855, 48.526478],\n              [88.130297, 48.521721],\n              [88.10874, 48.545895],\n              [88.041602, 48.548272],\n              [87.973233, 48.575997],\n              [87.96153, 48.599353],\n              [88.010805, 48.618742],\n              [88.02682, 48.65315],\n              [88.089645, 48.69504],\n              [88.090877, 48.71992],\n              [88.064392, 48.712813],\n              [88.029283, 48.750313],\n              [87.96153, 48.773588],\n              [87.93874, 48.757809],\n              [87.872219, 48.799612],\n              [87.826639, 48.800795],\n              [87.803234, 48.824835],\n              [87.829103, 48.825623],\n              [87.792147, 48.849258],\n              [87.78106, 48.872094],\n              [87.742256, 48.881146],\n              [87.760118, 48.925992],\n              [87.793995, 48.927565],\n              [87.814321, 48.945256],\n              [87.87653, 48.949186],\n              [87.871603, 48.963726],\n              [87.911639, 48.979833],\n              [87.883922, 48.993971],\n              [87.883306, 49.023806],\n              [87.835263, 49.054406],\n              [87.858052, 49.07362],\n              [87.844502, 49.090084],\n              [87.867291, 49.108892],\n              [87.845733, 49.146096],\n              [87.82048, 49.148445],\n              [87.821096, 49.173883],\n              [87.793379, 49.18249],\n              [87.762582, 49.172709],\n              [87.700372, 49.175839],\n              [87.67635, 49.15549],\n              [87.602437, 49.152359],\n              [87.563017, 49.142572],\n              [87.517438, 49.145704],\n              [87.49588, 49.132001],\n              [87.511894, 49.10184],\n              [87.43675, 49.075188],\n              [87.388707, 49.097921],\n              [87.304939, 49.112418],\n              [87.239033, 49.114376],\n              [87.211932, 49.140615],\n              [87.112766, 49.15549],\n              [87.088128, 49.133567],\n              [87.000049, 49.142572],\n              [86.953853, 49.131218],\n              [86.887948, 49.132001],\n              [86.854071, 49.109284],\n              [86.84976, 49.066563],\n              [86.836209, 49.051269],\n              [86.772151, 49.02773],\n              [86.732115, 48.994757],\n              [86.730267, 48.959797],\n              [86.757985, 48.894919],\n              [86.782006, 48.887049],\n              [86.821426, 48.850439],\n              [86.818963, 48.831139],\n              [86.770303, 48.810255],\n              [86.754289, 48.78463],\n              [86.780774, 48.731369],\n              [86.771535, 48.717156],\n              [86.70255, 48.666195],\n              [86.693311, 48.64366],\n              [86.640956, 48.629027],\n              [86.635413, 48.612016],\n              [86.594761, 48.576789],\n              [86.579978, 48.538763],\n              [86.416138, 48.481671],\n              [86.38103, 48.49357],\n              [86.305269, 48.491984],\n              [86.270161, 48.452307],\n              [86.225813, 48.432456],\n              [86.053966, 48.441192],\n              [85.916612, 48.438015],\n              [85.791576, 48.418954],\n              [85.758315, 48.403064],\n              [85.695489, 48.335078],\n              [85.695489, 48.302445],\n              [85.678243, 48.266205],\n              [85.633895, 48.232731],\n              [85.622193, 48.202824],\n              [85.587084, 48.191654],\n              [85.576613, 48.15853],\n              [85.55136, 48.127781],\n              [85.551975, 48.081423],\n              [85.531649, 48.046227],\n              [85.547048, 48.008205],\n              [85.617881, 47.550552],\n              [85.614801, 47.498015],\n              [85.685018, 47.428829],\n              [85.701649, 47.384275],\n              [85.675779, 47.321837],\n              [85.701033, 47.28856],\n              [85.682555, 47.249982],\n              [85.682555, 47.222757],\n              [85.641903, 47.18413],\n              [85.582772, 47.142626],\n              [85.547048, 47.096609],\n              [85.545816, 47.057891],\n              [85.441106, 47.063191],\n              [85.355491, 47.054629],\n              [85.325926, 47.044842],\n              [85.276651, 47.068898],\n              [85.213825, 47.041172],\n              [85.175637, 46.997924],\n              [85.102956, 46.968936],\n              [85.082014, 46.939933],\n              [84.987159, 46.918272],\n              [84.979768, 46.883106],\n              [84.95513, 46.861013],\n              [84.934188, 46.863878],\n              [84.867051, 46.927673],\n              [84.849189, 46.957092],\n              [84.781435, 46.979962],\n              [84.748175, 47.009759],\n              [84.699515, 47.008535],\n              [84.668718, 46.995067],\n              [84.563393, 46.991801],\n              [84.506726, 46.97302],\n              [84.425422, 47.008943],\n              [84.37122, 46.993434],\n              [84.336727, 47.00527],\n              [84.2893, 46.994658],\n              [84.195061, 47.003638],\n              [84.150098, 46.977512],\n              [84.086656, 46.965261],\n              [84.038613, 46.973428],\n              [84.002888, 46.990576],\n              [83.951765, 46.98731],\n              [83.932671, 46.970161],\n              [83.88586, 46.982003],\n              [83.766367, 47.026896],\n              [83.69923, 47.015472],\n              [83.700462, 47.032199],\n              [83.576042, 47.059114],\n              [83.566803, 47.080717],\n              [83.53847, 47.083977],\n              [83.463325, 47.132042],\n              [83.418978, 47.119012],\n              [83.370318, 47.178436],\n              [83.324739, 47.167858],\n              [83.306261, 47.179656],\n              [83.257602, 47.173147],\n              [83.221877, 47.186977],\n              [83.207094, 47.213814],\n              [83.17445, 47.218286],\n              [83.15474, 47.236168],\n              [83.108544, 47.221944],\n              [83.02724, 47.21544],\n              [83.031552, 47.168265],\n              [82.993364, 47.065229],\n              [82.937929, 47.014248],\n              [82.923762, 46.932169],\n              [82.876335, 46.823762],\n              [82.878183, 46.797138],\n              [82.829524, 46.772551],\n              [82.788872, 46.677784],\n              [82.774089, 46.600124],\n              [82.726662, 46.494756],\n              [82.609017, 46.294985],\n              [82.518474, 46.153798],\n              [82.461808, 45.97982],\n              [82.401446, 45.972333],\n              [82.342932, 45.935303],\n              [82.336156, 45.882418],\n              [82.349707, 45.822811],\n              [82.340468, 45.772742],\n              [82.289961, 45.71636],\n              [82.288729, 45.655321],\n              [82.266555, 45.620172],\n              [82.281954, 45.53891],\n              [82.448257, 45.461309],\n              [82.546808, 45.426038],\n              [82.60101, 45.346178],\n              [82.58746, 45.224069],\n              [82.562822, 45.204676],\n              [82.487061, 45.181058],\n              [82.344779, 45.219011],\n              [82.294272, 45.247669],\n              [82.206809, 45.236713],\n              [82.109491, 45.211422],\n              [82.091012, 45.222383],\n              [82.09594, 45.249776],\n              [82.052824, 45.255674],\n              [81.993078, 45.237978],\n              [81.921013, 45.233342],\n              [81.879745, 45.284314],\n              [81.832318, 45.319673],\n              [81.78797, 45.3836],\n              [81.677101, 45.35459],\n              [81.645072, 45.359216],\n              [81.582863, 45.336503],\n              [81.575471, 45.30789],\n              [81.536667, 45.304101],\n              [81.52866, 45.285999],\n              [81.462754, 45.264099],\n              [81.437501, 45.28263],\n              [81.398697, 45.275471],\n              [81.382066, 45.257781],\n              [81.327864, 45.260729],\n              [81.284748, 45.23882],\n              [81.236705, 45.247248],\n              [81.175111, 45.227863],\n              [81.170183, 45.211001],\n              [81.111669, 45.218168],\n              [81.080872, 45.182745],\n              [81.024821, 45.162916],\n              [80.966307, 45.168402],\n              [80.93551, 45.160384],\n              [80.897938, 45.127459],\n              [80.862214, 45.127037],\n              [80.816634, 45.152788],\n              [80.731634, 45.156164],\n              [80.686055, 45.129148],\n              [80.599207, 45.105921],\n              [80.519135, 45.108878],\n              [80.493882, 45.127037],\n              [80.445839, 45.097895],\n              [80.443991, 45.077614],\n              [80.404571, 45.049293],\n              [80.358375, 45.040836],\n              [80.328194, 45.070007],\n              [80.291854, 45.06578],\n              [80.24381, 45.031532],\n              [80.195767, 45.030686],\n              [80.144644, 45.059017],\n              [80.136021, 45.041259],\n              [80.111999, 45.052675],\n              [80.060876, 45.026033],\n              [80.056565, 45.011227],\n              [79.98142, 44.964244],\n              [79.951855, 44.957892],\n              [79.944464, 44.937985],\n              [79.887798, 44.90917],\n              [79.969102, 44.877797],\n              [79.953703, 44.849377],\n              [79.991891, 44.830281],\n              [79.999283, 44.793768],\n              [80.087978, 44.817122],\n              [80.115695, 44.815424],\n              [80.169898, 44.84471],\n              [80.18776, 44.825612],\n              [80.178521, 44.796741],\n              [80.200695, 44.756808],\n              [80.238883, 44.7228],\n              [80.313412, 44.704938],\n              [80.400259, 44.628751],\n              [80.411962, 44.605321],\n              [80.350368, 44.484615],\n              [80.383013, 44.401297],\n              [80.399027, 44.30587],\n              [80.413194, 44.264741],\n              [80.400875, 44.198704],\n              [80.407034, 44.149772],\n              [80.3941, 44.127009],\n              [80.449534, 44.078017],\n              [80.458773, 44.047054],\n              [80.457541, 43.981203],\n              [80.485259, 43.95579],\n              [80.475404, 43.938124],\n              [80.511128, 43.906657],\n              [80.522215, 43.816473],\n              [80.75504, 43.494329],\n              [80.761199, 43.446554],\n              [80.746417, 43.439167],\n              [80.735946, 43.389609],\n              [80.686055, 43.333916],\n              [80.69283, 43.32042],\n              [80.777214, 43.308227],\n              [80.769207, 43.265535],\n              [80.788917, 43.242433],\n              [80.789533, 43.201876],\n              [80.804315, 43.178314],\n              [80.79446, 43.137277],\n              [80.752576, 43.148194],\n              [80.73225, 43.131163],\n              [80.706997, 43.143828],\n              [80.650946, 43.147321],\n              [80.593048, 43.133347],\n              [80.556092, 43.104515],\n              [80.482795, 43.06955],\n              [80.416889, 43.05687],\n              [80.378701, 43.031502],\n              [80.397795, 42.996933],\n              [80.487106, 42.948766],\n              [80.5912, 42.923354],\n              [80.602903, 42.894424],\n              [80.503737, 42.882146],\n              [80.450766, 42.861971],\n              [80.407034, 42.834767],\n              [80.338049, 42.831695],\n              [80.280151, 42.838278],\n              [80.262289, 42.828623],\n              [80.259209, 42.790865],\n              [80.225948, 42.713083],\n              [80.228412, 42.692852],\n              [80.179753, 42.670415],\n              [80.163738, 42.629919],\n              [80.180985, 42.590718],\n              [80.221637, 42.533415],\n              [80.265368, 42.502097],\n              [80.225948, 42.485769],\n              [80.206238, 42.431462],\n              [80.239499, 42.389927],\n              [80.229028, 42.358536],\n              [80.283847, 42.320493],\n              [80.272144, 42.281984],\n              [80.29247, 42.259842],\n              [80.28631, 42.233261],\n              [80.233339, 42.210215],\n              [80.168666, 42.200462],\n              [80.163738, 42.152563],\n              [80.139717, 42.151232],\n              [80.16805, 42.096635],\n              [80.193303, 42.081535],\n              [80.14218, 42.03488],\n              [80.089826, 42.047325],\n              [79.923522, 42.042436],\n              [79.852689, 42.015319],\n              [79.854537, 41.984186],\n              [79.822508, 41.963275],\n              [79.776313, 41.89248],\n              [79.724574, 41.896935],\n              [79.640806, 41.884907],\n              [79.616784, 41.856385],\n              [79.550879, 41.834094],\n              [79.500988, 41.835432],\n              [79.457256, 41.847915],\n              [79.415372, 41.836769],\n              [79.356242, 41.795735],\n              [79.326061, 41.809565],\n              [79.276786, 41.78101],\n              [79.271858, 41.767174],\n              [79.21704, 41.725648],\n              [79.138199, 41.722968],\n              [79.10925, 41.697503],\n              [79.043345, 41.681414],\n              [79.021787, 41.657273],\n              [78.99407, 41.664427],\n              [78.957729, 41.65146],\n              [78.891824, 41.597777],\n              [78.86657, 41.593749],\n              [78.825302, 41.560173],\n              [78.739071, 41.555695],\n              [78.696571, 41.54181],\n              [78.707042, 41.522098],\n              [78.675629, 41.50238],\n              [78.650375, 41.467411],\n              [78.580774, 41.481759],\n              [78.527188, 41.440947],\n              [78.454507, 41.412228],\n              [78.391681, 41.408189],\n              [78.385522, 41.394721],\n              [78.338094, 41.397415],\n              [78.324544, 41.384395],\n              [78.235232, 41.399211],\n              [78.163783, 41.383497],\n              [78.149617, 41.368228],\n              [78.165015, 41.340825],\n              [78.136682, 41.279239],\n              [78.129291, 41.228398],\n              [78.094798, 41.224347],\n              [77.972842, 41.173013],\n              [77.905089, 41.185174],\n              [77.836104, 41.153189],\n              [77.814546, 41.13426],\n              [77.807155, 41.091876],\n              [77.829328, 41.059394],\n              [77.796068, 41.049014],\n              [77.780669, 41.022832],\n              [77.737553, 41.032313],\n              [77.684583, 41.00793],\n              [77.654402, 41.016059],\n              [77.597119, 41.005221],\n              [77.591576, 40.992122],\n              [77.540453, 41.006575],\n              [77.476395, 40.999349],\n              [77.473931, 41.022832],\n              [77.415417, 41.038633],\n              [77.363062, 41.04089],\n              [77.296541, 41.004769],\n              [77.236795, 41.027798],\n              [77.169041, 41.009285],\n              [77.108063, 41.038181],\n              [77.091433, 41.062553],\n              [77.023064, 41.059394],\n              [77.002122, 41.073381],\n              [76.940528, 41.028701],\n              [76.885709, 41.027347],\n              [76.85368, 40.97631],\n              [76.817956, 40.975406],\n              [76.761905, 40.954167],\n              [76.741579, 40.912119],\n              [76.731724, 40.818887],\n              [76.693536, 40.779472],\n              [76.646725, 40.759983],\n              [76.646725, 40.73686],\n              [76.676906, 40.696036],\n              [76.654732, 40.652917],\n              [76.657196, 40.620218],\n              [76.611, 40.601591],\n              [76.601145, 40.578868],\n              [76.556798, 40.542495],\n              [76.543247, 40.513837],\n              [76.539551, 40.464226],\n              [76.508754, 40.429613],\n              [76.470566, 40.422779],\n              [76.442233, 40.391336],\n              [76.390494, 40.37766],\n              [76.381871, 40.39088],\n              [76.333212, 40.343459],\n              [76.327668, 40.391336],\n              [76.283321, 40.415034],\n              [76.279625, 40.439179],\n              [76.22419, 40.401819],\n              [76.176147, 40.381307],\n              [76.144118, 40.393615],\n              [76.081293, 40.39635],\n              [76.048648, 40.388601],\n              [76.048648, 40.357141],\n              [76.026474, 40.355317],\n              [75.986438, 40.381763],\n              [75.932235, 40.339353],\n              [75.921764, 40.291439],\n              [75.890351, 40.30924],\n              [75.84046, 40.312434],\n              [75.831221, 40.327492],\n              [75.785642, 40.301025],\n              [75.739446, 40.299199],\n              [75.709265, 40.280939],\n              [75.688323, 40.343915],\n              [75.669845, 40.363982],\n              [75.686475, 40.418223],\n              [75.717272, 40.443278],\n              [75.733287, 40.474242],\n              [75.646439, 40.516567],\n              [75.631041, 40.548862],\n              [75.627345, 40.605226],\n              [75.636584, 40.624306],\n              [75.599628, 40.659727],\n              [75.550353, 40.64883],\n              [75.467817, 40.599773],\n              [75.432093, 40.563412],\n              [75.355716, 40.537947],\n              [75.292274, 40.483802],\n              [75.268869, 40.483802],\n              [75.242383, 40.448743],\n              [75.206659, 40.447833],\n              [75.13521, 40.463315],\n              [75.102565, 40.44009],\n              [75.051442, 40.449654],\n              [75.021877, 40.466958],\n              [74.995392, 40.455119],\n              [74.963363, 40.464681],\n              [74.891914, 40.507467],\n              [74.844486, 40.521117],\n              [74.819233, 40.505647],\n              [74.814921, 40.461039],\n              [74.795211, 40.443278],\n              [74.908544, 40.338897],\n              [74.862965, 40.32658],\n              [74.824776, 40.344371],\n              [74.700357, 40.346195],\n              [74.697893, 40.310153],\n              [74.673255, 40.278656],\n              [74.618437, 40.27957],\n              [74.577169, 40.260391],\n              [74.534669, 40.207851],\n              [74.485394, 40.182251],\n              [74.433039, 40.13148],\n              [74.356662, 40.089371],\n              [74.316626, 40.106767],\n              [74.280902, 40.09807],\n              [74.26304, 40.125074],\n              [74.126301, 40.104479],\n              [74.113366, 40.086624],\n              [74.023439, 40.085251],\n              [74.008041, 40.050901],\n              [73.943367, 40.016076],\n              [73.980324, 40.004617],\n              [73.910722, 39.934443],\n              [73.907027, 39.873843],\n              [73.845433, 39.831115],\n              [73.841737, 39.756163],\n              [73.905795, 39.741899],\n              [73.924273, 39.722108],\n              [73.953838, 39.600018],\n              [73.916266, 39.586644],\n              [73.914418, 39.564041],\n              [73.883621, 39.540969],\n              [73.893476, 39.528046],\n              [73.868223, 39.482794],\n              [73.836194, 39.472169],\n              [73.745651, 39.462005],\n              [73.6471, 39.474479],\n              [73.61076, 39.465702],\n              [73.592898, 39.412087],\n              [73.502355, 39.383877],\n              [73.554094, 39.350102],\n              [73.554709, 39.295935],\n              [73.542391, 39.269531],\n              [73.564564, 39.266288],\n              [73.580579, 39.237555],\n              [73.623079, 39.235237],\n              [73.639709, 39.220402],\n              [73.657571, 39.166136],\n              [73.688368, 39.154999],\n              [73.719781, 39.108112],\n              [73.720397, 39.071881],\n              [73.743187, 39.029588],\n              [73.780143, 39.026798],\n              [73.820179, 39.041674],\n              [73.839889, 39.008199],\n              [73.846665, 38.962145],\n              [73.826339, 38.916993],\n              [73.767824, 38.941202],\n              [73.742571, 38.933754],\n              [73.70931, 38.893241],\n              [73.699455, 38.857832],\n              [73.729636, 38.837324],\n              [73.769056, 38.775765],\n              [73.757353, 38.719755],\n              [73.809092, 38.634256],\n              [73.799237, 38.610878],\n              [73.852208, 38.584217],\n              [73.89902, 38.579071],\n              [73.926121, 38.536016],\n              [74.011736, 38.52478],\n              [74.034526, 38.541634],\n              [74.090577, 38.542102],\n              [74.068403, 38.585621],\n              [74.088113, 38.610878],\n              [74.11275, 38.611345],\n              [74.147859, 38.676785],\n              [74.229779, 38.656224],\n              [74.353583, 38.655757],\n              [74.421952, 38.647812],\n              [74.455829, 38.632853],\n              [74.506336, 38.637528],\n              [74.546988, 38.607604],\n              [74.613509, 38.593105],\n              [74.639995, 38.599653],\n              [74.717603, 38.542102],\n              [74.78474, 38.538357],\n              [74.821697, 38.491062],\n              [74.862965, 38.484035],\n              [74.868508, 38.403883],\n              [74.834015, 38.361193],\n              [74.789668, 38.324581],\n              [74.806914, 38.285602],\n              [74.793363, 38.271039],\n              [74.816769, 38.215576],\n              [74.80445, 38.167128],\n              [74.821697, 38.10311],\n              [74.879595, 38.021122],\n              [74.92579, 38.01735],\n              [74.911008, 37.966884],\n              [74.919015, 37.908357],\n              [74.936877, 37.876241],\n              [74.917167, 37.845057],\n              [74.989848, 37.797783],\n              [75.006478, 37.770823],\n              [74.949196, 37.725395],\n              [74.923327, 37.717347],\n              [74.920863, 37.684675],\n              [74.891914, 37.668097],\n              [74.940573, 37.559061],\n              [75.000935, 37.53059],\n              [75.002167, 37.511604],\n              [75.035428, 37.500685],\n              [75.078543, 37.511129],\n              [75.090862, 37.486915],\n              [75.129666, 37.459367],\n              [75.153072, 37.414223],\n              [75.125971, 37.388075],\n              [75.140137, 37.355258],\n              [75.125971, 37.322427],\n              [75.078543, 37.318144],\n              [75.018181, 37.293867],\n              [74.927022, 37.277678],\n              [74.911008, 37.233378],\n              [74.816153, 37.216699],\n              [74.800139, 37.248147],\n              [74.753943, 37.281011],\n              [74.727458, 37.282916],\n              [74.665864, 37.23576],\n              [74.642458, 37.261485],\n              [74.598727, 37.258151],\n              [74.578401, 37.231472],\n              [74.54514, 37.2491],\n              [74.511263, 37.240048],\n              [74.477387, 37.19954],\n              [74.487858, 37.161871],\n              [74.465068, 37.147085],\n              [74.496481, 37.116072],\n              [74.498944, 37.072155],\n              [74.530357, 37.082182],\n              [74.56793, 37.032512],\n              [74.617205, 37.043499],\n              [74.632603, 37.066425],\n              [74.70898, 37.084569],\n              [74.739161, 37.028212],\n              [74.792747, 37.027257],\n              [74.806914, 37.054485],\n              [74.84695, 37.056873],\n              [74.84387, 37.0134],\n              [74.86974, 36.990458],\n              [74.893762, 36.939772],\n              [74.938725, 36.94312],\n              [74.927638, 36.978029],\n              [75.005862, 36.99476],\n              [75.032348, 37.016745],\n              [75.063145, 37.006231],\n              [75.172166, 37.013877],\n              [75.16847, 36.991892],\n              [75.244847, 36.963207],\n              [75.288579, 36.974682],\n              [75.345861, 36.960816],\n              [75.413614, 36.954599],\n              [75.396368, 36.904367],\n              [75.430245, 36.873255],\n              [75.434556, 36.83303],\n              [75.425933, 36.778883],\n              [75.458578, 36.720861],\n              [75.504773, 36.743404],\n              [75.536802, 36.729975],\n              [75.537418, 36.773131],\n              [75.588541, 36.762584],\n              [75.634121, 36.771693],\n              [75.724048, 36.750597],\n              [75.8072, 36.707908],\n              [75.871257, 36.666636],\n              [75.947018, 36.590752],\n              [75.924228, 36.566242],\n              [75.991981, 36.505654],\n              [76.035097, 36.409386],\n              [75.991365, 36.35205],\n              [75.998757, 36.312034],\n              [76.055423, 36.252695],\n              [76.060967, 36.225182],\n              [76.011691, 36.229044],\n              [76.016619, 36.165294],\n              [75.96796, 36.159013],\n              [75.936547, 36.13485],\n              [75.949482, 36.070056],\n              [75.982742, 36.031347],\n              [76.028322, 36.016827],\n              [76.044336, 36.026991],\n              [76.097307, 36.022635],\n              [76.117017, 35.975186],\n              [76.16506, 35.908807],\n              [76.146582, 35.839946],\n              [76.160133, 35.82442],\n              [76.221727, 35.823449],\n              [76.228502, 35.837035],\n              [76.298719, 35.841401],\n              [76.365857, 35.82442],\n              [76.369552, 35.86323],\n              [76.431762, 35.851589],\n              [76.471798, 35.886021],\n              [76.51553, 35.881173],\n              [76.55803, 35.923347],\n              [76.59745, 35.895718],\n              [76.579587, 35.866625],\n              [76.587595, 35.840431],\n              [76.566037, 35.819082],\n              [76.593754, 35.771996],\n              [76.69292, 35.747714],\n              [76.769297, 35.653917],\n              [76.848753, 35.668018],\n              [76.906651, 35.615005],\n              [76.967013, 35.591649],\n              [76.99781, 35.611113],\n              [77.072339, 35.591162],\n              [77.093281, 35.569746],\n              [77.195527, 35.519103],\n              [77.307628, 35.540533],\n              [77.331649, 35.530793],\n              [77.355055, 35.494257],\n              [77.396939, 35.467942],\n              [77.451758, 35.46063],\n              [77.518895, 35.482075],\n              [77.578025, 35.47574],\n              [77.590344, 35.460143],\n              [77.639619, 35.45478],\n              [77.657481, 35.477689],\n              [77.690742, 35.448443],\n              [77.735706, 35.461605],\n              [77.757879, 35.497181],\n              [77.797299, 35.491334],\n              [77.816394, 35.518616],\n              [77.85643, 35.487436],\n              [77.870596, 35.495232],\n              [77.914944, 35.465017],\n              [77.917408, 35.490847],\n              [77.951284, 35.478664],\n              [78.009799, 35.491821],\n              [78.029509, 35.469404],\n              [78.048603, 35.491334],\n              [78.140378, 35.494745],\n              [78.113892, 35.466967],\n              [78.107117, 35.437229],\n              [78.046755, 35.384063],\n              [78.013494, 35.366008],\n              [78.020885, 35.315237],\n              [78.01719, 35.228267],\n              [78.060306, 35.180344],\n              [78.062769, 35.114772],\n              [78.078784, 35.100084],\n              [78.124979, 35.108407],\n              [78.150849, 35.069721],\n              [78.123131, 35.036897],\n              [78.160704, 34.990823],\n              [78.201972, 34.974642],\n              [78.182262, 34.936874],\n              [78.206283, 34.891726],\n              [78.237696, 34.882398],\n              [78.230921, 34.776288],\n              [78.21429, 34.760556],\n              [78.213059, 34.717771],\n              [78.267261, 34.705472],\n              [78.265413, 34.651335],\n              [78.280812, 34.623269],\n              [78.346101, 34.60406],\n              [78.397224, 34.605538],\n              [78.427405, 34.594207],\n              [78.436029, 34.543942],\n              [78.492695, 34.578441],\n              [78.542586, 34.574499],\n              [78.559832, 34.55725],\n              [78.562912, 34.51288],\n              [78.58139, 34.505483],\n              [78.634977, 34.538026],\n              [78.708274, 34.522249],\n              [78.715049, 34.502031],\n              [78.758781, 34.481807],\n              [78.742766, 34.45467],\n              [78.809288, 34.432955],\n              [78.878273, 34.391481],\n              [78.899831, 34.354929],\n              [78.958961, 34.386049],\n              [78.973128, 34.362833],\n              [79.039649, 34.33467],\n              [79.048888, 34.348506],\n              [79.0107, 34.399877],\n              [79.039033, 34.421601],\n              [79.072294, 34.412714],\n              [79.161605, 34.441345],\n              [79.179467, 34.422588],\n              [79.241677, 34.415183],\n              [79.274322, 34.435916],\n              [79.326677, 34.44332],\n              [79.363017, 34.428018],\n              [79.435082, 34.447761],\n              [79.504683, 34.45467],\n              [79.545335, 34.476381],\n              [79.58106, 34.456151],\n              [79.675914, 34.451216],\n              [79.699936, 34.477861],\n              [79.735661, 34.471447],\n              [79.801566, 34.478847],\n              [79.861312, 34.528166],\n              [79.84345, 34.55725],\n              [79.88595, 34.642965],\n              [79.866856, 34.671517],\n              [79.906892, 34.683821],\n              [79.898268, 34.732035],\n              [79.947544, 34.821008],\n              [79.926602, 34.849499],\n              [79.961094, 34.862759],\n              [79.996819, 34.856375],\n              [80.003594, 34.895162],\n              [80.034391, 34.902033],\n              [80.041782, 34.943252],\n              [80.02392, 34.971209],\n              [80.04363, 35.022196],\n              [80.031311, 35.034447],\n              [80.078123, 35.076578],\n              [80.118159, 35.066293],\n              [80.23026, 35.147565],\n              [80.223484, 35.177409],\n              [80.257977, 35.203331],\n              [80.362687, 35.20871],\n              [80.267832, 35.295701],\n              [80.286926, 35.35283],\n              [80.321419, 35.38699],\n              [80.375006, 35.387966],\n              [80.432904, 35.449418],\n              [80.444607, 35.417235],\n              [80.514824, 35.391869],\n              [80.532686, 35.404553],\n              [80.56841, 35.391381],\n              [80.599823, 35.409431],\n              [80.65649, 35.393821],\n              [80.690982, 35.364544],\n              [80.689135, 35.339162],\n              [80.759968, 35.334768],\n              [80.844351, 35.345508],\n              [80.894242, 35.324027],\n              [80.924423, 35.330862],\n              [80.963844, 35.310842],\n              [81.026053, 35.31133],\n              [81.002648, 35.334768],\n              [81.030981, 35.337209],\n              [81.031597, 35.380648],\n              [81.054387, 35.402602],\n              [81.09935, 35.40748],\n              [81.103662, 35.386015],\n              [81.142466, 35.365032],\n              [81.191741, 35.36552],\n              [81.219458, 35.319144],\n              [81.26627, 35.322562],\n              [81.285364, 35.345508],\n              [81.314313, 35.337209],\n              [81.363588, 35.354783],\n              [81.385762, 35.335256],\n              [81.441196, 35.333303],\n              [81.447972, 35.318167],\n              [81.504638, 35.279092],\n              [81.513261, 35.23511],\n              [81.68634, 35.235599],\n              [81.736847, 35.26248],\n              [81.804601, 35.270786],\n              [81.853876, 35.25857],\n              [81.927789, 35.271275],\n              [81.955506, 35.307423],\n              [81.99123, 35.30547],\n              [82.030034, 35.321585],\n              [82.05344, 35.35039],\n              [82.029419, 35.426013],\n              [82.034346, 35.451855],\n              [82.071302, 35.450393],\n              [82.086701, 35.467454],\n              [82.164925, 35.495719],\n              [82.189563, 35.513258],\n              [82.234526, 35.520565],\n              [82.263475, 35.547837],\n              [82.2992, 35.544916],\n              [82.328149, 35.559523],\n              [82.350323, 35.611113],\n              [82.336156, 35.651486],\n              [82.392823, 35.656349],\n              [82.424852, 35.712736],\n              [82.468583, 35.717595],\n              [82.501844, 35.701073],\n              [82.546192, 35.708362],\n              [82.628727, 35.692324],\n              [82.652133, 35.67288],\n              [82.731589, 35.637868],\n              [82.780249, 35.666073],\n              [82.795031, 35.688436],\n              [82.873871, 35.688922],\n              [82.894813, 35.673852],\n              [82.967494, 35.667532],\n              [82.956407, 35.636409],\n              [82.981661, 35.599922],\n              [82.971806, 35.548324],\n              [82.998907, 35.484512],\n              [83.067892, 35.46258],\n              [83.088834, 35.425526],\n              [83.127022, 35.398699],\n              [83.178145, 35.38943],\n              [83.251442, 35.417722],\n              [83.280391, 35.401138],\n              [83.333978, 35.397236],\n              [83.405427, 35.380648],\n              [83.449159, 35.382111],\n              [83.502745, 35.360639],\n              [83.540318, 35.364056],\n              [83.54155, 35.341603],\n              [83.599448, 35.351366],\n              [83.622238, 35.335256],\n              [83.677672, 35.361128],\n              [83.785462, 35.36308],\n              [83.79778, 35.354783],\n              [83.885244, 35.367472],\n              [83.906186, 35.40309],\n              [84.005968, 35.422599],\n              [84.077417, 35.400163],\n              [84.095895, 35.362592],\n              [84.140859, 35.379184],\n              [84.160569, 35.359663],\n              [84.200605, 35.381135],\n              [84.274517, 35.404065],\n              [84.333032, 35.413821],\n              [84.424191, 35.466479],\n              [84.45314, 35.473303],\n              [84.475929, 35.516181],\n              [84.448828, 35.550272],\n              [84.513502, 35.564391],\n              [84.570168, 35.588242],\n              [84.628067, 35.595055],\n              [84.704443, 35.616951],\n              [84.729081, 35.613546],\n              [84.798066, 35.647595],\n              [84.920022, 35.696213],\n              [84.973608, 35.709334],\n              [84.99455, 35.737028],\n              [85.053065, 35.752086],\n              [85.146071, 35.742371],\n              [85.271107, 35.788989],\n              [85.341324, 35.753543],\n              [85.373969, 35.700101],\n              [85.518715, 35.680658],\n              [85.566142, 35.6403],\n              [85.612953, 35.651486],\n              [85.65299, 35.731199],\n              [85.691178, 35.751114],\n              [85.811286, 35.778794],\n              [85.835308, 35.771996],\n              [85.903677, 35.78462],\n              [85.949256, 35.778794],\n              [86.035488, 35.846738],\n              [86.05335, 35.842857],\n              [86.090306, 35.876809],\n              [86.093386, 35.906868],\n              [86.129111, 35.941761],\n              [86.150668, 36.00424],\n              [86.173458, 36.008113],\n              [86.199944, 36.047801],\n              [86.182081, 36.064734],\n              [86.187625, 36.130983],\n              [86.248603, 36.141616],\n              [86.2794, 36.170608],\n              [86.35824, 36.168676],\n              [86.392733, 36.206834],\n              [86.454943, 36.221319],\n              [86.515305, 36.205385],\n              [86.531935, 36.227113],\n              [86.599072, 36.222285],\n              [86.69947, 36.24449],\n              [86.746282, 36.291777],\n              [86.836209, 36.291294],\n              [86.86331, 36.299977],\n              [86.887332, 36.262829],\n              [86.931064, 36.265242],\n              [86.943998, 36.284058],\n              [86.996353, 36.308658],\n              [87.051788, 36.2966],\n              [87.08628, 36.310587],\n              [87.149106, 36.297565],\n              [87.161425, 36.325535],\n              [87.193454, 36.349158],\n              [87.292004, 36.358797],\n              [87.348055, 36.393008],\n              [87.363453, 36.420463],\n              [87.386859, 36.412757],\n              [87.426895, 36.42576],\n              [87.460155, 36.409868],\n              [87.470626, 36.354459],\n              [87.570409, 36.342409],\n              [87.6203, 36.360243],\n              [87.731785, 36.384818],\n              [87.767509, 36.3747],\n              [87.826023, 36.391563],\n              [87.838342, 36.383855],\n              [87.919646, 36.39349],\n              [87.95845, 36.408423],\n              [87.983088, 36.437797],\n              [88.006494, 36.430575],\n              [88.092109, 36.43539],\n              [88.134609, 36.427205],\n              [88.182652, 36.452721],\n              [88.222688, 36.447426],\n              [88.241782, 36.468605],\n              [88.282434, 36.470049],\n              [88.366202, 36.458016],\n              [88.356963, 36.477268],\n              [88.41055, 36.473418],\n              [88.470912, 36.48208],\n              [88.498629, 36.446463],\n              [88.573158, 36.461386],\n              [88.618121, 36.428168],\n              [88.623665, 36.389636],\n              [88.690186, 36.367954],\n              [88.766563, 36.292259],\n              [88.783809, 36.291777],\n              [88.802903, 36.33807],\n              [88.838628, 36.353496],\n              [88.870657, 36.348193],\n              [88.926091, 36.36458],\n              [88.964279, 36.318785],\n              [89.013554, 36.315409],\n              [89.054822, 36.291777],\n              [89.10225, 36.281164],\n              [89.126887, 36.254626],\n              [89.198952, 36.260417],\n              [89.232213, 36.295636],\n              [89.292575, 36.231457],\n              [89.335075, 36.23725],\n              [89.375727, 36.228078],\n              [89.490291, 36.151281],\n              [89.594385, 36.126632],\n              [89.614711, 36.109712],\n              [89.711414, 36.093272],\n              [89.766848, 36.073925],\n              [89.819819, 36.080697],\n              [89.914058, 36.079246],\n              [89.941159, 36.067637],\n              [89.944855, 36.140649],\n              [89.997825, 36.168193],\n              [90.019999, 36.213594],\n              [90.028006, 36.258486],\n              [90.003369, 36.278752],\n              [90.043405, 36.276822],\n              [90.058188, 36.255591],\n              [90.145651, 36.239181],\n              [90.130252, 36.2078],\n              [90.198006, 36.187516],\n              [90.23681, 36.160462],\n              [90.325505, 36.159496],\n              [90.424055, 36.133883],\n              [90.478258, 36.13195],\n              [90.534925, 36.147899],\n              [90.613149, 36.126632],\n              [90.659344, 36.13485],\n              [90.776373, 36.086501],\n              [90.815793, 36.035703],\n              [90.850285, 36.016827],\n              [90.922966, 36.028927],\n              [90.979017, 36.106811],\n              [91.081263, 36.088436],\n              [91.124994, 36.115514],\n              [91.09235, 36.163844],\n              [91.096045, 36.219871],\n              [91.051698, 36.238215],\n              [91.07264, 36.299012],\n              [91.026444, 36.323607],\n              [91.051698, 36.433946],\n              [91.028292, 36.443093],\n              [91.039995, 36.474861],\n              [91.035683, 36.529703],\n              [91.011662, 36.539801],\n              [90.905104, 36.560474],\n              [90.831191, 36.55807],\n              [90.810865, 36.585466],\n              [90.741264, 36.585947],\n              [90.72217, 36.620058],\n              [90.730793, 36.655594],\n              [90.706156, 36.658955],\n              [90.720938, 36.708868],\n              [90.754815, 36.721341],\n              [90.727098, 36.755872],\n              [90.732025, 36.825844],\n              [90.758511, 36.825844],\n              [90.853981, 36.915373],\n              [90.924198, 36.921115],\n              [90.983944, 36.913459],\n              [91.036915, 36.929727],\n              [91.051698, 36.96751],\n              [91.126842, 36.978507],\n              [91.133618, 37.007665],\n              [91.181045, 37.025345],\n              [91.216153, 37.010054],\n              [91.303617, 37.012444],\n              [91.291298, 37.042544],\n              [91.303617, 37.083136],\n              [91.286371, 37.105095],\n              [91.280211, 37.163779],\n              [91.1909, 37.205737],\n              [91.194596, 37.273868],\n              [91.134849, 37.324331],\n              [91.136081, 37.355734],\n              [91.113292, 37.387124],\n              [91.099741, 37.447965],\n              [91.073256, 37.475992],\n              [91.019669, 37.493088],\n              [90.958075, 37.477891],\n              [90.911879, 37.519674],\n              [90.865684, 37.53059],\n              [90.882314, 37.575664],\n              [90.854597, 37.604117],\n              [90.820104, 37.613599],\n              [90.777605, 37.648672],\n              [90.643946, 37.696988],\n              [90.586663, 37.703144],\n              [90.579272, 37.720661],\n              [90.519526, 37.730601],\n              [90.516446, 38.207111],\n              [90.531229, 38.319886],\n              [90.401882, 38.311434],\n              [90.361846, 38.300163],\n              [90.352607, 38.233441],\n              [90.280542, 38.238142],\n              [90.137644, 38.340543],\n              [90.179528, 38.396848],\n              [90.129636, 38.400131],\n              [90.111774, 38.418889],\n              [90.111774, 38.477945],\n              [90.130868, 38.494341],\n              [90.248513, 38.491531],\n              [90.315034, 38.501835],\n              [90.353222, 38.482162],\n              [90.427135, 38.493873],\n              [90.465323, 38.521971],\n              [90.463476, 38.556611],\n              [90.525685, 38.561291],\n              [90.560794, 38.593573],\n              [90.608837, 38.594508],\n              [90.606374, 38.610878],\n              [90.645794, 38.635191],\n              [90.619308, 38.664636],\n              [90.65996, 38.674449],\n              [90.724634, 38.658094],\n              [90.899561, 38.679588],\n              [90.970394, 38.697806],\n              [90.992567, 38.695003],\n              [91.188436, 38.73096],\n              [91.242639, 38.752433],\n              [91.298689, 38.746365],\n              [91.446515, 38.813546],\n              [91.501333, 38.815411],\n              [91.681188, 38.852706],\n              [91.694738, 38.86622],\n              [91.806223, 38.872744],\n              [91.87952, 38.884391],\n              [91.880752, 38.899297],\n              [91.966368, 38.930961],\n              [92.10865, 38.963541],\n              [92.173323, 38.960749],\n              [92.197961, 38.983548],\n              [92.263866, 39.002153],\n              [92.380279, 38.999828],\n              [92.416003, 39.010524],\n              [92.41046, 39.03842],\n              [92.366728, 39.059335],\n              [92.366112, 39.096037],\n              [92.343938, 39.146181],\n              [92.339011, 39.236628],\n              [92.378431, 39.258411],\n              [92.52564, 39.368611],\n              [92.639589, 39.514196],\n              [92.687632, 39.657174],\n              [92.745531, 39.868331],\n              [92.796654, 40.153897],\n              [92.906907, 40.310609],\n              [92.920458, 40.391792],\n              [92.928465, 40.572504],\n              [93.506216, 40.648376],\n              [93.760599, 40.664721],\n              [93.820961, 40.793519],\n              [93.809874, 40.879548],\n              [93.908424, 40.983539],\n              [94.01067, 41.114875],\n              [94.184365, 41.268444],\n              [94.534219, 41.505966],\n              [94.750413, 41.538227],\n              [94.809543, 41.619256],\n              [94.861898, 41.668451],\n              [94.969072, 41.718948],\n              [95.011572, 41.726541],\n              [95.110738, 41.768513],\n              [95.135991, 41.772976],\n              [95.16494, 41.735474],\n              [95.199433, 41.719395],\n              [95.194505, 41.694821],\n              [95.247476, 41.61344],\n              [95.299831, 41.565994],\n              [95.335556, 41.644305],\n              [95.39407, 41.693481],\n              [95.445193, 41.719841],\n              [95.57146, 41.796181],\n              [95.65646, 41.826067],\n              [95.759322, 41.835878],\n              [95.801206, 41.848361],\n              [95.855408, 41.849699],\n              [95.998306, 41.906289],\n              [96.054973, 41.936124],\n              [96.117183, 41.985966],\n              [96.137509, 42.019765],\n              [96.13874, 42.05399],\n              [96.077147, 42.149457],\n              [96.178161, 42.21775],\n              [96.040806, 42.326688],\n              [96.042038, 42.352787],\n              [96.06606, 42.414674],\n              [95.978596, 42.436762],\n              [96.0174, 42.482239],\n              [96.02356, 42.542675],\n              [96.072219, 42.569566],\n              [96.103632, 42.604375],\n              [96.166458, 42.623314],\n              [96.386348, 42.727592]\n            ]\n          ]\n        ]\n      }\n    },\n    {\n      \"type\": \"Feature\",\n      \"properties\": {\n        \"adcode\": 710000,\n        \"name\": \"台湾省\",\n        \"center\": [121.509062, 25.044332],\n        \"centroid\": [120.971485, 23.749452],\n        \"childrenNum\": 0,\n        \"level\": \"province\",\n        \"parent\": { \"adcode\": 100000 },\n        \"subFeatureIndex\": 31,\n        \"acroutes\": [100000]\n      },\n      \"geometry\": {\n        \"type\": \"MultiPolygon\",\n        \"coordinates\": [\n          [\n            [\n              [120.443706, 22.441432],\n              [120.517619, 22.408793],\n              [120.569973, 22.361757],\n              [120.640806, 22.241605],\n              [120.659285, 22.154056],\n              [120.661748, 22.067007],\n              [120.651277, 22.033171],\n              [120.667908, 21.983235],\n              [120.701784, 21.927174],\n              [120.743052, 21.915515],\n              [120.781857, 21.923843],\n              [120.854537, 21.883309],\n              [120.873016, 21.897191],\n              [120.86624, 21.984345],\n              [120.907508, 22.033171],\n              [120.912436, 22.086418],\n              [120.903197, 22.12634],\n              [120.914899, 22.302525],\n              [120.981421, 22.528248],\n              [121.014682, 22.584069],\n              [121.03316, 22.650914],\n              [121.078739, 22.669691],\n              [121.170514, 22.723247],\n              [121.21055, 22.770711],\n              [121.237652, 22.836362],\n              [121.276456, 22.877171],\n              [121.324499, 22.945526],\n              [121.35468, 23.00999],\n              [121.370695, 23.084334],\n              [121.409499, 23.1025],\n              [121.430441, 23.137175],\n              [121.415042, 23.196047],\n              [121.440296, 23.271937],\n              [121.479716, 23.322507],\n              [121.497578, 23.419744],\n              [121.5216, 23.483431],\n              [121.522832, 23.538858],\n              [121.587505, 23.760878],\n              [121.621382, 23.920718],\n              [121.65957, 24.007125],\n              [121.63986, 24.064514],\n              [121.643556, 24.097843],\n              [121.678048, 24.133895],\n              [121.689135, 24.174303],\n              [121.809243, 24.339083],\n              [121.82649, 24.423572],\n              [121.867758, 24.47914],\n              [121.88562, 24.529784],\n              [121.892395, 24.617953],\n              [121.86283, 24.671261],\n              [121.841272, 24.734329],\n              [121.844968, 24.836476],\n              [121.933047, 24.938539],\n              [122.012503, 25.001471],\n              [121.98109, 25.030757],\n              [121.947214, 25.031841],\n              [121.917033, 25.138076],\n              [121.841888, 25.135367],\n              [121.782142, 25.160287],\n              [121.745186, 25.161912],\n              [121.707613, 25.191701],\n              [121.700222, 25.226896],\n              [121.655259, 25.242054],\n              [121.62323, 25.29455],\n              [121.585041, 25.309159],\n              [121.53515, 25.307535],\n              [121.444607, 25.27074],\n              [121.413194, 25.238806],\n              [121.371926, 25.159746],\n              [121.319572, 25.140785],\n              [121.209318, 25.12724],\n              [121.132942, 25.078466],\n              [121.102145, 25.075214],\n              [121.024537, 25.040517],\n              [121.009754, 24.993878],\n              [120.961095, 24.940167],\n              [120.914899, 24.864715],\n              [120.89211, 24.767482],\n              [120.82374, 24.688118],\n              [120.762147, 24.658208],\n              [120.68885, 24.600542],\n              [120.642654, 24.490033],\n              [120.589068, 24.43229],\n              [120.546568, 24.370159],\n              [120.520698, 24.311816],\n              [120.470807, 24.242533],\n              [120.451713, 24.182493],\n              [120.391967, 24.118055],\n              [120.316206, 23.984708],\n              [120.278018, 23.92783],\n              [120.245989, 23.840276],\n              [120.175156, 23.807427],\n              [120.102476, 23.701162],\n              [120.095084, 23.58768],\n              [120.12157, 23.504836],\n              [120.108019, 23.341191],\n              [120.081534, 23.291728],\n              [120.018708, 23.073322],\n              [120.029795, 23.048544],\n              [120.133272, 23.000625],\n              [120.149287, 22.896468],\n              [120.20041, 22.721039],\n              [120.274323, 22.560307],\n              [120.297112, 22.531565],\n              [120.443706, 22.441432]\n            ]\n          ],\n          [\n            [\n              [124.542782, 25.903886],\n              [124.584666, 25.908731],\n              [124.566804, 25.941563],\n              [124.542782, 25.903886]\n            ]\n          ],\n          [\n            [\n              [123.445178, 25.726102],\n              [123.469816, 25.712623],\n              [123.50862, 25.722867],\n              [123.512316, 25.755212],\n              [123.479055, 25.768687],\n              [123.445794, 25.749822],\n              [123.445178, 25.726102]\n            ]\n          ],\n          [\n            [\n              [119.646064, 23.550928],\n              [119.691028, 23.547087],\n              [119.678093, 23.600294],\n              [119.61034, 23.604132],\n              [119.601717, 23.575613],\n              [119.566608, 23.584937],\n              [119.562297, 23.530627],\n              [119.578927, 23.502641],\n              [119.609108, 23.503738],\n              [119.646064, 23.550928]\n            ]\n          ],\n          [\n            [\n              [123.666916, 25.914114],\n              [123.706952, 25.91519],\n              [123.689706, 25.939949],\n              [123.666916, 25.914114]\n            ]\n          ],\n          [\n            [\n              [119.506246, 23.625518],\n              [119.506246, 23.577259],\n              [119.47237, 23.556962],\n              [119.519181, 23.559705],\n              [119.52534, 23.62497],\n              [119.506246, 23.625518]\n            ]\n          ],\n          [\n            [\n              [119.497623, 23.38679],\n              [119.495159, 23.349982],\n              [119.516717, 23.349982],\n              [119.497623, 23.38679]\n            ]\n          ],\n          [\n            [\n              [119.557369, 23.666634],\n              [119.608492, 23.620035],\n              [119.615268, 23.661153],\n              [119.586318, 23.675952],\n              [119.557369, 23.666634]\n            ]\n          ],\n          [\n            [\n              [122.066706, 25.6247],\n              [122.087032, 25.61067],\n              [122.092575, 25.639268],\n              [122.066706, 25.6247]\n            ]\n          ],\n          [\n            [\n              [121.468013, 22.67687],\n              [121.474788, 22.643734],\n              [121.513592, 22.631582],\n              [121.514824, 22.676318],\n              [121.468013, 22.67687]\n            ]\n          ],\n          [\n            [\n              [121.510513, 22.086972],\n              [121.507433, 22.048704],\n              [121.533918, 22.022076],\n              [121.594281, 21.995443],\n              [121.604752, 22.022631],\n              [121.575186, 22.037055],\n              [121.575802, 22.0842],\n              [121.510513, 22.086972]\n            ]\n          ],\n          [\n            [\n              [122.097503, 25.499987],\n              [122.110438, 25.465952],\n              [122.122141, 25.495666],\n              [122.097503, 25.499987]\n            ]\n          ],\n          [\n            [\n              [119.421247, 23.216949],\n              [119.436029, 23.186146],\n              [119.453275, 23.216399],\n              [119.421247, 23.216949]\n            ]\n          ],\n          [\n            [\n              [120.355011, 22.327439],\n              [120.395663, 22.342385],\n              [120.383344, 22.355669],\n              [120.355011, 22.327439]\n            ]\n          ]\n        ]\n      }\n    },\n    {\n      \"type\": \"Feature\",\n      \"properties\": {\n        \"adcode\": 810000,\n        \"name\": \"香港特别行政区\",\n        \"center\": [114.173355, 22.320048],\n        \"centroid\": [114.134357, 22.377366],\n        \"childrenNum\": 18,\n        \"level\": \"province\",\n        \"parent\": { \"adcode\": 100000 },\n        \"subFeatureIndex\": 32,\n        \"acroutes\": [100000]\n      },\n      \"geometry\": {\n        \"type\": \"MultiPolygon\",\n        \"coordinates\": [\n          [\n            [\n              [114.031778, 22.503923],\n              [114.000981, 22.491206],\n              [113.977575, 22.45692],\n              [113.918445, 22.418199],\n              [113.920293, 22.367845],\n              [113.951706, 22.355116],\n              [113.956633, 22.359543],\n              [113.980039, 22.366185],\n              [114.026234, 22.34792],\n              [113.955401, 22.298649],\n              [113.969568, 22.321349],\n              [113.898119, 22.308615],\n              [113.889496, 22.271514],\n              [113.8433, 22.229418],\n              [113.84946, 22.191188],\n              [113.899351, 22.215568],\n              [113.935691, 22.205041],\n              [113.981271, 22.229972],\n              [113.996669, 22.206149],\n              [114.026234, 22.229418],\n              [114.004676, 22.239389],\n              [114.02993, 22.263207],\n              [114.034857, 22.300864],\n              [114.069966, 22.326885],\n              [114.121089, 22.320795],\n              [114.145726, 22.300864],\n              [114.120473, 22.272068],\n              [114.164821, 22.226648],\n              [114.200545, 22.232188],\n              [114.203009, 22.206703],\n              [114.265835, 22.200608],\n              [114.248588, 22.274837],\n              [114.262139, 22.294773],\n              [114.284929, 22.263761],\n              [114.313262, 22.264315],\n              [114.315726, 22.299203],\n              [114.315726, 22.299756],\n              [114.278153, 22.328546],\n              [114.283081, 22.386661],\n              [114.322501, 22.385554],\n              [114.323117, 22.385554],\n              [114.323733, 22.385001],\n              [114.323733, 22.384447],\n              [114.356994, 22.340171],\n              [114.394566, 22.361757],\n              [114.385327, 22.41156],\n              [114.406269, 22.432582],\n              [114.406269, 22.433688],\n              [114.376088, 22.436454],\n              [114.325581, 22.479041],\n              [114.278769, 22.435901],\n              [114.220255, 22.427603],\n              [114.205473, 22.449729],\n              [114.23319, 22.466875],\n              [114.2529, 22.445304],\n              [114.340979, 22.50337],\n              [114.309566, 22.497288],\n              [114.28924, 22.52272],\n              [114.263987, 22.541515],\n              [114.263371, 22.541515],\n              [114.260291, 22.547595],\n              [114.232574, 22.528801],\n              [114.232574, 22.539857],\n              [114.222719, 22.553122],\n              [114.166052, 22.559201],\n              [114.156813, 22.543726],\n              [114.095219, 22.534329],\n              [114.082285, 22.512216],\n              [114.031778, 22.503923]\n            ]\n          ],\n          [\n            [\n              [114.142647, 22.213906],\n              [114.123553, 22.238836],\n              [114.120473, 22.177888],\n              [114.154965, 22.177888],\n              [114.166668, 22.205041],\n              [114.142647, 22.213906]\n            ]\n          ],\n          [\n            [\n              [114.305871, 22.372273],\n              [114.313878, 22.340724],\n              [114.332972, 22.353455],\n              [114.305255, 22.372826],\n              [114.305871, 22.372273]\n            ]\n          ],\n          [\n            [\n              [114.320037, 22.381127],\n              [114.323733, 22.384447],\n              [114.323733, 22.385001],\n              [114.323117, 22.385554],\n              [114.322501, 22.385554],\n              [114.319421, 22.382234],\n              [114.320037, 22.38168],\n              [114.320037, 22.381127]\n            ]\n          ],\n          [\n            [\n              [114.305871, 22.369506],\n              [114.305871, 22.372273],\n              [114.305255, 22.372826],\n              [114.305871, 22.369506]\n            ]\n          ],\n          [\n            [\n              [114.315726, 22.299203],\n              [114.316958, 22.298649],\n              [114.316342, 22.30031],\n              [114.315726, 22.299756],\n              [114.315726, 22.299203]\n            ]\n          ],\n          [\n            [\n              [114.319421, 22.382234],\n              [114.320037, 22.381127],\n              [114.320037, 22.38168],\n              [114.319421, 22.382234]\n            ]\n          ],\n          [\n            [\n              [114.372392, 22.32301],\n              [114.373008, 22.323564],\n              [114.372392, 22.323564],\n              [114.372392, 22.32301]\n            ]\n          ],\n          [\n            [\n              [114.323733, 22.297541],\n              [114.324349, 22.297541],\n              [114.323733, 22.298095],\n              [114.323733, 22.297541]\n            ]\n          ]\n        ]\n      }\n    },\n    {\n      \"type\": \"Feature\",\n      \"properties\": {\n        \"adcode\": 820000,\n        \"name\": \"澳门特别行政区\",\n        \"center\": [113.54909, 22.198951],\n        \"centroid\": [113.566988, 22.159307],\n        \"childrenNum\": 8,\n        \"level\": \"province\",\n        \"parent\": { \"adcode\": 100000 },\n        \"subFeatureIndex\": 33,\n        \"acroutes\": [100000]\n      },\n      \"geometry\": {\n        \"type\": \"MultiPolygon\",\n        \"coordinates\": [\n          [\n            [\n              [113.554425, 22.107489],\n              [113.6037, 22.132438],\n              [113.575983, 22.194513],\n              [113.558736, 22.212244],\n              [113.53841, 22.209473],\n              [113.534715, 22.174009],\n              [113.554425, 22.142416],\n              [113.554425, 22.107489]\n            ]\n          ],\n          [\n            [\n              [113.586453, 22.201162],\n              [113.575983, 22.201162],\n              [113.575983, 22.194513],\n              [113.586453, 22.201162]\n            ]\n          ]\n        ]\n      }\n    },\n    {\n      \"type\": \"Feature\",\n      \"properties\": { \"name\": \"\", \"adchar\": \"JD\", \"adcode\": \"100000_JD\" },\n      \"geometry\": {\n        \"type\": \"MultiPolygon\",\n        \"coordinates\": [\n          [\n            [\n              [122.51865306, 23.46078502],\n              [122.79861399, 24.57367379],\n              [122.79889322, 24.57678999],\n              [122.79819583, 24.57983997],\n              [122.79659008, 24.58252516],\n              [122.79423315, 24.58458272],\n              [122.79135575, 24.58581125],\n              [122.78823955, 24.58609049],\n              [122.78518957, 24.5853931],\n              [122.78250438, 24.58378734],\n              [122.78044682, 24.58143041],\n              [122.77921829, 24.57855302],\n              [122.49925737, 23.46566424],\n              [122.49897813, 23.46254804],\n              [122.49967552, 23.45949807],\n              [122.50128127, 23.45681287],\n              [122.5036382, 23.45475531],\n              [122.5065156, 23.45352678],\n              [122.50963181, 23.45324755],\n              [122.51268178, 23.45394494],\n              [122.51536697, 23.45555069],\n              [122.51742454, 23.45790762],\n              [122.51865306, 23.46078502]\n            ]\n          ],\n          [\n            [\n              [121.17202617, 20.8054593],\n              [121.90938804, 21.68743347],\n              [121.9109946, 21.69011818],\n              [121.91169291, 21.69316794],\n              [121.91141462, 21.69628423],\n              [121.91018696, 21.699162],\n              [121.9081301, 21.70151955],\n              [121.9054454, 21.70312611],\n              [121.90239563, 21.70382443],\n              [121.89927934, 21.70354613],\n              [121.89640158, 21.70231847],\n              [121.89404403, 21.70026162],\n              [121.15668216, 20.81828744],\n              [121.1550756, 20.81560273],\n              [121.15437729, 20.81255297],\n              [121.15465558, 20.80943668],\n              [121.15588324, 20.80655891],\n              [121.1579401, 20.80420136],\n              [121.1606248, 20.8025948],\n              [121.16367457, 20.80189649],\n              [121.16679085, 20.80217478],\n              [121.16966862, 20.80340244],\n              [121.17202617, 20.8054593]\n            ]\n          ],\n          [\n            [\n              [119.47366172, 18.00707291],\n              [120.02569734, 19.02403788],\n              [120.02674143, 19.02698721],\n              [120.02682302, 19.03011484],\n              [120.02593412, 19.0331146],\n              [120.02416175, 19.03569286],\n              [120.02167941, 19.03759723],\n              [120.01873007, 19.03864132],\n              [120.01560245, 19.03872291],\n              [120.01260269, 19.03783401],\n              [120.01002443, 19.03606165],\n              [120.00812005, 19.0335793],\n              [119.45608443, 18.01661433],\n              [119.45504035, 18.01366499],\n              [119.45495876, 18.01053737],\n              [119.45584765, 18.00753761],\n              [119.45762002, 18.00495935],\n              [119.46010237, 18.00305497],\n              [119.4630517, 18.00201089],\n              [119.46617933, 18.0019293],\n              [119.46917909, 18.0028182],\n              [119.47175735, 18.00459056],\n              [119.47366172, 18.00707291]\n            ]\n          ],\n          [\n            [\n              [119.0726757, 15.04098494],\n              [119.0726757, 16.04388528],\n              [119.07218626, 16.04697545],\n              [119.07076587, 16.04976313],\n              [119.06855355, 16.05197545],\n              [119.06576587, 16.05339584],\n              [119.0626757, 16.05388528],\n              [119.05958553, 16.05339584],\n              [119.05679784, 16.05197545],\n              [119.05458553, 16.04976313],\n              [119.05316513, 16.04697545],\n              [119.0526757, 16.04388528],\n              [119.0526757, 15.04105889],\n              [119.0521839, 15.00781004],\n              [119.05262758, 15.00471297],\n              [119.05400659, 15.00190458],\n              [119.05618595, 14.99965979],\n              [119.05895232, 14.99819832],\n              [119.06203491, 14.99766324],\n              [119.06513198, 14.99810691],\n              [119.06794036, 14.99948592],\n              [119.07018516, 15.00166528],\n              [119.07164663, 15.00443165],\n              [119.07218171, 15.00751424],\n              [119.0726746, 15.04083704],\n              [119.0726757, 15.04098494]\n            ]\n          ],\n          [\n            [\n              [118.68646749, 11.18959191],\n              [118.52518702, 10.91547751],\n              [118.52404181, 10.91256595],\n              [118.52385237, 10.909443],\n              [118.52463726, 10.90641436],\n              [118.52631962, 10.9037765],\n              [118.5287348, 10.90178762],\n              [118.53164636, 10.90064241],\n              [118.53476931, 10.90045298],\n              [118.53779795, 10.90123786],\n              [118.54043581, 10.90292022],\n              [118.54242469, 10.9053354],\n              [118.70409227, 11.18010771],\n              [118.70476212, 11.18147468],\n              [118.87431591, 11.606662],\n              [118.87459939, 11.60747236],\n              [118.98894963, 11.98573108],\n              [118.98937534, 11.98883067],\n              [118.9888224, 11.99191011],\n              [118.98734492, 11.99466796],\n              [118.98508753, 11.99683427],\n              [118.98227119, 11.99819697],\n              [118.9791716, 11.99862269],\n              [118.97609216, 11.99806975],\n              [118.97333431, 11.99659227],\n              [118.97116801, 11.99433487],\n              [118.9698053, 11.99151854],\n              [118.85557939, 11.6136711],\n              [118.68646749, 11.18959191]\n            ]\n          ],\n          [\n            [\n              [115.54466883, 7.14672265],\n              [116.2504858, 7.979279],\n              [116.25211077, 7.98195261],\n              [116.25283001, 7.9849975],\n              [116.25257312, 7.98811563],\n              [116.25136525, 7.99100176],\n              [116.24932463, 7.99337338],\n              [116.24665102, 7.99499834],\n              [116.24360613, 7.99571758],\n              [116.240488, 7.99546069],\n              [116.23760187, 7.99425282],\n              [116.23523025, 7.99221221],\n              [115.52941328, 7.15965587],\n              [115.52778832, 7.15698226],\n              [115.52706908, 7.15393736],\n              [115.52732596, 7.15081924],\n              [115.52853383, 7.1479331],\n              [115.53057445, 7.14556148],\n              [115.53324806, 7.14393652],\n              [115.53629295, 7.14321728],\n              [115.53941108, 7.14347417],\n              [115.54229721, 7.14468204],\n              [115.54466883, 7.14672265]\n            ]\n          ],\n          [\n            [\n              [112.30705249, 3.53487257],\n              [111.78690114, 3.41687263],\n              [111.78399583, 3.41571167],\n              [111.78159146, 3.41370973],\n              [111.77992341, 3.41106279],\n              [111.77915495, 3.40802995],\n              [111.77936129, 3.40490807],\n              [111.78052226, 3.40200275],\n              [111.78252419, 3.39959839],\n              [111.78517113, 3.39793033],\n              [111.78820398, 3.39716187],\n              [111.79132585, 3.39736822],\n              [112.31181658, 3.51544515],\n              [112.31248917, 3.51562254],\n              [112.52147408, 3.5785908],\n              [112.52281386, 3.57910186],\n              [112.85206367, 3.73256867],\n              [112.85465776, 3.7343178],\n              [112.85658437, 3.73678292],\n              [112.85765492, 3.73972276],\n              [112.85776462, 3.74284952],\n              [112.85690272, 3.74585715],\n              [112.8551536, 3.74845124],\n              [112.85268847, 3.75037785],\n              [112.84974864, 3.7514484],\n              [112.84662187, 3.75155809],\n              [112.84361424, 3.7506962],\n              [112.51501594, 3.59753306],\n              [112.30705249, 3.53487257]\n            ]\n          ],\n          [\n            [\n              [108.26055972, 6.08912451],\n              [108.29013305, 6.01266273],\n              [108.29170425, 6.00995718],\n              [108.29403462, 6.00786957],\n              [108.29689603, 6.00660426],\n              [108.3000084, 6.00628511],\n              [108.30306706, 6.00694335],\n              [108.30577262, 6.00851455],\n              [108.30786022, 6.01084492],\n              [108.30912553, 6.01370633],\n              [108.30944469, 6.0168187],\n              [108.30878645, 6.01987736],\n              [108.279563, 6.09543449],\n              [108.25611734, 6.22752625],\n              [108.21679964, 6.53816468],\n              [108.21876335, 6.94964057],\n              [108.24419535, 7.07390742],\n              [108.24433543, 7.07703297],\n              [108.24350281, 7.08004883],\n              [108.24177899, 7.0826598],\n              [108.2393327, 7.08461028],\n              [108.23640341, 7.08570936],\n              [108.23327786, 7.08584944],\n              [108.230262, 7.08501682],\n              [108.22765103, 7.083293],\n              [108.22570055, 7.08084671],\n              [108.22460147, 7.07791743],\n              [108.19897125, 6.95268198],\n              [108.1987683, 6.95072469],\n              [108.19679674, 6.53760583],\n              [108.19687578, 6.53630242],\n              [108.23630689, 6.22476797],\n              [108.23638164, 6.22427602],\n              [108.26004031, 6.09098419],\n              [108.26055972, 6.08912451]\n            ]\n          ],\n          [\n            [\n              [110.12822847, 11.36894451],\n              [110.05553696, 11.25335394],\n              [110.05430621, 11.25047749],\n              [110.05402458, 11.2473615],\n              [110.05471962, 11.24431099],\n              [110.05632331, 11.24162456],\n              [110.05867865, 11.23956519],\n              [110.0615551, 11.23833444],\n              [110.06467109, 11.23805281],\n              [110.0677216, 11.23874785],\n              [110.07040803, 11.24035153],\n              [110.07246741, 11.24270688],\n              [110.14541497, 11.35870461],\n              [110.14588682, 11.35954163],\n              [110.20700505, 11.48128846],\n              [110.20728377, 11.48189306],\n              [110.25854422, 11.60358735],\n              [110.25901765, 11.60499559],\n              [110.30436343, 11.7826124],\n              [110.30456934, 11.78364161],\n              [110.32822801, 11.94571326],\n              [110.32832827, 11.94685414],\n              [110.33424294, 12.14159753],\n              [110.33424553, 12.14210167],\n              [110.33227398, 12.24038351],\n              [110.33172267, 12.24346324],\n              [110.33024665, 12.24622187],\n              [110.3279904, 12.24838938],\n              [110.32517479, 12.24975358],\n              [110.32207543, 12.25018094],\n              [110.3189957, 12.24962962],\n              [110.31623706, 12.2481536],\n              [110.31406956, 12.24589736],\n              [110.31270536, 12.24308175],\n              [110.312278, 12.23998238],\n              [110.3142445, 12.14195265],\n              [110.3083549, 11.94803461],\n              [110.28485499, 11.78705054],\n              [110.23982347, 11.61066468],\n              [110.18898148, 11.48996382],\n              [110.12822847, 11.36894451]\n            ]\n          ],\n          [\n            [\n              [109.82951587, 15.22896754],\n              [109.84522534, 15.15316562],\n              [109.84633168, 15.15023907],\n              [109.84828823, 15.14779763],\n              [109.85090347, 15.14608029],\n              [109.85392139, 15.14525516],\n              [109.85704658, 15.145403],\n              [109.85997314, 15.14650935],\n              [109.86241457, 15.1484659],\n              [109.86413191, 15.15108113],\n              [109.86495704, 15.15409906],\n              [109.8648092, 15.15722425],\n              [109.84903675, 15.23333003],\n              [109.84889209, 15.23393326],\n              [109.78974541, 15.45068337],\n              [109.7892391, 15.45210582],\n              [109.69066131, 15.67432448],\n              [109.6900529, 15.67548445],\n              [109.59147511, 15.83677407],\n              [109.59116145, 15.8372556],\n              [109.53201478, 15.92259221],\n              [109.53166592, 15.92306523],\n              [109.30888011, 16.20725797],\n              [109.30658844, 16.20938798],\n              [109.30375073, 16.21070558],\n              [109.30064474, 16.21108179],\n              [109.29757451, 16.21047978],\n              [109.29484059, 16.20895848],\n              [109.29271057, 16.20666681],\n              [109.29139298, 16.2038291],\n              [109.29101677, 16.20072311],\n              [109.29161878, 16.19765288],\n              [109.29314007, 16.19491896],\n              [109.51574449, 15.91095759],\n              [109.57455994, 15.82609887],\n              [109.67264555, 15.66561455],\n              [109.77065019, 15.44468789],\n              [109.82951587, 15.22896754]\n            ]\n          ]\n        ]\n      }\n    }\n  ]\n}\n"
  },
  {
    "path": "src/views/dataScreen/assets/ranking-icon.ts",
    "content": "/* 红色标注 */\nexport const ranking1: string =\n  \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADoAAAAVCAYAAAAXQf3LAAAACXBIWXMAAAsTAAALEwEAmpwYAAA4GmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS41LWMwMTQgNzkuMTUxNDgxLCAyMDEzLzAzLzEzLTEyOjA5OjE1ICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDIxLTEyLTE2VDE2OjA5OjAxKzA4OjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMjEtMTItMTZUMTY6MTM6MjMrMDg6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8eG1wOk1ldGFkYXRhRGF0ZT4yMDIxLTEyLTE2VDE2OjEzOjIzKzA4OjAwPC94bXA6TWV0YWRhdGFEYXRlPgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8cGhvdG9zaG9wOkNvbG9yTW9kZT4zPC9waG90b3Nob3A6Q29sb3JNb2RlPgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOjdjNTlkMjU2LTdmZWMtMzQ0NS05YjY1LTc1MmUzNGEyNDNlMjwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDo3YzU5ZDI1Ni03ZmVjLTM0NDUtOWI2NS03NTJlMzRhMjQzZTI8L3htcE1NOkRvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+eG1wLmRpZDo3YzU5ZDI1Ni03ZmVjLTM0NDUtOWI2NS03NTJlMzRhMjQzZTI8L3htcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOkhpc3Rvcnk+CiAgICAgICAgICAgIDxyZGY6U2VxPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5jcmVhdGVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6N2M1OWQyNTYtN2ZlYy0zNDQ1LTliNjUtNzUyZTM0YTI0M2UyPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDIxLTEyLTE2VDE2OjA5OjAxKzA4OjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6U2VxPgogICAgICAgICA8L3htcE1NOkhpc3Rvcnk+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyMDAwMC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzIwMDAwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjY1NTM1PC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj41ODwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj4yMTwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+HQy65gAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAADKElEQVR42tTXW0hUQRgH8P83Z1ddr5WUJEYXE93VosjAViiJLvRQpGaK7q7WQ6RERAThW0WEgq72ot0vhEkGClZPQT1kUhZUdnnTtCIoQsJUNPfM14O6W+456wVtd+ftsDNnzm//M/OdQ9Bpe4tP51YrndWYujFm2GgWYzxjeVpjicbmaFbjH15B4gfS7JXXpKSGfym/LF5mx9FI7FxjZwudLtINZeIDrvRL30TYsCY0Nc+5COHiyC76mlAqunbMdaKzxc4U+kbGdJbz2sfj83m3NNt5Kyu8LRYjIdeVDluwQktHN1zuFeFDOlAms6PmhCBhAoAGpT0/CmpEICzdmWD7OaSvSGbcAgBJzKS3bCeuc/F5RbHSszXY9milmtLYhiXfJY2N8YJaCmvWkZH2TFxH8qjhtuGZI5hOXQmo+aq1fhgGVTdRi915GERxROS+YYvSVqyAlWBJ9AEvfXRBJr2dQHoluiqvIibMFHrsbyQAHEBXSrby1RoUUGbOV611Q2R06ULT7DVmSdg/GQoArcqTg3MJZYBoxuOmhn7kiO6j6vr7IOHu67V0LY5qGyAS5xs6XyWGAblPtdb9ZiF1ofG7T4VHL4g+IYhIC1ou3m/cRH1r/H0g+YIOQgwUuKzXxjrqQJNttcmK4IKxYjsJSsyhUoompb2ESPMlw/9QAp9xpTa+4IU//oZ67dEUe1WOIGWNHhQAmsVThwFs9BfUV5oqaHSvK7Pe01kLmnXKYF4WdZJIGDSh49hz1Lk5jfqTAjHRNhnbUQHLc5Ljv2tBzYVVy8mglHjeE7Whi3k49Ip4WTRp+f63g0gPqoJGc9XMiypDTk70nz1qtlVtJ6FYdaHkufld0V4UChkWSHX0E5t6yzi91Z2mDpQsdudxEEVOlSgAOPF622oxsDxQyosEyWPquhvdFDnoE5pcUBlvDAs5JKVnUl+JrsXPBWfpXQ48y9evNfQnG/tsnNEAAFpQ9x5NsTu3CKKsf7/l9KEAcIfaC00kTYFwGF2VK++1IKFHD+pO1OxwlhFosS6UvP/FWrzauUoMJvj7e3QQhl/5asZNjD+vr0T/DACtMp8jBpuaVAAAAABJRU5ErkJggg==\";\nexport const ranking2: string =\n  \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADoAAAAWCAYAAACR1Y9lAAAACXBIWXMAAAsTAAALEwEAmpwYAAA4GmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS41LWMwMTQgNzkuMTUxNDgxLCAyMDEzLzAzLzEzLTEyOjA5OjE1ICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDIxLTEyLTE2VDE2OjA4OjU5KzA4OjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMjEtMTItMTZUMTY6MTM6MTcrMDg6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8eG1wOk1ldGFkYXRhRGF0ZT4yMDIxLTEyLTE2VDE2OjEzOjE3KzA4OjAwPC94bXA6TWV0YWRhdGFEYXRlPgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8cGhvdG9zaG9wOkNvbG9yTW9kZT4zPC9waG90b3Nob3A6Q29sb3JNb2RlPgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOjE3YzMzMWE5LTQ5NGMtZTI0ZS05ZTAxLTM4NzExZDdlNmQzYTwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDoxN2MzMzFhOS00OTRjLWUyNGUtOWUwMS0zODcxMWQ3ZTZkM2E8L3htcE1NOkRvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+eG1wLmRpZDoxN2MzMzFhOS00OTRjLWUyNGUtOWUwMS0zODcxMWQ3ZTZkM2E8L3htcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOkhpc3Rvcnk+CiAgICAgICAgICAgIDxyZGY6U2VxPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5jcmVhdGVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6MTdjMzMxYTktNDk0Yy1lMjRlLTllMDEtMzg3MTFkN2U2ZDNhPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDIxLTEyLTE2VDE2OjA4OjU5KzA4OjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6U2VxPgogICAgICAgICA8L3htcE1NOkhpc3Rvcnk+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyMDAwMC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzIwMDAwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjY1NTM1PC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj41ODwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj4yMjwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+xEQRAAAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAADd0lEQVR42tTYe0hTURwH8N/v3M1ttq0piSGlkVKbj4WPytZbqz+iqAztMdfNHiD9IRaV/VHhP0GIzTAqDCSil9U/9oDoieIzi+hpUVrkH0lQKdPIbe6c/nAud3e3XGS7nv8O95zd87nf37k7G4KfVlhSsnGfseMojKYhMAiiYZDjPfMYG/U8hKF7dP0I/1TYlF6L4sNKyewC9cGL2a08h4z719D/gR2Glj5JvtD2PeKbKHTa1grdBIZFh9NezcuY1GOQCjJYqJ0S+4b7pjMOQCoKTbZYMxghKxO0fWpr5rO88Zro+fdxty5/jO10931bEm/dDUA04bJBriarhR+LPcoY4N9gg4Hm18093WtXOCky5gNNMFdqFTJaPNyvnPd0xTTNjylSSDSYl1F7j+ZNSVvqXYpDc3ygMzad0MvDXJ5yTYns1R3JeJkjhUSDgRa3pFV32tT9AACiieq3WHkOSdxwX8W5yJXs5q3/Ms2xTrTfKbOZH5rOUnffBxqzujQ8IlK7F4B4TTy3+FFOhMKhGy8vo2MvZ16t+xzdPYz0Kd1kviyeMnk+Inp9WNbkL5OLje9WhjrV0SARgebcNZ1yUJkL/CVqyC9fi4Sb5QV1P5Ebyxu3j4dE67ujWsqfz3wMSJg4dEmpLDFWux8A5cJEAQCuZTeZFRxVSBlKGbjW3FlwcmigH2ii5XgsICsYWoQAioxtm/HBsDbusymUZ90/Qb/8VHbvqM+4NhLqs0eTLBVZDGHh78X4lm/tssYCgoI3lWQSZayoOe3sR9uE/oBQA2/djQy1/hJ1l69FQVhYqL5eAkEdLrSvvze/6vdAkdJNyK2MClO5dommOQJ6wPh6tim6xyjBn2ms9lPMg+o309uFUK9E9Xx5OmHcKu/F+JauSjbI1Sxt5VF4ogox1EnRse7+giqkI66LQZO3VGyjAFP/lCgAwNWsZrOSo0opQTts6o7i1tTbXlA31gNNzD2ppkr7HoKIo4GWzXm+RD+xL14qh3oXQ1rYkF7dPaAaEEvUs0f1ZmsK4TDHb9kKoAkam8aa+SLX61QVQmiPXf7NUp95CQAgYOkm8tY8YGgICBVga5Y2bw6XUZUUoFVv46/f7Irp8owRYD1QfcExEwyiPOANCPG6Qe3yhp26MKdR+P/M/2gjH5CT4tfs24sOea65OJGAKAMA+DUAOQXQcHBRYvIAAAAASUVORK5CYII=\";\nexport const ranking3: string =\n  \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADoAAAAWCAYAAACR1Y9lAAAACXBIWXMAAAsTAAALEwEAmpwYAAA4GmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS41LWMwMTQgNzkuMTUxNDgxLCAyMDEzLzAzLzEzLTEyOjA5OjE1ICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDIxLTEyLTE2VDE2OjA4OjU2KzA4OjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMjEtMTItMTZUMTY6MTM6MDMrMDg6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8eG1wOk1ldGFkYXRhRGF0ZT4yMDIxLTEyLTE2VDE2OjEzOjAzKzA4OjAwPC94bXA6TWV0YWRhdGFEYXRlPgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8cGhvdG9zaG9wOkNvbG9yTW9kZT4zPC9waG90b3Nob3A6Q29sb3JNb2RlPgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOmQxY2UwYTdiLTk5OGMtNjI0ZS1hYzc4LWNjYzFhMjRkYmY2MzwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDpkMWNlMGE3Yi05OThjLTYyNGUtYWM3OC1jY2MxYTI0ZGJmNjM8L3htcE1NOkRvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+eG1wLmRpZDpkMWNlMGE3Yi05OThjLTYyNGUtYWM3OC1jY2MxYTI0ZGJmNjM8L3htcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOkhpc3Rvcnk+CiAgICAgICAgICAgIDxyZGY6U2VxPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5jcmVhdGVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6ZDFjZTBhN2ItOTk4Yy02MjRlLWFjNzgtY2NjMWEyNGRiZjYzPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDIxLTEyLTE2VDE2OjA4OjU2KzA4OjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6U2VxPgogICAgICAgICA8L3htcE1NOkhpc3Rvcnk+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyMDAwMC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzIwMDAwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjY1NTM1PC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj41ODwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj4yMjwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+YivRxgAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAADTklEQVR42tSYXUhTYRjHn+ecs7mz+W2j6TTWh5XbKKG6US9CiQq0pBIy3Zx1EUhQRBTdeVu2rC6MECyqqyAL8aOgIiMI6iJEKKjoRp1omqbubLqd9+lCNz92ttSybc/VeQ/vOc/7O///857zHIQwsamuq4il5T2EZQUSrCxWOn81uQgAAH1j38ThVx0Ybpa59tYZd1bZOQQU1gD0L2BXBqoeeXtfmB4aUwTNKqvXpqWnXvBm7Nkli8adcasom5nQujrvAcqkCLrd0WjiCe1+IVk7bSg+vgZq/hdFVWMfH6uk7/0AAIqg5urGKuRxMyHPuY1ldgTg4s+6JOtc7beR+WSGFKqoyXFXo6NfFwNjSV9YSAn6bbEBuvw8nKfvnXb0w3sAAEVQa60zhxhfG1wNrxOlzH2V8VajoqvrDs88XoZEita1VDsPAc/nB1eEyEnGwzXhbB6L1kVZGtQNPnsUUDMUdG+9YDGlXAbCRec9+uL9LCHZGC+gmqHnzYLPLQXGIdbdUnUlW82rTyEuvpnMJ4nezJLKeLAuEfMn9bc2AXIUFtRc4ywB4oqWggIAuLPLT/5jUFyLDUk93vNEPfm1LyKoxe68RMBpAACWwkqGA0dI0KTG9K5LzJ/Y39o0O3UWNKRGzY6rBmCq00qQgESymLPem767NJY/GHjPcI848qY7IuhW27UiAfkSJdsGYKeyyh2IyMdijRIRSxxoa0LysYWgIdbNs1+vQ0B9iKJzTwQAwG0orQBelRyLuy4xz8+kgY75bksJ1ORoTNUyOBuco6QqEs3ock2+VGtJ9CCV8xEAJQx1P1DP/BiPCGo+0ZgPAhz+EygAwFRWeQ3iwtYt+qDIfG7tYFsLMqKloItq1FLjtBNxG5cDKhlKKyjEvtGtUdXklxfqid7PSqBBRXfYGnQyCudpQYeitOsGDr1J1jw5ObcgZt6jJHt1rqfNs8pGUDTP1mBFFI4uhCQiDAdLIHBuY6lt/s9DdK3LeUc/iaOvX4aAzsEGQc22GxUcTxbG5pNHsi4AgDvz4DHgNClRV5SYX3R1tnAwPR1O0aB1rbU3C/x+WbWsFNzsxd6Mgg0k6tcp3XRFwVYj6Hwu9EsezVB77+LOhV+iKiMAgN8DAOIZq3DzB8yIAAAAAElFTkSuQmCC\";\nexport const ranking4: string =\n  \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADoAAAAWCAYAAACR1Y9lAAAACXBIWXMAAAsTAAALEwEAmpwYAAA4GmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS41LWMwMTQgNzkuMTUxNDgxLCAyMDEzLzAzLzEzLTEyOjA5OjE1ICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDIxLTEyLTE2VDE2OjA4OjU4KzA4OjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMjEtMTItMTZUMTY6MTM6MDkrMDg6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8eG1wOk1ldGFkYXRhRGF0ZT4yMDIxLTEyLTE2VDE2OjEzOjA5KzA4OjAwPC94bXA6TWV0YWRhdGFEYXRlPgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8cGhvdG9zaG9wOkNvbG9yTW9kZT4zPC9waG90b3Nob3A6Q29sb3JNb2RlPgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOjZjNmJkYmU1LTM0ZTktY2M0OS1hMWNiLTBmM2JhZTAxZWYwZDwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDo2YzZiZGJlNS0zNGU5LWNjNDktYTFjYi0wZjNiYWUwMWVmMGQ8L3htcE1NOkRvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+eG1wLmRpZDo2YzZiZGJlNS0zNGU5LWNjNDktYTFjYi0wZjNiYWUwMWVmMGQ8L3htcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOkhpc3Rvcnk+CiAgICAgICAgICAgIDxyZGY6U2VxPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5jcmVhdGVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6NmM2YmRiZTUtMzRlOS1jYzQ5LWExY2ItMGYzYmFlMDFlZjBkPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDIxLTEyLTE2VDE2OjA4OjU4KzA4OjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6U2VxPgogICAgICAgICA8L3htcE1NOkhpc3Rvcnk+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyMDAwMC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzIwMDAwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjY1NTM1PC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj41ODwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj4yMjwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+RwoBzAAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAADUUlEQVR42tSXT0zTcBTH3/u13SjgKN0mAQaEiPJPjdHEoCbqieDBxIiLIv8WT4TEeFPjiZMXYSEajTFEYowXEm6cvHjwojcTD14M/gGByFgLY0K3tc8D2xisazYkUn633699/b1Pv9++3ytCjtFw6bHTXS+9FsXS02A9CAoetIOY1GZIAJjXvQhABGQo6sJ4zogjfcFqAfkBr8fXm9f+/wm2UNBYXPuirsy/zRnR0jPcDUxo8Hp9/QjIdhdyZ6CFQgIALK8sTmjx6LxpVIt/yIHF0n0AgLIy7zmHIDbaAbQQWAQgooS6GJ59lZyb2LZr2CM4+EEAAI7nimSp+ubuW/dfYBnlAxqNqlNra8vTBhKZgh7tD7YTsDYAAEJiB911gf0EmQQ1QsrMc9CNuDmo38+1iGfuITI+tSRJlR0CL1TtJ+vGtOiHSCT0EQDAFLTB/9DrEMVBREwnwglOl+yq6AQ03cGWoKo6P64nYisGbuyTFdEcGGljxLVvX3e7a/oZIrcfjhddj8+rytxEam6qaHNf8A4CSmlFk29ElqqvcBzv3g+g0Uhocl2LzqYgsxRt9QdlEvF2pm1Tw+ksrnId8HTsJWg+kESkKeGZMSJK5FS0qTt4jHF41QwUkMgj1/YjIr+3ilpXXW0t8m51NfQZcOM+U0VbekcCgKxuCyhuJiRLvmscx5XZtRghAClLs2O6EV/bWNiETUf4/EHRJeJdAIBcipYUlTcXl7jO2hVUj8emVfXXVCZkFmhj75N6DhN9WaC4NSG3XBvYVn1tA6qE514aurZqCdoaCF4mA0+aghJiuvqW+65xbIt9d/zLtasFyTC0kPLzBRrJZ5qCDg2x5m+uB0gbSmVZN0PV0hL3KbGo9ITdjpdI5PekFvszlwY1+0YP3RipcTrYrfR1C1AAEDxyXS9udkm2sO7i0venCGBYgjb1PLrIGH/BqhBlTj1yzXVEVmoXRWOJ9U8rywvvAQAsrZvqhnIqug1WclWcF4Siw3Y5RxdDP54hkm4JWt81WiEKNJAvJAAAzxxl5eWVnRnn8J51RoaeUMLKzBtI5p3TuvVdoxVO3miy/Ldj2W/RI/uOc5ldErICE9d39mUjT1v7WuVrVAuH02nonIlQBv0dAPIvyIphdYsqAAAAAElFTkSuQmCC\";\n"
  },
  {
    "path": "src/views/dataScreen/components/AgeRatioChart.vue",
    "content": "<template>\n  <!-- 年龄比例 -->\n  <div class=\"echarts\">\n    <ECharts :option=\"option\" :resize=\"false\" />\n  </div>\n</template>\n\n<script setup lang=\"ts\">\nimport ECharts from \"@/components/ECharts/index.vue\";\nimport { ECOption } from \"@/components/ECharts/config\";\n\ninterface ChartProp {\n  value: number;\n  name: string;\n  percentage: string;\n}\n\nlet data: ChartProp[] = [\n  { value: 200, name: \"10岁以下\", percentage: \"16%\" },\n  { value: 110, name: \"10 - 18岁\", percentage: \"8%\" },\n  { value: 150, name: \"18 - 30岁\", percentage: \"12%\" },\n  { value: 310, name: \"30 - 40岁\", percentage: \"24%\" },\n  { value: 250, name: \"40 - 60岁\", percentage: \"20%\" },\n  { value: 260, name: \"60岁以上\", percentage: \"20%\" }\n];\n\nconst colors = [\"#F6C95C\", \"#EF7D33\", \"#1F9393\", \"#184EA1\", \"#81C8EF\", \"#9270CA\"];\n\nconst option: ECOption = {\n  color: colors,\n  tooltip: {\n    show: true,\n    trigger: \"item\",\n    formatter: \"{b} <br/>占比：{d}%\"\n  },\n  legend: {\n    orient: \"vertical\",\n    right: \"20px\",\n    top: \"15px\",\n    itemGap: 15,\n    itemWidth: 14,\n    formatter: function (name: string) {\n      let text = \"\";\n      data.forEach((val: ChartProp) => {\n        if (val.name === name) text = \" \" + name + \"　 \" + val.percentage;\n      });\n      return text;\n    },\n    textStyle: { color: \"#fff\" }\n  },\n  grid: { top: \"bottom\", left: 10, bottom: 10 },\n  series: [\n    {\n      zlevel: 1,\n      name: \"年龄比例\",\n      type: \"pie\",\n      selectedMode: \"single\",\n      radius: [50, 90],\n      center: [\"35%\", \"50%\"],\n      startAngle: 60,\n      label: {\n        position: \"inside\",\n        show: true,\n        color: \"#fff\",\n        formatter: function (params) {\n          return (params.data as ChartProp).percentage;\n        },\n        rich: {\n          b: {\n            fontSize: 16,\n            lineHeight: 30,\n            color: \"#fff\"\n          }\n        }\n      },\n      itemStyle: {\n        shadowColor: \"rgba(0, 0, 0, 0.2)\",\n        shadowBlur: 10\n      },\n      data: data.map((val: ChartProp, index: number) => {\n        return {\n          value: val.value,\n          name: val.name,\n          percentage: val.percentage,\n          itemStyle: {\n            borderWidth: 10,\n            shadowBlur: 20,\n            borderColor: colors[index],\n            borderRadius: 10\n          }\n        };\n      })\n    },\n    {\n      name: \"\",\n      type: \"pie\",\n      selectedMode: \"single\",\n      radius: [50, 90],\n      center: [\"35%\", \"50%\"],\n      startAngle: 60,\n      data: [\n        {\n          value: 1000,\n          name: \"\",\n          label: {\n            show: true,\n            formatter: \"{a|本日总数}\",\n            rich: {\n              a: {\n                align: \"center\",\n                color: \"rgb(98,137,169)\",\n                fontSize: 14\n              }\n            },\n            position: \"center\"\n          }\n        }\n      ]\n    }\n  ]\n};\n</script>\n<style lang=\"scss\" scoped>\n.echarts {\n  width: 100%;\n  height: 100%;\n}\n</style>\n"
  },
  {
    "path": "src/views/dataScreen/components/AnnualUseChart.vue",
    "content": "<template>\n  <!-- 年度使用 -->\n  <div class=\"echarts\">\n    <ECharts :option=\"option\" :resize=\"false\" />\n  </div>\n</template>\n\n<script setup lang=\"ts\">\nimport ECharts from \"@/components/ECharts/index.vue\";\nimport { ECOption } from \"@/components/ECharts/config\";\n\ninterface ChartProp {\n  label: string;\n  value: string[];\n}\n\nconst gradientColors = [\"rgba(254, 219, 101,0.1)\", \"rgba(0, 122, 254,0.1)\", \"rgba(255, 75, 122, 0.1)\"];\nconst annualData = [\n  {\n    label: new Date().getFullYear() - 2 + \"年\",\n    value: [\"184\", \"90\", \"120\", \"0\", \"30\", \"100\", \"80\", \"40\", \"20\", \"510\", \"350\", \"180\"]\n  },\n  {\n    label: new Date().getFullYear() - 1 + \"年\",\n    value: [\"118\", \"509\", \"366\", \"162\", \"380\", \"123\", \"321\", \"158\", \"352\", \"474\", \"154\", \"22\"]\n  },\n  {\n    label: new Date().getFullYear() + \"年\",\n    value: [\"548\", \"259\", \"113\", \"90\", \"69\", \"512\", \"23\", \"49\", \"28\", \"420\", \"313\", \"156\"]\n  }\n];\n\nconst data = {\n  data: annualData,\n  unit: annualData.map(val => val.label),\n  columns: [\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"10\", \"11\", \"12\"],\n  colors: [\"#FFA600\", \"#007AFE\", \"#FF4B7A\"]\n};\n\nconst option: ECOption = {\n  tooltip: {\n    trigger: \"axis\",\n    axisPointer: {\n      type: \"none\"\n    },\n    borderWidth: 0,\n    padding: 0,\n    backgroundColor: \"transparent\",\n    formatter: (params: any) => {\n      let str = \"\";\n      params.forEach((val: { color: string; seriesName: string; data: number }) => {\n        str += `\n          <div class=\"year-item\">\n            <span class=\"year-dot\" style=\"background-color: ${val.color};\"></span>\n            <span class=\"year-name\">${val.seriesName}</span>\n            <span class=\"year-value\">${val.data >= 10000 ? (val.data / 10000).toFixed(2) + \"w\" : val.data}</span>\n          </div>\n          `;\n      });\n      const dom = `\n                    <div class=\"annual-tooltip\">\n                      <span class=\"annual-month\">${params[0].dataIndex + 1}月</span>\n                      <div class=\"annual-list\">\n                        ${str}\n                      </div>\n                    </div>\n                  `;\n      return dom;\n    }\n  },\n  legend: {\n    right: \"2%\",\n    top: \"0%\",\n    itemWidth: 15,\n    itemHeight: 6,\n    align: \"auto\",\n    icon: \"rect\",\n    itemGap: 15,\n    textStyle: {\n      color: \"#ebebf0\"\n    }\n  },\n  grid: {\n    top: \"20%\",\n    left: \"40\",\n    right: \"4%\",\n    bottom: \"15%\"\n  },\n  xAxis: [\n    {\n      name: \"(月份)\",\n      type: \"category\",\n      boundaryGap: false,\n      axisLine: {\n        show: true,\n        lineStyle: {\n          color: \"#233653\"\n        }\n      },\n      axisLabel: {\n        color: \"#7ec7ff\",\n        padding: 0,\n        fontSize: 12,\n        formatter: function (data) {\n          return data;\n        }\n      },\n      splitLine: {\n        show: false,\n        lineStyle: {\n          color: \"#192a44\"\n        }\n      },\n      axisTick: {\n        show: false\n      },\n      data: data.columns\n    }\n  ],\n  yAxis: {\n    name: \"(人数)\",\n    nameTextStyle: {\n      color: \"#D6DFEA\",\n      fontSize: 12,\n      padding: [0, 30, 0, 0]\n    },\n    minInterval: 1,\n    splitNumber: 5,\n    splitLine: {\n      show: false,\n      lineStyle: {\n        color: \"#192a44\"\n      }\n    },\n    axisLine: {\n      show: true,\n      lineStyle: {\n        color: \"#233653\"\n      }\n    },\n    axisLabel: {\n      show: true,\n      color: \"#B9D6D6\",\n      padding: 0\n    },\n    axisTick: {\n      show: false\n    }\n  },\n  series: data.data.map((val: ChartProp, index: number) => {\n    return {\n      name: val.label,\n      type: \"line\",\n      symbol: \"circle\",\n      showSymbol: false,\n      smooth: true,\n      lineStyle: {\n        width: 1,\n        color: data.colors[index],\n        borderColor: data.colors[index]\n      },\n      itemStyle: {\n        color: data.colors[index],\n        borderColor: \"#646ace\",\n        borderWidth: 2\n      },\n      tooltip: {\n        show: true\n      },\n      areaStyle: {\n        color: {\n          type: \"linear\",\n          x: 0,\n          y: 0,\n          x2: 0,\n          y2: 1,\n          colorStops: [\n            {\n              offset: 0,\n              color: data.colors[index]\n            },\n            {\n              offset: 1,\n              color: gradientColors[index]\n            }\n          ],\n          global: false\n        },\n        shadowColor: \"rgba(25,163,223, 0.3)\",\n        shadowBlur: 20\n      },\n      data: val.value\n    };\n  })\n};\n</script>\n<style lang=\"scss\" scoped>\n.echarts {\n  width: 100%;\n  height: 100%;\n}\n:deep(.annual-tooltip) {\n  box-sizing: border-box;\n  width: 206px;\n  height: 103px;\n  padding: 5px 20px;\n  background: url(\"../images/contrast-bg.png\") no-repeat;\n  background-size: 100% 100%;\n  .annual-month {\n    display: inline-block;\n    margin-bottom: 2px;\n    font-size: 10px;\n    color: #03b8e2;\n    transform: scale(0.9);\n  }\n  .annual-list {\n    display: flex;\n    flex-direction: column;\n    width: 100%;\n    .year-item {\n      display: flex;\n      align-items: center;\n      width: 100%;\n      height: 22px;\n      .year-dot {\n        width: 5px;\n        height: 5px;\n        margin: 0 2px;\n        border-radius: 50%;\n      }\n      .year-name,\n      .year-value {\n        font-size: 10px;\n        color: #03b8e2;\n        transform: scale(0.8);\n      }\n      .year-name {\n        margin: 0 2px;\n      }\n      .year-value {\n        display: inline-block;\n        width: 25%;\n      }\n    }\n  }\n}\n</style>\n"
  },
  {
    "path": "src/views/dataScreen/components/ChinaMapChart.vue",
    "content": "<template>\n  <!-- 中国地图 -->\n  <div class=\"map-ball\"></div>\n  <div id=\"mapChart\" class=\"echarts\">\n    <ECharts :option=\"option\" :resize=\"false\" />\n  </div>\n</template>\n\n<script setup lang=\"ts\">\nimport echarts, { ECOption } from \"@/components/ECharts/config\";\nimport ECharts from \"@/components/ECharts/index.vue\";\nimport mapJson from \"../assets/china.json\";\n\necharts.registerMap(\"china\", mapJson as Parameters<typeof echarts.registerMap>[1]);\n\nconst planePath: string =\n  \"path://M1705.06,1318.313v-89.254l-319.9-221.799l0.073-208.063c0.521-84.662-26.629-121.796-63.961-121.491c-37.332-0.305-64.482,36.829-63.961,121.491l0.073,208.063l-319.9,221.799v89.254l330.343-157.288l12.238,241.308l-134.449,92.931l0.531,42.034l175.125-42.917l175.125,42.917l0.531-42.034l-134.449-92.931l12.238-241.308L1705.06,1318.313z\";\n\nconst data = [\n  {\n    fromName: \"北京\",\n    toName: \"上海\",\n    coords: [\n      [116.4551, 40.2539],\n      [121.4648, 31.2891]\n    ]\n  },\n  {\n    fromName: \"上海\",\n    toName: \"北京\",\n    coords: [\n      [121.4648, 31.2891],\n      [116.4551, 40.2539]\n    ]\n  },\n  {\n    fromName: \"北京\",\n    toName: \"广州\",\n    coords: [\n      [116.4551, 40.2539],\n      [113.5107, 23.2196]\n    ]\n  },\n  {\n    fromName: \"广州\",\n    toName: \"北京\",\n    coords: [\n      [113.5107, 23.2196],\n      [116.4551, 40.2539]\n    ]\n  },\n  {\n    fromName: \"北京\",\n    toName: \"成都\",\n    coords: [\n      [116.4551, 40.2539],\n      [103.9526, 30.7617]\n    ]\n  },\n  {\n    fromName: \"成都\",\n    toName: \"北京\",\n    coords: [\n      [103.9526, 30.7617],\n      [116.4551, 40.2539]\n    ]\n  },\n  {\n    fromName: \"成都\",\n    toName: \"新疆维吾尔自治区\",\n    coords: [\n      [103.9526, 30.7617],\n      [85.294711, 41.371801]\n    ]\n  },\n  {\n    fromName: \" 新疆维吾尔自治区\",\n    toName: \"成都\",\n    coords: [\n      [85.294711, 41.371801],\n      [103.9526, 30.7617]\n    ]\n  }\n];\n\nconst option: ECOption = {\n  tooltip: {\n    trigger: \"item\"\n  },\n  grid: {\n    left: \"0px\",\n    right: \"80px\",\n    top: \"10px\",\n    bottom: \"10px\"\n  },\n  geo: {\n    map: \"china\",\n    zoom: 1.5,\n    center: [102.848234, 32.82333],\n    scaleLimit: {\n      min: 0.8\n    },\n    label: {\n      color: \"#fff\",\n      show: true\n    },\n    emphasis: {\n      label: {\n        color: \"#fff\",\n        show: true\n      },\n      itemStyle: {\n        areaColor: {\n          x: 0,\n          y: 0,\n          x2: 0,\n          y2: 1,\n          colorStops: [\n            { offset: 0, color: \"#073684\" },\n            { offset: 1, color: \"#2B91B7\" }\n          ]\n        }\n      }\n    },\n    roam: false,\n    itemStyle: {\n      areaColor: {\n        x: 0,\n        y: 0,\n        x2: 0,\n        y2: 1,\n        colorStops: [\n          { offset: 0, color: \"#073684\" },\n          { offset: 1, color: \"#061E3D\" }\n        ]\n      },\n      borderColor: new echarts.graphic.LinearGradient(\n        0,\n        0,\n        0,\n        1,\n        [\n          { offset: 0, color: \"#00F6FF\" },\n          { offset: 1, color: \"#87ADCB\" }\n        ],\n        false\n      ),\n      shadowColor: \"rgba(10,76,139,1)\",\n      shadowOffsetY: 0,\n      shadowBlur: 60,\n      borderWidth: 1\n    },\n    tooltip: {\n      show: false\n    }\n  },\n  series: [\n    {\n      name: \"\",\n      type: \"lines\",\n      coordinateSystem: \"geo\",\n      zlevel: 1,\n      effect: {\n        show: true,\n        period: 6,\n        trailLength: 0.7,\n        color: \"red\",\n        symbolSize: 3\n      },\n      lineStyle: {\n        color: \"#fff\",\n        width: 0,\n        curveness: 0.2\n      },\n      data\n    },\n    {\n      name: \"\",\n      type: \"lines\",\n      coordinateSystem: \"geo\",\n      zlevel: 2,\n      symbol: [\"none\", \"arrow\"],\n      symbolSize: 10,\n      effect: {\n        show: true,\n        period: 6,\n        trailLength: 0,\n        symbol: planePath,\n        symbolSize: 15\n      },\n      lineStyle: {\n        color: \"#fff\",\n        width: 1,\n        opacity: 0.6,\n        curveness: 0.2\n      },\n      data\n    }\n  ]\n};\n</script>\n\n<style lang=\"scss\" scoped>\n.echarts {\n  width: 100%;\n  height: 100%;\n}\n.map-ball {\n  position: absolute;\n  top: 50%;\n  left: 50%;\n  width: 900px;\n  height: 900px;\n  transform: translate(-50%, -50%);\n  img {\n    width: 500px;\n    height: 500px;\n  }\n}\n</style>\n"
  },
  {
    "path": "src/views/dataScreen/components/HotPlateChart.vue",
    "content": "<template>\n  <!-- 热门板块 -->\n  <div class=\"echarts-header\">\n    <span>排名</span>\n    <span>景区</span>\n    <span>预约数量</span>\n  </div>\n  <div class=\"echarts\">\n    <ECharts :option=\"option\" :resize=\"false\" />\n  </div>\n</template>\n\n<script setup lang=\"ts\">\nimport ECharts from \"@/components/ECharts/index.vue\";\nimport { ECOption } from \"@/components/ECharts/config\";\nimport { ranking1, ranking2, ranking3, ranking4 } from \"../assets/ranking-icon\";\n\ninterface ChartProp {\n  name: string;\n  value: number;\n  percentage: string;\n  maxValue: number;\n}\n\nconst data = [\n  {\n    value: 79999,\n    name: \"峨眉山\",\n    percentage: \"80%\",\n    maxValue: 100000\n  },\n  {\n    value: 59999,\n    name: \"稻城亚丁\",\n    percentage: \"60%\",\n    maxValue: 100000\n  },\n  {\n    value: 49999,\n    name: \"九寨沟\",\n    percentage: \"50%\",\n    maxValue: 100000\n  },\n  {\n    value: 39999,\n    name: \"万里长城\",\n    percentage: \"40%\",\n    maxValue: 100000\n  },\n  {\n    value: 29999,\n    name: \"北京故宫\",\n    percentage: \"30%\",\n    maxValue: 100000\n  }\n];\n\nconst colors = [\"#1089E7\", \"#F57474\", \"#56D0E3\", \"#F8B448\", \"#8B78F6\"];\n\nconst option: ECOption = {\n  grid: {\n    top: \"5%\",\n    left: \"7%\",\n    right: \"4%\",\n    bottom: \"1%\",\n    containLabel: true\n  },\n  xAxis: {\n    type: \"value\",\n    axisLine: {\n      show: false,\n      lineStyle: {\n        color: \"white\"\n      }\n    },\n    nameGap: 1,\n    splitLine: {\n      show: false\n    },\n    axisTick: {\n      show: false\n    },\n    axisLabel: {\n      show: false,\n      fontSize: 16\n    },\n    triggerEvent: false\n  },\n  yAxis: [\n    {\n      show: true,\n      data: data.map((val: ChartProp) => val.name),\n      inverse: true,\n      axisLine: {\n        show: false\n      },\n      splitLine: {\n        show: false\n      },\n      axisTick: {\n        show: false\n      },\n      axisLabel: {\n        color: \"#fff\",\n        formatter: (value: string) => {\n          let str = value.length > 6 ? value.slice(0, 6) + \"...\" : value;\n          let index = data.map((item: ChartProp) => item.name).indexOf(value) + 1;\n          return [\"{\" + (index > 3 ? \"lg\" : \"lg\" + index) + \"|NO.\" + index + \"}\", \"{title|\" + str + \"}\"].join(\" \");\n        },\n        rich: {\n          lg1: {\n            width: 60,\n            backgroundColor: {\n              image: ranking1\n            },\n            color: \"#fff\",\n            align: \"center\",\n            height: 20,\n            fontSize: 13\n          },\n          lg2: {\n            width: 60,\n            backgroundColor: {\n              image: ranking2\n            },\n            color: \"#fff\",\n            align: \"center\",\n            height: 20,\n            fontSize: 13\n          },\n          lg3: {\n            width: 60,\n            backgroundColor: {\n              image: ranking3\n            },\n            color: \"#fff\",\n            align: \"center\",\n            height: 20,\n            fontSize: 13\n          },\n          lg: {\n            width: 60,\n            backgroundColor: {\n              image: ranking4\n            },\n            color: \"#fff\",\n            align: \"center\",\n            height: 20,\n            fontSize: 13\n          },\n          title: {\n            width: 60,\n            fontSize: 13,\n            align: \"center\",\n            padding: [0, 10, 0, 15]\n          }\n        }\n      },\n      triggerEvent: false\n    },\n    {\n      show: true,\n      inverse: true,\n      data,\n      axisLabel: {\n        fontSize: 14,\n        color: \"#fff\",\n        margin: 20,\n        formatter: (value: number) => {\n          return value >= 10000 ? (value / 10000).toFixed(2) + \"w\" : value + \"\";\n        }\n      },\n      axisLine: {\n        show: false\n      },\n      splitLine: {\n        show: false\n      },\n      axisTick: {\n        show: false\n      },\n      triggerEvent: false\n    }\n  ],\n  series: [\n    {\n      name: \"条\",\n      type: \"bar\",\n      yAxisIndex: 0,\n      data,\n      barWidth: 12,\n      itemStyle: {\n        borderRadius: 30,\n        color: function (params) {\n          let num = colors.length;\n          return colors[params.dataIndex % num];\n        }\n      },\n      label: {\n        show: true,\n        position: [12, 0],\n        lineHeight: 14,\n        color: \"#fff\",\n        formatter: params => {\n          return (params.data as ChartProp).percentage;\n        }\n      }\n    },\n    {\n      name: \"框\",\n      type: \"bar\",\n      yAxisIndex: 1,\n      data: data.map((val: ChartProp) => {\n        if (!val.maxValue) return 5;\n        return val.maxValue;\n      }),\n      barWidth: 18,\n      itemStyle: {\n        color: \"none\",\n        borderColor: \"#00c1de\",\n        borderWidth: 1,\n        borderRadius: 15\n      },\n      silent: true\n    }\n  ]\n};\n</script>\n<style lang=\"scss\" scoped>\n.echarts {\n  width: 100%;\n  height: calc(100% - 56px);\n}\n.echarts-header {\n  box-sizing: border-box;\n  display: flex;\n  height: 36px;\n  margin: 10px 10px 0;\n  line-height: 36px;\n  background: url(\"../images/rankingChart-bg.png\") no-repeat;\n  background-size: 100% 100%;\n  span {\n    width: 18%;\n    margin-left: 4px;\n    font-size: 14px;\n    font-weight: bold;\n    color: #fdbc52;\n    text-align: center;\n    &:nth-child(2) {\n      margin-left: 4px;\n    }\n    &:last-child {\n      width: 20%;\n      margin-left: 60px;\n    }\n  }\n}\n</style>\n"
  },
  {
    "path": "src/views/dataScreen/components/MaleFemaleRatioChart.vue",
    "content": "<template>\n  <!-- 男女比例 -->\n  <div class=\"ratio-main\">\n    <div class=\"ratio-header\">\n      <div class=\"man\">\n        <span>男士</span>\n        <img src=\"../images/man.png\" alt=\"\" />\n      </div>\n      <div class=\"woman\">\n        <span>女士</span>\n        <img src=\"../images/woman.png\" alt=\"\" />\n      </div>\n    </div>\n    <!-- echarts -->\n    <div class=\"echarts\">\n      <ECharts :option=\"option\" :resize=\"false\" />\n    </div>\n  </div>\n</template>\n\n<script setup lang=\"ts\">\nimport ECharts from \"@/components/ECharts/index.vue\";\nimport { ECOption } from \"@/components/ECharts/config\";\n\ninterface ChartProp {\n  man: number;\n  woman: number;\n}\n\nlet data: ChartProp = {\n  man: 0.6,\n  woman: 0.4\n};\n\nconst option: ECOption = {\n  xAxis: {\n    type: \"value\",\n    show: false\n  },\n  grid: {\n    left: 0,\n    top: \"30px\",\n    bottom: 0,\n    right: 0\n  },\n  yAxis: [\n    {\n      type: \"category\",\n      position: \"left\",\n      data: [\"男生\"],\n      axisTick: {\n        show: false\n      },\n      axisLine: {\n        show: false\n      },\n      axisLabel: {\n        show: false\n      }\n    },\n    {\n      type: \"category\",\n      position: \"right\",\n      data: [\"女士\"],\n      axisTick: {\n        show: false\n      },\n      axisLine: {\n        show: false\n      },\n      axisLabel: {\n        show: false,\n        padding: [0, 0, 40, -60],\n        fontSize: 12,\n        lineHeight: 60,\n        color: \"rgba(255, 255, 255, 0.9)\",\n        formatter: \"{value}\" + data.woman * 100 + \"%\",\n        rich: {\n          a: {\n            color: \"transparent\",\n            lineHeight: 30,\n            fontFamily: \"digital\",\n            fontSize: 12\n          }\n        }\n      }\n    }\n  ],\n  series: [\n    {\n      type: \"bar\",\n      barWidth: 20,\n      data: [data.man],\n      z: 20,\n      itemStyle: {\n        borderRadius: 10,\n        color: \"#007AFE\"\n      },\n      label: {\n        show: true,\n        color: \"#E7E8ED\",\n        position: \"insideLeft\",\n        offset: [0, -20],\n        fontSize: 12,\n        formatter: () => {\n          return `男士 ${data.man * 100}%`;\n        }\n      }\n    },\n    {\n      type: \"bar\",\n      barWidth: 20,\n      data: [1],\n      barGap: \"-100%\",\n      itemStyle: {\n        borderRadius: 10,\n        color: \"#FF4B7A\"\n      },\n      label: {\n        show: true,\n        color: \"#E7E8ED\",\n        position: \"insideRight\",\n        offset: [0, -20],\n        fontSize: 12,\n        formatter: () => {\n          return `女士 ${data.woman * 100}%`;\n        }\n      }\n    }\n  ]\n};\n</script>\n<style lang=\"scss\" scoped>\n.ratio-main {\n  box-sizing: border-box;\n  width: 100%;\n  height: 100%;\n  padding: 40px 65px;\n  .ratio-header {\n    display: flex;\n    justify-content: space-between;\n    width: 100%;\n    height: 115px;\n    .man,\n    .woman {\n      display: flex;\n      flex-direction: column;\n      align-items: center;\n      width: 110px;\n      height: 115px;\n      background: url(\"../images/man-bg.png\") no-repeat;\n      background-size: 100% 100%;\n      img {\n        width: 60px;\n        height: 60px;\n        margin-top: 20px;\n      }\n      span {\n        margin-top: 2px;\n        font-size: 13px;\n        color: #ffffff;\n      }\n    }\n    .woman {\n      background: url(\"../images/woman-bg.png\") no-repeat;\n    }\n  }\n  .echarts {\n    width: 100%;\n    height: calc(100% - 115px);\n  }\n}\n</style>\n"
  },
  {
    "path": "src/views/dataScreen/components/OverNext30Chart.vue",
    "content": "<template>\n  <!-- 未来30天访问量趋势预测图 -->\n  <div class=\"echarts\">\n    <ECharts :option=\"option\" :resize=\"false\" />\n  </div>\n</template>\n\n<script setup lang=\"ts\">\nimport dayjs from \"dayjs\";\nimport ECharts from \"@/components/ECharts/index.vue\";\nimport { ECOption } from \"@/components/ECharts/config\";\nimport { randomNum } from \"@/utils\";\n\nconst initDate = (): string[] => {\n  const dateList: string[] = [];\n  let startDate = dayjs();\n  const endDate = startDate.add(30, \"day\");\n  while (startDate.isBefore(endDate)) {\n    const month = startDate.format(\"MM\");\n    const day = startDate.format(\"DD\");\n    dateList.push(`${month}/${day}`);\n    startDate = startDate.add(1, \"day\");\n  }\n  return dateList;\n};\n\nconst data = {\n  unit: [\"访问量\"],\n  data: new Array(31).fill(\"\").map(val => {\n    val = randomNum(1, 200000);\n    return val;\n  })\n};\n\nconst option: ECOption = {\n  tooltip: {\n    trigger: \"axis\",\n    confine: true,\n    formatter: params => {\n      let tipData = (params as { name: string; value: string }[])[0];\n      let html = `<div class=\"line-chart-bg\">\n                        <span style=\"\">${tipData.name} <i >${tipData.value}</i> 人次访问</span>\n                    </div>`;\n      return html;\n    },\n    backgroundColor: \"transparent\",\n    borderColor: \"transparent\",\n    axisPointer: { lineStyle: { type: \"dashed\" }, snap: true },\n    extraCssText: \"box-shadow: none;padding:0\"\n  },\n  grid: {\n    top: \"15%\",\n    left: \"5%\",\n    right: \"5%\",\n    bottom: \"15%\"\n  },\n  xAxis: [\n    {\n      type: \"category\",\n      boundaryGap: false,\n      axisLine: {\n        show: true,\n        symbol: [\"none\", \"arrow\"],\n        symbolOffset: [0, 30],\n        lineStyle: {\n          color: \"#233653\",\n          shadowOffsetX: 20,\n          shadowColor: \"#233653\"\n        }\n      },\n      axisLabel: {\n        color: \"#7ec7ff\",\n        padding: 0,\n        fontSize: 12,\n        formatter: function (data) {\n          return data;\n        }\n      },\n      splitLine: { show: false, lineStyle: { color: \"#192a44\" } },\n      axisTick: { show: false },\n      data: initDate()\n    }\n  ],\n  yAxis: data.unit.map((_val: string, index: number) => {\n    return {\n      name: \"(访问量)\",\n      nameTextStyle: {\n        color: \"#7ec7ff\",\n        fontSize: 12,\n        padding: [0, 30, -4, 0]\n      },\n      minInterval: 1,\n      splitLine: {\n        show: false,\n        lineStyle: {\n          color: \"#192a44\"\n        }\n      },\n      axisLine: {\n        show: index === 0 ? true : false,\n        lineStyle: {\n          color: \"#233653\"\n        }\n      },\n      axisLabel: {\n        show: true,\n        color: \"#7ec7ff\",\n        padding: 0,\n        formatter: function (value: string) {\n          if (Number(value) >= 10000) {\n            value = Number(value) / 10000 + \"w\";\n          }\n          return value;\n        }\n      },\n      axisTick: {\n        show: false\n      }\n    };\n  }),\n  series: data.data.map(() => {\n    return {\n      name: \"\",\n      type: \"line\",\n      symbol: \"circle\",\n      showSymbol: false,\n      smooth: true,\n      lineStyle: {\n        width: 1,\n        color: \"#707070\",\n        borderColor: \"#707070\"\n      },\n      itemStyle: {\n        color: \"#F5B348\",\n        shadowColor: \"rgba(245, 179, 72, 0.3)\",\n        shadowBlur: 3\n      },\n      emphasis: {\n        scale: true\n      },\n      areaStyle: {\n        color: {\n          type: \"linear\",\n          x: 0,\n          y: 0,\n          x2: 0,\n          y2: 1,\n          colorStops: [\n            { offset: 0, color: \"#846B38\" },\n            { offset: 0.5, color: \"#403E47\" },\n            { offset: 1, color: \"#11144E\" }\n          ],\n          global: false\n        },\n        shadowColor: \"rgba(255, 199, 37, 0)\",\n        shadowBlur: 20\n      },\n      data: data.data\n    };\n  })\n};\n</script>\n\n<style lang=\"scss\" scoped>\n.echarts {\n  width: 100%;\n  height: 100%;\n  :deep(.line-chart-bg) {\n    box-sizing: border-box;\n    display: flex;\n    align-items: center;\n    width: 180px;\n    height: 60px;\n    padding-left: 20px;\n    background: url(\"../images/line-bg.png\") no-repeat;\n    background-size: 100% 100%;\n    span {\n      font-size: 12px;\n      color: rgb(255 255 255 / 80%);\n      i {\n        font-style: normal;\n        color: #f5b348;\n      }\n    }\n  }\n}\n</style>\n"
  },
  {
    "path": "src/views/dataScreen/components/PlatformSourceChart.vue",
    "content": "<template>\n  <!-- 平台来源 -->\n  <div class=\"echarts\">\n    <ECharts :option=\"option\" :resize=\"false\" />\n  </div>\n</template>\n\n<script setup lang=\"ts\">\nimport ECharts from \"@/components/ECharts/index.vue\";\nimport { ECOption } from \"@/components/ECharts/config\";\n\ninterface ChartProp {\n  name: string;\n  value: number;\n  percentage: string;\n}\n\nconst data = [\n  { value: 40, name: \"智慧文旅平台\", percentage: \"40%\" },\n  { value: 10, name: \"携程\", percentage: \"10%\" },\n  { value: 20, name: \"飞猪\", percentage: \"20%\" },\n  { value: 30, name: \"其他渠道\", percentage: \"30%\" }\n];\n\nconst option: ECOption = {\n  grid: {\n    top: \"0%\",\n    left: \"2%\",\n    right: \"2%\",\n    bottom: \"0%\"\n  },\n  tooltip: {\n    trigger: \"item\",\n    formatter: \"{b} :  {c}人\"\n  },\n  legend: {\n    show: true,\n    top: \"middle\",\n    left: \"20px\",\n    icon: \"circle\",\n    orient: \"vertical\",\n    align: \"auto\",\n    itemWidth: 10,\n    textStyle: {\n      color: \"#fff\"\n    },\n    itemGap: 20,\n    formatter: function (name: string) {\n      let text = \"\";\n      data.forEach((val: ChartProp) => {\n        if (val.name === name) {\n          text = name + \" --- \" + val.percentage;\n        }\n      });\n      return text;\n    },\n    data: data.map((val: ChartProp) => val.name)\n  },\n  series: [\n    {\n      type: \"pie\",\n      radius: [\"60%\", \"85%\"],\n      center: [\"68%\", \"45%\"],\n      color: [\"#0E7CE2\", \"#FF8352\", \"#E271DE\", \"#F8456B\", \"#00FFFF\", \"#4AEAB0\"],\n      itemStyle: {\n        borderColor: \"#031845\",\n        borderWidth: 10\n      },\n      data: data,\n      labelLine: {\n        show: false\n      },\n      label: {\n        show: false\n      }\n    },\n    {\n      type: \"pie\",\n      radius: [\"20%\", \"28%\"],\n      center: [\"68%\", \"45%\"],\n      color: [\"#ffffff\", \"red\"],\n      startAngle: 105,\n      data: [\n        {\n          value: 30,\n          name: \"\",\n          itemStyle: {\n            color: \"transparent\"\n          }\n        },\n        {\n          value: 5,\n          name: \"\",\n          itemStyle: {\n            color: \"transparent\"\n          }\n        },\n        {\n          value: 65,\n          name: \"ddd\",\n          itemStyle: {\n            color: \"#ffffff\"\n          }\n        }\n      ],\n      silent: true,\n      labelLine: {\n        show: false\n      },\n      label: {\n        show: false\n      }\n    },\n    {\n      type: \"pie\",\n      radius: [0, \"30%\"],\n      center: [\"68%\", \"45%\"],\n      startAngle: 90,\n      data: [\n        {\n          value: 25,\n          name: \"1\",\n          itemStyle: {\n            color: \"transparent\",\n            borderWidth: 4,\n            borderColor: \"#ffffff\"\n          }\n        },\n        {\n          value: 75,\n          name: \"2\",\n          itemStyle: {\n            color: \"transparent\"\n          }\n        }\n      ],\n      selectedOffset: 10,\n      silent: true,\n      labelLine: {\n        show: false\n      },\n      label: {\n        show: false\n      }\n    },\n    {\n      type: \"pie\",\n      radius: [\"96%\", \"97%\"],\n      center: [\"68%\", \"45%\"],\n      color: [\"#007afe\", \"transparent\", \"#007afe\", \"transparent\", \"#007afe\", \"transparent\"],\n      data: [\n        { value: 17, name: \"11\" },\n        { value: 17, name: \"22\" },\n        { value: 17, name: \"33\" },\n        { value: 17, name: \"44\" },\n        { value: 17, name: \"55\" },\n        { value: 17, name: \"66\" }\n      ],\n      silent: true,\n      labelLine: { show: false },\n      label: { show: false }\n    },\n    {\n      type: \"pie\",\n      zlevel: 0,\n      silent: true,\n      radius: [\"45%\", \"46%\"],\n      center: [\"68%\", \"45%\"],\n      z: 10,\n      label: { show: false },\n      labelLine: { show: false },\n      data: new Array(150).fill(\"\").map((_val: string, index: number) => {\n        if (index % 3 === 0) {\n          return {\n            name: (index + 1).toString(),\n            value: 10,\n            itemStyle: {\n              color: \"#fff\",\n              borderWidth: 0,\n              borderColor: \"rgba(0,0,0,0)\"\n            }\n          };\n        } else {\n          return {\n            name: (index + 1).toString(),\n            value: 25,\n            itemStyle: {\n              color: \"rgba(0,0,0,0)\",\n              borderWidth: 0,\n              borderColor: \"rgba(0,0,0,0)\"\n            }\n          };\n        }\n      })\n    },\n    {\n      type: \"pie\",\n      zlevel: 0,\n      silent: true,\n      radius: [\"58%\", \"60%\"],\n      center: [\"68%\", \"45%\"],\n      z: 10,\n      startAngle: 90,\n      label: { show: false },\n      color: [\"red\", \"blue\", \"red\", \"blue\"],\n      labelLine: { show: false },\n      data: [\n        {\n          name: \"r1\",\n          value: 25,\n          itemStyle: {\n            color: {\n              type: \"linear\",\n              x: 0,\n              y: 0,\n              x2: 0,\n              y2: 1,\n              colorStops: [\n                { offset: 0, color: \"rgba(51,149,191,0.5)\" },\n                { offset: 1, color: \"rgba(51,149,191,0)\" }\n              ],\n              global: false\n            }\n          }\n        },\n        {\n          name: \"r2\",\n          value: 25,\n          itemStyle: {\n            color: {\n              type: \"linear\",\n              x: 0,\n              y: 0,\n              x2: 0,\n              y2: 1,\n              colorStops: [\n                { offset: 0, color: \"rgba(0,0,0,0)\" },\n                { offset: 1, color: \"rgba(51,149,191,0.5)\" }\n              ],\n              global: false\n            }\n          }\n        },\n        {\n          name: \"r3\",\n          value: 25,\n          itemStyle: {\n            color: {\n              type: \"linear\",\n              x: 0,\n              y: 0,\n              x2: 0,\n              y2: 1,\n              colorStops: [\n                { offset: 0, color: \"rgba(51,149,191,0)\" },\n                { offset: 1, color: \"rgba(51,149,191,0.5)\" }\n              ],\n              global: false\n            }\n          }\n        },\n        {\n          name: \"r4\",\n          value: 25,\n          itemStyle: {\n            color: {\n              type: \"linear\",\n              x: 0,\n              y: 0,\n              x2: 0,\n              y2: 1,\n              colorStops: [\n                { offset: 0, color: \"rgba(51,149,191,0.5)\" },\n                { offset: 1, color: \"rgba(0,0,0,0)\" }\n              ],\n              global: false\n            }\n          }\n        }\n      ]\n    }\n  ]\n};\n</script>\n<style lang=\"scss\" scoped>\n.echarts {\n  width: 100%;\n  height: 100%;\n}\n</style>\n"
  },
  {
    "path": "src/views/dataScreen/components/RealTimeAccessChart.vue",
    "content": "<template>\n  <!-- 实时访问 -->\n  <div class=\"actual-total\">\n    <div class=\"expect-total\">可预约总量<i>999999</i>人</div>\n    <div class=\"actual-total\">\n      <div v-for=\"(item, index) in actualTotal.split('')\" :key=\"index\" class=\"actual-item\">\n        {{ item }}\n      </div>\n      <div class=\"actual-item\">人</div>\n    </div>\n  </div>\n  <div class=\"echarts\">\n    <ECharts :option=\"option\" :resize=\"false\" />\n  </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref } from \"vue\";\nimport { ECOption } from \"@/components/ECharts/config\";\nimport ECharts from \"@/components/ECharts/index.vue\";\n\nconst actualTotal = ref(\"216908\");\nconst option = {\n  title: [\n    {\n      text: (0.5 * 100).toFixed(0) + \"%\",\n      left: \"49%\",\n      top: \"35%\",\n      textAlign: \"center\",\n      textStyle: {\n        fontSize: \"16\",\n        fontWeight: \"normal\",\n        color: \"#ffffff\",\n        align: \"center\",\n        textBorderColor: \"rgba(0, 0, 0, 0)\",\n        textShadowColor: \"#000\",\n        textShadowBlur: 0,\n        textShadowOffsetX: 0,\n        textShadowOffsetY: 1\n      }\n    },\n    {\n      text: \"预约量\",\n      left: \"49%\",\n      top: \"25%\",\n      textAlign: \"center\",\n      textStyle: {\n        fontSize: \"15\",\n        fontWeight: \"normal\",\n        color: \"#ffffff\",\n        align: \"center\",\n        textBorderColor: \"rgba(0, 0, 0, 0)\",\n        textShadowColor: \"#000\",\n        textShadowBlur: 0,\n        textShadowOffsetX: 0,\n        textShadowOffsetY: 1\n      }\n    }\n  ],\n  grid: {\n    top: \"0\",\n    left: \"0px\",\n    right: \"0px\",\n    bottom: \"0\",\n    containLabel: true\n  },\n  polar: {\n    radius: [\"75%\", \"85%\"],\n    center: [\"50%\", \"50%\"]\n  },\n  angleAxis: {\n    max: 120,\n    clockwise: false,\n    axisLine: {\n      show: false\n    },\n    axisTick: {\n      show: false\n    },\n    axisLabel: {\n      show: false\n    },\n    splitLine: {\n      show: false\n    },\n    startAngle: 188\n  },\n  radiusAxis: {\n    type: \"category\",\n    show: true,\n    axisLabel: {\n      show: false\n    },\n    axisLine: {\n      show: false\n    },\n    axisTick: {\n      show: false\n    }\n  },\n  series: [\n    {\n      type: \"liquidFill\",\n      radius: \"70%\",\n      z: 2,\n      center: [\"50%\", \"50%\"],\n      data: [0.4, 0.4, 0.4],\n      itemStyle: {\n        color: {\n          type: \"linear\",\n          x: 0,\n          y: 0,\n          x2: 0,\n          y2: 1,\n          colorStops: [\n            { offset: 0, color: \"#35FAB6\" },\n            { offset: 1, color: \"rgba(40, 209, 247,0.3)\" }\n          ],\n          global: false\n        }\n      },\n      outline: {\n        borderDistance: 0,\n        itemStyle: {\n          borderWidth: 2,\n          borderColor: \"#31d8d5\",\n          shadowBlur: 20,\n          shadowColor: \"#50c1a7\"\n        }\n      },\n      label: {\n        show: false\n      },\n      backgroundStyle: {\n        borderWidth: 1,\n        color: {\n          type: \"radial\",\n          x: 0.5,\n          y: 0.5,\n          r: 0.5,\n          colorStops: [\n            { offset: 0, color: \"#0D2648\" },\n            { offset: 0.8, color: \"#0D2648\" },\n            { offset: 1, color: \"#228E7D\" }\n          ],\n          global: false\n        }\n      }\n    },\n    {\n      type: \"pie\",\n      radius: [\"80%\", \"80%\"],\n      center: [\"50%\", \"50%\"],\n      z: 1,\n      label: { show: false },\n      silent: true,\n      itemStyle: {\n        borderWidth: 2,\n        borderType: [8, 10],\n        borderDashOffset: 15,\n        borderColor: \"#31d8d5\",\n        color: \"#11144e\",\n        borderCap: \"round\"\n      },\n      data: [100]\n    },\n    {\n      type: \"bar\",\n      data: [55],\n      z: 10,\n      coordinateSystem: \"polar\",\n      roundCap: true,\n      color: \"#31d8d5\"\n    }\n  ]\n} as ECOption;\n</script>\n\n<style lang=\"scss\" scoped>\n.echarts {\n  width: 100%;\n  height: calc(100% - 50px);\n}\n.actual-total {\n  position: relative;\n  display: flex;\n  align-items: center;\n  justify-content: flex-end;\n  height: 50px;\n  margin-top: 10px;\n  margin-right: 4px;\n  .actual-item {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    width: 52px;\n    height: 50px;\n    margin-right: 1px;\n    font-family: MetroDF;\n    font-size: 32px;\n    color: #66ffff;\n    background: url(\"../images/total.png\") no-repeat;\n    background-size: 100% 100%;\n    &:last-child {\n      margin-right: 0;\n      font-size: 22px;\n    }\n  }\n  .expect-total {\n    position: absolute;\n    top: -30px;\n    right: 5px;\n    font-size: 14px;\n    color: #ffffff;\n    i {\n      font-style: normal;\n      font-style: oblique;\n      color: #ff8100;\n    }\n  }\n}\n</style>\n"
  },
  {
    "path": "src/views/dataScreen/index.scss",
    "content": ".dataScreen-container {\n  width: 100%;\n  height: 100%;\n  background: url(\"./images/bg.png\") no-repeat;\n  background-repeat: no-repeat;\n  background-attachment: fixed;\n  background-position: center;\n  background-size: 100% 100%;\n  background-size: cover;\n  .dataScreen-content {\n    position: fixed;\n    top: 50%;\n    left: 50%;\n    z-index: 999;\n    display: flex;\n    flex-direction: column;\n    overflow: hidden;\n    transition: all 0.3s;\n    transform-origin: left top;\n    .dataScreen-header {\n      display: flex;\n      width: 100%;\n      height: 38px;\n      .header-lf,\n      .header-ri {\n        position: relative;\n        width: 567px;\n        height: 100%;\n        background: url(\"./images/dataScreen-header-left-bg.png\") no-repeat;\n        background-size: 100% 100%;\n      }\n      .header-ct {\n        position: relative;\n        flex: 1;\n        height: 100%;\n        .header-ct-title {\n          position: absolute;\n          top: 0;\n          left: 0;\n          width: 100%;\n          height: 82px;\n          font-family: YouSheBiaoTiHei;\n          font-size: 32px;\n          line-height: 78px;\n          color: #05e8fe;\n          text-align: center;\n          letter-spacing: 4px;\n          background: url(\"./images/dataScreen-header-center-bg.png\") no-repeat;\n          background-size: 100% 100%;\n          .header-ct-warning {\n            position: absolute;\n            bottom: -42px;\n            left: 50%;\n            width: 622px;\n            height: 44px;\n            font-family: YouSheBiaoTiHei;\n            font-size: 14px;\n            line-height: 44px;\n            color: #ffffff;\n            text-align: center;\n            letter-spacing: 1px;\n            background: url(\"./images/dataScreen-header-warn-bg.png\") no-repeat;\n            background-size: 100% 100%;\n            transform: translateX(-50%);\n          }\n        }\n      }\n      .header-screening,\n      .header-download {\n        position: absolute;\n        z-index: 9;\n        box-sizing: border-box;\n        width: 136px;\n        height: 42px;\n        font-family: YouSheBiaoTiHei;\n        font-size: 18px;\n        font-weight: 400;\n        line-height: 42px;\n        color: #29fcff;\n        text-align: center;\n        cursor: pointer;\n        background-size: 100% 100%;\n      }\n      .header-screening {\n        right: 0;\n        padding-right: 4px;\n        background: url(\"./images/dataScreen-header-btn-bg-l.png\") no-repeat;\n      }\n      .header-download {\n        left: 0;\n        padding-right: 0;\n        background: url(\"./images/dataScreen-header-btn-bg-r.png\") no-repeat;\n      }\n      .header-time {\n        position: absolute;\n        top: 0;\n        right: 14px;\n        width: 310px;\n        font-family: YouSheBiaoTiHei;\n        font-size: 17px;\n        font-weight: 400;\n        line-height: 38px;\n        color: #05e8fe;\n        white-space: nowrap;\n      }\n    }\n    .dataScreen-main {\n      box-sizing: border-box;\n      display: flex;\n      flex: 1;\n      width: 100%;\n      padding: 12px 42px 20px;\n      .dataScreen-lf {\n        display: flex;\n        flex-direction: column;\n        justify-content: space-between;\n        width: 394px;\n        height: 100%;\n        margin-right: 40px;\n        .dataScreen-top,\n        .dataScreen-center,\n        .dataScreen-bottom {\n          position: relative;\n          box-sizing: border-box;\n          width: 100%;\n          padding-top: 54px;\n        }\n        .dataScreen-top {\n          height: 37%;\n          background: url(\"./images/dataScreen-main-lt.png\") no-repeat;\n          background-size: 100% 100%;\n        }\n        .dataScreen-center {\n          height: 30%;\n          background: url(\"./images/dataScreen-main-lc.png\") no-repeat;\n          background-size: 100% 100%;\n        }\n        .dataScreen-bottom {\n          height: 27%;\n          margin-bottom: 0;\n          background: url(\"./images/dataScreen-main-lb.png\") no-repeat;\n          background-size: 100% 100%;\n        }\n      }\n      .dataScreen-ct {\n        display: flex;\n        flex: 1;\n        flex-direction: column;\n        justify-content: space-between;\n        height: 100%;\n        margin-right: 40px;\n        .dataScreen-map {\n          position: relative;\n          box-sizing: border-box;\n          flex: 1;\n          width: 100%;\n          margin-top: 78px;\n          .dataScreen-map-title {\n            position: absolute;\n            top: 10px;\n            left: 0;\n            z-index: 99;\n            box-sizing: border-box;\n            display: flex;\n            align-items: center;\n            width: 270px;\n            height: 25px;\n            padding-left: 30px;\n            font-size: 14px;\n            color: #ffffff;\n            letter-spacing: 5px;\n            background: url(\"./images/map-title-bg.png\") no-repeat;\n            background-size: 100% 100%;\n          }\n          .dataScreen-alarm {\n            position: absolute;\n            top: 0;\n            left: 0;\n            z-index: 99;\n            box-sizing: border-box;\n            width: 100%;\n            height: 76px;\n            padding: 2px 30px;\n            overflow: hidden;\n            background: url(\"./images/dataScreen-warn-bg.png\") no-repeat;\n            background-size: 100% 100%;\n            .map-item {\n              display: flex;\n              align-items: center;\n              height: 37px;\n              cursor: pointer;\n              img {\n                width: 15px;\n                height: 15px;\n                margin-top: 3px;\n                margin-right: 6px;\n              }\n              span {\n                font-size: 18px;\n                color: rgb(255 183 0 / 74.7%);\n              }\n            }\n          }\n        }\n        .dataScreen-cb {\n          position: relative;\n          box-sizing: border-box;\n          width: 100%;\n          height: 252px;\n          padding-top: 54px;\n          background: url(\"./images/dataScreen-main-cb.png\") no-repeat;\n          background-size: 100% 100%;\n        }\n      }\n      .dataScreen-rg {\n        display: flex;\n        flex-direction: column;\n        justify-content: space-between;\n        width: 394px;\n        height: 100%;\n        .dataScreen-top,\n        .dataScreen-center,\n        .dataScreen-bottom {\n          position: relative;\n          box-sizing: border-box;\n          width: 100%;\n          padding-top: 54px;\n        }\n        .dataScreen-top {\n          height: 37%;\n          background: url(\"./images/dataScreen-main-rt.png\") no-repeat;\n          background-size: 100% 100%;\n        }\n        .dataScreen-center {\n          height: 30%;\n          background: url(\"./images/dataScreen-main-rc.png\") no-repeat;\n          background-size: 100% 100%;\n        }\n        .dataScreen-bottom {\n          height: 27%;\n          margin-bottom: 0;\n          background: url(\"./images/dataScreen-main-rb.png\") no-repeat;\n          background-size: 100% 100%;\n        }\n      }\n      .dataScreen-main-title {\n        position: absolute;\n        top: 1px;\n        left: 0;\n        display: flex;\n        flex-direction: column;\n        span {\n          margin-bottom: 12px;\n          font-family: YouSheBiaoTiHei;\n          font-size: 18px;\n          line-height: 16px;\n          color: #ffffff;\n          letter-spacing: 1px;\n        }\n        img {\n          width: 68px;\n          height: 7px;\n        }\n      }\n      .dataScreen-main-chart {\n        width: 100%;\n        height: 100%;\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "src/views/dataScreen/index.vue",
    "content": "<template>\n  <div class=\"dataScreen-container\">\n    <div class=\"dataScreen-content\" ref=\"dataScreenRef\">\n      <div class=\"dataScreen-header\">\n        <div class=\"header-lf\">\n          <span class=\"header-screening\" @click=\"router.push(HOME_URL)\">首页</span>\n        </div>\n        <div class=\"header-ct\">\n          <div class=\"header-ct-title\">\n            <span>智慧旅游可视化大数据展示平台</span>\n            <div class=\"header-ct-warning\">平台高峰预警信息（2条）</div>\n          </div>\n        </div>\n        <div class=\"header-ri\">\n          <span class=\"header-download\">统计报告</span>\n          <span class=\"header-time\">当前时间：{{ time }}</span>\n        </div>\n      </div>\n      <div class=\"dataScreen-main\">\n        <div class=\"dataScreen-lf\">\n          <div class=\"dataScreen-top\">\n            <div class=\"dataScreen-main-title\">\n              <span>实时游客统计</span>\n              <img src=\"./images/dataScreen-title.png\" alt=\"\" />\n            </div>\n            <div class=\"dataScreen-main-chart\">\n              <RealTimeAccessChart />\n            </div>\n          </div>\n          <div class=\"dataScreen-center\">\n            <div class=\"dataScreen-main-title\">\n              <span>男女比例</span>\n              <img src=\"./images/dataScreen-title.png\" alt=\"\" />\n            </div>\n            <div class=\"dataScreen-main-chart\">\n              <MaleFemaleRatioChart />\n            </div>\n          </div>\n          <div class=\"dataScreen-bottom\">\n            <div class=\"dataScreen-main-title\">\n              <span>年龄比例</span>\n              <img src=\"./images/dataScreen-title.png\" alt=\"\" />\n            </div>\n            <div class=\"dataScreen-main-chart\">\n              <AgeRatioChart />\n            </div>\n          </div>\n        </div>\n        <div class=\"dataScreen-ct\">\n          <div class=\"dataScreen-map\">\n            <div class=\"dataScreen-map-title\">景区实时客流量</div>\n            <!-- <vue3-seamless-scroll\n\t\t\t\t\t\t\t:list=\"alarmData\"\n\t\t\t\t\t\t\tclass=\"dataScreen-alarm\"\n\t\t\t\t\t\t\t:step=\"0.5\"\n\t\t\t\t\t\t\t:hover=\"true\"\n\t\t\t\t\t\t\t:limitScrollNum=\"3\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<div class=\"dataScreen-alarm\">\n\t\t\t\t\t\t\t\t<div class=\"map-item\" v-for=\"item in alarmData\" :key=\"item.id\">\n\t\t\t\t\t\t\t\t\t<img src=\"./images/dataScreen-alarm.png\" alt=\"\" />\n\t\t\t\t\t\t\t\t\t<span class=\"map-alarm sle\">{{ item.label }} 预警：{{ item.warnMsg }}</span>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</vue3-seamless-scroll> -->\n            <ChinaMapChart />\n          </div>\n          <div class=\"dataScreen-cb\">\n            <div class=\"dataScreen-main-title\">\n              <span>未来30天游客量趋势图</span>\n              <img src=\"./images/dataScreen-title.png\" alt=\"\" />\n            </div>\n            <div class=\"dataScreen-main-chart\">\n              <OverNext30Chart />\n            </div>\n          </div>\n        </div>\n        <div class=\"dataScreen-rg\">\n          <div class=\"dataScreen-top\">\n            <div class=\"dataScreen-main-title\">\n              <span>热门景区排行</span>\n              <img src=\"./images/dataScreen-title.png\" alt=\"\" />\n            </div>\n            <div class=\"dataScreen-main-chart\">\n              <HotPlateChart />\n            </div>\n          </div>\n          <div class=\"dataScreen-center\">\n            <div class=\"dataScreen-main-title\">\n              <span>年度游客量对比</span>\n              <img src=\"./images/dataScreen-title.png\" alt=\"\" />\n            </div>\n            <div class=\"dataScreen-main-chart\">\n              <AnnualUseChart />\n            </div>\n          </div>\n          <div class=\"dataScreen-bottom\">\n            <div class=\"dataScreen-main-title\">\n              <span>预约渠道数据统计</span>\n              <img src=\"./images/dataScreen-title.png\" alt=\"\" />\n            </div>\n            <div class=\"dataScreen-main-chart\">\n              <PlatformSourceChart />\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n</template>\n\n<script setup lang=\"ts\" name=\"dataScreen\">\nimport { ref, onMounted, onBeforeUnmount } from \"vue\";\nimport { HOME_URL } from \"@/config\";\nimport { useRouter } from \"vue-router\";\nimport AgeRatioChart from \"./components/AgeRatioChart.vue\";\nimport AnnualUseChart from \"./components/AnnualUseChart.vue\";\nimport ChinaMapChart from \"./components/ChinaMapChart.vue\";\nimport HotPlateChart from \"./components/HotPlateChart.vue\";\nimport MaleFemaleRatioChart from \"./components/MaleFemaleRatioChart.vue\";\nimport OverNext30Chart from \"./components/OverNext30Chart.vue\";\nimport PlatformSourceChart from \"./components/PlatformSourceChart.vue\";\nimport RealTimeAccessChart from \"./components/RealTimeAccessChart.vue\";\nimport dayjs from \"dayjs\";\n\nconst router = useRouter();\nconst dataScreenRef = ref<HTMLElement | null>(null);\n\nonMounted(() => {\n  if (dataScreenRef.value) {\n    dataScreenRef.value.style.transform = `scale(${getScale()}) translate(-50%, -50%)`;\n    dataScreenRef.value.style.width = `1920px`;\n    dataScreenRef.value.style.height = `1080px`;\n  }\n  window.addEventListener(\"resize\", resize);\n});\n\n// 设置响应式\nconst resize = () => {\n  if (dataScreenRef.value) {\n    dataScreenRef.value.style.transform = `scale(${getScale()}) translate(-50%, -50%)`;\n  }\n};\n\n// 根据浏览器大小推断缩放比例\nconst getScale = (width = 1920, height = 1080) => {\n  let ww = window.innerWidth / width;\n  let wh = window.innerHeight / height;\n  return ww < wh ? ww : wh;\n};\n\n// 获取当前时间\nlet timer: NodeJS.Timer | null = null;\nlet time = ref<string>(dayjs().format(\"YYYY年MM月DD HH:mm:ss\"));\ntimer = setInterval(() => {\n  time.value = dayjs().format(\"YYYY年MM月DD HH:mm:ss\");\n}, 1000);\n\nonBeforeUnmount(() => {\n  window.removeEventListener(\"resize\", resize);\n  clearInterval(timer as unknown as number);\n});\n</script>\n<style lang=\"scss\" scoped>\n@import \"./index.scss\";\n</style>\n"
  },
  {
    "path": "src/views/directives/copyDirect/index.scss",
    "content": ""
  },
  {
    "path": "src/views/directives/copyDirect/index.vue",
    "content": "<template>\n  <div class=\"card content-box\">\n    <span class=\"text\">复制指令 🍇🍇🍇🍓🍓🍓</span>\n    <div class=\"box-content\">\n      <el-input v-model=\"data\" placeholder=\"请输入内容\" style=\"width: 500px\">\n        <template #append>\n          <el-button v-copy=\"data\"> 复制 </el-button>\n        </template>\n      </el-input>\n    </div>\n  </div>\n</template>\n\n<script setup lang=\"ts\" name=\"copyDirect\">\nimport { ref } from \"vue\";\n\nconst data = ref<string>(\"我是被复制的内容 🍒 🍉 🍊\");\n</script>\n\n<style scoped lang=\"scss\">\n@import \"./index.scss\";\n</style>\n"
  },
  {
    "path": "src/views/directives/debounceDirect/index.scss",
    "content": ""
  },
  {
    "path": "src/views/directives/debounceDirect/index.vue",
    "content": "<template>\n  <div class=\"card content-box\">\n    <span class=\"text\">防抖指令 🍇🍇🍇🍓🍓🍓</span>\n    <el-button v-debounce=\"debounceClick\" type=\"primary\"> 防抖按钮 (0.5秒后执行) </el-button>\n  </div>\n</template>\n\n<script setup lang=\"ts\" name=\"debounceDirect\">\nimport { ElMessage } from \"element-plus\";\nconst debounceClick = () => {\n  ElMessage.success(\"我是防抖按钮触发的事件 🍍🍓🍌\");\n};\n</script>\n\n<style scoped lang=\"scss\">\n@import \"./index.scss\";\n</style>\n"
  },
  {
    "path": "src/views/directives/dragDirect/index.scss",
    "content": ".content-box {\n  position: relative;\n  .drag-box {\n    position: absolute;\n    top: 110px;\n    width: 300px;\n    height: 300px;\n    font-size: 23px;\n    font-weight: bold;\n    color: var(--el-color-primary-light-3);\n    background: var(--el-color-primary-light-9);\n    border-radius: 50%;\n  }\n}\n"
  },
  {
    "path": "src/views/directives/dragDirect/index.vue",
    "content": "<template>\n  <div class=\"card content-box\">\n    <span class=\"text\">拖拽指令 🍇🍇🍇🍓🍓🍓</span>\n    <div v-draggable class=\"drag-box flx-center\">我可以拖拽哦~</div>\n  </div>\n</template>\n\n<script setup lang=\"ts\" name=\"dragDirect\"></script>\n\n<style scoped lang=\"scss\">\n@import \"./index.scss\";\n</style>\n"
  },
  {
    "path": "src/views/directives/longpressDirect/index.scss",
    "content": ""
  },
  {
    "path": "src/views/directives/longpressDirect/index.vue",
    "content": "<template>\n  <div class=\"card content-box\">\n    <span class=\"text\">长按指令 🍇🍇🍇🍓🍓🍓</span>\n    <el-button v-longpress=\"longpress\" type=\"primary\"> 长按2秒触发事件 </el-button>\n  </div>\n</template>\n\n<script setup lang=\"ts\" name=\"longpressDirect\">\nimport { ElMessage } from \"element-plus\";\nconst longpress = () => {\n  ElMessage.success(\"长按事件触发成功 🎉🎉🎉\");\n};\n</script>\n\n<style scoped lang=\"scss\">\n@import \"./index.scss\";\n</style>\n"
  },
  {
    "path": "src/views/directives/throttleDirect/index.scss",
    "content": ""
  },
  {
    "path": "src/views/directives/throttleDirect/index.vue",
    "content": "<template>\n  <div class=\"card content-box\">\n    <span class=\"text\">节流指令 🍇🍇🍇🍓🍓🍓</span>\n    <el-button v-throttle=\"throttleClick\" type=\"primary\"> 节流按钮 (每隔1S秒后执行) </el-button>\n  </div>\n</template>\n\n<script setup lang=\"ts\" name=\"throttleDirect\">\nimport { ElMessage } from \"element-plus\";\nconst throttleClick = () => {\n  ElMessage.success(\"我是节流按钮触发的事件 🍍🍓🍌\");\n};\n</script>\n\n<style scoped lang=\"scss\">\n@import \"./index.scss\";\n</style>\n"
  },
  {
    "path": "src/views/directives/watermarkDirect/index.scss",
    "content": ""
  },
  {
    "path": "src/views/directives/watermarkDirect/index.vue",
    "content": "<template>\n  <div v-waterMarker=\"{ text: 'Geeker Admin', textColor: 'rgba(180, 180, 180, 0.6)' }\" class=\"card content-box\">\n    <span class=\"text\">水印指令 🍇🍇🍇🍓🍓🍓</span>\n  </div>\n</template>\n\n<script setup lang=\"ts\" name=\"watermarkDirect\"></script>\n\n<style scoped lang=\"scss\">\n@import \"./index.scss\";\n</style>\n"
  },
  {
    "path": "src/views/echarts/columnChart/index.scss",
    "content": ""
  },
  {
    "path": "src/views/echarts/columnChart/index.vue",
    "content": "<template>\n  <div class=\"card content-box\">\n    <ECharts :option=\"option\" />\n  </div>\n</template>\n\n<script setup lang=\"ts\" name=\"columnChart\">\nimport { ECOption } from \"@/components/ECharts/config\";\nimport ECharts from \"@/components/ECharts/index.vue\";\n\nconst option: ECOption = {\n  tooltip: {\n    trigger: \"axis\",\n    axisPointer: {\n      type: \"shadow\"\n    }\n  },\n  legend: {\n    textStyle: {\n      color: \"#a1a1a1\"\n    }\n  },\n  grid: {\n    left: \"3%\",\n    right: \"4%\",\n    bottom: \"3%\",\n    containLabel: true\n  },\n  xAxis: [\n    {\n      type: \"category\",\n      data: [\"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\", \"Sun\"],\n      axisLabel: {\n        color: \"#a1a1a1\"\n      }\n    }\n  ],\n  yAxis: [\n    {\n      type: \"value\",\n      axisLabel: {\n        color: \"#a1a1a1\"\n      }\n    }\n  ],\n  series: [\n    {\n      name: \"Direct\",\n      type: \"bar\",\n      emphasis: {\n        focus: \"series\"\n      },\n      data: [320, 332, 301, 334, 390, 330, 320]\n    },\n    {\n      name: \"Email\",\n      type: \"bar\",\n      stack: \"Ad\",\n      emphasis: {\n        focus: \"series\"\n      },\n      data: [120, 132, 101, 134, 90, 230, 210]\n    },\n    {\n      name: \"Union Ads\",\n      type: \"bar\",\n      stack: \"Ad\",\n      emphasis: {\n        focus: \"series\"\n      },\n      data: [220, 182, 191, 234, 290, 330, 310]\n    },\n    {\n      name: \"Video Ads\",\n      type: \"bar\",\n      stack: \"Ad\",\n      emphasis: {\n        focus: \"series\"\n      },\n      data: [150, 232, 201, 154, 190, 330, 410]\n    },\n    {\n      name: \"Search Engine\",\n      type: \"bar\",\n      data: [862, 1018, 964, 1026, 1679, 1600, 1570],\n      emphasis: {\n        focus: \"series\"\n      },\n      markLine: {\n        lineStyle: {\n          type: \"dashed\"\n        },\n        data: [[{ type: \"min\" }, { type: \"max\" }]]\n      }\n    },\n    {\n      name: \"Baidu\",\n      type: \"bar\",\n      barWidth: 5,\n      stack: \"Search Engine\",\n      emphasis: {\n        focus: \"series\"\n      },\n      data: [620, 732, 701, 734, 1090, 1130, 1120]\n    },\n    {\n      name: \"Google\",\n      type: \"bar\",\n      stack: \"Search Engine\",\n      emphasis: {\n        focus: \"series\"\n      },\n      data: [120, 132, 101, 134, 290, 230, 220]\n    },\n    {\n      name: \"Bing\",\n      type: \"bar\",\n      stack: \"Search Engine\",\n      emphasis: {\n        focus: \"series\"\n      },\n      data: [60, 72, 71, 74, 190, 130, 110]\n    },\n    {\n      name: \"Others\",\n      type: \"bar\",\n      stack: \"Search Engine\",\n      emphasis: {\n        focus: \"series\"\n      },\n      data: [62, 82, 91, 84, 109, 110, 120]\n    }\n  ]\n};\n</script>\n\n<style scoped lang=\"scss\">\n@import \"./index.scss\";\n</style>\n"
  },
  {
    "path": "src/views/echarts/lineChart/index.scss",
    "content": ""
  },
  {
    "path": "src/views/echarts/lineChart/index.vue",
    "content": "<template>\n  <div class=\"card content-box\">\n    <ECharts :option=\"option\" />\n  </div>\n</template>\n\n<script setup lang=\"ts\" name=\"lineChart\">\nimport { ECOption } from \"@/components/ECharts/config\";\nimport ECharts from \"@/components/ECharts/index.vue\";\n\nconst option: ECOption = {\n  title: {\n    text: \"Stacked Area Chart\",\n    textStyle: {\n      color: \"#a1a1a1\"\n    }\n  },\n  tooltip: {\n    trigger: \"axis\",\n    axisPointer: {\n      type: \"cross\",\n      label: {\n        backgroundColor: \"#6a7985\"\n      }\n    }\n  },\n  legend: {\n    data: [\"Email\", \"Union Ads\", \"Video Ads\", \"Direct\", \"Search Engine\"],\n    textStyle: {\n      color: \"#a1a1a1\"\n    }\n  },\n  toolbox: {\n    feature: {\n      saveAsImage: {}\n    }\n  },\n  grid: {\n    left: \"3%\",\n    right: \"4%\",\n    bottom: \"3%\",\n    containLabel: true\n  },\n  xAxis: [\n    {\n      type: \"category\",\n      boundaryGap: false,\n      data: [\"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\", \"Sun\"],\n      axisLabel: {\n        color: \"#a1a1a1\"\n      }\n    }\n  ],\n  yAxis: [\n    {\n      type: \"value\",\n      axisLabel: {\n        color: \"#a1a1a1\"\n      }\n    }\n  ],\n  series: [\n    {\n      name: \"Email\",\n      type: \"line\",\n      stack: \"Total\",\n      areaStyle: {},\n      emphasis: {\n        focus: \"series\"\n      },\n      data: [120, 132, 101, 134, 90, 230, 210]\n    },\n    {\n      name: \"Union Ads\",\n      type: \"line\",\n      stack: \"Total\",\n      areaStyle: {},\n      emphasis: {\n        focus: \"series\"\n      },\n      data: [220, 182, 191, 234, 290, 330, 310]\n    },\n    {\n      name: \"Video Ads\",\n      type: \"line\",\n      stack: \"Total\",\n      areaStyle: {},\n      emphasis: {\n        focus: \"series\"\n      },\n      data: [150, 232, 201, 154, 190, 330, 410]\n    },\n    {\n      name: \"Direct\",\n      type: \"line\",\n      stack: \"Total\",\n      areaStyle: {},\n      emphasis: {\n        focus: \"series\"\n      },\n      data: [320, 332, 301, 334, 390, 330, 320]\n    },\n    {\n      name: \"Search Engine\",\n      type: \"line\",\n      stack: \"Total\",\n      label: {\n        show: true,\n        position: \"top\"\n      },\n      areaStyle: {},\n      emphasis: {\n        focus: \"series\"\n      },\n      data: [820, 932, 901, 934, 1290, 1330, 1320]\n    }\n  ]\n};\n</script>\n\n<style scoped lang=\"scss\">\n@import \"./index.scss\";\n</style>\n"
  },
  {
    "path": "src/views/echarts/nestedChart/index.scss",
    "content": ""
  },
  {
    "path": "src/views/echarts/nestedChart/index.vue",
    "content": "<template>\n  <div class=\"card content-box\">\n    <ECharts :option=\"option\" />\n  </div>\n</template>\n\n<script setup lang=\"ts\" name=\"nestedChart\">\nimport { ECOption } from \"@/components/ECharts/config\";\nimport ECharts from \"@/components/ECharts/index.vue\";\n\nconst option: ECOption = {\n  tooltip: {\n    trigger: \"item\",\n    formatter: \"{a} <br/>{b}: {c} ({d}%)\"\n  },\n  legend: {\n    data: [\"Direct\", \"Marketing\", \"Search Engine\", \"Email\", \"Union Ads\", \"Video Ads\", \"Baidu\", \"Google\", \"Bing\", \"Others\"],\n    textStyle: {\n      color: \"#a1a1a1\"\n    }\n  },\n  series: [\n    {\n      name: \"Access From\",\n      type: \"pie\",\n      selectedMode: \"single\",\n      radius: [0, \"30%\"],\n      label: {\n        position: \"inner\",\n        fontSize: 14\n      },\n      labelLine: {\n        show: false\n      },\n      data: [\n        { value: 1548, name: \"Search Engine\" },\n        { value: 775, name: \"Direct\" },\n        { value: 679, name: \"Marketing\", selected: true }\n      ]\n    },\n    {\n      name: \"Access From\",\n      type: \"pie\",\n      radius: [\"45%\", \"60%\"],\n      labelLine: {\n        length: 30\n      },\n      label: {\n        formatter: \"{a|{a}}{abg|}\\n{hr|}\\n  {b|{b}：}{c}  {per|{d}%}  \",\n        backgroundColor: \"#F6F8FC\",\n        borderColor: \"#8C8D8E\",\n        borderWidth: 1,\n        borderRadius: 4,\n        rich: {\n          a: {\n            color: \"#6E7079\",\n            lineHeight: 22,\n            align: \"center\"\n          },\n          hr: {\n            borderColor: \"#8C8D8E\",\n            width: \"100%\",\n            borderWidth: 1,\n            height: 0\n          },\n          b: {\n            color: \"#4C5058\",\n            fontSize: 14,\n            fontWeight: \"bold\",\n            lineHeight: 33\n          },\n          per: {\n            color: \"#fff\",\n            backgroundColor: \"#4C5058\",\n            padding: [3, 4],\n            borderRadius: 4\n          }\n        }\n      },\n      data: [\n        { value: 1048, name: \"Baidu\" },\n        { value: 335, name: \"Direct\" },\n        { value: 310, name: \"Email\" },\n        { value: 251, name: \"Google\" },\n        { value: 234, name: \"Union Ads\" },\n        { value: 147, name: \"Bing\" },\n        { value: 135, name: \"Video Ads\" },\n        { value: 102, name: \"Others\" }\n      ]\n    }\n  ]\n};\n</script>\n\n<style scoped lang=\"scss\">\n@import \"./index.scss\";\n</style>\n"
  },
  {
    "path": "src/views/echarts/pieChart/index.scss",
    "content": ""
  },
  {
    "path": "src/views/echarts/pieChart/index.vue",
    "content": "<template>\n  <div class=\"card content-box\">\n    <ECharts :option=\"option\" />\n  </div>\n</template>\n\n<script setup lang=\"ts\" name=\"pieChart\">\nimport { ECOption } from \"@/components/ECharts/config\";\nimport ECharts from \"@/components/ECharts/index.vue\";\n\nconst option: ECOption = {\n  tooltip: {\n    trigger: \"item\",\n    formatter: \"{a} <br/>{b} : {c} ({d}%)\"\n  },\n  legend: {\n    left: \"center\",\n    top: \"bottom\",\n    data: [\"rose 1\", \"rose 2\", \"rose 3\", \"rose 4\", \"rose 5\", \"rose 6\", \"rose 7\", \"rose 8\"],\n    textStyle: {\n      color: \"#a1a1a1\"\n    }\n  },\n  toolbox: {\n    show: true,\n    feature: {\n      mark: { show: true },\n      dataView: { show: true, readOnly: false },\n      restore: { show: true },\n      saveAsImage: { show: true }\n    }\n  },\n  series: [\n    {\n      name: \"Radius Mode\",\n      type: \"pie\",\n      radius: [60, 280],\n      center: [\"50%\", \"50%\"],\n      roseType: \"radius\",\n      itemStyle: {\n        borderRadius: 5\n      },\n      label: {\n        show: true\n      },\n      emphasis: {\n        label: {\n          show: true\n        }\n      },\n      data: [\n        { value: 40, name: \"rose 1\" },\n        { value: 33, name: \"rose 2\" },\n        { value: 28, name: \"rose 3\" },\n        { value: 22, name: \"rose 4\" },\n        { value: 20, name: \"rose 5\" },\n        { value: 15, name: \"rose 6\" },\n        { value: 12, name: \"rose 7\" },\n        { value: 10, name: \"rose 8\" }\n      ]\n    }\n  ]\n};\n</script>\n\n<style scoped lang=\"scss\">\n@import \"./index.scss\";\n</style>\n"
  },
  {
    "path": "src/views/echarts/radarChart/index.scss",
    "content": ""
  },
  {
    "path": "src/views/echarts/radarChart/index.vue",
    "content": "<template>\n  <div class=\"card content-box\">\n    <ECharts :option=\"option\" />\n  </div>\n</template>\n\n<script setup lang=\"ts\" name=\"radarChart\">\nimport { ECOption } from \"@/components/ECharts/config\";\nimport ECharts from \"@/components/ECharts/index.vue\";\n\nconst option: ECOption = {\n  title: {\n    text: \"Basic Radar Chart\",\n    textStyle: {\n      color: \"#a1a1a1\"\n    }\n  },\n  legend: {\n    data: [\"Allocated Budget\", \"Actual Spending\"],\n    textStyle: {\n      color: \"#a1a1a1\"\n    }\n  },\n  radar: {\n    // shape: 'circle',\n    indicator: [\n      { name: \"Sales\", max: 6500 },\n      { name: \"Administration\", max: 16000 },\n      { name: \"Information Technology\", max: 30000 },\n      { name: \"Customer Support\", max: 38000 },\n      { name: \"Development\", max: 52000 },\n      { name: \"Marketing\", max: 25000 }\n    ]\n  },\n  series: [\n    {\n      name: \"Budget vs spending\",\n      type: \"radar\",\n      data: [\n        {\n          value: [4200, 3000, 20000, 35000, 50000, 18000],\n          name: \"Allocated Budget\"\n        },\n        {\n          value: [5000, 14000, 28000, 26000, 42000, 21000],\n          name: \"Actual Spending\"\n        }\n      ]\n    }\n  ]\n};\n</script>\n\n<style scoped lang=\"scss\">\n@import \"./index.scss\";\n</style>\n"
  },
  {
    "path": "src/views/echarts/waterChart/index.scss",
    "content": ""
  },
  {
    "path": "src/views/echarts/waterChart/index.vue",
    "content": "<template>\n  <div class=\"card content-box\">\n    <ECharts :option=\"option\" />\n  </div>\n</template>\n\n<script setup lang=\"ts\" name=\"waterChart\">\nimport echarts, { ECOption } from \"@/components/ECharts/config\";\nimport ECharts from \"@/components/ECharts/index.vue\";\n\nconst option = {\n  title: [\n    {\n      text: \"预约量\",\n      x: \"25%\",\n      y: 30,\n      textAlign: \"center\",\n      textStyle: {\n        color: \"#a1a1a1\",\n        fontSize: 16,\n        fontFamily: \"Microsoft Yahei\",\n        fontWeight: \"100\",\n        textAlign: \"center\"\n      }\n    },\n    {\n      text: \"实时客流量\",\n      x: \"75%\",\n      y: 30,\n      textAlign: \"center\",\n      textStyle: {\n        color: \"#a1a1a1\",\n        fontSize: 16,\n        fontFamily: \"Microsoft Yahei\",\n        fontWeight: \"100\",\n        textAlign: \"center\"\n      }\n    },\n    {\n      text: (0.5 * 100).toFixed(0) + \"%\",\n      left: \"25%\",\n      top: \"38%\",\n      textAlign: \"center\",\n      textStyle: {\n        fontSize: \"50\",\n        fontWeight: \"300\",\n        color: \"#a06a0a\",\n        textAlign: \"center\",\n        textBorderColor: \"rgba(0, 0, 0, 0)\",\n        textShadowColor: \"#fff\",\n        textShadowBlur: \"0\",\n        textShadowOffsetX: 0,\n        textShadowOffsetY: 1\n      }\n    },\n    {\n      text: (0.5 * 100).toFixed(0) + \"%\",\n      left: \"75%\",\n      top: \"38%\",\n      textAlign: \"center\",\n      textStyle: {\n        fontSize: \"50\",\n        fontWeight: \"300\",\n        color: \"#02456d\",\n        textAlign: \"center\",\n        textBorderColor: \"rgba(0, 0, 0, 0)\",\n        textShadowColor: \"#fff\",\n        textShadowBlur: \"0\",\n        textShadowOffsetX: 0,\n        textShadowOffsetY: 1\n      }\n    }\n  ],\n  series: [\n    {\n      type: \"liquidFill\",\n      radius: \"50%\",\n      z: 6,\n      center: [\"25%\", \"50%\"],\n      color: [\n        {\n          type: \"linear\",\n          x: 0,\n          y: 0,\n          x2: 0,\n          y2: 1,\n          colorStops: [\n            {\n              offset: 1,\n              color: \"rgba(251, 173, 23, 0)\"\n            },\n            {\n              offset: 0.5,\n              color: \"rgba(251, 173, 23, .2)\"\n            },\n            {\n              offset: 0,\n              color: \"rgba(251, 173, 23, 1)\"\n            }\n          ],\n          globalCoord: false\n        }\n      ],\n      data: [0.5, 0.5, 0.5],\n      backgroundStyle: {\n        borderWidth: 1,\n        color: \"transparent\"\n      },\n      label: {\n        normal: {\n          formatter: \"\"\n        }\n      },\n      outline: {\n        show: true,\n        itemStyle: {\n          borderWidth: 0\n        },\n        borderDistance: 0\n      }\n    },\n    {\n      name: \"第二层白边\",\n      type: \"pie\",\n      z: 3,\n      radius: [\"0%\", \"55%\"],\n      center: [\"25%\", \"50%\"],\n      hoverAnimation: false,\n      itemStyle: {\n        normal: {\n          label: {\n            show: false\n          }\n        }\n      },\n      data: [\n        {\n          value: 100,\n          itemStyle: {\n            normal: {\n              color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [\n                {\n                  offset: 0,\n                  color: \"#fefefe\"\n                },\n                {\n                  offset: 1,\n                  color: \"#e7e8ea\"\n                }\n              ])\n            }\n          }\n        },\n        {\n          value: 0,\n          itemStyle: {\n            normal: {\n              color: \"transparent\"\n            }\n          }\n        }\n      ]\n    },\n    {\n      name: \"最外绿边\",\n      type: \"pie\",\n      z: 1,\n      radius: [\"0%\", \"58%\"],\n      center: [\"25%\", \"50%\"],\n      hoverAnimation: false,\n      itemStyle: {\n        normal: {\n          label: {\n            show: false\n          }\n        }\n      },\n      data: [\n        {\n          value: 100,\n          itemStyle: {\n            color: \"#fdc56e\"\n          }\n        },\n        {\n          value: 0,\n          itemStyle: {\n            normal: {\n              color: \"transparent\"\n            }\n          }\n        }\n      ]\n    },\n    {\n      type: \"liquidFill\",\n      radius: \"50%\",\n      z: 6,\n      center: [\"75%\", \"50%\"],\n      color: [\"#c1dce7\", \"#90d3f0\", \"#009bdb\"],\n      data: [0.6, { value: 0.5, direction: \"left\" }, 0.4, 0.3],\n      backgroundStyle: {\n        borderWidth: 1,\n        color: \"transparent\"\n      },\n      label: {\n        normal: {\n          formatter: \"\"\n        }\n      },\n      outline: {\n        show: true,\n        itemStyle: {\n          borderWidth: 0\n        },\n        borderDistance: 0\n      }\n    },\n    {\n      name: \"第二层白边\",\n      type: \"pie\",\n      z: 3,\n      radius: [\"0%\", \"55%\"],\n      center: [\"75%\", \"50%\"],\n      hoverAnimation: false,\n      itemStyle: {\n        normal: {\n          label: {\n            show: false\n          }\n        }\n      },\n      data: [\n        {\n          value: 100,\n          itemStyle: {\n            normal: {\n              color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [\n                {\n                  offset: 0,\n                  color: \"#fefefe\"\n                },\n                {\n                  offset: 1,\n                  color: \"#e7e8ea\"\n                }\n              ])\n            }\n          }\n        },\n        {\n          value: 0,\n          itemStyle: {\n            normal: {\n              color: \"transparent\"\n            }\n          }\n        }\n      ]\n    },\n    {\n      name: \"最外蓝边\",\n      type: \"pie\",\n      z: 1,\n      radius: [\"0%\", \"58%\"],\n      center: [\"75%\", \"50%\"],\n      hoverAnimation: false,\n      itemStyle: {\n        normal: {\n          label: {\n            show: false\n          }\n        }\n      },\n      data: [\n        {\n          value: 100,\n          itemStyle: {\n            color: \"#07a2e3\"\n          }\n        },\n        {\n          value: 0,\n          itemStyle: {\n            normal: {\n              color: \"transparent\"\n            }\n          }\n        }\n      ]\n    }\n  ]\n} as ECOption;\n</script>\n\n<style scoped lang=\"scss\">\n@import \"./index.scss\";\n</style>\n"
  },
  {
    "path": "src/views/form/basicForm/index.scss",
    "content": ".el-form {\n  width: 100%;\n  .text-center {\n    text-align: center;\n  }\n}\n"
  },
  {
    "path": "src/views/form/basicForm/index.vue",
    "content": "<template>\n  <div class=\"card content-box\">\n    <el-form :model=\"formData\" label-width=\"140px\">\n      <el-form-item label=\"Activity name :\">\n        <el-input v-model=\"formData.name\" />\n      </el-form-item>\n      <el-form-item label=\"Activity zone :\">\n        <el-select v-model=\"formData.region\" placeholder=\"please select your zone\">\n          <el-option label=\"Zone one\" value=\"shanghai\" />\n          <el-option label=\"Zone two\" value=\"beijing\" />\n        </el-select>\n      </el-form-item>\n      <el-form-item label=\"Activity time :\">\n        <el-date-picker v-model=\"formData.date1\" type=\"date\" placeholder=\"Pick a date\" />\n        <el-col :span=\"1\" class=\"text-center\">\n          <span class=\"text-gray-500\">-</span>\n        </el-col>\n        <el-time-picker v-model=\"formData.date2\" placeholder=\"Pick a time\" />\n      </el-form-item>\n      <el-form-item label=\"Instant delivery :\">\n        <el-switch v-model=\"formData.delivery\" />\n      </el-form-item>\n      <el-form-item label=\"Activity type :\">\n        <el-checkbox-group v-model=\"formData.type\">\n          <el-checkbox value=\"Online activities\" name=\"type\"> Online activities </el-checkbox>\n          <el-checkbox value=\"Promotion activities\" name=\"type\"> Promotion activities </el-checkbox>\n          <el-checkbox value=\"Offline activities\" name=\"type\"> Offline activities </el-checkbox>\n          <el-checkbox value=\"Simple brand exposure\" name=\"type\"> Simple brand exposure </el-checkbox>\n        </el-checkbox-group>\n      </el-form-item>\n      <el-form-item label=\"Resources :\">\n        <el-radio-group v-model=\"formData.resource\">\n          <el-radio value=\"Sponsor\">Sponsor</el-radio>\n          <el-radio value=\"Venue\">Venue</el-radio>\n        </el-radio-group>\n      </el-form-item>\n      <el-form-item label=\"Activity form :\">\n        <el-input v-model=\"formData.desc\" type=\"textarea\" />\n      </el-form-item>\n      <el-form-item>\n        <el-button type=\"primary\" @click=\"onSubmit\"> Create </el-button>\n        <el-button>Cancel</el-button>\n      </el-form-item>\n    </el-form>\n  </div>\n</template>\n\n<script setup lang=\"ts\" name=\"basicForm\">\nimport { ElMessage } from \"element-plus\";\nimport { reactive } from \"vue\";\n\n// do not use same name with ref\nconst formData = reactive({\n  name: \"\",\n  region: \"\",\n  date1: \"\",\n  date2: \"\",\n  delivery: false,\n  type: [],\n  resource: \"\",\n  desc: \"\"\n});\n\nconst onSubmit = () => {\n  ElMessage.success(\"提交的数据为 : \" + JSON.stringify(formData));\n};\n</script>\n\n<style scoped lang=\"scss\">\n@import \"./index.scss\";\n</style>\n"
  },
  {
    "path": "src/views/form/dynamicForm/index.scss",
    "content": ".el-form {\n  width: 100%;\n}\n.add {\n  margin-bottom: 20px;\n}\n"
  },
  {
    "path": "src/views/form/dynamicForm/index.vue",
    "content": "<template>\n  <div class=\"card content-box\">\n    <el-button class=\"add\" type=\"primary\" plain @click=\"addDomain\"> Add Input </el-button>\n    <el-form ref=\"formRef\" :model=\"dynamicValidateForm\" label-width=\"100px\" class=\"demo-dynamic\">\n      <el-form-item\n        prop=\"email\"\n        label=\"Email\"\n        :rules=\"[\n          {\n            required: true,\n            message: 'Please input email address',\n            trigger: 'blur'\n          },\n          {\n            type: 'email',\n            message: 'Please input correct email address',\n            trigger: ['blur', 'change']\n          }\n        ]\"\n      >\n        <el-input v-model=\"dynamicValidateForm.email\" />\n      </el-form-item>\n      <el-form-item\n        v-for=\"(domain, index) in dynamicValidateForm.domains\"\n        :key=\"domain.key\"\n        :label=\"'Domain' + index\"\n        :prop=\"'domains.' + index + '.value'\"\n        :rules=\"{\n          required: true,\n          message: 'domain can not be null',\n          trigger: 'blur'\n        }\"\n      >\n        <el-input v-model=\"domain.value\">\n          <template #append>\n            <el-button type=\"danger\" plain class=\"mt-2\" @click.prevent=\"removeDomain(domain)\"> Delete </el-button>\n          </template>\n        </el-input>\n      </el-form-item>\n      <el-form-item>\n        <el-button type=\"primary\" @click=\"submitForm(formRef)\"> Submit </el-button>\n        <el-button @click=\"resetForm(formRef)\"> Reset </el-button>\n      </el-form-item>\n    </el-form>\n  </div>\n</template>\n\n<script setup lang=\"ts\" name=\"dynamicForm\">\nimport { reactive, ref } from \"vue\";\nimport type { FormInstance } from \"element-plus\";\n\nconst formRef = ref<FormInstance>();\nconst dynamicValidateForm = reactive<{\n  domains: DomainItem[];\n  email: string;\n}>({\n  domains: [\n    {\n      key: 1,\n      value: \"\"\n    }\n  ],\n  email: \"\"\n});\n\ninterface DomainItem {\n  key: number;\n  value: string;\n}\n\nconst removeDomain = (item: DomainItem) => {\n  const index = dynamicValidateForm.domains.indexOf(item);\n  if (index !== -1) {\n    dynamicValidateForm.domains.splice(index, 1);\n  }\n};\n\nconst addDomain = () => {\n  dynamicValidateForm.domains.push({\n    key: Date.now(),\n    value: \"\"\n  });\n};\n\nconst submitForm = async (formEl: FormInstance | undefined) => {\n  if (!formEl) return;\n  await formEl.validate((valid, fields) => {\n    if (valid) {\n      console.log(\"submit!\");\n    } else {\n      console.log(\"error submit!\", fields);\n    }\n  });\n};\n\nconst resetForm = (formEl: FormInstance | undefined) => {\n  if (!formEl) return;\n  formEl.resetFields();\n};\n</script>\n\n<style scoped lang=\"scss\">\n@import \"./index.scss\";\n</style>\n"
  },
  {
    "path": "src/views/form/proForm/index.scss",
    "content": ".el-form {\n  width: 100%;\n  margin-top: 20px;\n}\n"
  },
  {
    "path": "src/views/form/proForm/index.vue",
    "content": "<template>\n  <div class=\"card content-box\">\n    <el-alert\n      title=\"通过 component :is 组件属性 && v-bind 属性透传，可以将 template 中的 html 代码全部改变为 columns 配置项，具体配置请看代码。\"\n      type=\"warning\"\n      :closable=\"false\"\n    />\n    <component :is=\"'el-form'\" v-bind=\"options.form\" ref=\"proFormRef\" :model=\"model\">\n      <template v-for=\"item in options.columns\" :key=\"item.prop\">\n        <component :is=\"'el-form-item'\" v-bind=\"item.formItem\">\n          <component :is=\"`el-${item.attrs.typeName}`\" v-bind=\"item.attrs\" v-model=\"model[item.formItem.prop]\" />\n        </component>\n      </template>\n      <el-form-item>\n        <slot name=\"operation\"></slot>\n      </el-form-item>\n    </component>\n  </div>\n</template>\n\n<script setup lang=\"ts\" name=\"proForm\">\nimport { ref } from \"vue\";\n\nlet model = ref<any>({});\n\nconst options = ref({\n  // 表单整体配置项\n  form: {\n    inline: false,\n    labelPosition: \"right\",\n    labelWidth: \"80px\",\n    size: \"default\",\n    disabled: false,\n    labelSuffix: \" :\"\n  },\n  // 表单列配置项 (formItem 代表 item 配置项，attrs 代表 输入、选择框 配置项)\n  columns: [\n    {\n      formItem: {\n        label: \"用户名\",\n        prop: \"username\",\n        labelWidth: \"80px\",\n        required: true\n      },\n      attrs: {\n        typeName: \"input\",\n        clearable: true,\n        placeholder: \"请输入用户名\",\n        disabled: true\n      }\n    },\n    {\n      formItem: {\n        label: \"密码\",\n        prop: \"password\",\n        class: \"data\"\n      },\n      attrs: {\n        typeName: \"input\",\n        clearable: true,\n        autofocus: true,\n        placeholder: \"请输入密码\",\n        type: \"password\"\n      }\n    },\n    {\n      formItem: {\n        label: \"邮箱\",\n        prop: \"email\"\n      },\n      attrs: {\n        typeName: \"input\",\n        placeholder: \"请输入邮箱\",\n        clearable: true,\n        style: \"width:500px\"\n      }\n    }\n  ]\n});\n</script>\n\n<style scoped lang=\"scss\">\n@import \"./index.scss\";\n</style>\n"
  },
  {
    "path": "src/views/form/validateForm/index.scss",
    "content": ".el-form {\n  width: 100%;\n  .text-center {\n    text-align: center;\n  }\n}\n"
  },
  {
    "path": "src/views/form/validateForm/index.vue",
    "content": "<template>\n  <div class=\"card content-box\">\n    <el-form ref=\"ruleFormRef\" :model=\"ruleForm\" :rules=\"rules\" label-width=\"140px\">\n      <el-form-item label=\"Activity name\" prop=\"name\">\n        <el-input v-model=\"ruleForm.name\" />\n      </el-form-item>\n      <el-form-item label=\"Activity phone\" prop=\"phone\">\n        <el-input v-model=\"ruleForm.phone\" placeholder=\"Activity phone\" />\n      </el-form-item>\n      <el-form-item label=\"Activity zone\" prop=\"region\">\n        <el-select v-model=\"ruleForm.region\" placeholder=\"Activity zone\">\n          <el-option label=\"Zone one\" value=\"shanghai\" />\n          <el-option label=\"Zone two\" value=\"beijing\" />\n        </el-select>\n      </el-form-item>\n      <el-form-item label=\"Activity time\" required>\n        <el-form-item prop=\"date1\">\n          <el-date-picker v-model=\"ruleForm.date1\" type=\"date\" placeholder=\"Pick a date\" style=\"width: 100%\" />\n        </el-form-item>\n        <el-col class=\"text-center\" :span=\"1\">\n          <span class=\"text-gray-500\">-</span>\n        </el-col>\n        <el-form-item prop=\"date2\">\n          <el-time-picker v-model=\"ruleForm.date2\" placeholder=\"Pick a time\" style=\"width: 100%\" />\n        </el-form-item>\n      </el-form-item>\n      <el-form-item label=\"Instant delivery\" prop=\"delivery\">\n        <el-switch v-model=\"ruleForm.delivery\" />\n      </el-form-item>\n      <el-form-item label=\"Resources\" prop=\"resource\">\n        <el-radio-group v-model=\"ruleForm.resource\">\n          <el-radio label=\"Sponsorship\" />\n          <el-radio label=\"Venue\" />\n        </el-radio-group>\n      </el-form-item>\n      <el-form-item label=\"Activity form\" prop=\"desc\">\n        <el-input v-model=\"ruleForm.desc\" type=\"textarea\" />\n      </el-form-item>\n      <el-form-item>\n        <el-button type=\"primary\" @click=\"submitForm(ruleFormRef)\"> Create </el-button>\n        <el-button @click=\"resetForm(ruleFormRef)\"> Reset </el-button>\n      </el-form-item>\n    </el-form>\n  </div>\n</template>\n\n<script setup lang=\"ts\" name=\"dynamicForm\">\nimport { reactive, ref } from \"vue\";\nimport { checkPhoneNumber } from \"@/utils/eleValidate\";\nimport type { FormInstance, FormRules } from \"element-plus\";\nimport { ElMessage } from \"element-plus\";\n\nconst ruleFormRef = ref<FormInstance>();\nconst ruleForm = reactive({\n  name: \"Geeker-Admin\",\n  phone: \"\",\n  region: \"\",\n  date1: \"\",\n  date2: \"\",\n  delivery: false,\n  resource: \"\",\n  desc: \"\"\n});\n\nconst rules = reactive<FormRules>({\n  name: [\n    { required: true, message: \"Please input Activity name\", trigger: \"blur\" },\n    { min: 3, max: 5, message: \"Length should be 3 to 5\", trigger: \"blur\" }\n  ],\n  phone: [{ required: true, validator: checkPhoneNumber, trigger: \"blur\" }],\n  region: [\n    {\n      required: true,\n      message: \"Please select Activity zone\",\n      trigger: \"change\"\n    }\n  ],\n  date1: [\n    {\n      type: \"date\",\n      required: true,\n      message: \"Please pick a date\",\n      trigger: \"change\"\n    }\n  ],\n  date2: [\n    {\n      type: \"date\",\n      required: true,\n      message: \"Please pick a time\",\n      trigger: \"change\"\n    }\n  ],\n  resource: [\n    {\n      required: true,\n      message: \"Please select activity resource\",\n      trigger: \"change\"\n    }\n  ],\n  desc: [{ required: true, message: \"Please input activity form\", trigger: \"blur\" }]\n});\n\nconst submitForm = async (formEl: FormInstance | undefined) => {\n  if (!formEl) return;\n  await formEl.validate((valid, fields) => {\n    if (valid) {\n      ElMessage.success(\"提交的数据为 : \" + JSON.stringify(ruleForm));\n    } else {\n      console.log(\"error submit!\", fields);\n    }\n  });\n};\n\nconst resetForm = (formEl: FormInstance | undefined) => {\n  if (!formEl) return;\n  formEl.resetFields();\n};\n</script>\n\n<style scoped lang=\"scss\">\n@import \"./index.scss\";\n</style>\n"
  },
  {
    "path": "src/views/home/index.scss",
    "content": ".home {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  width: 100%;\n  height: 100%;\n  .home-bg {\n    width: 70%;\n    max-width: 1200px;\n    margin-bottom: 20px;\n  }\n}\n"
  },
  {
    "path": "src/views/home/index.vue",
    "content": "<template>\n  <div class=\"home card\">\n    <img class=\"home-bg\" src=\"@/assets/images/welcome.png\" alt=\"welcome\" />\n  </div>\n</template>\n\n<script setup lang=\"ts\" name=\"home\"></script>\n\n<style scoped lang=\"scss\">\n@import \"./index.scss\";\n</style>\n"
  },
  {
    "path": "src/views/link/bing/index.scss",
    "content": ".full-iframe {\n  width: 100%;\n  height: 100%;\n}\n"
  },
  {
    "path": "src/views/link/bing/index.vue",
    "content": "<template>\n  <div class=\"card content-box\">\n    <iframe src=\"https://cn.bing.com/\" frameborder=\"0\" class=\"full-iframe\"></iframe>\n  </div>\n</template>\n\n<script setup lang=\"ts\" name=\"bing\"></script>\n\n<style scoped lang=\"scss\">\n@import \"./index.scss\";\n</style>\n"
  },
  {
    "path": "src/views/link/docs/index.scss",
    "content": ""
  },
  {
    "path": "src/views/link/docs/index.vue",
    "content": "<template>\n  <div class=\"card content-box\">\n    <span class=\"text\"> 项目文档： <a href=\"https://docs.spicyboy.cn\" target=\"_blank\">https://docs.spicyboy.cn</a> 🍒🍉🍊 </span>\n  </div>\n</template>\n\n<script setup lang=\"ts\" name=\"docs\"></script>\n\n<style scoped lang=\"scss\">\n@import \"./index.scss\";\n</style>\n"
  },
  {
    "path": "src/views/link/gitee/index.scss",
    "content": ""
  },
  {
    "path": "src/views/link/gitee/index.vue",
    "content": "<template>\n  <div class=\"card content-box\">\n    <span class=\"text\">\n      Gitee 仓库：\n      <a href=\"https://gitee.com/HalseySpicy/Geeker-Admin\" target=\"_blank\">https://gitee.com/HalseySpicy/Geeker-Admin</a> 🍒🍉🍊\n    </span>\n  </div>\n</template>\n\n<script setup lang=\"ts\" name=\"gitee\"></script>\n\n<style scoped lang=\"scss\">\n@import \"./index.scss\";\n</style>\n"
  },
  {
    "path": "src/views/link/github/index.scss",
    "content": ""
  },
  {
    "path": "src/views/link/github/index.vue",
    "content": "<template>\n  <div class=\"card content-box\">\n    <span class=\"text\">\n      GitHub 仓库：\n      <a href=\"https://github.com/HalseySpicy/Geeker-Admin\" target=\"_blank\">https://github.com/HalseySpicy/Geeker-Admin</a> 🍒🍉🍊\n    </span>\n  </div>\n</template>\n\n<script setup lang=\"ts\" name=\"github\"></script>\n\n<style scoped lang=\"scss\">\n@import \"./index.scss\";\n</style>\n"
  },
  {
    "path": "src/views/link/juejin/index.scss",
    "content": ""
  },
  {
    "path": "src/views/link/juejin/index.vue",
    "content": "<template>\n  <div class=\"card content-box\">\n    <span class=\"text\">\n      掘金文档：\n      <a href=\"https://juejin.cn/user/3263814531551816/posts\" target=\"_blank\">https://juejin.cn/user/3263814531551816/posts</a>\n      🍒🍉🍊\n    </span>\n  </div>\n</template>\n\n<script setup lang=\"ts\" name=\"juejin\"></script>\n\n<style scoped lang=\"scss\">\n@import \"./index.scss\";\n</style>\n"
  },
  {
    "path": "src/views/login/components/LoginForm.vue",
    "content": "<template>\n  <el-form ref=\"loginFormRef\" :model=\"loginForm\" :rules=\"loginRules\" size=\"large\">\n    <el-form-item prop=\"username\">\n      <el-input v-model=\"loginForm.username\" placeholder=\"用户名：admin / user\">\n        <template #prefix>\n          <el-icon class=\"el-input__icon\">\n            <user />\n          </el-icon>\n        </template>\n      </el-input>\n    </el-form-item>\n    <el-form-item prop=\"password\">\n      <el-input v-model=\"loginForm.password\" type=\"password\" placeholder=\"密码：123456\" show-password autocomplete=\"new-password\">\n        <template #prefix>\n          <el-icon class=\"el-input__icon\">\n            <lock />\n          </el-icon>\n        </template>\n      </el-input>\n    </el-form-item>\n  </el-form>\n  <div class=\"login-btn\">\n    <el-button :icon=\"CircleClose\" round size=\"large\" @click=\"resetForm(loginFormRef)\"> 重置 </el-button>\n    <el-button :icon=\"UserFilled\" round size=\"large\" type=\"primary\" :loading=\"loading\" @click=\"login(loginFormRef)\">\n      登录\n    </el-button>\n  </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, reactive, onMounted, onBeforeUnmount } from \"vue\";\nimport { useRouter } from \"vue-router\";\nimport { HOME_URL } from \"@/config\";\n// import { getTimeState } from \"@/utils\";\nimport { Login } from \"@/api/interface\";\nimport { ElNotification } from \"element-plus\";\nimport { loginApi } from \"@/api/modules/login\";\nimport { useUserStore } from \"@/stores/modules/user\";\nimport { useTabsStore } from \"@/stores/modules/tabs\";\nimport { useKeepAliveStore } from \"@/stores/modules/keepAlive\";\nimport { initDynamicRouter } from \"@/routers/modules/dynamicRouter\";\nimport { CircleClose, UserFilled } from \"@element-plus/icons-vue\";\nimport type { ElForm } from \"element-plus\";\nimport md5 from \"md5\";\n\nconst router = useRouter();\nconst userStore = useUserStore();\nconst tabsStore = useTabsStore();\nconst keepAliveStore = useKeepAliveStore();\n\ntype FormInstance = InstanceType<typeof ElForm>;\nconst loginFormRef = ref<FormInstance>();\nconst loginRules = reactive({\n  username: [{ required: true, message: \"请输入用户名\", trigger: \"blur\" }],\n  password: [{ required: true, message: \"请输入密码\", trigger: \"blur\" }]\n});\n\nconst loading = ref(false);\nconst loginForm = reactive<Login.ReqLoginForm>({\n  username: \"\",\n  password: \"\"\n});\n\n// login\nconst login = (formEl: FormInstance | undefined) => {\n  if (!formEl) return;\n  formEl.validate(async valid => {\n    if (!valid) return;\n    loading.value = true;\n    try {\n      // 1.执行登录接口\n      const { data } = await loginApi({ ...loginForm, password: md5(loginForm.password) });\n      userStore.setToken(data.access_token);\n\n      // 2.添加动态路由\n      await initDynamicRouter();\n\n      // 3.清空 tabs、keepAlive 数据\n      tabsStore.setTabs([]);\n      keepAliveStore.setKeepAliveName([]);\n\n      // 4.跳转到首页\n      router.push(HOME_URL);\n      // ElNotification({\n      //   title: getTimeState(),\n      //   message: \"欢迎登录 Geeker-Admin\",\n      //   type: \"success\",\n      //   duration: 3000\n      // });\n      ElNotification({\n        title: \"React 付费版本 🔥🔥🔥\",\n        dangerouslyUseHTMLString: true,\n        message: \"预览地址：<a href='https://pro.spicyboy.cn'>https://pro.spicyboy.cn</a>\",\n        type: \"success\",\n        duration: 8000\n      });\n    } finally {\n      loading.value = false;\n    }\n  });\n};\n\n// resetForm\nconst resetForm = (formEl: FormInstance | undefined) => {\n  if (!formEl) return;\n  formEl.resetFields();\n};\n\nonMounted(() => {\n  // 监听 enter 事件（调用登录）\n  document.onkeydown = (e: KeyboardEvent) => {\n    if (e.code === \"Enter\" || e.code === \"enter\" || e.code === \"NumpadEnter\") {\n      if (loading.value) return;\n      login(loginFormRef.value);\n    }\n  };\n});\n\nonBeforeUnmount(() => {\n  document.onkeydown = null;\n});\n</script>\n\n<style scoped lang=\"scss\">\n@import \"../index.scss\";\n</style>\n"
  },
  {
    "path": "src/views/login/index.scss",
    "content": ".login-container {\n  height: 100%;\n  min-height: 550px;\n  background-color: #eeeeee;\n  background-image: url(\"@/assets/images/login_bg.svg\");\n  background-size: 100% 100%;\n  background-size: cover;\n  .login-box {\n    position: relative;\n    box-sizing: border-box;\n    display: flex;\n    align-items: center;\n    justify-content: space-around;\n    width: 96.5%;\n    height: 94%;\n    padding: 0 50px;\n    background-color: rgb(255 255 255 / 80%);\n    border-radius: 10px;\n    .dark {\n      position: absolute;\n      top: 13px;\n      right: 18px;\n    }\n    .login-left {\n      width: 800px;\n      margin-right: 10px;\n      .login-left-img {\n        width: 100%;\n        height: 100%;\n      }\n    }\n    .login-form {\n      width: 420px;\n      padding: 50px 40px 45px;\n      background-color: var(--el-bg-color);\n      border-radius: 10px;\n      box-shadow: rgb(0 0 0 / 10%) 0 2px 10px 2px;\n      .login-logo {\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        margin-bottom: 45px;\n        .login-icon {\n          width: 60px;\n          height: 52px;\n        }\n        .logo-text {\n          padding: 0 0 0 25px;\n          margin: 0;\n          font-size: 42px;\n          font-weight: bold;\n          color: #34495e;\n          white-space: nowrap;\n        }\n      }\n      .el-form-item {\n        margin-bottom: 40px;\n      }\n      .login-btn {\n        display: flex;\n        justify-content: space-between;\n        width: 100%;\n        margin-top: 40px;\n        white-space: nowrap;\n        .el-button {\n          width: 185px;\n        }\n      }\n    }\n  }\n}\n\n@media screen and (width <= 1250px) {\n  .login-left {\n    display: none;\n  }\n}\n\n@media screen and (width <= 600px) {\n  .login-form {\n    width: 97% !important;\n  }\n}\n"
  },
  {
    "path": "src/views/login/index.vue",
    "content": "<template>\n  <div class=\"login-container flx-center\">\n    <div class=\"login-box\">\n      <SwitchDark class=\"dark\" />\n      <div class=\"login-left\">\n        <img class=\"login-left-img\" src=\"@/assets/images/login_left.png\" alt=\"login\" />\n      </div>\n      <div class=\"login-form\">\n        <div class=\"login-logo\">\n          <img class=\"login-icon\" src=\"@/assets/images/logo.svg\" alt=\"\" />\n          <h2 class=\"logo-text\">Geeker-Admin</h2>\n        </div>\n        <LoginForm />\n      </div>\n    </div>\n  </div>\n</template>\n\n<script setup lang=\"ts\" name=\"login\">\nimport LoginForm from \"./components/LoginForm.vue\";\nimport SwitchDark from \"@/components/SwitchDark/index.vue\";\n</script>\n\n<style scoped lang=\"scss\">\n@import \"./index.scss\";\n</style>\n"
  },
  {
    "path": "src/views/menu/menu1/index.scss",
    "content": ""
  },
  {
    "path": "src/views/menu/menu1/index.vue",
    "content": "<template>\n  <div class=\"card content-box\">\n    <span class=\"text\">我是menu1 🍓🍇🍈🍉</span>\n    <el-input v-model=\"value\" placeholder=\"测试缓存\"></el-input>\n  </div>\n</template>\n\n<script setup lang=\"ts\" name=\"menu1\">\nimport { ref } from \"vue\";\nconst value = ref<string>(\"\");\n</script>\n\n<style scoped lang=\"scss\">\n@import \"./index.scss\";\n</style>\n"
  },
  {
    "path": "src/views/menu/menu2/menu21/index.scss",
    "content": ""
  },
  {
    "path": "src/views/menu/menu2/menu21/index.vue",
    "content": "<template>\n  <div class=\"card content-box\">\n    <span class=\"text\">我是menu2-1 🍓🍇🍈🍉</span>\n    <el-input v-model=\"value\" placeholder=\"测试缓存\"></el-input>\n  </div>\n</template>\n\n<script setup lang=\"ts\" name=\"menu21\">\nimport { ref } from \"vue\";\nconst value = ref<string>(\"\");\n</script>\n\n<style scoped lang=\"scss\">\n@import \"./index.scss\";\n</style>\n"
  },
  {
    "path": "src/views/menu/menu2/menu22/menu221/index.scss",
    "content": ""
  },
  {
    "path": "src/views/menu/menu2/menu22/menu221/index.vue",
    "content": "<template>\n  <div class=\"card content-box\">\n    <span class=\"text\">我是menu2-2-1 🍓🍇🍈🍉</span>\n    <el-input v-model=\"value\" placeholder=\"测试缓存\"></el-input>\n  </div>\n</template>\n\n<script setup lang=\"ts\" name=\"menu221\">\nimport { ref } from \"vue\";\nconst value = ref<string>(\"\");\n</script>\n\n<style scoped lang=\"scss\">\n@import \"./index.scss\";\n</style>\n"
  },
  {
    "path": "src/views/menu/menu2/menu22/menu222/index.scss",
    "content": ""
  },
  {
    "path": "src/views/menu/menu2/menu22/menu222/index.vue",
    "content": "<template>\n  <div class=\"card content-box\">\n    <span class=\"text\">我是menu2-2-2 🍓🍇🍈🍉</span>\n    <el-input v-model=\"value\" placeholder=\"测试缓存\"></el-input>\n  </div>\n</template>\n\n<script setup lang=\"ts\" name=\"menu222\">\nimport { ref } from \"vue\";\nconst value = ref<string>(\"\");\n</script>\n\n<style scoped lang=\"scss\">\n@import \"./index.scss\";\n</style>\n"
  },
  {
    "path": "src/views/menu/menu2/menu23/index.scss",
    "content": ""
  },
  {
    "path": "src/views/menu/menu2/menu23/index.vue",
    "content": "<template>\n  <div class=\"card content-box\">\n    <span class=\"text\">我是menu2-3 🍓🍇🍈🍉</span>\n    <el-input v-model=\"value\" placeholder=\"测试缓存\"></el-input>\n  </div>\n</template>\n\n<script setup lang=\"ts\" name=\"menu23\">\nimport { ref } from \"vue\";\nconst value = ref(\"\");\n</script>\n\n<style scoped lang=\"scss\">\n@import \"./index.scss\";\n</style>\n"
  },
  {
    "path": "src/views/menu/menu3/index.scss",
    "content": ""
  },
  {
    "path": "src/views/menu/menu3/index.vue",
    "content": "<template>\n  <div class=\"card content-box\">\n    <span class=\"text\">我是menu3 🍓🍇🍈🍉</span>\n    <el-input v-model=\"value\" placeholder=\"测试缓存\"></el-input>\n  </div>\n</template>\n\n<script setup lang=\"ts\" name=\"menu3\">\nimport { ref } from \"vue\";\nconst value = ref<string>(\"\");\n</script>\n\n<style scoped lang=\"scss\">\n@import \"./index.scss\";\n</style>\n"
  },
  {
    "path": "src/views/proTable/complexProTable/index.vue",
    "content": "<template>\n  <div class=\"table-box\">\n    <ProTable\n      ref=\"proTable\"\n      title=\"用户列表\"\n      highlight-current-row\n      :columns=\"columns\"\n      :request-api=\"getUserList\"\n      :row-class-name=\"tableRowClassName\"\n      :span-method=\"objectSpanMethod\"\n      :show-summary=\"true\"\n      :summary-method=\"getSummaries\"\n      @row-click=\"rowClick\"\n    >\n      <!-- 表格 header 按钮 -->\n      <template #tableHeader=\"scope\">\n        <el-button type=\"primary\" :icon=\"CirclePlus\" @click=\"proTable?.element?.toggleAllSelection\">全选 / 全不选</el-button>\n        <el-button type=\"primary\" :icon=\"Pointer\" plain @click=\"setCurrent\">选中第五行</el-button>\n        <el-button type=\"danger\" :icon=\"Delete\" plain :disabled=\"!scope.isSelected\" @click=\"batchDelete(scope.selectedListIds)\">\n          批量删除用户\n        </el-button>\n      </template>\n      <!-- Expand -->\n      <template #expand=\"scope\">\n        {{ scope.row }}\n      </template>\n      <!-- 表格操作 -->\n      <template #operation=\"scope\">\n        <el-button type=\"primary\" link :icon=\"Refresh\" @click=\"resetPass(scope.row)\">重置密码</el-button>\n        <el-button type=\"primary\" link :icon=\"Delete\" @click=\"deleteAccount(scope.row)\">删除</el-button>\n      </template>\n      <template #append>\n        <span style=\"color: var(--el-color-primary)\">我是插入在表格最后的内容。若表格有合计行，该内容会位于合计行之上。</span>\n      </template>\n    </ProTable>\n  </div>\n</template>\n\n<script setup lang=\"tsx\" name=\"complexProTable\">\nimport { reactive, ref } from \"vue\";\nimport { ElMessage } from \"element-plus\";\nimport { User } from \"@/api/interface\";\nimport { useHandleData } from \"@/hooks/useHandleData\";\nimport ProTable from \"@/components/ProTable/index.vue\";\nimport { CirclePlus, Pointer, Delete, Refresh } from \"@element-plus/icons-vue\";\nimport type { TableColumnCtx } from \"element-plus/es/components/table/src/table-column/defaults\";\nimport { ProTableInstance, ColumnProps, HeaderRenderScope } from \"@/components/ProTable/interface\";\nimport { getUserList, deleteUser, resetUserPassWord, getUserStatus, getUserGender } from \"@/api/modules/user\";\n\n// ProTable 实例\nconst proTable = ref<ProTableInstance>();\n\n// 自定义渲染表头（使用tsx语法）\nconst headerRender = (scope: HeaderRenderScope<User.ResUserList>) => {\n  return (\n    <el-button type=\"primary\" onClick={() => ElMessage.success(\"我是通过 tsx 语法渲染的表头\")}>\n      {scope.column.label}\n    </el-button>\n  );\n};\n\n// 表格配置项\nconst columns = reactive<ColumnProps<User.ResUserList>[]>([\n  { type: \"selection\", width: 80 },\n  { type: \"index\", label: \"#\", width: 80 },\n  { type: \"expand\", label: \"Expand\", width: 100 },\n  {\n    prop: \"base\",\n    label: \"基本信息\",\n    headerRender,\n    _children: [\n      { prop: \"username\", label: \"用户姓名\", width: 110 },\n      { prop: \"user.detail.age\", label: \"年龄\", width: 100 },\n      {\n        prop: \"gender\",\n        label: \"性别\",\n        width: 100,\n        enum: getUserGender,\n        fieldNames: { label: \"genderLabel\", value: \"genderValue\" }\n      },\n      {\n        prop: \"details\",\n        label: \"详细资料\",\n        _children: [\n          { prop: \"idCard\", label: \"身份证号\" },\n          { prop: \"email\", label: \"邮箱\" },\n          { prop: \"address\", label: \"居住地址\" }\n        ]\n      }\n    ]\n  },\n  {\n    prop: \"status\",\n    label: \"用户状态\",\n    tag: true,\n    enum: getUserStatus,\n    fieldNames: { label: \"userLabel\", value: \"userStatus\" }\n  },\n  { prop: \"createTime\", label: \"创建时间\", width: 200 },\n  { prop: \"operation\", label: \"操作\", fixed: \"right\", width: 230 }\n]);\n\n// 选择行\nconst setCurrent = () => {\n  proTable.value?.element?.setCurrentRow(proTable.value?.tableData[4]);\n  proTable.value?.element?.toggleRowSelection(proTable.value?.tableData[4], true);\n};\n\n// 表尾合计行（自行根据条件计算）\ninterface SummaryMethodProps<T = User.ResUserList> {\n  columns: TableColumnCtx<T>[];\n  data: T[];\n}\nconst getSummaries = (param: SummaryMethodProps) => {\n  const { columns } = param;\n  const sums: string[] = [];\n  columns.forEach((column, index) => {\n    if (index === 0) return (sums[index] = \"合计\");\n    else sums[index] = \"N/A\";\n  });\n  return sums;\n};\n\n// 列合并\ninterface SpanMethodProps {\n  row: User.ResUserList;\n  column: TableColumnCtx<User.ResUserList>;\n  rowIndex: number;\n  columnIndex: number;\n}\nconst objectSpanMethod = ({ rowIndex, columnIndex }: SpanMethodProps) => {\n  if (columnIndex === 3) {\n    if (rowIndex % 2 === 0) return { rowspan: 2, colspan: 1 };\n    else return { rowspan: 0, colspan: 0 };\n  }\n};\n\n// 设置列样式\nconst tableRowClassName = ({ rowIndex }: { row: User.ResUserList; rowIndex: number }) => {\n  if (rowIndex === 2) return \"warning-row\";\n  if (rowIndex === 6) return \"success-row\";\n  return \"\";\n};\n\n// 单击行\nconst rowClick = (row: User.ResUserList, column: TableColumnCtx<User.ResUserList>) => {\n  if (column.property == \"radio\" || column.property == \"operation\") return;\n  console.log(row);\n  ElMessage.success(\"当前行被点击了！\");\n};\n\n// 删除用户信息\nconst deleteAccount = async (params: User.ResUserList) => {\n  await useHandleData(deleteUser, { id: [params.id] }, `删除【${params.username}】用户`);\n  proTable.value?.getTableList();\n};\n\n// 批量删除用户信息\nconst batchDelete = async (id: string[]) => {\n  await useHandleData(deleteUser, { id }, \"删除所选用户信息\");\n  proTable.value?.clearSelection();\n  proTable.value?.getTableList();\n};\n\n// 重置用户密码\nconst resetPass = async (params: User.ResUserList) => {\n  await useHandleData(resetUserPassWord, { id: params.id }, `重置【${params.username}】用户密码`);\n  proTable.value?.getTableList();\n};\n</script>\n\n<style lang=\"scss\">\n.el-table .warning-row,\n.el-table .warning-row .el-table-fixed-column--right,\n.el-table .warning-row .el-table-fixed-column--left {\n  background-color: var(--el-color-warning-light-9);\n}\n.el-table .success-row,\n.el-table .success-row .el-table-fixed-column--right,\n.el-table .success-row .el-table-fixed-column--left {\n  background-color: var(--el-color-success-light-9);\n}\n</style>\n"
  },
  {
    "path": "src/views/proTable/components/UserDrawer.vue",
    "content": "<template>\n  <el-drawer v-model=\"drawerVisible\" :destroy-on-close=\"true\" size=\"450px\" :title=\"`${drawerProps.title}用户`\">\n    <el-form\n      ref=\"ruleFormRef\"\n      label-width=\"100px\"\n      label-suffix=\" :\"\n      :rules=\"rules\"\n      :disabled=\"drawerProps.isView\"\n      :model=\"drawerProps.row\"\n      :hide-required-asterisk=\"drawerProps.isView\"\n    >\n      <el-form-item label=\"用户头像\" prop=\"avatar\">\n        <UploadImg v-model:image-url=\"drawerProps.row!.avatar\" width=\"135px\" height=\"135px\" :file-size=\"3\">\n          <template #empty>\n            <el-icon><Avatar /></el-icon>\n            <span>请上传头像</span>\n          </template>\n          <template #tip> 头像大小不能超过 3M </template>\n        </UploadImg>\n      </el-form-item>\n      <el-form-item label=\"用户照片\" prop=\"photo\">\n        <UploadImgs v-model:file-list=\"drawerProps.row!.photo\" height=\"140px\" width=\"140px\" border-radius=\"50%\">\n          <template #empty>\n            <el-icon><Picture /></el-icon>\n            <span>请上传照片</span>\n          </template>\n          <template #tip> 照片大小不能超过 5M </template>\n        </UploadImgs>\n      </el-form-item>\n      <el-form-item label=\"用户姓名\" prop=\"username\">\n        <el-input v-model=\"drawerProps.row!.username\" placeholder=\"请填写用户姓名\" clearable></el-input>\n      </el-form-item>\n      <el-form-item label=\"性别\" prop=\"gender\">\n        <el-select v-model=\"drawerProps.row!.gender\" placeholder=\"请选择性别\" clearable>\n          <el-option v-for=\"item in genderType\" :key=\"item.value\" :label=\"item.label\" :value=\"item.value\" />\n        </el-select>\n      </el-form-item>\n      <el-form-item label=\"身份证号\" prop=\"idCard\">\n        <el-input v-model=\"drawerProps.row!.idCard\" placeholder=\"请填写身份证号\" clearable></el-input>\n      </el-form-item>\n      <el-form-item label=\"邮箱\" prop=\"email\">\n        <el-input v-model=\"drawerProps.row!.email\" placeholder=\"请填写邮箱\" clearable></el-input>\n      </el-form-item>\n      <el-form-item label=\"居住地址\" prop=\"address\">\n        <el-input v-model=\"drawerProps.row!.address\" placeholder=\"请填写居住地址\" clearable></el-input>\n      </el-form-item>\n    </el-form>\n    <template #footer>\n      <el-button @click=\"drawerVisible = false\">取消</el-button>\n      <el-button v-show=\"!drawerProps.isView\" type=\"primary\" @click=\"handleSubmit\">确定</el-button>\n    </template>\n  </el-drawer>\n</template>\n\n<script setup lang=\"ts\" name=\"UserDrawer\">\nimport { ref, reactive } from \"vue\";\nimport { genderType } from \"@/utils/dict\";\nimport { ElMessage, FormInstance } from \"element-plus\";\nimport { User } from \"@/api/interface\";\nimport UploadImg from \"@/components/Upload/Img.vue\";\nimport UploadImgs from \"@/components/Upload/Imgs.vue\";\n\nconst rules = reactive({\n  avatar: [{ required: true, message: \"请上传用户头像\" }],\n  photo: [{ required: true, message: \"请上传用户照片\" }],\n  username: [{ required: true, message: \"请填写用户姓名\" }],\n  gender: [{ required: true, message: \"请选择性别\" }],\n  idCard: [{ required: true, message: \"请填写身份证号\" }],\n  email: [{ required: true, message: \"请填写邮箱\" }],\n  address: [{ required: true, message: \"请填写居住地址\" }]\n});\n\ninterface DrawerProps {\n  title: string;\n  isView: boolean;\n  row: Partial<User.ResUserList>;\n  api?: (params: any) => Promise<any>;\n  getTableList?: () => void;\n}\n\nconst drawerVisible = ref(false);\nconst drawerProps = ref<DrawerProps>({\n  isView: false,\n  title: \"\",\n  row: {}\n});\n\n// 接收父组件传过来的参数\nconst acceptParams = (params: DrawerProps) => {\n  drawerProps.value = params;\n  drawerVisible.value = true;\n};\n\n// 提交数据（新增/编辑）\nconst ruleFormRef = ref<FormInstance>();\nconst handleSubmit = () => {\n  ruleFormRef.value!.validate(async valid => {\n    if (!valid) return;\n    try {\n      await drawerProps.value.api!(drawerProps.value.row);\n      ElMessage.success({ message: `${drawerProps.value.title}用户成功！` });\n      drawerProps.value.getTableList!();\n      drawerVisible.value = false;\n    } catch (error) {\n      console.log(error);\n    }\n  });\n};\n\ndefineExpose({\n  acceptParams\n});\n</script>\n"
  },
  {
    "path": "src/views/proTable/document/index.vue",
    "content": "<template>\n  <div class=\"card content-box\">\n    <span class=\"text\">\n      ProTable 文档：\n      <a href=\"https://juejin.cn/post/7166068828202336263#heading-14\" target=\"_blank\">\n        https://juejin.cn/post/7166068828202336263#heading-14\n      </a>\n      🍒🍉🍊\n    </span>\n  </div>\n</template>\n\n<script setup lang=\"ts\" name=\"proTableDocument\"></script>\n"
  },
  {
    "path": "src/views/proTable/treeProTable/index.vue",
    "content": "<template>\n  <div class=\"main-box\">\n    <TreeFilter\n      label=\"name\"\n      title=\"部门列表(单选)\"\n      :data=\"treeFilterData\"\n      :default-value=\"initParam.departmentId\"\n      @change=\"changeTreeFilter\"\n    />\n    <div class=\"table-box\">\n      <ProTable\n        ref=\"proTable\"\n        row-key=\"id\"\n        :indent=\"20\"\n        :columns=\"columns\"\n        :request-api=\"getUserTreeList\"\n        :request-auto=\"false\"\n        :init-param=\"initParam\"\n        :search-col=\"{ xs: 1, sm: 1, md: 2, lg: 3, xl: 3 }\"\n      >\n        <!-- 表格 header 按钮 -->\n        <template #tableHeader>\n          <el-button type=\"primary\" :icon=\"CirclePlus\" @click=\"openDrawer('新增')\">新增用户</el-button>\n        </template>\n        <!-- 表格操作 -->\n        <template #operation=\"scope\">\n          <el-button type=\"primary\" link :icon=\"View\" @click=\"openDrawer('查看', scope.row)\">查看</el-button>\n          <el-button type=\"primary\" link :icon=\"EditPen\" @click=\"openDrawer('编辑', scope.row)\">编辑</el-button>\n          <el-button type=\"primary\" link :icon=\"Delete\" @click=\"deleteAccount(scope.row)\">删除</el-button>\n        </template>\n      </ProTable>\n      <UserDrawer ref=\"drawerRef\" />\n      <ImportExcel ref=\"dialogRef\" />\n    </div>\n  </div>\n</template>\n\n<script setup lang=\"tsx\" name=\"treeProTable\">\nimport { onMounted, reactive, ref } from \"vue\";\nimport { User } from \"@/api/interface\";\nimport { genderType } from \"@/utils/dict\";\nimport { useHandleData } from \"@/hooks/useHandleData\";\nimport { ElMessage, ElNotification } from \"element-plus\";\nimport ProTable from \"@/components/ProTable/index.vue\";\nimport TreeFilter from \"@/components/TreeFilter/index.vue\";\nimport ImportExcel from \"@/components/ImportExcel/index.vue\";\nimport UserDrawer from \"@/views/proTable/components/UserDrawer.vue\";\nimport { CirclePlus, Delete, EditPen, View } from \"@element-plus/icons-vue\";\nimport { ColumnProps, ProTableInstance } from \"@/components/ProTable/interface\";\nimport { getUserTreeList, deleteUser, editUser, addUser, getUserStatus, getUserDepartment } from \"@/api/modules/user\";\n\nonMounted(() => {\n  getTreeFilter();\n  ElNotification({\n    title: \"温馨提示\",\n    message: \"该页面 ProTable 数据不会自动请求，需等待 treeFilter 数据请求完成之后，才会触发表格请求。\",\n    type: \"info\",\n    duration: 10000\n  });\n  setTimeout(() => {\n    ElNotification({\n      title: \"温馨提示\",\n      message: \"该页面 ProTable 性别搜索框为远程数据搜索，详情可查看代码。\",\n      type: \"info\",\n      duration: 10000\n    });\n  }, 0);\n});\n\n// ProTable 实例\nconst proTable = ref<ProTableInstance>();\n\n// 如果表格需要初始化请求参数，直接定义传给 ProTable(之后每次请求都会自动带上该参数，此参数更改之后也会一直带上，改变此参数会自动刷新表格数据)\nconst initParam = reactive({ departmentId: \"\" });\n\n// 获取 treeFilter 数据\n// 当 proTable 的 requestAuto 属性为 false，不会自动请求表格数据，等待 treeFilter 数据回来之后，更改 initParam.departmentId 的值，才会触发请求 proTable 数据\nconst treeFilterData = ref<any>([]);\nconst getTreeFilter = async () => {\n  const { data } = await getUserDepartment();\n  treeFilterData.value = data;\n  initParam.departmentId = treeFilterData.value[1].id;\n};\n\n// 树形筛选切换\nconst changeTreeFilter = (val: string) => {\n  ElMessage.success(\"请注意查看请求参数变化 🤔\");\n  proTable.value!.pageable.pageNum = 1;\n  initParam.departmentId = val;\n};\n\n// 模拟远程加载性别搜索框数据\nconst loading = ref(false);\nconst filterGenderEnum = ref<typeof genderType>([]);\nconst remoteMethod = (query: string) => {\n  filterGenderEnum.value = [];\n  if (!query) return;\n  loading.value = true;\n  setTimeout(() => {\n    loading.value = false;\n    filterGenderEnum.value = genderType.filter(item => item.label.includes(query));\n  }, 500);\n};\n\n// 表格配置项\nconst columns = reactive<ColumnProps<User.ResUserList>[]>([\n  { type: \"index\", label: \"#\", width: 80 },\n  { prop: \"username\", label: \"用户姓名\" },\n  {\n    prop: \"gender\",\n    label: \"性别\",\n    sortable: true,\n    isFilterEnum: false,\n    enum: filterGenderEnum,\n    search: {\n      el: \"select\",\n      props: { placeholder: \"请输入性别查询\", filterable: true, remote: true, reserveKeyword: true, loading, remoteMethod }\n    },\n    render: scope => <>{scope.row.gender === 1 ? \"男\" : \"女\"}</>\n  },\n  { prop: \"idCard\", label: \"身份证号\" },\n  { prop: \"email\", label: \"邮箱\" },\n  { prop: \"address\", label: \"居住地址\" },\n  {\n    prop: \"status\",\n    label: \"用户状态\",\n    sortable: true,\n    tag: true,\n    enum: getUserStatus,\n    search: { el: \"tree-select\" },\n    fieldNames: { label: \"userLabel\", value: \"userStatus\" }\n  },\n  { prop: \"createTime\", label: \"创建时间\", width: 180 },\n  { prop: \"operation\", label: \"操作\", width: 300, fixed: \"right\" }\n]);\n\n// 删除用户信息\nconst deleteAccount = async (params: User.ResUserList) => {\n  await useHandleData(deleteUser, { id: [params.id] }, `删除【${params.username}】用户`);\n  proTable.value?.getTableList();\n};\n\n// 打开 drawer(新增、查看、编辑)\nconst drawerRef = ref<InstanceType<typeof UserDrawer> | null>(null);\nconst openDrawer = (title: string, row: Partial<User.ResUserList> = {}) => {\n  const params = {\n    title,\n    row: { ...row },\n    isView: title === \"查看\",\n    api: title === \"新增\" ? addUser : title === \"编辑\" ? editUser : undefined,\n    getTableList: proTable.value?.getTableList\n  };\n  drawerRef.value?.acceptParams(params);\n};\n</script>\n"
  },
  {
    "path": "src/views/proTable/useProTable/detail.vue",
    "content": "<template>\n  <div class=\"card content-box\">\n    <span class=\"text\">我是 ProTable 详情页，属于 ProTable 下面的子集 🍓🍇🍈🍉</span>\n    <span class=\"text\">params:{{ route.params }}</span>\n    <span class=\"text\">query:{{ route.query }}</span>\n  </div>\n</template>\n\n<script setup lang=\"ts\" name=\"useProTableDetail\">\nimport { useRoute } from \"vue-router\";\nconst route = useRoute();\n</script>\n"
  },
  {
    "path": "src/views/proTable/useProTable/index.vue",
    "content": "<template>\n  <div class=\"table-box\">\n    <ProTable\n      ref=\"proTable\"\n      :columns=\"columns\"\n      :request-api=\"getTableList\"\n      :init-param=\"initParam\"\n      :data-callback=\"dataCallback\"\n      @drag-sort=\"sortTable\"\n    >\n      <!-- 表格 header 按钮 -->\n      <template #tableHeader=\"scope\">\n        <el-button v-auth=\"'add'\" type=\"primary\" :icon=\"CirclePlus\" @click=\"openDrawer('新增')\">新增用户</el-button>\n        <el-button v-auth=\"'batchAdd'\" type=\"primary\" :icon=\"Upload\" plain @click=\"batchAdd\">批量添加用户</el-button>\n        <el-button v-auth=\"'export'\" type=\"primary\" :icon=\"Download\" plain @click=\"downloadFile\">导出用户数据</el-button>\n        <el-button type=\"primary\" plain @click=\"toDetail\">To 子集详情页面</el-button>\n        <el-button type=\"danger\" :icon=\"Delete\" plain :disabled=\"!scope.isSelected\" @click=\"batchDelete(scope.selectedListIds)\">\n          批量删除用户\n        </el-button>\n      </template>\n      <!-- Expand -->\n      <template #expand=\"scope\">\n        {{ scope.row }}\n      </template>\n      <!-- usernameHeader -->\n      <template #usernameHeader=\"scope\">\n        <el-button type=\"primary\" @click=\"ElMessage.success('我是通过作用域插槽渲染的表头')\">\n          {{ scope.column.label }}\n        </el-button>\n      </template>\n      <!-- createTime -->\n      <template #createTime=\"scope\">\n        <el-button type=\"primary\" link @click=\"ElMessage.success('我是通过作用域插槽渲染的内容')\">\n          {{ scope.row.createTime }}\n        </el-button>\n      </template>\n      <!-- 表格操作 -->\n      <template #operation=\"scope\">\n        <el-button type=\"primary\" link :icon=\"View\" @click=\"openDrawer('查看', scope.row)\">查看</el-button>\n        <el-button type=\"primary\" link :icon=\"EditPen\" @click=\"openDrawer('编辑', scope.row)\">编辑</el-button>\n        <el-button type=\"primary\" link :icon=\"Refresh\" @click=\"resetPass(scope.row)\">重置密码</el-button>\n        <el-button type=\"primary\" link :icon=\"Delete\" @click=\"deleteAccount(scope.row)\">删除</el-button>\n      </template>\n    </ProTable>\n    <UserDrawer ref=\"drawerRef\" />\n    <ImportExcel ref=\"dialogRef\" />\n  </div>\n</template>\n\n<script setup lang=\"tsx\" name=\"useProTable\">\nimport { ref, reactive } from \"vue\";\nimport { useRouter } from \"vue-router\";\nimport { User } from \"@/api/interface\";\nimport { useHandleData } from \"@/hooks/useHandleData\";\nimport { useDownload } from \"@/hooks/useDownload\";\nimport { useAuthButtons } from \"@/hooks/useAuthButtons\";\nimport { ElMessage, ElMessageBox } from \"element-plus\";\nimport ProTable from \"@/components/ProTable/index.vue\";\nimport ImportExcel from \"@/components/ImportExcel/index.vue\";\nimport UserDrawer from \"@/views/proTable/components/UserDrawer.vue\";\nimport { ProTableInstance, ColumnProps, HeaderRenderScope } from \"@/components/ProTable/interface\";\nimport { CirclePlus, Delete, EditPen, Download, Upload, View, Refresh } from \"@element-plus/icons-vue\";\nimport {\n  getUserList,\n  deleteUser,\n  editUser,\n  addUser,\n  changeUserStatus,\n  resetUserPassWord,\n  exportUserInfo,\n  BatchAddUser,\n  getUserStatus,\n  getUserGender\n} from \"@/api/modules/user\";\n\nconst router = useRouter();\n\n// 跳转详情页\nconst toDetail = () => {\n  router.push(`/proTable/useProTable/detail/${Math.random().toFixed(3)}?params=detail-page`);\n};\n\n// ProTable 实例\nconst proTable = ref<ProTableInstance>();\n\n// 如果表格需要初始化请求参数，直接定义传给 ProTable (之后每次请求都会自动带上该参数，此参数更改之后也会一直带上，改变此参数会自动刷新表格数据)\nconst initParam = reactive({ type: 1 });\n\n// dataCallback 是对于返回的表格数据做处理，如果你后台返回的数据不是 list && total 这些字段，可以在这里进行处理成这些字段\n// 或者直接去 hooks/useTable.ts 文件中把字段改为你后端对应的就行\nconst dataCallback = (data: any) => {\n  return {\n    list: data.list,\n    total: data.total\n  };\n};\n\n// 如果你想在请求之前对当前请求参数做一些操作，可以自定义如下函数：params 为当前所有的请求参数（包括分页），最后返回请求列表接口\n// 默认不做操作就直接在 ProTable 组件上绑定\t:requestApi=\"getUserList\"\nconst getTableList = (params: any) => {\n  let newParams = JSON.parse(JSON.stringify(params));\n  newParams.createTime && (newParams.startTime = newParams.createTime[0]);\n  newParams.createTime && (newParams.endTime = newParams.createTime[1]);\n  delete newParams.createTime;\n  return getUserList(newParams);\n};\n\n// 页面按钮权限（按钮权限既可以使用 hooks，也可以直接使用 v-auth 指令，指令适合直接绑定在按钮上，hooks 适合根据按钮权限显示不同的内容）\nconst { BUTTONS } = useAuthButtons();\n\n// 自定义渲染表头（使用tsx语法）\nconst headerRender = (scope: HeaderRenderScope<User.ResUserList>) => {\n  return (\n    <el-button type=\"primary\" onClick={() => ElMessage.success(\"我是通过 tsx 语法渲染的表头\")}>\n      {scope.column.label}\n    </el-button>\n  );\n};\n\n// 表格配置项\nconst columns = reactive<ColumnProps<User.ResUserList>[]>([\n  { type: \"selection\", fixed: \"left\", width: 70 },\n  { type: \"sort\", label: \"Sort\", width: 80 },\n  { type: \"expand\", label: \"Expand\", width: 85 },\n  {\n    prop: \"username\",\n    label: \"用户姓名\",\n    search: { el: \"input\", tooltip: \"我是搜索提示\" },\n    render: scope => {\n      return (\n        <el-button type=\"primary\" link onClick={() => ElMessage.success(\"我是通过 tsx 语法渲染的内容\")}>\n          {scope.row.username}\n        </el-button>\n      );\n    }\n  },\n  {\n    prop: \"gender\",\n    label: \"性别\",\n    // 字典数据（本地数据）\n    // enum: genderType,\n    // 字典请求不带参数\n    enum: getUserGender,\n    // 字典请求携带参数\n    // enum: () => getUserGender({ id: 1 }),\n    search: { el: \"select\", props: { filterable: true } },\n    fieldNames: { label: \"genderLabel\", value: \"genderValue\" }\n  },\n  {\n    // 多级 prop\n    prop: \"user.detail.age\",\n    label: \"年龄\",\n    search: {\n      // 自定义 search 显示内容\n      render: ({ searchParam }) => {\n        return (\n          <div class=\"flx-center\">\n            <el-input vModel_trim={searchParam.minAge} placeholder=\"最小年龄\" />\n            <span class=\"mr10 ml10\">-</span>\n            <el-input vModel_trim={searchParam.maxAge} placeholder=\"最大年龄\" />\n          </div>\n        );\n      }\n    }\n  },\n  { prop: \"idCard\", label: \"身份证号\", search: { el: \"input\" } },\n  { prop: \"email\", label: \"邮箱\" },\n  { prop: \"address\", label: \"居住地址\" },\n  {\n    prop: \"status\",\n    label: \"用户状态\",\n    enum: getUserStatus,\n    search: { el: \"tree-select\", props: { filterable: true } },\n    fieldNames: { label: \"userLabel\", value: \"userStatus\" },\n    render: scope => {\n      return (\n        <>\n          {BUTTONS.value.status ? (\n            <el-switch\n              model-value={scope.row.status}\n              active-text={scope.row.status ? \"启用\" : \"禁用\"}\n              active-value={1}\n              inactive-value={0}\n              onClick={() => changeStatus(scope.row)}\n            />\n          ) : (\n            <el-tag type={scope.row.status ? \"success\" : \"danger\"}>{scope.row.status ? \"启用\" : \"禁用\"}</el-tag>\n          )}\n        </>\n      );\n    }\n  },\n  {\n    prop: \"createTime\",\n    label: \"创建时间\",\n    headerRender,\n    width: 180,\n    search: {\n      el: \"date-picker\",\n      span: 2,\n      props: { type: \"datetimerange\", valueFormat: \"YYYY-MM-DD HH:mm:ss\" },\n      defaultValue: [\"2022-11-12 11:35:00\", \"2022-12-12 11:35:00\"]\n    }\n  },\n  { prop: \"operation\", label: \"操作\", fixed: \"right\", width: 330 }\n]);\n\n// 表格拖拽排序\nconst sortTable = ({ newIndex, oldIndex }: { newIndex?: number; oldIndex?: number }) => {\n  console.log(newIndex, oldIndex);\n  console.log(proTable.value?.tableData);\n  ElMessage.success(\"修改列表排序成功\");\n};\n\n// 删除用户信息\nconst deleteAccount = async (params: User.ResUserList) => {\n  await useHandleData(deleteUser, { id: [params.id] }, `删除【${params.username}】用户`);\n  proTable.value?.getTableList();\n};\n\n// 批量删除用户信息\nconst batchDelete = async (id: string[]) => {\n  await useHandleData(deleteUser, { id }, \"删除所选用户信息\");\n  proTable.value?.clearSelection();\n  proTable.value?.getTableList();\n};\n\n// 重置用户密码\nconst resetPass = async (params: User.ResUserList) => {\n  await useHandleData(resetUserPassWord, { id: params.id }, `重置【${params.username}】用户密码`);\n  proTable.value?.getTableList();\n};\n\n// 切换用户状态\nconst changeStatus = async (row: User.ResUserList) => {\n  await useHandleData(changeUserStatus, { id: row.id, status: row.status == 1 ? 0 : 1 }, `切换【${row.username}】用户状态`);\n  proTable.value?.getTableList();\n};\n\n// 导出用户列表\nconst downloadFile = async () => {\n  ElMessageBox.confirm(\"确认导出用户数据?\", \"温馨提示\", { type: \"warning\" }).then(() =>\n    useDownload(exportUserInfo, \"用户列表\", proTable.value?.searchParam)\n  );\n};\n\n// 批量添加用户\nconst dialogRef = ref<InstanceType<typeof ImportExcel> | null>(null);\nconst batchAdd = () => {\n  const params = {\n    title: \"用户\",\n    tempApi: exportUserInfo,\n    importApi: BatchAddUser,\n    getTableList: proTable.value?.getTableList\n  };\n  dialogRef.value?.acceptParams(params);\n};\n\n// 打开 drawer(新增、查看、编辑)\nconst drawerRef = ref<InstanceType<typeof UserDrawer> | null>(null);\nconst openDrawer = (title: string, row: Partial<User.ResUserList> = {}) => {\n  const params = {\n    title,\n    isView: title === \"查看\",\n    row: { ...row },\n    api: title === \"新增\" ? addUser : title === \"编辑\" ? editUser : undefined,\n    getTableList: proTable.value?.getTableList\n  };\n  drawerRef.value?.acceptParams(params);\n};\n</script>\n"
  },
  {
    "path": "src/views/proTable/useSelectFilter/index.vue",
    "content": "<template>\n  <div class=\"main-box\">\n    <TreeFilter\n      title=\"部门列表(多选)\"\n      multiple\n      label=\"name\"\n      :request-api=\"getUserDepartment\"\n      :default-value=\"treeFilterValues.departmentId\"\n      @change=\"changeTreeFilter\"\n    />\n    <div class=\"table-box\">\n      <div class=\"card mb10 pt0 pb0\">\n        <SelectFilter :data=\"selectFilterData\" :default-values=\"selectFilterValues\" @change=\"changeSelectFilter\" />\n      </div>\n      <ProTable\n        ref=\"proTable\"\n        highlight-current-row\n        :columns=\"columns\"\n        :request-api=\"getUserList\"\n        :init-param=\"Object.assign(treeFilterValues, selectFilterValues)\"\n      >\n        <!-- 表格 header 按钮 -->\n        <template #tableHeader>\n          <el-button type=\"primary\" :icon=\"CirclePlus\" @click=\"openDrawer('新增')\">新增用户</el-button>\n          <el-button type=\"primary\" :icon=\"Upload\" plain @click=\"batchAdd\">批量添加用户</el-button>\n          <el-button type=\"primary\" :icon=\"Download\" plain @click=\"downloadFile\">导出用户数据</el-button>\n          <el-button type=\"primary\" :icon=\"Pointer\" plain @click=\"setCurrent\">选中第四行</el-button>\n        </template>\n        <!-- 表格操作 -->\n        <template #operation=\"scope\">\n          <el-button type=\"primary\" link :icon=\"View\" @click=\"openDrawer('查看', scope.row)\">查看</el-button>\n          <el-button type=\"primary\" link :icon=\"EditPen\" @click=\"openDrawer('编辑', scope.row)\">编辑</el-button>\n          <el-button type=\"primary\" link :icon=\"Refresh\" @click=\"resetPass(scope.row)\">重置密码</el-button>\n          <el-button type=\"primary\" link :icon=\"Delete\" @click=\"deleteAccount(scope.row)\">删除</el-button>\n        </template>\n      </ProTable>\n      <UserDrawer ref=\"drawerRef\" />\n      <ImportExcel ref=\"dialogRef\" />\n    </div>\n  </div>\n</template>\n<script setup lang=\"ts\" name=\"useSelectFilter\">\nimport { ref, reactive, onMounted, watch } from \"vue\";\nimport { User } from \"@/api/interface\";\nimport { ElMessage, ElMessageBox } from \"element-plus\";\nimport { useHandleData } from \"@/hooks/useHandleData\";\nimport { useDownload } from \"@/hooks/useDownload\";\nimport { genderType, userStatus } from \"@/utils/dict\";\nimport ProTable from \"@/components/ProTable/index.vue\";\nimport TreeFilter from \"@/components/TreeFilter/index.vue\";\nimport ImportExcel from \"@/components/ImportExcel/index.vue\";\nimport UserDrawer from \"@/views/proTable/components/UserDrawer.vue\";\nimport SelectFilter from \"@/components/SelectFilter/index.vue\";\nimport { ProTableInstance, ColumnProps } from \"@/components/ProTable/interface\";\nimport { CirclePlus, Delete, EditPen, Pointer, Download, Upload, View, Refresh } from \"@element-plus/icons-vue\";\nimport {\n  getUserList,\n  deleteUser,\n  editUser,\n  addUser,\n  resetUserPassWord,\n  exportUserInfo,\n  BatchAddUser,\n  getUserDepartment,\n  getUserRole\n} from \"@/api/modules/user\";\n\n// ProTable 实例\nconst proTable = ref<ProTableInstance>();\n\n// 表格配置项\nconst columns = reactive<ColumnProps<User.ResUserList>[]>([\n  { type: \"radio\", label: \"单选\", width: 80 },\n  { type: \"index\", label: \"#\", width: 80 },\n  { prop: \"username\", label: \"用户姓名\", width: 120 },\n  { prop: \"gender\", label: \"性别\", width: 120, sortable: true, enum: genderType },\n  { prop: \"idCard\", label: \"身份证号\" },\n  { prop: \"email\", label: \"邮箱\" },\n  { prop: \"address\", label: \"居住地址\" },\n  { prop: \"status\", label: \"用户状态\", width: 120, sortable: true, tag: true, enum: userStatus },\n  { prop: \"createTime\", label: \"创建时间\", width: 180, sortable: true },\n  { prop: \"operation\", label: \"操作\", width: 330, fixed: \"right\" }\n]);\n\n// selectFilter 数据（用户角色为后台数据）\nconst selectFilterData = reactive([\n  {\n    title: \"用户状态(单)\",\n    key: \"userStatus\",\n    options: [\n      { label: \"全部\", value: \"\" },\n      { label: \"在职\", value: \"1\", icon: \"User\" },\n      { label: \"待培训\", value: \"2\", icon: \"Bell\" },\n      { label: \"待上岗\", value: \"3\", icon: \"Clock\" },\n      { label: \"已离职\", value: \"4\", icon: \"CircleClose\" },\n      { label: \"已退休\", value: \"5\", icon: \"CircleCheck\" }\n    ]\n  },\n  {\n    title: \"用户角色(多)\",\n    key: \"userRole\",\n    multiple: true,\n    options: []\n  }\n]);\n\n// 获取用户角色字典\nonMounted(() => getUserRoleDict());\nconst getUserRoleDict = async () => {\n  const { data } = await getUserRole();\n  selectFilterData[1].options = data as any;\n};\n\n// 默认 selectFilter 参数\nconst selectFilterValues = ref({ userStatus: \"2\", userRole: [\"1\", \"3\"] });\nconst changeSelectFilter = (value: typeof selectFilterValues.value) => {\n  ElMessage.success(\"请注意查看请求参数变化 🤔\");\n  proTable.value!.pageable.pageNum = 1;\n  selectFilterValues.value = value;\n};\n\n// 默认 treeFilter 参数\nconst treeFilterValues = reactive({ departmentId: [\"11\"] });\nconst changeTreeFilter = (val: string[]) => {\n  ElMessage.success(\"请注意查看请求参数变化 🤔\");\n  proTable.value!.pageable.pageNum = 1;\n  treeFilterValues.departmentId = val;\n};\n\n// 选择行\nconst setCurrent = () => {\n  proTable.value!.radio = proTable.value?.tableData[3].id;\n  proTable.value?.element?.setCurrentRow(proTable.value?.tableData[3]);\n};\n\nwatch(\n  () => proTable.value?.radio,\n  () => proTable.value?.radio && ElMessage.success(`选中 id 为【${proTable.value?.radio}】的数据`)\n);\n\n// 删除用户信息\nconst deleteAccount = async (params: User.ResUserList) => {\n  await useHandleData(deleteUser, { id: [params.id] }, `删除【${params.username}】用户`);\n  proTable.value?.getTableList();\n};\n\n// 重置用户密码\nconst resetPass = async (params: User.ResUserList) => {\n  await useHandleData(resetUserPassWord, { id: params.id }, `重置【${params.username}】用户密码`);\n  proTable.value?.getTableList();\n};\n\n// 导出用户列表\nconst downloadFile = async () => {\n  ElMessageBox.confirm(\"确认导出用户数据?\", \"温馨提示\", { type: \"warning\" }).then(() =>\n    useDownload(exportUserInfo, \"用户列表\", proTable.value?.searchParam)\n  );\n};\n\n// 批量添加用户\nconst dialogRef = ref<InstanceType<typeof ImportExcel> | null>(null);\nconst batchAdd = () => {\n  const params = {\n    title: \"用户\",\n    tempApi: exportUserInfo,\n    importApi: BatchAddUser,\n    getTableList: proTable.value?.getTableList\n  };\n  dialogRef.value?.acceptParams(params);\n};\n\n// 打开 drawer(新增、查看、编辑)\nconst drawerRef = ref<InstanceType<typeof UserDrawer> | null>(null);\nconst openDrawer = (title: string, row: Partial<User.ResUserList> = {}) => {\n  const params = {\n    title,\n    isView: title === \"查看\",\n    row: { ...row },\n    api: title === \"新增\" ? addUser : title === \"编辑\" ? editUser : undefined,\n    getTableList: proTable.value?.getTableList\n  };\n  drawerRef.value?.acceptParams(params);\n};\n</script>\n"
  },
  {
    "path": "src/views/proTable/useTreeFilter/detail.vue",
    "content": "<template>\n  <div class=\"card content-box\">\n    <span class=\"text\">我是 TreeFilter 详情页，和 TreeFilter 是同一级路由 🍓🍇🍈🍉</span>\n    <span class=\"text\">params:{{ route.params }}</span>\n    <span class=\"text\">query:{{ route.query }}</span>\n  </div>\n</template>\n\n<script setup lang=\"ts\" name=\"useTreeFilter\">\nimport { useRoute } from \"vue-router\";\nconst route = useRoute();\n</script>\n"
  },
  {
    "path": "src/views/proTable/useTreeFilter/index.vue",
    "content": "<template>\n  <div class=\"main-box\">\n    <TreeFilter\n      label=\"name\"\n      title=\"部门列表(单选)\"\n      :request-api=\"getUserDepartment\"\n      :default-value=\"initParam.departmentId\"\n      @change=\"changeTreeFilter\"\n    />\n    <div class=\"table-box\">\n      <ProTable\n        ref=\"proTable\"\n        :columns=\"columns\"\n        :request-api=\"getUserList\"\n        :init-param=\"initParam\"\n        :search-col=\"{ xs: 1, sm: 1, md: 2, lg: 3, xl: 3 }\"\n      >\n        <!-- 表格 header 按钮 -->\n        <template #tableHeader>\n          <el-button type=\"primary\" :icon=\"CirclePlus\" @click=\"openDrawer('新增')\">新增用户</el-button>\n          <el-button type=\"primary\" :icon=\"Upload\" plain @click=\"batchAdd\">批量添加用户</el-button>\n          <el-button type=\"primary\" :icon=\"Download\" plain @click=\"downloadFile\">导出用户数据</el-button>\n          <el-button type=\"primary\" plain @click=\"toDetail\">To 平级详情页面</el-button>\n        </template>\n        <!-- 表格操作 -->\n        <template #operation=\"scope\">\n          <el-button type=\"primary\" link :icon=\"View\" @click=\"openDrawer('查看', scope.row)\">查看</el-button>\n          <el-button type=\"primary\" link :icon=\"EditPen\" @click=\"openDrawer('编辑', scope.row)\">编辑</el-button>\n          <el-button type=\"primary\" link :icon=\"Refresh\" @click=\"resetPass(scope.row)\">重置密码</el-button>\n          <el-button type=\"primary\" link :icon=\"Delete\" @click=\"deleteAccount(scope.row)\">删除</el-button>\n        </template>\n      </ProTable>\n      <UserDrawer ref=\"drawerRef\" />\n      <ImportExcel ref=\"dialogRef\" />\n    </div>\n  </div>\n</template>\n<script setup lang=\"ts\" name=\"useTreeFilter\">\nimport { ref, reactive } from \"vue\";\nimport { User } from \"@/api/interface\";\nimport { useRouter } from \"vue-router\";\nimport { ElMessage, ElMessageBox } from \"element-plus\";\nimport { useHandleData } from \"@/hooks/useHandleData\";\nimport { useDownload } from \"@/hooks/useDownload\";\nimport ProTable from \"@/components/ProTable/index.vue\";\nimport TreeFilter from \"@/components/TreeFilter/index.vue\";\nimport ImportExcel from \"@/components/ImportExcel/index.vue\";\nimport UserDrawer from \"@/views/proTable/components/UserDrawer.vue\";\nimport { ProTableInstance, ColumnProps } from \"@/components/ProTable/interface\";\nimport { CirclePlus, Delete, EditPen, Download, Upload, View, Refresh } from \"@element-plus/icons-vue\";\nimport {\n  getUserList,\n  deleteUser,\n  editUser,\n  addUser,\n  resetUserPassWord,\n  exportUserInfo,\n  BatchAddUser,\n  getUserStatus,\n  getUserGender,\n  getUserDepartment\n} from \"@/api/modules/user\";\n\nconst router = useRouter();\n\n// 跳转详情页\nconst toDetail = () => {\n  router.push(`/proTable/useTreeFilter/detail/123456?params=detail-page`);\n};\n\n// ProTable 实例\nconst proTable = ref<ProTableInstance>();\n\n// 如果表格需要初始化请求参数，直接定义传给 ProTable(之后每次请求都会自动带上该参数，此参数更改之后也会一直带上，改变此参数会自动刷新表格数据)\nconst initParam = reactive({ departmentId: \"1\" });\n\n// 树形筛选切换\nconst changeTreeFilter = (val: string) => {\n  ElMessage.success(\"请注意查看请求参数变化 🤔\");\n  proTable.value!.pageable.pageNum = 1;\n  initParam.departmentId = val;\n};\n\n// 表格配置项\nconst columns = reactive<ColumnProps<User.ResUserList>[]>([\n  { type: \"index\", label: \"#\", width: 80 },\n  { prop: \"username\", label: \"用户姓名\", width: 120, search: { el: \"input\" } },\n  {\n    prop: \"gender\",\n    label: \"性别\",\n    width: 120,\n    sortable: true,\n    enum: getUserGender,\n    search: { el: \"select\" },\n    fieldNames: { label: \"genderLabel\", value: \"genderValue\" }\n  },\n  { prop: \"idCard\", label: \"身份证号\" },\n  { prop: \"email\", label: \"邮箱\" },\n  { prop: \"address\", label: \"居住地址\" },\n  {\n    prop: \"status\",\n    label: \"用户状态\",\n    width: 120,\n    sortable: true,\n    tag: true,\n    enum: getUserStatus,\n    search: { el: \"select\" },\n    fieldNames: { label: \"userLabel\", value: \"userStatus\" }\n  },\n  { prop: \"createTime\", label: \"创建时间\", width: 180 },\n  { prop: \"operation\", label: \"操作\", width: 330, fixed: \"right\" }\n]);\n\n// 删除用户信息\nconst deleteAccount = async (params: User.ResUserList) => {\n  await useHandleData(deleteUser, { id: [params.id] }, `删除【${params.username}】用户`);\n  proTable.value?.getTableList();\n};\n\n// 重置用户密码\nconst resetPass = async (params: User.ResUserList) => {\n  await useHandleData(resetUserPassWord, { id: params.id }, `重置【${params.username}】用户密码`);\n  proTable.value?.getTableList();\n};\n\n// 导出用户列表\nconst downloadFile = async () => {\n  ElMessageBox.confirm(\"确认导出用户数据?\", \"温馨提示\", { type: \"warning\" }).then(() =>\n    useDownload(exportUserInfo, \"用户列表\", proTable.value?.searchParam)\n  );\n};\n\n// 批量添加用户\nconst dialogRef = ref<InstanceType<typeof ImportExcel> | null>(null);\nconst batchAdd = () => {\n  const params = {\n    title: \"用户\",\n    tempApi: exportUserInfo,\n    importApi: BatchAddUser,\n    getTableList: proTable.value?.getTableList\n  };\n  dialogRef.value?.acceptParams(params);\n};\n\n// 打开 drawer(新增、查看、编辑)\nconst drawerRef = ref<InstanceType<typeof UserDrawer> | null>(null);\nconst openDrawer = (title: string, row: Partial<User.ResUserList> = {}) => {\n  const params = {\n    title,\n    isView: title === \"查看\",\n    row: { ...row },\n    api: title === \"新增\" ? addUser : title === \"编辑\" ? editUser : undefined,\n    getTableList: proTable.value?.getTableList\n  };\n  drawerRef.value?.acceptParams(params);\n};\n</script>\n"
  },
  {
    "path": "src/views/system/accountManage/index.vue",
    "content": "<template>\n  <div class=\"card content-box\">\n    <span class=\"text\"> 账号管理（待完善） 🍓🍇🍈🍉</span>\n  </div>\n</template>\n\n<script setup lang=\"ts\" name=\"accountManage\"></script>\n"
  },
  {
    "path": "src/views/system/departmentManage/index.vue",
    "content": "<template>\n  <div class=\"card content-box\">\n    <span class=\"text\"> 部门管理（待完善） 🍓🍇🍈🍉</span>\n  </div>\n</template>\n\n<script setup lang=\"ts\" name=\"departmentManage\"></script>\n"
  },
  {
    "path": "src/views/system/dictManage/index.vue",
    "content": "<template>\n  <div class=\"card content-box\">\n    <span class=\"text\"> 字典管理（待完善） 🍓🍇🍈🍉</span>\n  </div>\n</template>\n\n<script setup lang=\"ts\" name=\"dictManage\"></script>\n"
  },
  {
    "path": "src/views/system/menuMange/index.vue",
    "content": "<template>\n  <div class=\"table-box\">\n    <ProTable ref=\"proTable\" title=\"菜单列表\" row-key=\"path\" :indent=\"20\" :columns=\"columns\" :data=\"menuData\">\n      <!-- 表格 header 按钮 -->\n      <template #tableHeader>\n        <el-button type=\"primary\" :icon=\"CirclePlus\">新增菜单 </el-button>\n      </template>\n      <!-- 菜单图标 -->\n      <template #icon=\"scope\">\n        <el-icon :size=\"18\">\n          <component :is=\"scope.row.meta.icon\"></component>\n        </el-icon>\n      </template>\n      <!-- 菜单操作 -->\n      <template #operation>\n        <el-button type=\"primary\" link :icon=\"EditPen\"> 编辑 </el-button>\n        <el-button type=\"primary\" link :icon=\"Delete\"> 删除 </el-button>\n      </template>\n    </ProTable>\n  </div>\n</template>\n\n<script setup lang=\"ts\" name=\"menuMange\">\nimport { ref } from \"vue\";\nimport { ColumnProps } from \"@/components/ProTable/interface\";\nimport { Delete, EditPen, CirclePlus } from \"@element-plus/icons-vue\";\nimport authMenuList from \"@/assets/json/authMenuList.json\";\nimport ProTable from \"@/components/ProTable/index.vue\";\n\nconst proTable = ref();\n\nconst menuData = ref(authMenuList.data);\n\n// 表格配置项\nconst columns: ColumnProps[] = [\n  { prop: \"meta.title\", label: \"菜单名称\", align: \"left\", search: { el: \"input\" } },\n  { prop: \"meta.icon\", label: \"菜单图标\" },\n  { prop: \"name\", label: \"菜单 name\", search: { el: \"input\" } },\n  { prop: \"path\", label: \"菜单路径\", width: 300, search: { el: \"input\" } },\n  { prop: \"component\", label: \"组件路径\", width: 300 },\n  { prop: \"operation\", label: \"操作\", width: 250, fixed: \"right\" }\n];\n</script>\n"
  },
  {
    "path": "src/views/system/roleManage/index.vue",
    "content": "<template>\n  <div class=\"card content-box\">\n    <span class=\"text\"> 角色管理（待完善） 🍓🍇🍈🍉</span>\n  </div>\n</template>\n\n<script setup lang=\"ts\" name=\"roleManage\"></script>\n"
  },
  {
    "path": "src/views/system/systemLog/index.vue",
    "content": "<template>\n  <div class=\"card content-box\">\n    <span class=\"text\"> 系统日志（待完善） 🍓🍇🍈🍉</span>\n  </div>\n</template>\n\n<script setup lang=\"ts\" name=\"systemLog\"></script>\n"
  },
  {
    "path": "src/views/system/timingTask/index.vue",
    "content": "<template>\n  <div class=\"card content-box\">\n    <span class=\"text\"> 定时任务（待完善） 🍓🍇🍈🍉</span>\n  </div>\n</template>\n\n<script setup lang=\"ts\" name=\"timingTask\"></script>\n"
  },
  {
    "path": "src/vite-env.d.ts",
    "content": "/// <reference types=\"vite/client\" />\n"
  },
  {
    "path": "tsconfig.json",
    "content": "{\n  \"compilerOptions\": {\n    \"target\": \"ESNext\",\n    \"useDefineForClassFields\": true,\n    \"module\": \"ESNext\",\n    \"moduleResolution\": \"Node\",\n    \"types\": [\"vite/client\", \"element-plus/global\"],\n\n    /* Strict Type-Checking Options */\n    \"strict\": true /* Enable all strict type-checking options. */,\n    \"noImplicitAny\": false /* Raise error on expressions and declarations with an implied 'any' type. */,\n    // \"strictNullChecks\": true,              /* Enable strict null checks. */\n    // \"strictFunctionTypes\": true,           /* Enable strict checking of function types. */\n    // \"strictBindCallApply\": true,           /* Enable strict 'bind', 'call', and 'apply' methods on functions. */\n    // \"strictPropertyInitialization\": true,  /* Enable strict checking of property initialization in classes. */\n    // \"noImplicitThis\": true,                /* Raise error on 'this' expressions with an implied 'any' type. */\n    // \"alwaysStrict\": true,                  /* Parse in strict mode and emit \"use strict\" for each source file. */\n\n    \"jsx\": \"preserve\",\n    \"resolveJsonModule\": true,\n    \"isolatedModules\": true,\n    \"esModuleInterop\": true,\n    \"lib\": [\"ESNext\", \"DOM\"],\n    \"skipLibCheck\": true,\n    \"noEmit\": true,\n    \"baseUrl\": \"./\",\n    \"paths\": {\n      \"@\": [\"src\"],\n      \"@/*\": [\"src/*\"]\n    }\n  },\n  \"include\": [\n    \"src/**/*.ts\",\n    \"src/**/*.d.ts\",\n    \"src/**/*.tsx\",\n    \"src/**/*.vue\",\n    \"build/**/*.ts\",\n    \"build/**/*.d.ts\",\n    \"vite.config.ts\"\n  ],\n  \"exclude\": [\"node_modules\", \"dist\", \"**/*.js\"]\n}\n"
  },
  {
    "path": "vite.config.ts",
    "content": "import { defineConfig, loadEnv, ConfigEnv, UserConfig } from \"vite\";\nimport { resolve } from \"path\";\nimport { wrapperEnv } from \"./build/getEnv\";\nimport { createProxy } from \"./build/proxy\";\nimport { createVitePlugins } from \"./build/plugins\";\nimport pkg from \"./package.json\";\nimport dayjs from \"dayjs\";\n\nconst { dependencies, devDependencies, name, version } = pkg;\nconst __APP_INFO__ = {\n  pkg: { dependencies, devDependencies, name, version },\n  lastBuildTime: dayjs().format(\"YYYY-MM-DD HH:mm:ss\")\n};\n\n// @see: https://vitejs.dev/config/\nexport default defineConfig(({ mode }: ConfigEnv): UserConfig => {\n  const root = process.cwd();\n  const env = loadEnv(mode, root);\n  const viteEnv = wrapperEnv(env);\n\n  return {\n    base: viteEnv.VITE_PUBLIC_PATH,\n    root,\n    resolve: {\n      alias: {\n        \"@\": resolve(__dirname, \"./src\"),\n        \"vue-i18n\": \"vue-i18n/dist/vue-i18n.cjs.js\"\n      }\n    },\n    define: {\n      __APP_INFO__: JSON.stringify(__APP_INFO__)\n    },\n    css: {\n      preprocessorOptions: {\n        scss: {\n          additionalData: `@import \"@/styles/var.scss\";`\n        }\n      }\n    },\n    server: {\n      host: \"0.0.0.0\",\n      port: viteEnv.VITE_PORT,\n      open: viteEnv.VITE_OPEN,\n      cors: true,\n      // Load proxy configuration from .env.development\n      proxy: createProxy(viteEnv.VITE_PROXY)\n    },\n    plugins: createVitePlugins(viteEnv),\n    esbuild: {\n      pure: viteEnv.VITE_DROP_CONSOLE ? [\"console.log\", \"debugger\"] : []\n    },\n    build: {\n      outDir: \"dist\",\n      minify: \"esbuild\",\n      // esbuild 打包更快，但是不能去除 console.log，terser打包慢，但能去除 console.log\n      // minify: \"terser\",\n      // terserOptions: {\n      // \tcompress: {\n      // \t\tdrop_console: viteEnv.VITE_DROP_CONSOLE,\n      // \t\tdrop_debugger: true\n      // \t}\n      // },\n      sourcemap: false,\n      // 禁用 gzip 压缩大小报告，可略微减少打包时间\n      reportCompressedSize: false,\n      // 规定触发警告的 chunk 大小\n      chunkSizeWarningLimit: 2000,\n      rollupOptions: {\n        output: {\n          // Static resource classification and packaging\n          chunkFileNames: \"assets/js/[name]-[hash].js\",\n          entryFileNames: \"assets/js/[name]-[hash].js\",\n          assetFileNames: \"assets/[ext]/[name]-[hash].[ext]\"\n        }\n      }\n    }\n  };\n});\n"
  }
]