diff --git a/.drone.yml b/.drone.yml index a0a9d35..85e5d4e 100644 --- a/.drone.yml +++ b/.drone.yml @@ -20,7 +20,7 @@ volumes: path: /data/drone/docker/sock - name: node host: - path: /data/drone/node_modules-navigation + path: /data/drone/node_modules-navigation-customer - name: localtime host: path: /etc/localtime @@ -94,6 +94,7 @@ steps: mirror: https://docker.mirrors.ustc.edu.cn commands: # npm打包 + - npm config set registry https://registry.npmmirror.com/ - npm install - npm run build - chown -R 1000:1000 ./ @@ -135,7 +136,7 @@ steps: commands: # # 自动授权 # - export projectCode="projectCode=project-inluar4ppcxvciefgb_ila" - - export name="导视_测试版" # 应用名称(自行填写 必填) + - export name="永旺集团顾客心声大屏展示端标准版_测试版" # 应用名称(自行填写 必填) - export version=$(cat .tags) # 应用版本 - export sourceId="8" # 应用来源id(默认为8 即测试环境专用) //如需更改查看测试环境平台级下应用管理新增应用的/api/platform/v1/platformProgram/platformProgramAdd接口 - export genre="localpack" # 应用类型 本地资源包 [outchain, localpack] @@ -157,7 +158,7 @@ steps: cdn_url: 'https://qianmu-iot.1000my.com' # genre: "Samsung" commands: - - export name="导视_正式版" # 应用名称(自行填写) + - export name="永旺集团顾客心声大屏展示端标准版_正式版" # 应用名称(自行填写) - export version=$(cat .tags) # 应用版本 - export sourceId="3" # 应用来源id - export genre="localpack" # 应用类型 本地资源包 @@ -174,7 +175,7 @@ steps: image: lddsb/drone-dingtalk-message failure: ignore settings: - token: dingTalk token #具体项目钉钉群机器人token + token: 55049b40bd6eb17aea64e113af2d55d581159292eb85a071afa76c7e0562020d #具体项目钉钉群机器人token type: markdown message_color: true message_pic: true diff --git a/index.html b/index.html index 79757b0..a888544 100644 --- a/index.html +++ b/index.html @@ -5,8 +5,6 @@ Vite App - -
diff --git a/package-lock.json b/package-lock.json index d65f466..d155106 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,19 +11,11 @@ "@better-scroll/core": "^2.5.1", "@better-scroll/observe-image": "^2.5.1", "@better-scroll/scroll-bar": "^2.5.1", - "@sentry/integrations": "^7.102.0", - "@sentry/vue": "^7.102.0", - "@vueuse/core": "^10.8.0", - "animate.css": "^4.1.1", "axios": "^1.6.7", "lodash-es": "^4.17.21", - "lottie-web": "^5.12.2", - "pinia": "^2.1.7", + "pinia": "^2.2.0", "swiper": "^11.1.1", - "vue": "^3.4.15", - "vue-i18n": "^9.9.1", - "vue-router": "^4.2.5", - "vue3-lazyload": "^0.3.8" + "vue": "^3.4.15" }, "devDependencies": { "@commitlint/cli": "^18.6.1", @@ -1183,47 +1175,6 @@ "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==", "dev": true }, - "node_modules/@intlify/core-base": { - "version": "9.9.1", - "resolved": "https://registry.npmjs.org/@intlify/core-base/-/core-base-9.9.1.tgz", - "integrity": "sha512-qsV15dg7jNX2faBRyKMgZS8UcFJViWEUPLdzZ9UR0kQZpFVeIpc0AG7ZOfeP7pX2T9SQ5jSiorq/tii9nkkafA==", - "dependencies": { - "@intlify/message-compiler": "9.9.1", - "@intlify/shared": "9.9.1" - }, - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://github.com/sponsors/kazupon" - } - }, - "node_modules/@intlify/message-compiler": { - "version": "9.9.1", - "resolved": "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-9.9.1.tgz", - "integrity": "sha512-zTvP6X6HeumHOXuAE1CMMsV6tTX+opKMOxO1OHTCg5N5Sm/F7d8o2jdT6W6L5oHUsJ/vvkGefHIs7Q3hfowmsA==", - "dependencies": { - "@intlify/shared": "9.9.1", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://github.com/sponsors/kazupon" - } - }, - "node_modules/@intlify/shared": { - "version": "9.9.1", - "resolved": "https://registry.npmjs.org/@intlify/shared/-/shared-9.9.1.tgz", - "integrity": "sha512-b3Pta1nwkz5rGq434v0psHwEwHGy1pYCttfcM22IE//K9owbpkEvFptx9VcuRAxjQdrO2If249cmDDjBu5wMDA==", - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://github.com/sponsors/kazupon" - } - }, "node_modules/@isaacs/cliui": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", @@ -1638,139 +1589,6 @@ "integrity": "sha512-RbhOOTCNoCrbfkRyoXODZp75MlpiHMgbE5MEBZAnnnLyQNgrigEj4p0lzsMDyc1zVsJDLrivB58tgg3emX0eEA==", "dev": true }, - "node_modules/@sentry-internal/feedback": { - "version": "7.102.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/feedback/-/feedback-7.102.0.tgz", - "integrity": "sha512-GxHdzbOF4tg6TtyQzFqb/8c/p07n68qZC5KYwzs7AuW5ey0IPmdC58pOh3Kk52JA0P69/RZy39+r1p1Swr6C+Q==", - "dependencies": { - "@sentry/core": "7.102.0", - "@sentry/types": "7.102.0", - "@sentry/utils": "7.102.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@sentry-internal/replay-canvas": { - "version": "7.102.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/replay-canvas/-/replay-canvas-7.102.0.tgz", - "integrity": "sha512-rgNO4PdFv0AYflBsCNbSIwpQuOOJQTqyu8i8U0PupjveNjkm0CUJhber/ZOcaGmbyjdvwikGwgWY2O0Oj0USCA==", - "dependencies": { - "@sentry/core": "7.102.0", - "@sentry/replay": "7.102.0", - "@sentry/types": "7.102.0", - "@sentry/utils": "7.102.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@sentry-internal/tracing": { - "version": "7.102.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.102.0.tgz", - "integrity": "sha512-BlE33HWL1IzkGa0W+pwTiyu01MUIfYf+WnO9UC8qkDW3jxVvg2zhoSjXSxikT+KPCOgoZpQHspaTzwjnI1LCvw==", - "dependencies": { - "@sentry/core": "7.102.0", - "@sentry/types": "7.102.0", - "@sentry/utils": "7.102.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@sentry/browser": { - "version": "7.102.0", - "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-7.102.0.tgz", - "integrity": "sha512-hIggcMnojIbWhbmlRfkykHmy6n7pjug0AHfF19HRUQxAx9KJfMH5YdWvohov0Hb9fS+jdvqgE+/4AWbEeXQrHw==", - "dependencies": { - "@sentry-internal/feedback": "7.102.0", - "@sentry-internal/replay-canvas": "7.102.0", - "@sentry-internal/tracing": "7.102.0", - "@sentry/core": "7.102.0", - "@sentry/replay": "7.102.0", - "@sentry/types": "7.102.0", - "@sentry/utils": "7.102.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@sentry/core": { - "version": "7.102.0", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.102.0.tgz", - "integrity": "sha512-GO9eLOSBK1waW4AD0wDXAreaNqXFQ1MPQZrkKcN+GJYEFhJK1+u+MSV7vO5Fs/rIfaTZIZ2jtEkxSSAOucE8EQ==", - "dependencies": { - "@sentry/types": "7.102.0", - "@sentry/utils": "7.102.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@sentry/integrations": { - "version": "7.102.0", - "resolved": "https://registry.npmjs.org/@sentry/integrations/-/integrations-7.102.0.tgz", - "integrity": "sha512-WW7DiAcihi+Fya2YrB6lEUzDAIPuO23wDm4tLJ9vQpMw4LaTj/XkulITTXFI7XLJLzs5Eks9pIfZJdmKrqjchA==", - "dependencies": { - "@sentry/core": "7.102.0", - "@sentry/types": "7.102.0", - "@sentry/utils": "7.102.0", - "localforage": "^1.8.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@sentry/replay": { - "version": "7.102.0", - "resolved": "https://registry.npmjs.org/@sentry/replay/-/replay-7.102.0.tgz", - "integrity": "sha512-sUIBN4ZY0J5/dQS3KOe5VLykm856KZkTrhV8kmBEylzQhw1BBc8i2ehTILy5ZYh9Ra8uXPTAmtwpvYf/dRDfAg==", - "dependencies": { - "@sentry-internal/tracing": "7.102.0", - "@sentry/core": "7.102.0", - "@sentry/types": "7.102.0", - "@sentry/utils": "7.102.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@sentry/types": { - "version": "7.102.0", - "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.102.0.tgz", - "integrity": "sha512-FPfFBP0x3LkPARw1/6cWySLq1djIo8ao3Qo2KNBeE9CHdq8bsS1a8zzjJLuWG4Ww+wieLP8/lY3WTgrCz4jowg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/@sentry/utils": { - "version": "7.102.0", - "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.102.0.tgz", - "integrity": "sha512-cp5KCRe0slOVMwG4iP2Z4UajQkjryRTiFskZ5H7Q3X9R5voM8+DAhiDcIW88GL9NxqyUrAJOjmKdeLK2vM+bdA==", - "dependencies": { - "@sentry/types": "7.102.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@sentry/vue": { - "version": "7.102.0", - "resolved": "https://registry.npmjs.org/@sentry/vue/-/vue-7.102.0.tgz", - "integrity": "sha512-wH/7/cuhy37W0E6is6nDvfasy3vmNTY1w4AUpirVqaI3iPO+fEEc12RuuRkyRcxmuEBt8x4XxKIPJdMhcKRPug==", - "dependencies": { - "@sentry/browser": "7.102.0", - "@sentry/core": "7.102.0", - "@sentry/types": "7.102.0", - "@sentry/utils": "7.102.0" - }, - "engines": { - "node": ">=8" - }, - "peerDependencies": { - "vue": "2.x || 3.x" - } - }, "node_modules/@tsconfig/node20": { "version": "20.1.2", "resolved": "https://registry.npmjs.org/@tsconfig/node20/-/node20-20.1.2.tgz", @@ -1831,11 +1649,6 @@ "integrity": "sha512-/wdoPq1QqkSj9/QOeKkFquEuPzQbHTWAMPH/PaUMB+JuR31lXhlWXRZ52IpfDYVlDOUBvX09uBrPwxGT1hjNBg==", "dev": true }, - "node_modules/@types/web-bluetooth": { - "version": "0.0.20", - "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.20.tgz", - "integrity": "sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==" - }, "node_modules/@typescript-eslint/eslint-plugin": { "version": "6.21.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz", @@ -2120,9 +1933,9 @@ } }, "node_modules/@vue/devtools-api": { - "version": "6.6.1", - "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.1.tgz", - "integrity": "sha512-LgPscpE3Vs0x96PzSSB4IGVSZXZBZHpfxs+ZA1d+VEPwHdOXowy/Y2CsvCAIFrf+ssVU1pD1jidj505EpUnfbA==" + "version": "6.6.3", + "resolved": "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.6.3.tgz", + "integrity": "sha512-0MiMsFma/HqA6g3KLKn+AGpL1kgKhFWszC9U29NfpWK5LE7bjeXxySWJrOJ77hBz+TBrBQ7o4QJqbPbqbs8rJw==" }, "node_modules/@vue/eslint-config-prettier": { "version": "8.0.0", @@ -2237,89 +2050,6 @@ "integrity": "sha512-VcZK7MvpjuTPx2w6blwnwZAu5/LgBUtejFOi3pPGQFXQN5Ela03FUtd2Qtg4yWGGissVL0dr6Ro1LfOFh+PCuQ==", "dev": true }, - "node_modules/@vueuse/core": { - "version": "10.8.0", - "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-10.8.0.tgz", - "integrity": "sha512-G9Ok9fjx10TkNIPn8V1dJmK1NcdJCtYmDRyYiTMUyJ1p0Tywc1zmOoCQ2xhHYyz8ULBU4KjIJQ9n+Lrty74iVw==", - "dependencies": { - "@types/web-bluetooth": "^0.0.20", - "@vueuse/metadata": "10.8.0", - "@vueuse/shared": "10.8.0", - "vue-demi": ">=0.14.7" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" - } - }, - "node_modules/@vueuse/core/node_modules/vue-demi": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.7.tgz", - "integrity": "sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA==", - "hasInstallScript": true, - "bin": { - "vue-demi-fix": "bin/vue-demi-fix.js", - "vue-demi-switch": "bin/vue-demi-switch.js" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" - }, - "peerDependencies": { - "@vue/composition-api": "^1.0.0-rc.1", - "vue": "^3.0.0-0 || ^2.6.0" - }, - "peerDependenciesMeta": { - "@vue/composition-api": { - "optional": true - } - } - }, - "node_modules/@vueuse/metadata": { - "version": "10.8.0", - "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-10.8.0.tgz", - "integrity": "sha512-Nim/Vle5OgXcXhAvGOgkJQXB1Yb+Kq/fMbLuv3YYDYbiQrwr39ljuD4k9fPeq4yUyokYRo2RaNQmbbIMWB/9+w==", - "funding": { - "url": "https://github.com/sponsors/antfu" - } - }, - "node_modules/@vueuse/shared": { - "version": "10.8.0", - "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-10.8.0.tgz", - "integrity": "sha512-dUdy6zwHhULGxmr9YUg8e+EnB39gcM4Fe2oKBSrh3cOsV30JcMPtsyuspgFCUo5xxFNaeMf/W2yyKfST7Bg8oQ==", - "dependencies": { - "vue-demi": ">=0.14.7" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" - } - }, - "node_modules/@vueuse/shared/node_modules/vue-demi": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.7.tgz", - "integrity": "sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA==", - "hasInstallScript": true, - "bin": { - "vue-demi-fix": "bin/vue-demi-fix.js", - "vue-demi-switch": "bin/vue-demi-switch.js" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" - }, - "peerDependencies": { - "@vue/composition-api": "^1.0.0-rc.1", - "vue": "^3.0.0-0 || ^2.6.0" - }, - "peerDependenciesMeta": { - "@vue/composition-api": { - "optional": true - } - } - }, "node_modules/acorn": { "version": "8.11.3", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", @@ -2357,11 +2087,6 @@ "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/animate.css": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/animate.css/-/animate.css-4.1.1.tgz", - "integrity": "sha512-+mRmCTv6SbCmtYJCN4faJMNFVNN5EuCTTprDTAo7YzIGji2KADmakjVA3+8mVDkZ2Bf09vayB35lSQIex2+QaQ==" - }, "node_modules/ansi-escapes": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", @@ -4952,11 +4677,6 @@ "node": ">= 4" } }, - "node_modules/immediate": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", - "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==" - }, "node_modules/immutable": { "version": "4.3.5", "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.5.tgz", @@ -5362,14 +5082,6 @@ "node": ">= 0.8.0" } }, - "node_modules/lie": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz", - "integrity": "sha512-RiNhHysUjhrDQntfYSfY4MU24coXXdEOgw9WGcKHNeEwffDYbF//u87M1EWaMGzuFoSbqW0C9C6lEEhDOAswfw==", - "dependencies": { - "immediate": "~3.0.5" - } - }, "node_modules/lilconfig": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.0.0.tgz", @@ -5694,14 +5406,6 @@ "node": ">=0.10.0" } }, - "node_modules/localforage": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/localforage/-/localforage-1.10.0.tgz", - "integrity": "sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg==", - "dependencies": { - "lie": "3.1.1" - } - }, "node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -6012,11 +5716,6 @@ "node": ">=0.10.0" } }, - "node_modules/lottie-web": { - "version": "5.12.2", - "resolved": "https://registry.npmjs.org/lottie-web/-/lottie-web-5.12.2.tgz", - "integrity": "sha512-uvhvYPC8kGPjXT3MyKMrL3JitEAmDMp30lVkuq/590Mw9ok6pWcFCwXJveo0t5uqYw1UREQHofD+jVpdjBv8wg==" - }, "node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -6887,12 +6586,12 @@ } }, "node_modules/pinia": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/pinia/-/pinia-2.1.7.tgz", - "integrity": "sha512-+C2AHFtcFqjPih0zpYuvof37SFxMQ7OEG2zV9jRI12i9BOy3YQVAHwdKtyyc8pDcDyIc33WCIsZaCFWU7WWxGQ==", + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/pinia/-/pinia-2.2.0.tgz", + "integrity": "sha512-iPrIh26GMqfpUlMOGyxuDowGmYousTecbTHFwT0xZ1zJvh23oQ+Cj99ZoPQA1TnUPhU6AuRPv6/drkTCJ0VHQA==", "dependencies": { - "@vue/devtools-api": "^6.5.0", - "vue-demi": ">=0.14.5" + "@vue/devtools-api": "^6.6.3", + "vue-demi": "^0.14.8" }, "funding": { "url": "https://github.com/sponsors/posva" @@ -6918,9 +6617,9 @@ "dev": true }, "node_modules/pinia/node_modules/vue-demi": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.7.tgz", - "integrity": "sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA==", + "version": "0.14.10", + "resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.14.10.tgz", + "integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==", "hasInstallScript": true, "bin": { "vue-demi-fix": "bin/vue-demi-fix.js", @@ -9070,39 +8769,6 @@ "eslint": ">=6.0.0" } }, - "node_modules/vue-i18n": { - "version": "9.9.1", - "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-9.9.1.tgz", - "integrity": "sha512-xyQ4VspLdNSPTKBFBPWa1tvtj+9HuockZwgFeD2OhxxXuC2CWeNvV4seu2o9+vbQOyQbhAM5Ez56oxUrrnTWdw==", - "dependencies": { - "@intlify/core-base": "9.9.1", - "@intlify/shared": "9.9.1", - "@vue/devtools-api": "^6.5.0" - }, - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://github.com/sponsors/kazupon" - }, - "peerDependencies": { - "vue": "^3.0.0" - } - }, - "node_modules/vue-router": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.3.0.tgz", - "integrity": "sha512-dqUcs8tUeG+ssgWhcPbjHvazML16Oga5w34uCUmsk7i0BcnskoLGwjpa15fqMr2Fa5JgVBrdL2MEgqz6XZ/6IQ==", - "dependencies": { - "@vue/devtools-api": "^6.5.1" - }, - "funding": { - "url": "https://github.com/sponsors/posva" - }, - "peerDependencies": { - "vue": "^3.2.0" - } - }, "node_modules/vue-template-compiler": { "version": "2.7.16", "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.16.tgz", @@ -9130,48 +8796,6 @@ "typescript": "*" } }, - "node_modules/vue3-lazyload": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/vue3-lazyload/-/vue3-lazyload-0.3.8.tgz", - "integrity": "sha512-UiJHRT7mzry102WbhtrRgJh+f8Z8u4Z+H1RU4dvPmQeq7wFSDFxZB9iJOWGihH2FscXN/8rMGLDOQJAmjwqpCg==", - "dependencies": { - "vue-demi": "^0.12.5" - }, - "peerDependencies": { - "@vue/composition-api": "^1.0.0-rc.1", - "vue": "^2.0.0 || >=3.0.0" - }, - "peerDependenciesMeta": { - "@vue/composition-api": { - "optional": true - } - } - }, - "node_modules/vue3-lazyload/node_modules/vue-demi": { - "version": "0.12.5", - "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.12.5.tgz", - "integrity": "sha512-BREuTgTYlUr0zw0EZn3hnhC3I6gPWv+Kwh4MCih6QcAeaTlaIX0DwOVN0wHej7hSvDPecz4jygy/idsgKfW58Q==", - "hasInstallScript": true, - "bin": { - "vue-demi-fix": "bin/vue-demi-fix.js", - "vue-demi-switch": "bin/vue-demi-switch.js" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" - }, - "peerDependencies": { - "@vue/composition-api": "^1.0.0-rc.1", - "vue": "^3.0.0-0 || ^2.6.0" - }, - "peerDependenciesMeta": { - "@vue/composition-api": { - "optional": true - } - } - }, "node_modules/wcwidth": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", diff --git a/package.json b/package.json index d730b57..ea414eb 100644 --- a/package.json +++ b/package.json @@ -22,19 +22,11 @@ "@better-scroll/core": "^2.5.1", "@better-scroll/observe-image": "^2.5.1", "@better-scroll/scroll-bar": "^2.5.1", - "@sentry/integrations": "^7.102.0", - "@sentry/vue": "^7.102.0", - "@vueuse/core": "^10.8.0", - "animate.css": "^4.1.1", "axios": "^1.6.7", "lodash-es": "^4.17.21", - "lottie-web": "^5.12.2", - "pinia": "^2.1.7", + "pinia": "^2.2.0", "swiper": "^11.1.1", - "vue": "^3.4.15", - "vue-i18n": "^9.9.1", - "vue-router": "^4.2.5", - "vue3-lazyload": "^0.3.8" + "vue": "^3.4.15" }, "devDependencies": { "@commitlint/cli": "^18.6.1", diff --git a/public/static/img/Q.png b/public/static/img/Q.png deleted file mode 100644 index e2037b1..0000000 Binary files a/public/static/img/Q.png and /dev/null differ diff --git a/public/static/img/Z.png b/public/static/img/Z.png deleted file mode 100644 index dd98987..0000000 Binary files a/public/static/img/Z.png and /dev/null differ diff --git a/public/static/img/dt.gltf b/public/static/img/dt.gltf deleted file mode 100644 index 41e0834..0000000 --- a/public/static/img/dt.gltf +++ /dev/null @@ -1,215 +0,0 @@ -{ - "asset":{ - "version":"2.0", - "generator":"Created using the official Cinema 4D glTF Exporter 1.000x284978" - }, - "buffers":[{ - "uri":"data:application/octet-stream;base64,SQBAAGgAUgAoADEAWgAmAFAAdQAWADIAdAAlAHUAcwAoAHQAMQBzAEAAUgBcAHEADgBcAHAAKwA6ABcAXABSAEUAHAAsABgAEABtABIAEAAgAG0AYABOAHoAZwBRAGUAZgBnAGQAYwBiAGUAYgBMAGQASwB3AA0ARQAGAHAARQBJAAYAewBqADsAIQARAFoAGgBdAB0ALQBdAAMAPgA/AEEAQwAYAEEAeQBCAHoAAwA0AAIAAgA1ACwAVwAjAFUAPQBXAFQAOABDAG0AVABVAHsAZgBkAAkAJAAMACcAYQBoAGAAGQApAGAAYQBNAGgAIABUAG4AFQBNABQASQAUAF8AOAAbAAQAegA3AFgAGQBYABoAcgB4ADoAbQBuADgAKABMACUAJQBiABYACQAqAHEAXQAaADwABgAkAEMAGQBpAFYAMABIAAEAVgAiADMAFgBjAHIADgBwAF4ATwAsAHEAKgBMAFIAIgAjAFsAPgA1ADMAWwBXAD8AOgAKADwAbABDADYAagBaAEYABAAYADgALQADAC8ALAAcAC4AQwBBAGsAVQAhAGoAeABjAAoAOwBGADAAPwA9AEQAawBEABIAWQAyADoAMwA0AFYAMwBbAD4AIwATACEAOQA9ACAAZgAJAAIAJgBpAFMAHQAtAB8AAwACAAAAWAAZAHoARwALAC8ATgBZACsAUABTAEcAdgB1AFkAbwAGAGwAGABPAAcAGgAFABcAVgBdABkAUQBnAC0AEgA5ABAADwAwAC4AeQBOAEIAQAB0AHYAGAAHADYAHgAcAAQAAgAsAAEAQgArADcADABLAAgAXgBvADYAXAAOAAcALQBdAFEAGwA7AA8ABAAPAB4AHwALAB0AbgB7ABsAUwAZAAsASABHAAAARgBQAEgAQQBPAD4AaQATACIAEQATACYAFQAUAGgAQAB2AGgAKABzADEAJgBTAFAAFgByADIAJQAWAHUAKAAlAHQAcwB0AEAAXAAHAHEAXABFAHAAOgA8ABcAUgAxAEUALABPABgAbQBrABIAIABuAG0ATgB5AHoAUQAKAGUAZwBlAGQAYgBkAGUATAAqAGQAdwApAA0ABgBvAHAASQBfAAYAagBGADsAEQAmAFoAXQAtAB0AXQA0AAMAPwBEAEEAGABPAEEAQgA3AHoANAA1AAIANQBPACwAIwAhAFUAVwBVAFQA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", - "byteLength":2940 - }, - { - "uri":"data:application/octet-stream;base64,JQAmAC0AIAAnABsAHgAkAB0AIAAaAC0ALQAoACAALAAZABoAJAAoABgAHAAZACcAJQAtAB0AGwAsACAANwAtACoANQAiAC0AMwAlADQAAQA5ACAAOAAxAAUABAAqACIAIQAuADYAIwApADMAMAAyAAYALQA3ADUALwAlAB0AIAArADEANAAvAAcABQA5ADgAMgAwABsAOAABADEAOQAFACsABwAjADQAIQA2AAYAKgAEADcALgAsABsAIgA1AAQAIQAGAC4AIwAHACkAJQAbACYAJQAdABsAHwAZACYAJAAcACgAGQAsABgAGgAcAB4AEAAIABQAEwALABAAFAAMABcAFwAPABYABQAGAAEABAAFAAAABwAEAAMABgAHAAIAEgAKABMAFgAOABUAFQANABEADAAIAA0ACAALAAwACwAKAA8ACgAJAA4AEQAJABIAFwATABQAFgASABcAFQARABYADAANAAMACQAIAAYADwAMAAAACAALAAcADgAPAAEACwAKAAQADQAOAAIACgAJAAUAJgAoAC0AJwAfABsAJAAYAB0AGgAeAC0AKAAnACAAGQAcABoAKAAmABgAGQAfACcALQAeAB0ALAAaACAALQAAACoAIgAAAC0AJQAvADQAOQArACAAMQAaAAUAKgAAACIALgAbADYAKQAlADMAMgAsAAYANwAeADUAJQApAB0AKwAaADEALwAdAAcAOQABADgAMAA2ABsAAQAgADEABQAaACsAIwAzADQANgAwAAYABAAeADcALAAyABsANQAeAAQABgAsAC4ABwAdACkAGwAfACYAHQAsABsAGQAYACYAHAAnACgALAAdABgAHAAkAB4ACAAMABQACwAIABAADAAPABcADwAOABYABgACAAEABQABAAAABAAAAAMABwADAAIACgALABMADgANABUADQAJABEACAAJAA0ACwAPAAwACgAOAA8ACQANAA4ACQAKABIAEwAQABQAEgATABcAEQASABYADQACAAMACAAHAAYADAADAAAACwAEAAcADwAAAAEACgAFAAQADgABAAIACQAGAAUAxrBTvwAAAADGsFO/xrBTPwAAAADGsFO/xrBTPwAAAAD1DEI/xrBTvwAAAAD1DEI/1lRlvwAAAADWVGW/1lRlPwAAAADWVGW/1lRlPwAAAADWVGU/1lRlvwAAAADWVGU/1lRlv1OBkz3WVGU/1lRlP1OBkz3WVGU/1lRlP1OBkz3WVGW/1lRlv1OBkz3WVGW/xrBTv1OBkz31DEI/xrBTP1OBkz31DEI/xrBTP1OBkz3GsFO/xrBTv1OBkz3GsFO/1lRlv+tQED7WVGU/1lRlP+tQED7WVGU/1lRlP+tQED7WVGW/1lRlv+tQED7WVGW/xrBTv+tQED71DEI/xrBTP+tQED71DEI/xrBTP+tQED7GsFO/xrBTv+tQED7GsFO/1lRlvw3Ke0DWVGU/1lRlPw3Ke0DWVGU/1lRlP4kZgEDWVGW/xrBTP4kZgEDmsFM/1lRlPw3Ke0DWVGW/1lRlv4kZgEDWVGU/1lRlv4kZgEDWVGW/xrBTPw3Ke0DmsFM/xrBTPz0WgEDGsFO/xrBTP+BVuTvWVGU/1lRlv+BVuTvGsFO/1lRlv+BVuTvGsFM/1lRlvw3Ke0DWVGW/xrBTv4kZgEDmsFM/xrBTvw3Ke0DmsFM/xrBTPw3Ke0DGsFO/xrBTvw3Ke0DGsFO/1lRlvz0WgEDGsFM/xrBTv+BVuTvWVGW/1lRlPz0WgEDGsFO/1lRlP4kZgEDWVGU/xrBTv4kZgEDGsFO/xrBTPz0WgEDWVGU/xrBTvz0WgEDWVGU/1lRlP+BVuTvGsFM/xrBTPz0WgEDWVGW/1lRlPz0WgEDGsFM/xrBTv+BVuTvGsFM/xrBTv+BVuTvWVGU/1lRlvz0WgEDGsFO/xrBTP+BVuTvGsFM/xrBTvz0WgEDWVGW/xrBTP+BVuTvWVGW/1lRlP+BVuTvGsFO/", - "byteLength":1500 - }, - { - "uri":"data:application/octet-stream;base64,AAAHAAYABAABAAIABwAAAAMABwAFAAYAAQADAAIAAAACAAMA0GZmPwAAAADQZma/0GZmv3UegEDQZmY/0GZmvwAAAADQZma/0GZmv3UegEDQZma/0GZmvwAAAADQZmY/0GZmP3UegEDQZmY/0GZmPwAAAADQZmY/0GZmP3UegEDQZma/", - "byteLength":132 - }], - "scenes":[{ - "nodes":[0, - 1, - 2] - }], - "nodes":[{ - "name":"zhitibox", - "mesh":0 - }, - { - "name":"zhitijiegou", - "mesh":1 - }, - { - "name":"zhitiboli", - "mesh":2 - }], - "meshes":[{ - "name":"zhitibox", - "primitives":[{ - "attributes":{ - "POSITION":1 - }, - "indices":0, - "material":0 - }] - }, - { - "name":"zhitijiegou", - "primitives":[{ - "attributes":{ - "POSITION":3 - }, - "indices":2, - "material":1 - }] - }, - { - "name":"zhitiboli", - "primitives":[{ - "attributes":{ - "POSITION":5 - }, - "indices":4, - "material":2 - }] - }], - "accessors":[{ - "bufferView":0, - "type":"SCALAR", - "componentType":5123, - "count":726, - "byteOffset":0, - "min":[0], - "max":[123] - }, - { - "bufferView":1, - "type":"VEC3", - "componentType":5126, - "count":124, - "byteOffset":0, - "min":[-0.699999988079071, - 0.0, - -0.7774372100830078], - "max":[0.699999988079071, - 1.8124762773513795, - 0.7774372100830078] - }, - { - "bufferView":2, - "type":"SCALAR", - "componentType":5123, - "count":402, - "byteOffset":0, - "min":[0], - "max":[57] - }, - { - "bufferView":3, - "type":"VEC3", - "componentType":5126, - "count":58, - "byteOffset":0, - "min":[-0.8958257436752319, - 0.0, - -0.8958257436752319], - "max":[0.8958257436752319, - 4.003117084503174, - 0.8958257436752319] - }, - { - "bufferView":4, - "type":"SCALAR", - "componentType":5123, - "count":18, - "byteOffset":0, - "min":[0], - "max":[7] - }, - { - "bufferView":5, - "type":"VEC3", - "componentType":5126, - "count":8, - "byteOffset":0, - "min":[-0.9000062942504883, - 0.0, - -0.9000062942504883], - "max":[0.9000062942504883, - 4.00371789932251, - 0.9000062942504883] - }], - "bufferViews":[{ - "buffer":0, - "byteOffset":0, - "byteLength":1452, - "target":34963 - }, - { - "buffer":0, - "byteOffset":1452, - "byteLength":1488, - "target":34962 - }, - { - "buffer":1, - "byteOffset":0, - "byteLength":804, - "target":34963 - }, - { - "buffer":1, - "byteOffset":804, - "byteLength":696, - "target":34962 - }, - { - "buffer":2, - "byteOffset":0, - "byteLength":36, - "target":34963 - }, - { - "buffer":2, - "byteOffset":36, - "byteLength":96, - "target":34962 - }], - "materials":[{ - "pbrMetallicRoughness":{ - "baseColorFactor":[0.8, - 0.8, - 0.8, - 1.0], - "metallicFactor":0.0, - "roughnessFactor":0.5 - }, - "emissiveFactor":[0.0, - 0.0, - 0.0], - "alphaMode":"OPAQUE", - "doubleSided":true, - "name":"cccbox" - }, - { - "pbrMetallicRoughness":{ - "baseColorFactor":[0.5, - 0.5, - 0.5, - 1.0], - "metallicFactor":0.0, - "roughnessFactor":0.5 - }, - "emissiveFactor":[0.0, - 0.0, - 0.0], - "alphaMode":"OPAQUE", - "doubleSided":true, - "name":"cccjiegou" - }, - { - "pbrMetallicRoughness":{ - "baseColorFactor":[0.5, - 0.5, - 0.5, - 0.44999999999999998], - "metallicFactor":0.0, - "roughnessFactor":0.5 - }, - "emissiveFactor":[0.0, - 0.0, - 0.0], - "alphaMode":"BLEND", - "doubleSided":true, - "name":"ccaboli" - }] -} \ No newline at end of file diff --git a/public/static/img/elevator.gltf b/public/static/img/elevator.gltf deleted file mode 100644 index fdfbdd4..0000000 --- a/public/static/img/elevator.gltf +++ /dev/null @@ -1,279 +0,0 @@ -{ - "asset":{ - "version":"2.0", - "generator":"Created using the official Cinema 4D glTF Exporter 1.000x284978" - }, - "buffers":[{ - "uri":"data:application/octet-stream;base64,+gH7AZ8C+QGrAJ4C+AGqAJ0CqACpAJwCnwJMAZsCngJPAZoCnQJOAZkCnAJNAZgCmwJIAZcCmgJLAZYCmQJKAZUCmAJJAZQClwJEAZMClgJHAZIClQJGAZEClAJFAZACkwJAAY8CkgJDAY4CkQJCAY0CkAJBAYwCjwI8AYsCjgI/AYoCjQI+AYkCjAI9AYgCiwI4AYcCigI7AYYCiQI6AYUCiAI5AYQChwI0AYMChgI3AYIChQI2AYEChAI1AYACgwIwAX8CggIzAX4CgQIyAX0CgAIxAXwCfwIsAXsCfgIvAXoCfQIuAXkCfAItAXgCewIoAXcCegIrAXYCeQIqAXUCeAIpAXQCdwIkAXMCdgInAXICdQImAXECdAIlAXACcwIgAW8CcgIjAW4CcQIiAW0CcAIhAWwCbwIcAWsCbgIfAWoCbQIeAWkCbAIdAWgCawIYAWcCagIbAWYCaQIaAWUCaAIZAWQCZwIUAWMCZgIXAWICZQIWAWECZAIVAWACYwIQAV8CYgITAV4CYQISAV0CYAIRAVwCXwIMAVsCXgIPAVoCXQIOAVkCXAINAVgCWwIIAVcCWgILAVYCWQIKAVUCWAIJAVQCVwIEAVMCVgIHAVICVQIGAVECVAIFAVACUwIAAU8CUgIDAU4CUQICAU0CUAIBAUwCTwL8AEsCTgL/AEoCTQL+AEkCTAL9AEgCSwL4AEcCSgL7AEYCSQL6AEUCSAL5AEQCRwL0AEMCRgL3AEICRQL2AEECRAL1AEACQwLwAD8CQgLzAD4CQQLyAD0CQALxADwCPwLsADsCPgLvADoCPQLuADkCPALtADgCOwLoADcCOgLrADYCOQLqADUCOALpADQCNwLkADMCNgLnADICNQLmADECNALlADACMwLgAC8CMgLjAC4CMQLiAC0CMALhACwCLwLcACsCLgLfACoCLQLeACkCLALdACgCKwLYACcCKgLbACYCKQLaACUCKALZACQCJwLUACMCJgLXACICJQLWACECJALVACACIwLQAB8CIgLTAB4CIQLSAB0CIALRABwCHwLMABsCHgLPABoCHQLOABkCHALNABgCGwLIABcCGgLLABYCGQLKABUCGALJABQCFwLEABMCFgLHABICFQLGABECFALFABACEwLAAA8CEgLDAA4CEQLCAA0CEALBAAwCDwK8AAsCDgK/AAoCDQK+AAkCDAK9AAgCCwK4AAcCCgK7AAYCCQK6AAUCCAK5AAQCBwK0AAMCBgK3AAICBQK2AAECBAK1AAACAwKwAP8BAgKzAP4BAQKyAP0BAAKxAPwB/wGsAPoB/gGvAPkB/QGuAPgB/AGtAKgAUgFTAfcBUQEDAPYBUAECAPUBAAABAPQB9wGkAPMB9gGnAPIB9QGmAPEB9AGlAPAB8wGgAO8B8gGjAO4B8QGiAO0B8AGhAOwB7wGcAOsB7gGfAOoB7QGeAOkB7AGdAOgB6wGYAOcB6gGbAOYB6QGaAOUB6AGZAOQB5wGUAOMB5gGXAOIB5QGWAOEB5AGVAOAB4wGQAN8B4gGTAN4B4QGSAN0B4AGRANwB3wGMANsB3gGPANoB3QGOANkB3AGNANgB2wGIANcB2gGLANYB2QGKANUB2AGJANQB1wGEANMB1gGHANIB1QGGANEB1AGFANAB0wGAAM8B0gGDAM4B0QGCAM0B0AGBAMwBzwF8AMsBzgF/AMoBzQF+AMkBzAF9AMgBywF4AMcBygF7AMYByQF6AMUByAF5AMQBxwF0AMMBxgF3AMIBxQF2AMEBxAF1AMABwwFwAL8BwgFzAL4BwQFyAL0BwAFxALwBvwFsALsBvgFvALoBvQFuALkBvAFtALgBuwFoALcBugFrALYBuQFqALUBuAFpALQBtwFkALMBtgFnALIBtQFmALEBtAFlALABswFgAK8BsgFjAK4BsQFiAK0BsAFhAKwBrwFcAKsBrgFfAKoBrQFeAKkBrAFdAKgBqwFYAKcBqgFbAKYBqQFaAKUBqAFZAKQBpwFUAKMBpgFXAKIBpQFWAKEBpAFVAKABowFQAJ8BogFTAJ4BoQFSAJ0BoAFRAJwBnwFMAJsBngFPAJoBnQFOAJkBnAFNAJgBmwFIAJcBmgFLAJYBmQFKAJUBmAFJAJQBlwFEAJMBlgFHAJIBlQFGAJEBlAFFAJABkwFAAI8BkgFDAI4BkQFCAI0BkAFBAIwBjwE8AIsBjgE/AIoBjQE+AIkBjAE9AIgBiwE4AIcBigE7AIYBiQE6AIUBiAE5AIQBhwE0AIMBhgE3AIIBhQE2AIEBhAE1AIABgwEwAH8BggEzAH4BgQEyAH0BgAExAHwBfwEsAHsBfgEvAHoBfQEuAHkBfAEtAHgBewEoAHcBegErAHYBeQEqAHUBeAEpAHQBdwEkAHMBdgEnAHIBdQEmAHEBdAElAHABcwEgAG8BcgEjAG4BcQEiAG0BcAEhAGwBbwEcAGsBbgEfAGoBbQEeAGkBbAEdAGgBawEYAGcBagEbAGYBaQEaAGUBaAEZAGQBZwEUAGMBZgEXAGIBZQEWAGEBZAEVAGABYwEQAF8BYgETAF4BYQESAF0BYAERAFwBXwEMAFsBXgEPAFoBXQEOAFkBXAENAFgBWwEIAFcBWgELAFYBWQEKAFUBWAEJAFQBVwEEAFIBVgEHAFEBVQEGAFABVAEFAAAA+wFMAZ8CqwBPAZ4CqgBOAZ0CqQBNAZwCTAFIAZsCTwFLAZoCTgFKAZkCTQFJAZgCSAFEAZcCSwFHAZYCSgFGAZUCSQFFAZQCRAFAAZMCRwFDAZICRgFCAZECRQFBAZACQAE8AY8CQwE/AY4CQgE+AY0CQQE9AYwCPAE4AYsCPwE7AYoCPgE6AYkCPQE5AYgCOAE0AYcCOwE3AYYCOgE2AYUCOQE1AYQCNAEwAYMCNwEzAYICNgEyAYECNQExAYACMAEsAX8CMwEvAX4CMgEuAX0CMQEtAXwCLAEoAXsCLwErAXoCLgEqAXkCLQEpAXgCKAEkAXcCKwEnAXYCKgEmAXUCKQElAXQCJAEgAXMCJwEjAXICJgEiAXECJQEhAXACIAEcAW8CIwEfAW4CIgEeAW0CIQEdAWwCHAEYAWsCHwEbAWoCHgEaAWkCHQEZAWgCGAEUAWcCGwEXAWYCGgEWAWUCGQEVAWQCFAEQAWMCFwETAWICFgESAWECFQERAWACEAEMAV8CEwEPAV4CEgEOAV0CEQENAVwCDAEIAVsCDwELAVoCDgEKAVkCDQEJAVgCCAEEAVcCCwEHAVYCCgEGAVUCCQEFAVQCBAEAAVMCBwEDAVICBgECAVECBQEBAVACAAH8AE8CAwH/AE4CAgH+AE0CAQH9AEwC/AD4AEsC/wD7AEoC/gD6AEkC/QD5AEgC+AD0AEcC+wD3AEYC+gD2AEUC+QD1AEQC9ADwAEMC9wDzAEIC9gDyAEEC9QDxAEAC8ADsAD8C8wDvAD4C8gDuAD0C8QDtADwC7ADoADsC7wDrADoC7gDqADkC7QDpADgC6ADkADcC6wDnADYC6gDmADUC6QDlADQC5ADgADMC5wDjADIC5gDiADEC5QDhADAC4ADcAC8C4wDfAC4C4gDeAC0C4QDdACwC3ADYACsC3wDbACoC3gDaACkC3QDZACgC2ADUACcC2wDXACYC2gDWACUC2QDVACQC1ADQACMC1wDTACIC1gDSACEC1QDRACAC0ADMAB8C0wDPAB4C0gDOAB0C0QDNABwCzADIABsCzwDLABoCzgDKABkCzQDJABgCyADEABcCywDHABYCygDGABUCyQDFABQCxADAABMCxwDDABICxgDCABECxQDBABACwAC8AA8CwwC/AA4CwgC+AA0CwQC9AAwCvAC4AAsCvwC7AAoCvgC6AAkCvQC5AAgCuAC0AAcCuwC3AAYCugC2AAUCuQC1AAQCtACwAAMCtwCzAAICtgCyAAECtQCxAAACsACsAP8BswCvAP4BsgCuAP0BsQCtAPwBrAD7AfoBrwCrAPkBrgCqAPgBrQCpAKgAUwGkAPcBAwCnAPYBAgCmAPUBAQClAPQBpACgAPMBpwCjAPIBpgCiAPEBpQChAPABoACcAO8BowCfAO4BogCeAO0BoQCdAOwBnACYAOsBnwCbAOoBngCaAOkBnQCZAOgBmACUAOcBmwCXAOYBmgCWAOUBmQCVAOQBlACQAOMBlwCTAOIBlgCSAOEBlQCRAOABkACMAN8BkwCPAN4BkgCOAN0BkQCNANwBjACIANsBjwCLANoBjgCKANkBjQCJANgBiACEANcBiwCHANYBigCGANUBiQCFANQBhACAANMBhwCDANIBhgCCANEBhQCBANABgAB8AM8BgwB/AM4BggB+AM0BgQB9AMwBfAB4AMsBfwB7AMoBfgB6AMkBfQB5AMgBeAB0AMcBewB3AMYBegB2AMUBeQB1AMQBdABwAMMBdwBzAMIBdgByAMEBdQBxAMABcABsAL8BcwBvAL4BcgBuAL0BcQBtALwBbABoALsBbwBrALoBbgBqALkBbQBpALgBaABkALcBawBnALYBagBmALUBaQBlALQBZABgALMBZwBjALIBZgBiALEBZQBhALABYABcAK8BYwBfAK4BYgBeAK0BYQBdAKwBXABYAKsBXwBbAKoBXgBaAKkBXQBZAKgBWABUAKcBWwBXAKYBWgBWAKUBWQBVAKQBVABQAKMBVwBTAKIBVgBSAKEBVQBRAKABUABMAJ8BUwBPAJ4BUgBOAJ0BUQBNAJwBTABIAJsBTwBLAJoBTgBKAJkBTQBJAJgB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", - "byteLength":20160 - }, - { - "uri":"data:application/octet-stream;base64,XABeAGUAZQBjAGYAXgBdAGMAYwBnAGQAZgBkAF8AZABiAGAAVABTAFcAVwBbAFgAUABUAFkAWQBXAFoAWABWAFIAWgBYAFEAXABTAF4AXgBUAF0AVQA7AFIAQgBfAE0ATQBgAE4AUgA0AFEALwAqADEAMAAvADIAMwApAC8ALgAzADAALAAwACsALQAuACwAJwAfACMAIgAnACQAIwAgACUAJAAjACYAIQAiAB4AHgAkAB0AIAAfACoAHAAgACkAAAAHAB4ALAArABkALQAsABoAEwAAAB0AXgBjAGUAYwBkAGYAXQBnAGMAZwBiAGQAZABgAF8AYgBhAGAAUwBbAFcAWwBWAFgAVABXAFkAVwBYAFoAVgBVAFIAWABSAFEAUwBUAF4AVABQAF0AOwA0AFIAXwBgAE0AYABhAE4ANABHAFEANAA1AEwANABMAEsANABLAEoANABKAEkANABJAEgANABIAEcATQBOAE8ATQBPAEYATQBGAEUATQBFAEQATQBEAEMATQBDADwATQBBAEIATQBAAEEATQA/AEAATQA+AD8ATQA9AD4ATQA8AD0ANAA7ADoANAA6ADkANAA5ADgANAA4ADcANAA3ADYANAA2ADUAKgAoADEALwAxADIAKQAqAC8AMwAvADAAMAAyACsALgAwACwAHwAgACMAJwAjACQAIAAcACUAIwAlACYAIgAkAB4AJAAmAB0AHwAoACoAIAAqACkABwAhAB4AKwAOABkALAAZABoAAAAeAB0AAQAAABgAGAAAABcAFwAAABYAFgAAABUAFQAAABQAFAAAABMAGgAZABsAGwAZABIAEgAZABEAEQAZABAAEAAZAA8ADwAZAAgADQAZAA4ADAAZAA0ACwAZAAwACgAZAAsACQAZAAoACAAZAAkABwAAAAYABgAAAAUABQAAAAQABAAAAAMAAwAAAAIAAgAAAAEAmhwZP4YGrr/Y/1RAnBwZP4UGrr82tm9AnBwZP1Lau780zW5AmxwZP+S8yL8LImxAmxwZP3HN079M42dAmxwZP+5K3L8HW2JAmhwZPz6h4b++6VtAmhwZP0Rz47/Y/1RAfBwZP4UGrj82tm/AfBwZP7cyoD80zW7AfBwZPyVQkz8LImzAfBwZP5o/iD9M42fAfRwZPzqEfz8HW2LAfRwZP5rXdD++6VvAfhwZP48zcT/X/1TAfBwZP1Lauz80zW7AfBwZP+O8yD8LImzAfBwZP3DN0z9M42fAfRwZP+5K3D8HW2LAmhwZP48zcb/X/1RAmhwZP5rXdL++6VtAmxwZPzqEf78HW2JAmxwZP5o/iL9M42dAmxwZPyZQk78LImxAnBwZP7gyoL80zW5AfhwZP4UGrj/Y/1TAfhwZP0Rz4z/Y/1TAfRwZPz2h4T++6VvAlBwZPx4KUb+sdPs/lhwZP5Izcb+8oBZAlRwZP4cGrr/sug9AkxwZP1S8079oKOA/lBwZP/Ucnr/pmu0/lRwZP0Zz4799CQlAlBwZPz2r4b9LYABAlBwZP4DOpr8yLf0/lRwZP4Y4rL/gEQdAlRwZP62aYr/WfQVAlRwZP1mNbb+u9w1AlBwZPyVT3L/uxu8/hBwZP5EGUz8vB/C/hRwZP8Pz0z9qycW/hBwZP5i4nj+bgdq/ghwZP5EzcT+iIhHAgxwZP4cGrj/YUAbAgxwZP0Zz4z+Hzve/hBwZPxix4T8DAua/hBwZPxsVpz+8uum/gxwZPyxKrD/SyPq/gxwZP9CEYz96Sf+/gxwZP+HHbT/ELwjAhRwZP41q3D8m+9S/fhwZv4YGrr/Y/1RAfBwZv4UGrr82tm9AfBwZv1Lau780zW5AfBwZv+S8yL8LImxAfBwZv3HN079M42dAfRwZv+5K3L8HW2JAfRwZvz6h4b++6VtAfhwZv0Rz47/Y/1RAnBwZv4UGrj82tm/AnBwZv7cyoD80zW7AmxwZvyVQkz8LImzAmxwZv5o/iD9M42fAmxwZvzqEfz8HW2LAmhwZv5rXdD++6VvAmhwZv48zcT/X/1TAnBwZv1Lauz80zW7AmxwZv+O8yD8LImzAmxwZv3DN0z9M42fAmxwZv+5K3D8HW2LAfhwZv48zcb/X/1RAfRwZv5rXdL++6VtAfRwZvzqEf78HW2JAfBwZv5o/iL9M42dAfBwZvyZQk78LImxAfBwZv7gyoL80zW5AmhwZv4UGrj/Y/1TAmhwZv0Rz4z/Y/1TAmhwZvz2h4T++6VvAgxwZvx4KUb+sdPs/ghwZv5Izcb+8oBZAghwZv4cGrr/sug9AhBwZv1S8079oKOA/hBwZv/Ucnr/pmu0/gxwZv0Zz4799CQlAgxwZvz2r4b9LYABAgxwZv4DOpr8yLf0/gxwZv4Y4rL/gEQdAgxwZv62aYr/WfQVAghwZv1mNbb+u9w1AhBwZvyVT3L/uxu8/lBwZv5EGUz8vB/C/khwZv8Pz0z9qycW/kxwZv5i4nj+bgdq/lRwZv5EzcT+iIhHAlRwZv4cGrj/YUAbAlBwZv0Zz4z+Hzve/kxwZvxix4T8DAua/kxwZvxsVpz+8uum/lBwZvyxKrD/SyPq/lBwZv9CEYz96Sf+/lRwZv+HHbT/ELwjAkxwZv41q3D8m+9S/", - "byteLength":1968 - }, - { - "uri":"data:application/octet-stream;base64,8wJeAlwC8gJbAlkC8QIkAVgC8AInAVcC7wImAVYC7gIlAVUCWAIgAVQCVwIjAVMCVgIiAVICVQIhAVECVAIcAVACUwIfAU8CUgIeAU4CUQIdAU0CUAIYAUwCTwIbAUsCTgIaAUoCTQIZAUkCTAIUAUgCSwIXAUcCSgIWAUYCSQIVAUUCSAIQAUQCRwITAUMCRgISAUICRQIRAUECRAIMAUACQwIPAT8CQgIOAT4CQQINAT0CQAIIATwCPwILATsCPgIKAToCPQIJATkCPAIEATcCOwIHATYCOgIGATUCOQIFAQAB7QI0AjIC7AIxAi8C6wIuAiwC6gIrAvoA6QL7APgA6AL5APYA5wL3APQA5gInAiUC5QIkAiIC5AIhAvIA4wLzAPAA4gLxAO4A4QLvAOwA4AIdAhsC3wIaAhgC3gIXAuoA3QLrAOgA3ALpAOYA2wLnAOQA2gITAhEC2QIQAg4C2AINAuIA1wLjAOAA1gLhAN4A1QLfANwA1AIJAgcC0wIGAgQC0gIDAtoA0QLbANgA0ALZANYAzwLXANQAzgL/Af0BzQL8AfoBzAL5AdIAywLTANAAygLRAM4AyQLPAMwAyAL1AfMBxwLyAfABxgLvAcoAxQLLAMgAxALJAMYAwwLHAMQAwgLrAekBwQLoAeYBwALlAcIAvwLDAMAAvgLBAL4AvQK/ALwAvALhAd8BuwLeAdwBugLbAboAuQK7ALgAuAK5ALYAtwK3ALQAtgLXAdUBtQLUAdIBtALRAbIAswKzALAAsgKxAK4AsQKvAKwAsALNAcsBrwLKAcgBrgLHAaoArQKrAKgArAKpAKYAqwKnAKQAqgLDAcEBqQLAAb4BqAK9AaIApwKjAKAApgKhAJ4ApQKfAJwApAK5AbcBowK2AbQBogKzAZoAoQKbAJgAoAKZAJYAnwKXAJQAngKOAK4BnQKtAasBnAKqAZIAmwKTAJAAmgKoAaYBmQKPAIwAmAKlAaMBlwKiAaABlgKfAYoAlQKLAIgAlAKJAIYAkwKHAIQAkgKbAZkBkQKYAZYBkAKVAYIAjwKDAIAAjgKBAH4AjQJ/AHwAjAKRAY8BiwKOAYwBigKLAXoAiQJ7AHgAiAJ5AHYAhwJ3AHQAhgKHAYUBhQKEAW8AhAKCAYABgwJ/AX0BggJ8AS8AgQJ6AXMAgAJ5AXgBfwJ3AXUBfgJ0AXMBfQJyAUoAfAJwAW4BewI4ADYAegJtAWwBeQJrAWkBeAJoAWIAdwJmAWAAdgJhAF4AdQJkASoAWgBbAEgAWQBaAEcAWABZAEYAVwBYAEUAVgBXAEQAVQBWAEMAVABVAEIAdAJUAGMBUgBTAEAAUQBSAD8AUABRAD4ATwBQAD0ATgBPADwATQBOADsATABNADoASwBMADkAcwJiAWABcgJfAXEAcQJeAVwBcAI0ACwAbwIpAGsAbgJnAFkBbQJuAC0AbAJYAWkAawJWAWMAagIuAG0AaQL9ADEAaAJoAFMBZwIwADMAZgIyAP4AZQJkAGYAZAJRAU8BYwJOAUwBYgIkAEsBYQInAEoBYAImAEkBXwIlAEgBSwEgAEcBSgEjAEYBSQEiAEUBSAEhAEQBRwEcAEMBRgEfAEIBRQEeAEEBRAEdAEABQwEYAD8BQgEbAD4BQQEaAD0BQAEZADwBPwEUADsBPgEXADoBPQEWADkBPAEVADgBOwEQADcBOgETADYBOQESADUBOAERADQBNwEMADMBNgEPADIBNQEOADEBNAENADABMwEIAC8BMgELAC4BMQEKAC0BMAEJACwBLwEEACoBLgEHACkBLQEGACgBLAEFAAAAXgJdAlwCWwJaAlkCJAEgAVgCJwEjAVcCJgEiAVYCJQEhAVUCIAEcAVQCIwEfAVMCIgEeAVICIQEdAVECHAEYAVACHwEbAU8CHgEaAU4CHQEZAU0CGAEUAUwCGwEXAUsCGgEWAUoCGQEVAUkCFAEQAUgCFwETAUcCFgESAUYCFQERAUUCEAEMAUQCEwEPAUMCEgEOAUICEQENAUECDAEIAUACDwELAT8CDgEKAT4CDQEJAT0CCAEEATwCCwEHATsCCgEGAToCCQEFATkCBAE4AjcCBwEDATYCBgECATUCBQEBAQABNAIzAjICMQIwAi8CLgItAiwCKwIqAvoA+wApAvgA+QAoAvYA9wD1APQAJwImAiUCJAIjAiICIQIgAvIA8wAfAvAA8QAeAu4A7wDtAOwAHQIcAhsCGgIZAhgCFwIWAuoA6wAVAugA6QAUAuYA5wDlAOQAEwISAhECEAIPAg4CDQIMAuIA4wALAuAA4QAKAt4A3wDdANwACQIIAgcCBgIFAgQCAwICAtoA2wABAtgA2QAAAtYA1wDVANQA/wH+Af0B/AH7AfoB+QH4AdIA0wD3AdAA0QD2Ac4AzwDNAMwA9QH0AfMB8gHxAfAB7wHuAcoAywDtAcgAyQDsAcYAxwDFAMQA6wHqAekB6AHnAeYB5QHkAcIAwwDjAcAAwQDiAb4AvwC9ALwA4QHgAd8B3gHdAdwB2wHaAboAuwDZAbgAuQDYAbYAtwC1ALQA1wHWAdUB1AHTAdIB0QHQAbIAswDPAbAAsQDOAa4ArwCtAKwAzQHMAcsBygHJAcgBxwHGAaoAqwDFAagAqQDEAaYApwClAKQAwwHCAcEBwAG/Ab4BvQG8AaIAowC7AaAAoQC6AZ4AnwCdAJwAuQG4AbcBtgG1AbQBswGyAZoAmwCxAZgAmQCwAZYAlwCVAJQAjgCvAa4BrQGsAasBqgGpAZIAkwCRAJAAqAGnAaYBjwCNAIwApQGkAaMBogGhAaABnwGeAYoAiwCdAYgAiQCcAYYAhwCFAIQAmwGaAZkBmAGXAZYBlQGUAYIAgwCTAYAAgQCSAX4AfwB9AHwAkQGQAY8BjgGNAYwBiwGKAXoAewCJAXgAeQCIAXYAdwB1AHQAhwGGAYUBhAGDAW8AggGBAYABfwF+AX0BfAF7AS8AegFyAHMAeQH8AHgBdwF2AXUBdAEoAHMBcgFxAUoAcAFvAW4BOABqADYAbQFcAGwBawFqAWkBaAFnAWIAZgFlAWAAYQBfAF4AZAE1ACoAWwBJAEgAWgBIAEcAWQBHAEYAWABGAEUAVwBFAEQAVgBEAEMAVQBDAEIAVABCAGMBUwBBAEAAUgBAAD8AUQA/AD4AUAA+AD0ATwA9ADwATgA8ADsATQA7ADoATAA6ADkAYgFhAWABXwFwAHEAXgFdAVwBNABbASwAKQA3AGsAZwBaAVkBbgArAC0AWAFXAWkAVgFdAGMALgBsAG0A/QBVATEAaABUAVMBMABSATMAMgD/AP4AZABlAGYAUQFQAU8BTgFNAUwBJAAgAEsBJwAjAEoBJgAiAEkBJQAhAEgBIAAcAEcBIwAfAEYBIgAeAEUBIQAdAEQBHAAYAEMBHwAbAEIBHgAaAEEBHQAZAEABGAAUAD8BGwAXAD4BGgAWAD0BGQAVADwBFAAQADsBFwATADoBFgASADkBFQARADgBEAAMADcBEwAPADYBEgAOADUBEQANADQBDAAIADMBDwALADIBDgAKADEBDQAJADABCAAEAC8BCwAHAC4B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", - "byteLength":20880 - }], - "scenes":[{ - "nodes":[0] - }], - "nodes":[{ - "name":"up", - "children":[1, - 2, - 3] - }, - { - "name":"pidai", - "translation":[0.0001472473086323589, - 1.9334725141525269, - -2.892932176589966], - "rotation":[0.0, - 0.0, - 0.0, - -1.0], - "scale":[1.0, - 1.0, - 1.0], - "mesh":0 - }, - { - "name":"boli.2", - "translation":[-0.0021953026298433544, - 1.9334725141525269, - -2.892932176589966], - "rotation":[0.0, - 0.0, - 0.0, - -1.0], - "scale":[1.0, - 1.0, - 1.0], - "mesh":1 - }, - { - "name":"taijie", - "translation":[0.0001472473086323589, - 1.2775051593780518, - -2.8976380825042726], - "rotation":[0.0, - 0.0, - 0.0, - -1.0], - "scale":[1.0, - 1.0, - 1.0], - "mesh":2 - }], - "meshes":[{ - "name":"pidai", - "primitives":[{ - "attributes":{ - "POSITION":1, - "NORMAL":2 - }, - "indices":0, - "material":0 - }] - }, - { - "name":"boli.2", - "primitives":[{ - "attributes":{ - "POSITION":4 - }, - "indices":3, - "material":1 - }] - }, - { - "name":"taijie", - "primitives":[{ - "attributes":{ - "POSITION":6, - "NORMAL":7 - }, - "indices":5, - "material":2 - }] - }], - "accessors":[{ - "bufferView":0, - "type":"SCALAR", - "componentType":5123, - "count":2016, - "byteOffset":0, - "min":[0], - "max":[671] - }, - { - "bufferView":1, - "type":"VEC3", - "componentType":5126, - "count":672, - "byteOffset":0, - "min":[-0.6559910774230957, - -1.8233308792114258, - -3.7922720909118654], - "max":[0.6559910774230957, - 1.8233308792114258, - 3.7922720909118654] - }, - { - "bufferView":1, - "type":"VEC3", - "componentType":5126, - "count":672, - "byteOffset":12, - "min":[-1.0, - -0.9994961023330689, - -0.9990384578704834], - "max":[1.0, - 0.9994961023330689, - 0.999038577079773] - }, - { - "bufferView":2, - "type":"SCALAR", - "componentType":5123, - "count":360, - "byteOffset":0, - "min":[0], - "max":[103] - }, - { - "bufferView":3, - "type":"VEC3", - "componentType":5126, - "count":104, - "byteOffset":0, - "min":[-0.598092794418335, - -1.7769553661346436, - -3.7454962730407717], - "max":[0.598092794418335, - 1.7769553661346436, - 3.7454962730407717] - }, - { - "bufferView":4, - "type":"SCALAR", - "componentType":5123, - "count":1368, - "byteOffset":0, - "min":[0], - "max":[755] - }, - { - "bufferView":5, - "type":"VEC3", - "componentType":5126, - "count":756, - "byteOffset":0, - "min":[-0.6930915117263794, - -1.6388731002807618, - -3.4443981647491457], - "max":[0.6930915117263794, - 1.6388731002807618, - 3.4443981647491457] - }, - { - "bufferView":5, - "type":"VEC3", - "componentType":5126, - "count":756, - "byteOffset":12, - "min":[-1.0, - -1.0, - -1.0], - "max":[1.0, - 1.0, - 1.0] - }], - "bufferViews":[{ - "buffer":0, - "byteOffset":0, - "byteLength":4032, - "target":34963 - }, - { - "buffer":0, - "byteOffset":4032, - "byteLength":16128, - "target":34962, - "byteStride":24 - }, - { - "buffer":1, - "byteOffset":0, - "byteLength":720, - "target":34963 - }, - { - "buffer":1, - "byteOffset":720, - "byteLength":1248, - "target":34962 - }, - { - "buffer":2, - "byteOffset":0, - "byteLength":2736, - "target":34963 - }, - { - "buffer":2, - "byteOffset":2736, - "byteLength":18144, - "target":34962, - "byteStride":24 - }], - "materials":[{ - "pbrMetallicRoughness":{ - "baseColorFactor":[0.5, - 0.5, - 0.5, - 1.0], - "metallicFactor":0.0, - "roughnessFactor":0.5 - }, - "emissiveFactor":[0.0, - 0.0, - 0.0], - "alphaMode":"OPAQUE", - "doubleSided":true, - "name":"cccjiegou" - }, - { - "pbrMetallicRoughness":{ - "baseColorFactor":[0.5, - 0.5, - 0.5, - 0.5], - "metallicFactor":0.0, - "roughnessFactor":0.5 - }, - "emissiveFactor":[0.0, - 0.0, - 0.0], - "alphaMode":"BLEND", - "doubleSided":true, - "name":"cccboli" - }, - { - "pbrMetallicRoughness":{ - "baseColorFactor":[0.8, - 0.8, - 0.8, - 1.0], - "metallicFactor":0.0, - "roughnessFactor":0.5 - }, - "emissiveFactor":[0.0, - 0.0, - 0.0], - "alphaMode":"OPAQUE", - "doubleSided":true, - "name":"cccbox" - }] -} \ No newline at end of file diff --git a/public/static/img/elevatorDown.gltf b/public/static/img/elevatorDown.gltf deleted file mode 100644 index 8a524d4..0000000 --- a/public/static/img/elevatorDown.gltf +++ /dev/null @@ -1,275 +0,0 @@ -{ - "asset":{ - "version":"2.0", - "generator":"Created using the official Cinema 4D glTF Exporter 1.000x284978" - }, - "scenes":[{ - "nodes":[0, - 1, - 2] - }], - "nodes":[{ - "name":"taijie", - "translation":[-0.00007362365431617945, - -0.7365407943725586, - -1.399475336074829], - "rotation":[0.0, - 0.0, - 0.0, - -1.0], - "scale":[1.0, - 1.0, - 1.0], - "mesh":0 - }, - { - "name":"boli.1", - "translation":[0.0010976513149216772, - -0.40855708718299868, - -1.401828408241272], - "rotation":[0.0, - 0.0, - 0.0, - -1.0], - "scale":[1.0, - 1.0, - 1.0], - "mesh":1 - }, - { - "name":"pidai", - "translation":[-0.00007362365431617945, - -0.40855708718299868, - -1.401828408241272], - "rotation":[0.0, - 0.0, - 0.0, - -1.0], - "scale":[1.0, - 1.0, - 1.0], - "mesh":2 - }], - "meshes":[{ - "name":"taijie", - "primitives":[{ - "attributes":{ - "POSITION":1, - "NORMAL":2 - }, - "indices":0, - "material":0 - }] - }, - { - "name":"boli.1", - "primitives":[{ - "attributes":{ - "POSITION":4 - }, - "indices":3, - "material":1 - }] - }, - { - "name":"pidai", - "primitives":[{ - "attributes":{ - "POSITION":6, - "NORMAL":7 - }, - "indices":5, - "material":2 - }] - }], - "accessors":[{ - "bufferView":0, - "byteOffset":0, - "type":"SCALAR", - "componentType":5123, - "count":1368, - "min":[0], - "max":[755] - }, - { - "bufferView":1, - "byteOffset":0, - "type":"VEC3", - "componentType":5126, - "count":756, - "min":[-0.6931651830673218, - -2.3754141330718996, - -4.843873023986816], - "max":[0.6930178999900818, - 0.902332603931427, - 2.0449225902557375] - }, - { - "bufferView":1, - "byteOffset":12, - "type":"VEC3", - "componentType":5126, - "count":756, - "min":[-1.0, - -1.0, - -1.0], - "max":[1.0, - 1.0, - 1.0] - }, - { - "bufferView":2, - "byteOffset":0, - "type":"SCALAR", - "componentType":5123, - "count":360, - "min":[0], - "max":[103] - }, - { - "bufferView":3, - "byteOffset":0, - "type":"VEC3", - "componentType":5126, - "count":104, - "min":[-0.5969951152801514, - -2.1855127811431886, - -5.147324562072754], - "max":[0.5991904139518738, - 1.3683985471725464, - 2.34366774559021] - }, - { - "bufferView":4, - "byteOffset":0, - "type":"SCALAR", - "componentType":5123, - "count":2016, - "min":[0], - "max":[671] - }, - { - "bufferView":5, - "byteOffset":0, - "type":"VEC3", - "componentType":5126, - "count":672, - "min":[-0.6560646891593933, - -2.2318882942199709, - -5.194100379943848], - "max":[0.6559174656867981, - 1.4147741794586182, - 2.3904435634613039] - }, - { - "bufferView":5, - "byteOffset":12, - "type":"VEC3", - "componentType":5126, - "count":672, - "min":[-1.0, - -0.9994961023330689, - -0.9990384578704834], - "max":[1.0, - 0.9994961023330689, - 0.9990384578704834] - }], - "bufferViews":[{ - "target":34963, - "byteOffset":0, - "buffer":0, - "byteLength":2736 - }, - { - "target":34962, - "byteOffset":2736, - "buffer":0, - "byteLength":18144, - "byteStride":24 - }, - { - "target":34963, - "byteOffset":0, - "buffer":1, - "byteLength":720 - }, - { - "target":34962, - "byteOffset":720, - "buffer":1, - "byteLength":1248 - }, - { - "target":34963, - "byteOffset":0, - "buffer":2, - "byteLength":4032 - }, - { - "target":34962, - "byteOffset":4032, - "buffer":2, - "byteLength":16128, - "byteStride":24 - }], - "buffers":[{ - "uri":"data:application/octet-stream;base64,8wJeAlwC8gJbAlkC8QIkAVgC8AInAVcC7wImAVYC7gIlAVUCWAIgAVQCVwIjAVMCVgIiAVICVQIhAVECVAIcAVACUwIfAU8CUgIeAU4CUQIdAU0CUAIYAUwCTwIbAUsCTgIaAUoCTQIZAUkCTAIUAUgCSwIXAUcCSgIWAUYCSQIVAUUCSAIQAUQCRwITAUMCRgISAUICRQIRAUECRAIMAUACQwIPAT8CQgIOAT4CQQINAT0CQAIIATwCPwILATsCPgIKAToCPQIJATkCPAIEATcCOwIHATYCOgIGATUCOQIFAQAB7QI0AjIC7AIxAi8C6wIuAiwC6gIrAvoA6QL7APgA6AL5APYA5wL3APQA5gInAiUC5QIkAiIC5AIhAvIA4wLzAPAA4gLxAO4A4QLvAOwA4AIdAhsC3wIaAhgC3gIXAuoA3QLrAOgA3ALpAOYA2wLnAOQA2gITAhEC2QIQAg4C2AINAuIA1wLjAOAA1gLhAN4A1QLfANwA1AIJAgcC0wIGAgQC0gIDAtoA0QLbANgA0ALZANYAzwLXANQAzgL/Af0BzQL8AfoBzAL5AdIAywLTANAAygLRAM4AyQLPAMwAyAL1AfMBxwLyAfABxgLvAcoAxQLLAMgAxALJAMYAwwLHAMQAwgLrAekBwQLoAeYBwALlAcIAvwLDAMAAvgLBAL4AvQK/ALwAvALhAd8BuwLeAdwBugLbAboAuQK7ALgAuAK5ALYAtwK3ALQAtgLXAdUBtQLUAdIBtALRAbIAswKzALAAsgKxAK4AsQKvAKwAsALNAcsBrwLKAcgBrgLHAaoArQKrAKgArAKpAKYAqwKnAKQAqgLDAcEBqQLAAb4BqAK9AaIApwKjAKAApgKhAJ4ApQKfAJwApAK5AbcBowK2AbQBogKzAZoAoQKbAJgAoAKZAJYAnwKXAJQAngKOAK4BnQKtAasBnAKqAZIAmwKTAJAAmgKoAaYBmQKPAIwAmAKlAaMBlwKiAaABlgKfAYoAlQKLAIgAlAKJAIYAkwKHAIQAkgKbAZkBkQKYAZYBkAKVAYIAjwKDAIAAjgKBAH4AjQJ/AHwAjAKRAY8BiwKOAYwBigKLAXoAiQJ7AHgAiAJ5AHYAhwJ3AHQAhgKHAYUBhQKEAW8AhAKCAYABgwJ/AX0BggJ8AS8AgQJ6AXMAgAJ5AXgBfwJ3AXUBfgJ0AXMBfQJyAUoAfAJwAW4BewI4ADYAegJtAWwBeQJrAWkBeAJoAWIAdwJmAWAAdgJhAF4AdQJkASoAWgBbAEgAWQBaAEcAWABZAEYAVwBYAEUAVgBXAEQAVQBWAEMAVABVAEIAdAJUAGMBUgBTAEAAUQBSAD8AUABRAD4ATwBQAD0ATgBPADwATQBOADsATABNADoASwBMADkAcwJiAWABcgJfAXEAcQJeAVwBcAI0ACwAbwIpAGsAbgJnAFkBbQJuAC0AbAJYAWkAawJWAWMAagIuAG0AaQL9ADEAaAJoAFMBZwIwADMAZgIyAP4AZQJkAGYAZAJRAU8BYwJOAUwBYgIkAEsBYQInAEoBYAImAEkBXwIlAEgBSwEgAEcBSgEjAEYBSQEiAEUBSAEhAEQBRwEcAEMBRgEfAEIBRQEeAEEBRAEdAEABQwEYAD8BQgEbAD4BQQEaAD0BQAEZADwBPwEUADsBPgEXADoBPQEWADkBPAEVADgBOwEQADcBOgETADYBOQESADUBOAERADQBNwEMADMBNgEPADIBNQEOADEBNAENADABMwEIAC8BMgELAC4BMQEKAC0BMAEJACwBLwEEACoBLgEHACkBLQEGACgBLAEFAAAAXgJdAlwCWwJaAlkCJAEgAVgCJwEjAVcCJgEiAVYCJQEhAVUCIAEcAVQCIwEfAVMCIgEeAVICIQEdAVECHAEYAVACHwEbAU8CHgEaAU4CHQEZAU0CGAEUAUwCGwEXAUsCGgEWAUoCGQEVAUkCFAEQAUgCFwETAUcCFgESAUYCFQERAUUCEAEMAUQCEwEPAUMCEgEOAUICEQENAUECDAEIAUACDwELAT8CDgEKAT4CDQEJAT0CCAEEATwCCwEHATsCCgEGAToCCQEFATkCBAE4AjcCBwEDATYCBgECATUCBQEBAQABNAIzAjICMQIwAi8CLgItAiwCKwIqAvoA+wApAvgA+QAoAvYA9wD1APQAJwImAiUCJAIjAiICIQIgAvIA8wAfAvAA8QAeAu4A7wDtAOwAHQIcAhsCGgIZAhgCFwIWAuoA6wAVAugA6QAUAuYA5wDlAOQAEwISAhECEAIPAg4CDQIMAuIA4wALAuAA4QAKAt4A3wDdANwACQIIAgcCBgIFAgQCAwICAtoA2wABAtgA2QAAAtYA1wDVANQA/wH+Af0B/AH7AfoB+QH4AdIA0wD3AdAA0QD2Ac4AzwDNAMwA9QH0AfMB8gHxAfAB7wHuAcoAywDtAcgAyQDsAcYAxwDFAMQA6wHqAekB6AHnAeYB5QHkAcIAwwDjAcAAwQDiAb4AvwC9ALwA4QHgAd8B3gHdAdwB2wHaAboAuwDZAbgAuQDYAbYAtwC1ALQA1wHWAdUB1AHTAdIB0QHQAbIAswDPAbAAsQDOAa4ArwCtAKwAzQHMAcsBygHJAcgBxwHGAaoAqwDFAagAqQDEAaYApwClAKQAwwHCAcEBwAG/Ab4BvQG8AaIAowC7AaAAoQC6AZ4AnwCdAJwAuQG4AbcBtgG1AbQBswGyAZoAmwCxAZgAmQCwAZYAlwCVAJQAjgCvAa4BrQGsAasBqgGpAZIAkwCRAJAAqAGnAaYBjwCNAIwApQGkAaMBogGhAaABnwGeAYoAiwCdAYgAiQCcAYYAhwCFAIQAmwGaAZkBmAGXAZYBlQGUAYIAgwCTAYAAgQCSAX4AfwB9AHwAkQGQAY8BjgGNAYwBiwGKAXoAewCJAXgAeQCIAXYAdwB1AHQAhwGGAYUBhAGDAW8AggGBAYABfwF+AX0BfAF7AS8AegFyAHMAeQH8AHgBdwF2AXUBdAEoAHMBcgFxAUoAcAFvAW4BOABqADYAbQFcAGwBawFqAWkBaAFnAWIAZgFlAWAAYQBfAF4AZAE1ACoAWwBJAEgAWgBIAEcAWQBHAEYAWABGAEUAVwBFAEQAVgBEAEMAVQBDAEIAVABCAGMBUwBBAEAAUgBAAD8AUQA/AD4AUAA+AD0ATwA9ADwATgA8ADsATQA7ADoATAA6ADkAYgFhAWABXwFwAHEAXgFdAVwBNABbASwAKQA3AGsAZwBaAVkBbgArAC0AWAFXAWkAVgFdAGMALgBsAG0A/QBVATEAaABUAVMBMABSATMAMgD/AP4AZABlAGYAUQFQAU8BTgFNAUwBJAAgAEsBJwAjAEoBJgAiAEkBJQAhAEgBIAAcAEcBIwAfAEYBIgAeAEUBIQAdAEQBHAAYAEMBHwAbAEIBHgAaAEEBHQAZAEABGAAUAD8BGwAXAD4BGgAWAD0BGQAVADwBFAAQADsBFwATADoBFgASADkBFQARADgBEAAMADcBEwAPADYBEgAOADUBEQANADQBDAAIADMBDwALADIBDgAKADEBDQAJADABCAAEAC8BCwAHAC4B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", - "byteLength":20880 - }, - { - "uri":"data:application/octet-stream;base64,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", - "byteLength":1968 - }, - { - "uri":"data:application/octet-stream;base64,+gH7AZ8C+QGrAJ4C+AGqAJ0CqACpAJwCnwJMAZsCngJPAZoCnQJOAZkCnAJNAZgCmwJIAZcCmgJLAZYCmQJKAZUCmAJJAZQClwJEAZMClgJHAZIClQJGAZEClAJFAZACkwJAAY8CkgJDAY4CkQJCAY0CkAJBAYwCjwI8AYsCjgI/AYoCjQI+AYkCjAI9AYgCiwI4AYcCigI7AYYCiQI6AYUCiAI5AYQChwI0AYMChgI3AYIChQI2AYEChAI1AYACgwIwAX8CggIzAX4CgQIyAX0CgAIxAXwCfwIsAXsCfgIvAXoCfQIuAXkCfAItAXgCewIoAXcCegIrAXYCeQIqAXUCeAIpAXQCdwIkAXMCdgInAXICdQImAXECdAIlAXACcwIgAW8CcgIjAW4CcQIiAW0CcAIhAWwCbwIcAWsCbgIfAWoCbQIeAWkCbAIdAWgCawIYAWcCagIbAWYCaQIaAWUCaAIZAWQCZwIUAWMCZgIXAWICZQIWAWECZAIVAWACYwIQAV8CYgITAV4CYQISAV0CYAIRAVwCXwIMAVsCXgIPAVoCXQIOAVkCXAINAVgCWwIIAVcCWgILAVYCWQIKAVUCWAIJAVQCVwIEAVMCVgIHAVICVQIGAVECVAIFAVACUwIAAU8CUgIDAU4CUQICAU0CUAIBAUwCTwL8AEsCTgL/AEoCTQL+AEkCTAL9AEgCSwL4AEcCSgL7AEYCSQL6AEUCSAL5AEQCRwL0AEMCRgL3AEICRQL2AEECRAL1AEACQwLwAD8CQgLzAD4CQQLyAD0CQALxADwCPwLsADsCPgLvADoCPQLuADkCPALtADgCOwLoADcCOgLrADYCOQLqADUCOALpADQCNwLkADMCNgLnADICNQLmADECNALlADACMwLgAC8CMgLjAC4CMQLiAC0CMALhACwCLwLcACsCLgLfACoCLQLeACkCLALdACgCKwLYACcCKgLbACYCKQLaACUCKALZACQCJwLUACMCJgLXACICJQLWACECJALVACACIwLQAB8CIgLTAB4CIQLSAB0CIALRABwCHwLMABsCHgLPABoCHQLOABkCHALNABgCGwLIABcCGgLLABYCGQLKABUCGALJABQCFwLEABMCFgLHABICFQLGABECFALFABACEwLAAA8CEgLDAA4CEQLCAA0CEALBAAwCDwK8AAsCDgK/AAoCDQK+AAkCDAK9AAgCCwK4AAcCCgK7AAYCCQK6AAUCCAK5AAQCBwK0AAMCBgK3AAICBQK2AAECBAK1AAACAwKwAP8BAgKzAP4BAQKyAP0BAAKxAPwB/wGsAPoB/gGvAPkB/QGuAPgB/AGtAKgAUgFTAfcBUQEDAPYBUAECAPUBAAABAPQB9wGkAPMB9gGnAPIB9QGmAPEB9AGlAPAB8wGgAO8B8gGjAO4B8QGiAO0B8AGhAOwB7wGcAOsB7gGfAOoB7QGeAOkB7AGdAOgB6wGYAOcB6gGbAOYB6QGaAOUB6AGZAOQB5wGUAOMB5gGXAOIB5QGWAOEB5AGVAOAB4wGQAN8B4gGTAN4B4QGSAN0B4AGRANwB3wGMANsB3gGPANoB3QGOANkB3AGNANgB2wGIANcB2gGLANYB2QGKANUB2AGJANQB1wGEANMB1gGHANIB1QGGANEB1AGFANAB0wGAAM8B0gGDAM4B0QGCAM0B0AGBAMwBzwF8AMsBzgF/AMoBzQF+AMkBzAF9AMgBywF4AMcBygF7AMYByQF6AMUByAF5AMQBxwF0AMMBxgF3AMIBxQF2AMEBxAF1AMABwwFwAL8BwgFzAL4BwQFyAL0BwAFxALwBvwFsALsBvgFvALoBvQFuALkBvAFtALgBuwFoALcBugFrALYBuQFqALUBuAFpALQBtwFkALMBtgFnALIBtQFmALEBtAFlALABswFgAK8BsgFjAK4BsQFiAK0BsAFhAKwBrwFcAKsBrgFfAKoBrQFeAKkBrAFdAKgBqwFYAKcBqgFbAKYBqQFaAKUBqAFZAKQBpwFUAKMBpgFXAKIBpQFWAKEBpAFVAKABowFQAJ8BogFTAJ4BoQFSAJ0BoAFRAJwBnwFMAJsBngFPAJoBnQFOAJkBnAFNAJgBmwFIAJcBmgFLAJYBmQFKAJUBmAFJAJQBlwFEAJMBlgFHAJIBlQFGAJEBlAFFAJABkwFAAI8BkgFDAI4BkQFCAI0BkAFBAIwBjwE8AIsBjgE/AIoBjQE+AIkBjAE9AIgBiwE4AIcBigE7AIYBiQE6AIUBiAE5AIQBhwE0AIMBhgE3AIIBhQE2AIEBhAE1AIABgwEwAH8BggEzAH4BgQEyAH0BgAExAHwBfwEsAHsBfgEvAHoBfQEuAHkBfAEtAHgBewEoAHcBegErAHYBeQEqAHUBeAEpAHQBdwEkAHMBdgEnAHIBdQEmAHEBdAElAHABcwEgAG8BcgEjAG4BcQEiAG0BcAEhAGwBbwEcAGsBbgEfAGoBbQEeAGkBbAEdAGgBawEYAGcBagEbAGYBaQEaAGUBaAEZAGQBZwEUAGMBZgEXAGIBZQEWAGEBZAEVAGABYwEQAF8BYgETAF4BYQESAF0BYAERAFwBXwEMAFsBXgEPAFoBXQEOAFkBXAENAFgBWwEIAFcBWgELAFYBWQEKAFUBWAEJAFQBVwEEAFIBVgEHAFEBVQEGAFABVAEFAAAA+wFMAZ8CqwBPAZ4CqgBOAZ0CqQBNAZwCTAFIAZsCTwFLAZoCTgFKAZkCTQFJAZgCSAFEAZcCSwFHAZYCSgFGAZUCSQFFAZQCRAFAAZMCRwFDAZICRgFCAZECRQFBAZACQAE8AY8CQwE/AY4CQgE+AY0CQQE9AYwCPAE4AYsCPwE7AYoCPgE6AYkCPQE5AYgCOAE0AYcCOwE3AYYCOgE2AYUCOQE1AYQCNAEwAYMCNwEzAYICNgEyAYECNQExAYACMAEsAX8CMwEvAX4CMgEuAX0CMQEtAXwCLAEoAXsCLwErAXoCLgEqAXkCLQEpAXgCKAEkAXcCKwEnAXYCKgEmAXUCKQElAXQCJAEgAXMCJwEjAXICJgEiAXECJQEhAXACIAEcAW8CIwEfAW4CIgEeAW0CIQEdAWwCHAEYAWsCHwEbAWoCHgEaAWkCHQEZAWgCGAEUAWcCGwEXAWYCGgEWAWUCGQEVAWQCFAEQAWMCFwETAWICFgESAWECFQERAWACEAEMAV8CEwEPAV4CEgEOAV0CEQENAVwCDAEIAVsCDwELAVoCDgEKAVkCDQEJAVgCCAEEAVcCCwEHAVYCCgEGAVUCCQEFAVQCBAEAAVMCBwEDAVICBgECAVECBQEBAVACAAH8AE8CAwH/AE4CAgH+AE0CAQH9AEwC/AD4AEsC/wD7AEoC/gD6AEkC/QD5AEgC+AD0AEcC+wD3AEYC+gD2AEUC+QD1AEQC9ADwAEMC9wDzAEIC9gDyAEEC9QDxAEAC8ADsAD8C8wDvAD4C8gDuAD0C8QDtADwC7ADoADsC7wDrADoC7gDqADkC7QDpADgC6ADkADcC6wDnADYC6gDmADUC6QDlADQC5ADgADMC5wDjADIC5gDiADEC5QDhADAC4ADcAC8C4wDfAC4C4gDeAC0C4QDdACwC3ADYACsC3wDbACoC3gDaACkC3QDZACgC2ADUACcC2wDXACYC2gDWACUC2QDVACQC1ADQACMC1wDTACIC1gDSACEC1QDRACAC0ADMAB8C0wDPAB4C0gDOAB0C0QDNABwCzADIABsCzwDLABoCzgDKABkCzQDJABgCyADEABcCywDHABYCygDGABUCyQDFABQCxADAABMCxwDDABICxgDCABECxQDBABACwAC8AA8CwwC/AA4CwgC+AA0CwQC9AAwCvAC4AAsCvwC7AAoCvgC6AAkCvQC5AAgCuAC0AAcCuwC3AAYCugC2AAUCuQC1AAQCtACwAAMCtwCzAAICtgCyAAECtQCxAAACsACsAP8BswCvAP4BsgCuAP0BsQCtAPwBrAD7AfoBrwCrAPkBrgCqAPgBrQCpAKgAUwGkAPcBAwCnAPYBAgCmAPUBAQClAPQBpACgAPMBpwCjAPIBpgCiAPEBpQChAPABoACcAO8BowCfAO4BogCeAO0BoQCdAOwBnACYAOsBnwCbAOoBngCaAOkBnQCZAOgBmACUAOcBmwCXAOYBmgCWAOUBmQCVAOQBlACQAOMBlwCTAOIBlgCSAOEBlQCRAOABkACMAN8BkwCPAN4BkgCOAN0BkQCNANwBjACIANsBjwCLANoBjgCKANkBjQCJANgBiACEANcBiwCHANYBigCGANUBiQCFANQBhACAANMBhwCDANIBhgCCANEBhQCBANABgAB8AM8BgwB/AM4BggB+AM0BgQB9AMwBfAB4AMsBfwB7AMoBfgB6AMkBfQB5AMgBeAB0AMcBewB3AMYBegB2AMUBeQB1AMQBdABwAMMBdwBzAMIBdgByAMEBdQBxAMABcABsAL8BcwBvAL4BcgBuAL0BcQBtALwBbABoALsBbwBrALoBbgBqALkBbQBpALgBaABkALcBawBnALYBagBmALUBaQBlALQBZABgALMBZwBjALIBZgBiALEBZQBhALABYABcAK8BYwBfAK4BYgBeAK0BYQBdAKwBXABYAKsBXwBbAKoBXgBaAKkBXQBZAKgBWABUAKcBWwBXAKYBWgBWAKUBWQBVAKQBVABQAKMBVwBTAKIBVgBSAKEBVQBRAKABUABMAJ8BUwBPAJ4BUgBOAJ0BUQBNAJwBTABIAJsBTwBLAJoBTgBKAJkBTQBJAJgB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", - "byteLength":20160 - }], - "materials":[{ - "pbrMetallicRoughness":{ - "baseColorFactor":[0.8, - 0.8, - 0.8, - 1.0], - "metallicFactor":0.0, - "roughnessFactor":0.5 - }, - "emissiveFactor":[0.0, - 0.0, - 0.0], - "alphaMode":"OPAQUE", - "name":"cccbox", - "doubleSided":true - }, - { - "pbrMetallicRoughness":{ - "baseColorFactor":[0.5, - 0.5, - 0.5, - 0.5], - "metallicFactor":0.0, - "roughnessFactor":0.5 - }, - "emissiveFactor":[0.0, - 0.0, - 0.0], - "alphaMode":"BLEND", - "name":"cccboli", - "doubleSided":true - }, - { - "pbrMetallicRoughness":{ - "baseColorFactor":[0.5, - 0.5, - 0.5, - 1.0], - "metallicFactor":0.0, - "roughnessFactor":0.5 - }, - "emissiveFactor":[0.0, - 0.0, - 0.0], - "alphaMode":"OPAQUE", - "name":"cccjiegou", - "doubleSided":true - }] -} \ No newline at end of file diff --git a/public/static/img/guide.glb b/public/static/img/guide.glb deleted file mode 100644 index cbff2b3..0000000 Binary files a/public/static/img/guide.glb and /dev/null differ diff --git a/public/static/img/map/Frosting.png b/public/static/img/map/Frosting.png deleted file mode 100644 index 64ed832..0000000 Binary files a/public/static/img/map/Frosting.png and /dev/null differ diff --git a/public/static/img/map/bl.png b/public/static/img/map/bl.png deleted file mode 100644 index 1583240..0000000 Binary files a/public/static/img/map/bl.png and /dev/null differ diff --git a/public/static/img/map/brick.png b/public/static/img/map/brick.png deleted file mode 100644 index e4bf801..0000000 Binary files a/public/static/img/map/brick.png and /dev/null differ diff --git a/public/static/img/map/build.png b/public/static/img/map/build.png deleted file mode 100644 index 1583240..0000000 Binary files a/public/static/img/map/build.png and /dev/null differ diff --git a/public/static/img/map/building.png b/public/static/img/map/building.png deleted file mode 100644 index d59c9f2..0000000 Binary files a/public/static/img/map/building.png and /dev/null differ diff --git a/public/static/img/map/c50.png b/public/static/img/map/c50.png deleted file mode 100644 index 729a10e..0000000 Binary files a/public/static/img/map/c50.png and /dev/null differ diff --git a/public/static/img/map/edifice.png b/public/static/img/map/edifice.png deleted file mode 100644 index 7b7652b..0000000 Binary files a/public/static/img/map/edifice.png and /dev/null differ diff --git a/public/static/img/map/front.png b/public/static/img/map/front.png deleted file mode 100644 index fbd14f3..0000000 Binary files a/public/static/img/map/front.png and /dev/null differ diff --git a/public/static/img/map/grassland.png b/public/static/img/map/grassland.png deleted file mode 100644 index c9a6f40..0000000 Binary files a/public/static/img/map/grassland.png and /dev/null differ diff --git a/public/static/img/map/grassland2.png b/public/static/img/map/grassland2.png deleted file mode 100644 index 4323149..0000000 Binary files a/public/static/img/map/grassland2.png and /dev/null differ diff --git a/public/static/img/map/grey.png b/public/static/img/map/grey.png deleted file mode 100644 index 6ae44b6..0000000 Binary files a/public/static/img/map/grey.png and /dev/null differ diff --git a/public/static/img/map/ground.png b/public/static/img/map/ground.png deleted file mode 100644 index 1d4ac71..0000000 Binary files a/public/static/img/map/ground.png and /dev/null differ diff --git a/public/static/img/map/ground2.png b/public/static/img/map/ground2.png deleted file mode 100644 index 3f2b06c..0000000 Binary files a/public/static/img/map/ground2.png and /dev/null differ diff --git a/public/static/img/map/office.png b/public/static/img/map/office.png deleted file mode 100644 index 3591ef0..0000000 Binary files a/public/static/img/map/office.png and /dev/null differ diff --git a/public/static/img/map/office2.png b/public/static/img/map/office2.png deleted file mode 100644 index a85ac06..0000000 Binary files a/public/static/img/map/office2.png and /dev/null differ diff --git a/public/static/img/map/square.png b/public/static/img/map/square.png deleted file mode 100644 index a192949..0000000 Binary files a/public/static/img/map/square.png and /dev/null differ diff --git a/public/static/img/model/IDS_H.glb b/public/static/img/model/IDS_H.glb deleted file mode 100644 index 1fc48d0..0000000 Binary files a/public/static/img/model/IDS_H.glb and /dev/null differ diff --git a/public/static/img/model/IDS_V.glb b/public/static/img/model/IDS_V.glb deleted file mode 100644 index be970de..0000000 Binary files a/public/static/img/model/IDS_V.glb and /dev/null differ diff --git a/public/static/img/model/bangongyi.glb b/public/static/img/model/bangongyi.glb deleted file mode 100644 index e32b4ae..0000000 Binary files a/public/static/img/model/bangongyi.glb and /dev/null differ diff --git a/public/static/img/model/chechanglangan.glb b/public/static/img/model/chechanglangan.glb deleted file mode 100644 index 55856a7..0000000 Binary files a/public/static/img/model/chechanglangan.glb and /dev/null differ diff --git a/public/static/img/model/chongdianzhuang.glb b/public/static/img/model/chongdianzhuang.glb deleted file mode 100644 index 2b1abae..0000000 Binary files a/public/static/img/model/chongdianzhuang.glb and /dev/null differ diff --git a/public/static/img/model/flower1.glb b/public/static/img/model/flower1.glb deleted file mode 100644 index c411ad0..0000000 Binary files a/public/static/img/model/flower1.glb and /dev/null differ diff --git a/public/static/img/model/flower2.glb b/public/static/img/model/flower2.glb deleted file mode 100644 index 2b04a44..0000000 Binary files a/public/static/img/model/flower2.glb and /dev/null differ diff --git a/public/static/img/model/gjz1.glb b/public/static/img/model/gjz1.glb deleted file mode 100644 index 4b59be9..0000000 Binary files a/public/static/img/model/gjz1.glb and /dev/null differ diff --git a/public/static/img/model/grass.glb b/public/static/img/model/grass.glb deleted file mode 100644 index 4f1680b..0000000 Binary files a/public/static/img/model/grass.glb and /dev/null differ diff --git a/public/static/img/model/honglvdeng.glb b/public/static/img/model/honglvdeng.glb deleted file mode 100644 index 49735bd..0000000 Binary files a/public/static/img/model/honglvdeng.glb and /dev/null differ diff --git a/public/static/img/model/huatan1.glb b/public/static/img/model/huatan1.glb deleted file mode 100644 index 6645bcf..0000000 Binary files a/public/static/img/model/huatan1.glb and /dev/null differ diff --git a/public/static/img/model/huatan2.glb b/public/static/img/model/huatan2.glb deleted file mode 100644 index 27d4e01..0000000 Binary files a/public/static/img/model/huatan2.glb and /dev/null differ diff --git a/public/static/img/model/jt_left.glb b/public/static/img/model/jt_left.glb deleted file mode 100644 index 7f12f4b..0000000 Binary files a/public/static/img/model/jt_left.glb and /dev/null differ diff --git a/public/static/img/model/jt_left_up.glb b/public/static/img/model/jt_left_up.glb deleted file mode 100644 index 50150b7..0000000 Binary files a/public/static/img/model/jt_left_up.glb and /dev/null differ diff --git a/public/static/img/model/jt_right.glb b/public/static/img/model/jt_right.glb deleted file mode 100644 index 5238327..0000000 Binary files a/public/static/img/model/jt_right.glb and /dev/null differ diff --git a/public/static/img/model/jt_right_up.glb b/public/static/img/model/jt_right_up.glb deleted file mode 100644 index 94d35ae..0000000 Binary files a/public/static/img/model/jt_right_up.glb and /dev/null differ diff --git a/public/static/img/model/jt_turn.glb b/public/static/img/model/jt_turn.glb deleted file mode 100644 index 472efff..0000000 Binary files a/public/static/img/model/jt_turn.glb and /dev/null differ diff --git a/public/static/img/model/jt_up.glb b/public/static/img/model/jt_up.glb deleted file mode 100644 index 28ae517..0000000 Binary files a/public/static/img/model/jt_up.glb and /dev/null differ diff --git a/public/static/img/model/ludeng.glb b/public/static/img/model/ludeng.glb deleted file mode 100644 index 3cfb884..0000000 Binary files a/public/static/img/model/ludeng.glb and /dev/null differ diff --git a/public/static/img/model/lvzhi.glb b/public/static/img/model/lvzhi.glb deleted file mode 100644 index 5d5b427..0000000 Binary files a/public/static/img/model/lvzhi.glb and /dev/null differ diff --git a/public/static/img/model/officeTV.glb b/public/static/img/model/officeTV.glb deleted file mode 100644 index 451431d..0000000 Binary files a/public/static/img/model/officeTV.glb and /dev/null differ diff --git a/public/static/img/model/park_paly.glb b/public/static/img/model/park_paly.glb deleted file mode 100644 index 3356c5f..0000000 Binary files a/public/static/img/model/park_paly.glb and /dev/null differ diff --git a/public/static/img/model/penquan2.glb b/public/static/img/model/penquan2.glb deleted file mode 100644 index e7e97d6..0000000 Binary files a/public/static/img/model/penquan2.glb and /dev/null differ diff --git a/public/static/img/model/qiche1.glb b/public/static/img/model/qiche1.glb deleted file mode 100644 index ce6887a..0000000 Binary files a/public/static/img/model/qiche1.glb and /dev/null differ diff --git a/public/static/img/model/qiche2.glb b/public/static/img/model/qiche2.glb deleted file mode 100644 index 381ac2a..0000000 Binary files a/public/static/img/model/qiche2.glb and /dev/null differ diff --git a/public/static/img/model/qiche3.glb b/public/static/img/model/qiche3.glb deleted file mode 100644 index a03bc0e..0000000 Binary files a/public/static/img/model/qiche3.glb and /dev/null differ diff --git a/public/static/img/model/qiche4.glb b/public/static/img/model/qiche4.glb deleted file mode 100644 index cde3dab..0000000 Binary files a/public/static/img/model/qiche4.glb and /dev/null differ diff --git a/public/static/img/model/qiche5.glb b/public/static/img/model/qiche5.glb deleted file mode 100644 index c5c0051..0000000 Binary files a/public/static/img/model/qiche5.glb and /dev/null differ diff --git a/public/static/img/model/qiche6.glb b/public/static/img/model/qiche6.glb deleted file mode 100644 index 36c4ab5..0000000 Binary files a/public/static/img/model/qiche6.glb and /dev/null differ diff --git a/public/static/img/model/qiche7.glb b/public/static/img/model/qiche7.glb deleted file mode 100644 index 54f032e..0000000 Binary files a/public/static/img/model/qiche7.glb and /dev/null differ diff --git a/public/static/img/model/qiche8.glb b/public/static/img/model/qiche8.glb deleted file mode 100644 index b4de2b2..0000000 Binary files a/public/static/img/model/qiche8.glb and /dev/null differ diff --git a/public/static/img/model/qiche9.glb b/public/static/img/model/qiche9.glb deleted file mode 100644 index 264f59a..0000000 Binary files a/public/static/img/model/qiche9.glb and /dev/null differ diff --git a/public/static/img/model/ren1.glb b/public/static/img/model/ren1.glb deleted file mode 100644 index b8326fa..0000000 Binary files a/public/static/img/model/ren1.glb and /dev/null differ diff --git a/public/static/img/model/ren2.glb b/public/static/img/model/ren2.glb deleted file mode 100644 index 0b9062e..0000000 Binary files a/public/static/img/model/ren2.glb and /dev/null differ diff --git a/public/static/img/model/ren3.glb b/public/static/img/model/ren3.glb deleted file mode 100644 index 19d343a..0000000 Binary files a/public/static/img/model/ren3.glb and /dev/null differ diff --git a/public/static/img/model/ren4.glb b/public/static/img/model/ren4.glb deleted file mode 100644 index 29c9fc9..0000000 Binary files a/public/static/img/model/ren4.glb and /dev/null differ diff --git a/public/static/img/model/ren5.glb b/public/static/img/model/ren5.glb deleted file mode 100644 index 4d124c7..0000000 Binary files a/public/static/img/model/ren5.glb and /dev/null differ diff --git a/public/static/img/model/ren6.glb b/public/static/img/model/ren6.glb deleted file mode 100644 index ca5a1da..0000000 Binary files a/public/static/img/model/ren6.glb and /dev/null differ diff --git a/public/static/img/model/table.glb b/public/static/img/model/table.glb deleted file mode 100644 index 4d2cdf5..0000000 Binary files a/public/static/img/model/table.glb and /dev/null differ diff --git a/public/static/img/model/taiyangsan.glb b/public/static/img/model/taiyangsan.glb deleted file mode 100644 index 9a74689..0000000 Binary files a/public/static/img/model/taiyangsan.glb and /dev/null differ diff --git a/public/static/img/model/tingchechang.glb b/public/static/img/model/tingchechang.glb deleted file mode 100644 index c8f1087..0000000 Binary files a/public/static/img/model/tingchechang.glb and /dev/null differ diff --git a/public/static/img/model/tree.gltf b/public/static/img/model/tree.gltf deleted file mode 100644 index ba6ea86..0000000 --- a/public/static/img/model/tree.gltf +++ /dev/null @@ -1,414 +0,0 @@ -{ - "asset":{ - "version":"2.0", - "generator":"Created using the official Cinema 4D glTF Exporter 1.000x284978" - }, - "scenes":[{ - "nodes":[0] - }], - "nodes":[{ - "name":"方块树", - "translation":[0.0, - 54.09450149536133, - 0.0], - "rotation":[0.0, - 0.0, - 0.0, - -1.0], - "scale":[1.0, - 1.0, - 1.0], - "children":[1, - 2, - 3, - 4] - }, - { - "name":"圆柱体", - "translation":[0.0, - -39.05268859863281, - 0.0], - "rotation":[0.0, - 0.0, - 0.0, - -1.0], - "scale":[1.0, - 1.0, - 1.0], - "mesh":0 - }, - { - "name":"圆锥体.2", - "translation":[0.0, - -2.9577174186706545, - 0.0], - "rotation":[0.0, - 0.0, - 0.0, - -1.0], - "scale":[1.0, - 1.0, - 1.0], - "mesh":1 - }, - { - "name":"圆锥体.1", - "translation":[0.0, - 11.526834487915039, - 0.0], - "rotation":[0.0, - 0.0, - 0.0, - -1.0], - "scale":[1.0, - 1.0, - 1.0], - "mesh":2 - }, - { - "name":"圆锥体", - "translation":[0.0, - 24.944711685180665, - 0.0], - "rotation":[0.0, - 0.0, - 0.0, - -1.0], - "scale":[1.0, - 1.0, - 1.0], - "mesh":3 - }], - "meshes":[{ - "name":"圆柱体", - "primitives":[{ - "attributes":{ - "POSITION":1, - "NORMAL":2, - "TEXCOORD_0":3 - }, - "indices":0, - "material":0 - }] - }, - { - "name":"圆锥体.2", - "primitives":[{ - "attributes":{ - "POSITION":5, - "NORMAL":6, - "TEXCOORD_0":7 - }, - "indices":4, - "material":1 - }] - }, - { - "name":"圆锥体.1", - "primitives":[{ - "attributes":{ - "POSITION":9, - "NORMAL":10, - "TEXCOORD_0":11 - }, - "indices":8, - "material":1 - }] - }, - { - "name":"圆锥体", - "primitives":[{ - "attributes":{ - "POSITION":13, - "NORMAL":14, - "TEXCOORD_0":15 - }, - "indices":12, - "material":1 - }] - }], - "accessors":[{ - "bufferView":0, - "type":"SCALAR", - "componentType":5123, - "count":120, - "byteOffset":0, - "min":[0], - "max":[43] - }, - { - "bufferView":1, - "type":"VEC3", - "componentType":5126, - "count":44, - "byteOffset":0, - "min":[-2.437448501586914, - -14.820405006408692, - -2.3181512355804445], - "max":[2.437448501586914, - 24.215106964111329, - 2.3181512355804445] - }, - { - "bufferView":1, - "type":"VEC3", - "componentType":5126, - "count":44, - "byteOffset":12, - "min":[-0.9941859841346741, - -1.0, - -0.9788010716438294], - "max":[0.9941859841346741, - 1.0, - 0.9788010716438294] - }, - { - "bufferView":1, - "type":"VEC2", - "componentType":5126, - "count":44, - "byteOffset":24, - "min":[0.0, - 0.0], - "max":[1.0, - 1.0] - }, - { - "bufferView":2, - "type":"SCALAR", - "componentType":5123, - "count":36, - "byteOffset":0, - "min":[0], - "max":[25] - }, - { - "bufferView":3, - "type":"VEC3", - "componentType":5126, - "count":26, - "byteOffset":0, - "min":[-29.99250602722168, - -23.775028228759767, - -29.99250602722168], - "max":[29.99250602722168, - 16.158737182617189, - 29.99250602722168] - }, - { - "bufferView":3, - "type":"VEC3", - "componentType":5126, - "count":26, - "byteOffset":12, - "min":[-0.6245018243789673, - -1.0, - -0.6245018243789673], - "max":[0.6245018243789673, - 0.4690360426902771, - 0.6245018243789673] - }, - { - "bufferView":3, - "type":"VEC2", - "componentType":5126, - "count":26, - "byteOffset":24, - "min":[0.0, - 0.0], - "max":[1.0, - 1.0] - }, - { - "bufferView":4, - "type":"SCALAR", - "componentType":5123, - "count":36, - "byteOffset":0, - "min":[0], - "max":[25] - }, - { - "bufferView":5, - "type":"VEC3", - "componentType":5126, - "count":26, - "byteOffset":0, - "min":[-22.81072998046875, - -13.725996971130371, - -22.81072998046875], - "max":[22.81072998046875, - 12.289488792419434, - 22.81072998046875] - }, - { - "bufferView":5, - "type":"VEC3", - "componentType":5126, - "count":26, - "byteOffset":12, - "min":[-0.6009717583656311, - -1.0, - -0.6009717583656311], - "max":[0.6009717583656311, - 0.5269401669502258, - 0.6009717583656311] - }, - { - "bufferView":5, - "type":"VEC2", - "componentType":5126, - "count":26, - "byteOffset":24, - "min":[0.0, - 0.0], - "max":[1.0, - 1.0] - }, - { - "bufferView":6, - "type":"SCALAR", - "componentType":5123, - "count":36, - "byteOffset":0, - "min":[0], - "max":[25] - }, - { - "bufferView":7, - "type":"VEC3", - "componentType":5126, - "count":26, - "byteOffset":0, - "min":[-16.715009689331056, - -11.619623184204102, - -16.715009689331056], - "max":[16.715009689331056, - 9.005364418029786, - 16.715009689331056] - }, - { - "bufferView":7, - "type":"VEC3", - "componentType":5126, - "count":26, - "byteOffset":12, - "min":[-0.6135097742080689, - -1.0, - -0.6135097742080689], - "max":[0.6135097742080689, - 0.4972037374973297, - 0.6135097742080689] - }, - { - "bufferView":7, - "type":"VEC2", - "componentType":5126, - "count":26, - "byteOffset":24, - "min":[0.0, - 0.0], - "max":[1.0, - 1.0] - }], - "bufferViews":[{ - "buffer":0, - "byteOffset":0, - "byteLength":240, - "target":34963 - }, - { - "buffer":0, - "byteOffset":240, - "byteLength":1408, - "target":34962, - "byteStride":32 - }, - { - "buffer":1, - "byteOffset":0, - "byteLength":72, - "target":34963 - }, - { - "buffer":1, - "byteOffset":72, - "byteLength":832, - "target":34962, - "byteStride":32 - }, - { - "buffer":2, - "byteOffset":0, - "byteLength":72, - "target":34963 - }, - { - "buffer":2, - "byteOffset":72, - "byteLength":832, - "target":34962, - "byteStride":32 - }, - { - "buffer":3, - "byteOffset":0, - "byteLength":72, - "target":34963 - }, - { - "buffer":3, - "byteOffset":72, - "byteLength":832, - "target":34962, - "byteStride":32 - }], - "buffers":[{ - "uri":"data:application/octet-stream;base64,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", - "byteLength":1648 - }, - { - "uri":"data:application/octet-stream;base64,GQAYABcAFgAVABQAEwASABEAEAAPAA4ADQAIAAwAAQAHAAAACAAGAAsABwAFAAAABgAEAAoABQADAAAABAACAAkAAwABAAAAAAAAAEIzvsEAAAAAAAAAAAAAgL8AAAAAAAAAPwAAAD+n8O9BQjO+wQAAAAAAAAAAAACAvwAAAAAAAAAAAAAAPwAAAAAYRYFBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqFUEJ0IzvsGn8O/BAAAAAAAAgL8AAAAAAAAAPwAAAAAAAAAAGEWBQQAAAAAAAAAAAAAAAAAAAAAAAIA+AAAAAKfw78FCM77BqFWEpwAAAAAAAIC/AAAAAAAAgD8AAAA/AAAAABhFgUEAAAAAAAAAAAAAAAAAAAAAAAAAPwAAAAB7gManQjO+wafw70EAAAAAAACAvwAAAAAAAAA/AACAPwAAAAAYRYFBAAAAAAAAAAAAAAAAAAAAAAAAQD8AAAAAp/DvQUIzvsEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgD+oVQQnQjO+wafw78EAAAAAAAAAAAAAAAAAAIA+AACAP6fw78FCM77BqFWEpwAAAAAAAAAAAAAAAAAAAD8AAIA/e4DGp0IzvsGn8O9BAAAAAAAAAAAAAAAAAABAPwAAgD8AAAAAGEWBQQAAAAAAAAAAAAAAAAAAAAAAAIA/AAAAAKfw70FCM77BAAAAAFrfHz9+JfA+Wt8fvwAAAAAAAIA/AAAAABhFgUEAAAAAWt8fP34l8D5a3x+/AACAPgAAAACoVQQnQjO+wafw78Fa3x8/fiXwPlrfH78AAIA+AACAP6hVBCdCM77Bp/DvwVrfH79+JfA+Wt8fvwAAgD4AAIA/AAAAABhFgUEAAAAAWt8fv34l8D5a3x+/AAAAPwAAAACn8O/BQjO+wahVhKda3x+/fiXwPlrfH78AAAA/AACAP6fw78FCM77BqFWEp1rfH79+JfA+Wt8fPwAAAD8AAIA/AAAAABhFgUEAAAAAWt8fv34l8D5a3x8/AABAPwAAAAB7gManQjO+wafw70Fa3x+/fiXwPlrfHz8AAEA/AACAP3uAxqdCM77Bp/DvQVrfHz9+JfA+Wt8fPwAAQD8AAIA/AAAAABhFgUEAAAAAWt8fP34l8D5a3x8/AACAPwAAAACn8O9BQjO+wQAAAABa3x8/fiXwPlrfHz8AAIA/AACAPw==", - "byteLength":904 - }, - { - "uri":"data:application/octet-stream;base64,GQAYABcAFgAVABQAEwASABEAEAAPAA4ADQAIAAwAAQAHAAAACAAGAAsABwAFAAAABgAEAAoABQADAAAABAACAAkAAwABAAAAAAAAAK+dW8EAAAAAAAAAAAAAgL8AAAAAAAAAPwAAAD9gfLZBr51bwQAAAAAAAAAAAACAvwAAAAAAAAAAAAAAPwAAAAC/oURBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJEvJJq+dW8FgfLbBAAAAAAAAgL8AAAAAAAAAPwAAAAAAAAAAv6FEQQAAAAAAAAAAAAAAAAAAAAAAAIA+AAAAAGB8tsGvnVvBJEtJpwAAAAAAAIC/AAAAAAAAgD8AAAA/AAAAAL+hREEAAAAAAAAAAAAAAAAAAAAAAAAAPwAAAABb+Janr51bwWB8tkEAAAAAAACAvwAAAAAAAAA/AACAPwAAAAC/oURBAAAAAAAAAAAAAAAAAAAAAAAAQD8AAAAAYHy2Qa+dW8EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgD8kS8kmr51bwWB8tsEAAAAAAAAAAAAAAAAAAIA+AACAP2B8tsGvnVvBJEtJpwAAAAAAAAAAAAAAAAAAAD8AAIA/W/iWp6+dW8FgfLZBAAAAAAAAAAAAAAAAAABAPwAAgD8AAAAAv6FEQQAAAAAAAAAAAAAAAAAAAAAAAIA/AAAAAGB8tkGvnVvBAAAAAEnZGT+N5QY/SdkZvwAAAAAAAIA/AAAAAL+hREEAAAAASdkZP43lBj9J2Rm/AACAPgAAAAAkS8kmr51bwWB8tsFJ2Rk/jeUGP0nZGb8AAIA+AACAPyRLySavnVvBYHy2wUnZGb+N5QY/SdkZvwAAgD4AAIA/AAAAAL+hREEAAAAASdkZv43lBj9J2Rm/AAAAPwAAAABgfLbBr51bwSRLSadJ2Rm/jeUGP0nZGb8AAAA/AACAP2B8tsGvnVvBJEtJp0nZGb+N5QY/SdkZPwAAAD8AAIA/AAAAAL+hREEAAAAASdkZv43lBj9J2Rk/AABAPwAAAABb+Janr51bwWB8tkFJ2Rm/jeUGP0nZGT8AAEA/AACAP1v4lqevnVvBYHy2QUnZGT+N5QY/SdkZPwAAQD8AAIA/AAAAAL+hREEAAAAASdkZP43lBj9J2Rk/AACAPwAAAABgfLZBr51bwQAAAABJ2Rk/jeUGP0nZGT8AAIA/AACAPw==", - "byteLength":904 - }, - { - "uri":"data:application/octet-stream;base64,GQAYABcAFgAVABQAEwASABEAEAAPAA4ADQAIAAwAAQAHAAAACAAGAAsABwAFAAAABgAEAAoABQADAAAABAACAAkAAwABAAAAAAAAAPrpOcEAAAAAAAAAAAAAgL8AAAAAAAAAPwAAAD9XuIVB+uk5wQAAAAAAAAAAAACAvwAAAAAAAAAAAAAAPwAAAAD5FRBBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdYCTJvrpOcFXuIXBAAAAAAAAgL8AAAAAAAAAPwAAAAAAAAAA+RUQQQAAAAAAAAAAAAAAAAAAAAAAAIA+AAAAAFe4hcH66TnBdYATpwAAAAAAAIC/AAAAAAAAgD8AAAA/AAAAAPkVEEEAAAAAAAAAAAAAAAAAAAAAAAAAPwAAAACvQF2n+uk5wVe4hUEAAAAAAACAvwAAAAAAAAA/AACAPwAAAAD5FRBBAAAAAAAAAAAAAAAAAAAAAAAAQD8AAAAAV7iFQfrpOcEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgD91gJMm+uk5wVe4hcEAAAAAAAAAAAAAAAAAAIA+AACAP1e4hcH66TnBdYATpwAAAAAAAAAAAAAAAAAAAD8AAIA/r0Bdp/rpOcFXuIVBAAAAAAAAAAAAAAAAAABAPwAAgD8AAAAA+RUQQQAAAAAAAAAAAAAAAAAAAAAAAIA/AAAAAFe4hUH66TnBAAAAAPoOHT99kf4++g4dvwAAAAAAAIA/AAAAAPkVEEEAAAAA+g4dP32R/j76Dh2/AACAPgAAAAB1gJMm+uk5wVe4hcH6Dh0/fZH+PvoOHb8AAIA+AACAP3WAkyb66TnBV7iFwfoOHb99kf4++g4dvwAAgD4AAIA/AAAAAPkVEEEAAAAA+g4dv32R/j76Dh2/AAAAPwAAAABXuIXB+uk5wXWAE6f6Dh2/fZH+PvoOHb8AAAA/AACAP1e4hcH66TnBdYATp/oOHb99kf4++g4dPwAAAD8AAIA/AAAAAPkVEEEAAAAA+g4dv32R/j76Dh0/AABAPwAAAACvQF2n+uk5wVe4hUH6Dh2/fZH+PvoOHT8AAEA/AACAP69AXaf66TnBV7iFQfoOHT99kf4++g4dPwAAQD8AAIA/AAAAAPkVEEEAAAAA+g4dP32R/j76Dh0/AACAPwAAAABXuIVB+uk5wQAAAAD6Dh0/fZH+PvoOHT8AAIA/AACAPw==", - "byteLength":904 - }], - "materials":[{ - "pbrMetallicRoughness":{ - "baseColorFactor":[0.48, - 0.3724800000000004, - 0.32639999999999999, - 1.0], - "metallicFactor":0.0, - "roughnessFactor":0.5 - }, - "emissiveFactor":[0.0, - 0.0, - 0.0], - "alphaMode":"OPAQUE", - "doubleSided":true, - "name":"材质.1" - }, - { - "pbrMetallicRoughness":{ - "baseColorFactor":[0.2558749999999998, - 0.75, - 0.24749999999999998, - 1.0], - "metallicFactor":0.0, - "roughnessFactor":0.5 - }, - "emissiveFactor":[0.0, - 0.0, - 0.0], - "alphaMode":"OPAQUE", - "doubleSided":true, - "name":"材质" - }] -} \ No newline at end of file diff --git a/public/static/img/model/tree2.glb b/public/static/img/model/tree2.glb deleted file mode 100644 index 474803e..0000000 Binary files a/public/static/img/model/tree2.glb and /dev/null differ diff --git a/public/static/img/model/tree3.glb b/public/static/img/model/tree3.glb deleted file mode 100644 index 542561f..0000000 Binary files a/public/static/img/model/tree3.glb and /dev/null differ diff --git a/public/static/img/model/xiaofangshuan.glb b/public/static/img/model/xiaofangshuan.glb deleted file mode 100644 index e8b9dc6..0000000 Binary files a/public/static/img/model/xiaofangshuan.glb and /dev/null differ diff --git a/public/static/img/model/yizi1.glb b/public/static/img/model/yizi1.glb deleted file mode 100644 index a34fa9f..0000000 Binary files a/public/static/img/model/yizi1.glb and /dev/null differ diff --git a/public/static/img/model/zuoyi1.glb b/public/static/img/model/zuoyi1.glb deleted file mode 100644 index dad8b8c..0000000 Binary files a/public/static/img/model/zuoyi1.glb and /dev/null differ diff --git a/public/static/img/model/zuoyi2.glb b/public/static/img/model/zuoyi2.glb deleted file mode 100644 index 9b29359..0000000 Binary files a/public/static/img/model/zuoyi2.glb and /dev/null differ diff --git a/public/static/img/new-shop.png b/public/static/img/new-shop.png deleted file mode 100644 index 7ec8b75..0000000 Binary files a/public/static/img/new-shop.png and /dev/null differ diff --git a/public/static/img/noth.png b/public/static/img/noth.png deleted file mode 100644 index 92cd8cc..0000000 Binary files a/public/static/img/noth.png and /dev/null differ diff --git a/public/static/img/promotion.png b/public/static/img/promotion.png deleted file mode 100644 index b9b2ac9..0000000 Binary files a/public/static/img/promotion.png and /dev/null differ diff --git a/public/static/img/qi.glb b/public/static/img/qi.glb deleted file mode 100644 index fde6ce2..0000000 Binary files a/public/static/img/qi.glb and /dev/null differ diff --git a/public/static/img/runman.gltf b/public/static/img/runman.gltf deleted file mode 100644 index f43c017..0000000 --- a/public/static/img/runman.gltf +++ /dev/null @@ -1,1205 +0,0 @@ -{ - "asset":{ - "version":"2.0", - "generator":"Created using the official Cinema 4D glTF Exporter 1.000x284978" - }, - "scenes":[{ - "nodes":[0] - }], - "nodes":[{ - "name":"空白", - "translation":[0.0, - 0.0, - 0.0], - "rotation":[0.0, - 0.0, - 0.0, - -1.0], - "scale":[1.0, - 1.0, - 1.0], - "children":[1, - 24] - }, - { - "name":"mixamorig_Hips_1", - "translation":[0.0, - 3.1530885696411135, - 0.0], - "rotation":[0.0, - 0.0, - 0.0, - -1.0], - "scale":[1.0, - 1.0, - 1.0], - "children":[2, - 16, - 20] - }, - { - "name":"脊柱", - "translation":[-1.776356799695581e-17, - 0.3106137812137604, - 0.0021250916179269554], - "rotation":[0.014913010410964489, - -0.012912052683532238, - -0.0036895801313221456, - 0.999798595905304], - "scale":[1.0, - 1.0, - 1.0], - "children":[3] - }, - { - "name":"mixamorig_Spine1", - "translation":[-2.2204459996194765e-18, - 0.3623911142349243, - -6.48571890637939e-11], - "rotation":[0.023143358528614045, - -0.034434013068675998, - -0.010304740630090237, - 0.9990858435630798], - "scale":[1.0, - 1.0, - 1.0], - "children":[4] - }, - { - "name":"mixamorig_Spine2", - "translation":[-4.440891999238953e-18, - 0.4141616225242615, - -1.4156774363893732e-10], - "rotation":[0.023133542388677598, - -0.034447669982910159, - -0.01029477920383215, - 0.9990856647491455], - "scale":[1.0, - 1.0, - 1.0], - "children":[5, - 8, - 12] - }, - { - "name":"mixamorig_Neck", - "translation":[-0.04867764934897423, - 0.4660717248916626, - 0.00042581939487718046], - "rotation":[-0.0011892763432115317, - -0.00437023164704442, - 0.0014453309122473002, - -0.9999886751174927], - "scale":[1.0, - 1.0, - 1.0], - "children":[6] - }, - { - "name":"头部", - "translation":[-0.0069379801861941818, - 0.36028382182121279, - -0.1414622664451599], - "rotation":[0.05794660001993179, - -0.021134400740265847, - 0.0044865841045975689, - -0.9980858564376831], - "scale":[1.0, - 1.0, - 1.0], - "children":[7] - }, - { - "name":"mixamorig_HeadTop_End", - "translation":[-0.09793149679899216, - 1.7236998081207276, - -0.03212921321392059], - "rotation":[0.0, - -6.938893903907229e-18, - 0.0, - -1.0], - "scale":[1.0, - 1.0, - 1.0] - }, - { - "name":"右锁骨", - "translation":[0.3658224046230316, - 0.5503618717193604, - -0.11043170094490051], - "rotation":[0.6365292072296143, - 0.35387492179870608, - -0.5664425492286682, - 0.38567599654197695], - "scale":[1.0, - 1.0, - 1.0], - "children":[9] - }, - { - "name":"右肩", - "translation":[0.20848608016967774, - 0.6970034837722778, - -0.06630297750234604], - "rotation":[0.3604423403739929, - -0.0036121909506618978, - 0.12049788236618042, - 0.9249586462974548], - "scale":[1.0, - 1.0, - 1.0], - "children":[10] - }, - { - "name":"右手肘", - "translation":[0.05817797780036926, - 1.0178031921386719, - 0.2656939625740051], - "rotation":[-0.002164565958082676, - 0.021195217967033387, - 0.36719849705696108, - 0.9298985600471497], - "scale":[1.0, - 1.0, - 1.0], - "children":[11] - }, - { - "name":"右手", - "translation":[0.5470128655433655, - 0.46287092566490176, - 0.147624209523201], - "rotation":[0.05455687642097473, - 0.21442894637584687, - 0.02807883732020855, - 0.9748104214668274], - "scale":[1.0, - 1.0, - 1.0] - }, - { - "name":"左锁骨", - "translation":[-0.47832462191581728, - 0.46424561738967898, - 0.03104892373085022], - "rotation":[0.6459208130836487, - -0.3517988324165344, - 0.5535863041877747, - 0.3905971348285675], - "scale":[1.0, - 1.0, - 1.0], - "children":[13] - }, - { - "name":"左肩", - "translation":[0.0031169613357633354, - 0.6172453165054321, - -0.03252391889691353], - "rotation":[0.43794146180152895, - 0.07645630091428757, - 0.181419238448143, - 0.8771823048591614], - "scale":[1.0, - 1.0, - 1.0], - "children":[14] - }, - { - "name":"左手肘", - "translation":[0.37932083010673525, - 0.9342759251594544, - 0.17821525037288667], - "rotation":[-0.00047519829240627587, - -0.0033283152151852848, - -0.05747678130865097, - 0.9983412027359009], - "scale":[1.0, - 1.0, - 1.0], - "children":[15] - }, - { - "name":"左手", - "translation":[0.15892554819583894, - 0.7230207920074463, - 0.17593392729759217], - "rotation":[0.12088047713041306, - -0.22071301937103272, - -0.0885438323020935, - 0.9637601971626282], - "scale":[1.0, - 1.0, - 1.0] - }, - { - "name":"右胯", - "translation":[0.4181133508682251, - -0.17250442504882813, - 0.01506805419921875], - "rotation":[0.04325052723288536, - -0.1336749643087387, - 0.9892001152038574, - 0.04175610467791557], - "scale":[1.0, - 1.0, - 1.0], - "children":[17] - }, - { - "name":"右膝", - "translation":[-0.11607543379068375, - 1.3442487716674805, - 0.385331928730011], - "rotation":[0.16668660938739777, - 0.030943574383854867, - 0.00463539594784379, - -0.9855133891105652], - "scale":[1.0, - 1.0, - 1.0], - "children":[18] - }, - { - "name":"右脚踝", - "translation":[-0.09748882055282593, - 0.7714358568191528, - 0.5110480785369873], - "rotation":[0.6339329481124878, - 0.06068555638194084, - 0.0027806239668279888, - 0.7709984183311462], - "scale":[1.0, - 1.0, - 1.0], - "children":[19] - }, - { - "name":"右脚", - "translation":[-0.005841732490807772, - 0.3710412383079529, - -0.2732294499874115], - "rotation":[0.46624046564102175, - 0.02277810126543045, - -0.0010297404369339347, - 0.884364128112793], - "scale":[1.0, - 1.0, - 1.0] - }, - { - "name":"左胯", - "translation":[-0.44176289439201357, - -0.189485564827919, - 0.0018485801992937923], - "rotation":[0.04496392607688904, - -0.3423689603805542, - -0.9384587407112122, - -0.007546944543719292], - "scale":[1.0, - 1.0, - 1.0], - "children":[21] - }, - { - "name":"左膝", - "translation":[0.04866522178053856, - 1.0511060953140259, - -0.9304242134094238], - "rotation":[0.2963683009147644, - -0.07822619378566742, - 0.017349064350128175, - -0.9517066478729248], - "scale":[1.0, - 1.0, - 1.0], - "children":[22] - }, - { - "name":"左脚踝", - "translation":[0.04964170232415199, - 0.9040311574935913, - -0.1227477565407753], - "rotation":[0.4074028730392456, - -0.05044877901673317, - -0.02635776437819004, - 0.9114730358123779], - "scale":[1.0, - 1.0, - 1.0], - "children":[23] - }, - { - "name":"左脚", - "translation":[-0.033483296632766727, - 0.3337481915950775, - -0.3333655893802643], - "rotation":[0.38121721148490908, - -0.019130436703562738, - 0.007890528067946434, - 0.9242538809776306], - "scale":[1.0, - 1.0, - 1.0] - }, - { - "name":"空白_1", - "translation":[0.0, - 2.807826280593872, - 0.0], - "rotation":[0.0, - 0.0, - 0.0, - -1.0], - "scale":[1.0, - 1.0, - 1.0], - "children":[25] - }, - { - "name":"空白_1", - "mesh":0, - "skin":0 - }], - "skins":[{ - "inverseBindMatrices":34, - "joints":[1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23] - }], - "meshes":[{ - "name":"空白_1", - "primitives":[{ - "attributes":{ - "POSITION":29, - "NORMAL":30, - "TEXCOORD_0":31, - "JOINTS_0":32, - "WEIGHTS_0":33 - }, - "indices":28, - "material":0 - }] - }], - "accessors":[{ - "bufferView":0, - "type":"SCALAR", - "componentType":5126, - "count":41, - "byteOffset":0, - "min":[0.0], - "max":[1.3333333730697632] - }, - { - "bufferView":0, - "type":"VEC4", - "componentType":5126, - "count":41, - "byteOffset":164, - "min":[0.6032647490501404, - 0.29705116152763369, - -0.597900927066803, - 0.33483967185020449], - "max":[0.6649492383003235, - 0.4080055058002472, - -0.5306732058525086, - 0.4335770905017853] - }, - { - "bufferView":1, - "type":"SCALAR", - "componentType":5126, - "count":41, - "byteOffset":0, - "min":[0.0], - "max":[1.3333333730697632] - }, - { - "bufferView":1, - "type":"VEC4", - "componentType":5126, - "count":41, - "byteOffset":164, - "min":[0.27177637815475466, - -0.06223956122994423, - -0.03602537512779236, - 0.8974021077156067], - "max":[0.43180757761001589, - 0.08314946293830872, - 0.2833669185638428, - 0.926470935344696] - }, - { - "bufferView":2, - "type":"SCALAR", - "componentType":5126, - "count":41, - "byteOffset":0, - "min":[0.0], - "max":[1.3333333730697632] - }, - { - "bufferView":2, - "type":"VEC4", - "componentType":5126, - "count":41, - "byteOffset":164, - "min":[-0.02388078160583973, - -0.013521081767976284, - -0.5234913229942322, - -0.8761789202690125], - "max":[0.0411793477833271, - 0.021195217967033387, - 0.4577799141407013, - 0.9298985600471497] - }, - { - "bufferView":3, - "type":"SCALAR", - "componentType":5126, - "count":41, - "byteOffset":0, - "min":[0.0], - "max":[1.3333333730697632] - }, - { - "bufferView":3, - "type":"VEC4", - "componentType":5126, - "count":41, - "byteOffset":164, - "min":[0.6128016114234924, - -0.40675586462020876, - 0.5174369215965271, - 0.34086254239082339], - "max":[0.6741241812705994, - -0.29416441917419436, - 0.5855225324630737, - 0.4373590052127838] - }, - { - "bufferView":4, - "type":"SCALAR", - "componentType":5126, - "count":41, - "byteOffset":0, - "min":[0.0], - "max":[1.3333333730697632] - }, - { - "bufferView":4, - "type":"VEC4", - "componentType":5126, - "count":41, - "byteOffset":164, - "min":[0.36483728885650637, - -0.00304596871137619, - 0.02630736120045185, - 0.8532055616378784], - "max":[0.48896533250808718, - 0.17961375415325166, - 0.34291505813598635, - 0.8777284622192383] - }, - { - "bufferView":5, - "type":"SCALAR", - "componentType":5126, - "count":41, - "byteOffset":0, - "min":[0.0], - "max":[1.3333333730697632] - }, - { - "bufferView":5, - "type":"VEC4", - "componentType":5126, - "count":41, - "byteOffset":164, - "min":[-0.026678521186113359, - -0.006508330348879099, - -0.2299850583076477, - -0.982836902141571], - "max":[0.04343068227171898, - 0.008449919521808625, - 0.22994931042194367, - 0.9983412027359009] - }, - { - "bufferView":6, - "type":"SCALAR", - "componentType":5126, - "count":41, - "byteOffset":0, - "min":[0.0], - "max":[1.3333333730697632] - }, - { - "bufferView":6, - "type":"VEC4", - "componentType":5126, - "count":41, - "byteOffset":164, - "min":[0.008316618390381337, - -0.21901103854179383, - 0.9741857051849365, - 0.04169676825404167], - "max":[0.04325052723288536, - 0.042211759835481647, - 0.9988664984703064, - 0.04681428149342537] - }, - { - "bufferView":7, - "type":"SCALAR", - "componentType":5126, - "count":41, - "byteOffset":0, - "min":[0.0], - "max":[1.3333333730697632] - }, - { - "bufferView":7, - "type":"VEC4", - "componentType":5126, - "count":41, - "byteOffset":164, - "min":[0.16668660938739777, - 0.01722562685608864, - -0.033044230192899707, - -0.9855133891105652], - "max":[0.2949279844760895, - 0.030943574383854867, - 0.008634686470031739, - -0.9547925591468811] - }, - { - "bufferView":8, - "type":"SCALAR", - "componentType":5126, - "count":41, - "byteOffset":0, - "min":[0.0], - "max":[1.3333333730697632] - }, - { - "bufferView":8, - "type":"VEC4", - "componentType":5126, - "count":41, - "byteOffset":164, - "min":[0.5278740525245667, - 0.05980343744158745, - -0.005164219066500664, - 0.6816575527191162], - "max":[0.7291450500488281, - 0.06074873358011246, - 0.010677889920771122, - 0.8471472859382629] - }, - { - "bufferView":9, - "type":"SCALAR", - "componentType":5126, - "count":41, - "byteOffset":0, - "min":[0.0], - "max":[1.3333333730697632] - }, - { - "bufferView":9, - "type":"VEC4", - "componentType":5126, - "count":41, - "byteOffset":164, - "min":[0.46624046564102175, - 0.022253239527344705, - -0.004969472531229258, - 0.7899668216705322], - "max":[0.6127254366874695, - 0.02277810126543045, - -0.0010297404369339347, - 0.884364128112793] - }, - { - "bufferView":10, - "type":"SCALAR", - "componentType":5126, - "count":41, - "byteOffset":0, - "min":[0.0], - "max":[1.3333333730697632] - }, - { - "bufferView":10, - "type":"VEC4", - "componentType":5126, - "count":41, - "byteOffset":164, - "min":[0.04496392607688904, - -0.49963682889938357, - -0.9751182198524475, - -0.007626892067492008], - "max":[0.0858357846736908, - -0.21694646775722505, - -0.8619379997253418, - -0.0007973212050274015] - }, - { - "bufferView":11, - "type":"SCALAR", - "componentType":5126, - "count":41, - "byteOffset":0, - "min":[0.0], - "max":[1.3333333730697632] - }, - { - "bufferView":11, - "type":"VEC4", - "componentType":5126, - "count":41, - "byteOffset":164, - "min":[0.2963683009147644, - -0.07822619378566742, - 0.017349064350128175, - -0.9517066478729248], - "max":[0.46018460392951968, - -0.06003456935286522, - 0.04665026813745499, - -0.884788453578949] - }, - { - "bufferView":12, - "type":"SCALAR", - "componentType":5126, - "count":41, - "byteOffset":0, - "min":[0.0], - "max":[1.3333333730697632] - }, - { - "bufferView":12, - "type":"VEC4", - "componentType":5126, - "count":41, - "byteOffset":164, - "min":[0.3672572374343872, - -0.05255403742194176, - -0.028533222153782846, - 0.8724970817565918], - "max":[0.4852927029132843, - -0.04925105348229408, - -0.02186056412756443, - 0.9283761978149414] - }, - { - "bufferView":13, - "type":"SCALAR", - "componentType":5126, - "count":41, - "byteOffset":0, - "min":[0.0], - "max":[1.3333333730697632] - }, - { - "bufferView":13, - "type":"VEC4", - "componentType":5126, - "count":41, - "byteOffset":164, - "min":[0.38121721148490908, - -0.019130436703562738, - 0.007890528067946434, - 0.8665879368782044], - "max":[0.4985951781272888, - -0.01793685182929039, - 0.010320046916604042, - 0.9242538809776306] - }, - { - "bufferView":14, - "type":"SCALAR", - "componentType":5123, - "count":113712, - "byteOffset":0, - "min":[0], - "max":[20440] - }, - { - "bufferView":15, - "type":"VEC3", - "componentType":5126, - "count":20441, - "byteOffset":0, - "min":[-1.3687169551849366, - -2.804671287536621, - -0.9779555201530457], - "max":[1.369223713874817, - 4.250845432281494, - 1.0220444202423096] - }, - { - "bufferView":15, - "type":"VEC3", - "componentType":5126, - "count":20441, - "byteOffset":12, - "min":[-1.0, - -1.0, - -1.0], - "max":[1.0, - 1.0, - 1.0] - }, - { - "bufferView":15, - "type":"VEC2", - "componentType":5126, - "count":20441, - "byteOffset":24, - "min":[0.0, - 0.0], - "max":[1.0, - 1.0] - }, - { - "bufferView":16, - "type":"VEC4", - "componentType":5123, - "count":20441, - "byteOffset":0, - "min":[0, - 0, - 0, - 0], - "max":[22, - 22, - 22, - 22] - }, - { - "bufferView":17, - "type":"VEC4", - "componentType":5126, - "count":20441, - "byteOffset":0, - "min":[0.27579155564308169, - 0.0, - 0.0, - 0.0], - "max":[1.0, - 0.49965667724609377, - 0.30653849244117739, - 0.20180056989192964] - }, - { - "bufferView":18, - "type":"MAT4", - "componentType":5126, - "count":23, - "byteOffset":0, - "min":[-0.9997804164886475, - -0.9105695486068726, - -0.8857035636901856, - 0.0, - -0.695023238658905, - -0.9954227805137634, - -0.9027025103569031, - 0.0, - -0.9545729160308838, - -0.5597602128982544, - -0.6561964750289917, - 0.0, - -0.981546938419342, - -3.9896132946014406, - -0.7664629817008972, - 1.0], - "max":[1.0, - 0.8419796228408814, - 0.9929519891738892, - 0.0, - 0.1238870620727539, - 1.0, - 0.9866530299186707, - 0.0, - 0.9888647198677063, - 0.9852845072746277, - 1.0, - 0.0, - 0.5605638027191162, - 1.3752280473709107, - 2.640928268432617, - 1.0] - }], - "bufferViews":[{ - "buffer":0, - "byteOffset":0, - "byteLength":820 - }, - { - "buffer":1, - "byteOffset":0, - "byteLength":820 - }, - { - "buffer":2, - "byteOffset":0, - "byteLength":820 - }, - { - "buffer":3, - "byteOffset":0, - "byteLength":820 - }, - { - "buffer":4, - "byteOffset":0, - "byteLength":820 - }, - { - "buffer":5, - "byteOffset":0, - "byteLength":820 - }, - { - "buffer":6, - "byteOffset":0, - "byteLength":820 - }, - { - "buffer":7, - "byteOffset":0, - "byteLength":820 - }, - { - "buffer":8, - "byteOffset":0, - "byteLength":820 - }, - { - "buffer":9, - "byteOffset":0, - "byteLength":820 - }, - { - "buffer":10, - "byteOffset":0, - "byteLength":820 - }, - { - "buffer":11, - "byteOffset":0, - "byteLength":820 - }, - { - "buffer":12, - "byteOffset":0, - "byteLength":820 - }, - { - "buffer":13, - "byteOffset":0, - "byteLength":820 - }, - { - "buffer":14, - "byteOffset":0, - "byteLength":227424, - "target":34963 - }, - { - "buffer":14, - "byteOffset":227424, - "byteLength":654112, - "byteStride":32, - "target":34962 - }, - { - "buffer":14, - "byteOffset":881536, - "byteLength":163528, - "target":34962 - }, - { - "buffer":14, - "byteOffset":1045064, - "byteLength":327056, - "target":34962 - }, - { - "buffer":15, - "byteOffset":0, - "byteLength":1472 - }], - "buffers":[{ - "uri":"data:application/octet-stream;base64,AAAAAImICD2JiIg9zczMPYmICD6rqio+zcxMPu/ubj6JiIg+mpmZPquqqj68u7s+zczMPt7d3T7v7u4+AAAAP4mICD8RERE/mpkZPyIiIj+rqio/MzMzP7y7Oz9EREQ/zcxMP1VVVT/e3V0/ZmZmP+/ubj93d3c/AACAP0REhD+JiIg/zcyMPxERkT9VVZU/mpmZP97dnT8iIqI/ZmamP6uqqj+U8yI/GC+1PmECEb9Td8U+AzAjPwNVtD47wBC/FTnGPmLcIz9+37E+aQAQv+NkyD793SQ/KR2uPrHYDr+erMs+kwwmP8KPqT6abg2/xpXPPhk9Jz+m0aQ+3PALv8SW0z7iTCg/IXCgPjWMCr+ZOdc+ziYpP/XQnD6AYgm/vi/aPtDBKT9FLZo+8IcIv9pR3D6wHCo/jpqYPgkFCL/NlN0+HToqPxcXmD4z2ge/0f3dPocMKj+L4pg+eBwIvzVb3T60oCk/wr6aPh23CL+33Ns+nA0pP3o9nT56hQm/iNfZPmReKD+XJqA+sXQKvxp21z6EmSc/c1ijPlV5C7+I0dQ+P8MmP6S8pj7Jiwy/cfrRPrveJT/dQqo+iKYNvwX9zj577iQ/pN6tPmDFDr/D4ss+ufQjP7OFsT7y5A+/v7PIPpXzIj8TL7U+XwIRv1d3xT4z7SE/rdK4PigbEr+PNMI+6+MgP3hovD7pLBO/vPK+PmfaHz8q6L8+RzUUv9y5uz7b0x4/iUjDPrsxFb8zk7g+PNQdP8N+xj5kHxa/AIq1PtDgHD/dfMk+nfoWvwWtsj7bABw/yS/MPnS+F7+IELA+PT8bP8R6zj5qYxi/+NKtPuitGj9FLdA+rdwYvwYnrD6Pbxo/GebQPgkQGb8bcKs+3JcaP7tu0D7i7hi/TearPuwSGz/O/84+n4gYv0BQrT4R4Bs/25PMPqvaF78dr68+zvYcP084yT4W5xa/9e6yPqZDHj+rGsU+xLgVv8nbtj6Jph8/kZTAPthnFL/OGbs+w/UgP3YrvD7OGhO/hCq/Pn0GIj/webg+iQASv5KEwj7btiI/3Qi2PkZEEb84tcQ+lPMiPxgvtT5hAhG/U3fFPg==", - "byteLength":820 - }, - { - "uri":"data:application/octet-stream;base64,AAAAAImICD2JiIg9zczMPYmICD6rqio+zcxMPu/ubj6JiIg+mpmZPquqqj68u7s+zczMPt7d3T7v7u4+AAAAP4mICD8RERE/mpkZPyIiIj+rqio/MzMzP7y7Oz9EREQ/zcxMP1VVVT/e3V0/ZmZmP+/ubj93d3c/AACAP0REhD+JiIg/zcyMPxERkT9VVZU/mpmZP97dnT8iIqI/ZmamP6uqqj/mi7g+grpsu5jH9j0Xymw/vEu3PoT2vbvCVAA+gt1sP/qmsz7tsUO83JUOPtwJbT/t/a0+PhGrvD5XJD5YLG0/EAGnPqqt/bwynD4+0yBtP5SWnz5pXCa99ttZPq/XbD+roZg+ULVHvbDlcj6UXWw/idCSPlMAYb3MvYM+s9FrPw+Ljj4aJXK9vzSLPttVaz9r/Is+M9l7vamjjz5aA2s/RiaLPunufr14FZE+BudqP5hxjD5UJHq9AtmOPpMSaz8Ld48+hotuvfqZiT4Scms/iX+TPpslXr0jioI+4ONrPxUsmD4Pykm9rYh0PsNTbD9PQp0+D+oxvbhLYj5rtGw/S5qiPtzOFr0l204+tvxsPz0WqD6ZafG8U5Q6PlwmbT/fnq0+2aqvvJ7AJT4zLW0/7SCzPj++UbwHnhA+xg5tP96LuD73vWy71sf2PRjKbD9Q0b0+fQrGO1SKzD2BX2w/AeTCPlCigzzL6KI9sdBrP4S3xz70zNc89pZ0Pb4gaz+oP8w+DWYWPdZHJj1SVGo/ym/QPmSLQD1s1Lc8AXJpP2Y51D7yUmk9bDS2O+mCaD8uitc+7qyHPQCvHby+k2c/L0faPixLmD1CPbi84rZmP7VB3D6t3qQ9rAgDveIIZj/iFd0+REqqPViPE70lvGU/E43cPtfIpj1m4wi95O1lP2bj2j6HHpw9ABbQvJCCZj8FA9g+enqKPdyoQbw9b2c/1uPTPp+dZT1OpOc7a5loP12jzj4FFi493TT4PNrXaT+Docg+OXXoPFb2ZD2y+mo/q47CPigXfDxDraU9XNtrPxhSvT4dKqc7n5DQPVFrbD8Eyrk+yLy3uqzo7D2dtGw/5ou4PoK6bLuYx/Y9F8psPw==", - "byteLength":820 - }, - { - "uri":"data:application/octet-stream;base64,AAAAAImICD2JiIg9zczMPYmICD6rqio+zcxMPu/ubj6JiIg+mpmZPquqqj68u7s+zczMPt7d3T7v7u4+AAAAP4mICD8RERE/mpkZPyIiIj+rqio/MzMzP7y7Oz9EREQ/zcxMP1VVVT/e3V0/ZmZmP+/ubj93d3c/AACAP0REhD+JiIg/zcyMPxERkT9VVZU/mpmZP97dnT8iIqI/ZmamP6uqqj9k2w27mKGtPHEBvD7VDW4/SlpWu0HYqTwYgb4+Co9tP+Nk1LsNgJ88YqrFPh8YbD/2YTu8QlyRPNx20D7bwWk/vGCPvFPtgjyFTN0+usVmP6Ghw7xh/m08IWLqPv98Yz8KO/Q8h4ddvPw09r5DTWC/VkkOPQnsU7z6yf++bo9dvx4EHT3+Lk+8oVQDv7qAW79IzSU9wkJNvC5bBb/SQFq/rasoPTvHTLyHAwa/b9dZv62rKD07x0y8hwMGv2/XWb+tqyg9O8dMvIcDBr9v11m/rasoPTvHTLyHAwa/b9dZv62rKD07x0y8hwMGv2/XWb+tqyg9O8dMvIcDBr9v11m/rasoPTvHTLyHAwa/b9dZv62rKD07x0y8hwMGv2/XWb+tqyg9O8dMvIcDBr9v11m/rasoPTvHTLyHAwa/b9dZv62rKD07x0y8hwMGv2/XWb+tqyg9O8dMvIcDBr9v11m/rasoPTvHTLyHAwa/b9dZv62rKD07x0y8hwMGv2/XWb+tqyg9O8dMvIcDBr9v11m/rasoPTvHTLyHAwa/b9dZv62rKD07x0y8hwMGv2/XWb+tqyg9O8dMvIcDBr9v11m/rasoPTvHTLyHAwa/b9dZv62rKD07x0y8hwMGv2/XWb+tqyg9O8dMvIcDBr9v11m/SM0lPcJCTbwuWwW/0kBavx4EHT3+Lk+8oVQDv7qAW79WSQ49CexTvPrJ/75uj12/Cjv0PIeHXbz8NPa+Q01gv6Ghw7xh/m08IWLqPv98Yz+8YI+8U+2CPIVM3T66xWY/9mE7vEJckTzcdtA+28FpP+Nk1LsNgJ88YqrFPh8YbD9KWla7QdipPBiBvj4Kj20/ZNsNu5ihrTxxAbw+1Q1uPw==", - "byteLength":820 - }, - { - "uri":"data:application/octet-stream;base64,AAAAAImICD2JiIg9zczMPYmICD6rqio+zcxMPu/ubj6JiIg+mpmZPquqqj68u7s+zczMPt7d3T7v7u4+AAAAP4mICD8RERE/mpkZPyIiIj+rqio/MzMzP7y7Oz9EREQ/zcxMP1VVVT/e3V0/ZmZmP+/ubj93d3c/AACAP0REhD+JiIg/zcyMPxERkT9VVZU/mpmZP97dnT8iIqI/ZmamP6uqqj8RWyU/+h60vtW3DT9Z/Mc+sx4lP/b7tL6S+g0/pT7HPlNvJD9Odre+TLkOP6MaxT4LYCM/8zW7vmjXDz+708E+chIiPxewv742KRE/8Nm9PiCxID/bR8S+On8SP3yzuT6ZZR8/v3XIvl6yEz8m3LU+308eP6vey74EqhQ/4q2yPmqDHT9VVM6++loVP7hbsD6+CB0/CsnPvg3DFT9L+a4+keAcP05C0L7O5BU/iYWuPrceHT+Qhs++hrAVP6k4rz6Vrx0/OM3NviA1FT+z27A+jHAePwd5y75SjRQ/QQ2zPrFPHz9cu8i+N8YTP52btT4rQiA/arHFvnbnEj/2aLg+tkAhP5luwr4e9hE/ZmG7PhNGIj8SAb++6PUQP312vj5KTiM/4HO7vsTpDz8vncE+LFYkP1zQt75G1A4/a8zEPg9bJT8AH7S+1rcNP1T8xz6mWiY/z2ewvtaWDD/bJcs+yFInPyKzrL7Ycws/CkLOPl1BKD8ECqm+vFEKP7pJ0T4wJCk/33alvuwzCT8MNdQ+xvgpP1gGor6eHgg/vvrWPgO8Kj/0yJ6+YhcHP/aO2T60aSs/Z9WbvuMlBj+D4ds+dPsrP8tNmb6gVQU/9dndPkFmLD/8ape+mbkEP/ZO3z5nkyw/uJyWvr92BD+F7d8+Q3YsPwAil771oQQ/H4ffPkAcLD9Jupi+BiYFPzJM3j6rgis/X2ebvpYCBj+ON9w+qKoqP4YTn74iLwc/7VPZPhedKT/lhKO+X5cIP4jH1T7gbig/VlSovjEZCj/j3tE+Z0InP5DyrL5ihws/Jw3OPndCJj/rwrC+pLIMP87Yyj4llyU/rkGzvth0DT+zucg+EVslP/oetL7Vtw0/WfzHPg==", - "byteLength":820 - }, - { - "uri":"data:application/octet-stream;base64,AAAAAImICD2JiIg9zczMPYmICD6rqio+zcxMPu/ubj6JiIg+mpmZPquqqj68u7s+zczMPt7d3T7v7u4+AAAAP4mICD8RERE/mpkZPyIiIj+rqio/MzMzP7y7Oz9EREQ/zcxMP1VVVT/e3V0/ZmZmP+/ubj93d3c/AACAP0REhD+JiIg/zcyMPxERkT9VVZU/mpmZP97dnT8iIqI/ZmamP6uqqj/dOeA+H5WcPffFOT4Fj2A/mkDfPsvylj1UrD4+05pgP75k3D4a+oY9985MPhKxYD/+49c+pM1ePQliYj5XsWA/ZDzSPpptKD0kb3w+tHtgP+sgzD6R7OU8W7qLPuAFYD/STsY+tOuIPDUkmD6+YV8/lGDBPvdwADyjWKI+lLJeP7m4vT5//9k6CL+pPrUcXj/vhLs+iTL5ugIkrj6Rul0/9Mu6PuCeR7uQkq8+HZldPwrquz67hKa6I1utPpjMXT9Sg74+vstCO9cnqD6NPl4/qPXBPlQRETygJ6E+6MheP67rxT4qBIM86/OYPiZVXz91MMo+dgbGPCvpjz6O1F8/rZ/OPlMxCD26RYY+Ez1gP2Ae0z4plzA92W94PsKHYD+7l9c+dc9bPWrIYz71r2A/5frbPvW7hD3M0k4+0LJgP9c54D77lJw9FsY5PgWPYD/mSOQ+6ju1PenUJD6mRGA/7R3oPspxzj2lMRA+I9VfPx6w6z5U7ec9MyD4PVFDXz+m9+4+QKsAPk5R0T2Zk14/R+3xPh4gDT6MeKw9QMxdP4uJ9D4PDhk+lDiKPQL2XD+8w/Y+RhQkPqTVVj0GHVw/AI/4PjCkLT5npSI921JbP6DT+T7A1TQ+Wzv4PJiyWj+qWfo+q+w3PomC1zyua1o/XwP6PlTtNT7Jo+w8q5laP8zz+D5a1S8++9YWPcAiWz+wE/c+WbIlPkjtTT24+1s/RU/0Po75Fz4tSI09TgpdPzGq8D7Drwc+LGu8PXUmXj/+Wuw+b+7sPXBh8D0GI18/E97nPny9zD3UkBE+vN1fP8Tn4z5d2LI9stMmPmlNYD+GMOE+okKiPR3hND4dgWA/3TngPh+VnD33xTk+BY9gPw==", - "byteLength":820 - }, - { - "uri":"data:application/octet-stream;base64,AAAAAImICD2JiIg9zczMPYmICD6rqio+zcxMPu/ubj6JiIg+mpmZPquqqj68u7s+zczMPt7d3T7v7u4+AAAAP4mICD8RERE/mpkZPyIiIj+rqio/MzMzP7y7Oz9EREQ/zcxMP1VVVT/e3V0/ZmZmP+/ubj93d3c/AACAP0REhD+JiIg/zcyMPxERkT9VVZU/mpmZP97dnT8iIqI/ZmamP6uqqj8JJPm53R9au8Zsa71Kk38/ZOJdOszBXrsJYoC9tH5/P7SCmDvbEWe7mROfveI4fz9kOCs8Imllu9Stzb2qsH4/9bOOPF+KTLtfygK+49x9P9CXyTzxjRi7o5UfvvzKfD9TW/88RNeiuijgOb7Xnns/bqMVPTvVxrhAYU++ToV6PwB6JT3nF2c6gupevnKleT9w2C49RxTHOs8eaL6kGHk/X+QxPRmD4zqxHWu+fel4P1wlLT2XotE6tCFrvp3seD85BCI9hLenOsYqa76a83g/JAsTPZOnXjpFNmu+P/x4PzKCAT0iMLU5sEJrvkYFeT8GWtw86fJbuRRPa77ZDXk/nRqzPOBEUrrMWmu+ZxV5P/UCiDxTPLq6YmVrvowbeT99SDc8NN0Gu4Rua74AIHk/0dy5O6VcMbv4dWu+liJ5P/Xl5jixN1y7nHtrvjQjeT+9p7K7vIiDu1p/a77SIXk//60zvNXFmLszgWu+eR55P781hrwWoa27NIFrvkUZeT9zTbG8zeHBu35/a75mEnk/6ozavNVD1btEfGu+Jgp5P6ybAD2Tbuc71XdrPuwAeb+nJBI9Ruj3O6Nyaz5P93i/xB0hPav8AjxPbWs+KO54v+4+LD3iNgg80mhrPsvmeL/z/TA9iHEKPMRmaz6C43i/QwcuPUDnBjyvZmg+0RJ5v//pJD3v/vg7ty5fPhmgeb8jgRU9NRTZOzSfTz61gHq/oyIAPed8sztfFTo+M5t7v77xy7xryo+7DMAfvmHIfD+RnpK8vfJqu83oAr4/230/5xI2vLoXUbsy0829yq9+PyM6s7uPWE67OSWfvYY4fz/o8+a6ms9Vu5ZmgL2efn8/CST5ud0fWrvGbGu9SpN/Pw==", - "byteLength":820 - }, - { - "uri":"data:application/octet-stream;base64,AAAAAImICD2JiIg9zczMPYmICD6rqio+zcxMPu/ubj6JiIg+mpmZPquqqj68u7s+zczMPt7d3T7v7u4+AAAAP4mICD8RERE/mpkZPyIiIj+rqio/MzMzP7y7Oz9EREQ/zcxMP1VVVT/e3V0/ZmZmP+/ubj93d3c/AACAP0REhD+JiIg/zcyMPxERkT9VVZU/mpmZP97dnT8iIqI/ZmamP6uqqj93JzE9F+IIvjg8fT9zCCs95SUwPc2FC76BJX0/xJErPd1ILT2mHRO+ouF8P6UVLT3w2Sg90KUevnFzfD/bVC89UzcjPbh9LL7j43s/vfQxPVzJHD1wxTq+9UJ7P/uWND0k8BU9INVHvnekej808TY9ofUOPQ+IUr7dGno/XNg4PaAJCD0aQ1q+k7N5PzI+Oj2qRgE9DdNevvt1eT+8Jzs9anH1PG5EYL48ZHk/laQ7PXOM6TxbtFy+AJp5P/iKOz1r1N48y2xUvrMPej+5+jo9/qTUPOhISb6/pXo/aDs6PeSzyjyrNzy+oEp7P19yOT0o28A8nMctvkXzez80tjg9KQm3PK1XHr4lmHw/zhU4Pac1rTyFLQ6+5DN9P7qbNz2OYKM8s/76vafCfT8PTzc9wY2ZPKj12L2qQX4/vjQ3PcTEjzz1kba9Aa9+P69PNz1kEIY8GSCUvX0Jfz8WoTc9nPx4PIXcY72NUH8/Iyg4Pfo9ZjxLnyC9Q4R/PyTiOD17DlQ8XYm+vE2lfz+Pyjk9v6JCPE+3ArwPtX8/rdk6PWpAMjwLFNA7t7V/P2IEPD3USyM8dn6ePH2qfz/fOT09rGAWPOto+Tz+l38/XmE+PduTDDzLfR4964R/Pz5SPz1tQgg8PeYsPWZ7fz9VwD893m8PPDNyID3Cg38/+Rs/PeuPJjxtcvQ8fJl/PzAkPT38KVA8721nPJmwfz+n8Dk91iSHPEFW97uTtH8/0tw1PalhsDyn8wq9a41/P76QMT0MLeE8SVGAvTErfz/35y09s50JPd4bub3KlH4/GZsrPW3dHj0tMei9Zu59PzvKKj3JlCw9EYgDvthsfT9g3yo9dycxPRfiCL44PH0/cwgrPQ==", - "byteLength":820 - }, - { - "uri":"data:application/octet-stream;base64,AAAAAImICD2JiIg9zczMPYmICD6rqio+zcxMPu/ubj6JiIg+mpmZPquqqj68u7s+zczMPt7d3T7v7u4+AAAAP4mICD8RERE/mpkZPyIiIj+rqio/MzMzP7y7Oz9EREQ/zcxMP1VVVT/e3V0/ZmZmP+/ubj93d3c/AACAP0REhD+JiIg/zcyMPxERkT9VVZU/mpmZP97dnT8iIqI/ZmamP6uqqj/lryo+YX39PIXklzubSny/Uq4uPqCD+zz4bmM7qR98vwUpOj69V/U8ZnoEOQSee7/YkEs+GpXqPImHobu+x3q/aWlgPpZz2zyhhzO8uqp5v/PadT5VTsk8FkSMvMdkeL/gtIQ+j3G2PDAFurwFHne/AbOMPp1dpTzUK9+8tP11v654kj6HF5g8Z9n5vGshdb/z45U+mtqPPCvLBL0bmnS/zQCXPsIcjTxjWQe9SW10v2b/lj4vmo489e8EvZxudL/q+5Y+aD+SPFcS/ry/cXS/9/aWPuhElzx3z+281nV0v+Xwlj7INZ08V5HavFR6dL/r6ZY+X8WjPNBPxbzZfnS/MuKWPiG9qjxNu668JIN0v9zZlj7T87E8M1mXvAqHdL8I0ZY+E0i5PCsrf7xuinS/18eWPvCdwDwJlk+8Po10v2m+lj6D3Mc8mJQgvHSPdL/htJY+0uzOPCt45bsRkXS/ZauWPsG41Ty4OI27HZJ0vx6ilj4DKtw8WTTmuqWSdL86mZY+giniPN3uIjq8knS/75CWPoye5zxljDY7fJJ0v3WJlj6Obew8bcSZO/6RdL8Qg5Y+YHfwPEJCzjtkkXS/CX6WPj6X8zyJ4PY7zZB0v7l6lj7hoPU8Q68IPF2QdL+FeZY+WV32PIB4DTwxkHS/BF6VPiuG9jzqWgw8oLt0vyb3kT5hAfc8vO0IPNo+db/JOYw+zsn3PAAmAzzTFHa/3UiEPtTP+DygTvY7my13vwwodT5Q+Pk8FcXiOw9teL9u5F8+fR/7PMtgzTtxrXm/3zxLPgMh/Dy0m7g7fsd6v6QAOj4r4vw8eEinOyade7/Goy4+y1b9PD7dmztPH3y/5a8qPmF9/TyF5Jc7m0p8vw==", - "byteLength":820 - }, - { - "uri":"data:application/octet-stream;base64,AAAAAImICD2JiIg9zczMPYmICD6rqio+zcxMPu/ubj6JiIg+mpmZPquqqj68u7s+zczMPt7d3T7v7u4+AAAAP4mICD8RERE/mpkZPyIiIj+rqio/MzMzP7y7Oz9EREQ/zcxMP1VVVT/e3V0/ZmZmP+/ubj93d3c/AACAP0REhD+JiIg/zcyMPxERkT9VVZU/mpmZP97dnT8iIqI/ZmamP6uqqj9uSSI/a5F4PSE7NjsnYEU/JIMhP4KFeD3cz0U7iwJGP9BEHz/EXXg9MqVyO6PRRz9u0Rs/0hF4PWximztyhUo/MJsXP7Wddz2zTMQ7d7FNP38uEz80CXc9gYjuO87hUD8XEA8/mGd2PTyYCjxpuVM/zaILP6HQdT2BcRo8+P9VP2UgCT/fWHU9PeslPNCdVz9ToAc/og11PXq6LDw0kFg/wSIHP3P0dD1R8i48pd5YPwzlBz9LG3U9R4MrPBtlWD/uqgk/WHN1PQx0Izx2RVc/vAkMPxrjdT0ymBg8qrxVP7DKDj8xXHY9ItsLPD3oUz+4zBE/cdV2PZ2S+ztX2VE/r/kUP5pIdz2GgN07SZtPP3xBGD9AsXc9EAm+O302TT/Slxs/Qwx4PbSWnTu4sUo/qfIeP3RXeD3ZBXk7AxNIP2lJIj9rkXg9ijs2OytgRT94lCU/bLl4PX7G5joIn0I/h8woP1fPeD2IUkQ6BtY/P0TqKz+q03g9HH2AuWsMPT/T5S4/icd4PVionrrlSjo/MLYxP9useD1X4Au7Npw3P/xPND91hng9sJxEu4sONT/VozY/blh4PXMLeLtrtTI/gZo4P7IoeD3k95G7+q0wP3MMOj8vAHg9e0Wiuz8oLz9AqTo/mu13PZw4qbscgS4/BEQ6P7L5dz1Eu6S7J+0uP/YLOT/DHHg9W/SWuyE3MD/C+TY/21B4PceDf7tvXTI/oBQ0P2+KeD3QhT+7lUk1P/B+MD8+ung9uzjjunrHOD8Qgyw/iNJ4PZYw5bkHgTw/9JUoP27OeD1tAlY6/QVAP3REJT9htng9lozzOgDjQj8VDyM/W5x4PbClJjv9vEQ/bkkiP2uReD0hOzY7J2BFPw==", - "byteLength":820 - }, - { - "uri":"data:application/octet-stream;base64,AAAAAImICD2JiIg9zczMPYmICD6rqio+zcxMPu/ubj6JiIg+mpmZPquqqj68u7s+zczMPt7d3T7v7u4+AAAAP4mICD8RERE/mpkZPyIiIj+rqio/MzMzP7y7Oz9EREQ/zcxMP1VVVT/e3V0/ZmZmP+/ubj93d3c/AACAP0REhD+JiIg/zcyMPxERkT9VVZU/mpmZP97dnT8iIqI/ZmamP6uqqj8St+4+JJm6PFv4hrqwZWI/yhPxPjWNujyskJa6RsVhPwnX9z6VY7o8hm7DurjuXz8wAgE/mQ+6PCHKA7tDCl0/XQoHP46JuTwKsCy7TmhZPxQsDT8U2bg8jtpWuxB6VT+lshI/bxW4PA1kfbvUt1E/UyoXP4pctzx5eI67aIVOPxVdGj/VyLY8e+CZu0IkTD8pPxw/qWu2PG6joLs2tEo/k9scP21Mtjz11qK7RDtKP8eyHD+fVLY84EOiu+NaSj98URw/B2i2PGjloLsUpko/EMwbP1WCtjxeBZ+7ugxLP54sGz9LobY8lMicu66GSz/9eBo/kMO2PHJEmrslD0w/4rQZPz/otjybhpe7BaNMP9PiGD+zDrc8aZiUuyRATT+QBBg/cja3PGaAkbv45E0/XhsXPx5ftzxbQ467WpBOPy0oFj9tiLc83uSKu2VBTz+dKxU/I7K3PGNnh7t3908/IiYUPw/ctzy/zIO7DLJQPwIYEz8IBrg8GBaAu8lwUT9PARI/7i+4PN6HeLtxM1I/6eEQP6hZuDwFrHC77/lSP3a5Dz8kg7g8uJZou1HEUz8/hw4/Wqy4PGZDYLvjklQ/AEoNP07VuDzbqVe7Q2ZVP2L/Cz8g/rg8jLpOu7o/Vj+cogo/Jye5PEdVRbsNIlc//Q8JP/JTuTxThjq7byNYPwkpBz+Bhrk8dIEtuz5VWT8r8QQ/iby5PFVlHrtoslo/cHUCP9nyuTw2kg278i9cP5mi/z6ZJbo8cI/3uh27XT+PY/o+/FC6PI1t1Lr1OF8/N6X1PlByujz11bS6RolgP7fk8T7GiLo8WfabumGNYT+RhO8+PZW6POZDjLpnL2I/ErfuPiSZujxb+Ia6sGViPw==", - "byteLength":820 - }, - { - "uri":"data:application/octet-stream;base64,AAAAAImICD2JiIg9zczMPYmICD6rqio+zcxMPu/ubj6JiIg+mpmZPquqqj68u7s+zczMPt7d3T7v7u4+AAAAP4mICD8RERE/mpkZPyIiIj+rqio/MzMzP7y7Oz9EREQ/zcxMP1VVVT/e3V0/ZmZmP+/ubj93d3c/AACAP0REhD+JiIg/zcyMPxERkT9VVZU/mpmZP97dnT8iIqI/ZmamP6uqqj8YLDg9/EqvvtU+cL9cTPe7rwk9PSvOsb7gxG+/xozwu/kdSz26Abm+21tuv8Fu37spuGA9Ht7DvqkabL98Bcy7hvd6PV3H0L7JN2m/EFS/uyUtiz3C8d2+Eglmv2OOvrsV0Zc9Kdjpvh7xYr+N+si7JD6iPZF9877ERmC/WpHZu6zRqT3zaPq+KkZevyom6rvAUq49UX3+vqEOXb+c0vW7rMqvPWbQ/774p1y/Auv5u5murj3AA/6+gzBdv43W8btFE6w9Gsf5vuhsXr8le9+7N4+oPS4K9L4mDmC/WRTIu19upD0TRO2+a+phv1CRrruN3p89VLvlvu7nY79fzZS7yv6aPd6e3b5N9WW/XBV4u0zmlT1gEdW+9gVovyBaSruIp5A9NS7MvokQar8UqSG7TVKLPekMw764DWy/Ur39utn0hT0qw7m+svdtv7gWxbpxnIA9uWWwvtHJb7/u7Zm6j6x2PVgKp74zgHG/KNR4ugZgbD2tyJ2+kxdzv+lpWLrucGI95buUvhKNdL9SA1G6SQFZPdoEjL4A3nW/BwFgumo7UD0pzoO+dgd3vwDCgLp7V0g9CaR4vs0FeL+NCpi6o6hBPc7Oa75J03i/0vOxus25PD2LPWK+BWV5v07NyLqpoTo9Nydevlmheb8CedO6tp06PaFpYL4BgXm/QP3guhCQOj0PVme+wBt5v9E4Bbvnczo92fVyvnJqeL8hFSi7bUI6PWh2gb7jZ3e/6hVYu5P1OT2uIIu+Ohd2v9IzibsHjTk9tZmVvsyMdL8N7Ki7YRM5PRCpn75d9HK/vIPHu+ieOD2f+Ke+sIxxv2bh4Lu9Sjg9smitvkWWcL8KhvG7GCw4PfxKr77VPnC/XEz3uw==", - "byteLength":820 - }, - { - "uri":"data:application/octet-stream;base64,AAAAAImICD2JiIg9zczMPYmICD6rqio+zcxMPu/ubj6JiIg+mpmZPquqqj68u7s+zczMPt7d3T7v7u4+AAAAP4mICD8RERE/mpkZPyIiIj+rqio/MzMzP7y7Oz9EREQ/zcxMP1VVVT/e3V0/ZmZmP+/ubj93d3c/AACAP0REhD+JiIg/zcyMPxERkT9VVZU/mpmZP97dnT8iIqI/ZmamP6uqqj+WvZc+DjWgvaAfjjwMo3O/hDmZPr2Cn71jaZY8KGhzvzGTnT7Sap29sgmuPKu3cr8JW6Q+G/iZvRFc0TwWmXG/gMisPpJglb2Ry/o8SCFwvyLntT4sFZC9+BgSPfVxbr+C1b4+Qa+Kvfk2JD2Tsmy/TPDGPqfIhb1KIDI9OAdrv9TZzT4824G9uhw7PeOKab8Ea9M+JGl+vVoUPz1gTmi/lJ/XPhfye71PRj492Flnv6Gv2j7/Dnu9lpw7PbmkZr/KF90+Clp6vd2BOT0oFGa/8BXfPozCeb3QwTc9+Zplv/zI4D4oQHm9SEI2PY0yZb/3QuI+9814vfnzND0F12S/fo/jPs5oeL0GzTM93oVkv3y25D6EDni9tsYyPWM9ZL+lveU+iL13vS7cMT1W/GO/LanmPrJ0d73YCTE9zcFjv0R85z4kM3e9AE0wPRaNY79aOeg+MPh2vZCjLz2qXWO/TuLoPlTDdr3zCy89IDNjv4N46T4ylHa9/IQuPS4NY7/3/Ok+g2p2vdUNLj2e62K/TXDqPiNGdr38pS09UM5iv7TS6j4JJ3a9TE0tPUG1Yr/gI+s+VQ12vRcELT2MoGK/wmLrPmT5db1Yyyw9epBivwGN6z7963W9NKUsPauFYr9Rnes+z+Z1vXmWLD1/gWK/+zjqPqG/d71lFSs98dxivzHw5T67S329K2gmPSPyY79Qrt4+sRyDvVVUHj0ouWW/R5XUPr7XiL2QyBI9mxRov/InyD5wJY+9ER8EPVfNar/gcbo+CSuVvW/W5jxalW2/JQmtPtAimr2PNsU8HBZwv5XIoT5Enp29GVioPLMGcr8XVpo+pZWfvXPwlDw6O3O/lr2XPg41oL2gH448DKNzvw==", - "byteLength":820 - }, - { - "uri":"data:application/octet-stream;base64,AAAAAImICD2JiIg9zczMPYmICD6rqio+zcxMPu/ubj6JiIg+mpmZPquqqj68u7s+zczMPt7d3T7v7u4+AAAAP4mICD8RERE/mpkZPyIiIj+rqio/MzMzP7y7Oz9EREQ/zcxMP1VVVT/e3V0/ZmZmP+/ubj93d3c/AACAP0REhD+JiIg/zcyMPxERkT9VVZU/mpmZP97dnT8iIqI/ZmamP6uqqj8cl9A+YaNOvT3s17xMVmk//M7RPmTrTr2019a8WhBpP61O1T6puE+9lbnTvL9EaD/3mto+FOtQveX1zrylCGc/4vDgPm9SUr1vMcm8IYJlPxVz5z5ru1O99y/DvH7iYz9ZYe0+/PxUvV2kvby8WmI/qjnyPl7+Vb0zD7m8TBFhPza59T4utVa9fri1vBceYD+ny/c+QCBXvS27s7zli18/SXj4PudCV73tFLO8+FtfP92v9z6qGle969WzvJiTXz8p2fU+p7tWveKZtbxUFWA/T17zPmM6Vr2d+Le8UcJgP4Z08D7loFW9Or26vKWKYT9pO+0+CvVUvQ/IvbytZGI/58fpPqw6VL0SBMG8/kljP0op5j6jdFO99mHEvPA1ZD9pa+I+LaVSvQLWx7wBJWU/M5jePkHOUb2KVsu8XRRmP5642j648VC9FNvOvKEBZz8J1dY+ZhFQvexb0ry86mc/G/bSPkcvT71f0dW8t81oPyclzz6ZTU69YDPZvKKoaT/XbMs+A29NvfZ43LxweWo/HNrHPtGWTL1yl9+8xj1rP9h9xD5hyUu9CIHivK7yaz9Ab8E+uQxLvdQi5bwglGw/QdG+PuJpSr1TYOe8ABxtPzfevD7N70m9fQnpvM9/bT8kCbw+ebtJvYG+6bwQqm0/7mS8PgjSSb2QcOm845dtP1N+vT4LF0q9RYHovOpfbT82V78+iopKvejt5rwCAW0/r+HBPmooS72RwOS8tHxsPw33xD5z5ku9SxjivGjZaz/pUMg+B7NMvRMw37yCJGs/y4vLPkl2Tb3XXdy8uXJqP0I5zj6zFk69cwPavMfcaT8I+88+PX9OvV922LweeWk/HJfQPmGjTr097Ne8TFZpPw==", - "byteLength":820 - }, - { - "uri":"data:application/octet-stream;base64,AAAAAImICD2JiIg9zczMPYmICD6rqio+zcxMPu/ubj6JiIg+mpmZPquqqj68u7s+zczMPt7d3T7v7u4+AAAAP4mICD8RERE/mpkZPyIiIj+rqio/MzMzP7y7Oz9EREQ/zcxMP1VVVT/e3V0/ZmZmP+/ubj93d3c/AACAP0REhD+JiIg/zcyMPxERkT9VVZU/mpmZP97dnT8iIqI/ZmamP6uqqj/nLsM+b7ecvEZHATznm2w/mxbEPrOXnLy+4AE8/WtsP/W/xj5gOZy8CaQDPJXdaz8D68o+paKbvMpmBjwD+mo/tyHQPt7gmrzS2gk8ctVpP/fR1T60Bpq8XJ8NPBGMaD/5cts+yieZvM5ZETyDO2c/pZ/gPplUmLwxxxQ8qPxlPyIc5T6NmJe8478XPL/gZD+nzeg+PvqWvCUyGjy78WM/JK/rPot8lryeGhw89TNjP0zo7T4yGpa8mJMdPHifYj/hxe8+w8aVvOvPHjyAIWI/s2jxPuh8lbxS5R88/rFhPyLh8j75OZW8pt4gPPBMYT+sOPQ+bvyUvDDCITwF8GA/ZHX1Pk3DlLz3kyI8xZlgP1Wb9j7yjZS8qFYjPDhJYD9crfc+6luUvCgMJDyu/V8/eq34PuYslLzMtSQ8sbZfPxWd+T6vAJS8f1QlPPFzXz8gffo+JteTvOToJTw7NV8/JE77Pjqwk7xVcyY8d/peP0sQ/D7si5O87fMmPKfDXj9Zw/w+T2qTvIVqJzzokF4/oWb9Po5Lk7yr1ic8eGJeP9H4/T7uL5O8fzcoPMM4Xj+zd/4+4xeTvImLKDx3FF4/hN/+PisEk7xM0Cg8sfZdP4Ip/z4X9pK8TwEpPHDhXT/eR/8+TvCSvGoVKTy12F0/nkb+PjIhk7wHayg8hCJeP24v+z70tZO8/V4mPB0DXz829fU+JKyUvKDoIjzNdmA/9LLuPuX2lbzSGR48K2piPxTJ5T7Ve5e8bzIYPGO1ZD97+Ns+yBKZvDuyETzLG2c//GLSPjyLmrwsWQs8KFRpPwRayj5Yt5u8wAYGPEMZaz8rCcU+SnacvGeBAjyNOWw/5y7DPm+3nLxGRwE855tsPw==", - "byteLength":820 - }, - { - "uri":"data:application/octet-stream;base64,BUqhBRBKAUoFSg9K/UkBSg5Kz0/9SdJPEEoRSgxKD0oQSgtKDkoPSgpK0k8OStFPDEoNSghKC0oMSgdKCkoLSgZK0U8KStBPCEoJSmoSB0oISmkSBkoHSmgS0E8GSjUC+UmhBQRK9Un5SQNK8Un1SQJKHgXxSZURBEoFSgBKA0oESv9JAkoDSv5JlRECSpQRAEoBSvxJ/0kASvtJ/kn/SfpJlBH+SZMR/En9Sc5P+0n8Sc1P+kn7ScxPkxH6SREC7UmhBfhJ6UntSfdJ5UnpSfZJmAXlSTkT+En5SfRJ90n4SfNJ9kn3SfJJORP2STgT9En1SfBJ80n0Se9J8knzSe5JOBPySTcT8EnxSZIR70nwSZER7knvSZARNxPuSRACEUqhBexJDUoRSutJCUoNSupJVgUJSm0S7EntSehJ60nsSedJ6knrSeZJbRLqSWwS6EnpSeRJ50noSeNJ5knnSeJJbBLmSWsS5EnlSTYT40nkSTUT4knjSTQTaxLiSTAC1UmfBeBJ0UnVSd9JzUnRSd5JngXNSUsT4EnhSdxJ30ngSdtJ3knfSdpJSxPeSUoT3EndSdhJ20ncSddJ2knbSdZJShPaSUkT2EnZSXYS10nYSXUS1knXSXQSSRPWSTQCyUmfBdRJxUnJSdNJwUnFSdJJLgXBSdcR1EnVSdBJ00nUSc9J0knTSc5J1xHSSdYR0EnRScxJz0nQSctJzknPScpJ1hHOSdURzEnNSUgTy0nMSUcTyknLSUYT1RHKSQwCvUmfBchJuUm9ScdJtUm5ScZJoAW1SU4TyEnJScRJx0nIScNJxknHScJJThPGSU0TxEnFScBJw0nESb9JwknDSb5JTRPCSUwTwEnBSdQRv0nASdMRvkm/SdIRTBO+SRFP4UmfBbxJ3UnhSbtJ2UndSbpJWQXZSXkSvEm9SbhJu0m8SbdJukm7SbZJeRK6SXgSuEm5SbRJt0m4SbNJtkm3SbJJeBK2SXcStEm1SVETs0m0SVATskmzSU8TdxKySV9PpUmdBbBJoUmlSa9JnUmhSa5JnAWdSUUTsEmxSaxJr0mwSatJrkmvSapJRROuSUQTrEmtSahJq0msSadJqkmrSaZJRBOqSUMTqEmpSTQSp0moSTMSpkmnSTISQxOmSTMCmUmdBaRJlUmZSaNJkUmVSaJJKwWRScsRpEmlSaBJo0mkSZ9JokmjSZ5JyxGiScoRoEmhSZxJn0mgSZtJnkmfSZpJyhGeSckRnEmdSUITm0mcSUETmkmbSUATyRGaSQ0CjUmdBZhJiUmNSZdJhUmJSZZJngWFSUgTmEmZSZRJl0mYSZNJlkmXSZJJSBOWSUcTlEmVSZBJk0mUSY9JkkmTSY5JRxOSSUYTkEmRScgRj0mQSccRjkmPScYRRhOOSQwCsUmdBYxJrUmxSYtJqUmtSYpJSQWpSTcSjEmNSYhJi0mMSYdJikmLSYZJNxKKSTYSiEmJSYRJh0mISYNJhkmHSYJJNhKGSTUShEmFSUsTg0mESUoTgkmDSUkTNRKCSTQCdUmbBYBJcUl1SX9JbUlxSX5JyE9tSctPgEmBSXxJf0mASXtJfkl/SXpJy09+ScpPfEl9SXhJe0l8SXdJekl7SXZJyk96SclPeEl5SUYSd0l4SUUSdkl3SUQSyU92STICaUmbBXRJZUlpSXNJYUllSXJJKAVhSb8RdEl1SXBJc0l0SW9JcklzSW5JvxFySb4RcElxSWxJb0lwSWtJbklvSWpJvhFuSb0RbEltScdPa0lsScZPaklrScVPvRFqSQZPXUmbBWhJWUldSWdJVUlZSWZJnAVVSUITaElpSWRJZ0loSWNJZklnSWJJQhNmSUETZEllSWBJY0lkSV9JYkljSV5JQRNiSUATYElhSbwRX0lgSbsRXklfSboRQBNeSQ0CgUmbBVxJfUmBSVtJeUl9SVpJTQV5SUkSXEldSVhJW0lcSVdJWklbSVZJSRJaSUgSWElZSVRJV0lYSVNJVklXSVJJSBJWSUcSVElVSUUTU0lUSUQTUklTSUMTRxJSSTMCRUmZBVBJQUlFSU9JPUlBSU5JlwU9STMTUElRSUxJT0lQSUtJTklPSUpJMxNOSTITTElNSUhJS0lMSUdJSklLSUZJMhNKSTETSElJSVISR0lISVESRklHSVASMRNGSTECOUmZBURJNUk5SUNJMUk1SUJJJQUxSbMRRElFSUBJQ0lEST9JQklDST5JsxFCSbIRQElBSTxJP0lASTtJPkk/STpJshE+SbERPEk9STATO0k8SS8TOkk7SS4TsRE6SQ8CLUmZBThJKUktSTdJJUkpSTZJmgUlSTwTOEk5STRJN0k4STNJNkk3STJJPBM2STsTNEk1STBJM0k0SS9JMkkzSS5JOxMySToTMEkxSbARL0kwSa8RLkkvSa4ROhMuSQ4CUUmZBSxJTUlRSStJSUlNSSpJUAVJSVUSLEktSShJK0ksSSdJKkkrSSZJVRIqSVQSKEkpSSRJJ0koSSNJJkknSSJJVBImSVMSJEklST8TI0kkST4TIkkjST0TUxIiSVBPFUmWBSBJEUkVSR9JDUkRSR5JmAUNSTYTIEkhSRxJH0kgSRtJHkkfSRpJNhMeSTUTHEkdSRhJG0kcSRdJGkkbSRZJNRMaSTQTGEkZSV4SF0kYSV0SFkkXSVwSNBMWSTACCUmWBRRJBUkJSRNJAUkFSRJJIgUBSacRFEkVSRBJE0kUSQ9JEkkTSQ5JpxESSaYREEkRSQxJD0kQSQtJDkkPSQpJphEOSaURDEkNSTkTC0kMSTgTCkkLSTcTpREKSRAC/UiWBQhJ+Uj9SAdJ9Uj5SAZJlwX1SDATCEkJSQRJB0kISQNJBkkHSQJJMBMGSS8TBEkFSQBJA0kESf9IAkkDSf5ILxMCSS4TAEkBSaQR/0gASaMR/kj/SKIRLhP+SA8CIUmWBfxIHUkhSftIGUkdSfpIUwUZSWES/Ej9SPhI+0j8SPdI+kj7SPZIYRL6SGAS+Ej5SPRI90j4SPNI9kj3SPJIYBL2SF8S9Ej1SDMT80j0SDIT8kjzSDETXxLySDEC5UiVBfBI4UjlSO9I3UjhSO5IwU/dSMRP8EjxSOxI70jwSOtI7kjvSOpIxE/uSMNP7EjtSOhI60jsSOdI6kjrSOZIw0/qSMJP6EjpSBAP50joSA8P5kjnSA4Pwk/mSC8C2UiVBeRI1UjZSONI0UjVSOJIbwTRSL8O5EjlSOBI40jkSN9I4kjjSN5Ivw7iSL4O4EjhSNxI30jgSNtI3kjfSNpIvg7eSL0O3EjdSMBP20jcSL9P2kjbSL5PvQ7aSM4BzUiVBdhIyUjNSNdIxUjJSNZIgAXFSPES2EjZSNRI10jYSNNI1kjXSNJI8RLWSPAS1EjVSNBI00jUSM9I0kjTSM5I8BLSSO8S0EjRSLwOz0jQSLsOzkjPSLoO7xLOSMkB8UiVBcxI7UjxSMtI6UjtSMpIhATpSBMPzEjNSMhIy0jMSMdIykjLSMZIEw/KSBIPyEjJSMRIx0jISMNIxkjHSMJIEg/GSBEPxEjFSO4Sw0jESO0SwkjDSOwSEQ/CSCQCtUiTBcBIsUi1SL9IrUixSL5IkgWtSCcTwEjBSLxIv0jASLtIvki/SLpIJxO+SCYTvEi9SLhIu0i8SLdIuki7SLZIJhO6SCUTuEi5SJoPt0i4SJkPtki3SJgPJRO2SC4CqUiTBbRIpUipSLNIoUilSLJIewShSO8OtEi1SLBIs0i0SK9IskizSK5I7w6ySO4OsEixSKxIr0iwSKtIrkivSKpI7g6uSO0OrEitSCQTq0isSCMTqkirSCIT7Q6qSDQBnUiTBahImUidSKdIlUiZSKZIlAWVSCoTqEipSKRIp0ioSKNIpkinSKJIKhOmSCkTpEilSKBIo0ikSJ9IokijSJ5IKROiSCgToEihSOwOn0igSOsOnkifSOoOKBOeSM4BwUiTBZxIvUjBSJtIuUi9SJpIogS5SJ0PnEidSJhIm0icSJdImkibSJZInQ+aSJwPmEiZSJRIl0iYSJNIlkiXSJJInA+WSJsPlEiVSC0Tk0iUSCwTkkiTSCsTmw+SSAROhUiRBZBIgUiFSI9IfUiBSI5Iuk99SL1PkEiRSIxIj0iQSItIjkiPSIpIvU+OSLxPjEiNSIhIi0iMSIdIikiLSIZIvE+KSLtPiEiJSKwPh0iISKsPhkiHSKoPu0+GSAhOeUiRBYRIdUh5SINIcUh1SIJI5QNxSIUMhEiFSIBIg0iESH9IgkiDSH5IhQyCSIQMgEiBSHxIf0iASHtIfkh/SHpIhAx+SIMMfEh9SLlPe0h8SLhPekh7SLdPgwx6SDsBbUiRBXhIaUhtSHdIZUhpSHZIkgVlSCQTeEh5SHRId0h4SHNIdkh3SHJIJBN2SCMTdEh1SHBIc0h0SG9IckhzSG5IIxNySCITcEhxSIIMb0hwSIEMbkhvSIAMIhNuSDQBkUiRBWxIjUiRSGtIiUiNSGpIpgSJSK8PbEhtSGhIa0hsSGdIakhrSGZIrw9qSK4PaEhpSGRIZ0hoSGNIZkhnSGJIrg9mSK0PZEhlSCcTY0hkSCYTYkhjSCUTrQ9iSC4CVUiPBWBIUUhVSF9ITUhRSF5IjgVNSBsTYEhhSFxIX0hgSFtIXkhfSFpIGxNeSBoTXEhdSFhIW0hcSFdIWkhbSFZIGhNaSBkTWEhZSIIPV0hYSIEPVkhXSIAPGRNWSCwCSUiPBVRIRUhJSFNIQUhFSFJI4gNBSHkMVEhVSFBIU0hUSE9IUkhTSE5IeQxSSHgMUEhRSExIT0hQSEtITkhPSEpIeAxOSHcMTEhNSBgTS0hMSBcTSkhLSBYTdwxKSF4BPUiPBUhIOUg9SEdINUg5SEZIkAU1SB4TSEhJSERIR0hISENIRkhHSEJIHhNGSB0TREhFSEBIQ0hESD9IQkhDSD5IHRNCSBwTQEhBSHYMP0hASHUMPkg/SHQMHBM+SDsBYUiPBTxIXUhhSDtIWUhdSDpInQRZSIUPPEg9SDhIO0g8SDdIOkg7SDZIhQ86SIQPOEg5SDRIN0g4SDNINkg3SDJIhA82SIMPNEg1SCETM0g0SCATMkgzSB8Tgw8ySC0CJUiNBTBIIUglSC9IHUghSC5Is08dSLZPMEgxSCxIL0gwSCtILkgvSCpItk8uSLVPLEgtSChIK0gsSCdIKkgrSCZItU8qSLRPKEgpSPAQJ0goSO8QJkgnSO4QtE8mSJlOGUiNBSRIFUgZSCNIEUgVSCJI3wMRSG0MJEglSCBII0gkSB9IIkgjSB5IbQwiSGwMIEghSBxIH0ggSBtIHkgfSBpIbAweSGsMHEgdSLJPG0gcSLFPGkgbSLBPawwaSDkBDUiNBRhICUgNSBdIBUgJSBZIjgUFSBgTGEgZSBRIF0gYSBNIFkgXSBJIGBMWSBcTFEgVSBBIE0gUSA9IEkgTSA5IFxMSSBYTEEgRSGoMD0gQSGkMDkgPSGgMFhMOSF4BMUiNBQxILUgxSAtIKUgtSApI8gQpSPMQDEgNSAhIC0gMSAdICkgLSAZI8xAKSPIQCEgJSARIB0gISANIBkgHSAJI8hAGSPEQBEgFSBsTA0gESBoTAkgDSBkT8RACSCwC9UeLBQBI8Uf1R/9H7UfxR/5HigXtRw8TAEgBSPxH/0cASPtH/kf/R/pHDxP+Rw4T/Ef9R/hH+0f8R/dH+kf7R/ZHDhP6Rw0T+Ef5R14P90f4R10P9kf3R1wPDRP2RyoC6UeLBfRH5UfpR/NH4UflR/JH3APhR2EM9Ef1R/BH80f0R+9H8kfzR+5HYQzyR2AM8EfxR+xH70fwR+tH7kfvR+pHYAzuR18M7EftRwwT60fsRwsT6kfrRwoTXwzqRzcB3UeLBehH2UfdR+dH1UfZR+ZHjAXVRxIT6EfpR+RH50foR+NH5kfnR+JHEhPmRxET5EflR+BH40fkR99H4kfjR95HERPiRxAT4EfhR14M30fgR10M3kffR1wMEBPeRzkBAUiLBdxH/UcBSNtH+Uf9R9pHlQT5R2EP3EfdR9hH20fcR9dH2kfbR9ZHYQ/aR2AP2EfZR9RH10fYR9NH1kfXR9JHYA/WR18P1EfVRxUT00fURxQT0kfTRxMTXw/SRysCxUeJBdBHwUfFR89HvUfBR85HrE+9R69P0EfRR8xHz0fQR8tHzkfPR8pHr0/OR65PzEfNR8hHy0fMR8dHykfLR8ZHrk/KR61PyEfJR3YPx0fIR3UPxkfHR3QPrU/GR/ZNuUeJBcRHtUe5R8NHsUe1R8JHfQSxR/UOxEfFR8BHw0fER79HwkfDR75H9Q7CR/QOwEfBR7xHv0fAR7tHvke/R7pH9A6+R/MOvEe9R6tPu0e8R6pPuke7R6lP8w66R80BrUeJBbhHqUetR7dHpUepR7ZHigWlRwwTuEe5R7RHt0e4R7NHtke3R7JHDBO2RwsTtEe1R7BHs0e0R69HskezR65HCxOyRwoTsEexR/IOr0ewR/EOrkevR/AOChOuRzcB0UeJBaxHzUfRR6tHyUfNR6pHmgTJR3kPrEetR6hHq0esR6dHqkerR6ZHeQ+qR3gPqEepR6RHp0eoR6NHpkenR6JHeA+mR3cPpEelRw8To0ekRw4TokejRw0Tdw+iRyoClUeHBaBHkUeVR59HjUeRR55HhgWNRwMToEehR5xHn0egR5tHnkefR5pHAxOeRwITnEedR5hHm0ecR5dHmkebR5ZHAhOaRwETmEeZRyIPl0eYRyEPlkeXRyAPAROWRygCiUeHBZRHhUeJR5NHgUeFR5JHcgSBR8sOlEeVR5BHk0eUR49HkkeTR45Hyw6SR8oOkEeRR4xHj0eQR4tHjkePR4pHyg6OR8kOjEeNRwATi0eMR/8SikeLR/4SyQ6KR8oBfUeHBYhHeUd9R4dHdUd5R4ZHiAV1RwYTiEeJR4RHh0eIR4NHhkeHR4JHBhOGRwUThEeFR4BHg0eER39HgkeDR35HBROCRwQTgEeBR8gOf0eAR8cOfkd/R8YOBBN+R80BoUeHBXxHnUehR3tHmUedR3pHiASZRyUPfEd9R3hHe0d8R3dHekd7R3ZHJQ96RyQPeEd5R3RHd0d4R3NHdkd3R3JHJA92RyMPdEd1RwkTc0d0RwgTckdzRwcTIw9yRykCZUeFBXBHYUdlR29HXUdhR25HpU9dR6hPcEdxR2xHb0dwR2tHbkdvR2pHqE9uR6dPbEdtR2hHa0dsR2dHakdrR2ZHp09qR6ZPaEdpRzoPZ0doRzkPZkdnRzgPpk9mRycCWUeFBWRHVUdZR2NHUUdVR2JHdgRRR90OZEdlR2BHY0dkR19HYkdjR15H3Q5iR9wOYEdhR1xHX0dgR1tHXkdfR1pH3A5eR9sOXEddR6RPW0dcR6NPWkdbR6JP2w5aR8sBTUeFBVhHSUdNR1dHRUdJR1ZHhgVFRwATWEdZR1RHV0dYR1NHVkdXR1JHABNWR/8SVEdVR1BHU0dUR09HUkdTR05H/xJSR/4SUEdRR9oOT0dQR9kOTkdPR9gO/hJOR8oBcUeFBUxHbUdxR0tHaUdtR0pHjQRpRz0PTEdNR0hHS0dMR0dHSkdLR0ZHPQ9KRzwPSEdJR0RHR0dIR0NHRkdHR0JHPA9GRzsPREdFRwMTQ0dERwITQkdDRwETOw9CRygCNUeDBUBHMUc1Rz9HLUcxRz5HggUtR/cSQEdBRzxHP0dARztHPkc/RzpH9xI+R/YSPEc9RzhHO0c8RzdHOkc7RzZH9hI6R/USOEc5R0wPN0c4R0sPNkc3R0oP9RI2RyYCKUeDBTRHJUcpRzNHIUclRzJHeQQhR+kONEc1RzBHM0c0Ry9HMkczRy5H6Q4yR+gOMEcxRyxHL0cwRytHLkcvRypH6A4uR+cOLEctR/QSK0csR/MSKkcrR/IS5w4qR+UBHUeDBShHGUcdRydHFUcZRyZHhAUVR/oSKEcpRyRHJ0coRyNHJkcnRyJH+hImR/kSJEclRyBHI0ckRx9HIkcjRx5H+RIiR/gSIEchR+YOH0cgR+UOHkcfR+QO+BIeR8sBQUeDBRxHPUdBRxtHOUc9RxpHkQQ5R08PHEcdRxhHG0ccRxdHGkcbRxZHTw8aR04PGEcZRxRHF0cYRxNHFkcXRxJHTg8WR00PFEcVR/0SE0cUR/wSEkcTR/sSTQ8SR/JNBUeBBRBHAUcFRw9H/UYBRw5Hnk/9RqFPEEcRRwxHD0cQRwtHDkcPRwpHoU8OR6BPDEcNRwhHC0cMRwdHCkcLRwZHoE8KR59PCEcJR4QQB0cIR4MQBkcHR4IQn08GRz5O+UaBBQRH9Ub5RgNH8Ub1RgJH2gTxRpkQBEcFRwBHA0cER/9GAkcDR/5GmRACR5gQAEcBR/xG/0YAR/tG/kb/RvpGmBD+RpcQ/Eb9Rp1P+0b8RpxP+kb7RptPlxD6RswB7UaBBfhG6UbtRvdG5UbpRvZGggXlRvQS+Eb5RvRG90b4RvNG9kb3RvJG9BL2RvMS9Eb1RvBG80b0Ru9G8kbzRu5G8xLyRvIS8EbxRpYQ70bwRpUQ7kbvRpQQ8hLuRuUBEUeBBexGDUcRR+tGCUcNR+pG1gQJR4cQ7EbtRuhG60bsRudG6kbrRuZGhxDqRoYQ6EbpRuRG50boRuNG5kbnRuJGhhDmRoUQ5EblRvcS40bkRvYS4kbjRvUShRDiRiYC1UZ+BeBG0UbVRt9GzUbRRt5GgAXNRu4S4EbhRtxG30bgRttG3kbfRtpG7hLeRu0S3EbdRthG20bcRtdG2kbbRtZG7RLaRuwS2EbZRvgO10bYRvcO1kbXRvYO7BLWRiQCyUZ+BdRGxUbJRtNGwUbFRtJGawTBRq0O1EbVRtBG00bURs9G0kbTRs5GrQ7SRqwO0EbRRsxGz0bQRstGzkbPRspGrA7ORqsOzEbNRvESy0bMRvASykbLRu8Sqw7KRskBvUZ+BchGuUa9RsdGtUa5RsZGfwW1RugSyEbJRsRGx0bIRsNGxkbHRsJG6BLGRucSxEbFRsBGw0bERr9GwkbDRr5G5xLCRuYSwEbBRqoOv0bARqkOvka/RqgO5hK+RswB4UZ+BbxG3UbhRrtG2UbdRrpGfwTZRvsOvEa9RrhGu0a8RrdGuka7RrZG+w66RvoOuEa5RrRGt0a4RrNGtka3RrJG+g62RvkOtEa1RusSs0a0RuoSskazRukS+Q6yRiUCpUZ9BbBGoUalRq9GnUahRq5GfAWdRuUSsEaxRqxGr0awRqtGrkavRqpG5RKuRuQSrEatRqhGq0asRqdGqkarRqZG5BKqRuMSqEapRrgPp0aoRrcPpkanRrYP4xKmRiMCmUZ9BaRGlUaZRqNGkUaVRqJGgQSRRgcPpEalRqBGo0akRp9GokajRp5GBw+iRgYPoEahRpxGn0agRptGnkafRppGBg+eRgUPnEadRuISm0acRuESmkabRuASBQ+aRtABjUZ9BZhGiUaNRpdGhUaJRpZGl0+FRppPmEaZRpRGl0aYRpNGlkaXRpJGmk+WRplPlEaVRpBGk0aURo9GkkaTRo5GmU+SRphPkEaRRgQPj0aQRgMPjkaPRgIPmE+ORtUBsUZ9BYxGrUaxRotGqUatRopGqQSpRrsPjEaNRohGi0aMRodGikaLRoZGuw+KRroPiEaJRoRGh0aIRoNGhkaHRoJGug+GRrkPhEaFRpZPg0aERpVPgkaDRpRPuQ+CRhgCdUZ7BYBGcUZ1Rn9GbUZxRn5GkE9tRpNPgEaBRnxGf0aARntGfkZ/RnpGk09+RpJPfEZ9RnhGe0Z8RndGekZ7RnZGkk96RpFPeEZ5RtAPd0Z4Rs8PdkZ3Rs4PkU92RiICaUZ7BXRGZUZpRnNGYUZlRnJGhgRhRh8PdEZ1RnBGc0Z0Rm9GckZzRm5GHw9yRh4PcEZxRmxGb0ZwRmtGbkZvRmpGHg9uRh0PbEZtRo9Pa0ZsRo5PakZrRo1PHQ9qRtgBXUZ7BWhGWUZdRmdGVUZZRmZGfAVVRuISaEZpRmRGZ0ZoRmNGZkZnRmJG4hJmRuESZEZlRmBGY0ZkRl9GYkZjRl5G4RJiRuASYEZhRhwPX0ZgRhsPXkZfRhoP4BJeRtABgUZ7BVxGfUaBRltGeUZ9RlpGrgR5RtMPXEZdRlhGW0ZcRldGWkZbRlZG0w9aRtIPWEZZRlRGV0ZYRlNGVkZXRlJG0g9WRtEPVEZVRuUSU0ZURuQSUkZTRuMS0Q9SRiMCRUZ5BVBGQUZFRk9GPUZBRk5GeAU9RtkSUEZRRkxGT0ZQRktGTkZPRkpG2RJORtgSTEZNRkhGS0ZMRkdGSkZLRkZG2BJKRtcSSEZJRloQR0ZIRlkQRkZHRlgQ1xJGRiECOUZ5BURGNUY5RkNGMUY1RkJGpAQxRqkPREZFRkBGQ0ZERj9GQkZDRj5GqQ9CRqgPQEZBRjxGP0ZARjtGPkY/RjpGqA8+RqcPPEY9RtYSO0Y8RtUSOkY7RtQSpw86Rs8BLUZ5BThGKUYtRjdGJUYpRjZGegUlRtwSOEY5RjRGN0Y4RjNGNkY3RjJG3BI2RtsSNEY1RjBGM0Y0Ri9GMkYzRi5G2xIyRtoSMEYxRqYPL0YwRqUPLkYvRqQP2hIuRv9NUUZ5BSxGTUZRRitGSUZNRipGzARJRl0QLEYtRihGK0YsRidGKkYrRiZGXRAqRlwQKEYpRiRGJ0YoRiNGJkYnRiJGXBAmRlsQJEYlRt8SI0YkRt4SIkYjRt0SWxAiRihOFUZ3BSBGEUYVRh9GDUYRRh5GiU8NRoxPIEYhRhxGH0YgRhtGHkYfRhpGjE8eRotPHEYdRhhGG0YcRhdGGkYbRhZGi08aRopPGEYZRmwQF0YYRmsQFkYXRmoQik8WRixOCUZ3BRRGBUYJRhNGAUYFRhJGpwQBRrUPFEYVRhBGE0YURg9GEkYTRg5GtQ8SRrQPEEYRRgxGD0YQRgtGDkYPRgpGtA8ORrMPDEYNRohPC0YMRodPCkYLRoZPsw8KRg1O/UV3BQhG+UX9RQdG9UX5RQZGeAX1RdYSCEYJRgRGB0YIRgNGBkYHRgJG1hIGRtUSBEYFRgBGA0YERv9FAkYDRv5F1RICRtQSAEYBRrIP/0UARrEP/kX/RbAP1BL+Rc8BIUZ3BfxFHUYhRvtFGUYdRvpF0AQZRm8Q/EX9RfhF+0X8RfdF+kX7RfZFbxD6RW4Q+EX5RfRF90X4RfNF9kX3RfJFbhD2RW0Q9EX1RdkS80X0RdgS8kXzRdcSbRDyRSEC5UV1BfBF4UXlRe9F3UXhRe5FdAXdRc0S8EXxRexF70XwRetF7kXvRepFzRLuRcwS7EXtRehF60XsRedF6kXrReZFzBLqRcsS6EXpRUIQ50XoRUEQ5kXnRUAQyxLmRR8C2UV1BeRF1UXZReNF0UXVReJFnwTRRZEP5EXlReBF40XkRd9F4kXjRd5FkQ/iRZAP4EXhRdxF30XgRdtF3kXfRdpFkA/eRY8P3EXdRcoS20XcRckS2kXbRcgSjw/aRe0BzUV1BdhFyUXNRddFxUXJRdZFdgXFRdAS2EXZRdRF10XYRdNF1kXXRdJF0BLWRc8S1EXVRdBF00XURc9F0kXTRc5FzxLSRc4S0EXRRY4Pz0XQRY0PzkXPRYwPzhLORdYB8UV1BcxF7UXxRctF6UXtRcpFxwTpRUUQzEXNRchFy0XMRcdFykXLRcZFRRDKRUQQyEXJRcRFx0XIRcNFxkXHRcJFRBDGRUMQxEXFRdMSw0XERdISwkXDRdESQxDCRSACtUVzBcBFsUW1Rb9FrUWxRb5Fgk+tRYVPwEXBRbxFv0XARbtFvkW/RbpFhU++RYRPvEW9RbhFu0W8RbdFukW7RbZFhE+6RYNPuEW5ReoQt0W4RekQtkW3RegQg0+2RZBOqUVzBbRFpUWpRbNFoUWlRbJF8wShRfkQtEW1RbBFs0W0Ra9FskWzRa5F+RCyRfgQsEWxRaxFr0WwRatFrkWvRapF+BCuRfcQrEWtRYFPq0WsRYBPqkWrRX9P9xCqRZ5OnUVzBahFmUWdRadFlUWZRaZFdAWVRcoSqEWpRaRFp0WoRaNFpkWnRaJFyhKmRckSpEWlRaBFo0WkRZ9FokWjRZ5FyRKiRcgSoEWhRfYQn0WgRfUQnkWfRfQQyBKeRe0BwUVzBZxFvUXBRZtFuUW9RZpF8AS5Re0QnEWdRZhFm0WcRZdFmkWbRZZF7RCaRewQmEWZRZRFl0WYRZNFlkWXRZJF7BCWResQlEWVRc0Sk0WURcwSkkWTRcsS6xCSRR8ChUVxBZBFgUWFRY9FfUWBRY5FcAV9RcESkEWRRYxFj0WQRYtFjkWPRYpFwRKORcASjEWNRYhFi0WMRYdFikWLRYZFwBKKRb8SiEWJRR4Qh0WIRR0QhkWHRRwQvxKGRR0CeUVxBYRFdUV5RYNFcUV1RYJFlwRxRW0PhEWFRYBFg0WERX9FgkWDRX5FbQ+CRWwPgEWBRXxFf0WARXtFfkV/RXpFbA9+RWsPfEV9Rb4Se0V8Rb0SekV7RbwSaw96RdIBbUVxBXhFaUVtRXdFZUVpRXZFcgVlRcQSeEV5RXRFd0V4RXNFdkV3RXJFxBJ2RcMSdEV1RXBFc0V0RW9FckVzRW5FwxJyRcIScEVxRWoPb0VwRWkPbkVvRWgPwhJuRdQBkUVxBWxFjUWRRWtFiUWNRWpFvwSJRSEQbEVtRWhFa0VsRWdFakVrRWZFIRBqRSAQaEVpRWRFZ0VoRWNFZkVnRWJFIBBmRR8QZEVlRccSY0VkRcYSYkVjRcUSHxBiRR4CVUVvBWBFUUVVRV9FTUVRRV5Fe09NRX5PYEVhRVxFX0VgRVtFXkVfRVpFfk9eRX1PXEVdRVhFW0VcRVdFWkVbRVZFfU9aRXxPWEVZRTYQV0VYRTUQVkVXRTQQfE9WRRpOSUVvBVRFRUVJRVNFQUVFRVJFmwRBRX8PVEVVRVBFU0VURU9FUkVTRU5Ffw9SRX4PUEVRRUxFT0VQRUtFTkVPRUpFfg9ORX0PTEVNRXpPS0VMRXlPSkVLRXhPfQ9KRftNPUVvBUhFOUU9RUdFNUU5RUZFcAU1Rb4SSEVJRURFR0VIRUNFRkVHRUJFvhJGRb0SREVFRUBFQ0VERT9FQkVDRT5FvRJCRbwSQEVBRXwPP0VARXsPPkU/RXoPvBI+RdIBYUVvBTxFXUVhRTtFWUVdRTpFxARZRTkQPEU9RThFO0U8RTdFOkU7RTZFORA6RTgQOEU5RTRFN0U4RTNFNkU3RTJFOBA2RTcQNEU1RcESM0U0RcASMkUzRb8SNxAyRR0CJUVtBTBFIUUlRS9FHUUhRS5FbAUdRbUSMEUxRSxFL0UwRStFLkUvRSpFtRIuRbQSLEUtRShFK0UsRSdFKkUrRSZFtBIqRbMSKEUpReIPJ0UoReEPJkUnReAPsxImRRsCGUVtBSRFFUUZRSNFEUUVRSJFigQRRTEPJEUlRSBFI0UkRR9FIkUjRR5FMQ8iRTAPIEUhRRxFH0UgRRtFHkUfRRpFMA8eRS8PHEUdRbISG0UcRbESGkUbRbASLw8aRdEBDUVtBRhFCUUNRRdFBUUJRRZFbgUFRbgSGEUZRRRFF0UYRRNFFkUXRRJFuBIWRbcSFEUVRRBFE0UURQ9FEkUTRQ5FtxISRbYSEEURRS4PD0UQRS0PDkUPRSwPthIORdcBMUVtBQxFLUUxRQtFKUUtRQpFsgQpReUPDEUNRQhFC0UMRQdFCkULRQZF5Q8KReQPCEUJRQRFB0UIRQNFBkUHRQJF5A8GReMPBEUFRbsSA0UERboSAkUDRbkS4w8CRRwC9URrBQBF8UT1RP9E7UTxRP5EdE/tRHdPAEUBRfxE/0QARftE/kT/RPpEd0/+RHZP/ET9RPhE+0T8RPdE+kT7RPZEdk/6RHVP+ET5RPoP90T4RPkP9kT3RPgPdU/2RBoC6URrBfRE5UTpRPNE4UTlRPJEjwThREkP9ET1RPBE80T0RO9E8kTzRO5ESQ/yREgP8ETxROxE70TwROtE7kTvROpESA/uREcP7ETtRHNP60TsRHJP6kTrRHFPRw/qRNMB3URrBehE2UTdROdE1UTZROZEbAXVRLIS6ETpRORE50ToRONE5kTnROJEshLmRLES5ETlROBE40TkRN9E4kTjRN5EsRLiRLAS4EThREYP30TgREUP3kTfREQPsBLeRNEBAUVrBdxE/UQBRdtE+UT9RNpEtwT5RP0P3ETdRNhE20TcRNdE2kTbRNZE/Q/aRPwP2ETZRNRE10TYRNNE1kTXRNJE/A/WRPsP1ETVRLUS00TURLQS0kTTRLMS+w/SRBsCxURpBdBEwUTFRM9EvUTBRM5EZwW9RKMS0ETRRMxEz0TQRMtEzkTPRMpEoxLORKISzETNRMhEy0TMRMdEykTLRMZEohLKRKESyETJRAwQx0TIRAsQxkTHRAoQoRLGRBkCuURpBcREtUS5RMNEsUS1RMJEkwSxRFsPxETFRMBEw0TERL9EwkTDRL5EWw/CRFoPwETBRLxEv0TARLtEvkS/RLpEWg++RFkPvES9RKASu0S8RJ8SukS7RJ4SWQ+6ROQBrURpBbhEqUStRLdEpUSpRLZEagWlRKwSuES5RLREt0S4RLNEtkS3RLJErBK2RKsStES1RLBEs0S0RK9EskSzRK5EqxKyRKoSsESxRFgPr0SwRFcPrkSvRFYPqhKuRO1N0URpBaxEzUTRRKtEyUTNRKpEuwTJRA8QrEStRKhEq0SsRKdEqkSrRKZEDxCqRA4QqESpRKREp0SoRKNEpkSnRKJEDhCmRA0QpESlRK8So0SkRK4SokSjRK0SDRCiRBZOlURmBaBEkUSVRJ9EjUSRRJ5EaAWNRKYSoEShRJxEn0SgRJtEnkSfRJpEphKeRKUSnESdRJhEm0ScRJdEmkSbRJZEpRKaRKQSmESZRH4Ql0SYRH0QlkSXRHwQpBKWRDVOiURmBZREhUSJRJNEgUSFRJJE1wSBRI0QlESVRJBEk0SURI9EkkSTRI5EjRCSRIwQkESRRIxEj0SQRItEjkSPRIpEjBCORIsQjESNRKkSi0SMRKgSikSLRKcSixCKRENOfURmBYhEeUR9RIdEdUR5RIZEZwV1RKASiESJRIREh0SIRINEhkSHRIJEoBKGRJ8ShESFRIBEg0SERH9EgkSDRH5EnxKCRJ4SgESBRIoQf0SARIkQfkR/RIgQnhJ+ROQBoURmBXxEnUShRHtEmUSdRHpE1ASZRIEQfER9RHhEe0R8RHdEekR7RHZEgRB6RIAQeER5RHREd0R4RHNEdkR3RHJEgBB2RH8QdER1RKMSc0R0RKISckRzRKESfxByRBkCZURlBXBEYURlRG9EXURhRG5EZAVdRJ0ScERxRGxEb0RwRGtEbkRvRGpEnRJuRJwSbERtRGhEa0RsRGdEakRrRGZEnBJqRJsSaERpRPANZ0RoRO8NZkRnRO4NmxJmRNkBWURlBWREVURZRGNEUURVRGJEOQVRRAcSZERlRGBEY0RkRF9EYkRjRF5EBxJiRAYSYERhRFxEX0RgRFtEXkRfRFpEBhJeRAUSXERdRJoSW0RcRJkSWkRbRJgSBRJaRBICTURlBVhESURNRFdERURJRFZEbU9FRHBPWERZRFREV0RYRFNEVkRXRFJEcE9WRG9PVERVRFBEU0RURE9EUkRTRE5Eb09SRG5PUERRRAQST0RQRAMSTkRPRAISbk9ORCBPcURlBUxEbURxREtEaURtREpEPARpRPMNTERNREhES0RMREdESkRLREZE8w1KRPINSERJRERER0RIRENERkRHREJE8g1GRPENRERFRGxPQ0RERGtPQkRDRGpP8Q1CRFdNNURjBUBEMUQ1RD9ELUQxRD5EYgUtRJcSQERBRDxEP0RARDtEPkQ/RDpElxI+RJYSPEQ9RDhEO0Q8RDdEOkQ7RDZElhI6RJUSOEQ5RBASN0Q4RA8SNkQ3RA4SlRI2RAMCKURjBTREJUQpRDNEIUQlRDJEOAUhRAESNEQ1RDBEM0Q0RC9EMkQzRC5EARIyRAASMEQxRCxEL0QwRCtELkQvRCpEABIuRP8RLEQtRJQSK0QsRJMSKkQrRJIS/xEqRBcCHURjBShEGUQdRCdEFUQZRCZEZAUVRJoSKEQpRCREJ0QoRCNEJkQnRCJEmhImRJkSJEQlRCBEI0QkRB9EIkQjRB5EmRIiRJgSIEQhRP4RH0QgRP0RHkQfRPwRmBIeRBICQURjBRxEPURBRBtEOUQ9RBpEPAU5RBMSHEQdRBhEG0QcRBdEGkQbRBZEExIaRBISGEQZRBREF0QYRBNEFkQXRBJEEhIWRBESFEQVRJ0SE0QURJwSEkQTRJsSERISRNkBBURhBRBEAUQFRA9E/UMBRA5EZk/9Q2lPEEQRRAxED0QQRAtEDkQPRApEaU8ORGhPDEQNRAhEC0QMRAdECkQLRAZEaE8KRGdPCEQJRGYQB0QIRGUQBkQHRGQQZ08GRCNO+UNhBQRE9UP5QwNE8UP1QwJENwXxQ/sRBEQFRABEA0QERP9DAkQDRP5D+xECRPoRAEQBRPxD/0MARPtD/kP/Q/pD+hH+Q/kR/EP9Q2VP+0P8Q2RP+kP7Q2NP+RH6QyVP7UNhBfhD6UPtQ/dD5UPpQ/ZDYgXlQ5QS+EP5Q/RD90P4Q/ND9kP3Q/JDlBL2Q5MS9EP1Q/BD80P0Q+9D8kPzQ+5DkxLyQ5IS8EPxQ/gR70PwQ/cR7kPvQ/YRkhLuQxcCEURhBexDDUQRROtDCUQNROpDzgQJRGkQ7EPtQ+hD60PsQ+dD6kPrQ+ZDaRDqQ2gQ6EPpQ+RD50PoQ+ND5kPnQ+JDaBDmQ2cQ5EPlQ5cS40PkQ5YS4kPjQ5USZxDiQwMC1UNgBeBD0UPVQ99DzUPRQ95DXgXNQ4sS4EPhQ9xD30PgQ9tD3kPfQ9pDixLeQ4oS3EPdQ9hD20PcQ9dD2kPbQ9ZDihLaQ4kS2EPZQ9oR10PYQ9kR1kPXQ9gRiRLWQ9oByUNgBdRDxUPJQ9NDwUPFQ9JDNQXBQ/UR1EPVQ9BD00PUQ89D0kPTQ85D9RHSQ/QR0EPRQ8xDz0PQQ8tDzkPPQ8pD9BHOQ/MRzEPNQ4gSy0PMQ4cSykPLQ4YS8xHKQxMCvUNgBchDuUO9Q8dDtUO5Q8ZDXAW1Q4USyEPJQ8RDx0PIQ8NDxkPHQ8JDhRLGQ4QSxEPFQ8BDw0PEQ79DwkPDQ75DhBLCQ4MSwEPBQ/IRv0PAQ/ERvkO/Q/ARgxK+QxUC4UNgBbxD3UPhQ7tD2UPdQ7pDMAXZQ90RvEO9Q7hDu0O8Q7dDukO7Q7ZD3RG6Q9wRuEO5Q7RDt0O4Q7NDtkO3Q7JD3BG2Q9sRtEO1Q4ISs0O0Q4ESskOzQ4AS2xGyQwECpUNdBbBDoUOlQ69DnUOhQ65DXwWdQ44SsEOxQ6xDr0OwQ6tDrkOvQ6pDjhKuQ40SrEOtQ6hDq0OsQ6dDqkOrQ6ZDjRKqQ4wSqEOpQyQNp0OoQyMNpkOnQyINjBKmQ+IBmUNdBaRDlUOZQ6NDkUOVQ6JDNAWRQ+8RpEOlQ6BDo0OkQ59DokOjQ55D7xGiQ+4RoEOhQ5xDn0OgQ5tDnkOfQ5pD7hGeQ+0RnEOdQ5ESm0OcQ5ASmkObQ48S7RGaQxQCjUNdBZhDiUONQ5dDhUOJQ5ZDXgWFQ4gSmEOZQ5RDl0OYQ5NDlkOXQ5JDiBKWQ4cSlEOVQ5BDk0OUQ49DkkOTQ45DhxKSQ4YSkEORQ+wRj0OQQ+sRjkOPQ+oRhhKOQxMCsUNdBYxDrUOxQ4tDqUOtQ4pDDQSpQycNjEONQ4hDi0OMQ4dDikOLQ4ZDJw2KQyYNiEOJQ4RDh0OIQ4NDhkOHQ4JDJg2GQyUNhEOFQ4sSg0OEQ4oSgkODQ4kSJQ2CQ9oBdUNaBYBDcUN1Q39DbUNxQ35DXAVtQ4ISgEOBQ3xDf0OAQ3tDfkN/Q3pDghJ+Q4ESfEN9Q3hDe0N8Q3dDekN7Q3ZDgRJ6Q4ASeEN5Q9wPd0N4Q9sPdkN3Q9oPgBJ2QwECaUNaBXRDZUNpQ3NDYUNlQ3JDMgVhQ+MRdEN1Q3BDc0N0Q29DckNzQ25D4xFyQ+IRcENxQ2xDb0NwQ2tDbkNvQ2pD4hFuQ+ERbENtQ4USa0NsQ4QSakNrQ4MS4RFqQxUCXUNaBWhDWUNdQ2dDVUNZQ2ZDWwVVQ3wSaENpQ2RDZ0NoQ2NDZkNnQ2JDfBJmQ3sSZENlQ2BDY0NkQ19DYkNjQ15DexJiQ3oSYENhQ+ARX0NgQ98RXkNfQ94RehJeQxYCgUNaBVxDfUOBQ1tDeUN9Q1pDsAR5Q98PXENdQ1hDW0NcQ1dDWkNbQ1ZD3w9aQ94PWENZQ1RDV0NYQ1NDVkNXQ1JD3g9WQ90PVENVQ38SU0NUQ34SUkNTQ30S3Q9SQwICRUNYBVBDQUNFQ09DPUNBQ05DXk89Q2JPUENRQ0xDT0NQQ0tDTkNPQ0pDYk9OQ2FPTENNQ0hDS0NMQ0dDSkNLQ0ZDYU9KQ2BPSENJQ3kSR0NIQ3gSRkNHQ3cSYE9GQ19POUNYBURDNUM5Q0NDMUM1Q0JDHAUxQ48RRENFQ0BDQ0NEQz9DQkNDQz5DjxFCQ44RQENBQzxDP0NAQztDPkM/QzpDjhE+Q40RPEM9Q11PO0M8Q1xPOkM7Q1tPjRE6Q/FOLUNYBThDKUMtQzdDJUMpQzZDSwUlQ0MSOEM5QzRDN0M4QzNDNkM3QzJDQxI2Q0ISNEM1QzBDM0M0Qy9DMkMzQy5DQhIyQ0ESMEMxQ4wRL0MwQ4sRLkMvQ4oRQRIuQ/YBUUNYBSxDTUNRQytDSUNNQypDWQVJQ3YSLEMtQyhDK0MsQydDKkMrQyZDdhIqQ3USKEMpQyRDJ0MoQyNDJkMnQyJDdRImQ3QSJEMlQ0ASI0MkQz8SIkMjQz4SdBIiQzQCFUNVBSBDEUMVQx9DDUMRQx5DVAUNQ2cSIEMhQxxDH0MgQxtDHkMfQxpDZxIeQ2YSHEMdQxhDG0McQxdDGkMbQxZDZhIaQ2USGEMZQ20SF0MYQ2wSFkMXQ2sSZRIWQzACCUNVBRRDBUMJQxNDAUMFQxJDDQUBQ1MRFEMVQxBDE0MUQw9DEkMTQw5DUxESQ1IREEMRQwxDD0MQQwtDDkMPQwpDUhEOQ1ERDEMNQ2QSC0MMQ2MSCkMLQ2ISUREKQ/cB/UJVBQhD+UL9QgdD9UL5QgZDVwX1QnASCEMJQwRDB0MIQwNDBkMHQwJDcBIGQ28SBEMFQwBDA0MEQ/9CAkMDQ/5CbxICQ24SAEMBQ1AR/0IAQ08R/kL/Qk4RbhL+QvgBIUNVBfxCHUMhQ/tCGUMdQ/pCVgUZQ2oS/EL9QvhC+0L8QvdC+kL7QvZCahL6QmkS+EL5QvRC90L4QvNC9kL3QvJCaRL2QmgS9EL1QnMS80L0QnIS8kLzQnESaBLyQjUC5UJSBfBC4ULlQu9C3ULhQu5CUQXdQlsS8ELxQuxC70LwQutC7kLvQupCWxLuQloS7ELtQuhC60LsQudC6kLrQuZCWhLqQlkS6ELpQmES50LoQmAS5kLnQl8SWRLmQjEC2UJSBeRC1ULZQuNC0ULVQuJCV0/RQlpP5ELlQuBC40LkQt9C4kLjQt5CWk/iQllP4ELhQtxC30LgQttC3kLfQtpCWU/eQlhP3ELdQlgS20LcQlcS2kLbQlYSWE/aQvUBzUJSBdhCyULNQtdCxULJQtZCVAXFQmQS2ELZQtRC10LYQtNC1kLXQtJCZBLWQmMS1ELVQtBC00LUQs9C0kLTQs5CYxLSQmIS0ELRQlZPz0LQQlVPzkLPQlRPYhLOQvcB8UJSBcxC7ULxQstC6ULtQspCUwXpQl4SzELNQshCy0LMQsdCykLLQsZCXhLKQl0SyELJQsRCx0LIQsNCxkLHQsJCXRLGQlwSxELFQmcSw0LEQmYSwkLDQmUSXBLCQjACtUJPBcBCsUK1Qr9CrUKxQr5CT0+tQlNPwELBQrxCv0LAQrtCvkK/QrpCU0++QlJPvEK9QrhCu0K8QrdCukK7QrZCUk+6QlFPuEK5QlUSt0K4QlQStkK3QlMSUU+2QlBPqUJPBbRCpUKpQrNCoUKlQrJCFAWhQnERtEK1QrBCs0K0Qq9CskKzQq5CcRGyQnARsEKxQqxCr0KwQqtCrkKvQqpCcBGuQm8RrEKtQk5Pq0KsQk1PqkKrQkxPbxGqQvkBnUJPBahCmUKdQqdClUKZQqZCUQWVQlgSqEKpQqRCp0KoQqNCpkKnQqJCWBKmQlcSpEKlQqBCo0KkQp9CokKjQp5CVxKiQlYSoEKhQm4Rn0KgQm0RnkKfQmwRVhKeQvUBwUJPBZxCvULBQptCuUK9QppCUAW5QlISnEKdQphCm0KcQpdCmkKbQpZCUhKaQlESmEKZQpRCl0KYQpNClkKXQpJCURKWQlASlEKVQlsSk0KUQloSkkKTQlkSUBKSQjEChUJMBZBCgUKFQo9CfUKBQo5CSgV9Qj0SkEKRQoxCj0KQQotCjkKPQopCPRKOQjwSjEKNQohCi0KMQodCikKLQoZCPBKKQjsSiEKJQkkSh0KIQkgShkKHQkcSOxKGQjMCeUJMBYRCdUJ5QoNCcUJ1QoJCFwVxQn0RhEKFQoBCg0KEQn9CgkKDQn5CfRGCQnwRgEKBQnxCf0KAQntCfkJ/QnpCfBF+QnsRfEJ9QjoSe0J8QjkSekJ7QjgSexF6QvQBbUJMBXhCaUJtQndCZUJpQnZCTgVlQkwSeEJ5QnRCd0J4QnNCdkJ3QnJCTBJ2QksSdEJ1QnBCc0J0Qm9CckJzQm5CSxJyQkoScEJxQnoRb0JwQnkRbkJvQngRShJuQt5OkUJMBWxCjUKRQmtCiUKNQmpCTQWJQkYSbEJtQmhCa0JsQmdCakJrQmZCRhJqQkUSaEJpQmRCZ0JoQmNCZkJnQmJCRRJmQkQSZEJlQk8SY0JkQk4SYkJjQk0SRBJiQjICVUJIBWBCUUJVQl9CTUJRQl5CSwVNQkASYEJhQlxCX0JgQltCXkJfQlpCQBJeQj8SXEJdQlhCW0JcQldCWkJbQlZCPxJaQj4SWEJZQjcSV0JYQjYSVkJXQjUSPhJWQjQCSUJIBVRCRUJJQlNCQUJFQlJCSE9BQktPVEJVQlBCU0JUQk9CUkJTQk5CS09SQkpPUEJRQkxCT0JQQktCTkJPQkpCSk9OQklPTEJNQkMSS0JMQkISSkJLQkESSU9KQvYBPUJIBUhCOUI9QkdCNUI5QkZCSgU1QjoSSEJJQkRCR0JIQkNCRkJHQkJCOhJGQjkSREJFQkBCQ0JEQj9CQkJDQj5CORJCQjgSQEJBQkdPP0JAQkZPPkI/QkVPOBI+QvQBYUJIBTxCXUJhQjtCWUJdQjpCSQVZQjQSPEI9QjhCO0I8QjdCOkI7QjZCNBI6QjMSOEI5QjRCN0I4QjNCNkI3QjJCMxI2QjISNEI1Qj0SM0I0QjwSMkIzQjsSMhIyQjMCJUJHBTBCIUIlQi9CHUIhQi5CRgUdQjESMEIxQixCL0IwQitCLkIvQipCMRIuQjASLEItQihCK0IsQidCKkIrQiZCMBIqQi8SKEIpQgYQJ0IoQgUQJkInQgQQLxImQgkCGUJHBSRCFUIZQiNCEUIVQiJCGQQRQl0NJEIlQiBCI0IkQh9CIkIjQh5CXQ0iQlwNIEIhQhxCH0IgQhtCHkIfQhpCXA0eQlsNHEIdQi4SG0IcQi0SGkIbQiwSWw0aQtsBDUJHBRhCCUINQhdCBUIJQhZCQU8FQkRPGEIZQhRCF0IYQhNCFkIXQhJCRE8WQkNPFEIVQhBCE0IUQg9CEkITQg5CQ08SQkJPEEIRQloND0IQQlkNDkIPQlgNQk8OQt0BMUJHBQxCLUIxQgtCKUItQgpCuQQpQgkQDEINQghCC0IMQgdCCkILQgZCCRAKQggQCEIJQgRCB0IIQgNCBkIHQgJCCBAGQgcQBEIFQkBPA0IEQj9PAkIDQj5PBxACQgoC9UFFBQBC8UH1Qf9B7UHxQf5BOk/tQT1PAEIBQvxB/0EAQvtB/kH/QfpBPU/+QTxP/EH9QfhB+0H8QfdB+kH7QfZBPE/6QTtP+EH5Qe4P90H4Qe0P9kH3QewPO0/2QQgC6UFFBfRB5UHpQfNB4UHlQfJBGAThQVcN9EH1QfBB80H0Qe9B8kHzQe5BVw3yQVYN8EHxQexB70HwQetB7kHvQepBVg3uQVUN7EHtQTlP60HsQThP6kHrQTdPVQ3qQeEB3UFFBehB2UHdQedB1UHZQeZBRgXVQS4S6EHpQeRB50HoQeNB5kHnQeJBLhLmQS0S5EHlQeBB40HkQd9B4kHjQd5BLRLiQSwS4EHhQVQN30HgQVMN3kHfQVINLBLeQdsBAUJFBdxB/UEBQttB+UH9QdpBtAT5QfEP3EHdQdhB20HcQddB2kHbQdZB8Q/aQfAP2EHZQdRB10HYQdNB1kHXQdJB8A/WQe8P1EHVQTES00HUQTAS0kHTQS8S7w/SQQkCxUFDBdBBwUHFQc9BvUHBQc5BQgW9QSUS0EHRQcxBz0HQQctBzkHPQcpBJRLOQSQSzEHNQchBy0HMQcdBykHLQcZBJBLKQSMSyEHJQTwQx0HIQTsQxkHHQToQIxLGQQcCuUFDBcRBtUG5QcNBsUG1QcJBNgSxQdsNxEHFQcBBw0HEQb9BwkHDQb5B2w3CQdoNwEHBQbxBv0HAQbtBvkG/QbpB2g2+QdkNvEG9QSISu0G8QSESukG7QSAS2Q26QdwBrUFDBbhBqUGtQbdBpUGpQbZBRAWlQSgSuEG5QbRBt0G4QbNBtkG3QbJBKBK2QScStEG1QbBBs0G0Qa9BskGzQa5BJxKyQSYSsEGxQdgNr0GwQdcNrkGvQdYNJhKuQVJN0UFDBaxBzUHRQatByUHNQapBxQTJQT8QrEGtQahBq0GsQadBqkGrQaZBPxCqQT4QqEGpQaRBp0GoQaNBpkGnQaJBPhCmQT0QpEGlQSsSo0GkQSoSokGjQSkSPRCiQR9OlUFBBaBBkUGVQZ9BjUGRQZ5BM0+NQTZPoEGhQZxBn0GgQZtBnkGfQZpBNk+eQTVPnEGdQZhBm0GcQZdBmkGbQZZBNU+aQTRPmEGZQSoQl0GYQSkQlkGXQSgQNE+WQQYCiUFBBZRBhUGJQZNBgUGFQZJBNQSBQdUNlEGVQZBBk0GUQY9BkkGTQY5B1Q2SQdQNkEGRQYxBj0GQQYtBjkGPQYpB1A2OQdMNjEGNQTJPi0GMQTFPikGLQTBP0w2KQd4BfUFBBYhBeUF9QYdBdUF5QYZBQgV1QSISiEGJQYRBh0GIQYNBhkGHQYJBIhKGQSEShEGFQYBBg0GEQX9BgkGDQX5BIRKCQSASgEGBQdINf0GAQdENfkF/QdANIBJ+QdwBoUFBBXxBnUGhQXtBmUGdQXpBwQSZQS0QfEF9QXhBe0F8QXdBekF7QXZBLRB6QSwQeEF5QXRBd0F4QXNBdkF3QXJBLBB2QSsQdEF1QSUSc0F0QSQSckFzQSMSKxByQQcCZUE/BXBBYUFlQW9BXUFhQW5BPgVdQRkScEFxQWxBb0FwQWtBbkFvQWpBGRJuQRgSbEFtQWhBa0FsQWdBakFrQWZBGBJqQRcSaEFpQeQQZ0FoQeMQZkFnQeIQFxJmQQUCWUE/BWRBVUFZQWNBUUFVQWJB7QRRQeEQZEFlQWBBY0FkQV9BYkFjQV5B4RBiQeAQYEFhQVxBX0FgQVtBXkFfQVpB4BBeQd8QXEFdQRYSW0FcQRUSWkFbQRQS3xBaQewBTUE/BVhBSUFNQVdBRUFJQVZBQAVFQRwSWEFZQVRBV0FYQVNBVkFXQVJBHBJWQRsSVEFVQVBBU0FUQU9BUkFTQU5BGxJSQRoSUEFRQd4QT0FQQd0QTkFPQdwQGhJOQYhOcUE/BUxBbUFxQUtBaUFtQUpB7wRpQecQTEFNQUhBS0FMQUdBSkFLQUZB5xBKQeYQSEFJQURBR0FIQUNBRkFHQUJB5hBGQeUQREFFQR8SQ0FEQR4SQkFDQR0S5RBCQZVONUE9BUBBMUE1QT9BLUExQT5BLE8tQS9PQEFBQTxBP0FAQTtBPkE/QTpBL08+QS5PPEE9QThBO0E8QTdBOkE7QTZBLk86QS1POEE5QU4QN0E4QU0QNkE3QUwQLU82QQQCKUE9BTRBJUEpQTNBIUElQTJBOgQhQe0NNEE1QTBBM0E0QS9BMkEzQS5B7Q0yQewNMEExQSxBL0EwQStBLkEvQSpB7A0uQesNLEEtQStPK0EsQSpPKkErQSlP6w0qQeABHUE9BShBGUEdQSdBFUEZQSZBPgUVQRYSKEEpQSRBJ0EoQSNBJkEnQSJBFhImQRUSJEElQSBBI0EkQR9BIkEjQR5BFRIiQRQSIEEhQeoNH0EgQekNHkEfQegNFBIeQewBQUE9BRxBPUFBQRtBOUE9QRpByQQ5QVEQHEEdQRhBG0EcQRdBGkEbQRZBURAaQVAQGEEZQRRBF0EYQRNBFkEXQRJBUBAWQU8QFEEVQRkSE0EUQRgSEkETQRcSTxASQQUCBUE6BRBBAUEFQQ9B/UABQQ5BPAX9QBASEEERQQxBD0EQQQtBDkEPQQpBEBIOQQ8SDEENQQhBC0EMQQdBCkELQQZBDxIKQQ4SCEEJQXIQB0EIQXEQBkEHQXAQDhIGQQMC+UA6BQRB9UD5QANB8UD1QAJBPQTxQPkNBEEFQQBBA0EEQf9AAkEDQf5A+Q0CQfgNAEEBQfxA/0AAQftA/kD/QPpA+A3+QPcN/ED9QBMS+0D8QBIS+kD7QBES9w36QNkB7UA6BfhA6UDtQPdA5UDpQPZAOwXlQAoS+ED5QPRA90D4QPNA9kD3QPJAChL2QAkS9ED1QPBA80D0QO9A8kDzQO5ACRLyQAgS8EDxQPYN70DwQPUN7kDvQPQNCBLuQFtNEUE6BexADUERQetACUENQepA0QQJQXUQ7EDtQOhA60DsQOdA6kDrQOZAdRDqQHQQ6EDpQORA50DoQONA5kDnQOJAdBDmQHMQ5EDlQA0S40DkQAwS4kDjQAsScxDiQDFO1UA2BeBA0UDVQN9AzUDRQN5AJE/NQChP4EDhQNxA30DgQNtA3kDfQNpAKE/eQCdP3EDdQNhA20DcQNdA2kDbQNZAJ0/aQCZP2EDZQPsR10DYQPoR1kDXQPkRJk/WQCVPyUA2BdRAxUDJQNNAwUDFQNJAOQXBQAQS1EDVQNBA00DUQM9A0kDTQM5ABBLSQAMS0EDRQMxAz0DQQMtAzkDPQMpAAxLOQAISzEDNQCNPy0DMQCJPykDLQCFPAhLKQCBPvUA2BchAuUC9QMdAtUC5QMZAOAW1QP4RyEDJQMRAx0DIQMNAxkDHQMJA/hHGQP0RxEDFQMBAw0DEQL9AwkDDQL5A/RHCQPwRwEDBQAcSv0DAQAYSvkC/QAUS/BG+QBIC4UA2BbxA3UDhQLtA2UDdQLpANwXZQPgRvEC9QLhAu0C8QLdAukC7QLZA+BG6QPcRuEC5QLRAt0C4QLNAtkC3QLJA9xG2QPYRtEC1QAESs0C0QAASskCzQP8R9hGyQBcCpUAxBbBAoUClQK9AnUChQK5ANQWdQPIRsECxQKxAr0CwQKtArkCvQKpA8hGuQPERrECtQKhAq0CsQKdAqkCrQKZA8RGqQPARqECpQOMRp0CoQOIRpkCnQOER8BGmQBUCmUAxBaRAlUCZQKNAkUCVQKJANAWRQOwRpEClQKBAo0CkQJ9AokCjQJ5A7BGiQOsRoEChQJxAn0CgQJtAnkCfQJpA6xGeQOoRnECdQPURm0CcQPQRmkCbQPMR6hGaQBMCjUAxBZhAiUCNQJdAhUCJQJZAMwWFQOYRmECZQJRAl0CYQJNAlkCXQJJA5hGWQOURlECVQJBAk0CUQI9AkkCTQI5A5RGSQOQRkECRQO8Rj0CQQO4RjkCPQO0R5BGOQBQCsUAxBYxArUCxQItAqUCtQIpAMgWpQOARjECNQIhAi0CMQIdAikCLQIZA4BGKQN8RiECJQIRAh0CIQINAhkCHQIJA3xGGQN4RhECFQOkRg0CEQOgRgkCDQOcR3hGCQBYCdUAvBYBAcUB1QH9AbUBxQH5AHE9tQB9PgECBQHxAf0CAQHtAfkB/QHpAH09+QB5PfEB9QHhAe0B8QHdAekB7QHZAHk96QB1PeEB5QMQPd0B4QMMPdkB3QMIPHU92QAACaUAvBXRAZUBpQHNAYUBlQHJADARhQCENdEB1QHBAc0B0QG9AckBzQG5AIQ1yQCANcEBxQGxAb0BwQGtAbkBvQGpAIA1uQB8NbEBtQBtPa0BsQBpPakBrQBlPHw1qQN8BXUAvBWhAWUBdQGdAVUBZQGZAMAVVQNoRaEBpQGRAZ0BoQGNAZkBnQGJA2hFmQNkRZEBlQGBAY0BkQF9AYkBjQF5A2RFiQNgRYEBhQB4NX0BgQB0NXkBfQBwN2BFeQNoBgUAvBVxAfUCBQFtAeUB9QFpAqwR5QMcPXEBdQFhAW0BcQFdAWkBbQFZAxw9aQMYPWEBZQFRAV0BYQFNAVkBXQFJAxg9WQMUPVEBVQN0RU0BUQNwRUkBTQNsRxQ9SQAECRUAtBVBAQUBFQE9APUBBQE5ALAU9QNERUEBRQExAT0BQQEtATkBPQEpA0RFOQNARTEBNQEhAS0BMQEdASkBLQEZA0BFKQM8RSEBJQNcRR0BIQNYRRkBHQNURzxFGQAwCOUAtBURANUA5QENAMUA1QEJA4AQxQLEQREBFQEBAQ0BEQD9AQkBDQD5AsRBCQLAQQEBBQDxAP0BAQDtAPkA/QDpAsBA+QK8QPEA9QM4RO0A8QM0ROkA7QMwRrxA6QPwBLUAtBThAKUAtQDdAJUApQDZAFU8lQBhPOEA5QDRAN0A4QDNANkA3QDJAGE82QBdPNEA1QDBAM0A0QC9AMkAzQC5AF08yQBZPMEAxQK4QL0AwQK0QLkAvQKwQFk8uQFpOUUAtBSxATUBRQCtASUBNQCpALgVJQNQRLEAtQChAK0AsQCdAKkArQCZA1BEqQNMRKEApQCRAJ0AoQCNAJkAnQCJA0xEmQNIRJEAlQBRPI0AkQBNPIkAjQBJP0hEiQBFPFUAqBSBAEUAVQB9ADUARQB5AKQUNQMURIEAhQBxAH0AgQBtAHkAfQBpAxREeQMQRHEAdQBhAG0AcQBdAGkAbQBZAxBEaQMMRGEAZQMsRF0AYQMoRFkAXQMkRwxEWQA0CCUAqBRRABUAJQBNAAUAFQBJADU8BQBBPFEAVQBBAE0AUQA9AEkATQA5AEE8SQA9PEEARQAxAD0AQQAtADkAPQApAD08OQA5PDEANQMIRC0AMQMERCkALQMARDk8KQPoB/T8qBQhA+T/9PwdA9T/5PwZALAX1P84RCEAJQARAB0AIQANABkAHQAJAzhEGQM0RBEAFQABAA0AEQP8/AkADQP4/zRECQMwRAEABQAxP/z8AQAtP/j//PwpPzBH+P/wBIUAqBfw/HUAhQPs/GUAdQPo/KwUZQMgR/D/9P/g/+z/8P/c/+j/7P/Y/yBH6P8cR+D/5P/Q/9z/4P/M/9j/3P/I/xxH2P8YR9D/1P9ER8z/0P9AR8j/zP88RxhHyPwwC5T8nBfA/4T/lP+8/3T/hP+4/BU/dPwlP8D/xP+w/7z/wP+s/7j/vP+o/CU/uPwhP7D/tP+g/6z/sP+c/6j/rP+Y/CE/qPwdP6D/pP78R5z/oP74R5j/nP70RB0/mPwZP2T8nBeQ/1T/ZP+M/0T/VP+I/3gTRP6UQ5D/lP+A/4z/kP98/4j/jP94/pRDiP6QQ4D/hP9w/3z/gP9s/3j/fP9o/pBDeP6MQ3D/dPwRP2z/cPwNP2j/bPwJPoxDaP1ZOzT8nBdg/yT/NP9c/xT/JP9Y/KQXFP8IR2D/ZP9Q/1z/YP9M/1j/XP9I/whHWP8ER1D/VP9A/0z/UP88/0j/TP84/wRHSP8AR0D/RP6IQzz/QP6EQzj/PP6AQwBHOP/oB8T8nBcw/7T/xP8s/6T/tP8o/KAXpP7wRzD/NP8g/yz/MP8c/yj/LP8Y/vBHKP7sRyD/JP8Q/xz/IP8M/xj/HP8I/uxHGP7oRxD/FP8URwz/EP8QRwj/DP8MRuhHCPw0CtT8kBcA/sT+1P78/rT+xP74/IwWtP60RwD/BP7w/vz/AP7s/vj+/P7o/rRG+P6wRvD+9P7g/uz+8P7c/uj+7P7Y/rBG6P6sRuD+5P7MRtz+4P7IRtj+3P7ERqxG2Pw8CqT8kBbQ/pT+pP7M/oT+lP7I/YgShP48OtD+1P7A/sz+0P68/sj+zP64/jw6yP44OsD+xP6w/rz+wP6s/rj+vP6o/jg6uP40OrD+tP6oRqz+sP6kRqj+rP6gRjQ6qP/sBnT8kBag/mT+dP6c/lT+ZP6Y/JgWVP7YRqD+pP6Q/pz+oP6M/pj+nP6I/thGmP7URpD+lP6A/oz+kP58/oj+jP54/tRGiP7QRoD+hP4wOnz+gP4sOnj+fP4oOtBGeP/8BwT8kBZw/vT/BP5s/uT+9P5o/JQW5P7ARnD+dP5g/mz+cP5c/mj+bP5Y/sBGaP68RmD+ZP5Q/lz+YP5M/lj+XP5I/rxGWP64RlD+VP7kRkz+UP7gRkj+TP7cRrhGSPw4ChT8hBZA/gT+FP48/fT+BP44/HwV9P5sRkD+RP4w/jz+QP4s/jj+PP4o/mxGOP5oRjD+NP4g/iz+MP4c/ij+LP4Y/mhGKP5kRiD+JP6cRhz+IP6YRhj+HP6URmRGGPxACeT8hBYQ/dT95P4M/cT91P4I//k5xPwFPhD+FP4A/gz+EP38/gj+DP34/AU+CPwBPgD+BP3w/fz+AP3s/fj9/P3o/AE9+P/9OfD99P5gRez98P5cRej97P5YR/056P/0BbT8hBXg/aT9tP3c/ZT9pP3Y/IwVlP6oReD95P3Q/dz94P3M/dj93P3I/qhF2P6kRdD91P3A/cz90P28/cj9zP24/qRFyP6gRcD9xP/1Obz9wP/xObj9vP/tOqBFuP/sBkT8hBWw/jT+RP2s/iT+NP2o/IgWJP6QRbD9tP2g/az9sP2c/aj9rP2Y/pBFqP6MRaD9pP2Q/Zz9oP2M/Zj9nP2I/oxFmP6IRZD9lP60RYz9kP6wRYj9jP6sRohFiPw8CVT8dBWA/UT9VP18/TT9RP14/IAVNP54RYD9hP1w/Xz9gP1s/Xj9fP1o/nhFeP50RXD9dP1g/Wz9cP1c/Wj9bP1Y/nRFaP5wRWD9ZP5URVz9YP5QRVj9XP5MRnBFWPxECST8dBVQ/RT9JP1M/QT9FP1I/YARBP4MOVD9VP1A/Uz9UP08/Uj9TP04/gw5SP4IOUD9RP0w/Tz9QP0s/Tj9PP0o/gg5OP4EOTD9NP6ERSz9MP6ARSj9LP58RgQ5KP/4BPT8dBUg/OT89P0c/NT85P0Y/HwU1P5gRSD9JP0Q/Rz9IP0M/Rj9HP0I/mBFGP5cRRD9FP0A/Qz9EPz8/Qj9DPz4/lxFCP5YRQD9BP4AOPz9AP38OPj8/P34OlhE+P/0BYT8dBTw/XT9hPzs/WT9dPzo/HgVZP5IRPD89Pzg/Oz88Pzc/Oj87PzY/khE6P5EROD85PzQ/Nz84PzM/Nj83PzI/kRE2P5ARND81P5sRMz80P5oRMj8zP5kRkBEyPxACJT8bBTA/IT8lPy8/HT8hPy4/GQUdP4MRMD8xPyw/Lz8wPys/Lj8vPyo/gxEuP4IRLD8tPyg/Kz8sPyc/Kj8rPyY/ghEqP4ERKD8pP5wQJz8oP5sQJj8nP5oQgREmP0dOGT8bBSQ/FT8ZPyM/ET8VPyI/HAURP4wRJD8lPyA/Iz8kPx8/Ij8jPx4/jBEiP4sRID8hPxw/Hz8gPxs/Hj8fPxo/ixEeP4oRHD8dP4ARGz8cP38RGj8bP34RihEaP/YB+k4bBflO+E76TvdO9k74TvVO2E/2TvROGD8ZPxQ/Fz8YPxM/Fj8XPxI/108WP/NOFD8VPxA/Ez8UPw8/Ej8TPw4/804SP/JOED8RP48RDz8QP44RDj8PP40R8k4OP/FOMT8bBQw/LT8xPws/KT8tPwo/3AQpP58QDD8NPwg/Cz8MPwc/Cj8LPwY/nxAKP54QCD8JPwQ/Bz8IPwM/Bj8HPwI/nhAGP50QBD8FP+9OAz8EP+5OAj8DP+1OnRACP+cB9T4YBQA/8T71Pv8+7T7xPv4+FgXtPncRAD8BP/w+/z4AP/s+/j7/Pvo+dxH+PnYR/D79Pvg++z78Pvc++j77PvY+dhH6PnUR+D75PutO9z74PupO9j73PulOdRH2PmRO6T4YBfQ+5T7pPvM+4T7lPvI+GgXhPoYR9D71PvA+8z70Pu8+8j7zPu4+hhHyPoUR8D7xPuw+7z7wPus+7j7vPuo+hRHuPoQR7D7tPnQR6z7sPnMR6j7rPnIRhBHqPvQB3T4YBeg+2T7dPuc+1T7ZPuY+GQXVPoAR6D7pPuQ+5z7oPuM+5j7nPuI+gBHmPn8R5D7lPuA+4z7kPt8+4j7jPt4+fxHiPn4R4D7hPokR3z7gPogR3j7fPocRfhHePvYBAT8YBdw+/T4BP9s++T79Pto+7E75PuhO3D7dPtg+2z7cPtc+2j7bPtY+6E7aPudO2D7ZPtQ+1z7YPtM+1j7XPtI+507WPuZO1D7VPoMR0z7UPoIR0j7TPoER5k7SPkdOxT4VBdA+wT7FPs8+vT7BPs4+4k69PuVO0D7RPsw+zz7QPss+zj7PPso+5U7OPuROzD7NPsg+yz7MPsc+yj7LPsY+5E7KPuNOyD7JProQxz7IPrkQxj7HPrgQ407GPugBuT4VBcQ+tT65PsM+sT61PsI+FwWxPnoRxD7FPsA+wz7EPr8+wj7DPr4+ehHCPnkRwD7BPrw+vz7APrs+vj6/Pro+eRG+PngRvD69PuFOuz68PuBOuj67Pt9OeBG6Pt5OrT4VBbg+qT6tPrc+pT6pPrY+FgWlPnQRuD65PrQ+tz64PrM+tj63PrI+dBG2PnMRtD61PrA+sz60Pq8+sj6zPq4+cxGyPnIRsD6xPn0Rrz6wPnwRrj6vPnsRchGuPvQB0T4VBaw+zT7RPqs+yT7NPqo+4wTJPr0QrD6tPqg+qz6sPqc+qj6rPqY+vRCqPrwQqD6pPqQ+pz6oPqM+pj6nPqI+vBCmPrsQpD6lPncRoz6kPnYRoj6jPnURuxCiPmROlT4SBaA+kT6VPp8+jT6RPp4+EAWNPl8RoD6hPpw+nz6gPps+nj6fPpo+XxGePl4RnD6dPpg+mz6cPpc+mj6bPpY+XhGaPl0RmD6ZPiwOlz6YPisOlj6XPioOXRGWPsABiT4SBZQ+hT6JPpM+gT6FPpI+FAWBPm4RlD6VPpA+kz6UPo8+kj6TPo4+bhGSPm0RkD6RPow+jz6QPos+jj6PPoo+bRGOPmwRjD6NPlwRiz6MPlsRij6LPloRbBGKPvUBfT4SBYg+eT59Poc+dT55PoY+EwV1PmgRiD6JPoQ+hz6IPoM+hj6HPoI+aBGGPmcRhD6FPoA+gz6EPn8+gj6DPn4+ZxGCPmYRgD6BPnERfz6APnARfj5/Pm8RZhF+PvkBoT4SBXw+nT6hPns+mT6dPno+SwSZPi8OfD59Png+ez58Pnc+ej57PnY+Lw56Pi4OeD55PnQ+dz54PnM+dj53PnI+Lg52Pi0OdD51PmsRcz50PmoRcj5zPmkRLQ5yPugBZT4PBXA+YT5lPm8+XT5hPm4+DAVdPk0RcD5xPmw+bz5wPms+bj5vPmo+TRFuPkwRbD5tPmg+az5sPmc+aj5rPmY+TBFqPksRaD5pPtxOZz5oPttOZj5nPtpOSxFmPj5NWT4PBWQ+VT5ZPmM+UT5VPmI+EQVRPmIRZD5lPmA+Yz5kPl8+Yj5jPl4+YhFiPmERYD5hPlw+Xz5gPls+Xj5fPlo+YRFePmARXD5dPkoRWz5cPkkRWj5bPkgRYBFaPvcBTT4PBVg+ST5NPlc+RT5JPlY+EAVFPlwRWD5ZPlQ+Vz5YPlM+Vj5XPlI+XBFWPlsRVD5VPlA+Uz5UPk8+Uj5TPk4+WxFSPloRUD5RPmURTz5QPmQRTj5PPmMRWhFOPvUBcT4PBUw+bT5xPks+aT5tPko+3U5pPtlOTD5NPkg+Sz5MPkc+Sj5LPkY+2U5KPthOSD5JPkQ+Rz5IPkM+Rj5HPkI+2E5GPtdORD5FPl8RQz5EPl4RQj5DPl0R105CPsAB1k4LBUA+1U7WTj8+1E7VTj4+1k/UTlYRQD5BPjw+Pz5APjs+Pj4/Pjo+VhE+PlURPD49Pjg+Oz48Pjc+Oj47PjY+VRE6PlQROD45PnINNz44PnENNj43PnANVBE2PucBKT7RTjQ+JT4pPjM+IT4lPjI+DQUhPlARND41PjA+Mz40Pi8+Mj4zPi4+UBEyPk8RMD4xPtNOLz4wPis+Lj4vPio+TxEuPk4R004tPtJOKz4sPlgRKj4rPlcRThEqPvgBHT7RTig+GT4dPic+FT4ZPiY+DAUVPkoRKD4pPiQ+Jz4oPiM+Jj4nPiI+ShEmPkkRJD4lPiA+Iz4kPh8+Ij4jPh4+SREiPkgRID4hPlMRHz4gPlIRHj4fPlERSBEePvcBQT4LBRw+PT5BPhs+OT49Pho+HwQ5PnUNHD4dPhg+Gz4cPhc+Gj4bPhY+dQ0aPnQNGD4ZPhQ+Fz4YPhM+Fj4XPhI+dA0WPnMNFD4VPk0REz4UPkwREj4TPksRcw0SPj5NBT4KBRA+AT4FPg8+/T0BPg4+CQX9PUcRED4RPgw+Dz4QPgs+Dj4PPgo+RxEOPkYRDD4NPgg+Cz4MPgc+Cj4LPgY+RhEKPkURCD4JPiARBz4IPh8RBj4HPh4RRREGPu4B+T0KBQQ+9T35PQM+8T31PQI+6ATxPc8QBD4FPgA+Az4EPv89Aj4DPv49zxACPs4QAD4BPvw9/z0APvs9/j3/Pfo9zhD+Pc0Q/D39PUQR+z38PUMR+j37PUIRzRD6PfEB7T0KBfg96T3tPfc95T3pPfY9zU7lPdBO+D35PfQ99z34PfM99j33PfI90E72Pc9O9D31PfA98z30Pe898j3zPe49z07yPc5O8D3xPcwQ7z3wPcsQ7j3vPcoQzk7uPXtOET4KBew9DT4RPus9CT4NPuo9/gQJPiMR7D3tPeg96z3sPec96j3rPeY9IxHqPSIR6D3pPeQ95z3oPeM95j3nPeI9IhHmPSER5D3lPcxO4z3kPctO4j3jPcpOIRHiPapO1T0IBeA90T3VPd89zT3RPd49WAPNPY0K4D3hPdw93z3gPds93j3fPdo9jQrePYwK3D3dPdg92z3cPdc92j3bPdY9jAraPYsK2D3ZPchO1z3YPcdO1j3XPcZOiwrWPQVMyT0IBdQ9xT3JPdM9wT3FPdI9wk7BPcVO1D3VPdA90z3UPc890j3TPc49xU7SPcRO0D3RPcw9zz3QPcs9zj3PPco9xE7OPcNOzD3NPYoKyz3MPYkKyj3LPYgKw07KPflLvT0IBcg9uT29Pcc9tT25PcY9CQW1PUQRyD3JPcQ9xz3IPcM9xj3HPcI9RBHGPUMRxD3FPcA9wz3EPb89wj3DPb49QxHCPUIRwD3BPcFOvz3APcBOvj2/Pb9OQhG+PfEB4T0IBbw93T3hPbs92T3dPbo9yU7ZPb5OvD29Pbg9uz28Pbc9uj27PbY9vk66Pb1OuD25PbQ9tz24PbM9tj23PbI9vU62PbxOtD21PUcRsz20PUYRsj2zPUURvE6yPe4BpT0GBbA9oT2lPa89nT2hPa49BAWdPTURsD2xPaw9rz2wPas9rj2vPao9NRGuPTQRrD2tPag9qz2sPac9qj2rPaY9NBGqPTMRqD2pPXgQpz2oPXcQpj2nPXYQMxGmPQsCmT0GBaQ9lT2ZPaM9kT2VPaI9JQSRPZMNpD2lPaA9oz2kPZ89oj2jPZ49kw2iPZINoD2hPZw9nz2gPZs9nj2fPZo9kg2ePZENnD2dPTIRmz2cPTERmj2bPTARkQ2aPeMBjT0GBZg9iT2NPZc9hT2JPZY9BwWFPT4RmD2ZPZQ9lz2YPZM9lj2XPZI9PhGWPT0RlD2VPZA9kz2UPY89kj2TPY49PRGSPTwRkD2RPZANjz2QPY8Njj2PPY4NPBGOPUZNsT0GBYw9rT2xPYs9qT2tPYo90wSpPXsQjD2NPYg9iz2MPYc9ij2LPYY9exCKPXoQiD2JPYQ9hz2IPYM9hj2HPYI9ehCGPXkQhD2FPUERgz2EPUARgj2DPT8ReRCCPTpOdT0DBYA9cT11PX89bT1xPX49BQVtPTgRgD2BPXw9fz2APXs9fj1/PXo9OBF+PTcRfD19PXg9ez18PXc9ej17PXY9NxF6PTYReD15PRgQdz14PRcQdj13PRYQNhF2PRFOaT0DBXQ9ZT1pPXM9YT1lPXI96wRhPdsQdD11PXA9cz10PW89cj1zPW492xByPdoQcD1xPWw9bz1wPWs9bj1vPWo92hBuPdkQbD1tPTsRaz1sPToRaj1rPTkR2RBqPYROXT0DBWg9WT1dPWc9VT1ZPWY9BAVVPTIRaD1pPWQ9Zz1oPWM9Zj1nPWI9MhFmPTERZD1lPWA9Yz1kPV89Yj1jPV49MRFiPTARYD1hPdgQXz1gPdcQXj1fPdYQMBFePeMBgT0DBVw9fT2BPVs9eT19PVo9vQR5PRsQXD1dPVg9Wz1cPVc9Wj1bPVY9GxBaPRoQWD1ZPVQ9Vz1YPVM9Vj1XPVI9GhBWPRkQVD1VPTURUz1UPTQRUj1TPTMRGRBSPQsCRT0CBVA9QT1FPU89PT1BPU49AAU9PSkRUD1RPUw9Tz1QPUs9Tj1PPUo9KRFOPSgRTD1NPUg9Sz1MPUc9Sj1LPUY9KBFKPScRSD1JPbpORz1IPblORj1HPbhOJxFGPe8BOT0CBUQ9NT05PUM9MT01PUI9tE4xPbdORD1FPUA9Qz1EPT89Qj1DPT49t05CPbZOQD1BPTw9Pz1APTs9Pj0/PTo9tk4+PbVOPD09PSYROz08PSUROj07PSQRtU46PfIBLT0CBTg9KT0tPTc9JT0pPTY9UQMlPXUKOD05PTQ9Nz04PTM9Nj03PTI9dQo2PXQKND01PTA9Mz00PS89Mj0zPS49dAoyPXMKMD0xPbNOLz0wPbJOLj0vPbFOcwouPe1LUT0CBSw9TT1RPSs9ST1NPSo9u05JPbBOLD0tPSg9Kz0sPSc9Kj0rPSY9sE4qPa9OKD0pPSQ9Jz0oPSM9Jj0nPSI9r04mPa5OJD0lPXIKIz0kPXEKIj0jPXAKrk4iPfFLFT3/BCA9ET0VPR89DT0RPR49AQUNPSwRID0hPRw9Hz0gPRs9Hj0fPRo9LBEePSsRHD0dPRg9Gz0cPRc9Gj0bPRY9KxEaPSoRGD0ZPQIRFz0YPQERFj0XPQARKhEWPfABCT3/BBQ9BT0JPRM9AT0FPRI9KwQBPasNFD0VPRA9Ez0UPQ89Ej0TPQ49qw0SPaoNED0RPQw9Dz0QPQs9Dj0PPQo9qg0OPakNDD0NPS8RCz0MPS4RCj0LPS0RqQ0KPfMB/Tz/BAg9+Tz9PAc99Tz5PAY9AAX1PCYRCD0JPQQ9Bz0IPQM9Bj0HPQI9JhEGPSURBD0FPQA9Az0EPf88Aj0DPf48JRECPSQRAD0BPagN/zwAPacN/jz/PKYNJBH+PPIBIT3/BPw8HT0hPfs8GT0dPfo89gQZPQUR/Dz9PPg8+zz8PPc8+jz7PPY8BRH6PAQR+Dz5PPQ89zz4PPM89jz3PPI8BBH2PAMR9Dz1PCkR8zz0PCgR8jzzPCcRAxHyPO8B5Tz9BPA84TzlPO883TzhPO48+wTdPBcR8DzxPOw87zzwPOs87jzvPOo8FxHuPBYR7DztPOg86zzsPOc86jzrPOY8FhHqPBUR6DzpPMAQ5zzoPL8Q5jznPL4QFRHmPGhO2Tz9BOQ81TzZPOM80TzVPOI8/gTRPCAR5DzlPOA84zzkPN884jzjPN48IBHiPB8R4DzhPNw83zzgPNs83jzfPNo8HxHePB4R3DzdPBQR2zzcPBMR2jzbPBIRHhHaPO4BzTz9BNg8yTzNPNc8xTzJPNY8qU7FPK1O2DzZPNQ81zzYPNM81jzXPNI8rU7WPKxO1DzVPNA80zzUPM880jzTPM48rE7SPKtO0DzRPCMRzzzQPCIRzjzPPCERq07OPKpO8Tz9BMw87TzxPMs86TztPMo85QTpPMMQzDzNPMg8yzzMPMc8yjzLPMY8wxDKPMIQyDzJPMQ8xzzIPMM8xjzHPMI8whDGPMEQxDzFPKhOwzzEPKdOwjzDPKZOwRDCPOoBtTz6BMA8sTy1PL88rTyxPL48SAOtPFEKwDzBPLw8vzzAPLs8vjy/PLo8UQq+PFAKvDy9PLg8uzy8PLc8ujy7PLY8UAq6PE8KuDy5PJYNtzy4PJUNtjy3PJQNTwq2PBoBqTz6BLQ8pTypPLM8oTylPLI8/AShPBoRtDy1PLA8szy0PK88sjyzPK48GhGyPBkRsDyxPKw8rzywPKs8rjyvPKo8GRGuPBgRrDytPE4KqzysPE0KqjyrPEwKGBGqPF8BnTz6BKg8mTydPKc8lTyZPKY8+wSVPBQRqDypPKQ8pzyoPKM8pjynPKI8FBGmPBMRpDylPKA8ozykPJ88ojyjPJ48ExGiPBIRoDyhPB0RnzygPBwRnjyfPBsREhGePO4BwTz6BJw8vTzBPJs8uTy9PJo8JwS5PJkNnDydPJg8mzycPJc8mjybPJY8mQ2aPKVOmDyZPJQ8lzyYPJM8ljyXPJI8pU6WPKROlDyVPBcRkzyUPBYRkjyTPBURpE6SPGhOhTz4BJA8gTyFPI88fTyBPI489QR9PP8QkDyRPIw8jzyQPIs8jjyPPIo8/xCOPP4QjDyNPIg8izyMPIc8ijyLPIY8/hCKPP0QiDyJPLoNhzyIPKNOhjyHPKJO/RCGPDVNeTz4BIQ8dTx5PIM8cTx1PII8+QRxPA4RhDyFPIA8gzyEPH88gjyDPH48DhGCPA0RgDyBPHw8fzyAPHs8fjx/PHo8DRF+PAwRfDx9PPwQezx8PPsQejx7PPoQDBF6PO8BbTz4BHg8aTxtPHc8ZTxpPHY8RgNlPEsKeDx5PHQ8dzx4PHM8djx3PHI8Swp2PEoKdDx1PHA8czx0PG88cjxzPG48SgpyPEkKcDxxPBERbzxwPBARbjxvPA8RSQpuPGABkTz4BGw8jTyRPGs8iTyNPGo8LwSJPL0NbDxtPGg8azxsPGc8ajxrPGY8vQ1qPLwNaDxpPGQ8ZzxoPGM8ZjxnPGI8vA1mPLsNZDxlPEgKYzxkPEcKYjxjPEYKuw1iPBsBVTz0BGA8UTxVPF88TTxRPF489wRNPAgRYDxhPFw8XzxgPFs8XjxfPFo8CBFePAcRXDxdPFg8WzxcPFc8WjxbPFY8BxFaPAYRWDxZPGANVzxYPF8NVjxXPF4NBhFWPOoBSTz0BFQ8RTxJPFM8QTxFPFI89gRBPAIRVDxVPFA8UzxUPE88UjxTPE48AhFSPAERUDxRPEw8TzxQPEs8TjxPPEo8ARFOPAARTDxNPAsRSzxMPAoRSjxLPAkRABFKPPABPTz0BEg8OTw9PEc8NTw5PEY89QQ1PPwQSDxJPEQ8RzxIPEM8RjxHPEI8/BBGPPsQRDxFPEA8QzxEPD88QjxDPD48+xBCPPoQQDxBPAURPzxAPAQRPjw/PAMR+hA+PO8BYTz0BDw8XTxhPDs8WTxdPDo8GwRZPGMNPDw9PDg8Ozw8PDc8Ojw7PDY8Yw06PGINODw5PDQ8Nzw4PDM8Njw3PDI8Yg02PGENNDw1PP8QMzw0PP4QMjwzPP0QYQ0yPDVNJTzxBDA8ITwlPC88HTwhPC488wQdPPYQMDwxPCw8LzwwPCs8LjwvPCo89hAuPPUQLDwtPCg8KzwsPCc8KjwrPCY89RAqPPQQKDwpPIgPJzwoPIcPJjwnPIYP9BAmPO0BGTzxBCQ8FTwZPCM8ETwVPCI8nU4RPKFOJDwlPCA8IzwkPB88IjwjPB48oU4iPKBOIDwhPBw8HzwgPBs8HjwfPBo8oE4ePJ9OHDwdPPkQGzwcPPgQGjwbPPcQn04aPJ5ODTzxBBg8CTwNPBc8BTwJPBY88gQFPPAQGDwZPBQ8FzwYPBM8FjwXPBI88BAWPO8QFDwVPBA8EzwUPA88EjwTPA487xASPO4QEDwRPJxODzwQPJtODjwPPJpO7hAOPJlOMTzxBAw8LTwxPAs8KTwtPAo8ngQpPIsPDDwNPAg8CzwMPAc8CjwLPAY8iw8KPIoPCDwJPAQ8BzwIPAM8BjwHPAI8ig8GPIkPBDwFPPMQAzwEPPIQAjwDPPEQiQ8CPCwC9TvuBAA88Tv1O/877TvxO/47lE7tO5hOADwBPPw7/zsAPPs7/jv/O/o7mE7+O5dO/Dv9O/g7+zv8O/c7+jv7O/Y7l076O5ZO+Dv5O+cQ9zv4O+YQ9jv3O+UQlk72O5VO6TvuBPQ75TvpO/M74TvlO/I78AThO+oQ9Dv1O/A78zv0O+878jvzO+476hDyO+kQ8DvxO+w77zvwO+s77jvvO+o76RDuO+gQ7DvtO5NO6zvsO5JO6jvrO5FO6BDqO5BO3TvuBOg72TvdO+c71TvZO+Y7yATVO0sQ6DvpO+Q75zvoO+M75jvnO+I7SxDmO0oQ5DvlO+A74zvkO9874jvjO947ShDiO0kQ4DvhO+0Q3zvgO+wQ3jvfO+sQSRDeOx8CATzuBNw7/TsBPNs7+Tv9O9o77wT5O+QQ3DvdO9g72zvcO9c72jvbO9Y75BDaO+MQ2DvZO9Q71zvYO9M71jvXO9I74xDWO+IQ1DvVO0gQ0zvUO0cQ0jvTO0YQ4hDSOwUCxTvsBNA7wTvFO887vTvBO8476gS9O9UQ0DvRO8w7zzvQO8s7zjvPO8o71RDOO9QQzDvNO8g7yzvMO8c7yjvLO8Y71BDKO9MQyDvJO94NxzvIO90NxjvHO9wN0xDGO+sBuTvsBMQ7tTu5O8M7sTu1O8I7jE6xO49OxDvFO8A7wzvEO787wjvDO747j07CO45OwDvBO7w7vzvAO7s7vju/O7o7jk6+O41OvDu9O9IQuzu8O9EQuju7O9AQjU66O7oBrTvsBLg7qTutO7c7pTupO7Y77QSlO94QuDu5O7Q7tzu4O7M7tju3O7I73hC2O90QtDu1O7A7szu0O687sjuzO6473RCyO9wQsDuxO4tOrzuwO4pOrjuvO4lO3BCuO4hO0TvsBKw7zTvRO6s7yTvNO6o7OATJO+ENrDutO6g7qzusO6c7qjurO6Y74Q2qO+ANqDupO6Q7pzuoO6M7pjunO6I74A2mO98NpDulO+EQozukO+AQojujO98Q3w2iO+wBlTvpBKA7kTuVO587jTuRO5476wSNO9gQoDuhO5w7nzugO5s7njufO5o72BCeO9cQnDudO5g7mzucO5c7mjubO5Y71xCaO9YQmDuZO4oNlzuYO4kNljuXO4gN1hCWO+MBiTvpBJQ7hTuJO5M7gTuFO5I7g06BO4dOlDuVO5A7kzuUO487kjuTO447h06SO4ZOkDuRO4w7jzuQO4s7jjuPO4o7hk6OO4VOjDuNO9sQizuMO9oQijuLO9kQhU6KO4ROfTvpBIg7eTt9O4c7dTt5O4Y76gR1O9IQiDuJO4Q7hzuIO4M7hjuHO4I70hCGO9EQhDuFO4A7gzuEO387gjuDO3470RCCO9AQgDuBO4JOfzuAO4FOfjt/O4BO0BB+O7oBoTvpBHw7nTuhO3s7mTudO3o7JASZO40NfDt9O3g7ezt8O3c7ejt7O3Y7jQ16O4wNeDt5O3Q7dzt4O3M7djt3O3I7jA12O4sNdDt1O9UQczt0O9QQcjtzO9MQiw1yO+sBZTvmBHA7YTtlO287XTthO2476ARdO8wQcDtxO2w7bztwO2s7bjtvO2o7zBBuO8sQbDttO2g7aztsO2c7ajtrO2Y7yxBqO8oQaDtpO35OZztoO31OZjtnO3xOyhBmO3tOWTvmBGQ7VTtZO2M7UTtVO2I75wRRO8YQZDtlO2A7YztkO187YjtjO147xhBiO8UQYDthO1w7XztgO1s7XjtfO1o7xRBeO8QQXDtdO88QWztcO84QWjtbO80QxBBaO/EBTTvmBFg7STtNO1c7RTtJO1Y7NANFOwMKWDtZO1Q7VztYO1M7VjtXO1I7AwpWOwIKVDtVO1A7UztUO087UjtTO047AgpSOwEKUDtRO8kQTztQO8gQTjtPO8cQAQpOO2UBcTvmBEw7bTtxO0s7aTttO0o7f05pO3pOTDtNO0g7SztMO0c7SjtLO0Y7ek5KO3lOSDtJO0Q7RztIO0M7RjtHO0I7eU5GO3hORDtFOwAKQztEO/8JQjtDO/4JeE5CO7JLNTvkBEA7MTs1Oz87LTsxOz47cU4tO3dOQDtBOzw7PztAOzs7Pjs/Ozo7d04+O3ZOPDs9Ozg7Ozs8Ozc7Ojs7OzY7dk46O3VOODs5O2YNNzs4O2UNNjs3O2QNdU42O+kBKTvkBDQ7JTspOzM7ITslOzI7bE4hO3RONDs1OzA7Mzs0Oy87MjszOy47dE4yO3NOMDsxOyw7LzswOys7LjsvOyo7c04uO3JOLDstO3BOKzssO29OKjsrO25Ock4qO21OHTvkBCg7GTsdOyc7FTsZOyY75QQVO8AQKDspOyQ7JzsoOyM7JjsnOyI7wBAmO78QJDslOyA7IzskOx87IjsjOx47vxAiO74QIDshO2tOHzsgO2pOHjsfO2lOvhAeO2hOQTvkBBw7PTtBOxs7OTs9Oxo7HAQ5O2kNHDsdOxg7GzscOxc7GjsbOxY7aQ0aO2gNGDsZOxQ7FzsYOxM7FjsXOxI7aA0WO2cNFDsVO8MQEzsUO8IQEjsTO8EQZw0SO+oBBTvhBBA7ATsFOw87/ToBOw474wT9OroQEDsROww7DzsQOws7DjsPOwo7uhAOO7kQDDsNOwg7CzsMOwc7CjsLOwY7uRAKO7gQCDsJOyYOBzsIOyUOBjsHOyQOuBAGO+gB+TrhBAQ79Tr5OgM78Tr1OgI7Y07xOmdOBDsFOwA7AzsEO/86AjsDO/46Z04CO2ZOADsBO/w6/zoAO/s6/jr/Ovo6Zk7+OmVO/Dr9Or0Q+zr8OrwQ+jr7OrsQZU76OmRO7TrhBPg66TrtOvc65TrpOvY64gTlOrQQ+Dr5OvQ69zr4OvM69jr3OvI6tBD2OrMQ9Dr1OvA68zr0Ou868jrzOu46sxDyOrIQ8DrxOmJO7zrwOmFO7jrvOmBOshDuOl9OETvhBOw6DTsRO+s6CTsNO+o6SgQJOykO7DrtOug66zrsOuc66jrrOuY6KQ7qOigO6DrpOuQ65zroOuM65jrnOuI6KA7mOicO5DrlOrcQ4zrkOrYQ4jrjOrUQJw7iOntN1TrdBOA60TrVOt86zTrROt464ATNOq4Q4DrhOtw63zrgOts63jrfOto6rhDeOq0Q3DrdOtg62zrcOtc62jrbOtY6rRDaOqwQ2DrZOl1O1zrYOlxO1jrXOltOrBDWOlpOyTrdBNQ6xTrJOtM6wTrFOtI63wTBOqgQ1DrVOtA60zrUOs860jrTOs46qBDSOqcQ0DrROsw6zzrQOss6zjrPOso6pxDOOqYQzDrNOrEQyzrMOrAQyjrLOq8QphDKOvwBvTrdBMg6uTq9Osc6tTq5OsY63gS1OqIQyDrJOsQ6xzrIOsM6xjrHOsI6ohDGOqEQxDrFOsA6wzrEOr86wjrDOr46oRDCOqAQwDrBOqsQvzrAOqoQvjq/OqkQoBC+OvoB4TrdBLw63TrhOrs62TrdOro6Xk7ZOllOvDq9Org6uzq8Orc6ujq7OrY6WU66OlhOuDq5OrQ6tzq4OrM6tjq3OrI6WE62OldOtDq1OqUQszq0OqQQsjqzOqMQV06yOlZOpTrbBLA6oTqlOq86nTqhOq46T06dOlVOsDqxOqw6rzqwOqs6rjqvOqo6VU6uOlROrDqtOqg6qzqsOqc6qjqrOqY6VE6qOlNOqDqpOngNpzqoOncNpjqnOnYNU06mOuYBmTrbBKQ6lTqZOqM6kTqVOqI6S06ROlJOpDqlOqA6ozqkOp86ojqjOp46Uk6iOlFOoDqhOpw6nzqgOps6njqfOpo6UU6eOlBOnDqdOk5OmzqcOk1OmjqbOkxOUE6aOrIBjTrbBJg6iTqNOpc6hTqJOpY63ASFOpwQmDqZOpQ6lzqYOpM6ljqXOpI6nBCWOpsQlDqVOpA6kzqUOo86kjqTOo46mxCSOpoQkDqROkpOjzqQOklOjjqPOkhOmhCOOkdOsTrbBIw6rTqxOos6qTqtOoo6IASpOnsNjDqNOog6izqMOoc6ijqLOoY6ew2KOnoNiDqJOoQ6hzqIOoM6hjqHOoI6eg2GOnkNhDqFOp8QgzqEOp4QgjqDOp0QeQ2COucBdTrYBIA6cTp1On86bTpxOn462gRtOpYQgDqBOnw6fzqAOns6fjp/Ono6lhB+OpUQfDp9Ong6ezp8Onc6ejp7OnY6lRB6OpQQeDp5OuAOdzp4Ot8Odjp3Ot4OlBB2OuUBaTrYBHQ6ZTppOnM6YTplOnI6bARhOrMOdDp1OnA6czp0Om86cjpzOm46sw5yOrIOcDpxOmw6bzpwOms6bjpvOmo6sg5uOrEObDptOpkQazpsOpgQajprOpcQsQ5qOswBXTrYBGg6WTpdOmc6VTpZOmY62QRVOpAQaDppOmQ6ZzpoOmM6ZjpnOmI6kBBmOo8QZDplOmA6YzpkOl86YjpjOl46jxBiOo4QYDphOrAOXzpgOq8OXjpfOq4OjhBeOrpNgTrYBFw6fTqBOls6eTp9Olo6eAR5OuMOXDpdOlg6WzpcOlc6WjpbOlY64w5aOuIOWDpZOlQ6VzpYOlM6VjpXOlI64g5WOuEOVDpVOpMQUzpUOpIQUjpTOpEQ4Q5SOtdNRTrVBFA6QTpFOk86PTpBOk461wQ9OooQUDpROkw6TzpQOks6TjpPOko6ihBOOokQTDpNOkg6SzpMOkc6SjpLOkY6iRBKOogQSDpJOlIPRzpIOlEPRjpHOlAPiBBGOuQBOTrVBEQ6NTo5OkM6MTo1OkI6Qk4xOkZORDpFOkA6QzpEOj86QjpDOj46Rk5COkVOQDpBOjw6PzpAOjs6Pjo/Ojo6RU4+OkROPDo9Oo0QOzo8OowQOjo7OosQRE46OkNOLTrVBDg6KTotOjc6JTopOjY61gQlOoQQODo5OjQ6Nzo4OjM6Njo3OjI6hBA2OoMQNDo1OjA6Mzo0Oi86MjozOi46gxAyOoIQMDoxOkFOLzowOkBOLjovOj9OghAuOj5OUTrVBCw6TTpROis6STpNOio6kgRJOlUPLDotOig6KzosOic6KjorOiY6VQ8qOlQPKDopOiQ6JzooOiM6JjonOiI6VA8mOlMPJDolOocQIzokOoYQIjojOoUQUw8iOiYCFTrSBCA6EToVOh86DToROh46OU4NOj1OIDohOhw6HzogOhs6HjofOho6PU4eOjxOHDodOhg6GzocOhc6GjobOhY6PE4aOjtOGDoZOnsQFzoYOnoQFjoXOnkQO04WOjpOCTrSBBQ6BToJOhM6AToFOhI61AQBOn4QFDoVOhA6EzoUOg86EjoTOg46fhASOn0QEDoROgw6DzoQOgs6DjoPOgo6fRAOOnwQDDoNOjhOCzoMOjdOCjoLOjZOfBAKOjVO/TnSBAg6+Tn9OQc69Tn5OQY6vAT1ORUQCDoJOgQ6BzoIOgM6BjoHOgI6FRAGOhQQBDoFOgA6AzoEOv85AjoDOv45FBACOhMQADoBOoEQ/zkAOoAQ/jn/OX8QExD+ORkCITrSBPw5HTohOvs5GTodOvo50wQZOngQ/Dn9Ofg5+zn8Ofc5+jn7OfY5eBD6OXcQ+Dn5OfQ59zn4OfM59jn3OfI5dxD2OXYQ9Dn1ORIQ8zn0OREQ8jnzORAQdhDyOQsC5TnPBPA54TnlOe853TnhOe45zQTdOWMQ8DnxOew57znwOes57jnvOeo5YxDuOWIQ7DntOeg56znsOec56jnrOeY5YhDqOWEQ6DnpOW8Q5znoOW4Q5jnnOW0QYRDmOSEC2TnPBOQ51TnZOeM50TnVOeI50QTROXIQ5DnlOeA54znkOd854jnjOd45chDiOXEQ4DnhOdw53zngOds53jnfOdo5cRDeOXAQ3DndOWAQ2zncOV8Q2jnbOV4QcBDaOQMCzTnPBNg5yTnNOdc5xTnJOdY5ME7FOTRO2DnZOdQ51znYOdM51jnXOdI5NE7WOTNO1DnVOdA50znUOc850jnTOc45M07SOTJO0DnROXUQzznQOXQQzjnPOXMQMk7OOTFO8TnPBMw57TnxOcs56TntOco50ATpOWwQzDnNOcg5yznMOcc5yjnLOcY5bBDKOWsQyDnJOcQ5xznIOcM5xjnHOcI5axDGOWoQxDnFOS9OwznEOS5OwjnDOS1OahDCOSxOtTnLBMA5sTm1Ob85rTmxOb45J06tOStOwDnBObw5vznAObs5vjm/Obo5K06+OSpOvDm9Obg5uzm8Obc5ujm7ObY5Kk66OSlOuDm5OV0Qtzm4OVwQtjm3OVsQKU62OShOqTnLBLQ5pTmpObM5oTmlObI5zgShOWYQtDm1ObA5szm0Oa85sjmzOa45ZhCyOWUQsDmxOaw5rzmwOas5rjmvOao5ZRCuOWQQrDmtOSZOqzmsOSVOqjmrOSROZBCqOSNOnTnLBKg5mTmdOac5lTmZOaY5zQSVOWAQqDmpOaQ5pzmoOaM5pjmnOaI5YBCmOV8QpDmlOaA5ozmkOZ85ojmjOZ45XxCiOV4QoDmhOWkQnzmgOWgQnjmfOWcQXhCeOQMCwTnLBJw5vTnBOZs5uTm9OZo5zAS5OVoQnDmdOZg5mzmcOZc5mjmbOZY5WhCaOVkQmDmZOZQ5lzmYOZM5ljmXOZI5WRCWOVgQlDmVOWMQkzmUOWIQkjmTOWEQWBCSOSEChTnGBJA5gTmFOY85fTmBOY45ygR9OVQQkDmROYw5jzmQOYs5jjmPOYo5VBCOOVMQjDmNOYg5izmMOYc5ijmLOYY5UxCKOVIQiDmJOUUQhzmIOUQQhjmHOUMQUhCGOSACeTnGBIQ5dTl5OYM5cTl1OYI5yQRxOU4QhDmFOYA5gzmEOX85gjmDOX45ThCCOU0QgDmBOXw5fzmAOXs5fjl/OXo5TRB+OUwQfDl9OVcQezl8OVYQejl7OVUQTBB6OQQCbTnGBHg5aTltOXc5ZTlpOXY5yARlOUgQeDl5OXQ5dzl4OXM5djl3OXI5SBB2OUcQdDl1OXA5czl0OW85cjlzOW45RxByOUYQcDlxOVEQbzlwOVAQbjlvOU8QRhBuOQUCkTnGBGw5jTmROWs5iTmNOWo5xwSJOUIQbDltOWg5azlsOWc5ajlrOWY5QhBqOUEQaDlpOWQ5ZzloOWM5ZjlnOWI5QRBmOUAQZDllOUsQYzlkOUoQYjljOUkQQBBiOR8CVTnDBGA5UTlVOV85TTlROV45wARNOScQYDlhOVw5XzlgOVs5XjlfOVo5JxBeOSYQXDldOVg5WzlcOVc5WjlbOVY5JhBaOSUQWDlZOTkQVzlYOTgQVjlXOTcQJRBWOR0CSTnDBFQ5RTlJOVM5QTlFOVI5xQRBOTwQVDlVOVA5UzlUOU85UjlTOU45PBBSOTsQUDlROUw5TzlQOUs5TjlPOUo5OxBOOToQTDlNOSQQSzlMOSMQSjlLOSIQOhBKOQcCPTnDBEg5OTk9OUc5NTk5OUY5Hk41OSJOSDlJOUQ5RzlIOUM5RjlHOUI5Ik5GOSFORDlFOUA5QzlEOT85QjlDOT45IU5COSBOQDlBOT8QPzlAOT4QPjk/OT0QIE4+OR9OYTnDBDw5XTlhOTs5WTldOTo5xARZOTYQPDk9OTg5Ozk8OTc5Ojk7OTY5NhA6OTUQODk5OTQ5Nzk4OTM5Njk3OTI5NRA2OTQQNDk1OR1OMzk0ORxOMjkzORtONBAyORpOJTm+BDA5ITklOS85HTkhOS45wgQdOTAQMDkxOSw5LzkwOSs5LjkvOSo5MBAuOS8QLDktOSg5KzksOSc5KjkrOSY5LxAqOS4QKDkpOSEQJzkoOSAQJjknOR8QLhAmOR4CGTm+BCQ5FTkZOSM5ETkVOSI5wQQROSoQJDklOSA5IzkkOR85IjkjOR45KhAiOSkQIDkhORw5HzkgORs5HjkfORo5KRAeOSgQHDkdOTMQGzkcOTIQGjkbOTEQKBAaOQYCDTm+BBg5CTkNORc5BTkJORY5wAQFOSQQGDkZORQ5FzkYORM5FjkXORI5JBAWOSMQFDkVORA5EzkUOQ85EjkTOQ45IxASOSIQEDkROS0QDzkQOSwQDjkPOSsQIhAOOQcCMTm+BAw5LTkxOQs5KTktOQo5vwQpOR4QDDkNOQg5CzkMOQc5CjkLOQY5HhAKOR0QCDkJOQQ5BzkIOQM5BjkHOQI5HRAGORwQBDkFOScQAzkEOSYQAjkDOSUQHBACOR0C9Ti6BAA58Tj1OP847TjxOP44FU7tOBlOADkBOfw4/zgAOfs4/jj/OPo4GU7+OBhO/Dj9OPg4+zj8OPc4+jj7OPY4GE76OBdO+Dj5OA8Q9zj4OA4Q9jj3OA0QF072OBZO6Ti6BPQ45TjpOPM44TjlOPI4vQThOBgQ9Dj1OPA48zj0OO848jjzOO44GBDyOBcQ8DjxOOw47zjwOOs47jjvOOo4FxDuOBYQ7DjtOBRO6zjsOBNO6jjrOBJOFhDqOBFO3Ti6BOg42TjdOOc41TjZOOY4vATVOBIQ6DjpOOQ45zjoOOM45jjnOOI4EhDmOBEQ5DjlOOA44zjkON844jjjON44ERDiOBAQ4DjhOBsQ3zjgOBoQ3jjfOBkQEBDeOAsCATm6BNw4/TgBOds4+Tj9ONo4uwT5OAwQ3DjdONg42zjcONc42jjbONY4DBDaOAsQ2DjZONQ41zjYONM41jjXONI4CxDWOAoQ1DjVOBUQ0zjUOBQQ0jjTOBMQChDSOBkCxTi2BNA4wTjFOM84vTjBOM44swS9OOsP0DjROMw4zzjQOMs4zjjPOMo46w/OOOoPzDjNOMg4yzjMOMc4yjjLOMY46g/KOOkPyDjJOP0PxzjIOPwPxjjHOPsP6Q/GOBsCuTi2BMQ4tTi5OMM4sTi1OMI4uQSxOAYQxDjFOMA4wzjEOL84wjjDOL44BhDCOAUQwDjBOLw4vzjAOLs4vji/OLo4BRC+OAQQvDi9OOgPuzi8OOcPuji7OOYPBBC6OAkCrTi2BLg4qTitOLc4pTipOLY4uASlOAAQuDi5OLQ4tzi4OLM4tji3OLI4ABC2OP8PtDi1OLA4szi0OK84sjizOK44/w+yOP4PsDixOAkQrziwOAgQrjivOAcQ/g+uOAoC0Ti2BKw4zTjROKs4yTjNOKo4twTJOPoPrDitOKg4qzisOKc4qjirOKY4+g+qOPkPqDipOKQ4pzioOKM4pjinOKI4+Q+mOPgPpDilOAMQozikOAIQojijOAEQ+A+iOBoClTixBKA4kTiVOJ84jTiROJ44tQSNOPQPoDihOJw4nzigOJs4njifOJo49A+eOPMPnDidOJg4mzicOJc4mjibOJY48w+aOPIPmDiZOOUPlziYOOQPljiXOOMP8g+WOBwCiTixBJQ4hTiJOJM4gTiFOJI4tASBOO4PlDiVOJA4kziUOI84kjiTOI447g+SOO0PkDiROIw4jziQOIs4jjiPOIo47Q+OOOwPjDiNOPcPiziMOPYPijiLOPUP7A+KOAgCfTixBIg4eTh9OIc4dTh5OIY4swR1OOgPiDiJOIQ4hziIOIM4hjiHOII46A+GOOcPhDiFOIA4gziEOH84gjiDOH445w+COOYPgDiBOPEPfziAOPAPfjh/OO8P5g9+OAkCoTixBHw4nTihOHs4mTidOHo4sgSZOOIPfDh9OHg4ezh8OHc4ejh7OHY44g96OOEPeDh5OHQ4dzh4OHM4djh3OHI44Q92OOAPdDh1OOsPczh0OOoPcjhzOOkP4A9yOBsCZTitBHA4YThlOG84XThhOG44qgRdOMEPcDhxOGw4bzhwOGs4bjhvOGo4wQ9uOMAPbDhtOGg4azhsOGc4ajhrOGY4wA9qOL8PaDhpONMPZzhoONIPZjhnONEPvw9mOCMCWTitBGQ4VThZOGM4UThVOGI4sARRONwPZDhlOGA4YzhkOF84YjhjOF443A9iONsPYDhhOFw4XzhgOFs4XjhfOFo42w9eONoPXDhdOL4PWzhcOL0PWjhbOLwP2g9aOAECTTitBFg4SThNOFc4RThJOFY4rwRFONYPWDhZOFQ4VzhYOFM4VjhXOFI41g9WONUPVDhVOFA4UzhUOE84UjhTOE441Q9SONQPUDhRON8PTzhQON4PTjhPON0P1A9OOAICcTitBEw4bThxOEs4aThtOEo4rgRpONAPTDhNOEg4SzhMOEc4SjhLOEY40A9KOM8PSDhJOEQ4RzhIOEM4RjhHOEI4zw9GOM4PRDhFONkPQzhEONgPQjhDONcPzg9COCICNTioBEA4MTg1OD84LTgxOD44rAQtOMoPQDhBODw4PzhAODs4Pjg/ODo4yg8+OMkPPDg9ODg4Ozg8ODc4Ojg7ODY4yQ86OMgPODg5OLsPNzg4OLoPNjg3OLkPyA82OBgCKTioBDQ4JTgpODM4ITglODI4qwQhOMQPNDg1ODA4Mzg0OC84MjgzOC44xA8yOMMPMDgxOCw4LzgwOCs4LjgvOCo4ww8uOMIPLDgtOM0PKzgsOMwPKjgrOMsPwg8qOAACHTioBCg4GTgdOCc4FTgZOCY4qgQVOL4PKDgpOCQ4JzgoOCM4JjgnOCI4vg8mOL0PJDglOCA4IzgkOB84IjgjOB44vQ8iOLwPIDghOMcPHzggOMYPHjgfOMUPvA8eOAECQTioBBw4PThBOBs4OTg9OBo4qQQ5OLgPHDgdOBg4GzgcOBc4GjgbOBY4uA8aOLcPGDgZOBQ4FzgYOBM4FjgXOBI4tw8WOLYPFDgVOMEPEzgUOMAPEjgTOL8Ptg8SOCMCBTilBBA4ATgFOA84/TcBOA44owT9N6MPEDgROAw4DzgQOAs4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SjZLNgsPAg9KNtUBPTZ+BEg2OTY9Nkc2NTY5NkY2gAQ1Nv4OSDZJNkQ2RzZINkM2RjZHNkI2/g5GNv0ORDZFNkA2QzZENj82QjZDNj42/Q5CNvwOQDZBNgcPPzZANgYPPjY/NgUP/A4+NtABYTZ+BDw2XTZhNjs2WTZdNjo2fwRZNvgOPDY9Njg2OzY8Njc2OjY7NjY2+A46NvcOODY5NjQ2NzY4NjM2NjY3NjI29w42NvYONDY1NgEPMzY0NgAPMjYzNv8O9g4yNiQCJTZ8BDA2ITYlNi82HTYhNi42xwIdNh0IMDYxNiw2LzYwNis2LjYvNio2HQguNhwILDYtNig2KzYsNic2KjYrNiY2HAgqNhsIKDYpNutNJzYoNupNJjYnNulNGwgmNhIBGTZ8BCQ2FTYZNiM2ETYVNiI2fQQRNvIOJDYlNiA2IzYkNh82IjYjNh428g4iNvEOIDYhNhw2HzYgNhs2HjYfNho28Q4eNvAOHDYdNhoIGzYcNhkIGjYbNhgI8A4aNjcBDTZ8BBg2CTYNNhc2BTYJNhY2cwQFNtEOGDYZNhQ2FzYYNhM2FjYXNhI20Q4WNtAOFDYVNhA2EzYUNg82EjYTNg420A4SNs8OEDYRNvUODzYQNvQODjYPNvMOzw4ONs0BMTZ8BAw2LTYxNgs2KTYtNgo27E0pNuhNDDYNNgg2CzYMNgc2CjYLNgY26E0KNudNCDYJNgQ2BzYINgM2BjYHNgI2500GNuZNBDYFNs4OAzYENs0OAjYDNswO5k0CNspN9TV6BAA28TX1Nf817TXxNf41bgTtNbkOADYBNvw1/zUANvs1/jX/Nfo1uQ7+NbgO/DX9Nfg1+zX8Nfc1+jX7NfY1uA76NbcO+DX5NeRN9zX4NeNN9jX3NeJNtw72Nb9N6TV6BPQ15TXpNfM14TXlNfI1ewThNewO9DX1NfA18zX0Ne818jXzNe417A7yNesO8DXxNew17zXwNes17jXvNeo16w7uNeoO7DXtNbYO6zXsNbUO6jXrNbQO6g7qNc4B3TV6BOg12TXdNec11TXZNeY1xQLVNRcI6DXpNeQ15zXoNeM15jXnNeI1FwjmNRYI5DXlNeA14zXkNd814jXjNd41FgjiNRUI4DXhNe8O3zXgNe4O3jXfNe0OFQjeNTQBATZ6BNw1/TUBNts1+TX9Ndo15U35NeFN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5jHnMeIxWU3mMVhN5DHlMfMN4zHkMfIN4jHjMfENWE3iMVdN1TE3BOAx0THVMd8xzTHRMd4xOgTNMeoN4DHhMdwx3zHgMdsx3jHfMdox6g3eMekN3DHdMdgx2zHcMdcx2jHbMdYx6Q3aMegN2DHZMeEN1zHYMeAN1jHXMd8N6A3WMewByTE3BNQxxTHJMdMxwTHFMdIxOQTBMeQN1DHVMdAx0zHUMc8x0jHTMc4x5A3SMeMN0DHRMcwxzzHQMcsxzjHPMcox4w3OMeINzDHNMe0NyzHMMewNyjHLMesN4g3KMeABvTE3BMgxuTG9MccxtTG5McYxIwS1MYcNyDHJMcQxxzHIMcMxxjHHMcIxhw3GMYYNxDHFMcAxwzHEMb8xwjHDMb4xhg3CMYUNwDHBMecNvzHAMeYNvjG/MeUNhQ2+MUtN4TE3BLwx3THhMbsx2THdMboxOATZMd4NvDG9MbgxuzG8MbcxujG7MbYx3g26Md0NuDG5MbQxtzG4MbMxtjG3MbIx3Q22MdwNtDG1MYQNszG0MYMNsjGzMYIN3A2yMesBpTEzBLAxoTGlMa8xnTGhMa4xNgSdMdgNsDGxMawxrzGwMasxrjGvMaox2A2uMdcNrDGtMagxqzGsMacxqjGrMaYx1w2qMdYNqDGpMVVNpzGoMVRNpjGnMVNN1g2mMVJNmTEzBKQxlTGZMaMxkTGVMaIxNQSRMdINpDGlMaAxozGkMZ8xojGjMZ4x0g2iMdENoDGhMZwxnzGgMZsxnjGfMZox0Q2eMdANnDGdMdsNmzGcMdoNmjGbMdkN0A2aMdwBjTEzBJgxiTGNMZcxhTGJMZYxNASFMcwNmDGZMZQxlzGYMZMxljGXMZIxzA2WMcsNlDGVMZAxkzGUMY8xkjGTMY4xyw2SMcoNkDGRMdUNjzGQMdQNjjGPMdMNyg2OMd4BsTEzBIwxrTGxMYsxqTGtMYoxVk2pMVFNjDGNMYgxizGMMYcxijGLMYYxUU2KMVBNiDGJMYQxhzGIMYMxhjGHMYIxUE2GMU9NhDGFMc8NgzGEMc4NgjGDMc0NT02CMboBdTEwBIAxcTF1MX8xbTFxMX4xdAJtMcEGgDGBMXwxfzGAMXsxfjF/MXoxwQZ+McAGfDF9MXgxezF8MXcxejF7MXYxwAZ6Mb8GeDF5McMNdzF4McINdjF3McENvwZ2MTMBaTEwBHQxZTFpMXMxYTFlMXIxMgRhMcYNdDF1MXAxczF0MW8xcjFzMW4xxg1yMcUNcDFxMWwxbzFwMWsxbjFvMWoxxQ1uMcQNbDFtMb4GazFsMb0GajFrMbwGxA1qMRIBXTEwBGgxWTFdMWcxVTFZMWYxBwRVMQkNaDFpMWQxZzFoMWMxZjFnMWIxCQ1mMQgNZDFlMWAxYzFkMV8xYjFjMV4xCA1iMQcNYDFhMckNXzFgMcgNXjFfMccNBw1eMbkBgTEwBFwxfTGBMVsxeTF9MVoxMQR5McANXDFdMVgxWzFcMVcxWjFbMVYxwA1aMb8NWDFZMVQxVzFYMVMxVjFXMVIxvw1WMb4NVDFVMQYNUzFUMQUNUjFTMQQNvg1SMcgBRTEtBFAxQTFFMU8xPTFBMU4xLwQ9MboNUDFRMUwxTzFQMUsxTjFPMUoxug1OMbkNTDFNMUgxSzFMMUcxSjFLMUYxuQ1KMbgNSDFJMbgMRzFIMbcMRjFHMbYMuA1GMbcBOTEtBEQxNTE5MUMxMTE1MUIxcQIxMbUGRDFFMUAxQzFEMT8xQjFDMT4xtQZCMbQGQDFBMTwxPzFAMTsxPjE/MToxtAY+MbMGPDE9Mb0NOzE8MbwNOjE7MbsNswY6MRsBLTEtBDgxKTEtMTcxJTEpMTYxLgQlMbQNODE5MTQxNzE4MTMxNjE3MTIxtA02MbMNNDE1MTAxMzE0MS8xMjEzMS4xsw0yMbINMDExMbIGLzEwMbEGLjEvMbAGsg0uMRMBUTEtBCwxTTFRMSsxSTFNMSox9wNJMbsMLDEtMSgxKzEsMScxKjErMSYxuwwqMboMKDEpMSQxJzEoMSMxJjEnMSIxugwmMbkMJDElMbcNIzEkMbYNIjEjMbUNuQwiMbgBFTEpBCAxETEVMR8xDTERMR4xawINMZcGIDEhMRwxHzEgMRsxHjEfMRoxlwYeMZYGHDEdMRgxGzEcMRcxGjEbMRYxlgYaMZUGGDEZMaUNFzEYMaQNFjEXMaMNlQYWMWoBCTEpBBQxBTEJMRMxATEFMRIxLAQBMa4NFDEVMRAxEzEUMQ8xEjETMQ4xrg0SMa0NEDERMQwxDzEQMQsxDjEPMQoxrQ0OMawNDDENMZQGCzEMMZMGCjELMZIGrA0KMWYB/TApBAgx+TD9MAcx9TD5MAYxKwT1MKgNCDEJMQQxBzEIMQMxBjEHMQIxqA0GMacNBDEFMQAxAzEEMf8wAjEDMf4wpw0CMaYNADEBMbEN/zAAMbAN/jD/MK8Npg3+MPIBITEpBPwwHTEhMfswGTEdMfowKgQZMaIN/DD9MPgw+zD8MPcw+jD7MPYwog36MKEN+DD5MPQw9zD4MPMw9jD3MPIwoQ32MKAN9DD1MKsN8zD0MKoN8jDzMKkNoA3yMPMB5TAmBPAw4TDlMO8w3TDhMO4wKATdMJwN8DDxMOww7zDwMOsw7jDvMOownA3uMJsN7DDtMOgw6zDsMOcw6jDrMOYwmw3qMJoN6DDpMEIN5zDoMEEN5jDnMEANmg3mMCRN2TAmBOQw1TDZMOMw0TDVMOIwaALRMIsG5DDlMOAw4zDkMN8w4jDjMN4wiwbiMIoG4DDhMNww3zDgMNsw3jDfMNowigbeMIkG3DDdMJ8N2zDcMJ4N2jDbMJ0NiQbaMA0BzTAmBNgwyTDNMNcwxTDJMNYwJwTFMJYN2DDZMNQw1zDYMNMw1jDXMNIwlg3WMJUN1DDVMNAw0zDUMM8w0jDTMM4wlQ3SMJQN0DDRMIgGzzDQMIcGzjDPMIYGlA3OMBoB8TAmBMww7TDxMMsw6TDtMMowFATpMEUNzDDNMMgwyzDMMMcwyjDLMMYwRQ3KMEQNyDDJMMQwxzDIMMMwxjDHMMIwRA3GMEMNxDDFMJkNwzDEMJgNwjDDMJcNQw3CMLYBtTAiBMAwsTC1ML8wrTCxML4wSk2tME5NwDDBMLwwvzDAMLswvjC/MLowTk2+ME1NvDC9MLgwuzC8MLcwujC7MLYwTU26MExNuDC5MIcNtzC4MIYNtjC3MIUNTE22MEtNqTAiBLQwpTCpMLMwoTClMLIwJQShMJANtDC1MLAwszC0MK8wsjCzMK4wkA2yMI8NsDCxMKwwrzCwMKswrjCvMKowjw2uMI4NrDCtMElNqzCsMEhNqjCrMEdNjg2qMEZNnTAiBKgwmTCdMKcwlTCZMKYwJASVMIoNqDCpMKQwpzCoMKMwpjCnMKIwig2mMIkNpDClMKAwozCkMJ8wojCjMJ4wiQ2iMIgNoDChMJMNnzCgMJINnjCfMJENiA2eMOMBwTAiBJwwvTDBMJswuTC9MJowIwS5MIQNnDCdMJgwmzCcMJcwmjCbMJYwhA2aMIMNmDCZMJQwlzCYMJMwljCXMJIwgw2WMIINlDCVMI0NkzCUMIwNkjCTMIsNgg2SMOsBhTAeBJAwgTCFMI8wfTCBMI4wIQR9MH4NkDCRMIwwjzCQMIswjjCPMIowfg2OMH0NjDCNMIgwizCMMIcwijCLMIYwfQ2KMHwNiDCJMERNhzCIMENNhjCHMEJNfA2GMLEBeTAeBIQwdTB5MIMwcTB1MIIwIARxMHgNhDCFMIAwgzCEMH8wgjCDMH4weA2CMHcNgDCBMHwwfzCAMHswfjB/MHowdw1+MHYNfDB9MIENezB8MIANejB7MH8Ndg16MOYBbTAeBHgwaTBtMHcwZTBpMHYwHwRlMHINeDB5MHQwdzB4MHMwdjB3MHIwcg12MHENdDB1MHAwczB0MG8wcjBzMG4wcQ1yMHANcDBxMHsNbzBwMHoNbjBvMHkNcA1uMOcBkTAeBGwwjTCRMGswiTCNMGowRU2JMEFNbDBtMGgwazBsMGcwajBrMGYwQU1qMEBNaDBpMGQwZzBoMGMwZjBnMGIwQE1mMD9NZDBlMHUNYzBkMHQNYjBjMHMNP01iMD5NVTAaBGAwUTBVMF8wTTBRMF4wHQRNMGwNYDBhMFwwXzBgMFswXjBfMFowbA1eMGsNXDBdMFgwWzBcMFcwWjBbMFYwaw1aMGoNWDBZMDxNVzBYMDtNVjBXMDpNag1WMDlNSTAaBFQwRTBJMFMwQTBFMFIwHARBMGYNVDBVMFAwUzBUME8wUjBTME4wZg1SMGUNUDBRMEwwTzBQMEswTjBPMEowZQ1OMGQNTDBNMG8NSzBMMG4NSjBLMG0NZA1KMOkBPTAaBEgwOTA9MEcwNTA5MEYwGwQ1MGANSDBJMEQwRzBIMEMwRjBHMEIwYA1GMF8NRDBFMEAwQzBEMD8wQjBDMD4wXw1CMF4NQDBBMGkNPzBAMGgNPjA/MGcNXg0+MOoBYTAaBDwwXTBhMDswWTBdMDowPU1ZMDhNPDA9MDgwOzA8MDcwOjA7MDYwOE06MDdNODA5MDQwNzA4MDMwNjA3MDIwN002MDZNNDA1MGMNMzA0MGINMjAzMGENNk0yMDVNJTAVBDAwITAlMC8wHTAhMC4wGQQdMFoNMDAxMCwwLzAwMCswLjAvMCowWg0uMFkNLDAtMCgwKzAsMCcwKjArMCYwWQ0qMFgNKDApMEsNJzAoMEoNJjAnMEkNWA0mMN0BGTAVBCQwFTAZMCMw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jSyRLJ4s4wKNLKEIoCyhLJwsnyygLJssniyfLJosoQieLKAInCydLJgsmyycLJcsmiybLJYsoAiaLJ8ImCyZLFgMlyyYLFcMliyXLFYMnwiWLKEBiSzbA5QshSyJLJMsgSyFLJIs3QOBLGQMlCyVLJAskyyULI8skiyTLI4sZAySLGMMkCyRLIwsjyyQLIssjiyPLIosYwyOLGIMjCyNLJ4IiyyMLJ0IiiyLLJwIYgyKLKIBfSzbA4gseSx9LIcsdSx5LIYs3AN1LF4MiCyJLIQshyyILIMshiyHLIIsXgyGLF0MhCyFLIAsgyyELH8sgiyDLH4sXQyCLFwMgCyBLGcMfyyALGYMfix/LGUMXAx+LDkBoSzbA3wsnSyhLHssmSydLHos2gOZLFsMfCx9LHgseyx8LHcseix7LHYsWwx6LFoMeCx5LHQsdyx4LHMsdix3LHIsWgx2LFkMdCx1LGEMcyx0LGAMcixzLF8MWQxyLDcBZSzZA3AsYSxlLG8sXSxhLG4s5gJdLK0IcCxxLGwsbyxwLGssbixvLGosrQhuLKwIbCxtLGgsayxsLGcsaixrLGYsrAhqLKsIaCxpLO1MZyxoLOxMZixnLOtMqwhmLDVLWSzZA2QsVSxZLGMsUSxVLGIs2gNRLFgMZCxlLGAsYyxkLF8sYixjLF4sWAxiLFcMYCxhLFwsXyxgLFssXixfLFosVwxeLFYMXCxdLKoIWyxcLKkIWixbLKgIVgxaLKEBTSzZA1gsSSxNLFcsRSxJLFYsyAJFLCMIWCxZLFQsVyxYLFMsVixXLFIsIwhWLCIIVCxVLFAsUyxULE8sUixTLE4sIghSLCEIUCxRLFsMTyxQLFoMTixPLFkMIQhOLDcBcSzZA0wsbSxxLEssaSxtLEos7kxpLOpMTCxNLEgsSyxMLEcsSixLLEYs6kxKLOlMSCxJLEQsRyxILEMsRixHLEIs6UxGLOhMRCxFLCAIQyxELB8IQixDLB4I6ExCLDwBNSzXA0AsMSw1LD8sLSwxLD4s1gItLGUIQCxBLDwsPyxALDssPiw/LDosZQg+LGQIPCw9LDgsOyw8LDcsOiw7LDYsZAg6LGMIOCw5LEwMNyw4LEsMNiw3LEoMYwg2LJ8BKSzXAzQsJSwpLDMsISwlLDIs2AMhLFIMNCw1LDAsMyw0LC8sMiwzLC4sUgwyLFEMMCwxLCwsLywwLCssLiwvLCosUQwuLFAMLCwtLGIIKywsLGEIKiwrLGAIUAwqLKABHSzXAygsGSwdLCcsFSwZLCYsuwIVLO0HKCwpLCQsJywoLCMsJiwnLCIs7QcmLOwHJCwlLCAsIywkLB8sIiwjLB4s7AciLOsHICwhLFUMHywgLFQMHiwfLFMM6wceLDwBQSzXAxwsPSxBLBssOSw9LBos1gM5LE8MHCwdLBgsGywcLBcsGiwbLBYsTwwaLE4MGCwZLBQsFywYLBMsFiwXLBIsTgwWLE0MFCwVLOoHEywULOkHEiwTLOgHTQwSLDYBBSzVAxAsASwFLA8s/SsBLA4s2gL9K3cIECwRLAwsDywQLAssDiwPLAosdwgOLHYIDCwNLAgsCywMLAcsCiwLLAYsdggKLHUICCwJLOZMBywILOVMBiwHLORMdQgGLJ4B+SvVAwQs9Sv5KwMs8Sv1KwIs1gPxK0wMBCwFLAAsAywELP8rAiwDLP4rTAwCLEsMACwBLPwr/ysALPsr/iv/K/orSwz+K0oM/Cv9K3QI+yv8K3MI+iv7K3IISgz6K58B7SvVA/gr6SvtK/cr5SvpK/YrvgLlK/kH+Cv5K/Qr9yv4K/Mr9iv3K/Ir+Qf2K/gH9Cv1K/Ar8yv0K+8r8ivzK+4r+AfyK/cH8CvxK08M7yvwK04M7ivvK00M9wfuKzYBESzVA+wrDSwRLOsrCSwNLOor50wJLONM7CvtK+gr6yvsK+cr6ivrK+Yr40zqK+JM6CvpK+Qr5yvoK+Mr5ivnK+Ir4kzmK+FM5CvlK/YH4yvkK/UH4ivjK/QH4UziKzgB1SvTA+Ar0SvVK98rzSvRK94r3gLNK4kI4CvhK9wr3yvgK9sr3ivfK9oriQjeK4gI3CvdK9gr2yvcK9cr2ivbK9YriAjaK4cI2CvZK0AM1yvYKz8M1ivXKz4MhwjWK50BySvTA9QrxSvJK9MrwSvFK9Ir1APBK0YM1CvVK9Ar0yvUK88r0ivTK84rRgzSK0UM0CvRK8wrzyvQK8srzivPK8orRQzOK0QMzCvNK4YIyyvMK4UIyivLK4QIRAzKKytLvSvTA8gruSu9K8crtSu5K8YrwQK1KwUIyCvJK8QrxyvIK8MrxivHK8IrBQjGKwQIxCvFK8ArwyvEK78rwivDK74rBAjCKwMIwCvBK0kMvyvAK0gMviu/K0cMAwi+KzgB4SvTA7wr3SvhK7sr2SvdK7or0gPZK0MMvCu9K7gruyu8K7cruiu7K7YrQwy6K0IMuCu5K7Qrtyu4K7Mrtiu3K7IrQgy2K0EMtCu1KwIIsyu0KwEIsiuzKwAIQQyyK1QBpSvRA7AroSulK68rnSuhK64rIgOdK7sJsCuxK6wrryuwK6srriuvK6oruwmuK7oJrCutK6grqyusK6crqiurK6YrugmqK7kJqCupK99MpyuoK95MpiunK91MuQmmK31LmSvRA6QrlSuZK6MrkSuVK6Ir0gORK0AMpCulK6AroyukK58roiujK54rQAyiKz8MoCuhK5wrnyugK5srniufK5orPwyeKz4MnCudK7gJmyucK7cJmiubK7YJPgyaK50BjSvRA5griSuNK5crhSuJK5YrJAOFK8EJmCuZK5QrlyuYK5MrliuXK5IrwQmWK8AJlCuVK5ArkyuUK48rkiuTK44rwAmSK78JkCuRK0MMjyuQK0IMjiuPK0EMvwmOK1QBsSvRA4wrrSuxK4srqSutK4or4EypK9xMjCuNK4griyuMK4criiuLK4Yr3EyKK9tMiCuJK4QrhyuIK4MrhiuHK4Ir20yGK9pMhCuFK74JgyuEK70JgiuDK7wJ2kyCKzoBdSvOA4ArcSt1K38rbStxK34rzQJtKzsIgCuBK3wrfyuAK3srfit/K3orOwh+KzoIfCt9K3greyt8K3creit7K3YrOgh6KzkIeCt5KzcMdyt4KzYMdit3KzUMOQh2K5sBaSvOA3QrZStpK3MrYStlK3Ir0ANhKzoMdCt1K3Arcyt0K28rcitzK24rOgxyKzkMcCtxK2wrbytwK2srbitvK2orOQxuKzgMbCttKzgIaytsKzcIaitrKzYIOAxqK5wBXSvOA2grWStdK2crVStZK2YrtAJVK88HaCtpK2QrZytoK2MrZitnK2IrzwdmK84HZCtlK2ArYytkK18rYitjK14rzgdiK80HYCthKz0MXytgKzwMXitfKzsMzQdeKzoBgSvOA1wrfSuBK1sreSt9K1orzwN5KzQMXCtdK1grWytcK1crWitbK1YrNAxaKzMMWCtZK1QrVytYK1MrVitXK1IrMwxWKzIMVCtVK8wHUytUK8sHUitTK8oHMgxSKzUBRSvNA1ArQStFK08rPStBK04r9wI9K/sI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/in/KfopbQn+KWwJ/Cn9Kfgp+yn8Kfcp+in7KfYpbAn6KWsJ+Cn5KbxM9yn4KbtM9in3KbpMawn2KVlL6Sm/A/Qp5SnpKfMp4SnlKfIpwAPhKQoM9Cn1KfAp8yn0Ke8p8inzKe4pCgzyKQkM8CnxKewp7ynwKesp7invKeopCQzuKQgM7CntKWoJ6ynsKWkJ6inrKWgJCAzqKZQB3Sm/A+gp2SndKecp1SnZKeYp5QLVKacI6CnpKeQp5ynoKeMp5innKeIppwjmKaYI5CnlKeAp4ynkKd8p4injKd4ppgjiKaUI4CnhKQ0M3yngKQwM3infKQsMpQjeKUEBASq/A9wp/SkBKtsp+Sn9KdopvUz5KblM3CndKdgp2yncKdcp2inbKdYpuUzaKbhM2CnZKdQp1ynYKdMp1inXKdIpuEzWKbdM1CnVKaQI0ynUKaMI0inTKaIIt0zSKTBLxSm9A9ApwSnFKc8pvSnBKc4pAAO9KSUJ0CnRKcwpzynQKcspzinPKcopJQnOKSQJzCnNKcgpyynMKccpyinLKcYpJAnKKSMJyCnJKf4LxynIKf0LxinHKfwLIwnGKZIBuSm9A8QptSm5KcMpsSm1KcIpvgOxKQQMxCnFKcApwynEKb8pwinDKb4pBAzCKQMMwCnBKbwpvynAKbspvim/KbopAwy+KQIMvCm9KSIJuym8KSEJuim7KSAJAgy6KZMBrSm9A7gpqSmtKbcppSmpKbYp1AKlKVkIuCm5KbQptym4KbMptim3KbIpWQi2KVgItCm1KbApsym0Ka8psimzKa4pWAiyKVcIsCmxKQcMrymwKQYMrimvKQUMVwiuKUYB0Sm9A6wpzSnRKaspySnNKaopvAPJKQEMrCmtKagpqymsKacpqimrKaYpAQyqKQAMqCmpKaQppymoKaMppimnKaIpAAymKf8LpCmlKVYIoymkKVUIoimjKVQI/wuiKUABlSm7A6ApkSmVKZ8pjSmRKZ4pBAONKTcJoCmhKZwpnymgKZspnimfKZopNwmeKTYJnCmdKZgpmymcKZcpmimbKZYpNgmaKTUJmCmZKbVMlymYKbRMlimXKbNMNQmWKZEBiSm7A5QphSmJKZMpgSmFKZIpvAOBKf4LlCmVKZApkymUKY8pkimTKY4p/guSKf0LkCmRKYwpjymQKYspjimPKYop/QuOKfwLjCmNKTQJiymMKTMJiimLKTIJ/AuKKZIBfSm7A4gpeSl9KYcpdSl5KYYp2AJ1KWsIiCmJKYQphymIKYMphimHKYIpawiGKWoIhCmFKYApgymEKX8pgimDKX4pagiCKWkIgCmBKQEMfymAKQAMfil/Kf8LaQh+KUABoSm7A3wpnSmhKXspmSmdKXoptkyZKbJMfCl9KXgpeyl8KXcpeil7KXYpskx6KbFMeCl5KXQpdyl4KXMpdil3KXIpsUx2KbBMdCl1KWgIcyl0KWcIcilzKWYIsExyKUIBZSm5A3ApYSllKW8pXSlhKW4pCANdKUkJcClxKWwpbylwKWspbilvKWopSQluKUgJbCltKWgpaylsKWcpailrKWYpSAlqKUcJaClpKfILZyloKfELZilnKfALRwlmKZABWSm5A2QpVSlZKWMpUSlVKWIpugNRKfgLZCllKWApYylkKV8pYiljKV4p+AtiKfcLYClhKVwpXylgKVspXilfKVop9wteKfYLXCldKUYJWylcKUUJWilbKUQJ9gtaKU9LTSm5A1gpSSlNKVcpRSlJKVYp3AJFKX0IWClZKVQpVylYKVMpVilXKVIpfQhWKXwIVClVKVApUylUKU8pUilTKU4pfAhSKXsIUClRKfsLTylQKfoLTilPKfkLewhOKSdLcSm5A0wpbSlxKUspaSltKUopuANpKfULTClNKUgpSylMKUcpSilLKUYp9QtKKfQLSClJKUQpRylIKUMpRilHKUIp9AtGKfMLRClFKXoIQylEKXkIQilDKXgI8wtCKVMBNSm2A0ApMSk1KT8pLSkxKT4pHgMtKakJQClBKTwpPylAKTspPik/KTopqQk+KagJPCk9KTgpOyk8KTcpOik7KTYpqAk6KacJOCk5Ke8LNyk4Ke4LNik3Ke0Lpwk2KW9LKSm2AzQpJSkpKTMpISklKTIpuAMhKfILNCk1KTApMyk0KS8pMikzKS4p8gsyKfELMCkxKSwpLykwKSspLikvKSop8QsuKfALLCktKaYJKyksKaUJKikrKaQJ8AsqKZABHSm2AygpGSkdKScpFSkZKSYpIQMVKbUJKCkpKSQpJykoKSMpJiknKSIptQkmKbQJJCklKSApIykkKR8pIikjKR4ptAkiKbMJICkhKfULHykgKfQLHikfKfMLswkeKVMBQSm2AxwpPSlBKRspOSk9KRoptwM5KewLHCkdKRgpGykcKRcpGikbKRYp7AsaKesLGCkZKRQpFykYKRMpFikXKRIp6wsWKeoLFCkVKbIJEykUKbEJEikTKbAJ6gsSKXhLBSm1AxApASkFKQ8p/SgBKQ4pgQL9KP0GECkRKQwpDykQKQspDikPKQop/QYOKfwGDCkNKQgpCykMKQcpCikLKQYp/AYKKfsGCCkJKeYLBykIKeULBikHKeQL+wYGKUgB+Si1AwQp9Sj5KAMp8Sj1KAIprEzxKK9MBCkFKQApAykEKf8oAikDKf4or0wCKa5MACkBKfwo/ygAKfso/ij/KPoorkz+KK1M/Cj9KPoG+yj8KPkG+ij7KPgGrUz6KJNK7Si1A/go6SjtKPco5SjpKPYohwPlKEcL+Cj5KPQo9yj4KPMo9ij3KPIoRwv2KEYL9Cj1KPAo8yj0KO8o8ijzKO4oRgvyKEUL8CjxKKtM7yjwKKpM7ijvKKlMRQvuKF9MESm1A+woDSkRKesoCSkNKeootAMJKekL7CjtKOgo6yjsKOco6ijrKOYo6QvqKOgL6CjpKOQo5yjoKOMo5ijnKOIo6AvmKOcL5CjlKEQL4yjkKEML4ijjKEIL5wviKIkB1SizA+Ao0SjVKN8ozSjRKN4oiwPNKFkL4CjhKNwo3yjgKNso3ijfKNooWQveKFgL3CjdKNgo2yjcKNco2ijbKNYoWAvaKFcL2CjZKOAL1yjYKN8L1ijXKN4LVwvWKHoBySizA9QoxSjJKNMowSjFKNIotAPBKOYL1CjVKNAo0yjUKM8o0ijTKM4o5gvSKOUL0CjRKMwozyjQKMsozijPKMoo5QvOKOQLzCjNKFYLyyjMKFULyijLKFQL5AvKKEgBvSizA8gouSi9KMcotSi5KMYoiAO1KE0LyCjJKMQoxyjIKMMoxijHKMIoTQvGKEwLxCjFKMAowyjEKL8owijDKL4oTAvCKEsLwCjBKOkLvyjAKOgLvii/KOcLSwu+KIkB4SizA7wo3SjhKLso2SjdKLoosgPZKOMLvCi9KLgouyi8KLcouii7KLYo4wu6KOILuCi5KLQotyi4KLMotii3KLIo4gu2KOELtCi1KEoLsyi0KEkLsiizKEgL4QuyKI4BpSixA7AooSilKK8onSihKK4oFwOdKIsJsCixKKworyiwKKsoriivKKooiwmuKIoJrCitKKgoqyisKKcoqiirKKYoigmqKIkJqCipKKdMpyioKKZMpiinKKVMiQmmKF1LmSixA6QolSiZKKMokSiVKKIosgORKOALpCilKKAooyikKJ8ooiijKJ4o4AuiKN8LoCihKJwonyigKJsoniifKJoo3wueKN4LnCidKIgJmyicKIcJmiibKIYJ3guaKHoBjSixA5goiSiNKJcohSiJKJYoiQOFKFMLmCiZKJQolyiYKJMoliiXKJIoUwuWKFILlCiVKJAokyiUKI8okiiTKI4oUguSKFELkCiRKOMLjyiQKOILjiiPKOELUQuOKI4BsSixA4worSixKIsoqSitKIooqEypKKRMjCiNKIgoiyiMKIcoiiiLKIYopEyKKKNMiCiJKIQohyiIKIMohiiHKIIoo0yGKKJMhCiFKFALgyiEKE8LgiiDKE4LokyCKGNMdSiwA4AocSh1KH8obShxKH4ogANtKCkLgCiBKHwofyiAKHsofih/KHooKQt+KCgLfCh9KHgoeyh8KHcoeih7KHYoKAt6KCcLeCh5KNoLdyh4KNkLdih3KNgLJwt2KEkBaSiwA3QoZShpKHMoYShlKHIoqwNhKMsLdCh1KHAocyh0KG8ocihzKG4oywtyKMoLcChxKGwobyhwKGsobihvKGooygtuKMkLbChtKCYLayhsKCULaihrKCQLyQtqKHgBXSiwA2goWShdKGcoVShZKGYoggNVKC8LaChpKGQoZyhoKGMoZihnKGIoLwtmKC4LZChlKGAoYyhkKF8oYihjKF4oLgtiKC0LYChhKMgLXyhgKMcLXihfKMYLLQteKIwBgSiwA1wofSiBKFsoeSh9KFoorwN5KN0LXChdKFgoWyhcKFcoWihbKFYo3QtaKNwLWChZKFQoVyhYKFMoVihXKFIo3AtWKNsLVChVKCwLUyhUKCsLUihTKCoL2wtSKIoBRSitA1AoQShFKE8oPShBKE4oSgI9KAEGUChRKEwoTyhQKEsoTihPKEooAQZOKAAGTChNKEgoSyhMKEcoSihLKEYoAAZKKP8FSChJKNcLRyhIKNYLRihHKNUL/wVGKFEBOSitA0QoNSg5KEMoMSg1KEIorwMxKNoLRChFKEAoQyhEKD8oQihDKD4o2gtCKNkLQChBKDwoPyhAKDsoPig/KDoo2Qs+KNgLPCg9KP4FOyg8KP0FOig7KPwF2As6KEkBLSitAzgoKSgtKDcoJSgpKDYogwMlKDULOCg5KDQoNyg4KDMoNig3KDIoNQs2KDQLNCg1KDAoMyg0KC8oMigzKC4oNAsyKDMLMCgxKN0LLygwKNwLLigvKNsLMwsuKIoBUSitAywoTShRKCsoSShNKCoorgNJKNQLLCgtKCgoKygsKCcoKigrKCYo1AsqKNMLKCgpKCQoJygoKCMoJignKCIo0wsmKNILJCglKDILIygkKDELIigjKDAL0gsiKIsBFSiqAyAoESgVKB8oDSgRKB4o+QINKAEJICghKBwoHyggKBsoHigfKBooAQkeKAAJHCgdKBgoGygcKBcoGigbKBYoAAkaKP8IGCgZKMsLFygYKMoLFigXKMkL/wgWKHgBCSiqAxQoBSgJKBMoASgFKBIorAMBKM4LFCgVKBAoEygUKA8oEigTKA4ozgsSKM0LECgRKAwoDygQKAsoDigPKAoozQsOKMwLDCgNKP4ICygMKP0ICigLKPwIzAsKKHkB/SeqAwgo+Sf9Jwco9Sf5JwYohQP1J0ELCCgJKAQoBygIKAMoBigHKAIoQQsGKEALBCgFKAAoAygEKP8nAigDKP4nQAsCKD8LACgBKNEL/ycAKNAL/if/J88LPwv+J40BISiqA/wnHSghKPsnGSgdKPonqwMZKMgL/Cf9J/gn+yf8J/cn+if7J/YnyAv6J8cL+Cf5J/Qn9yf4J/Mn9if3J/Inxwv2J8YL9Cf1Jz4L8yf0Jz0L8ifzJzwLxgvyJ4wB5SeoA/An4SflJ+8n3SfhJ+4nqQPdJ8IL8CfxJ+wn7yfwJ+sn7ifvJ+onwgvuJ8EL7CftJ+gn6yfsJ+cn6ifrJ+YnwQvqJ8AL6CfpJ6BM5yfoJ59M5ifnJ55MwAvmJ51M2SeoA+Qn1SfZJ+Mn0SfVJ+InmQPRJ4ML5CflJ+An4yfkJ98n4ifjJ94ngwviJ4IL4CfhJ9wn3yfgJ9sn3iffJ9onggveJ4EL3CfdJ8UL2yfcJ8QL2ifbJ8MLgQvaJ6sBzSeoA9gnySfNJ9cnxSfJJ9YnbAPFJ9sK2CfZJ9Qn1yfYJ9Mn1ifXJ9In2wrWJ9oK1CfVJ9An0yfUJ88n0ifTJ84n2grSJ9kK0CfRJ4ALzyfQJ38LzifPJ34L2QrOJ20B8SeoA8wn7SfxJ8sn6SftJ8onoUzpJ5xMzCfNJ8gnyyfMJ8cnyifLJ8YnnEzKJ5tMyCfJJ8QnxyfIJ8MnxifHJ8Inm0zGJ5pMxCfFJ9gKwyfEJ9cKwifDJ9YKmkzCJytMtSelA8AnsSe1J78nrSexJ74npwOtJ7wLwCfBJ7wnvyfAJ7snvie/J7onvAu+J7sLvCe9J7gnuye8J7cnuie7J7Ynuwu6J7oLuCe5J6oLtye4J6kLtie3J6gLugu2J6cBqSelA7QnpSepJ7MnoSelJ7InpgOhJ7YLtCe1J7Ansye0J68nsiezJ64ntguyJ7ULsCexJ6wnryewJ6snrievJ6ontQuuJ7QLrCetJ78LqyesJ74LqierJ70LtAuqJ6wBnSelA6gnmSedJ6cnlSeZJ6YnXQOVJ58KqCepJ6QnpyeoJ6MnpienJ6InnwqmJ54KpCelJ6AnoyekJ58noiejJ54nngqiJ50KoCehJ7kLnyegJ7gLniefJ7cLnQqeJ28BwSelA5wnvSfBJ5snuSe9J5onowO5J60LnCedJ5gnmyecJ5cnmiebJ5YnrQuaJ6wLmCeZJ5QnlyeYJ5MnlieXJ5InrAuWJ6sLlCeVJ5wKkyeUJ5sKkieTJ5oKqwuSJ24BhSeiA5AngSeFJ48nfSeBJ44npAN9J7ALkCeRJ4wnjyeQJ4snjiePJ4onsAuOJ68LjCeNJ4gniyeMJ4cniieLJ4YnrwuKJ64LiCeJJ54LhyeIJ50LhieHJ5wLrguGJ6gBeSeiA4QndSd5J4MncSd1J4InowNxJ6oLhCeFJ4AngyeEJ38ngieDJ34nqguCJ6kLgCeBJ3wnfyeAJ3snfid/J3onqQt+J6gLfCd9J7MLeyd8J7ILeid7J7ELqAt6J6cBbSeiA3gnaSdtJ3cnZSdpJ3YnlkxlJ5lMeCd5J3Qndyd4J3Mndid3J3InmUx2J5hMdCd1J3Ancyd0J28ncidzJ24nmExyJ5dMcCdxJ60LbydwJ6wLbidvJ6sLl0xuJ24BkSeiA2wnjSeRJ2sniSeNJ2onoAOJJ6ELbCdtJ2gnaydsJ2cnaidrJ2YnoQtqJ6ALaCdpJ2QnZydoJ2MnZidnJ2InoAtmJ58LZCdlJ5VMYydkJ5RMYidjJ5NMnwtiJ2wBVSefA2AnUSdVJ18nTSdRJ14noQNNJ6QLYCdhJ1wnXydgJ1snXidfJ1onpAteJ6MLXCddJ1gnWydcJ1cnWidbJ1YnowtaJ6ILWCdZJ5FMVydYJ5BMVidXJ49MogtWJ45MSSefA1QnRSdJJ1MnQSdFJ1InoANBJ54LVCdVJ1AnUydUJ08nUidTJ04nngtSJ50LUCdRJ0wnTydQJ0snTidPJ0onnQtOJ5wLTCdNJ6cLSydMJ6YLSidLJ6ULnAtKJ6gBPSefA0gnOSc9J0cnNSc5J0YnYwM1J7cKSCdJJ0QnRydIJ0MnRidHJ0IntwpGJ7YKRCdFJ0AnQydEJz8nQidDJz4ntgpCJ7UKQCdBJ6ELPydAJ6ALPic/J58LtQo+J2wBYSefAzwnXSdhJzsnWSddJzonkkxZJ41MPCc9JzgnOyc8JzcnOic7JzYnjUw6J4xMOCc5JzQnNyc4JzMnNic3JzInjEw2J4tMNCc1J7QKMyc0J7MKMiczJ7IKi0wyJ3ABJSecAzAnISclJy8nHSchJy4nngMdJ5gLMCcxJywnLycwJysnLicvJyonmAsuJ5cLLCctJygnKycsJycnKicrJyYnlwsqJ5YLKCcpJ4YLJycoJ4ULJicnJ4QLlgsmJ6oBGSecAyQnFScZJyMnEScVJyInnQMRJ5ILJCclJyAnIyckJx8nIicjJx4nkgsiJ5ELICchJxwnHycgJxsnHicfJxonkQseJ5ALHCcdJ5sLGyccJ5oLGicbJ5kLkAsaJ6kBDSecAxgnCScNJxcnBScJJxYnZgMFJ8MKGCcZJxQnFycYJxMnFicXJxInwwoWJ8IKFCcVJxAnEycUJw8nEicTJw4nwgoSJ8EKECcRJ5ULDycQJ5QLDicPJ5MLwQoOJxxMMSecAwwnLScxJwsnKSctJwonmgMpJ4kLDCcNJwgnCycMJwcnCicLJwYniQsKJ4gLCCcJJwQnBycIJwMnBicHJwIniAsGJ4cLBCcFJ8AKAycEJ78KAicDJ74KhwsCJ2sB9SaYAwAn8Sb1Jv8m7SbxJv4mmwPtJowLACcBJ/wm/yYAJ/sm/ib/JvomjAv+JosL/Cb9Jvgm+yb8Jvcm+ib7JvYmiwv6JooL+Cb5JoML9yb4JoIL9ib3JoELigv2JqsB6SaYA/Qm5SbpJvMm4SblJvImmgPhJoYL9Cb1JvAm8yb0Ju8m8ibzJu4mhgvyJoUL8CbxJuwm7ybwJusm7ibvJuomhQvuJoQL7CbtJo8L6ybsJo4L6ibrJo0LhAvqJqoB3SaYA+gm2SbdJucm1SbZJuYmh0zVJopM6CbpJuQm5yboJuMm5ibnJuImikzmJolM5CblJuAm4ybkJt8m4ibjJt4miUziJohM4CbhJokL3ybgJogL3ibfJocLiEzeJmsBASeYA9wm/SYBJ9sm+Sb9JtommQP5JoAL3CbdJtgm2ybcJtcm2ibbJtYmgAvaJn8L2CbZJtQm1ybYJtMm1ibXJtImfwvWJn4L1CbVJoZM0ybUJoVM0ibTJoRMfgvSJm0BxSaXA9AmwSbFJs8mvSbBJs4mAgO9JisJ0CbRJswmzybQJssmzibPJsomKwnOJioJzCbNJsgmyybMJscmyibLJsYmKgnKJikJyCbJJnoLxybIJnkLxibHJngLKQnGJoABuSaXA8QmtSa5JsMmsSa1JsImgEyxJoNMxCbFJsAmwybEJr8mwibDJr4mg0zCJoJMwCbBJrwmvybAJrsmvia/Jromgky+JoFMvCa9JigJuya8JicJuia7JiYJgUy6JoEBrSaXA7gmqSatJrcmpSapJrYmVgKlJjcGuCa5JrQmtya4JrMmtia3JrImNwa2JjYGtCa1JrAmsya0Jq8msiazJq4mNgayJjUGsCaxJn9MryawJn5MriavJn1MNQauJkwB0SaXA6wmzSbRJqsmySbNJqomlgPJJn0LrCatJqgmqyasJqcmqiarJqYmfQuqJnwLqCapJqQmpyaoJqMmpianJqImfAumJnsLpCalJjQGoyakJjMGoiajJjIGewuiJkoBlSaVA6AmkSaVJp8mjSaRJp4m/gKNJhkJoCahJpwmnyagJpsmniafJpomGQmeJhgJnCadJpgmmyacJpcmmiabJpYmGAmaJhcJmCaZJntMlyaYJnpMliaXJnlMFwmWJn8BiSaVA5QmhSaJJpMmgSaFJpImlgOBJnoLlCaVJpAmkyaUJo8mkiaTJo4meguSJnkLkCaRJowmjyaQJosmjiaPJoomeQuOJngLjCaNJhYJiyaMJhUJiiaLJhQJeAuKJoABfSaVA4gmeSZ9JocmdSZ5JoYmVwJ1Jj0GiCaJJoQmhyaIJoMmhiaHJoImPQaGJjwGhCaFJoAmgyaEJn8mgiaDJn4mPAaCJjsGgCaBJn0LfyaAJnwLfiZ/JnsLOwZ+JkoBoSaVA3wmnSahJnsmmSadJnomfEyZJnhMfCZ9JngmeyZ8JncmeiZ7JnYmeEx6JndMeCZ5JnQmdyZ4JnMmdiZ3JnImd0x2JnZMdCZ1JjoGcyZ0JjkGciZzJjgGdkxyJlABZSaTA3AmYSZlJm8mXSZhJm4mDwNdJmcJcCZxJmwmbyZwJmsmbiZvJmomZwluJmYJbCZtJmgmayZsJmcmaiZrJmYmZglqJmUJaCZpJm4LZyZoJm0LZiZnJmwLZQlmJn4BWSaTA2QmVSZZJmMmUSZVJmImlANRJnQLZCZlJmAmYyZkJl8mYiZjJl4mdAtiJnMLYCZhJlwmXyZgJlsmXiZfJlomcwteJnILXCZdJmQJWyZcJmMJWiZbJmIJcgtaJlRLTSaTA1gmSSZNJlcmRSZJJlYmeAJFJtMGWCZZJlQmVyZYJlMmViZXJlIm0wZWJtIGVCZVJlAmUyZUJk8mUiZTJk4m0gZSJtEGUCZRJncLTyZQJnYLTiZPJnUL0QZOJotKcSaTA0wmbSZxJksmaSZtJkomkgNpJnELTCZNJkgmSyZMJkcmSiZLJkYmcQtKJnALSCZJJkQmRyZIJkMmRiZHJkImcAtGJm8LRCZFJtAGQyZEJs8GQiZDJs4GbwtCJksBNSaRA0AmMSY1Jj8mLSYxJj4mCwMtJlUJQCZBJjwmPyZAJjsmPiY/JjomVQk+JlQJPCY9JjgmOyY8JjcmOiY7JjYmVAk6JlMJOCY5JnRMNyY4JnNMNiY3JnJMUwk2Jn0BKSaRAzQmJSYpJjMmISYlJjImkgMhJm4LNCY1JjAmMyY0Ji8mMiYzJi4mbgsyJm0LMCYxJiwmLyYwJismLiYvJiombQsuJmwLLCYtJlIJKyYsJlEJKiYrJlAJbAsqJn4BHSaRAygmGSYdJicmFSYZJiYmeQIVJtkGKCYpJiQmJyYoJiMmJiYnJiIm2QYmJtgGJCYlJiAmIyYkJh8mIiYjJh4m2AYiJtcGICYhJnELHyYgJnALHiYfJm8L1wYeJksBQSaRAxwmPSZBJhsmOSY9JhomdUw5JnFMHCYdJhgmGyYcJhcmGiYbJhYmcUwaJnBMGCYZJhQmFyYYJhMmFiYXJhImcEwWJm9MFCYVJtYGEyYUJtUGEiYTJtQGb0wSJk0BBSaPAxAmASYFJg8m/SUBJg4mPAP9JSEKECYRJgwmDyYQJgsmDiYPJgomIQoOJiAKDCYNJggmCyYMJgcmCiYLJgYmIAoKJh8KCCYJJmILByYIJmELBiYHJmALHwoGJnwB+SWPAwQm9SX5JQMm8SX1JQImkAPxJWgLBCYFJgAmAyYEJv8lAiYDJv4laAsCJmcLACYBJvwl/yUAJvsl/iX/JfolZwv+JWYL/CX9JR4K+yX8JR0K+iX7JRwKZgv6Jc9L7SWPA/gl6SXtJfcl5SXpJfYlOQPlJRUK+CX5JfQl9yX4JfMl9iX3JfIlFQr2JRQK9CX1JfAl8yX0Je8l8iXzJe4lFAryJRMK8CXxJWsL7yXwJWoL7iXvJWkLEwruJcdLESaPA+wlDSYRJuslCSYNJuoljgMJJmUL7CXtJegl6yXsJecl6iXrJeYlZQvqJWQL6CXpJeQl5yXoJeMl5iXnJeIlZAvmJWML5CXlJRIK4yXkJREK4iXjJRAKYwviJVwB1SWNA+Al0SXVJd8lzSXRJd4lEwPNJXkJ4CXhJdwl3yXgJdsl3iXfJdoleQneJXgJ3CXdJdgl2yXcJdcl2iXbJdYleAnaJXcJ2CXZJW1M1yXYJWxM1iXXJWtMdwnWJXsBySWNA9QlxSXJJdMlwSXFJdIljgPBJWIL1CXVJdAl0yXUJc8l0iXTJc4lYgvSJWEL0CXRJcwlzyXQJcslziXPJcolYQvOJWALzCXNJXYJyyXMJXUJyiXLJXQJYAvKJXwBvSWNA8gluSW9JccltSW5JcYlfAK1JeUGyCXJJcQlxyXIJcMlxiXHJcIl5QbGJeQGxCXFJcAlwyXEJb8lwiXDJb4l5AbCJeMGwCXBJWULvyXAJWQLviW/JWML4wa+JVwB4SWNA7wl3SXhJbsl2SXdJbolbkzZJWpMvCW9JbgluyW8JbcluiW7JbYlaky6JWlMuCW5JbQltyW4JbMltiW3JbIlaUy2JWhMtCW1JeIGsyW0JeEGsiWzJeAGaEyyJU8BpSWKA7AloSWlJa8lnSWhJa4lGwOdJZ0JsCWxJawlryWwJaslriWvJaolnQmuJZwJrCWtJaglqyWsJaclqiWrJaYlnAmqJZsJqCWpJVkLpyWoJVgLpiWnJVcLmwmmJXoBmSWKA6QllSWZJaMlkSWVJaIljAORJVwLpCWlJaAloyWkJZ8loiWjJZ4lXAuiJVsLoCWhJZwlnyWgJZslniWfJZolWwueJVoLnCWdJZoJmyWcJZkJmiWbJZgJWguaJWZLjSWKA5gliSWNJZclhSWJJZYlgAKFJfcGmCWZJZQllyWYJZMlliWXJZIl9waWJfYGlCWVJZAlkyWUJY8lkiWTJY4l9gaSJfUGkCWRJV8LjyWQJV4LjiWPJV0L9QaOJY9KsSWKA4wlrSWxJYslqSWtJYoliwOpJVYLjCWNJYgliyWMJYcliiWLJYYlVguKJVULiCWJJYQlhyWIJYMlhiWHJYIlVQuGJVQLhCWFJfQGgyWEJfMGgiWDJfIGVAuCJUgBdSWGA4AlcSV1JX8lbSVxJX4liQNtJVALgCWBJXwlfyWAJXslfiV/JXolUAt+JU8LfCV9JXgleyV8JXcleiV7JXYlTwt6JU4LeCV5JWZMdyV4JWVMdiV3JWRMTgt2JWNMaSWGA3QlZSVpJXMlYSVlJXIliANhJUoLdCV1JXAlcyV0JW8lciVzJW4lSgtyJUkLcCVxJWwlbyVwJWslbiVvJWolSQtuJUgLbCVtJVMLayVsJVILaiVrJVELSAtqJY4BXSWGA2glWSVdJWclVSVZJWYlhwNVJUQLaCVpJWQlZyVoJWMlZiVnJWIlRAtmJUMLZCVlJWAlYyVkJV8lYiVjJV4lQwtiJUILYCVhJU0LXyVgJUwLXiVfJUsLQgteJYkBgSWGA1wlfSWBJVsleSV9JVolZ0x5JWJMXCVdJVglWyVcJVclWiVbJVYlYkxaJWFMWCVZJVQlVyVYJVMlViVXJVIlYUxWJWBMVCVVJUcLUyVUJUYLUiVTJUULYExSJV9MRSWBA1AlQSVFJU8lPSVBJU4lhQM9JT4LUCVRJUwlTyVQJUslTiVPJUolPgtOJT0LTCVNJUglSyVMJUclSiVLJUYlPQtKJTwLSCVJJS8LRyVIJS4LRiVHJS0LPAtGJYwBOSWBA0QlNSU5JUMlMSU1JUIlhAMxJTgLRCVFJUAlQyVEJT8lQiVDJT4lOAtCJTcLQCVBJTwlPyVAJTslPiU/JTolNws+JTYLPCU9JUELOyU8JUALOiU7JT8LNgs6JY0BLSWBAzglKSUtJTclJSUpJTYlgwMlJTILOCU5JTQlNyU4JTMlNiU3JTIlMgs2JTELNCU1JTAlMyU0JS8lMiUzJS4lMQsyJTALMCUxJTsLLyUwJToLLiUvJTkLMAsuJYsBUSWBAywlTSVRJSslSSVNJSolggNJJSwLLCUtJSglKyUsJSclKiUrJSYlLAsqJSsL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zhzPHMoc8QjOHPAIzBzNHPsIyxzMHPoIyhzLHPkI8AjKHJoBvRzzAsgcuRy9HMcctRy5HMYc9QK1HOwIyBzJHMQcxxzIHMMcxhzHHMIc7AjGHOsIxBzFHMAcwxzEHL8cwhzDHL4c6wjCHOoIwBzBHPUIvxzAHPQIvhy/HPMI6gi+HHgB4RzzArwc3RzhHLsc2RzdHLoc9ALZHOYIvBy9HLgcuxy8HLccuhy7HLYc5gi6HOUIuBy5HLQctxy4HLMcthy3HLIc5Qi2HOQItBy1HO8Isxy0HO4IshyzHO0I5AiyHHcBpRzwArAcoRylHK8cnRyhHK4c8gKdHOAIsByxHKwcrxywHKscrhyvHKoc4AiuHN8IrBytHKgcqxysHKccqhyrHKYc3wiqHN4IqBypHM4IpxyoHM0IphynHMwI3gimHKUBmRzwAqQclRyZHKMckRyVHKIcRkuRHEpLpBylHKAcoxykHJ8cohyjHJ4cSkuiHElLoByhHJwcnxygHJscnhyfHJocSUueHEhLnBydHOMImxycHOIImhybHOEISEuaHEdLjRzwApgciRyNHJcchRyJHJYc8QKFHNoImByZHJQclxyYHJMclhyXHJIc2giWHNkIlByVHJAckxyUHI8ckhyTHI4c2QiSHNgIkByRHEVLjxyQHERLjhyPHENL2AiOHEJLsRzwAowcrRyxHIscqRytHIoc7gKpHNEIjByNHIgcixyMHIccihyLHIYc0QiKHNAIiByJHIQchxyIHIMchhyHHIIc0AiGHM8IhByFHN0IgxyEHNwIghyDHNsIzwiCHD4BdRzsAoAccRx1HH8cbRxxHH4c7wJtHNQIgByBHHwcfxyAHHscfhx/HHoc1Ah+HNMIfBx9HHgcexx8HHccehx7HHYc0wh6HNIIeBx5HEBLdxx4HD9Ldhx3HD5L0gh2HD1LaRzsAnQcZRxpHHMcYRxlHHIc7gJhHM4IdBx1HHAccxx0HG8cchxzHG4czghyHM0IcBxxHGwcbxxwHGscbhxvHGoczQhuHMwIbBxtHNcIaxxsHNYIahxrHNUIzAhqHKUBXRzsAmgcWRxdHGccVRxZHGYc7QJVHMgIaBxpHGQcZxxoHGMcZhxnHGIcyAhmHMcIZBxlHGAcYxxkHF8cYhxjHF4cxwhiHMYIYBxhHNEIXxxgHNAIXhxfHM8IxgheHD4BgRzsAlwcfRyBHFsceRx9HFocQUt5HDxLXBxdHFgcWxxcHFccWhxbHFYcPEtaHDtLWBxZHFQcVxxYHFMcVhxXHFIcO0tWHDpLVBxVHMsIUxxUHMoIUhxTHMkIOktSHDlLRRznAlAcQRxFHE8cPRxBHE4c6wI9HMIIUBxRHEwcTxxQHEscThxPHEocwghOHMEITBxNHEgcSxxMHEccShxLHEYcwQhKHMAISBxJHLMIRxxIHLIIRhxHHLEIwAhGHKQBORznAkQcNRw5HEMcMRw1HEIc6gIxHLwIRBxFHEAcQxxEHD8cQhxDHD4cvAhCHLsIQBxBHDwcPxxAHDscPhw/HDocuwg+HLoIPBw9HMUIOxw8HMQIOhw7HMMIugg6HKMBLRznAjgcKRwtHDccJRwpHDYc6QIlHLYIOBw5HDQcNxw4HDMcNhw3HDIctgg2HLUINBw1HDAcMxw0HC8cMhwzHC4ctQgyHLQIMBwxHL8ILxwwHL4ILhwvHL0ItAguHF0BURznAiwcTRxRHCscSRxNHCoc6AJJHLAILBwtHCgcKxwsHCccKhwrHCYcsAgqHK8IKBwpHCQcJxwoHCMcJhwnHCIcrwgmHK4IJBwlHLkIIxwkHLgIIhwjHLcIrggiHEUBFRzkAiAcERwVHB8cDRwRHB4c5gINHKoIIBwhHBwcHxwgHBscHhwfHBocqggeHKkIHBwdHBgcGxwcHBccGhwbHBYcqQgaHKgIGBwZHJgIFxwYHJcIFhwXHJYIqAgWHKEBCRzkAhQcBRwJHBMcARwFHBIcNEsBHDhLFBwVHBAcExwUHA8cEhwTHA4cOEsSHDdLEBwRHAwcDxwQHAscDhwPHAocN0sOHDZLDBwNHK0ICxwMHKwIChwLHKsINksKHDVL/RvkAggc+Rv9Gwcc9Rv5GwYc5QL1G6QICBwJHAQcBxwIHAMcBhwHHAIcpAgGHKMIBBwFHAAcAxwEHP8bAhwDHP4bowgCHKIIABwBHDNL/xsAHDJL/hv/GzFLogj+GzBLIRzkAvwbHRwhHPsbGRwdHPob4gIZHJsI/Bv9G/gb+xv8G/cb+hv7G/Ybmwj6G5oI+Bv5G/Qb9xv4G/Mb9hv3G/Ibmgj2G5kI9Bv1G6cI8xv0G6YI8hvzG6UImQjyG0EB5RvfAvAb4RvlG+8b3RvhG+4b4wLdG54I8BvxG+wb7xvwG+sb7hvvG+obngjuG50I7BvtG+gb6xvsG+cb6hvrG+YbnQjqG5wI6BvpG48I5xvoG44I5hvnG40InAjmG6IB2RvfAuQb1RvZG+Mb0RvVG+Ib4gLRG5gI5BvlG+Ab4xvkG98b4hvjG94bmAjiG5cI4BvhG9wb3xvgG9sb3hvfG9oblwjeG5YI3BvdG6EI2xvcG6AI2hvbG58IlgjaG6EBzRvfAtgbyRvNG9cbxRvJG9Yb4QLFG5II2BvZG9Qb1xvYG9Mb1hvXG9IbkgjWG5EI1BvVG9Ab0xvUG88b0hvTG84bkQjSG5AI0BvRG5sIzxvQG5oIzhvPG5kIkAjOG0EB8RvfAswb7RvxG8sb6RvtG8ob4ALpG4wIzBvNG8gbyxvMG8cbyhvLG8YbjAjKG4sIyBvJG8QbxxvIG8MbxhvHG8IbiwjGG4oIxBvFG5UIwxvEG5QIwhvDG5MIigjCG0MBtRvbAsAbsRu1G78brRuxG74b3gKtG4YIwBvBG7wbvxvAG7sbvhu/G7obhgi+G4UIvBu9G7gbuxu8G7cbuhu7G7YbhQi6G4QIuBu5Gy5Ltxu4Gy1Lthu3GyxLhAi2GytLqRvbArQbpRupG7MboRulG7Ib3QKhG4AItBu1G7Absxu0G68bshuzG64bgAiyG38IsBuxG6wbrxuwG6sbrhuvG6obfwiuG34IrButG4kIqxusG4gIqhurG4cIfgiqG50BnRvbAqgbmRudG6cblRuZG6Yb3AKVG3oIqBupG6QbpxuoG6MbphunG6IbegimG3kIpBulG6AboxukG58bohujG54beQiiG3gIoBuhG4MInxugG4IInhufG4EIeAieG1MBwRvbApwbvRvBG5sbuRu9G5obL0u5GypLnBudG5gbmxucG5cbmhubG5YbKkuaGylLmBuZG5QblxuYG5MblhuXG5IbKUuWGyhLlBuVG30IkxuUG3wIkhuTG3sIKEuSGydLhRvXApAbgRuFG48bfRuBG44b2gJ9G3QIkBuRG4wbjxuQG4sbjhuPG4obdAiOG3MIjBuNG4gbixuMG4cbihuLG4YbcwiKG3IIiBuJG1wIhxuIG1sIhhuHG1oIcgiGG58BeRvXAoQbdRt5G4MbcRt1G4Ib2QJxG24IhBuFG4AbgxuEG38bghuDG34bbgiCG20IgBuBG3wbfxuAG3sbfht/G3obbQh+G2wIfBt9G3cIext8G3YIeht7G3UIbAh6G54BbRvXAngbaRttG3cbZRtpG3Yb2AJlG2gIeBt5G3Qbdxt4G3Mbdht3G3IbaAh2G2cIdBt1G3Abcxt0G28bchtzG24bZwhyG2YIcBtxG3EIbxtwG3AIbhtvG28IZghuG0IBkRvXAmwbjRuRG2sbiRuNG2ob1QKJG18IbBttG2gbaxtsG2cbahtrG2YbXwhqG14IaBtpG2QbZxtoG2MbZhtnG2IbXghmG10IZBtlG2sIYxtkG2oIYhtjG2kIXQhiG0ABVRvSAmAbURtVG18bTRtRG14b1gJNG2IIYBthG1wbXxtgG1sbXhtfG1obYgheG2EIXBtdG1gbWxtcG1cbWhtbG1YbYQhaG2AIWBtZG1MIVxtYG1IIVhtXG1EIYAhWG6ABSRvSAlQbRRtJG1MbQRtFG1Ib1QJBG1wIVBtVG1AbUxtUG08bUhtTG04bXAhSG1sIUBtRG0wbTxtQG0sbThtPG0obWwhOG1oITBtNG2UISxtMG2QIShtLG2MIWghKG58BPRvSAkgbORs9G0cbNRs5G0Yb1AI1G1YISBtJG0QbRxtIG0MbRhtHG0IbVghGG1UIRBtFG0AbQxtEGz8bQhtDGz4bVQhCG1QIQBtBG18IPxtAG14IPhs/G10IVAg+G0ABYRvSAjwbXRthGzsbWRtdGzob0wJZG1AIPBs9GzgbOxs8GzcbOhs7GzYbUAg6G08IOBs5GzQbNxs4GzMbNhs3GzIbTwg2G04INBs1G1kIMxs0G1gIMhszG1cITggyG0YBJRvOAjAbIRslGy8bHRshGy4b0QIdG0oIMBsxGywbLxswGysbLhsvGyobSgguG0kILBstGygbKxssGycbKhsrGyYbSQgqG0gIKBspGzIIJxsoGzEIJhsnGzAISAgmG5sBGRvOAiQbFRsZGyMbERsVGyIb0AIRG0QIJBslGyAbIxskGx8bIhsjGx4bRAgiG0MIIBshGxwbHxsgGxsbHhsfGxobQwgeG0IIHBsdG00IGxscG0wIGhsbG0sIQggaG6YBDRvOAhgbCRsNGxcbBRsJGxYbzwIFGz4IGBsZGxQbFxsYGxMbFhsXGxIbPggWGz0IFBsVGxAbExsUGw8bEhsTGw4bPQgSGzwIEBsRG0cIDxsQG0YIDhsPG0UIPAgOG0cBMRvOAgwbLRsxGwsb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vBm9GbgZuxm8GbcZuhm7GbYZ1Qe6GdQHuBm5GbQZtxm4GbMZthm3GbIZ1Ae2GdMHtBm1GdsHsxm0GdoHshmzGdkH0weyGTUBpRmyArAZoRmlGa8ZnRmhGa4Z80qdGfdKsBmxGawZrxmwGasZrhmvGaoZ90quGfZKrBmtGagZqxmsGacZqhmrGaYZ9kqqGfVKqBmpGckHpxmoGcgHphmnGccH9UqmGfRKmRmyAqQZlRmZGaMZkRmVGaIZtQKRGdIHpBmlGaAZoxmkGZ8ZohmjGZ4Z0geiGdEHoBmhGZwZnxmgGZsZnhmfGZoZ0QeeGdAHnBmdGfJKmxmcGfFKmhmbGfBK0AeaGe9KjRmyApgZiRmNGZcZhRmJGZYZtAKFGcwHmBmZGZQZlxmYGZMZlhmXGZIZzAeWGcsHlBmVGZAZkxmUGY8ZkhmTGY4ZyweSGcoHkBmRGdUHjxmQGdQHjhmPGdMHygeOGTUBsRmyAowZrRmxGYsZqRmtGYoZswKpGcYHjBmNGYgZixmMGYcZihmLGYYZxgeKGcUHiBmJGYQZhxmIGYMZhhmHGYIZxQeGGcQHhBmFGc8HgxmEGc4HghmDGc0HxAeCGToBdRmwAoAZcRl1GX8ZbRlxGX4ZdgJtGc0GgBmBGXwZfxmAGXsZfhl/GXoZzQZ+GcwGfBl9GXgZexl8GXcZehl7GXYZzAZ6GcsGeBl5GboHdxl4GbkHdhl3GbgHywZ2GTIBaRmwAnQZZRlpGXMZYRllGXIZsQJhGcAHdBl1GXAZcxl0GW8ZchlzGW4ZwAdyGb8HcBlxGWwZbxlwGWsZbhlvGWoZvwduGb4HbBltGcoGaxlsGckGahlrGcgGvgdqGTMBXRmwAmgZWRldGWcZVRlZGWYZmwJVGWkHaBlpGWQZZxloGWMZZhlnGWIZaQdmGWgHZBllGWAZYxlkGV8ZYhljGV4ZaAdiGWcHYBlhGcMHXxlgGcIHXhlfGcEHZwdeGSsBgRmwAlwZfRmBGVsZeRl9GVoZrwJ5Gb0HXBldGVgZWxlcGVcZWhlbGVYZvQdaGbwHWBlZGVQZVxlYGVMZVhlXGVIZvAdWGbsHVBlVGWYHUxlUGWUHUhlTGWQHuwdSGSoBRRmuAlAZQRlFGU8ZPRlBGU4ZRgI9Ge8FUBlRGUwZTxlQGUsZThlPGUoZ7wVOGe4FTBlNGUgZSxlMGUcZShlLGUYZ7gVKGe0FSBlJGe1KRxlIGexKRhlHGetK7QVGGUtKORmuAkQZNRk5GUMZMRk1GUIZrwIxGboHRBlFGUAZQxlEGT8ZQhlDGT4ZugdCGbkHQBlBGTwZPxlAGTsZPhk/GToZuQc+GbgHPBk9GewFOxk8GesFOhk7GeoFuAc6GTIBLRmuAjgZKRktGTcZJRkpGTYZmAIlGV0HOBk5GTQZNxk4GTMZNhk3GTIZXQc2GVwHNBk1GTAZMxk0GS8ZMhkzGS4ZXAcyGVsHMBkxGb0HLxkwGbwHLhkvGbsHWwcuGSoBURmuAiwZTRlRGSsZSRlNGSoZ7kpJGepKLBktGSgZKxksGScZKhkrGSYZ6koqGelKKBkpGSQZJxkoGSMZJhknGSIZ6UomGehKJBklGVoHIxkkGVkHIhkjGVgH6EoiGdRKFRmrAiAZERkVGR8ZDRkRGR4ZRAINGekFIBkhGRwZHxkgGRsZHhkfGRoZ6QUeGegFHBkdGRgZGxkcGRcZGhkbGRYZ6AUaGecFGBkZGbEHFxkYGbAHFhkXGa8H5wUWGTABCRmrAhQZBRkJGRMZARkFGRIZrQIBGbQHFBkVGRAZExkUGQ8ZEhkTGQ4ZtAcSGbMHEBkRGQwZDxkQGQsZDhkPGQoZswcOGbIHDBkNGeYFCxkMGeUFChkLGeQFsgcKGTEB/RirAggZ+Rj9GAcZ9Rj5GAYZlQL1GFEHCBkJGQQZBxkIGQMZBhkHGQIZUQcGGVAHBBkFGQAZAxkEGf8YAhkDGf4YUAcCGU8HABkBGbcH/xgAGbYH/hj/GLUHTwf+GCkBIRmrAvwYHRkhGfsYGRkdGfoYrAIZGa4H/Bj9GPgY+xj8GPcY+hj7GPYYrgf6GK0H+Bj5GPQY9xj4GPMY9hj3GPIYrQf2GKwH9Bj1GE4H8xj0GE0H8hjzGEwHrAfyGMNK5RimAvAY4RjlGO8Y3RjhGO4YqgLdGKgH8BjxGOwY7xjwGOsY7hjvGOoYqAfuGKcH7BjtGOgY6xjsGOcY6hjrGOYYpwfqGKYH6BjpGJkH5xjoGJgH5hjnGJcHpgfmGHYB2RimAuQY1RjZGOMY0RjVGOIYqQLRGKIH5BjlGOAY4xjkGN8Y4hjjGN4YogfiGKEH4BjhGNwY3xjgGNsY3hjfGNoYoQfeGKAH3BjdGKsH2xjcGKoH2hjbGKkHoAfaGHUBzRimAtgYyRjNGNcYxRjJGNYYqALFGJwH2BjZGNQY1xjYGNMY1hjXGNIYnAfWGJsH1BjVGNAY0xjUGM8Y0hjTGM4YmwfSGJoH0BjRGKUHzxjQGKQHzhjPGKMHmgfOGHQB8RimAswY7RjxGMsY6RjtGMoYpwLpGJYHzBjNGMgYyxjMGMcYyhjLGMYYlgfKGJUHyBjJGMQYxxjIGMMYxhjHGMIYlQfGGJQHxBjFGJ8HwxjEGJ4HwhjDGJ0HlAfCGHIBtRijAsAYsRi1GL8YrRixGL4YjQKtGC0HwBjBGLwYvxjAGLsYvhi/GLoYLQe+GCwHvBi9GLgYuxi8GLcYuhi7GLYYLAe6GCsHuBi5GIQHtxi4GIMHthi3GIIHKwe2GC4BqRijArQYpRipGLMYoRilGLIYpQKhGJAHtBi1GLAYsxi0GK8YshizGK4YkAeyGI8HsBixGKwYrxiwGKsYrhivGKoYjweuGI4HrBitGCoHqxisGCkHqhirGCgHjgeqGC8BnRijAqgYmRidGKcYlRiZGKYYpAKVGIoHqBipGKQYpxioGKMYphinGKIYigemGIkHpBilGKAYoxikGJ8YohijGJ4YiQeiGIgHoBihGJMHnxigGJIHnhifGJEHiAeeGAwBwRijApwYvRjBGJsYuRi9GJoYogK5GIcHnBidGJgYmxicGJcYmhibGJYYhweaGIYHmBiZGJQYlxiYGJMYlhiXGJIYhgeWGIUHlBiVGI0HkxiUGIwHkhiTGIsHhQeSGCMBhRigApAYgRiFGI8YfRiBGI4YigJ9GCEHkBiRGIwYjxiQGIsYjhiPGIoYIQeOGCAHjBiNGIgYixiMGIcYihiLGIYYIAeKGB8HiBiJGOZKhxiIGOVKhhiHGORKHweGGKdKeRigAoQYdRh5GIMYcRh1GIIYogJxGIQHhBiFGIAYgxiEGH8YghiDGH4YhAeCGIMHgBiBGHwYfxiAGHsYfhh/GHoYgwd+GIIHfBh9GB4Hexh8GB0Hehh7GBwHggd6GC4BbRigAngYaRhtGHcYZRhpGHYYoQJlGH4HeBh5GHQYdxh4GHMYdhh3GHIYfgd2GH0HdBh1GHAYcxh0GG8YchhzGG4YfQdyGHwHcBhxGIcHbxhwGIYHbhhvGIUHfAduGCMBkRigAmwYjRiRGGsYiRiNGGoY50qJGONKbBhtGGgYaxhsGGcYahhrGGYY40pqGOJKaBhpGGQYZxhoGGMYZhhnGGIY4kpmGOFKZBhlGIEHYxhkGIAHYhhjGH8H4UpiGOBKVRicAmAYURhVGF8YTRhRGF4YhwJNGBUHYBhhGFwYXxhgGFsYXhhfGFoYFQdeGBQHXBhdGFgYWxhcGFcYWhhbGFYYFAdaGBMHWBhZGG8HVxhYGG4HVhhXGG0HEwdWGCwBSRicAlQYRRhJGFMYQRhFGFIYnwJBGHgHVBhVGFAYUxhUGE8YUhhTGE4YeAdSGHcHUBhRGEwYTxhQGEsYThhPGEoYdwdOGHYHTBhNGBIHSxhMGBEHShhLGBAHdgdKGC0BPRicAkgYORg9GEcYNRg5GEYYngI1GHIHSBhJGEQYRxhIGEMYRhhHGEIYcgdGGHEHRBhFGEAYQxhEGD8YQhhDGD4YcQdCGHAHQBhBGHsHPxhAGHoHPhg/GHkHcAc+GA4BYRicAjwYXRhhGDsYWRhdGDoYnQJZGGwHPBg9GDgYOxg8GDcYOhg7GDYYbAc6GGsHOBg5GDQYNxg4GDMYNhg3GDIYawc2GGoHNBg1GHUHMxg0GHQHMhgzGHMHagcyGBcBJRiZAjAYIRglGC8YHRghGC4YmwIdGGYHMBgxGCwYLxgwGCsYLhgvGCoYZgcuGGUHLBgtGCgYKxgsGCcYKhgrGCYYZQcqGGQHKBgpGFQHJxgoGFMHJhgnGFIHZAcmGCoBGRiZAiQYFRgZGCMYERgVGCIYmgIRGGAHJBglGCAYIxgkGB8YIhgjGB4YYAciGF8HIBghGBwYHxggGBsYHhgfGBoYXwceGF4HHBgdGGkHGxgcGGgHGhgbGGcHXgcaGCsBDRiZAhgYCRgNGBcYBRgJGBYY3EoFGN9KGBgZGBQYFxgYGBMYFhgXGBIY30oWGN5KFBgVGBAYExgUGA8YEhgTGA4Y3koSGN1KEBgRGGMHDxgQGGIHDhgPGGEH3UoOGBMBMRiZAgwYLRgxGAsYKRgtGAoYlwIpGFcHDBgNGAgYCxgMGAcYChgLGAYYVwcKGFYHCBgJGAQYBxgIGAMYBhgHGAIYVgcGGFUHBBgFGNtKAxgEGNpKAhgDGNlKVQcCGNBK9ReWAgAY8Rf1F/8X7RfxF/4XmALtF1oHABgBGPwX/xcAGPsX/hf/F/oXWgf+F1kH/Bf9F/gX+xf8F/cX+hf7F/YXWQf6F1gH+Bf5F9dK9xf4F9ZK9hf3F9VKWAf2F9RK6ReWAvQX5RfpF/MX4RflF/IXlwLhF1QH9Bf1F/AX8xf0F+8X8hfzF+4XVAfyF1MH8BfxF+wX7xfwF+sX7hfvF+oXUwfuF1IH7BftF10H6xfsF1wH6hfrF1sHUgfqFyoB3ReWAugX2RfdF+cX1RfZF+YXzErVF9NK6BfpF+QX5xfoF+MX5hfnF+IX00rmF9JK5BflF+AX4xfkF98X4hfjF94X0kriF9FK4BfhF1cH3xfgF1YH3hffF1UH0UreF9BKARiWAtwX/RcBGNsX+Rf9F9oX2Er5F89K3BfdF9gX2xfcF9cX2hfbF9YXz0raF85K2BfZF9QX1xfYF9MX1hfXF9IXzkrWF81K1BfVF8tK0xfUF8pK0hfTF8lKzUrSF8hKxReTAtAXwRfFF88XvRfBF84XlQK9F04H0BfRF8wXzxfQF8sXzhfPF8oXTgfOF00HzBfNF8gXyxfMF8cXyhfLF8YXTQfKF0wHyBfJF8ZKxxfIF8VKxhfHF8RKTAfGF8NKuReTAsQXtRe5F8MXsRe1F8IXlAKxF0gHxBfFF8AXwxfEF78XwhfDF74XSAfCF0cHwBfBF7wXvxfAF7sXvhe/F7oXRwe+F0YHvBe9F1EHuxe8F1AHuhe7F08HRge6FykBrReTArgXqRetF7cXpRepF7YXvEqlF8JKuBe5F7QXtxe4F7MXthe3F7IXwkq2F8FKtBe1F7AXsxe0F68XshezF64XwUqyF8BKsBexF0sHrxewF0oHrhevF0kHwEquFxEB0ReTAqwXzRfRF6sXyRfNF6oXx0rJF79KrBetF6gXqxesF6cXqherF6YXv0qqF75KqBepF6QXpxeoF6MXphenF6IXvkqmF71KpBelF7tKoxekF7pKohejF7lKvUqiF7hKlRePAqAXkReVF58XjReRF54XkgKNF0IHoBehF5wXnxegF5sXnhefF5oXQgeeF0EHnBedF5gXmxecF5cXmhebF5YXQQeaF0AHmBeZF7ZKlxeYF7VKlheXF7RKQAeWF7NKiRePApQXhReJF5MXgReFF5IXkQKBFzwHlBeVF5AXkxeUF48XkheTF44XPAeSFzsHkBeRF4wXjxeQF4sXjhePF4oXOweOFzoHjBeNF0UHixeMF0QHiheLF0MHOgeKF1cBfRePAogXeRd9F4cXdRd5F4YXkAJ1FzYHiBeJF4QXhxeIF4MXhheHF4IXNgeGFzUHhBeFF4AXgxeEF38XgheDF34XNQeCFzQHgBeBFz8HfxeAFz4Hfhd/Fz0HNAd+FygBoRePAnwXnRehF3sXmRedF3oXt0qZF7JKfBd9F3gXexd8F3cXehd7F3YXskp6F7FKeBd5F3QXdxd4F3MXdhd3F3IXsUp2F7BKdBd1FzkHcxd0FzgHchdzFzcHsEpyF69KZReMAnAXYRdlF28XXRdhF24XhAJdFwkHcBdxF2wXbxdwF2sXbhdvF2oXCQduFwgHbBdtF2gXaxdsF2cXahdrF2YXCAdqFwcHaBdpFyQHZxdoFyMHZhdnFyIHBwdmFyYBWReMAmQXVRdZF2MXURdVF2IXjgJRFzAHZBdlF2AXYxdkF18XYhdjF14XMAdiFy8HYBdhF1wXXxdgF1sXXhdfF1oXLwdeFy4HXBddFwYHWxdcFwUHWhdbFwQHLgdaFycBTReMAlgXSRdNF1cXRRdJF1YXjQJFFyoHWBdZF1QXVxdYF1MXVhdXF1IXKgdWFykHVBdVF1AXUxdUF08XUhdTF04XKQdSFygHUBdRFzMHTxdQFzIHThdPFzEHKAdOFy8BcReMAkwXbRdxF0sXaRdtF0oXiwJpFycHTBdNF0gXSxdMF0cXShdLF0YXJwdKFyYHSBdJF0QXRxdIF0MXRhdHF0IXJgdGFyUHRBdFFy0HQxdEFywHQhdDFysHJQdCFy4BNReJAkAXMRc1Fz8XLRcxFz4XPgItF8sFQBdBFzwXPxdAFzsXPhc/FzoXywU+F8oFPBc9FzgXOxc8FzcXOhc7FzYXygU6F8kFOBc5F61KNxc4F6xKNhc3F6tKyQU2FyUBKReJAjQXJRcpFzMXIRclFzIXiwIhFyQHNBc1FzAXMxc0Fy8XMhczFy4XJAcyFyMHMBcxFywXLxcwFysXLhcvFyoXIwcuFyIHLBctF8gFKxcsF8cFKhcrF8YFIgcqFyYBHReJAigXGRcdFycXFRcZFyYXigIVFx4HKBcpFyQXJxcoFyMXJhcnFyIXHgcmFx0HJBclFyAXIxckFx8XIhcjFx4XHQciFxwHIBchFycHHxcgFyYHHhcfFyUHHAceFy4BQReJAhwXPRdBFxsXORc9FxoXrko5F6pKHBcdFxgXGxccFxcXGhcbFxYXqkoaF6lKGBcZFxQXFxcYFxMXFhcXFxIXqUoWF6hKFBcVFyEHExcUFyAHEhcTFx8HqEoSF6dKBReFAhAXARcFFw8X/RYBFw4XUQL9FiUGEBcRFwwXDxcQFwsXDhcPFwoXJQYOFyQGDBcNFwgXCxcMFwcXChcLFwYXJAYKFyMGCBcJFw8HBxcIFw4HBhcHFw0HIwYGFyQB+RaFAgQX9Rb5FgMX8Rb1FgIXiALxFhgHBBcFFwAXAxcEF/8WAhcDF/4WGAcCFxcHABcBF/wW/xYAF/sW/hb/FvoWFwf+FhYH/Bb9FiIG+xb8FiEG+hb7FiAGFgf6FlhK7RaFAvgW6RbtFvcW5RbpFvYWhwLlFhIH+Bb5FvQW9xb4FvMW9hb3FvIWEgf2FhEH9Bb1FvAW8xb0Fu8W8hbzFu4WEQfyFhAH8BbxFhsH7xbwFhoH7hbvFhkHEAfuFi0BEReFAuwWDRcRF+sWCRcNF+oWhgIJFwwH7BbtFugW6xbsFucW6hbrFuYWDAfqFgsH6BbpFuQW5xboFuMW5hbnFuIWCwfmFgoH5BblFhUH4xbkFhQH4hbjFhMHCgfiFiwB1RaCAuAW0RbVFt8WzRbRFt4WhALNFgYH4BbhFtwW3xbgFtsW3hbfFtoWBgfeFgUH3BbdFtgW2xbcFtcW2hbbFtYWBQfaFgQH2BbZFgMH1xbYFgIH1hbXFgEHBAfWFicByRaCAtQWxRbJFtMWwRbFFtIWPwLBFtEF1BbVFtAW0xbUFs8W0hbTFs4W0QXSFtAF0BbRFswWzxbQFssWzhbPFsoW0AXOFs8FzBbNFgkHyxbMFggHyhbLFgcHzwXKFiYBvRaCAsgWuRa9FscWtRa5FsYWo0q1FqZKyBbJFsQWxxbIFsMWxhbHFsIWpkrGFqVKxBbFFsAWwxbEFr8WwhbDFr4WpUrCFqRKwBbBFs4FvxbAFs0Fvha/FswFpEq+FhwB4RaCArwW3RbhFrsW2RbdFroWgwLZFgAHvBa9FrgWuxa8FrcWuha7FrYWAAe6Fv8GuBa5FrQWtxa4FrMWtha3FrIW/wa2Fv4GtBa1FqJKsxa0FqFKshazFqBK/gayFp9KpRZ/ArAWoRalFq8WnRahFq4Wl0qdFp5KsBaxFqwWrxawFqsWrhavFqoWnkquFp1KrBatFqgWqxasFqcWqharFqYWnUqqFpxKqBapFppKpxaoFplKphanFphKnEqmFiIBmRZ/AqQWlRaZFqMWkRaVFqIWgQKRFvoGpBalFqAWoxakFp8WohajFp4W+gaiFvkGoBahFpwWnxagFpsWnhafFpoW+QaeFvgGnBadFpZKmxacFpVKmhabFpRK+AaaFpNKjRZ/ApgWiRaNFpcWhRaJFpYWgAKFFvQGmBaZFpQWlxaYFpMWlhaXFpIW9AaWFvMGlBaVFpAWkxaUFo8WkhaTFo4W8waSFvIGkBaRFv0GjxaQFvwGjhaPFvsG8gaOFkgBsRZ/AowWrRaxFosWqRatFooWm0qpFpJKjBaNFogWixaMFocWihaLFoYWkkqKFpFKiBaJFoQWhxaIFoMWhhaHFoIWkUqGFpBKhBaFFvcGgxaEFvYGghaDFvUGkEqCFo9KdRZ7AoAWcRZ1Fn8WbRZxFn4WfgJtFu4GgBaBFnwWfxaAFnsWfhZ/FnoW7gZ+Fu0GfBZ9FngWexZ8FncWehZ7FnYW7QZ6FuwGeBZ5FuUGdxZ4FuQGdhZ3FuMG7AZ2FlwBaRZ7AnQWZRZpFnMWYRZlFnIWZQJhFn8GdBZ1FnAWcxZ0Fm8WchZzFm4WfwZyFn4GcBZxFmwWbxZwFmsWbhZvFmoWfgZuFn0GbBZtFvEGaxZsFvAGahZrFu8GfQZqFlsBXRZ7AmgWWRZdFmcWVRZZFmYWfQJVFugGaBZpFmQWZxZoFmMWZhZnFmIW6AZmFucGZBZlFmAWYxZkFl8WYhZjFl4W5wZiFuYGYBZhFnwGXxZgFnsGXhZfFnoG5gZeFiIBgRZ7AlwWfRaBFlsWeRZ9FloWfAJ5FuIGXBZdFlgWWxZcFlcWWhZbFlYW4gZaFuEGWBZZFlQWVxZYFlMWVhZXFlIW4QZWFuAGVBZVFusGUxZUFuoGUhZTFukG4AZSFk8BRRZ3AlAWQRZFFk8WPRZBFk4Wiko9Fo5KUBZRFkwWTxZQFksWThZPFkoWjkpOFo1KTBZNFkgWSxZMFkcWShZLFkYWjUpKFoxKSBZJFtMGRxZIFtIGRhZHFtEGjEpGFotKORZ3AkQWNRY5FkMWMRY1FkIWegIxFtwGRBZFFkAWQxZEFj8WQhZDFj4W3AZCFtsGQBZBFjwWPxZAFjsWPhY/FjoW2wY+FtoGPBY9FolKOxY8FohKOhY7FodK2gY6FiEBLRZ3AjgWKRYtFjcWJRYpFjYWeQIlFtYGOBY5FjQWNxY4FjMWNhY3FjIW1gY2FtUGNBY1FjAWMxY0Fi8WMhYzFi4W1QYyFtQGMBYxFt8GLxYwFt4GLhYvFt0G1AYuFk0BURZ3AiwWTRZRFisWSRZNFioWeAJJFtAGLBYtFigWKxYsFicWKhYrFiYW0AYqFs8GKBYpFiQWJxYoFiMWJhYnFiIWzwYmFs4GJBYlFtkGIxYkFtgGIhYjFtcGzgYiFksBFRZzAiAWERYVFh8WDRYRFh4WdgINFsoGIBYhFhwWHxYgFhsWHhYfFhoWygYeFskGHBYdFhgWGxYcFhcWGhYbFhYWyQYaFsgGGBYZFsEGFxYYFsAGFhYXFr8GyAYWFjMBCRZzAhQWBRYJFhMWARYFFhIWRwIBFvUFFBYVFhAWExYUFg8WEhYTFg4W9QUSFvQFEBYRFgwWDxYQFgsWDhYPFgoW9AUOFvMFDBYNFs0GCxYMFswGChYLFssG8wUKFjIB/RVzAggW+RX9FQcW9RX5FQYWdQL1FcQGCBYJFgQWBxYIFgMWBhYHFgIWxAYGFsMGBBYFFgAWAxYEFv8VAhYDFv4VwwYCFsIGABYBFvIF/xUAFvEF/hX/FfAFwgb+FSABIRZzAvwVHRYhFvsVGRYdFvoVdAIZFr4G/BX9FfgV+xX8FfcV+hX7FfYVvgb6Fb0G+BX5FfQV9xX4FfMV9hX3FfIVvQb2FbwG9BX1FccG8xX0FcYG8hXzFcUGvAbyFRIB5RVvAvAV4RXlFe8V3RXhFe4VOgLdFbkF8BXxFewV7xXwFesV7hXvFeoVuQXuFbgF7BXtFegV6xXsFecV6hXrFeYVuAXqFbcF6BXpFa8G5xXoFa4G5hXnFa0GtwXmFR4B2RVvAuQV1RXZFeMV0RXVFeIVcgLRFbgG5BXlFeAV4xXkFd8V4hXjFd4VuAbiFbcG4BXhFdwV3xXgFdsV3hXfFdoVtwbeFbYG3BXdFbYF2xXcFbUF2hXbFbQFtgbaFR8BzRVvAtgVyRXNFdcVxRXJFdYVcQLFFbIG2BXZFdQV1xXYFdMV1hXXFdIVsgbWFbEG1BXVFdAV0xXUFc8V0hXTFc4VsQbSFbAG0BXRFbsGzxXQFboGzhXPFbkGsAbOFRMB8RVvAswV7RXxFcsV6RXtFcoVcALpFawGzBXNFcgVyxXMFccVyhXLFcYVrAbKFasGyBXJFcQVxxXIFcMVxhXHFcIVqwbGFaoGxBXFFbUGwxXEFbQGwhXDFbMGqgbCFRsBtRVqAsAVsRW1Fb8VrRWxFb4VbgKtFaYGwBXBFbwVvxXAFbsVvhW/FboVpga+FaUGvBW9FbgVuxW8FbcVuhW7FbYVpQa6FaQGuBW5FZcGtxW4FZYGthW3FZUGpAa2FWoBqRVqArQVpRWpFbMVoRWlFbIVbQKhFaAGtBW1FbAVsxW0Fa8VshWzFa4VoAayFZ8GsBWxFawVrxWwFasVrhWvFaoVnwauFZ4GrBWtFakGqxWsFagGqhWrFacGngaqFWkBnRVqAqgVmRWdFacVlRWZFaYVbAKVFZoGqBWpFaQVpxWoFaMVphWnFaIVmgamFZkGpBWlFaAVoxWkFZ8VohWjFZ4VmQaiFZgGoBWhFaMGnxWgFaIGnhWfFaEGmAaeFWgBwRVqApwVvRXBFZsVuRW9FZoVawK5FZQGnBWdFZgVmxWcFZcVmhWbFZYVlAaaFZMGmBWZFZQVlxWYFZMVlhWXFZIVkwaWFZIGlBWVFZ0GkxWUFZwGkhWTFZsGkgaSFWYBhRVmApAVgRWFFY8VfRWBFY4VUwJ9FSsGkBWRFYwVjxWQFYsVjhWPFYoVKwaOFSoGjBWNFYgVixWMFYcVihWLFYYVKgaKFSkGiBWJFYUGhxWIFYQGhhWHFYMGKQaGFWVKeRVmAoQVdRV5FYMVcRV1FYIVaQJxFY4GhBWFFYAVgxWEFX8VghWDFX4VjgaCFY0GgBWBFXwVfxWAFXsVfhV/FXoVjQZ+FYwGfBV9FSgGexV8FScGehV7FSYGjAZ6FR0BbRVmAngVaRVtFXcVZRVpFXYVaAJlFYgGeBV5FXQVdxV4FXMVdhV3FXIViAZ2FYcGdBV1FXAVcxV0FW8VchVzFW4VhwZyFYYGcBVxFZEGbxVwFZAGbhVvFY8GhgZuFRoBkRVmAmwVjRWRFWsViRWNFWoVZwKJFYIGbBVtFWgVaxVsFWcVahVrFWYVggZqFYEGaBVpFWQVZxVoFWMVZhVnFWIVgQZmFYAGZBVlFYsGYxVkFYoGYhVjFYkGgAZiFQ0BVRViAmAVURVVFV8VTRVRFV4VZQJNFXwGYBVhFVwVXxVgFVsVXhVfFVoVfAZeFXsGXBVdFVgVWxVcFVcVWhVbFVYVewZaFXoGWBVZFYVKVxVYFYRKVhVXFYNKegZWFSIB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tADMALMAswDLALIAsgDKALEAsQDJALAAsADIAK8ArwDHAK4ArgDGAK0ArQDFAKwArADEAKsAqwDDAKoAF0oYSqkAqQDBAKgAqADAAKcApwC/AKYApgC+AKUApQC9AKQApAC8AKMAowC7AKIAogC6AKEAoQC5AKAAoAC4AJ8AnwC3AJ4AngC2AJ0AnQC1AJwAnAC0AJsAmwCzAJoAmgCyAJkAmQCxAJgAmACwAJcAlwCvAJYAlgCuAJUAlQCtAJQAlACsAJMAkwCrAJIAFkoXSpEAkQCpAJAAkACoAI8AjwCnAI4AjgCmAI0AjQClAIwAjACkAIsAiwCjAIoAigCiAIkAiQChAIgAiACgAIcAhwCfAIYAhgCeAIUAhQCdAIQAhACcAIMAgwCbAIIAggCaAIEAgQCZAIAAgACYAH8AfwCXAH4AfgCWAH0AfQCVAHwAfACUAHsAewCTAHoAFUoWSnkAeQCRAHgAeACQAHcAdwCPAHYAdgCOAHUAdQCNAHQAdACMAHMAcwCLAHIAcgCKAHEAcQCJAHAAcACIAG8AbwCHAG4AbgCGAG0AbQCFAGwAbACEAGsAawCDAGoAagCCAGkAaQCBAGgAaACAAGcAZwB/AGYAZgB+AGUAZQB9AGQAZAB8AGMAYwB7AGIAFEoVSmEAYQB5AGAAYAB4AF8AXwB3AF4AXgB2AF0AXQB1AFwAXAB0AFsAWwBzAFoAWgByAFkAWQBxAFgAWABwAFcAVwBvAFYAVgBuAFUAVQBtAFQAVABsAFMAUwBrAFIAUgBqAFEAUQBpAFAAUABoAE8ATwBnAE4ATgBmAE0ATQBlAEwATABkAEsASwBjAEoAE0oUSkkASQBhAEgASABgAEcARwBfAEYARgBeAEUARQBdAEQARABcAEMAQwBbAEIAQgBaAEEAQQBZAEAAQABYAD8APwBXAD4APgBWAD0APQBVADwAPABUADsAOwBTADoAOgBSADkAOQBRADgAOABQADcANwBPADYANgBOADUANQBNADQANABMADMAMwBLADIAEkoTSjEAMQBJADAAMABIAC8ALwBHAC4ALgBGAC0ALQBFACwALABEACsAKwBDACoAKgBCACkAKQBBACgAKABAACcAJwA/ACYAJgA+ACUAJQA9ACQAJAA8ACMAIwA7ACIAIgA6ACEAIQA5ACAAIAA4AB8AHwA3AB4A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IUMdQxxDIEMcQxtDH0MbQxpDHkMaQ2YSHUMZQxhDHEMYQxdDG0MXQxZDGkMWQ2USGUNWBW0SGENtEmwSF0NsEmsSFkNrEjACVQUVQxRDCUMUQxNDBUMTQxJDAUMSQ1MRFUMRQxBDFEMQQw9DE0MPQw5DEkMOQ1IREUMNQwxDEEMMQwtDD0MLQwpDDkMKQ1ERDUNUBWQSDENkEmMSC0NjEmISCkNiEvcBVQUJQwhD/UIIQwdD+UIHQwZD9UIGQ3ASCUMFQwRDCEMEQwNDB0MDQwJDBkMCQ28SBUMBQwBDBEMAQ/9CA0P/Qv5CAkP+Qm4SAUMNBVARAENQEU8R/0JPEU4R/kJOEfgBVQX9QvxCIUP8QvtCHUP7QvpCGUP6QmoS/UL5QvhC/EL4QvdC+0L3QvZC+kL2QmkS+UL1QvRC+EL0QvNC90LzQvJC9kLyQmgS9UJXBXMS9EJzEnIS80JyEnES8kJxEjUCUgXxQvBC5ULwQu9C4ULvQu5C3ULuQlsS8ULtQuxC8ELsQutC70LrQupC7kLqQloS7ULpQuhC7ELoQudC60LnQuZC6kLmQlkS6UJTBWES6EJhEmAS50JgEl8S5kJfEjECUgXlQuRC2ULkQuNC1ULjQuJC0ULiQlpP5ULhQuBC5ELgQt9C40LfQt5C4kLeQllP4ULdQtxC4ELcQttC30LbQtpC3kLaQlhP3UJRBVgS3EJYElcS20JXElYS2kJWEvUBUgXZQthCzULYQtdCyULXQtZCxULWQmQS2ULVQtRC2ELUQtNC10LTQtJC1kLSQmMS1ULRQtBC1ELQQs9C00LPQs5C0kLOQmIS0UJXT1ZP0EJWT1VPz0JVT1RPzkJUT/cBUgXNQsxC8ULMQstC7ULLQspC6ULKQl4SzULJQshCzELIQsdCy0LHQsZCykLGQl0SyULFQsRCyELEQsNCx0LDQsJCxkLCQlwSxUJUBWcSxEJnEmYSw0JmEmUSwkJlEjACTwXBQsBCtULAQr9CsUK/Qr5CrUK+QlNPwUK9QrxCwEK8QrtCv0K7QrpCvkK6QlJPvUK5QrhCvEK4QrdCu0K3QrZCukK2QlFPuUJQBVUSuEJVElQSt0JUElMStkJTElBPTwW1QrRCqUK0QrNCpUKzQrJCoUKyQnERtUKxQrBCtEKwQq9Cs0KvQq5CskKuQnARsUKtQqxCsEKsQqtCr0KrQqpCrkKqQm8RrUJPT05PrEJOT01Pq0JNT0xPqkJMT/kBTwWpQqhCnUKoQqdCmUKnQqZClUKmQlgSqUKlQqRCqEKkQqNCp0KjQqJCpkKiQlcSpUKhQqBCpEKgQp9Co0KfQp5CokKeQlYSoUIUBW4RoEJuEW0Rn0JtEWwRnkJsEfUBTwWdQpxCwUKcQptCvUKbQppCuUKaQlISnUKZQphCnEKYQpdCm0KXQpZCmkKWQlESmUKVQpRCmEKUQpNCl0KTQpJClkKSQlASlUJRBVsSlEJbEloSk0JaElkSkkJZEjECTAWRQpBChUKQQo9CgUKPQo5CfUKOQj0SkUKNQoxCkEKMQotCj0KLQopCjkKKQjwSjUKJQohCjEKIQodCi0KHQoZCikKGQjsSiUJNBUkSiEJJEkgSh0JIEkcShkJHEjMCTAWFQoRCeUKEQoNCdUKDQoJCcUKCQn0RhUKBQoBChEKAQn9Cg0J/Qn5CgkJ+QnwRgUJ9QnxCgEJ8QntCf0J7QnpCfkJ6QnsRfUJKBToSfEI6EjkSe0I5EjgSekI4EvQBTAV5QnhCbUJ4QndCaUJ3QnZCZUJ2QkwSeUJ1QnRCeEJ0QnNCd0JzQnJCdkJyQksSdUJxQnBCdEJwQm9Cc0JvQm5CckJuQkoScUIXBXoRcEJ6EXkRb0J5EXgRbkJ4Ed5OTAVtQmxCkUJsQmtCjUJrQmpCiUJqQkYSbUJpQmhCbEJoQmdCa0JnQmZCakJmQkUSaUJlQmRCaEJkQmNCZ0JjQmJCZkJiQkQSZUJOBU8SZEJPEk4SY0JOEk0SYkJNEjICSAVhQmBCVUJgQl9CUUJfQl5CTUJeQkASYUJdQlxCYEJcQltCX0JbQlpCXkJaQj8SXUJZQlhCXEJYQldCW0JXQlZCWkJWQj4SWUJJBTcSWEI3EjYSV0I2EjUSVkI1EjQCSAVVQlRCSUJUQlNCRUJTQlJCQUJSQktPVUJRQlBCVEJQQk9CU0JPQk5CUkJOQkpPUUJNQkxCUEJMQktCT0JLQkpCTkJKQklPTUJLBUMSTEJDEkISS0JCEkESSkJBEvYBSAVJQkhCPUJIQkdCOUJHQkZCNUJGQjoSSUJFQkRCSEJEQkNCR0JDQkJCRkJCQjkSRUJBQkBCREJAQj9CQ0I/Qj5CQkI+QjgSQUJIT0dPQEJHT0ZPP0JGT0VPPkJFT/QBSAU9QjxCYUI8QjtCXUI7QjpCWUI6QjQSPUI5QjhCPEI4QjdCO0I3QjZCOkI2QjMSOUI1QjRCOEI0QjNCN0IzQjJCNkIyQjISNUJKBT0SNEI9EjwSM0I8EjsSMkI7EjMCRwUxQjBCJUIwQi9CIUIvQi5CHUIuQjESMUItQixCMEIsQitCL0IrQipCLkIqQjASLUIpQihCLEIoQidCK0InQiZCKkImQi8SKUK5BAYQKEIGEAUQJ0IFEAQQJkIEEAkCRwUlQiRCGUIkQiNCFUIjQiJCEUIiQl0NJUIhQiBCJEIgQh9CI0IfQh5CIkIeQlwNIUIdQhxCIEIcQhtCH0IbQhpCHkIaQlsNHUJGBS4SHEIuEi0SG0ItEiwSGkIsEtsBRwUZQhhCDUIYQhdCCUIXQhZCBUIWQkRPGUIVQhRCGEIUQhNCF0ITQhJCFkISQkNPFUIRQhBCFEIQQg9CE0IPQg5CEkIOQkJPEUIZBFoNEEJaDVkND0JZDVgNDkJYDd0BRwUNQgxCMUIMQgtCLUILQgpCKUIKQgkQDUIJQghCDEIIQgdCC0IHQgZCCkIGQggQCUIFQgRCCEIEQgNCB0IDQgJCBkICQgcQBUJBT0BPBEJATz9PA0I/Tz5PAkI+TwoCRQUBQgBC9UEAQv9B8UH/Qf5B7UH+QT1PAUL9QfxBAEL8QftB/0H7QfpB/kH6QTxP/UH5QfhB/EH4QfdB+0H3QfZB+kH2QTtP+UG0BO4P+EHuD+0P90HtD+wP9kHsDwgCRQX1QfRB6UH0QfNB5UHzQfJB4UHyQVcN9UHxQfBB9EHwQe9B80HvQe5B8kHuQVYN8UHtQexB8EHsQetB70HrQepB7kHqQVUN7UE6TzlP7EE5TzhP60E4TzdP6kE3T+EBRQXpQehB3UHoQedB2UHnQeZB1UHmQS4S6UHlQeRB6EHkQeNB50HjQeJB5kHiQS0S5UHhQeBB5EHgQd9B40HfQd5B4kHeQSwS4UEYBFQN4EFUDVMN30FTDVIN3kFSDdsBRQXdQdxBAULcQdtB/UHbQdpB+UHaQfEP3UHZQdhB3EHYQddB20HXQdZB2kHWQfAP2UHVQdRB2EHUQdNB10HTQdJB1kHSQe8P1UFGBTES1EExEjAS00EwEi8S0kEvEgkCQwXRQdBBxUHQQc9BwUHPQc5BvUHOQSUS0UHNQcxB0EHMQctB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C0DBEcARCkDAEfoBKgUJQAhA/T8IQAdA+T8HQAZA9T8GQM4RCUAFQARACEAEQANAB0ADQAJABkACQM0RBUABQABABEAAQP8/A0D/P/4/AkD+P8wRAUANTwxPAEAMTwtP/z8LTwpP/j8KT/wBKgX9P/w/IUD8P/s/HUD7P/o/GUD6P8gR/T/5P/g//D/4P/c/+z/3P/Y/+j/2P8cR+T/1P/Q/+D/0P/M/9z/zP/I/9j/yP8YR9T8sBdER9D/REdAR8z/QEc8R8j/PEQwCJwXxP/A/5T/wP+8/4T/vP+4/3T/uPwlP8T/tP+w/8D/sP+s/7z/rP+o/7j/qPwhP7T/pP+g/7D/oP+c/6z/nP+Y/6j/mPwdP6T8oBb8R6D+/Eb4R5z++Eb0R5j+9EQZPJwXlP+Q/2T/kP+M/1T/jP+I/0T/iP6UQ5T/hP+A/5D/gP98/4z/fP94/4j/eP6QQ4T/dP9w/4D/cP9s/3z/bP9o/3j/aP6MQ3T8FTwRP3D8ETwNP2z8DTwJP2j8CT1ZOJwXZP9g/zT/YP9c/yT/XP9Y/xT/WP8IR2T/VP9Q/2D/UP9M/1z/TP9I/1j/SP8ER1T/RP9A/1D/QP88/0z/PP84/0j/OP8AR0T/eBKIQ0D+iEKEQzz+hEKAQzj+gEPoBJwXNP8w/8T/MP8s/7T/LP8o/6T/KP7wRzT/JP8g/zD/IP8c/yz/HP8Y/yj/GP7sRyT/FP8Q/yD/EP8M/xz/DP8I/xj/CP7oRxT8pBcURxD/FEcQRwz/EEcMRwj/DEQ0CJAXBP8A/tT/AP78/sT+/P74/rT++P60RwT+9P7w/wD+8P7s/vz+7P7o/vj+6P6wRvT+5P7g/vD+4P7c/uz+3P7Y/uj+2P6sRuT8lBbMRuD+zEbIRtz+yEbERtj+xEQ8CJAW1P7Q/qT+0P7M/pT+zP7I/oT+yP48OtT+xP7A/tD+wP68/sz+vP64/sj+uP44OsT+tP6w/sD+sP6s/rz+rP6o/rj+qP40OrT8jBaoRrD+qEakRqz+pEagRqj+oEfsBJAWpP6g/nT+oP6c/mT+nP6Y/lT+mP7YRqT+lP6Q/qD+kP6M/pz+jP6I/pj+iP7URpT+hP6A/pD+gP58/oz+fP54/oj+eP7QRoT9iBIwOoD+MDosOnz+LDooOnj+KDv8BJAWdP5w/wT+cP5s/vT+bP5o/uT+aP7ARnT+ZP5g/nD+YP5c/mz+XP5Y/mj+WP68RmT+VP5Q/mD+UP5M/lz+TP5I/lj+SP64RlT8mBbkRlD+5EbgRkz+4EbcRkj+3EQ4CIQWRP5A/hT+QP48/gT+PP44/fT+OP5sRkT+NP4w/kD+MP4s/jz+LP4o/jj+KP5oRjT+JP4g/jD+IP4c/iz+HP4Y/ij+GP5kRiT8iBacRiD+nEaYRhz+mEaURhj+lERACIQWFP4Q/eT+EP4M/dT+DP4I/cT+CPwFPhT+BP4A/hD+AP38/gz9/P34/gj9+PwBPgT99P3w/gD98P3s/fz97P3o/fj96P/9OfT8fBZgRfD+YEZcRez+XEZYRej+WEf0BIQV5P3g/bT94P3c/aT93P3Y/ZT92P6oReT91P3Q/eD90P3M/dz9zP3I/dj9yP6kRdT9xP3A/dD9wP28/cz9vP24/cj9uP6gRcT/+Tv1OcD/9TvxObz/8TvtObj/7TvsBIQVtP2w/kT9sP2s/jT9rP2o/iT9qP6QRbT9pP2g/bD9oP2c/az9nP2Y/aj9mP6MRaT9lP2Q/aD9kP2M/Zz9jP2I/Zj9iP6IRZT8jBa0RZD+tEawRYz+sEasRYj+rEQ8CHQVhP2A/VT9gP18/UT9fP14/TT9eP54RYT9dP1w/YD9cP1s/Xz9bP1o/Xj9aP50RXT9ZP1g/XD9YP1c/Wz9XP1Y/Wj9WP5wRWT8eBZURWD+VEZQRVz+UEZMRVj+TERECHQVVP1Q/ST9UP1M/RT9TP1I/QT9SP4MOVT9RP1A/VD9QP08/Uz9PP04/Uj9OP4IOUT9NP0w/UD9MP0s/Tz9LP0o/Tj9KP4EOTT8gBaERTD+hEaARSz+gEZ8RSj+fEf4BHQVJP0g/PT9IP0c/OT9HP0Y/NT9GP5gRST9FP0Q/SD9EP0M/Rz9DP0I/Rj9CP5cRRT9BP0A/RD9APz8/Qz8/Pz4/Qj8+P5YRQT9gBIAOQD+ADn8OPz9/Dn4OPj9+Dv0BHQU9Pzw/YT88Pzs/XT87Pzo/WT86P5IRPT85Pzg/PD84Pzc/Oz83PzY/Oj82P5EROT81PzQ/OD80PzM/Nz8zPzI/Nj8yP5ARNT8fBZsRND+bEZoRMz+aEZkRMj+ZERACGwUxPzA/JT8wPy8/IT8vPy4/HT8uP4MRMT8tPyw/MD8sPys/Lz8rPyo/Lj8qP4IRLT8pPyg/LD8oPyc/Kz8nPyY/Kj8mP4ERKT/cBJwQKD+cEJsQJz+bEJoQJj+aEEdOGwUlPyQ/GT8kPyM/FT8jPyI/ET8iP4wRJT8hPyA/JD8gPx8/Iz8fPx4/Ij8eP4sRIT8dPxw/ID8cPxs/Hz8bPxo/Hj8aP4oRHT8ZBYARHD+AEX8RGz9/EX4RGj9+EfYBGwUZP/lO+k75TvdO+E73TvVO9k71TvROGT8VPxQ/GD8UPxM/Fz8TPxI/Fj8SP/NOFT8RPxA/FD8QPw8/Ez8PPw4/Ej8OP/JOET8cBY8RED+PEY4RDz+OEY0RDj+NEfFOGwUNPww/MT8MPws/LT8LPwo/KT8KP58QDT8JPwg/DD8IPwc/Cz8HPwY/Cj8GP54QCT8FPwQ/CD8EPwM/Bz8DPwI/Bj8CP50QBT/wTu9OBD/vTu5OAz/uTu1OAj/tTucBGAUBPwA/9T4AP/8+8T7/Pv4+7T7+PncRAT/9Pvw+AD/8Pvs+/z77Pvo+/j76PnYR/T75Pvg+/D74Pvc++z73PvY++j72PnUR+T7sTutO+D7rTupO9z7qTulO9j7pTmROGAX1PvQ+6T70PvM+5T7zPvI+4T7yPoYR9T7xPvA+9D7wPu8+8z7vPu4+8j7uPoUR8T7tPuw+8D7sPus+7z7rPuo+7j7qPoQR7T4WBXQR7D50EXMR6z5zEXIR6j5yEfQBGAXpPug+3T7oPuc+2T7nPuY+1T7mPoAR6T7lPuQ+6D7kPuM+5z7jPuI+5j7iPn8R5T7hPuA+5D7gPt8+4z7fPt4+4j7ePn4R4T4aBYkR4D6JEYgR3z6IEYcR3j6HEfYBGAXdPtw+AT/cPts+/T7bPto++T7aPuhO3T7ZPtg+3D7YPtc+2z7XPtY+2j7WPudO2T7VPtQ+2D7UPtM+1z7TPtI+1j7SPuZO1T4ZBYMR1D6DEYIR0z6CEYER0j6BEUdOFQXRPtA+xT7QPs8+wT7PPs4+vT7OPuVO0T7NPsw+0D7MPss+zz7LPso+zj7KPuROzT7JPsg+zD7IPsc+yz7HPsY+yj7GPuNOyT7jBLoQyD66ELkQxz65ELgQxj64EOgBFQXFPsQ+uT7EPsM+tT7DPsI+sT7CPnoRxT7BPsA+xD7APr8+wz6/Pr4+wj6+PnkRwT69Prw+wD68Prs+vz67Pro+vj66PngRvT7iTuFOvD7hTuBOuz7gTt9Ouj7fTt5OFQW5Prg+rT64Prc+qT63PrY+pT62PnQRuT61PrQ+uD60PrM+tz6zPrI+tj6yPnMRtT6xPrA+tD6wPq8+sz6vPq4+sj6uPnIRsT4XBX0RsD59EXwRrz58EXsRrj57EfQBFQWtPqw+0T6sPqs+zT6rPqo+yT6qPr0QrT6pPqg+rD6oPqc+qz6nPqY+qj6mPrwQqT6lPqQ+qD6kPqM+pz6jPqI+pj6iPrsQpT4WBXcRpD53EXYRoz52EXURoj51EWROEgWhPqA+lT6gPp8+kT6fPp4+jT6ePl8RoT6dPpw+oD6cPps+nz6bPpo+nj6aPl4RnT6ZPpg+nD6YPpc+mz6XPpY+mj6WPl0RmT5LBCwOmD4sDisOlz4rDioOlj4qDsABEgWVPpQ+iT6UPpM+hT6TPpI+gT6SPm4RlT6RPpA+lD6QPo8+kz6PPo4+kj6OPm0RkT6NPow+kD6MPos+jz6LPoo+jj6KPmwRjT4QBVwRjD5cEVsRiz5bEVoRij5aEfUBEgWJPog+fT6IPoc+eT6HPoY+dT6GPmgRiT6FPoQ+iD6EPoM+hz6DPoI+hj6CPmcRhT6BPoA+hD6APn8+gz5/Pn4+gj5+PmYRgT4UBXERgD5xEXARfz5wEW8Rfj5vEfkBEgV9Pnw+oT58Pns+nT57Pno+mT56Pi8OfT55Png+fD54Pnc+ez53PnY+ej52Pi4OeT51PnQ+eD50PnM+dz5zPnI+dj5yPi0OdT4TBWsRdD5rEWoRcz5qEWkRcj5pEegBDwVxPnA+ZT5wPm8+YT5vPm4+XT5uPk0RcT5tPmw+cD5sPms+bz5rPmo+bj5qPkwRbT5pPmg+bD5oPmc+az5nPmY+aj5mPksRaT7dTtxOaD7cTttOZz7bTtpOZj7aTj5NDwVlPmQ+WT5kPmM+VT5jPmI+UT5iPmIRZT5hPmA+ZD5gPl8+Yz5fPl4+Yj5ePmERYT5dPlw+YD5cPls+Xz5bPlo+Xj5aPmARXT4MBUoRXD5KEUkRWz5JEUgRWj5IEfcBDwVZPlg+TT5YPlc+ST5XPlY+RT5WPlwRWT5VPlQ+WD5UPlM+Vz5TPlI+Vj5SPlsRVT5RPlA+VD5QPk8+Uz5PPk4+Uj5OPloRUT4RBWURUD5lEWQRTz5kEWMRTj5jEfUBDwVNPkw+cT5MPks+bT5LPko+aT5KPtlOTT5JPkg+TD5IPkc+Sz5HPkY+Sj5GPthOST5FPkQ+SD5EPkM+Rz5DPkI+Rj5CPtdORT4QBV8RRD5fEV4RQz5eEV0RQj5dEcABCwVBPkA+1k5APj8+1U4/Pj4+1E4+PlYRQT49Pjw+QD48Pjs+Pz47Pjo+Pj46PlURPT45Pjg+PD44Pjc+Oz43PjY+Oj42PlQROT4fBHINOD5yDXENNz5xDXANNj5wDecB0U41PjQ+KT40PjM+JT4zPjI+IT4yPlARNT4xPjA+ND4wPi8+Mz4vPi4+Mj4uPk8RMT4tPtNOMD4sPis+Lz4rPio+Lj4qPk4RLT4OBdJOLD5ZEVgRKz5YEVcRKj5XEfgB0U4pPig+HT4oPic+GT4nPiY+FT4mPkoRKT4lPiQ+KD4kPiM+Jz4jPiI+Jj4iPkkRJT4hPiA+JD4gPh8+Iz4fPh4+Ij4ePkgRIT4NBVMRID5TEVIRHz5SEVERHj5REfcBCwUdPhw+QT4cPhs+PT4bPho+OT4aPnUNHT4ZPhg+HD4YPhc+Gz4XPhY+Gj4WPnQNGT4VPhQ+GD4UPhM+Fz4TPhI+Fj4SPnMNFT4MBU0RFD5NEUwREz5MEUsREj5LET5NCgURPhA+BT4QPg8+AT4PPg4+/T0OPkcRET4NPgw+ED4MPgs+Dz4LPgo+Dj4KPkYRDT4JPgg+DD4IPgc+Cz4HPgY+Cj4GPkURCT7+BCARCD4gER8RBz4fER4RBj4eEe4BCgUFPgQ++T0EPgM+9T0DPgI+8T0CPs8QBT4BPgA+BD4APv89Az7/Pf49Aj7+Pc4QAT79Pfw9AD78Pfs9/z37Pfo9/j36Pc0Q/T0JBUQR/D1EEUMR+z1DEUIR+j1CEfEBCgX5Pfg97T34Pfc96T33PfY95T32PdBO+T31PfQ9+D30PfM99z3zPfI99j3yPc9O9T3xPfA99D3wPe898z3vPe498j3uPc5O8T3oBMwQ8D3MEMsQ7z3LEMoQ7j3KEHtOCgXtPew9ET7sPes9DT7rPeo9CT7qPSMR7T3pPeg97D3oPec96z3nPeY96j3mPSIR6T3lPeQ96D3kPeM95z3jPeI95j3iPSER5T3NTsxO5D3MTstO4z3LTspO4j3KTqpOCAXhPeA91T3gPd890T3fPd49zT3ePY0K4T3dPdw94D3cPds93z3bPdo93j3aPYwK3T3ZPdg93D3YPdc92z3XPdY92j3WPYsK2T3JTshO2D3ITsdO1z3HTsZO1j3GTgVMCAXVPdQ9yT3UPdM9xT3TPdI9wT3SPcVO1T3RPdA91D3QPc890z3PPc490j3OPcRO0T3NPcw90D3MPcs9zz3LPco9zj3KPcNOzT1YA4oKzD2KCokKyz2JCogKyj2ICvlLCAXJPcg9vT3IPcc9uT3HPcY9tT3GPUQRyT3FPcQ9yD3EPcM9xz3DPcI9xj3CPUMRxT3BPcA9xD3APb89wz2/Pb49wj2+PUIRwT3CTsFOwD3BTsBOvz3ATr9Ovj2/TvEBCAW9Pbw94T28Pbs93T27Pbo92T26Pb5OvT25Pbg9vD24Pbc9uz23PbY9uj22Pb1OuT21PbQ9uD20PbM9tz2zPbI9tj2yPbxOtT0JBUcRtD1HEUYRsz1GEUURsj1FEe4BBgWxPbA9pT2wPa89oT2vPa49nT2uPTURsT2tPaw9sD2sPas9rz2rPao9rj2qPTQRrT2pPag9rD2oPac9qz2nPaY9qj2mPTMRqT3TBHgQqD14EHcQpz13EHYQpj12EAsCBgWlPaQ9mT2kPaM9lT2jPaI9kT2iPZMNpT2hPaA9pD2gPZ89oz2fPZ49oj2ePZINoT2dPZw9oD2cPZs9nz2bPZo9nj2aPZENnT0EBTIRnD0yETERmz0xETARmj0wEeMBBgWZPZg9jT2YPZc9iT2XPZY9hT2WPT4RmT2VPZQ9mD2UPZM9lz2TPZI9lj2SPT0RlT2RPZA9lD2QPY89kz2PPY49kj2OPTwRkT0lBJANkD2QDY8Njz2PDY4Njj2ODUZNBgWNPYw9sT2MPYs9rT2LPYo9qT2KPXsQjT2JPYg9jD2IPYc9iz2HPYY9ij2GPXoQiT2FPYQ9iD2EPYM9hz2DPYI9hj2CPXkQhT0HBUERhD1BEUARgz1AET8Rgj0/ETpOAwWBPYA9dT2APX89cT1/PX49bT1+PTgRgT19PXw9gD18PXs9fz17PXo9fj16PTcRfT15PXg9fD14PXc9ez13PXY9ej12PTYReT29BBgQeD0YEBcQdz0XEBYQdj0WEBFOAwV1PXQ9aT10PXM9ZT1zPXI9YT1yPdsQdT1xPXA9dD1wPW89cz1vPW49cj1uPdoQcT1tPWw9cD1sPWs9bz1rPWo9bj1qPdkQbT0FBTsRbD07EToRaz06ETkRaj05EYROAwVpPWg9XT1oPWc9WT1nPWY9VT1mPTIRaT1lPWQ9aD1kPWM9Zz1jPWI9Zj1iPTERZT1hPWA9ZD1gPV89Yz1fPV49Yj1ePTARYT3rBNgQYD3YENcQXz3XENYQXj3WEOMBAwVdPVw9gT1cPVs9fT1bPVo9eT1aPRsQXT1ZPVg9XD1YPVc9Wz1XPVY9Wj1WPRoQWT1VPVQ9WD1UPVM9Vz1TPVI9Vj1SPRkQVT0EBTURVD01ETQRUz00ETMRUj0zEQsCAgVRPVA9RT1QPU89QT1PPU49PT1OPSkRUT1NPUw9UD1MPUs9Tz1LPUo9Tj1KPSgRTT1JPUg9TD1IPUc9Sz1HPUY9Sj1GPScRST27TrpOSD26TrlORz25TrhORj24Tu8BAgVFPUQ9OT1EPUM9NT1DPUI9MT1CPbdORT1BPUA9RD1APT89Qz0/PT49Qj0+PbZOQT09PTw9QD08PTs9Pz07PTo9Pj06PbVOPT0ABSYRPD0mESUROz0lESQROj0kEfIBAgU5PTg9LT04PTc9KT03PTY9JT02PXUKOT01PTQ9OD00PTM9Nz0zPTI9Nj0yPXQKNT0xPTA9ND0wPS89Mz0vPS49Mj0uPXMKMT20TrNOMD2zTrJOLz2yTrFOLj2xTu1LAgUtPSw9UT0sPSs9TT0rPSo9ST0qPbBOLT0pPSg9LD0oPSc9Kz0nPSY9Kj0mPa9OKT0lPSQ9KD0kPSM9Jz0jPSI9Jj0iPa5OJT1RA3IKJD1yCnEKIz1xCnAKIj1wCvFL/wQhPSA9FT0gPR89ET0fPR49DT0ePSwRIT0dPRw9ID0cPRs9Hz0bPRo9Hj0aPSsRHT0ZPRg9HD0YPRc9Gz0XPRY9Gj0WPSoRGT32BAIRGD0CEQERFz0BEQARFj0AEfAB/wQVPRQ9CT0UPRM9BT0TPRI9AT0SPasNFT0RPRA9FD0QPQ89Ez0PPQ49Ej0OPaoNET0NPQw9ED0MPQs9Dz0LPQo9Dj0KPakNDT0BBS8RDD0vES4RCz0uES0RCj0tEfMB/wQJPQg9/TwIPQc9+TwHPQY99TwGPSYRCT0FPQQ9CD0EPQM9Bz0DPQI9Bj0CPSURBT0BPQA9BD0APf88Az3/PP48Aj3+PCQRAT0rBKgNAD2oDacN/zynDaYN/jymDfIB/wT9PPw8IT38PPs8HT37PPo8GT36PAUR/Tz5PPg8/Dz4PPc8+zz3PPY8+jz2PAQR+Tz1PPQ8+Dz0PPM89zzzPPI89jzyPAMR9TwABSkR9DwpESgR8zwoEScR8jwnEe8B/QTxPPA85TzwPO884TzvPO483TzuPBcR8TztPOw88DzsPOs87zzrPOo87jzqPBYR7TzpPOg87DzoPOc86zznPOY86jzmPBUR6TzlBMAQ6DzAEL8Q5zy/EL4Q5jy+EGhO/QTlPOQ82TzkPOM81TzjPOI80TziPCAR5TzhPOA85DzgPN884zzfPN484jzePB8R4TzdPNw84DzcPNs83zzbPNo83jzaPB4R3Tz7BBQR3DwUERMR2zwTERIR2jwSEe4B/QTZPNg8zTzYPNc8yTzXPNY8xTzWPK1O2TzVPNQ82DzUPNM81zzTPNI81jzSPKxO1TzRPNA81DzQPM880zzPPM480jzOPKtO0Tz+BCMR0DwjESIRzzwiESERzjwhEapO/QTNPMw88TzMPMs87TzLPMo86TzKPMMQzTzJPMg8zDzIPMc8yzzHPMY8yjzGPMIQyTzFPMQ8yDzEPMM8xzzDPMI8xjzCPMEQxTypTqhOxDyoTqdOwzynTqZOwjymTuoB+gTBPMA8tTzAPL88sTy/PL48rTy+PFEKwTy9PLw8wDy8PLs8vzy7PLo8vjy6PFAKvTy5PLg8vDy4PLc8uzy3PLY8ujy2PE8KuTwnBJYNuDyWDZUNtzyVDZQNtjyUDRoB+gS1PLQ8qTy0PLM8pTyzPLI8oTyyPBoRtTyxPLA8tDywPK88szyvPK48sjyuPBkRsTytPKw8sDysPKs8rzyrPKo8rjyqPBgRrTxIA04KrDxOCk0KqzxNCkwKqjxMCl8B+gSpPKg8nTyoPKc8mTynPKY8lTymPBQRqTylPKQ8qDykPKM8pzyjPKI8pjyiPBMRpTyhPKA8pDygPJ88ozyfPJ48ojyePBIRoTz8BB0RoDwdERwRnzwcERsRnjwbEe4B+gSdPJw8wTycPJs8vTybPJo8uTyaPJkNnTyZPJg8nDyYPJc8mzyXPJY8mjyWPKVOmTyVPJQ8mDyUPJM8lzyTPJI8ljySPKROlTz7BBcRlDwXERYRkzwWERURkjwVEWhO+ASRPJA8hTyQPI88gTyPPI48fTyOPP8QkTyNPIw8kDyMPIs8jzyLPIo8jjyKPP4QjTyJPIg8jDyIPIc8izyHPIY8ijyGPP0QiTwvBLoNiDy6DaNOhzyjTqJOhjyiTjVN+ASFPIQ8eTyEPIM8dTyDPII8cTyCPA4RhTyBPIA8hDyAPH88gzx/PH48gjx+PA0RgTx9PHw8gDx8PHs8fzx7PHo8fjx6PAwRfTz1BPwQfDz8EPsQezz7EPoQejz6EO8B+AR5PHg8bTx4PHc8aTx3PHY8ZTx2PEsKeTx1PHQ8eDx0PHM8dzxzPHI8djxyPEoKdTxxPHA8dDxwPG88czxvPG48cjxuPEkKcTz5BBERcDwRERARbzwQEQ8RbjwPEWAB+ARtPGw8kTxsPGs8jTxrPGo8iTxqPL0NbTxpPGg8bDxoPGc8azxnPGY8ajxmPLwNaTxlPGQ8aDxkPGM8ZzxjPGI8ZjxiPLsNZTxGA0gKZDxICkcKYzxHCkYKYjxGChsB9ARhPGA8VTxgPF88UTxfPF48TTxePAgRYTxdPFw8YDxcPFs8XzxbPFo8XjxaPAcRXTxZPFg8XDxYPFc8WzxXPFY8WjxWPAYRWTwbBGANWDxgDV8NVzxfDV4NVjxeDeoB9ARVPFQ8STxUPFM8RTxTPFI8QTxSPAIRVTxRPFA8VDxQPE88UzxPPE48UjxOPAERUTxNPEw8UDxMPEs8TzxLPEo8TjxKPAARTTz3BAsRTDwLEQoRSzwKEQkRSjwJEfAB9ARJPEg8PTxIPEc8OTxHPEY8NTxGPPwQSTxFPEQ8SDxEPEM8RzxDPEI8RjxCPPsQRTxBPEA8RDxAPD88Qzw/PD48Qjw+PPoQQTz2BAURQDwFEQQRPzwEEQMRPjwDEe8B9AQ9PDw8YTw8PDs8XTw7PDo8WTw6PGMNPTw5PDg8PDw4PDc8Ozw3PDY8Ojw2PGINOTw1PDQ8ODw0PDM8NzwzPDI8NjwyPGENNTz1BP8QNDz/EP4QMzz+EP0QMjz9EDVN8QQxPDA8JTwwPC88ITwvPC48HTwuPPYQMTwtPCw8MDwsPCs8LzwrPCo8LjwqPPUQLTwpPCg8LDwoPCc8KzwnPCY8KjwmPPQQKTyeBIgPKDyID4cPJzyHD4YPJjyGD+0B8QQlPCQ8GTwkPCM8FTwjPCI8ETwiPKFOJTwhPCA8JDwgPB88IzwfPB48IjwePKBOITwdPBw8IDwcPBs8HzwbPBo8HjwaPJ9OHTzzBPkQHDz5EPgQGzz4EPcQGjz3EJ5O8QQZPBg8DTwYPBc8CTwXPBY8BTwWPPAQGTwVPBQ8GDwUPBM8FzwTPBI8FjwSPO8QFTwRPBA8FDwQPA88EzwPPA48EjwOPO4QETydTpxOEDycTptODzybTppODjyaTplO8QQNPAw8MTwMPAs8LTwLPAo8KTwKPIsPDTwJPAg8DDwIPAc8CzwHPAY8CjwGPIoPCTwFPAQ8CDwEPAM8BzwDPAI8BjwCPIkPBTzyBPMQBDzzEPIQAzzyEPEQAjzxECwC7gQBPAA89TsAPP878Tv/O/477Tv+O5hOATz9O/w7ADz8O/s7/zv7O/o7/jv6O5dO/Tv5O/g7/Dv4O/c7+zv3O/Y7+jv2O5ZO+TvvBOcQ+DvnEOYQ9zvmEOUQ9jvlEJVO7gT1O/Q76Tv0O/M75TvzO/I74TvyO+oQ9TvxO/A79DvwO+878zvvO+478jvuO+kQ8TvtO+w78DvsO+s77zvrO+o77jvqO+gQ7TuUTpNO7DuTTpJO6zuSTpFO6juRTpBO7gTpO+g73TvoO+c72TvnO+Y71TvmO0sQ6TvlO+Q76DvkO+M75zvjO+I75jviO0oQ5TvhO+A75DvgO9874zvfO9474jveO0kQ4TvwBO0Q4DvtEOwQ3zvsEOsQ3jvrEB8C7gTdO9w7ATzcO9s7/TvbO9o7+TvaO+QQ3TvZO9g73DvYO9c72zvXO9Y72jvWO+MQ2TvVO9Q72DvUO9M71zvTO9I71jvSO+IQ1TvIBEgQ1DtIEEcQ0ztHEEYQ0jtGEAUC7ATRO9A7xTvQO887wTvPO847vTvOO9UQ0TvNO8w70DvMO8s7zzvLO8o7zjvKO9QQzTvJO8g7zDvIO8c7yzvHO8Y7yjvGO9MQyTs4BN4NyDveDd0NxzvdDdwNxjvcDesB7ATFO8Q7uTvEO8M7tTvDO8I7sTvCO49OxTvBO8A7xDvAO787wzu/O747wju+O45OwTu9O7w7wDu8O7s7vzu7O7o7vju6O41OvTvqBNIQvDvSENEQuzvRENAQujvQELoB7AS5O7g7rTu4O7c7qTu3O7Y7pTu2O94QuTu1O7Q7uDu0O7M7tzuzO7I7tjuyO90QtTuxO7A7tDuwO687szuvO647sjuuO9wQsTuMTotOsDuLTopOrzuKTolOrjuJTohO7AStO6w70TusO6s7zTurO6o7yTuqO+ENrTupO6g7rDuoO6c7qzunO6Y7qjumO+ANqTulO6Q7qDukO6M7pzujO6I7pjuiO98NpTvtBOEQpDvhEOAQozvgEN8QojvfEOwB6QShO6A7lTugO587kTufO547jTueO9gQoTudO5w7oDucO5s7nzubO5o7njuaO9cQnTuZO5g7nDuYO5c7mzuXO5Y7mjuWO9YQmTskBIoNmDuKDYkNlzuJDYgNljuIDeMB6QSVO5Q7iTuUO5M7hTuTO5I7gTuSO4dOlTuRO5A7lDuQO487kzuPO447kjuOO4ZOkTuNO4w7kDuMO4s7jzuLO4o7jjuKO4VOjTvrBNsQjDvbENoQizvaENkQijvZEIRO6QSJO4g7fTuIO4c7eTuHO4Y7dTuGO9IQiTuFO4Q7iDuEO4M7hzuDO4I7hjuCO9EQhTuBO4A7hDuAO387gzt/O347gjt+O9AQgTuDToJOgDuCToFOfzuBToBOfjuATroB6QR9O3w7oTt8O3s7nTt7O3o7mTt6O40NfTt5O3g7fDt4O3c7ezt3O3Y7ejt2O4wNeTt1O3Q7eDt0O3M7dztzO3I7djtyO4sNdTvqBNUQdDvVENQQczvUENMQcjvTEOsB5gRxO3A7ZTtwO287YTtvO247XTtuO8wQcTttO2w7cDtsO2s7bztrO2o7bjtqO8sQbTtpO2g7bDtoO2c7aztnO2Y7ajtmO8oQaTt/Tn5OaDt+Tn1OZzt9TnxOZjt8TntO5gRlO2Q7WTtkO2M7VTtjO2I7UTtiO8YQZTthO2A7ZDtgO187YztfO147YjteO8UQYTtdO1w7YDtcO1s7XztbO1o7XjtaO8QQXTvoBM8QXDvPEM4QWzvOEM0QWjvNEPEB5gRZO1g7TTtYO1c7STtXO1Y7RTtWOwMKWTtVO1Q7WDtUO1M7VztTO1I7VjtSOwIKVTtRO1A7VDtQO087UztPO047UjtOOwEKUTvnBMkQUDvJEMgQTzvIEMcQTjvHEGUB5gRNO0w7cTtMO0s7bTtLO0o7aTtKO3pOTTtJO0g7TDtIO0c7SztHO0Y7SjtGO3lOSTtFO0Q7SDtEO0M7RztDO0I7RjtCO3hORTs0AwAKRDsACv8JQzv/Cf4JQjv+CbJL5ARBO0A7NTtAOz87MTs/Oz47LTs+O3dOQTs9Ozw7QDs8Ozs7Pzs7Ozo7Pjs6O3ZOPTs5Ozg7PDs4Ozc7Ozs3OzY7Ojs2O3VOOTscBGYNODtmDWUNNztlDWQNNjtkDekB5AQ1OzQ7KTs0OzM7JTszOzI7ITsyO3RONTsxOzA7NDswOy87MzsvOy47MjsuO3NOMTstOyw7MDssOys7LzsrOyo7LjsqO3JOLTtxTnBOLDtwTm9OKztvTm5OKjtuTm1O5AQpOyg7HTsoOyc7GTsnOyY7FTsmO8AQKTslOyQ7KDskOyM7JzsjOyI7JjsiO78QJTshOyA7JDsgOx87IzsfOx47IjseO74QITtsTmtOIDtrTmpOHztqTmlOHjtpTmhO5AQdOxw7QTscOxs7PTsbOxo7OTsaO2kNHTsZOxg7HDsYOxc7GzsXOxY7GjsWO2gNGTsVOxQ7GDsUOxM7FzsTOxI7FjsSO2cNFTvlBMMQFDvDEMIQEzvCEMEQEjvBEOoB4QQROxA7BTsQOw87ATsPOw47/ToOO7oQETsNOww7EDsMOws7DzsLOwo7DjsKO7kQDTsJOwg7DDsIOwc7CzsHOwY7CjsGO7gQCTtKBCYOCDsmDiUOBzslDiQOBjskDugB4QQFOwQ7+ToEOwM79ToDOwI78ToCO2dOBTsBOwA7BDsAO/86Azv/Ov46Ajv+OmZOATv9Ovw6ADv8Ovs6/zr7Ovo6/jr6OmVO/TrjBL0Q/Dq9ELwQ+zq8ELsQ+jq7EGRO4QT5Ovg67Tr4Ovc66Tr3OvY65Tr2OrQQ+Tr1OvQ6+Dr0OvM69zrzOvI69jryOrMQ9TrxOvA69DrwOu868zrvOu468jruOrIQ8TpjTmJO8DpiTmFO7zphTmBO7jpgTl9O4QTtOuw6ETvsOus6DTvrOuo6CTvqOikO7TrpOug67DroOuc66zrnOuY66jrmOigO6TrlOuQ66DrkOuM65zrjOuI65jriOicO5TriBLcQ5Dq3ELYQ4zq2ELUQ4jq1EHtN3QThOuA61TrgOt860TrfOt46zTreOq4Q4TrdOtw64DrcOts63zrbOto63jraOq0Q3TrZOtg63DrYOtc62zrXOtY62jrWOqwQ2TpeTl1O2DpdTlxO1zpcTltO1jpbTlpO3QTVOtQ6yTrUOtM6xTrTOtI6wTrSOqgQ1TrROtA61DrQOs860zrPOs460jrOOqcQ0TrNOsw60DrMOss6zzrLOso6zjrKOqYQzTrgBLEQzDqxELAQyzqwEK8QyjqvEPwB3QTJOsg6vTrIOsc6uTrHOsY6tTrGOqIQyTrFOsQ6yDrEOsM6xzrDOsI6xjrCOqEQxTrBOsA6xDrAOr86wzq/Or46wjq+OqAQwTrfBKsQwDqrEKoQvzqqEKkQvjqpEPoB3QS9Orw64Tq8Ors63Tq7Oro62Tq6OllOvTq5Org6vDq4Orc6uzq3OrY6ujq2OlhOuTq1OrQ6uDq0OrM6tzqzOrI6tjqyOldOtTreBKUQtDqlEKQQszqkEKMQsjqjEFZO2wSxOrA6pTqwOq86oTqvOq46nTquOlVOsTqtOqw6sDqsOqs6rzqrOqo6rjqqOlROrTqpOqg6rDqoOqc6qzqnOqY6qjqmOlNOqTogBHgNqDp4DXcNpzp3DXYNpjp2DeYB2wSlOqQ6mTqkOqM6lTqjOqI6kTqiOlJOpTqhOqA6pDqgOp86ozqfOp46ojqeOlFOoTqdOpw6oDqcOps6nzqbOpo6njqaOlBOnTpPTk5OnDpOTk1OmzpNTkxOmjpMTrIB2wSZOpg6jTqYOpc6iTqXOpY6hTqWOpwQmTqVOpQ6mDqUOpM6lzqTOpI6ljqSOpsQlTqROpA6lDqQOo86kzqPOo46kjqOOpoQkTpLTkpOkDpKTklOjzpJTkhOjjpITkdO2wSNOow6sTqMOos6rTqLOoo6qTqKOnsNjTqJOog6jDqIOoc6izqHOoY6ijqGOnoNiTqFOoQ6iDqEOoM6hzqDOoI6hjqCOnkNhTrcBJ8QhDqfEJ4QgzqeEJ0QgjqdEOcB2ASBOoA6dTqAOn86cTp/On46bTp+OpYQgTp9Onw6gDp8Ons6fzp7Ono6fjp6OpUQfTp5Ong6fDp4Onc6ezp3OnY6ejp2OpQQeTp4BOAOeDrgDt8OdzrfDt4OdjreDuUB2AR1OnQ6aTp0OnM6ZTpzOnI6YTpyOrMOdTpxOnA6dDpwOm86czpvOm46cjpuOrIOcTptOmw6cDpsOms6bzprOmo6bjpqOrEObTraBJkQbDqZEJgQazqYEJcQajqXEMwB2ARpOmg6XTpoOmc6WTpnOmY6VTpmOpAQaTplOmQ6aDpkOmM6ZzpjOmI6ZjpiOo8QZTphOmA6ZDpgOl86YzpfOl46YjpeOo4QYTpsBLAOYDqwDq8OXzqvDq4OXjquDrpN2ARdOlw6gTpcOls6fTpbOlo6eTpaOuMOXTpZOlg6XDpYOlc6WzpXOlY6WjpWOuIOWTpVOlQ6WDpUOlM6VzpTOlI6VjpSOuEOVTrZBJMQVDqTEJIQUzqSEJEQUjqRENdN1QRROlA6RTpQOk86QTpPOk46PTpOOooQUTpNOkw6UDpMOks6TzpLOko6TjpKOokQTTpJOkg6TDpIOkc6SzpHOkY6SjpGOogQSTqSBFIPSDpSD1EPRzpRD1APRjpQD+QB1QRFOkQ6OTpEOkM6NTpDOkI6MTpCOkZORTpBOkA6RDpAOj86Qzo/Oj46Qjo+OkVOQTo9Ojw6QDo8Ojs6Pzo7Ojo6Pjo6OkROPTrXBI0QPDqNEIwQOzqMEIsQOjqLEENO1QQ5Ojg6LTo4Ojc6KTo3OjY6JTo2OoQQOTo1OjQ6ODo0OjM6NzozOjI6NjoyOoMQNToxOjA6NDowOi86MzovOi46MjouOoIQMTpCTkFOMDpBTkBOLzpATj9OLjo/Tj5O1QQtOiw6UTosOis6TTorOio6SToqOlUPLTopOig6LDooOic6KzonOiY6KjomOlQPKTolOiQ6KDokOiM6JzojOiI6JjoiOlMPJTrWBIcQJDqHEIYQIzqGEIUQIjqFECYC0gQhOiA6FTogOh86ETofOh46DToeOj1OITodOhw6IDocOhs6HzobOho6HjoaOjxOHToZOhg6HDoYOhc6GzoXOhY6GjoWOjtOGTrTBHsQGDp7EHoQFzp6EHkQFjp5EDpO0gQVOhQ6CToUOhM6BToTOhI6AToSOn4QFToROhA6FDoQOg86EzoPOg46EjoOOn0QEToNOgw6EDoMOgs6DzoLOgo6DjoKOnwQDTo5TjhODDo4TjdOCzo3TjZOCjo2TjVO0gQJOgg6/TkIOgc6+TkHOgY69TkGOhUQCToFOgQ6CDoEOgM6BzoDOgI6BjoCOhQQBToBOgA6BDoAOv85Azr/Of45Ajr+ORMQATrUBIEQADqBEIAQ/zmAEH8Q/jl/EBkC0gT9Ofw5ITr8Ofs5HTr7Ofo5GTr6OXgQ/Tn5Ofg5/Dn4Ofc5+zn3OfY5+jn2OXcQ+Tn1OfQ5+Dn0OfM59znzOfI59jnyOXYQ9Tm8BBIQ9DkSEBEQ8zkREBAQ8jkQEAsCzwTxOfA55TnwOe854TnvOe453TnuOWMQ8TntOew58DnsOes57znrOeo57jnqOWIQ7TnpOeg57DnoOec56znnOeY56jnmOWEQ6TnQBG8Q6DlvEG4Q5zluEG0Q5jltECECzwTlOeQ52TnkOeM51TnjOeI50TniOXIQ5TnhOeA55DngOd854znfOd454jneOXEQ4TndOdw54DncOds53znbOdo53jnaOXAQ3TnNBGAQ3DlgEF8Q2zlfEF4Q2jleEAMCzwTZOdg5zTnYOdc5yTnXOdY5xTnWOTRO2TnVOdQ52DnUOdM51znTOdI51jnSOTNO1TnROdA51DnQOc850znPOc450jnOOTJO0TnRBHUQ0Dl1EHQQzzl0EHMQzjlzEDFOzwTNOcw58TnMOcs57TnLOco56TnKOWwQzTnJOcg5zDnIOcc5yznHOcY5yjnGOWsQyTnFOcQ5yDnEOcM5xznDOcI5xjnCOWoQxTkwTi9OxDkvTi5OwzkuTi1OwjktTixOywTBOcA5tTnAOb85sTm/Ob45rTm+OStOwTm9Obw5wDm8Obs5vzm7Obo5vjm6OSpOvTm5Obg5vDm4Obc5uzm3ObY5ujm2OSlOuTnMBF0QuDldEFwQtzlcEFsQtjlbEChOywS1ObQ5qTm0ObM5pTmzObI5oTmyOWYQtTmxObA5tDmwOa85szmvOa45sjmuOWUQsTmtOaw5sDmsOas5rzmrOao5rjmqOWQQrTknTiZOrDkmTiVOqzklTiROqjkkTiNOywSpOag5nTmoOac5mTmnOaY5lTmmOWAQqTmlOaQ5qDmkOaM5pzmjOaI5pjmiOV8QpTmhOaA5pDmgOZ85ozmfOZ45ojmeOV4QoTnOBGkQoDlpEGgQnzloEGcQnjlnEAMCywSdOZw5wTmcOZs5vTmbOZo5uTmaOVoQnTmZOZg5nDmYOZc5mzmXOZY5mjmWOVkQmTmVOZQ5mDmUOZM5lzmTOZI5ljmSOVgQlTnNBGMQlDljEGIQkzliEGEQkjlhECECxgSROZA5hTmQOY85gTmPOY45fTmOOVQQkTmNOYw5kDmMOYs5jzmLOYo5jjmKOVMQjTmJOYg5jDmIOYc5izmHOYY5ijmGOVIQiTnHBEUQiDlFEEQQhzlEEEMQhjlDECACxgSFOYQ5eTmEOYM5dTmDOYI5cTmCOU4QhTmBOYA5hDmAOX85gzl/OX45gjl+OU0QgTl9OXw5gDl8OXs5fzl7OXo5fjl6OUwQfTnKBFcQfDlXEFYQezlWEFUQejlVEAQCxgR5OXg5bTl4OXc5aTl3OXY5ZTl2OUgQeTl1OXQ5eDl0OXM5dzlzOXI5djlyOUcQdTlxOXA5dDlwOW85czlvOW45cjluOUYQcTnJBFEQcDlREFAQbzlQEE8QbjlPEAUCxgRtOWw5kTlsOWs5jTlrOWo5iTlqOUIQbTlpOWg5bDloOWc5azlnOWY5ajlmOUEQaTllOWQ5aDlkOWM5ZzljOWI5ZjliOUAQZTnIBEsQZDlLEEoQYzlKEEkQYjlJEB8CwwRhOWA5VTlgOV85UTlfOV45TTleOScQYTldOVw5YDlcOVs5XzlbOVo5XjlaOSYQXTlZOVg5XDlYOVc5WzlXOVY5WjlWOSUQWTnEBDkQWDk5EDgQVzk4EDcQVjk3EB0CwwRVOVQ5STlUOVM5RTlTOVI5QTlSOTwQVTlROVA5VDlQOU85UzlPOU45UjlOOTsQUTlNOUw5UDlMOUs5TzlLOUo5TjlKOToQTTnABCQQTDkkECMQSzkjECIQSjkiEAcCwwRJOUg5PTlIOUc5OTlHOUY5NTlGOSJOSTlFOUQ5SDlEOUM5RzlDOUI5RjlCOSFORTlBOUA5RDlAOT85Qzk/OT45Qjk+OSBOQTnFBD8QQDk/ED4QPzk+ED0QPjk9EB9OwwQ9OTw5YTk8OTs5XTk7OTo5WTk6OTYQPTk5OTg5PDk4OTc5Ozk3OTY5Ojk2OTUQOTk1OTQ5ODk0OTM5NzkzOTI5NjkyOTQQNTkeTh1ONDkdThxOMzkcThtOMjkbThpOvgQxOTA5JTkwOS85ITkvOS45HTkuOTAQMTktOSw5MDksOSs5LzkrOSo5LjkqOS8QLTkpOSg5LDkoOSc5KzknOSY5KjkmOS4QKTm/BCEQKDkhECAQJzkgEB8QJjkfEB4CvgQlOSQ5GTkkOSM5FTkjOSI5ETkiOSoQJTkhOSA5JDkgOR85IzkfOR45IjkeOSkQITkdORw5IDkcORs5HzkbORo5HjkaOSgQHTnCBDMQHDkzEDIQGzkyEDEQGjkxEAYCvgQZORg5DTkYORc5CTkXORY5BTkWOSQQGTkVORQ5GDkUORM5FzkTORI5FjkSOSMQFTkRORA5FDkQOQ85EzkPOQ45EjkOOSIQETnBBC0QEDktECwQDzksECsQDjkrEAcCvgQNOQw5MTkMOQs5LTkLOQo5KTkKOR4QDTkJOQg5DDkIOQc5CzkHOQY5CjkGOR0QCTkFOQQ5CDkEOQM5BzkDOQI5BjkCORwQBTnABCcQBDknECYQAzkmECUQAjklEB0CugQBOQA59TgAOf848Tj/OP447Tj+OBlOATn9OPw4ADn8OPs4/zj7OPo4/jj6OBhO/Tj5OPg4/Dj4OPc4+zj3OPY4+jj2OBdO+Ti7BA8Q+DgPEA4Q9zgOEA0Q9jgNEBZOugT1OPQ46Tj0OPM45TjzOPI44TjyOBgQ9TjxOPA49DjwOO848zjvOO448jjuOBcQ8TjtOOw48DjsOOs47zjrOOo47jjqOBYQ7TgVThRO7DgUThNO6zgTThJO6jgSThFOugTpOOg43TjoOOc42TjnOOY41TjmOBIQ6TjlOOQ46DjkOOM45zjjOOI45jjiOBEQ5TjhOOA45DjgON844zjfON444jjeOBAQ4Ti9BBsQ4DgbEBoQ3zgaEBkQ3jgZEAsCugTdONw4ATncONs4/TjbONo4+TjaOAwQ3TjZONg43DjYONc42zjXONY42jjWOAsQ2TjVONQ42DjUONM41zjTONI41jjSOAoQ1Ti8BBUQ1DgVEBQQ0zgUEBMQ0jgTEBkCtgTRONA4xTjQOM84wTjPOM44vTjOOOsP0TjNOMw40DjMOMs4zzjLOMo4zjjKOOoPzTjJOMg4zDjIOMc4yzjHOMY4yjjGOOkPyTi3BP0PyDj9D/wPxzj8D/sPxjj7DxsCtgTFOMQ4uTjEOMM4tTjDOMI4sTjCOAYQxTjBOMA4xDjAOL84wzi/OL44wji+OAUQwTi9OLw4wDi8OLs4vzi7OLo4vji6OAQQvTizBOgPvDjoD+cPuzjnD+YPujjmDwkCtgS5OLg4rTi4OLc4qTi3OLY4pTi2OAAQuTi1OLQ4uDi0OLM4tzizOLI4tjiyOP8PtTixOLA4tDiwOK84szivOK44sjiuOP4PsTi5BAkQsDgJEAgQrzgIEAcQrjgHEAoCtgStOKw40TisOKs4zTirOKo4yTiqOPoPrTipOKg4rDioOKc4qzinOKY4qjimOPkPqTilOKQ4qDikOKM4pzijOKI4pjiiOPgPpTi4BAMQpDgDEAIQozgCEAEQojgBEBoCsQShOKA4lTigOJ84kTifOJ44jTieOPQPoTidOJw4oDicOJs4nzibOJo4njiaOPMPnTiZOJg4nDiYOJc4mziXOJY4mjiWOPIPmTiyBOUPmDjlD+QPlzjkD+MPljjjDxwCsQSVOJQ4iTiUOJM4hTiTOJI4gTiSOO4PlTiROJA4lDiQOI84kziPOI44kjiOOO0PkTiNOIw4kDiMOIs4jziLOIo4jjiKOOwPjTi1BPcPjDj3D/YPizj2D/UPijj1DwgCsQSJOIg4fTiIOIc4eTiHOIY4dTiGOOgPiTiFOIQ4iDiEOIM4hziDOII4hjiCOOcPhTiBOIA4hDiAOH84gzh/OH44gjh+OOYPgTi0BPEPgDjxD/APfzjwD+8PfjjvDwkCsQR9OHw4oTh8OHs4nTh7OHo4mTh6OOIPfTh5OHg4fDh4OHc4ezh3OHY4ejh2OOEPeTh1OHQ4eDh0OHM4dzhzOHI4djhyOOAPdTizBOsPdDjrD+oPczjqD+kPcjjpDxsCrQRxOHA4ZThwOG84YThvOG44XThuOMEPcThtOGw4cDhsOGs4bzhrOGo4bjhqOMAPbThpOGg4bDhoOGc4azhnOGY4ajhmOL8PaTiuBNMPaDjTD9IPZzjSD9EPZjjRDyMCrQRlOGQ4WThkOGM4VThjOGI4UThiONwPZThhOGA4ZDhgOF84YzhfOF44YjheONsPYThdOFw4YDhcOFs4XzhbOFo4XjhaONoPXTiqBL4PXDi+D70PWzi9D7wPWji8DwECrQRZOFg4TThYOFc4SThXOFY4RThWONYPWThVOFQ4WDhUOFM4VzhTOFI4VjhSONUPVThROFA4VDhQOE84UzhPOE44UjhOONQPUTiwBN8PUDjfD94PTzjeD90PTjjdDwICrQRNOEw4cThMOEs4bThLOEo4aThKONAPTThJOEg4TDhIOEc4SzhHOEY4SjhGOM8PSThFOEQ4SDhEOEM4RzhDOEI4RjhCOM4PRTivBNkPRDjZD9gPQzjYD9cPQjjXDyICqARBOEA4NThAOD84MTg/OD44LTg+OMoPQTg9ODw4QDg8ODs4Pzg7ODo4Pjg6OMkPPTg5ODg4PDg4ODc4Ozg3ODY4Ojg2OMgPOTipBLsPODi7D7oPNzi6D7kPNji5DxgCqAQ1ODQ4KTg0ODM4JTgzODI4ITgyOMQPNTgxODA4NDgwOC84MzgvOC44MjguOMMPMTgtOCw4MDgsOCs4LzgrOCo4LjgqOMIPLTisBM0PLDjND8wPKzjMD8sPKjjLDwACqAQpOCg4HTgoOCc4GTgnOCY4FTgmOL4PKTglOCQ4KDgkOCM4JzgjOCI4JjgiOL0PJTghOCA4JDggOB84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UTZfNl42TTZeNgoPYTZdNlw2YDZcNls2XzZbNlo2XjZaNgkPXTZZNlg2XDZYNlc2WzZXNlY2WjZWNggPWTZ/BPsOWDb7DvoOVzb6DvkOVjb5DiUCfgRVNlQ2STZUNlM2RTZTNlI2QTZSNgQPVTZRNlA2VDZQNk82UzZPNk42UjZONgMPUTZNNkw2UDZMNks2TzZLNko2TjZKNgIPTTaCBA0PTDYNDwwPSzYMDwsPSjYLD9UBfgRJNkg2PTZINkc2OTZHNkY2NTZGNv4OSTZFNkQ2SDZENkM2RzZDNkI2RjZCNv0ORTZBNkA2RDZANj82QzY/Nj42QjY+NvwOQTaBBAcPQDYHDwYPPzYGDwUPPjYFD9ABfgQ9Njw2YTY8Njs2XTY7Njo2WTY6NvgOPTY5Njg2PDY4Njc2OzY3NjY2OjY2NvcOOTY1NjQ2ODY0NjM2NzYzNjI2NjYyNvYONTaABAEPNDYBDwAPMzYAD/8OMjb/DiQCfAQxNjA2JTYwNi82ITYvNi42HTYuNh0IMTYtNiw2MDYsNis2LzYrNio2LjYqNhwILTYpNig2LDYoNic2KzYnNiY2KjYmNhsIKTbsTetNKDbrTepNJzbqTelNJjbpTRIBfAQlNiQ2GTYkNiM2FTYjNiI2ETYiNvIOJTYhNiA2JDYgNh82IzYfNh42IjYeNvEOITYdNhw2IDYcNhs2HzYbNho2HjYaNvAOHTbHAhoIHDYaCBkIGzYZCBgIGjYYCDcBfAQZNhg2DTYYNhc2CTYXNhY2BTYWNtEOGTYVNhQ2GDYUNhM2FzYTNhI2FjYSNtAOFTYRNhA2FDYQNg82EzYPNg42EjYONs8OETZ9BPUOEDb1DvQODzb0DvMODjbzDs0BfAQNNgw2MTYMNgs2LTYLNgo2KTYKNuhNDTYJNgg2DDYINgc2CzYHNgY2CjYGNudNCTYFNgQ2CDYENgM2BzYDNgI2BjYCNuZNBTZzBM4OBDbODs0OAzbNDswOAjbMDspNegQBNgA29TUANv818TX/Nf417TX+NbkOATb9Nfw1ADb8Nfs1/zX7Nfo1/jX6NbgO/TX5Nfg1/DX4Nfc1+zX3NfY1+jX2NbcO+TXlTeRN+DXkTeNN9zXjTeJN9jXiTb9NegT1NfQ16TX0NfM15TXzNfI14TXyNewO9TXxNfA19DXwNe818zXvNe418jXuNesO8TXtNew18DXsNes17zXrNeo17jXqNeoO7TVuBLYO7DW2DrUO6zW1DrQO6jW0Ds4BegTpNeg13TXoNec12TXnNeY11TXmNRcI6TXlNeQ16DXkNeM15zXjNeI15jXiNRYI5TXhNeA15DXgNd814zXfNd414jXeNRUI4TV7BO8O4DXvDu4O3zXuDu0O3jXtDjQBegTdNdw1ATbcNds1/TXbNdo1+TXaNeFN3TXZNdg13DXYNdc12zXXNdY12jXWNeBN2TXVNdQ12DXUNdM11zXTNdI11jXSNd9N1TXFAhQI1DUUCBMI0zUTCBII0jUSCBhLdwTRNdA1xTXQNc81wTXPNc41vTXONdcO0TXNNcw10DXMNcs1zzXLNco1zjXKNdYOzTXJNcg1zDXINcc1yzXHNcY1yjXGNdUOyTXeTd1NyDXdTdxNxzXcTdtNxjXbTc9NdwTFNcQ1uTXENcM1tTXDNcI1sTXCNeYOxTXBNcA1xDXANb81wzW/Nb41wjW+NeUOwTW9Nbw1wDW8Nbs1vzW7Nbo1vjW6NeQOvTV1BNQOvDXUDtMOuzXTDtIOujXSDssBdwS5Nbg1rTW4Nbc1qTW3NbY1pTW2NeAOuTW1NbQ1uDW0NbM1tzWzNbI1tjWyNd8OtTWxNbA1tDWwNa81szWvNa41sjWuNd4OsTV5BOkOsDXpDugOrzXoDucOrjXnDuUBdwStNaw10TWsNas1zTWrNao1yTWqNdpNrTWpNag1rDWoNac1qzWnNaY1qjWmNdlNqTWlNaQ1qDWkNaM1pzWjNaI1pjWiNdhNpTV4BOMOpDXjDuIOozXiDuEOojXhDtdNdAShNaA1lTWgNZ81kTWfNZ41jTWeNcUOoTWdNZw1oDWcNZs1nzWbNZo1njWaNcQOnTWZNZg1nDWYNZc1mzWXNZY1mjWWNcMOmTXWTdVNmDXVTdRNlzXUTdNNljXTTa8BdASVNZQ1iTWUNZM1hTWTNZI1gTWSNdoOlTWRNZA1lDWQNY81kzWPNY41kjWONdkOkTWNNYw1kDWMNYs1jzWLNYo1jjWKNdgOjTVxBMIOjDXCDsEOizXBDsAOijXADsoBdASJNYg1fTWINYc1eTWHNYY1dTWGNdQOiTWFNYQ1iDWENYM1hzWDNYI1hjWCNdMOhTWBNYA1hDWANX81gzV/NX41gjV+NdIOgTV2BN0OgDXdDtwOfzXcDtsOfjXbDssBdAR9NXw1oTV8NXs1nTV7NXo1mTV6NdJNfTV5NXg1fDV4NXc1ezV3NXY1ejV2NdFNeTV1NXQ1eDV0NXM1dzVzNXI1djVyNdBNdTV1BNcOdDXXDtYOczXWDtUOcjXVDs9NcARxNXA1ZTVwNW81YTVvNW41XTVuNc4OcTVtNWw1cDVsNWs1bzVrNWo1bjVqNc0ObTVpNWg1bDVoNWc1azVnNWY1ajVmNcwOaTXOTc1NaDXNTcxNZzXMTctNZjXLTcpNcARlNWQ1WTVkNWM1VTVjNWI1UTViNcgOZTVhNWA1ZDVgNV81YzVfNV41YjVeNccOYTVdNVw1YDVcNVs1XzVbNVo1XjVaNcYOXTVzBNEOXDXRDtAOWzXQDs8OWjXPDs0BcARZNVg1TTVYNVc1STVXNVY1RTVWNcIOWTVVNVQ1WDVUNVM1VzVTNVI1VjVSNcEOVTVRNVA1VDVQNU81UzVPNU41UjVONcAOUTVyBMsOUDXLDsoOTzXKDskOTjXJDsoBcARNNUw1cTVMNUs1bTVLNUo1aTVKNclNTTVJNUg1TDVINUc1SzVHNUY1SjVGNchNSTVFNUQ1SDVENUM1RzVDNUI1RjVCNcdNRTVxBMUORDXFDsQOQzXEDsMOQjXDDq8BbQRBNUA1NTVANT81MTU/NT41LTU+NacOQTU9NTw1QDU8NTs1PzU7NTo1PjU6NaYOPTU5NTg1PDU4NTc1OzU3NTY1OjU2NaUOOTXGTcVNODXFTcRNNzXETcNNNjXDTbZNbQQ1NTQ1KTU0NTM1JTUzNTI1ITUyNbwONTUxNTA1NDUwNS81MzUvNS41MjUuNbsOMTUtNSw1MDUsNSs1LzUrNSo1LjUqNboOLTVqBKQOLDWkDqMOKzWjDqIOKjWiDskBbQQpNSg1HTUoNSc1GTUnNSY1FTUmNbYOKTUlNSQ1KDUkNSM1JzUjNSI1JjUiNbUOJTUhNSA1JDUgNR81IzUfNR41IjUeNbQOITVvBL8OIDW/Dr4OHzW+Dr0OHjW9Ds4BbQQdNRw1QTUcNRs1PTUbNRo1OTUaNcJNHTUZNRg1HDUYNRc1GzUXNRY1GjUWNcFNGTUVNRQ1GDUUNRM1FzUTNRI1FjUSNcBNFTVuBLkOFDW5DrgOEzW4DrcOEjW3Dr9NaQQRNRA1BTUQNQ81ATUPNQ41/TQONbAOETUNNQw1EDUMNQs1DzULNQo1DjUKNa8ODTUJNQg1DDUINQc1CzUHNQY1CjUGNa4OCTW+Tb1NCDW9TbxNBzW8TbtNBjW7TbpNaQQFNQQ1+TQENQM19TQDNQI18TQCNaoOBTUBNQA1BDUANf80AzX/NP40AjX+NKkOATX9NPw0ADX8NPs0/zT7NPo0/jT6NKgO/TRsBLMO/DSzDrIO+zSyDrEO+jSxDswBaQT5NPg07TT4NPc06TT3NPY05TT2NKQO+TT1NPQ0+DT0NPM09zTzNPI09jTyNKMO9TTxNPA09DTwNO808zTvNO408jTuNKIO8TRrBK0O8DStDqwO7zSsDqsO7jSrDskBaQTtNOw0ETXsNOs0DTXrNOo0CTXqNLlN7TTpNOg07DToNOc06zTnNOY06jTmNLhN6TTlNOQ06DTkNOM05zTjNOI05jTiNLdN5TRqBKcO5DSnDqYO4zSmDqUO4jSlDrZNaAThNOA01TTgNN800TTfNN40zTTeNKEO4TTdNNw04DTcNNs03zTbNNo03jTaNKAO3TTZNNg03DTYNNc02zTXNNY02jTWNJ8O2TQxBMAN2DTADb8N1zS/Db4N1jS+DcgBaATVNNQ0yTTUNNM0xTTTNNI0wTTSNFMO1TTRNNA01DTQNM800zTPNM400jTONFIO0TTNNMw00DTMNMs0zzTLNMo0zjTKNFEOzTRnBJ4OzDSeDp0OyzSdDpwOyjScDsIBaATJNMg0vTTINMc0uTTHNMY0tTTGNMMHyTTFNMQ0yDTENMM0xzTDNMI0xjTCNMIHxTTBNMA0xDTANL80wzS/NL40wjS+NMEHwTRUBFAOwDRQDk8OvzRPDk4OvjRODisBaAS9NLw04TS8NLs03TS7NLo02TS6NMMNvTS5NLg0vDS4NLc0uzS3NLY0ujS2NMINuTS1NLQ0uDS0NLM0tzSzNLI0tjSyNMENtTSxAsAHtDTAB78HszS/B74HsjS+BzMBZgSxNLA0pTSwNK80oTSvNK40nTSuNLVNsTStNKw0sDSsNKs0rzSrNKo0rjSqNLRNrTSpNKg0rDSoNKc0qzSnNKY0qjSmNLNNqTQIBAwNqDQMDQsNpzQLDQoNpjQKDRJNZgSlNKQ0mTSkNKM0lTSjNKI0kTSiNEcOpTShNKA0pDSgNJ80ozSfNJ40ojSeNEYOoTSdNJw0oDScNJs0nzSbNJo0njSaNEUOnTSyTbFNnDSxTbBNmzSwTa9NmjSvTZxNZgSZNJg0jTSYNJc0iTSXNJY0hTSWNJ4OmTSVNJQ0mDSUNJM0lzSTNJI0ljSSNJ0OlTSRNJA0lDSQNI80kzSPNI40kjSONJwOkTRRBEQOkDREDkMOjzRDDkIOjjRCDsIBZgSNNIw0sTSMNIs0rTSLNIo0qTSKNA8NjTSJNIg0jDSINIc0izSHNIY0ijSGNA4NiTSFNIQ0iDSENIM0hzSDNII0hjSCNA0NhTRnBKEOhDShDqAOgzSgDp8OgjSfDsgBYwSBNIA0dTSANH80cTR/NH40bTR+NJgOgTR9NHw0gDR8NHs0fzR7NHo0fjR6NJcOfTR5NHg0fDR4NHc0ezR3NHY0ejR2NJYOeTQBBOgMeDToDOcMdzTnDOYMdjTmDMYBYwR1NHQ0aTR0NHM0ZTRzNHI0YTRyNDsOdTRxNHA0dDRwNG80czRvNG40cjRuNDoOcTRtNGw0cDRsNGs0bzRrNGo0bjRqNDkObTRlBJsObDSbDpoOazSaDpkOajSZDotNYwRpNGg0XTRoNGc0WTRnNGY0VTRmNJIOaTRlNGQ0aDRkNGM0ZzRjNGI0ZjRiNJEOZTRhNGA0ZDRgNF80YzRfNF40YjReNJAOYTROBDgOYDQ4DjcOXzQ3DjYOXjQ2DsEBYwRdNFw0gTRcNFs0fTRbNFo0eTRaNOsMXTRZNFg0XDRYNFc0WzRXNFY0WjRWNOoMWTRVNFQ0WDRUNFM0VzRTNFI0VjRSNOkMVTRkBJUOVDSVDpQOUzSUDpMOUjSTDscBXgRRNFA0RTRQNE80QTRPNE40PTRONIwOUTRNNEw0UDRMNEs0TzRLNEo0TjRKNIsOTTRJNEg0TDRINEc0SzRHNEY0SjRGNIoOSTRfBH0OSDR9DnwORzR8DnsORjR7Dv8BXgRFNEQ0OTRENEM0NTRDNEI0MTRCNIYORTRBNEA0RDRAND80QzQ/ND40QjQ+NIUOQTQ9NDw0QDQ8NDs0PzQ7NDo0PjQ6NIQOPTRiBI8OPDSPDo4OOzSODo0OOjSNDvsBXgQ5NDg0LTQ4NDc0KTQ3NDY0JTQ2NIAOOTQ1NDQ0ODQ0NDM0NzQzNDI0NjQyNH8ONTQxNDA0NDQwNC80MzQvNC40MjQuNH4OMTRhBIkOMDSJDogOLzSIDocOLjSHDv0BXgQtNCw0UTQsNCs0TTQrNCo0STQqNHoOLTQpNCg0LDQoNCc0KzQnNCY0KjQmNHkOKTQlNCQ0KDQkNCM0JzQjNCI0JjQiNHgOJTRgBIMOJDSDDoIOIzSCDoEOIjSBDv4BXAQhNCA0FTQgNB80ETQfNB40DTQeNGsOITQdNBw0IDQcNBs0HzQbNBo0HjQaNGoOHTQZNBg0HDQYNBc0GzQXNBY0GjQWNGkOGTRIBCAOGDQgDh8OFzQfDh4OFjQeDsUBXAQVNBQ0CTQUNBM0BTQTNBI0ATQSNHQOFTQRNBA0FDQQNA80EzQPNA40EjQONHMOETQNNAw0EDQMNAs0DzQLNAo0DjQKNHIODTRaBGgODDRoDmcOCzRnDmYOCjRmDrwBXAQJNAg0/TMINAc0+TMHNAY09TMGNJMHCTQFNAQ0CDQENAM0BzQDNAI0BjQCNJIHBTQBNAA0BDQANP8zAzT/M/4zAjT+M5EHATRdBHcOADR3DnYO/zN2DnUO/jN1DgwBXAT9M/wzITT8M/szHTT7M/ozGTT6MyMO/TP5M/gz/DP4M/cz+zP3M/Yz+jP2MyIO+TP1M/Qz+DP0M/Mz9zPzM/Iz9jPyMyEO9TOlApAH9DOQB48H8zOPB44H8jOOBy8BWQTxM/Az5TPwM+8z4TPvM+4z3TPuM65N8TPtM+wz8DPsM+sz7zPrM+oz7jPqM61N7TPpM+gz7DPoM+cz6zPnM+Yz6jPmM6xN6TNGBBoO6DMaDhkO5zMZDhgO5jMYDm5NWQTlM+Qz2TPkM+Mz1TPjM+Iz0TPiM24O5TPhM+Az5DPgM98z4zPfM94z4jPeM20O4TPdM9wz4DPcM9sz3zPbM9oz3jPaM2wO3TOrTapN3DOqTalN2zOpTahN2jOoTadNWQTZM9gzzTPYM9czyTPXM9YzxTPWM2gO2TPVM9Qz2DPUM9Mz1zPTM9Iz1jPSM2cO1TPRM9Az1DPQM88z0zPPM84z0jPOM2YO0TNbBHEO0DNxDnAOzzNwDm8OzjNvDrwBWQTNM8wz8TPMM8sz7TPLM8oz6TPKMx0OzTPJM8gzzDPIM8czyzPHM8YzyjPGMxwOyTPFM8QzyDPEM8MzxzPDM8IzxjPCMxsOxTNaBGsOxDNrDmoOwzNqDmkOwjNpDsUBVQTBM8AztTPAM78zsTO/M74zrTO+M2IOwTO9M7wzwDO8M7szvzO7M7ozvjO6M2EOvTO5M7gzvDO4M7czuzO3M7YzujO2M2AOuTNCBAgOuDMIDgcOtzMHDgYOtjMGDsMBVQS1M7QzqTO0M7MzpTOzM7IzoTOyM1wOtTOxM7AztDOwM68zszOvM64zsjOuM1sOsTOtM6wzsDOsM6szrzOrM6ozrjOqM1oOrTNYBGUOrDNlDmQOqzNkDmMOqjNjDrIBVQSpM6gznTOoM6czmTOnM6YzlTOmM1YOqTOlM6QzqDOkM6MzpzOjM6IzpjOiM1UOpTOhM6AzpDOgM58zozOfM54zojOeM1QOoTNXBF8OoDNfDl4OnzNeDl0OnjNdDq0BVQSdM5wzwTOcM5szvTObM5ozuTOaMwsOnTOZM5gznDOYM5czmzOXM5YzmjOWMwoOmTOVM5QzmDOUM5MzlzOTM5IzljOSMwkOlTNWBFkOlDNZDlgOkzNYDlcOkjNXDsQBUwSRM5AzhTOQM48zgTOPM44zfTOOM00OkTONM4wzkDOMM4szjzOLM4ozjjOKM0wOjTOJM4gzjDOIM4czizOHM4YzijOGM0sOiTNUBFMOiDNTDlIOhzNSDlEOhjNRDsIBUwSFM4QzeTOEM4MzdTODM4IzcTOCM6ZNhTOBM4AzhDOAM38zgzN/M34zgjN+M6VNgTN9M3wzgDN8M3szfzN7M3ozfjN6M6RNfTNSBEoOfDNKDkkOezNJDkgOejNIDo9NUwR5M3gzbTN4M3czaTN3M3YzZTN2M2MHeTN1M3QzeDN0M3MzdzNzM3IzdjNyM2IHdTNxM3AzdDNwM28zczNvM24zcjNuM2EHcTOjTaJNcDOiTaFNbzOhTaBNbjOgTRMBUwRtM2wzkTNsM2szjTNrM2oziTNqM1AObTNpM2gzbDNoM2czazNnM2YzajNmM08OaTNlM2QzaDNkM2MzZzNjM2IzZjNiM04OZTOaAmAHZDNgB18HYzNfB14HYjNeBysBUARhM2AzVTNgM18zUTNfM14zTTNeM59NYTNdM1wzYDNcM1szXzNbM1ozXjNaM55NXTNZM1gzXDNYM1czWzNXM1YzWjNWM51NWTNRBEcOWDNHDkYOVzNGDkUOVjNFDpxNUARVM1QzSTNUM1MzRTNTM1IzQTNSM5tNVTNRM1AzVDNQM08zUzNPM04zUjNOM5pNUTNNM0wzUDNMM0szTzNLM0ozTjNKM5lNTTOYTZdNTDOXTZZNSzOWTZVNSjOVTZRNUARJM0gzPTNIM0czOTNHM0YzNTNGM0oOSTNFM0QzSDNEM0MzRzNDM0IzRjNCM0kORTNBM0AzRDNAMz8zQzM/Mz4zQjM+M0gOQTOTTZJNQDOSTZFNPzORTZBNPjOQTY9NUAQ9MzwzYTM8MzszXTM7MzozWTM6M0QOPTM5MzgzPDM4MzczOzM3MzYzOjM2M0MOOTM1MzQzODM0MzMzNzMzMzIzNjMyM0IONTNSBE0ONDNNDkwOMzNMDksOMjNLDsIBTQQxMzAzJTMwMy8zITMvMy4zHTMuM45NMTMtMywzMDMsMyszLzMrMyozLjMqM41NLTMpMygzLDMoMyczKzMnMyYzKjMmM4xNKTNOBDsOKDM7DjoOJzM6DjkOJjM5DotNTQQlMyQzGTMkMyMzFTMjMyIzETMiM4pNJTMhMyAzJDMgMx8zIzMfMx4zIjMeM4lNITMdMxwzIDMcMxszHzMbMxozHjMaM4hNHTOHTYZNHDOGTYVNGzOFTYRNGjOETYNNTQQZMxgzDTMYMxczCTMXMxYzBTMWMz4OGTMVMxQzGDMUMxMzFzMTMxIzFjMSMz0OFTMRMxAzFDMQMw8zEzMPMw4zEjMOMzwOETOCTYFNEDOBTYBNDzOATX9NDjN/TbABTQQNMwwzMTMMMwszLTMLMwozKTMKMzgODTMJMwgzDDMIMwczCzMHMwYzCjMGMzcOCTMFMwQzCDMEMwMzBzMDMwIzBjMCMzYOBTNPBEEOBDNBDkAOAzNADj8OAjM/DsEBSQQBMwAz9TIAM/8y8TL/Mv4y7TL+Mn5NATP9MvwyADP8Mvsy/zL7Mvoy/jL6Mn1N/TL5Mvgy/DL4Mvcy+zL3MvYy+jL2MnxN+TJKBCkO+DIpDigO9zIoDicO9jInDntNSQT1MvQy6TL0MvMy5TLzMvIy4TLyMjIO9TLxMvAy9DLwMu8y8zLvMu4y8jLuMjEO8TLtMuwy8DLsMusy7zLrMuoy7jLqMjAO7TJ6TXlN7DJ5TXhN6zJ4TXdN6jJ3TXZNSQTpMugy3TLoMucy2TLnMuYy1TLmMiwO6TLlMuQy6DLkMuMy5zLjMuIy5jLiMisO5TLhMuAy5DLgMt8y4zLfMt4y4jLeMioO4TJMBDUO4DI1DjQO3zI0DjMO3jIzDsABSQTdMtwyATPcMtsy/TLbMtoy+TLaMiYO3TLZMtgy3DLYMtcy2zLXMtYy2jLWMiUO2TLVMtQy2DLUMtMy1zLTMtIy1jLSMiQO1TJLBC8O1DIvDi4O0zIuDi0O0jItDugBRwTRMtAyxTLQMs8ywTLPMs4yvTLOMhcO0TLNMswy0DLMMssyzzLLMsoyzjLKMhYOzTLJMsgyzDLIMscyyzLHMsYyyjLGMhUOyTI/BPwNyDL8DfsNxzL7DfoNxjL6Db8BRwTFMsQyuTLEMsMytTLDMsIysTLCMiAOxTLBMsAyxDLAMr8ywzK/Mr4ywjK+Mh8OwTK9MrwywDK8MrsyvzK7MroyvjK6Mh4OvTJFBBQOvDIUDhMOuzITDhIOujISDsUBRwS5MrgyrTK4MrcyqTK3MrYypTK2MjMHuTK1MrQyuDK0MrMytzKzMrIytjKyMjIHtTKxMrAytDKwMq8yszKvMq4ysjKuMjEHsTJIBCMOsDIjDiIOrzIiDiEOrjIhDi8BRwStMqwy0TKsMqsyzTKrMqoyyTKqMv8NrTKpMqgyrDKoMqcyqzKnMqYyqjKmMv4NqTKlMqQyqDKkMqMypzKjMqIypjKiMv0NpTKOAjAHpDIwBy8HozIvBy4HojIuBycBRAShMqAylTKgMp8ykTKfMp4yjTKeMnVNoTKdMpwyoDKcMpsynzKbMpoynjKaMnRNnTKZMpgynDKYMpcymzKXMpYymjKWMnNNmTL9A9YMmDLWDNUMlzLVDNQMljLUDL4BRASVMpQyiTKUMpMyhTKTMpIygTKSMhoOlTKRMpAylDKQMo8ykzKPMo4ykjKOMhkOkTKNMowykDKMMosyjzKLMooyjjKKMhgOjTJyTXFNjDJxTXBNizJwTW9NijJvTW5NRASJMogyfTKIMocyeTKHMoYydTKGMhQOiTKFMoQyiDKEMoMyhzKDMoIyhjKCMhMOhTKBMoAyhDKAMn8ygzJ/Mn4ygjJ+MhIOgTJGBB0OgDIdDhwOfzIcDhsOfjIbDsUBRAR9MnwyoTJ8MnsynTJ7MnoymTJ6MtkMfTJ5MngyfDJ4MncyezJ3MnYyejJ2MtgMeTJ1MnQyeDJ0MnMydzJzMnIydjJyMtcMdTJFBBcOdDIXDhYOczIWDhUOcjIVDr8BQARxMnAyZTJwMm8yYTJvMm4yXTJuMg4OcTJtMmwycDJsMmsybzJrMmoybjJqMg0ObTJpMmgybDJoMmcyazJnMmYyajJmMgwOaTIPBCoNaDIqDSkNZzIpDSgNZjIoDb0BQARlMmQyWTJkMmMyVTJjMmIyUTJiMggOZTJhMmAyZDJgMl8yYzJfMl4yYjJeMgcOYTJdMlwyYDJcMlsyXzJbMloyXjJaMgYOXTJDBBEOXDIRDhAOWzIQDg8OWjIPDsMBQARZMlgyTTJYMlcySTJXMlYyRTJWMgIOWTJVMlQyWDJUMlMyVzJTMlIyVjJSMgEOVTJRMlAyVDJQMk8yUzJPMk4yUjJOMgAOUTJCBAsOUDILDgoOTzIKDgkOTjIJDsQBQARNMkwycTJMMksybTJLMkoyaTJKMi0NTTJJMkgyTDJIMkcySzJHMkYySjJGMiwNSTJFMkQySDJEMkMyRzJDMkIyRjJCMisNRTJBBAUORDIFDgQOQzIEDgMOQjIDDiBNPgRBMkAyNTJAMj8yMTI/Mj4yLTI+MgMHQTI9MjwyQDI8MjsyPzI7MjoyPjI6MgIHPTI5MjgyPDI4MjcyOzI3MjYyOjI2MgEHOTI/BP8NODL/Df4NNzL+Df0NNjL9DScBPgQ1MjQyKTI0MjMyJTIzMjIyITIyMm1NNTIxMjAyNDIwMi8yMzIvMi4yMjIuMmxNMTItMiwyMDIsMisyLzIrMioyLjIqMmtNLTKDAgAHLDIAB/8GKzL/Bv4GKjL+Bp9KPgQpMigyHTIoMicyGTInMiYyFTImMtMMKTIlMiQyKDIkMiMyJzIjMiIyJjIiMtIMJTIhMiAyJDIgMh8yIzIfMh4yIjIeMtEMITJqTWlNIDJpTWhNHzJoTWdNHjJnTbUBPgQdMhwyQTIcMhsyPTIbMhoyOTIaMvwNHTIZMhgyHDIYMhcyGzIXMhYyGjIWMvsNGTIVMhQyGDIUMhMyFzITMhIyFjISMvoNFTL8A9AMFDLQDM8MEzLPDM4MEjLODL8BOwQRMhAyBTIQMg8yATIPMg4y/TEOMmZNETINMgwyEDIMMgsyDzILMgoyDjIKMmVNDTIJMggyDDIIMgcyCzIHMgYyCjIGMmRNCTJjTWJNCDJiTWFNBzJhTWBNBjJgTbsBOwQFMgQy+TEEMgMy9TEDMgIy8TECMvYNBTIBMgAyBDIAMv8xAzL/Mf4xAjL+MfUNATL9MfwxADL8Mfsx/zH7Mfox/jH6MfQN/TFfTV5N/DFeTV1N+zFdTVxN+jFcTVtNOwT5Mfgx7TH4Mfcx6TH3MfYx5TH2MfAN+TH1MfQx+DH0MfMx9zHzMfIx9jHyMe8N9THxMfAx9DHwMe8x8zHvMe4x8jHuMe4N8TE9BPkN8DH5DfgN7zH4DfcN7jH3DdkBOwTtMewxETLsMesxDTLrMeoxCTLqMVpN7THpMegx7DHoMecx6zHnMeYx6jHmMVlN6THlMeQx6DHkMeMx5zHjMeIx5jHiMVhN5TE8BPMN5DHzDfIN4zHyDfEN4jHxDVdNNwThMeAx1THgMd8x0THfMd4xzTHeMeoN4THdMdwx4DHcMdsx3zHbMdox3jHaMekN3THZMdgx3DHYMdcx2zHXMdYx2jHWMegN2TE4BOEN2DHhDeAN1zHgDd8N1jHfDewBNwTVMdQxyTHUMdMxxTHTMdIxwTHSMeQN1THRMdAx1DHQMc8x0zHPMc4x0jHOMeMN0THNMcwx0DHMMcsxzzHLMcoxzjHKMeINzTE6BO0NzDHtDewNyzHsDesNyjHrDeABNwTJMcgxvTHIMccxuTHHMcYxtTHGMYcNyTHFMcQxyDHEMcMxxzHDMcIxxjHCMYYNxTHBMcAxxDHAMb8xwzG/Mb4xwjG+MYUNwTE5BOcNwDHnDeYNvzHmDeUNvjHlDUtNNwS9Mbwx4TG8Mbsx3TG7Mbox2TG6Md4NvTG5MbgxvDG4MbcxuzG3MbYxujG2Md0NuTG1MbQxuDG0MbMxtzGzMbIxtjGyMdwNtTEjBIQNtDGEDYMNszGDDYINsjGCDesBMwSxMbAxpTGwMa8xoTGvMa4xnTGuMdgNsTGtMawxsDGsMasxrzGrMaoxrjGqMdcNrTGpMagxrDGoMacxqzGnMaYxqjGmMdYNqTFWTVVNqDFVTVRNpzFUTVNNpjFTTVJNMwSlMaQxmTGkMaMxlTGjMaIxkTGiMdINpTGhMaAxpDGgMZ8xozGfMZ4xojGeMdENoTGdMZwxoDGcMZsxnzGbMZoxnjGaMdANnTE2BNsNnDHbDdoNmzHaDdkNmjHZDdwBMwSZMZgxjTGYMZcxiTGXMZYxhTGWMcwNmTGVMZQxmDGUMZMxlzGTMZIxljGSMcsNlTGRMZAxlDGQMY8xkzGPMY4xkjGOMcoNkTE1BNUNkDHVDdQNjzHUDdMNjjHTDd4BMwSNMYwxsTGMMYsxrTGLMYoxqTGKMVFN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IgSpMKgwnTCoMKcwmTCnMKYwlTCmMIoNqTClMKQwqDCkMKMwpzCjMKIwpjCiMIkNpTChMKAwpDCgMJ8wozCfMJ4wojCeMIgNoTAlBJMNoDCTDZINnzCSDZENnjCRDeMBIgSdMJwwwTCcMJswvTCbMJowuTCaMIQNnTCZMJgwnDCYMJcwmzCXMJYwmjCWMIMNmTCVMJQwmDCUMJMwlzCTMJIwljCSMIINlTAkBI0NlDCNDYwNkzCMDYsNkjCLDesBHgSRMJAwhTCQMI8wgTCPMI4wfTCOMH4NkTCNMIwwkDCMMIswjzCLMIowjjCKMH0NjTCJMIgwjDCIMIcwizCHMIYwijCGMHwNiTBFTURNiDBETUNNhzBDTUJNhjBCTbEBHgSFMIQweTCEMIMwdTCDMIIwcTCCMHgNhTCBMIAwhDCAMH8wgzB/MH4wgjB+MHcNgTB9MHwwgDB8MHswfzB7MHowfjB6MHYNfTAhBIENfDCBDYANezCADX8NejB/DeYBHgR5MHgwbTB4MHcwaTB3MHYwZTB2MHINeTB1MHQweDB0MHMwdzBzMHIwdjByMHENdTBxMHAwdDBwMG8wczBvMG4wcjBuMHANcTAgBHsNcDB7DXoNbzB6DXkNbjB5DecBHgRtMGwwkTBsMGswjTBrMGowiTBqMEFNbTBpMGgwbDBoMGcwazBnMGYwajBmMEBNaTBlMGQwaDBkMGMwZzBjMGIwZjBiMD9NZTAfBHUNZDB1DXQNYzB0DXMNYjBzDT5NGgRhMGAwVTBgMF8wUTBfMF4wTTBeMGwNYTBdMFwwYDBcMFswXzBbMFowXjBaMGsNXTBZMFgwXDBYMFcwWzBXMFYwWjBWMGoNWTA9TTxNWDA8TTtNVzA7TTpNVjA6TTlNGgRVMFQwSTBUMFMwRTBTMFIwQTBSMGYNVTBRMFAwVDBQME8wUzBPME4wUjBOMGUNUTBNMEwwUDBMMEswTzBLMEowTjBKMGQNTTAdBG8NTDBvDW4NSzBuDW0NSjBtDekBGgRJMEgwPTBIMEcwOTBHMEYwNTBGMGANSTBFMEQwSDBEMEMwRzBDMEIwRjBCMF8NRTBBMEAwRDBAMD8wQzA/MD4wQjA+MF4NQTAcBGkNQDBpDWgNPzBoDWcNPjBnDeoBGgQ9MDwwYTA8MDswXTA7MDowWTA6MDhNPTA5MDgwPDA4MDcw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tyyzLLIstiyyLGkMtSyxLLAstCywLK8ssyyvLK4ssiyuLGgMsSzgA3MMsCxzDHIMryxyDHEMrixxDF4B3gOtLKws0SysLKsszSyrLKosySyqLPFMrSypLKgsrCyoLKcsqyynLKYsqiymLPBMqSylLKQsqCykLKMspyyjLKIspiyiLO9MpSzfA20MpCxtDGwMoyxsDGsMoixrDDkB2wOhLKAslSygLJ8skSyfLJ4sjSyeLKEIoSydLJwsoCycLJssnyybLJosniyaLKAInSyZLJgsnCyYLJcsmyyXLJYsmiyWLJ8ImSzaA1gMmCxYDFcMlyxXDFYMlixWDKEB2wOVLJQsiSyULJMshSyTLJIsgSySLGQMlSyRLJAslCyQLI8skyyPLI4skiyOLGMMkSyNLIwskCyMLIssjyyLLIosjiyKLGIMjSzjAp4IjCyeCJ0IiyydCJwIiiycCKIB2wOJLIgsfSyILIcseSyHLIYsdSyGLF4MiSyFLIQsiCyELIMshyyDLIIshiyCLF0MhSyBLIAshCyALH8sgyx/LH4sgix+LFwMgSzdA2cMgCxnDGYMfyxmDGUMfixlDDkB2wN9LHwsoSx8LHssnSx7LHosmSx6LFsMfSx5LHgsfCx4LHcseyx3LHYseix2LFoMeSx1LHQseCx0LHMsdyxzLHIsdixyLFkMdSzcA2EMdCxhDGAMcyxgDF8McixfDDcB2QNxLHAsZSxwLG8sYSxvLG4sXSxuLK0IcSxtLGwscCxsLGssbyxrLGosbixqLKwIbSxpLGgsbCxoLGcsayxnLGYsaixmLKsIaSzuTO1MaCztTOxMZyzsTOtMZizrTDVL2QNlLGQsWSxkLGMsVSxjLGIsUSxiLFgMZSxhLGAsZCxgLF8sYyxfLF4sYixeLFcMYSxdLFwsYCxcLFssXyxbLFosXixaLFYMXSzmAqoIXCyqCKkIWyypCKgIWiyoCKEB2QNZLFgsTSxYLFcsSSxXLFYsRSxWLCMIWSxVLFQsWCxULFMsVyxTLFIsVixSLCIIVSxRLFAsVCxQLE8sUyxPLE4sUixOLCEIUSzaA1sMUCxbDFoMTyxaDFkMTixZDDcB2QNNLEwscSxMLEssbSxLLEosaSxKLOpMTSxJLEgsTCxILEcsSyxHLEYsSixGLOlMSSxFLEQsSCxELEMsRyxDLEIsRixCLOhMRSzIAiAIRCwgCB8IQywfCB4IQiweCDwB1wNBLEAsNSxALD8sMSw/LD4sLSw+LGUIQSw9LDwsQCw8LDssPyw7LDosPiw6LGQIPSw5LDgsPCw4LDcsOyw3LDYsOiw2LGMIOSzWA0wMOCxMDEsMNyxLDEoMNixKDJ8B1wM1LDQsKSw0LDMsJSwzLDIsISwyLFIMNSwxLDAsNCwwLC8sMywvLC4sMiwuLFEMMSwtLCwsMCwsLCssLywrLCosLiwqLFAMLSzWAmIILCxiCGEIKyxhCGAIKixgCKAB1wMpLCgsHSwoLCcsGSwnLCYsFSwmLO0HKSwlLCQsKCwkLCMsJywjLCIsJiwiLOwHJSwhLCAsJCwgLB8sIywfLB4sIiweLOsHISzYA1UMICxVDFQMHyxUDFMMHixTDDwB1wMdLBwsQSwcLBssPSwbLBosOSwaLE8MHSwZLBgsHCwYLBcsGywXLBYsGiwWLE4MGSwVLBQsGCwULBMsFywTLBIsFiwSLE0MFSy7AuoHFCzqB+kHEyzpB+gHEizoBzYB1QMRLBAsBSwQLA8sASwPLA4s/SsOLHcIESwNLAwsECwMLAssDywLLAosDiwKLHYIDSwJLAgsDCwILAcsCywHLAYsCiwGLHUICSznTOZMCCzmTOVMByzlTORMBizkTJ4B1QMFLAQs+SsELAMs9SsDLAIs8SsCLEwMBSwBLAAsBCwALP8rAyz/K/4rAiz+K0sMASz9K/wrACz8K/sr/yv7K/or/iv6K0oM/SvaAnQI/Ct0CHMI+ytzCHII+ityCJ8B1QP5K/gr7Sv4K/cr6Sv3K/Yr5Sv2K/kH+Sv1K/Qr+Cv0K/Mr9yvzK/Ir9ivyK/gH9SvxK/Ar9CvwK+8r8yvvK+4r8ivuK/cH8SvWA08M8CtPDE4M7ytODE0M7itNDDYB1QPtK+wrESzsK+srDSzrK+orCSzqK+NM7SvpK+gr7CvoK+cr6yvnK+Yr6ivmK+JM6SvlK+Qr6CvkK+Mr5yvjK+Ir5iviK+FM5Su+AvYH5Cv2B/UH4yv1B/QH4iv0BzgB0wPhK+Ar1SvgK98r0SvfK94rzSveK4kI4SvdK9wr4CvcK9sr3yvbK9or3ivaK4gI3SvZK9gr3CvYK9cr2yvXK9Yr2ivWK4cI2SvSA0AM2CtADD8M1ys/DD4M1is+DJ0B0wPVK9QrySvUK9MrxSvTK9IrwSvSK0YM1SvRK9Ar1CvQK88r0yvPK84r0ivOK0UM0SvNK8wr0CvMK8srzyvLK8orzivKK0QMzSveAoYIzCuGCIUIyyuFCIQIyiuECCtL0wPJK8grvSvIK8cruSvHK8YrtSvGKwUIySvFK8QryCvEK8MrxyvDK8IrxivCKwQIxSvBK8ArxCvAK78rwyu/K74rwiu+KwMIwSvUA0kMwCtJDEgMvytIDEcMvitHDDgB0wO9K7wr4Su8K7sr3Su7K7or2Su6K0MMvSu5K7grvCu4K7cruyu3K7Yruiu2K0IMuSu1K7QruCu0K7MrtyuzK7IrtiuyK0EMtSvBAgIItCsCCAEIsysBCAAIsisACFQB0QOxK7ArpSuwK68roSuvK64rnSuuK7sJsSutK6wrsCusK6srryurK6orriuqK7oJrSupK6grrCuoK6crqyunK6YrqiumK7kJqSvgTN9MqCvfTN5MpyveTN1MpivdTH1L0QOlK6QrmSukK6MrlSujK6IrkSuiK0AMpSuhK6ArpCugK58royufK54roiueKz8MoSudK5wroCucK5srnyubK5orniuaKz4MnSsiA7gJnCu4CbcJmyu3CbYJmiu2CZ0B0QOZK5grjSuYK5criSuXK5YrhSuWK8EJmSuVK5QrmCuUK5MrlyuTK5IrliuSK8AJlSuRK5ArlCuQK48rkyuPK44rkiuOK78JkSvSA0MMkCtDDEIMjytCDEEMjitBDFQB0QONK4wrsSuMK4srrSuLK4orqSuKK9xMjSuJK4grjCuIK4criyuHK4YriiuGK9tMiSuFK4QriCuEK4MrhyuDK4IrhiuCK9pMhSskA74JhCu+Cb0Jgyu9CbwJgiu8CToBzgOBK4ArdSuAK38rcSt/K34rbSt+KzsIgSt9K3wrgCt8K3srfyt7K3orfit6KzoIfSt5K3grfCt4K3creyt3K3Yreit2KzkIeSvPAzcMeCs3DDYMdys2DDUMdis1DJsBzgN1K3QraSt0K3MrZStzK3IrYStyKzoMdStxK3ArdCtwK28rcytvK24rcituKzkMcSttK2wrcCtsK2srbytrK2orbitqKzgMbSvNAjgIbCs4CDcIays3CDYIais2CJwBzgNpK2grXStoK2crWStnK2YrVStmK88HaStlK2QraCtkK2MrZytjK2IrZitiK84HZSthK2ArZCtgK18rYytfK14rYiteK80HYSvQAz0MYCs9DDwMXys8DDsMXis7DDoBzgNdK1wrgStcK1srfStbK1oreStaKzQMXStZK1grXCtYK1crWytXK1YrWitWKzMMWStVK1QrWCtUK1MrVytTK1IrVitSKzIMVSu0AswHVCvMB8sHUyvLB8oHUivKBzUBzQNRK1ArRStQK08rQStPK04rPStOK/sIUStNK0wrUCtMK0srTytLK0orTitKK/oITStJK0grTCtIK0crSytHK0YrSitGK/kISSvMAy4MSCsuDC0MRystDCwMRissDJoBzQNFK0QrOStEK0MrNStDK0IrMStCK9lMRStBK0ArRCtAKz8rQys/Kz4rQis+K9hMQSs9KzwrQCs8KzsrPys7KzorPis6K9dMPSv3AvgIPCv4CPcIOyv3CPYIOiv2CI8BzQM5KzgrLSs4KzcrKSs3KzYrJSs2Ky8IOSs1KzQrOCs0KzMrNyszKzIrNisyKy4INSsxKzArNCswKy8rMysvKy4rMisuKy0IMSvWTNVMMCvVTNRMLyvUTNNMLivTTEQBzQMtKywrUSssKysrTSsrKyorSSsqKzEMLSspKygrLCsoKycrKysnKyYrKismKzAMKSslKyQrKCskKyMrJysjKyIrJisiKy8MJSvLAiwIJCssCCsIIysrCCoIIisqCD8BywMhKyArFSsgKx8rESsfKx4rDSseKw0JISsdKxwrICscKxsrHysbKxorHisaKwwJHSsZKxgrHCsYKxcrGysXKxYrGisWKwsJGSvSTNFMGCvRTNBMFyvQTM9MFivPTJkBywMVKxQrCSsUKxMrBSsTKxIrASsSKy4MFSsRKxArFCsQKw8rEysPKw4rEisOKy0MESsNKwwrECsMKwsrDysLKworDisKKywMDSv7AgoJDCsKCQkJCysJCQgJCisICZoBywMJKwgr/SoIKwcr+SoHKwYr9SoGK0EICSsFKwQrCCsEKwMrBysDKwIrBisCK0AIBSsBKwArBCsAK/8qAyv/Kv4qAiv+Kj8IASvMAzEMACsxDDAM/yowDC8M/iovDD8BywP9KvwqISv8KvsqHSv7KvoqGSv6Ks5M/Sr5Kvgq/Cr4Kvcq+yr3KvYq+ir2Ks1M+Sr1KvQq+Cr0KvMq9yrzKvIq9iryKsxM9SrPAj4I9Co+CD0I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uwOhKaAplSmgKZ8pkSmfKZ4pjSmeKTcJoSmdKZwpoCmcKZspnymbKZopnimaKTYJnSmZKZgpnCmYKZcpmymXKZYpmimWKTUJmSm2TLVMmCm1TLRMlym0TLNMlimzTJEBuwOVKZQpiSmUKZMphSmTKZIpgSmSKf4LlSmRKZAplCmQKY8pkymPKY4pkimOKf0LkSmNKYwpkCmMKYspjymLKYopjimKKfwLjSkEAzQJjCk0CTMJiykzCTIJiikyCZIBuwOJKYgpfSmIKYcpeSmHKYYpdSmGKWsIiSmFKYQpiCmEKYMphymDKYIphimCKWoIhSmBKYAphCmAKX8pgyl/KX4pgil+KWkIgSm8AwEMgCkBDAAMfykADP8Lfin/C0ABuwN9KXwpoSl8KXspnSl7KXopmSl6KbJMfSl5KXgpfCl4KXcpeyl3KXYpeil2KbFMeSl1KXQpeCl0KXMpdylzKXIpdilyKbBMdSnYAmgIdCloCGcIcylnCGYIcilmCEIBuQNxKXApZSlwKW8pYSlvKW4pXSluKUkJcSltKWwpcClsKWspbylrKWopbilqKUgJbSlpKWgpbCloKWcpaylnKWYpailmKUcJaSm4A/ILaCnyC/ELZynxC/ALZinwC5ABuQNlKWQpWSlkKWMpVSljKWIpUSliKfgLZSlhKWApZClgKV8pYylfKV4pYileKfcLYSldKVwpYClcKVspXylbKVopXilaKfYLXSkIA0YJXClGCUUJWylFCUQJWilECU9LuQNZKVgpTSlYKVcpSSlXKVYpRSlWKX0IWSlVKVQpWClUKVMpVylTKVIpVilSKXwIVSlRKVApVClQKU8pUylPKU4pUilOKXsIUSm6A/sLUCn7C/oLTyn6C/kLTin5CydLuQNNKUwpcSlMKUspbSlLKUopaSlKKfULTSlJKUgpTClIKUcpSylHKUYpSilGKfQLSSlFKUQpSClEKUMpRylDKUIpRilCKfMLRSncAnoIRCl6CHkIQyl5CHgIQil4CFMBtgNBKUApNSlAKT8pMSk/KT4pLSk+KakJQSk9KTwpQCk8KTspPyk7KTopPik6KagJPSk5KTgpPCk4KTcpOyk3KTYpOik2KacJOSm3A+8LOCnvC+4LNynuC+0LNintC29LtgM1KTQpKSk0KTMpJSkzKTIpISkyKfILNSkxKTApNCkwKS8pMykvKS4pMikuKfELMSktKSwpMCksKSspLykrKSopLikqKfALLSkeA6YJLCmmCaUJKymlCaQJKimkCZABtgMpKSgpHSkoKScpGSknKSYpFSkmKbUJKSklKSQpKCkkKSMpJykjKSIpJikiKbQJJSkhKSApJCkgKR8pIykfKR4pIikeKbMJISm4A/ULICn1C/QLHyn0C/MLHinzC1MBtgMdKRwpQSkcKRspPSkbKRopOSkaKewLHSkZKRgpHCkYKRcpGykXKRYpGikWKesLGSkVKRQpGCkUKRMpFykTKRIpFikSKeoLFSkhA7IJFCmyCbEJEymxCbAJEimwCXhLtQMRKRApBSkQKQ8pASkPKQ4p/SgOKf0GESkNKQwpECkMKQspDykLKQopDikKKfwGDSkJKQgpDCkIKQcpCykHKQYpCikGKfsGCSm0A+YLCCnmC+ULBynlC+QLBinkC0gBtQMFKQQp+SgEKQMp9SgDKQIp8SgCKa9MBSkBKQApBCkAKf8oAyn/KP4oAin+KK5MASn9KPwoACn8KPso/yj7KPoo/ij6KK1M/SiBAvoG/Cj6BvkG+yj5BvgG+ij4BpNKtQP5KPgo7Sj4KPco6Sj3KPYo5Sj2KEcL+Sj1KPQo+Cj0KPMo9yjzKPIo9ijyKEYL9SjxKPAo9CjwKO8o8yjvKO4o8ijuKEUL8SisTKtM8CirTKpM7yiqTKlM7iipTF9MtQPtKOwoESnsKOsoDSnrKOooCSnqKOkL7SjpKOgo7CjoKOco6yjnKOYo6ijmKOgL6SjlKOQo6CjkKOMo5yjjKOIo5ijiKOcL5SiHA0QL5ChEC0ML4yhDC0IL4ihCC4kBswPhKOAo1SjgKN8o0SjfKN4ozSjeKFkL4SjdKNwo4CjcKNso3yjbKNoo3ijaKFgL3SjZKNgo3CjYKNco2yjXKNYo2ijWKFcL2SiyA+AL2CjgC98L1yjfC94L1ijeC3oBswPVKNQoySjUKNMoxSjTKNIowSjSKOYL1SjRKNAo1CjQKM8o0yjPKM4o0ijOKOUL0SjNKMwo0CjMKMsozyjLKMoozijKKOQLzSiLA1YLzChWC1ULyyhVC1QLyihUC0gBswPJKMgovSjIKMcouSjHKMYotSjGKE0LySjFKMQoyCjEKMMoxyjDKMIoxijCKEwLxSjBKMAoxCjAKL8owyi/KL4owii+KEsLwSi0A+kLwCjpC+gLvyjoC+cLvijnC4kBswO9KLwo4Si8KLso3Si7KLoo2Si6KOMLvSi5KLgovCi4KLcouyi3KLYouii2KOILuSi1KLQouCi0KLMotyizKLIotiiyKOELtSiIA0oLtChKC0kLsyhJC0gLsihIC44BsQOxKLAopSiwKK8ooSivKK4onSiuKIsJsSitKKwosCisKKsoryirKKooriiqKIoJrSipKKgorCioKKcoqyinKKYoqiimKIkJqSioTKdMqCinTKZMpyimTKVMpiilTF1LsQOlKKQomSikKKMolSijKKIokSiiKOALpSihKKAopCigKJ8ooyifKJ4ooiieKN8LoSidKJwooCicKJsonyibKJooniiaKN4LnSgXA4gJnCiICYcJmyiHCYYJmiiGCXoBsQOZKJgojSiYKJcoiSiXKJYohSiWKFMLmSiVKJQomCiUKJMolyiTKJIoliiSKFILlSiRKJAolCiQKI8okyiPKI4okiiOKFELkSiyA+MLkCjjC+ILjyjiC+ELjijhC44BsQONKIwosSiMKIsorSiLKIooqSiKKKRMjSiJKIgojCiIKIcoiyiHKIYoiiiGKKNMiSiFKIQoiCiEKIMohyiDKIIohiiCKKJMhSiJA1ALhChQC08LgyhPC04LgihOC2NMsAOBKIAodSiAKH8ocSh/KH4obSh+KCkLgSh9KHwogCh8KHsofyh7KHoofih6KCgLfSh5KHgofCh4KHcoeyh3KHYoeih2KCcLeSivA9oLeCjaC9kLdyjZC9gLdijYC0kBsAN1KHQoaSh0KHMoZShzKHIoYShyKMsLdShxKHAodChwKG8ocyhvKG4ocihuKMoLcShtKGwocChsKGsobyhrKGoobihqKMkLbSiAAyYLbCgmCyULayglCyQLaigkC3gBsANpKGgoXShoKGcoWShnKGYoVShmKC8LaShlKGQoaChkKGMoZyhjKGIoZihiKC4LZShhKGAoZChgKF8oYyhfKF4oYiheKC0LYSirA8gLYCjIC8cLXyjHC8YLXijGC4wBsANdKFwogShcKFsofShbKFooeShaKN0LXShZKFgoXChYKFcoWyhXKFYoWihWKNwLWShVKFQoWChUKFMoVyhTKFIoVihSKNsLVSiCAywLVCgsCysLUygrCyoLUigqC4oBrQNRKFAoRShQKE8oQShPKE4oPShOKAEGUShNKEwoUChMKEsoTyhLKEooTihKKAAGTShJKEgoTChIKEcoSyhHKEYoSihGKP8FSSiuA9cLSCjXC9YLRyjWC9ULRijVC1EBrQNFKEQoOShEKEMoNShDKEIoMShCKNoLRShBKEAoRChAKD8oQyg/KD4oQig+KNkLQSg9KDwoQCg8KDsoPyg7KDooPig6KNgLPShKAv4FPCj+Bf0FOyj9BfwFOij8BUkBrQM5KDgoLSg4KDcoKSg3KDYoJSg2KDULOSg1KDQoOCg0KDMoNygzKDIoNigyKDQLNSgxKDAoNCgwKC8oMygvKC4oMiguKDMLMSivA90LMCjdC9wLLyjcC9sLLijbC4oBrQMtKCwoUSgsKCsoTSgrKCooSSgqKNQLLSgpKCgoLCgoKCcoKygnKCYoKigmKNMLKSglKCQoKCgkKCMoJygjKCIoJigiKNILJSiDAzILJCgyCzELIygxCzALIigwC4sBqgMhKCAoFSggKB8oESgfKB4oDSgeKAEJISgdKBwoICgcKBsoHygbKBooHigaKAAJHSgZKBgoHCgYKBcoGygXKBYoGigWKP8IGSirA8sLGCjLC8oLFyjKC8kLFijJC3gBqgMVKBQoCSgUKBMoBSgTKBIoASgSKM4LFSgRKBAoFCgQKA8oEygPKA4oEigOKM0LESgNKAwoECgMKAsoDygLKAooDigKKMwLDSj5Av4IDCj+CP0ICyj9CPwICij8CHkBqgMJKAgo/ScIKAco+ScHKAYo9ScGKEELCSgFKAQoCCgEKAMoBygDKAIoBigCKEALBSgBKAAoBCgAKP8nAyj/J/4nAij+Jz8LASisA9ELACjRC9AL/yfQC88L/ifPC40BqgP9J/wnISj8J/snHSj7J/onGSj6J8gL/Sf5J/gn/Cf4J/cn+yf3J/Yn+if2J8cL+Sf1J/Qn+Cf0J/Mn9yfzJ/In9ifyJ8YL9SeFAz4L9Cc+Cz0L8yc9CzwL8ic8C4wBqAPxJ/An5SfwJ+8n4SfvJ+4n3SfuJ8IL8SftJ+wn8CfsJ+sn7yfrJ+on7ifqJ8EL7SfpJ+gn7CfoJ+cn6yfnJ+Yn6ifmJ8AL6SehTKBM6CegTJ9M5yefTJ5M5ieeTJ1MqAPlJ+Qn2SfkJ+Mn1SfjJ+In0SfiJ4ML5SfhJ+An5CfgJ98n4yffJ94n4ifeJ4IL4SfdJ9wn4CfcJ9sn3yfbJ9on3ifaJ4EL3SepA8UL3CfFC8QL2yfEC8ML2ifDC6sBqAPZJ9gnzSfYJ9cnySfXJ9YnxSfWJ9sK2SfVJ9Qn2CfUJ9Mn1yfTJ9In1ifSJ9oK1SfRJ9An1CfQJ88n0yfPJ84n0ifOJ9kK0SeZA4AL0CeAC38Lzyd/C34Lzid+C20BqAPNJ8wn8SfMJ8sn7SfLJ8on6SfKJ5xMzSfJJ8gnzCfIJ8cnyyfHJ8YnyifGJ5tMySfFJ8QnyCfEJ8MnxyfDJ8InxifCJ5pMxSdsA9gKxCfYCtcKwyfXCtYKwifWCitMpQPBJ8AntSfAJ78nsSe/J74nrSe+J7wLwSe9J7wnwCe8J7snvye7J7onvie6J7sLvSe5J7gnvCe4J7cnuye3J7Ynuie2J7oLuSejA6oLuCeqC6kLtyepC6gLtieoC6cBpQO1J7QnqSe0J7MnpSezJ7InoSeyJ7YLtSexJ7AntCewJ68nsyevJ64nsieuJ7ULsSetJ6wnsCesJ6snryerJ6onrieqJ7QLrSenA78LrCe/C74Lqye+C70Lqie9C6wBpQOpJ6gnnSeoJ6cnmSenJ6YnlSemJ58KqSelJ6QnqCekJ6MnpyejJ6InpieiJ54KpSehJ6AnpCegJ58noyefJ54noieeJ50KoSemA7kLoCe5C7gLnye4C7cLnie3C28BpQOdJ5wnwSecJ5snvSebJ5onuSeaJ60LnSeZJ5gnnCeYJ5cnmyeXJ5YnmieWJ6wLmSeVJ5QnmCeUJ5MnlyeTJ5InlieSJ6sLlSddA5wKlCecCpsKkyebCpoKkieaCm4BogORJ5AnhSeQJ48ngSePJ44nfSeOJ7ALkSeNJ4wnkCeMJ4snjyeLJ4onjieKJ68LjSeJJ4gnjCeIJ4cniyeHJ4YniieGJ64LiSegA54LiCeeC50LhyedC5wLhiecC6gBogOFJ4QneSeEJ4MndSeDJ4IncSeCJ6oLhSeBJ4AnhCeAJ38ngyd/J34ngid+J6kLgSd9J3wngCd8J3snfyd7J3onfid6J6gLfSekA7MLfCezC7ILeyeyC7ELeiexC6cBogN5J3gnbSd4J3cnaSd3J3YnZSd2J5lMeSd1J3QneCd0J3MndydzJ3IndidyJ5hMdSdxJ3AndCdwJ28ncydvJ24nciduJ5dMcSejA60LcCetC6wLbyesC6sLbierC24BogNtJ2wnkSdsJ2snjSdrJ2oniSdqJ6ELbSdpJ2gnbCdoJ2cnaydnJ2YnaidmJ6ALaSdlJ2QnaCdkJ2MnZydjJ2InZidiJ58LZSeWTJVMZCeVTJRMYyeUTJNMYieTTGwBnwNhJ2AnVSdgJ18nUSdfJ14nTSdeJ6QLYSddJ1wnYCdcJ1snXydbJ1onXidaJ6MLXSdZJ1gnXCdYJ1cnWydXJ1YnWidWJ6ILWSeSTJFMWCeRTJBMVyeQTI9MViePTI5MnwNVJ1QnSSdUJ1MnRSdTJ1InQSdSJ54LVSdRJ1AnVCdQJ08nUydPJ04nUidOJ50LUSdNJ0wnUCdMJ0snTydLJ0onTidKJ5wLTSehA6cLTCenC6YLSyemC6ULSielC6gBnwNJJ0gnPSdIJ0cnOSdHJ0YnNSdGJ7cKSSdFJ0QnSCdEJ0MnRydDJ0InRidCJ7YKRSdBJ0AnRCdAJz8nQyc/Jz4nQic+J7UKQSegA6ELQCehC6ALPyegC58LPiefC2wBnwM9JzwnYSc8JzsnXSc7JzonWSc6J41MPSc5JzgnPCc4JzcnOyc3JzYnOic2J4xMOSc1JzQnOCc0JzMnNyczJzInNicyJ4tMNSdjA7QKNCe0CrMKMyezCrIKMieyCnABnAMxJzAnJScwJy8nIScvJy4nHScuJ5gLMSctJywnMCcsJysnLycrJyonLicqJ5cLLScpJygnLCcoJycnKycnJyYnKicmJ5YLKSeaA4YLKCeGC4ULJyeFC4QLJieEC6oBnAMlJyQnGSckJyMnFScjJyInESciJ5ILJSchJyAnJCcgJx8nIycfJx4nIiceJ5ELIScdJxwnICccJxsnHycbJxonHicaJ5ALHSeeA5sLHCebC5oLGyeaC5kLGieZC6kBnAMZJxgnDScYJxcnCScXJxYnBScWJ8MKGScVJxQnGCcUJxMnFycTJxInFicSJ8IKFScRJxAnFCcQJw8nEycPJw4nEicOJ8EKESedA5ULECeVC5QLDyeUC5MLDieTCxxMnAMNJwwnMScMJwsnLScLJwonKScKJ4kLDScJJwgnDCcIJwcnCycHJwYnCicGJ4gLCScFJwQnCCcEJwMnBycDJwInBicCJ4cLBSdmA8AKBCfACr8KAye/Cr4KAie+CmsBmAMBJwAn9SYAJ/8m8Sb/Jv4m7Sb+JowLASf9JvwmACf8Jvsm/yb7Jvom/ib6JosL/Sb5Jvgm/Cb4Jvcm+yb3JvYm+ib2JooL+SaZA4ML+CaDC4IL9yaCC4EL9iaBC6sBmAP1JvQm6Sb0JvMm5SbzJvIm4SbyJoYL9SbxJvAm9CbwJu8m8ybvJu4m8ibuJoUL8SbtJuwm8CbsJusm7ybrJuom7ibqJoQL7SabA48L7CaPC44L6yaOC40L6iaNC6oBmAPpJugm3SboJucm2SbnJuYm1SbmJopM6SblJuQm6CbkJuMm5ybjJuIm5ibiJolM5SbhJuAm5CbgJt8m4ybfJt4m4ibeJohM4SaaA4kL4CaJC4gL3yaIC4cL3iaHC2sBmAPdJtwmASfcJtsm/SbbJtom+SbaJoAL3SbZJtgm3CbYJtcm2ybXJtYm2ibWJn8L2SbVJtQm2CbUJtMm1ybTJtIm1ibSJn4L1SaHTIZM1CaGTIVM0yaFTIRM0iaETG0BlwPRJtAmxSbQJs8mwSbPJs4mvSbOJisJ0SbNJswm0CbMJssmzybLJsomzibKJioJzSbJJsgmzCbIJscmyybHJsYmyibGJikJySaWA3oLyCZ6C3kLxyZ5C3gLxiZ4C4ABlwPFJsQmuSbEJsMmtSbDJsImsSbCJoNMxSbBJsAmxCbAJr8mwya/Jr4mwia+JoJMwSa9JrwmwCa8Jrsmvya7Jromvia6JoFMvSYCAygJvCYoCScJuyYnCSYJuiYmCYEBlwO5JrgmrSa4JrcmqSa3JrYmpSa2JjcGuSa1JrQmuCa0JrMmtyazJrImtiayJjYGtSaxJrAmtCawJq8msyavJq4msiauJjUGsSaATH9MsCZ/TH5MryZ+TH1MriZ9TEwBlwOtJqwm0SasJqsmzSarJqomySaqJn0LrSapJqgmrCaoJqcmqyanJqYmqiamJnwLqSalJqQmqCakJqMmpyajJqImpiaiJnsLpSZWAjQGpCY0BjMGoyYzBjIGoiYyBkoBlQOhJqAmlSagJp8mkSafJp4mjSaeJhkJoSadJpwmoCacJpsmnyabJpomniaaJhgJnSaZJpgmnCaYJpcmmyaXJpYmmiaWJhcJmSZ8THtMmCZ7THpMlyZ6THlMliZ5TH8BlQOVJpQmiSaUJpMmhSaTJpImgSaSJnoLlSaRJpAmlCaQJo8mkyaPJo4mkiaOJnkLkSaNJowmkCaMJosmjyaLJoomjiaKJngLjSb+AhYJjCYWCRUJiyYVCRQJiiYUCYABlQOJJogmfSaIJocmeSaHJoYmdSaGJj0GiSaFJoQmiCaEJoMmhyaDJoImhiaCJjwGhSaBJoAmhCaAJn8mgyZ/Jn4mgiZ+JjsGgSaWA30LgCZ9C3wLfyZ8C3sLfiZ7C0oBlQN9JnwmoSZ8JnsmnSZ7JnommSZ6JnhMfSZ5JngmfCZ4JncmeyZ3JnYmeiZ2JndMeSZ1JnQmeCZ0JnMmdyZzJnImdiZyJnZMdSZXAjoGdCY6BjkGcyY5BjgGciY4BlABkwNxJnAmZSZwJm8mYSZvJm4mXSZuJmcJcSZtJmwmcCZsJmsmbyZrJmombiZqJmYJbSZpJmgmbCZoJmcmayZnJmYmaiZmJmUJaSaSA24LaCZuC20LZyZtC2wLZiZsC34BkwNlJmQmWSZkJmMmVSZjJmImUSZiJnQLZSZhJmAmZCZgJl8mYyZfJl4mYiZeJnMLYSZdJlwmYCZcJlsmXyZbJlomXiZaJnILXSYPA2QJXCZkCWMJWyZjCWIJWiZiCVRLkwNZJlgmTSZYJlcmSSZXJlYmRSZWJtMGWSZVJlQmWCZUJlMmVyZTJlImViZSJtIGVSZRJlAmVCZQJk8mUyZPJk4mUiZOJtEGUSaUA3cLUCZ3C3YLTyZ2C3ULTiZ1C4tKkwNNJkwmcSZMJksmbSZLJkomaSZKJnELTSZJJkgmTCZIJkcmSyZHJkYmSiZGJnALSSZFJkQmSCZEJkMmRyZDJkImRiZCJm8LRSZ4AtAGRCbQBs8GQybPBs4GQibOBksBkQNBJkAmNSZAJj8mMSY/Jj4mLSY+JlUJQSY9JjwmQCY8JjsmPyY7JjomPiY6JlQJPSY5JjgmPCY4JjcmOyY3JjYmOiY2JlMJOSZ1THRMOCZ0THNMNyZzTHJMNiZyTH0BkQM1JjQmKSY0JjMmJSYzJjImISYyJm4LNSYxJjAmNCYwJi8mMyYvJi4mMiYuJm0LMSYtJiwmMCYsJismLyYrJiomLiYqJmwLLSYLA1IJLCZSCVEJKyZRCVAJKiZQCX4BkQMpJigmHSYoJicmGSYnJiYmFSYmJtkGKSYlJiQmKCYkJiMmJyYjJiImJiYiJtgGJSYhJiAmJCYgJh8mIyYfJh4mIiYeJtcGISaSA3ELICZxC3ALHyZwC28LHiZvC0sBkQMdJhwmQSYcJhsmPSYbJhomOSYaJnFMHSYZJhgmHCYYJhcmGyYXJhYmGiYWJnBMGSYVJhQmGCYUJhMmFyYTJhImFiYSJm9MFSZ5AtYGFCbWBtUGEybVBtQGEibUBk0BjwMRJhAmBSYQJg8mASYPJg4m/SUOJiEKESYNJgwmECYMJgsmDyYLJgomDiYKJiAKDSYJJggmDCYIJgcmCyYHJgYmCiYGJh8KCSaOA2ILCCZiC2ELByZhC2ALBiZgC3wBjwMFJgQm+SUEJgMm9SUDJgIm8SUCJmgLBSYBJgAmBCYAJv8lAyb/Jf4lAib+JWcLASb9JfwlACb8Jfsl/yX7Jfol/iX6JWYL/SU8Ax4K/CUeCh0K+yUdChwK+iUcCs9LjwP5Jfgl7SX4Jfcl6SX3JfYl5SX2JRUK+SX1JfQl+CX0JfMl9yXzJfIl9iXyJRQK9SXxJfAl9CXwJe8l8yXvJe4l8iXuJRMK8SWQA2sL8CVrC2oL7yVqC2kL7iVpC8dLjwPtJewlESbsJeslDSbrJeolCSbqJWUL7SXpJegl7CXoJecl6yXnJeYl6iXmJWQL6SXlJeQl6CXkJeMl5yXjJeIl5iXiJWML5SU5AxIK5CUSChEK4yURChAK4iUQClwBjQPhJeAl1SXgJd8l0SXfJd4lzSXeJXkJ4SXdJdwl4CXcJdsl3yXbJdol3iXaJXgJ3SXZJdgl3CXYJdcl2yXXJdYl2iXWJXcJ2SVuTG1M2CVtTGxM1yVsTGtM1iVrTHsBjQPVJdQlySXUJdMlxSXTJdIlwSXSJWIL1SXRJdAl1CXQJc8l0yXPJc4l0iXOJWEL0SXNJcwl0CXMJcslzyXLJcolziXKJWALzSUTA3YJzCV2CXUJyyV1CXQJyiV0CXwBjQPJJcglvSXIJccluSXHJcYltSXGJeUGySXFJcQlyCXEJcMlxyXDJcIlxiXCJeQGxSXBJcAlxCXAJb8lwyW/Jb4lwiW+JeMGwSWOA2ULwCVlC2QLvyVkC2MLviVjC1wBjQO9Jbwl4SW8Jbsl3SW7Jbol2SW6JWpMvSW5JbglvCW4JbcluyW3JbYluiW2JWlMuSW1JbQluCW0JbMltyWzJbIltiWyJWhMtSV8AuIGtCXiBuEGsyXhBuAGsiXgBk8BigOxJbAlpSWwJa8loSWvJa4lnSWuJZ0JsSWtJawlsCWsJaslryWrJaolriWqJZwJrSWpJaglrCWoJaclqyWnJaYlqiWmJZsJqSWLA1kLqCVZC1gLpyVYC1cLpiVXC3oBigOlJaQlmSWkJaMllSWjJaIlkSWiJVwLpSWhJaAlpCWgJZ8loyWfJZ4loiWeJVsLoSWdJZwloCWcJZslnyWbJZolniWaJVoLnSUbA5oJnCWaCZkJmyWZCZgJmiWYCWZLigOZJZgljSWYJZcliSWXJZYlhSWWJfcGmSWVJZQlmCWUJZMllyWTJZIlliWSJfYGlSWRJZAllCWQJY8lkyWPJY4lkiWOJfUGkSWMA18LkCVfC14LjyVeC10LjiVdC49KigONJYwlsSWMJYslrSWLJYolqSWKJVYLjSWJJYgljCWIJYcliyWHJYYliiWGJVULiSWFJYQliCWEJYMlhyWDJYIlhiWCJVQLhSWAAvQGhCX0BvMGgyXzBvIGgiXyBkgBhgOBJYAldSWAJX8lcSV/JX4lbSV+JVALgSV9JXwlgCV8JXslfyV7JXolfiV6JU8LfSV5JXglfCV4JXcleyV3JXYleiV2JU4LeSVnTGZMeCVmTGVMdyVlTGRMdiVkTGNMhgN1JXQlaSV0JXMlZSVzJXIlYSVyJUoLdSVxJXAldCVwJW8lcyVvJW4lciVuJUkLcSVtJWwlcCVsJWslbyVrJWolbiVqJUgLbSWJA1MLbCVTC1ILayVSC1ELaiVRC44BhgNpJWglXSVoJWclWSVnJWYlVSVmJUQLaSVlJWQlaCVkJWMlZyVjJWIlZiViJUMLZSVhJWAlZCVgJV8lYyVfJV4lYiVeJUILYSWIA00LYCVNC0wLXyVMC0sLXiVLC4kBhgNdJVwlgSVcJVslfSVbJVoleSVaJWJMXSVZJVglXCVYJVclWyVXJVYlWiVWJWFMWSVVJVQlWCVUJVMlVyVTJVIlViVSJWBMVSWHA0cLVCVHC0YLUyVGC0ULUiVFC19MgQNRJVAlRSVQJU8lQSVPJU4lPSVOJT4LUSVNJUwlUCVMJUslTyVLJUolTiVKJT0LTSVJJUglTCVIJUclSyVHJUYlSiVGJTwLSSWCAy8LSCUvCy4LRyUuCy0LRiUtC4wBgQNFJUQlOSVEJUMlNSVDJUIlMSVCJTgLRSVBJUAlRCVAJT8lQyU/JT4lQiU+JTcLQSU9JTwlQCU8JTslPyU7JTolPiU6JTYL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4xwACf8I4hz/CHgB8wLhHOAc1RzgHN8c0RzfHN4czRzeHPgI4RzdHNwc4BzcHNsc3xzbHNoc3hzaHPcI3RzZHNgc3BzYHNcc2xzXHNYc2hzWHPYI2Rz0AukI2BzpCOgI1xzoCOcI1hznCI8B8wLVHNQcyRzUHNMcxRzTHNIcwRzSHPII1RzRHNAc1BzQHM8c0xzPHM4c0hzOHPEI0RzNHMwc0BzMHMsczxzLHMoczhzKHPAIzRz3AvsIzBz7CPoIyxz6CPkIyhz5CJoB8wLJHMgcvRzIHMccuRzHHMYctRzGHOwIyRzFHMQcyBzEHMMcxxzDHMIcxhzCHOsIxRzBHMAcxBzAHL8cwxy/HL4cwhy+HOoIwRz2AvUIwBz1CPQIvxz0CPMIvhzzCHgB8wK9HLwc4Ry8HLsc3Ry7HLoc2Ry6HOYIvRy5HLgcvBy4HLccuxy3HLYcuhy2HOUIuRy1HLQcuBy0HLMctxyzHLIcthyyHOQItRz1Au8ItBzvCO4IsxzuCO0IshztCHcB8AKxHLAcpRywHK8coRyvHK4cnRyuHOAIsRytHKwcsBysHKscrxyrHKocrhyqHN8IrRypHKgcrByoHKccqxynHKYcqhymHN4IqRzuAs4IqBzOCM0IpxzNCMwIphzMCKUB8AKlHKQcmRykHKMclRyjHKIckRyiHEpLpRyhHKAcpBygHJ8coxyfHJ4cohyeHElLoRydHJwcoBycHJscnxybHJocnhyaHEhLnRzyAuMInBzjCOIImxziCOEImhzhCEdL8AKZHJgcjRyYHJcciRyXHJYchRyWHNoImRyVHJQcmByUHJMclxyTHJIclhySHNkIlRyRHJAclByQHI8ckxyPHI4ckhyOHNgIkRxGS0VLkBxFS0RLjxxES0NLjhxDS0JL8AKNHIwcsRyMHIscrRyLHIocqRyKHNEIjRyJHIgcjByIHIccixyHHIYcihyGHNAIiRyFHIQciByEHIMchxyDHIIchhyCHM8IhRzxAt0IhBzdCNwIgxzcCNsIghzbCD4B7AKBHIAcdRyAHH8ccRx/HH4cbRx+HNQIgRx9HHwcgBx8HHscfxx7HHocfhx6HNMIfRx5HHgcfBx4HHccexx3HHYcehx2HNIIeRxBS0BLeBxASz9Ldxw/Sz5Ldhw+Sz1L7AJ1HHQcaRx0HHMcZRxzHHIcYRxyHM4IdRxxHHAcdBxwHG8ccxxvHG4cchxuHM0IcRxtHGwccBxsHGscbxxrHGocbhxqHMwIbRzvAtcIbBzXCNYIaxzWCNUIahzVCKUB7AJpHGgcXRxoHGccWRxnHGYcVRxmHMgIaRxlHGQcaBxkHGMcZxxjHGIcZhxiHMcIZRxhHGAcZBxgHF8cYxxfHF4cYhxeHMYIYRzuAtEIYBzRCNAIXxzQCM8IXhzPCD4B7AJdHFwcgRxcHFscfRxbHFoceRxaHDxLXRxZHFgcXBxYHFccWxxXHFYcWhxWHDtLWRxVHFQcWBxUHFMcVxxTHFIcVhxSHDpLVRztAssIVBzLCMoIUxzKCMkIUhzJCDlL5wJRHFAcRRxQHE8cQRxPHE4cPRxOHMIIURxNHEwcUBxMHEscTxxLHEocThxKHMEITRxJHEgcTBxIHEccSxxHHEYcShxGHMAISRzoArMISByzCLIIRxyyCLEIRhyxCKQB5wJFHEQcORxEHEMcNRxDHEIcMRxCHLwIRRxBHEAcRBxAHD8cQxw/HD4cQhw+HLsIQRw9HDwcQBw8HDscPxw7HDocPhw6HLoIPRzrAsUIPBzFCMQIOxzECMMIOhzDCKMB5wI5HDgcLRw4HDccKRw3HDYcJRw2HLYIORw1HDQcOBw0HDMcNxwzHDIcNhwyHLUINRwxHDAcNBwwHC8cMxwvHC4cMhwuHLQIMRzqAr8IMBy/CL4ILxy+CL0ILhy9CF0B5wItHCwcURwsHCscTRwrHCocSRwqHLAILRwpHCgcLBwoHCccKxwnHCYcKhwmHK8IKRwlHCQcKBwkHCMcJxwjHCIcJhwiHK4IJRzpArkIJBy5CLgIIxy4CLcIIhy3CEUB5AIhHCAcFRwgHB8cERwfHB4cDRweHKoIIRwdHBwcIBwcHBscHxwbHBocHhwaHKkIHRwZHBgcHBwYHBccGxwXHBYcGhwWHKgIGRziApgIGByYCJcIFxyXCJYIFhyWCKEB5AIVHBQcCRwUHBMcBRwTHBIcARwSHDhLFRwRHBAcFBwQHA8cExwPHA4cEhwOHDdLERwNHAwcEBwMHAscDxwLHAocDhwKHDZLDRzmAq0IDBytCKwICxysCKsIChyrCDVL5AIJHAgc/RsIHAcc+RsHHAYc9RsGHKQICRwFHAQcCBwEHAMcBxwDHAIcBhwCHKMIBRwBHAAcBBwAHP8bAxz/G/4bAhz+G6IIARw0SzNLABwzSzJL/xsySzFL/hsxSzBL5AL9G/wbIRz8G/sbHRz7G/obGRz6G5sI/Rv5G/gb/Bv4G/cb+xv3G/Yb+hv2G5oI+Rv1G/Qb+Bv0G/Mb9xvzG/Ib9hvyG5kI9RvlAqcI9BunCKYI8xumCKUI8hulCEEB3wLxG/Ab5RvwG+8b4RvvG+4b3RvuG54I8RvtG+wb8BvsG+sb7xvrG+ob7hvqG50I7RvpG+gb7BvoG+cb6xvnG+Yb6hvmG5wI6RvgAo8I6BuPCI4I5xuOCI0I5huNCKIB3wLlG+Qb2RvkG+Mb1RvjG+Ib0RviG5gI5RvhG+Ab5BvgG98b4xvfG94b4hveG5cI4RvdG9wb4BvcG9sb3xvbG9ob3hvaG5YI3RvjAqEI3BuhCKAI2xugCJ8I2hufCKEB3wLZG9gbzRvYG9cbyRvXG9YbxRvWG5II2RvVG9Qb2BvUG9Mb1xvTG9Ib1hvSG5EI1RvRG9Ab1BvQG88b0xvPG84b0hvOG5AI0RviApsI0BubCJoIzxuaCJkIzhuZCEEB3wLNG8wb8RvMG8sb7RvLG8ob6RvKG4wIzRvJG8gbzBvIG8cbyxvHG8YbyhvGG4sIyRvFG8QbyBvEG8MbxxvDG8IbxhvCG4oIxRvhApUIxBuVCJQIwxuUCJMIwhuTCEMB2wLBG8AbtRvAG78bsRu/G74brRu+G4YIwRu9G7wbwBu8G7sbvxu7G7obvhu6G4UIvRu5G7gbvBu4G7cbuxu3G7Ybuhu2G4QIuRsvSy5LuBsuSy1LtxstSyxLthssSytL2wK1G7QbqRu0G7MbpRuzG7IboRuyG4AItRuxG7AbtBuwG68bsxuvG64bshuuG38IsRutG6wbsBusG6sbrxurG6obrhuqG34IrRveAokIrBuJCIgIqxuICIcIqhuHCJ0B2wKpG6gbnRuoG6cbmRunG6YblRumG3oIqRulG6QbqBukG6MbpxujG6IbphuiG3kIpRuhG6AbpBugG58boxufG54bohueG3gIoRvdAoMIoBuDCIIInxuCCIEInhuBCFMB2wKdG5wbwRucG5sbvRubG5obuRuaGypLnRuZG5gbnBuYG5cbmxuXG5YbmhuWGylLmRuVG5QbmBuUG5MblxuTG5IblhuSGyhLlRvcAn0IlBt9CHwIkxt8CHsIkht7CCdL1wKRG5AbhRuQG48bgRuPG44bfRuOG3QIkRuNG4wbkBuMG4sbjxuLG4objhuKG3MIjRuJG4gbjBuIG4cbixuHG4YbihuGG3IIiRvVAlwIiBtcCFsIhxtbCFoIhhtaCJ8B1wKFG4QbeRuEG4MbdRuDG4IbcRuCG24IhRuBG4AbhBuAG38bgxt/G34bght+G20IgRt9G3wbgBt8G3sbfxt7G3obfht6G2wIfRvaAncIfBt3CHYIext2CHUIeht1CJ4B1wJ5G3gbbRt4G3cbaRt3G3YbZRt2G2gIeRt1G3QbeBt0G3MbdxtzG3IbdhtyG2cIdRtxG3AbdBtwG28bcxtvG24bchtuG2YIcRvZAnEIcBtxCHAIbxtwCG8IbhtvCEIB1wJtG2wbkRtsG2sbjRtrG2obiRtqG18IbRtpG2gbbBtoG2cbaxtnG2YbahtmG14IaRtlG2QbaBtkG2MbZxtjG2IbZhtiG10IZRvYAmsIZBtrCGoIYxtqCGkIYhtpCEAB0gJhG2AbVRtgG18bURtfG14bTRteG2IIYRtdG1wbYBtcG1sbXxtbG1obXhtaG2EIXRtZG1gbXBtYG1cbWxtXG1YbWhtWG2AIWRvTAlMIWBtTCFIIVxtSCFEIVhtRCKAB0gJVG1QbSRtUG1MbRRtTG1IbQRtSG1wIVRtRG1AbVBtQG08bUxtPG04bUhtOG1sIURtNG0wbUBtMG0sbTxtLG0obThtKG1oITRvWAmUITBtlCGQISxtkCGMIShtjCJ8B0gJJG0gbPRtIG0cbORtHG0YbNRtGG1YISRtFG0QbSBtEG0MbRxtDG0IbRhtCG1UIRRtBG0AbRBtAGz8bQxs/Gz4bQhs+G1QIQRvVAl8IQBtfCF4IPxteCF0IPhtdCEAB0gI9GzwbYRs8GzsbXRs7GzobWRs6G1AIPRs5GzgbPBs4GzcbOxs3GzYbOhs2G08IORs1GzQbOBs0GzMbNxszGzIbNhsyG04INRvUAlkINBtZCFgIMxtYCFcIMhtXCEYBzgIxGzAbJRswGy8bIRsvGy4bHRsuG0oIMRstGywbMBssGysbLxsrGyobLhsqG0kILRspGygbLBsoGycbKxsnGyYbKhsmG0gIKRvMAjIIKBsyCDEIJxsxCDAIJhswCJsBzgIlGyQbGRskGyMbFRsjGyIbERsiG0QIJRshGyAbJBsgGx8bIxsfGx4bIhseG0MIIRsdGxwbIBscGxsbHxsbGxobHhsaG0IIHRvRAk0IHBtNCEwIGxtMCEsIGhtLCKYBzgIZGxgbDRsYGxcbCRsXGxYbBRsWGz4IGRsVGxQbGBsUGxMbFxsTGxIbFhsSGz0IFRsRGxAbFBsQGw8bExsPGw4bEhsOGzwIERvQAkcIEBtHCEYIDxtGCEUIDhtFCEcBzgINGwwbMRsMGwsbLRsLGwobKRsKGzUIDRsJGwgbDBsIGwcbCxsHGwYbChsGGzQICRsFGwQbCBsEGwMbBxsDGwIbBhsCGzMIBRvPAkEIBBtBCEAIAxtACD8IAhs/CD8ByQIBGwAb9RoAG/8a8Rr/Gv4a7Rr+GjgIARv9GvwaABv8Gvsa/xr7Gvoa/hr6GjcI/Rr5Gvga/Br4Gvca+xr3GvYa+hr2GjYI+RrKAikI+BopCCgI9xooCCcI9honCJwByQL1GvQa6Rr0GvMa5RrzGvIa4RryGjII9RrxGvAa9BrwGu8a8xrvGu4a8hruGjEI8RrtGuwa8BrsGusa7xrrGuoa7hrqGjAI7RrNAjsI7Bo7CDoI6xo6CDkI6ho5CJsByQLpGuga3RroGuca2RrnGuYa1RrmGiwI6RrlGuQa6BrkGuMa5xrjGuIa5hriGisI5RrhGuAa5BrgGt8a4xrfGt4a4hreGioI4RrMAjUI4Bo1CDQI3xo0CDMI3hozCD8ByQLdGtwaARvcGtsa/RrbGtoa+RraGiYI3RrZGtga3BrYGtca2xrXGtYa2hrWGiUI2RrVGtQa2BrUGtMa1xrTGtIa1hrSGiQI1RrLAi8I1BovCC4I0xouCC0I0hotCEQBxgLRGtAaxRrQGs8awRrPGs4avRrOGiZL0RrNGswa0BrMGssazxrLGsoazhrKGiVLzRrJGsgazBrIGscayxrHGsYayhrGGiRLyRrHAh0IyBodCBwIxxocCBsIxhobCBIBxgLFGsQauRrEGsMatRrDGsIasRrCGucHxRrBGsAaxBrAGr8awxq/Gr4awhq+GuYHwRq9GrwawBq8Grsavxq7Groavhq6GuUHvRojSyJLvBoiSyFLuxohSyBLuhogSwRLxgK5GrgarRq4GrcaqRq3GrYapRq2GiAIuRq1GrQauBq0GrMatxqzGrIathqyGh8ItRqxGrAatBqwGq8asxqvGq4ashquGh4IsRq6AuQHsBrkB+MHrxrjB+IHrhriBzwBxgKtGqwa0RqsGqsazRqrGqoayRqqGhoIrRqpGqgarBqoGqcaqxqnGqYaqhqmGhkIqRqlGqQaqBqkGqMapxqjGqIaphqiGhgIpRrIAiMIpBojCCIIoxoiCCEIohohCDcBwwKhGqAalRqgGp8akRqfGp4ajRqeGh9LoRqdGpwaoBqcGpsanxqbGpoanhqaGh5LnRqZGpganBqYGpcamxqXGpYamhqWGh1LmRq4At4HmBreB90HlxrdB9wHlhrcB/hKwwKVGpQaiRqUGpMahRqTGpIagRqSGhQIlRqRGpAalBqQGo8akxqPGo4akhqOGhMIkRqNGowakBqMGosajxqLGooajhqKGhIIjRocSxtLjBobSxpLixoaSxlLihoZSxhLwwKJGogafRqIGocaeRqHGoYadRqGGg4IiRqFGoQaiBqEGoMahxqDGoIahhqCGg0IhRqBGoAahBqAGn8agxp/Gn4aghp+GgwIgRrFAhcIgBoXCBYIfxoWCBUIfhoVCDQBwwJ9GnwaoRp8GnsanRp7GnoamRp6GuEHfRp5GngafBp4Gncaexp3GnYaehp2GuAHeRp1GnQaeBp0GnMadxpzGnIadhpyGt8HdRrEAhEIdBoRCBAIcxoQCA8IchoPCD0BwAJxGnAaZRpwGm8aYRpvGm4aXRpuGhdLcRptGmwacBpsGmsabxprGmoabhpqGhZLbRppGmgabBpoGmcaaxpnGmYaahpmGhVLaRq/AvwHaBr8B/sHZxr7B/oHZhr6BwhLwAJlGmQaWRpkGmMaVRpjGmIaURpiGggIZRphGmAaZBpgGl8aYxpfGl4aYhpeGgcIYRpdGlwaYBpcGlsaXxpbGloaXhpaGgYIXRoUSxNLXBoTSxJLWxoSSxFLWhoRSxBLwAJZGlgaTRpYGlcaSRpXGlYaRRpWGgIIWRpVGlQaWBpUGlMaVxpTGlIaVhpSGgEIVRpRGlAaVBpQGk8aUxpPGk4aUhpOGgAIURrCAgsIUBoLCAoITxoKCAkIThoJCFQBwAJNGkwacRpMGksabRpLGkoaaRpKGv8HTRpJGkgaTBpIGkcaSxpHGkYaShpGGv4HSRpFGkQaSBpEGkMaRxpDGkIaRhpCGv0HRRrBAgUIRBoFCAQIQxoECAMIQhoDCDgBvQJBGkAaNRpAGj8aMRo/Gj4aLRo+Gg9LQRo9GjwaQBo8GjsaPxo7GjoaPho6Gg5LPRo5GjgaPBo4GjcaOxo3GjYaOho2Gg1LORq8AvAHOBrwB+8HNxrvB+4HNhruBxABvQI1GjQaKRo0GjMaJRozGjIaIRoyGvwHNRoxGjAaNBowGi8aMxovGi4aMhouGvsHMRotGiwaMBosGisaLxorGioaLhoqGvoHLRoMSwtLLBoLSwpLKxoKSwlLKhoJSwhLvQIpGigaHRooGicaGRonGiYaFRomGvYHKRolGiQaKBokGiMaJxojGiIaJhoiGvUHJRohGiAaJBogGh8aIxofGh4aIhoeGvQHIRq/Av8HIBr/B/4HHxr+B/0HHhr9BzgBvQIdGhwaQRocGhsaPRobGhoaORoaGvMHHRoZGhgaHBoYGhcaGxoXGhYaGhoWGvIHGRoVGhQaGBoUGhMaFxoTGhIaFhoSGvEHFRq+AvkHFBr5B/gHExr4B/cHEhr3BzYBuQIRGhAaBRoQGg8aARoPGg4a/RkOGgdLERoNGgwaEBoMGgsaDxoLGgoaDhoKGgZLDRoJGggaDBoIGgcaCxoHGgYaChoGGgVLCRq6AucHCBrnB+YHBxrmB+UHBhrlBwRLuQIFGgQa+RkEGgMa9RkDGgIa8RkCGvAHBRoBGgAaBBoAGv8ZAxr/Gf4ZAhr+Ge8HARr9GfwZABr8GfsZ/xn7GfoZ/hn6Ge4H/RkDSwJL/BkCSwFL+xkBSwBL+hkASxABuQL5GfgZ7Rn4GfcZ6Rn3GfYZ5Rn2GeoH+Rn1GfQZ+Bn0GfMZ9xnzGfIZ9hnyGekH9RnxGfAZ9BnwGe8Z8xnvGe4Z8hnuGegH8Rm8AvMH8BnzB/IH7xnyB/EH7hnxBzYBuQLtGewZERrsGesZDRrrGeoZCRrqGeQH7RnpGegZ7BnoGecZ6xnnGeYZ6hnmGeMH6RnlGeQZ6BnkGeMZ5xnjGeIZ5hniGeIH5Rm7Au0H5BntB+wH4xnsB+sH4hnrBzwBtgLhGeAZ1RngGd8Z0RnfGd4ZzRneGf9K4RndGdwZ4BncGdsZ3xnbGdoZ3hnaGf5K3RnZGdgZ3BnYGdcZ2xnXGdYZ2hnWGf1K2Rm1AtIH2BnSB9EH1xnRB9AH1hnQB+9KtgLVGdQZyRnUGdMZxRnTGdIZwRnSGd4H1RnRGdAZ1BnQGc8Z0xnPGc4Z0hnOGd0H0RnNGcwZ0BnMGcsZzxnLGcoZzhnKGdwHzRn8SvtKzBn7SvpKyxn6SvlKyhn5SvhKtgLJGcgZvRnIGccZuRnHGcYZtRnGGdgHyRnFGcQZyBnEGcMZxxnDGcIZxhnCGdcHxRnBGcAZxBnAGb8Zwxm/Gb4Zwhm+GdYHwRm4AuEHwBnhB+AHvxngB98HvhnfBz0BtgK9GbwZ4Rm8GbsZ3Rm7GboZ2Rm6GdUHvRm5GbgZvBm4GbcZuxm3GbYZuhm2GdQHuRm1GbQZuBm0GbMZtxmzGbIZthmyGdMHtRm3AtsHtBnbB9oHsxnaB9kHshnZBzUBsgKxGbAZpRmwGa8ZoRmvGa4ZnRmuGfdKsRmtGawZsBmsGasZrxmrGaoZrhmqGfZKrRmpGagZrBmoGacZqxmnGaYZqhmmGfVKqRmzAskHqBnJB8gHpxnIB8cHphnHB/RKsgKlGaQZmRmkGaMZlRmjGaIZkRmiGdIHpRmhGaAZpBmgGZ8ZoxmfGZ4ZohmeGdEHoRmdGZwZoBmcGZsZnxmbGZoZnhmaGdAHnRnzSvJKnBnySvFKmxnxSvBKmhnwSu9KsgKZGZgZjRmYGZcZiRmXGZYZhRmWGcwHmRmVGZQZmBmUGZMZlxmTGZIZlhmSGcsHlRmRGZAZlBmQGY8ZkxmPGY4ZkhmOGcoHkRm1AtUHkBnVB9QHjxnUB9MHjhnTBzUBsgKNGYwZsRmMGYsZrRmLGYoZqRmKGcYHjRmJGYgZjBmIGYcZixmHGYYZihmGGcUHiRmFGYQZiBmEGYMZhxmDGYIZhhmCGcQHhRm0As8HhBnPB84HgxnOB80HghnNBzoBsAKBGYAZdRmAGX8ZcRl/GX4ZbRl+Gc0GgRl9GXwZgBl8GXsZfxl7GXoZfhl6GcwGfRl5GXgZfBl4GXcZexl3GXYZehl2GcsGeRmvAroHeBm6B7kHdxm5B7gHdhm4BzIBsAJ1GXQZaRl0GXMZZRlzGXIZYRlyGcAHdRlxGXAZdBlwGW8ZcxlvGW4ZchluGb8HcRltGWwZcBlsGWsZbxlrGWoZbhlqGb4HbRl2AsoGbBnKBskGaxnJBsgGahnIBjMBsAJpGWgZXRloGWcZWRlnGWYZVRlmGWkHaRllGWQZaBlkGWMZZxljGWIZZhliGWgHZRlhGWAZZBlgGV8ZYxlfGV4ZYhleGWcHYRmxAsMHYBnDB8IHXxnCB8EHXhnBBysBsAJdGVwZgRlcGVsZfRlbGVoZeRlaGb0HXRlZGVgZXBlYGVcZWxlXGVYZWhlWGbwHWRlVGVQZWBlUGVMZVxlTGVIZVhlSGbsHVRmbAmYHVBlmB2UHUxllB2QHUhlkByoBrgJRGVAZRRlQGU8ZQRlPGU4ZPRlOGe8FURlNGUwZUBlMGUsZTxlLGUoZThlKGe4FTRlJGUgZTBlIGUcZSxlHGUYZShlGGe0FSRnuSu1KSBntSuxKRxnsSutKRhnrSktKrgJFGUQZORlEGUMZNRlDGUIZMRlCGboHRRlBGUAZRBlAGT8ZQxk/GT4ZQhk+GbkHQRk9GTwZQBk8GTsZPxk7GToZPhk6GbgHPRlGAuwFPBnsBesFOxnrBeoFOhnqBTIBrgI5GTgZLRk4GTcZKRk3GTYZJRk2GV0HORk1GTQZOBk0GTMZNxkzGTIZNhkyGVwHNRkxGTAZNBkwGS8ZMxkvGS4ZMhkuGVsHMRmvAr0HMBm9B7wHLxm8B7sHLhm7ByoBrgItGSwZURksGSsZTRkrGSoZSRkqGepKLRkpGSgZLBkoGScZKxknGSYZKhkmGelKKRklGSQZKBkkGSMZJxkjGSIZJhkiGehKJRmYAloHJBlaB1kHIxlZB1gHIhlYB9RKqwIhGSAZFRkgGR8ZERkfGR4ZDRkeGekFIRkdGRwZIBkcGRsZHxkbGRoZHhkaGegFHRkZGRgZHBkYGRcZGxkXGRYZGhkWGecFGRmsArEHGBmxB7AHFxmwB68HFhmvBzABqwIVGRQZCRkUGRMZBRkTGRIZARkSGbQHFRkRGRAZFBkQGQ8ZExkPGQ4ZEhkOGbMHERkNGQwZEBkMGQsZDxkLGQoZDhkKGbIHDRlEAuYFDBnmBeUFCxnlBeQFChnkBTEBqwIJGQgZ/RgIGQcZ+RgHGQYZ9RgGGVEHCRkFGQQZCBkEGQMZBxkDGQIZBhkCGVAHBRkBGQAZBBkAGf8YAxn/GP4YAhn+GE8HARmtArcHABm3B7YH/xi2B7UH/hi1BykBqwL9GPwYIRn8GPsYHRn7GPoYGRn6GK4H/Rj5GPgY/Bj4GPcY+xj3GPYY+hj2GK0H+Rj1GPQY+Bj0GPMY9xjzGPIY9hjyGKwH9RiVAk4H9BhOB00H8xhNB0wH8hhMB8NKpgLxGPAY5RjwGO8Y4RjvGO4Y3RjuGKgH8RjtGOwY8BjsGOsY7xjrGOoY7hjqGKcH7RjpGOgY7BjoGOcY6xjnGOYY6hjmGKYH6RinApkH6BiZB5gH5xiYB5cH5hiXB3YBpgLlGOQY2RjkGOMY1RjjGOIY0RjiGKIH5RjhGOAY5BjgGN8Y4xjfGN4Y4hjeGKEH4RjdGNwY4BjcGNsY3xjbGNoY3hjaGKAH3RiqAqsH3BirB6oH2xiqB6kH2hipB3UBpgLZGNgYzRjYGNcYyRjXGNYYxRjWGJwH2RjVGNQY2BjUGNMY1xjTGNIY1hjSGJsH1RjRGNAY1BjQGM8Y0xjPGM4Y0hjOGJoH0RipAqUH0BilB6QHzxikB6MHzhijB3QBpgLNGMwY8RjMGMsY7RjLGMoY6RjKGJYHzRjJGMgYzBjIGMcYyxjHGMYYyhjGGJUHyRjFGMQYyBjEGMMYxxjDGMIYxhjCGJQHxRioAp8HxBifB54HwxieB50HwhidB3IBowLBGMAYtRjAGL8YsRi/GL4YrRi+GC0HwRi9GLwYwBi8GLsYvxi7GLoYvhi6GCwHvRi5GLgYvBi4GLcYuxi3GLYYuhi2GCsHuRiiAoQHuBiEB4MHtxiDB4IHthiCBy4BowK1GLQYqRi0GLMYpRizGLIYoRiyGJAHtRixGLAYtBiwGK8YsxivGK4YshiuGI8HsRitGKwYsBisGKsYrxirGKoYrhiqGI4HrRiNAioHrBgqBykHqxgpBygHqhgoBy8BowKpGKgYnRioGKcYmRinGKYYlRimGIoHqRilGKQYqBikGKMYpxijGKIYphiiGIkHpRihGKAYpBigGJ8YoxifGJ4YohieGIgHoRilApMHoBiTB5IHnxiSB5EHnhiRBwwBowKdGJwYwRicGJsYvRibGJoYuRiaGIcHnRiZGJgYnBiYGJcYmxiXGJYYmhiWGIYHmRiVGJQYmBiUGJMYlxiTGJIYlhiSGIUHlRikAo0HlBiNB4wHkxiMB4sHkhiLByMBoAKRGJAYhRiQGI8YgRiPGI4YfRiOGCEHkRiNGIwYkBiMGIsYjxiLGIoYjhiKGCAHjRiJGIgYjBiIGIcYixiHGIYYihiGGB8HiRjnSuZKiBjmSuVKhxjlSuRKhhjkSqdKoAKFGIQYeRiEGIMYdRiDGIIYcRiCGIQHhRiBGIAYhBiAGH8Ygxh/GH4Yghh+GIMHgRh9GHwYgBh8GHsYfxh7GHoYfhh6GIIHfRiKAh4HfBgeBx0HexgdBxwHehgcBy4BoAJ5GHgYbRh4GHcYaRh3GHYYZRh2GH4HeRh1GHQYeBh0GHMYdxhzGHIYdhhyGH0HdRhxGHAYdBhwGG8YcxhvGG4YchhuGHwHcRiiAocHcBiHB4YHbxiGB4UHbhiFByMBoAJtGGwYkRhsGGsYjRhrGGoYiRhqGONKbRhpGGgYbBhoGGcYaxhnGGYYahhmGOJKaRhlGGQYaBhkGGMYZxhjGGIYZhhiGOFKZRihAoEHZBiBB4AHYxiAB38HYhh/B+BKnAJhGGAYVRhgGF8YURhfGF4YTRheGBUHYRhdGFwYYBhcGFsYXxhbGFoYXhhaGBQHXRhZGFgYXBhYGFcYWxhXGFYYWhhWGBMHWRidAm8HWBhvB24HVxhuB20HVhhtBywBnAJVGFQYSRhUGFMYRRhTGFIYQRhSGHgHVRhRGFAYVBhQGE8YUxhPGE4YUhhOGHcHURhNGEwYUBhMGEsYTxhLGEoYThhKGHYHTRiHAhIHTBgSBxEHSxgRBxAHShgQBy0BnAJJGEgYPRhIGEcYORhHGEYYNRhGGHIHSRhFGEQYSBhEGEMYRxhDGEIYRhhCGHEHRRhBGEAYRBhAGD8YQxg/GD4YQhg+GHAHQRifAnsHQBh7B3oHPxh6B3kHPhh5Bw4BnAI9GDwYYRg8GDsYXRg7GDoYWRg6GGwHPRg5GDgYPBg4GDcYOxg3GDYYOhg2GGsHORg1GDQYOBg0GDMYNxgzGDIYNhgyGGoHNRieAnUHNBh1B3QHMxh0B3MHMhhzBxcBmQIxGDAYJRgwGC8YIRgvGC4YHRguGGYHMRgtGCwYMBgsGCsYLxgrGCoYLhgqGGUHLRgpGCgYLBgoGCcYKxgnGCYYKhgmGGQHKRiXAlQHKBhUB1MHJxhTB1IHJhhSByoBmQIlGCQYGRgkGCMYFRgjGCIYERgiGGAHJRghGCAYJBggGB8YIxgfGB4YIhgeGF8HIRgdGBwYIBgcGBsYHxgbGBoYHhgaGF4HHRibAmkHHBhpB2gHGxhoB2cHGhhnBysBmQIZGBgYDRgYGBcYCRgXGBYYBRgWGN9KGRgVGBQYGBgUGBMYFxgTGBIYFhgSGN5KFRgRGBAYFBgQGA8YExgPGA4YEhgOGN1KERiaAmMHEBhjB2IHDxhiB2EHDhhhBxMBmQINGAwYMRgMGAsYLRgLGAoYKRgKGFcHDRgJGAgYDBgIGAcYCxgHGAYYChgGGFYHCRgFGAQYCBgEGAMYBxgDGAIYBhgCGFUHBRjcSttKBBjbStpKAxjaStlKAhjZStBKlgIBGAAY9RcAGP8X8Rf/F/4X7Rf+F1oHARj9F/wXABj8F/sX/xf7F/oX/hf6F1kH/Rf5F/gX/Bf4F/cX+xf3F/YX+hf2F1gH+RfYStdK+BfXStZK9xfWStVK9hfVStRKlgL1F/QX6Rf0F/MX5RfzF/IX4RfyF1QH9RfxF/AX9BfwF+8X8xfvF+4X8hfuF1MH8RftF+wX8BfsF+sX7xfrF+oX7hfqF1IH7ReYAl0H7BddB1wH6xdcB1sH6hdbByoBlgLpF+gX3RfoF+cX2RfnF+YX1RfmF9NK6RflF+QX6BfkF+MX5xfjF+IX5hfiF9JK5RfhF+AX5BfgF98X4xffF94X4hfeF9FK4ReXAlcH4BdXB1YH3xdWB1UH3hdVB9BKlgLdF9wXARjcF9sX/RfbF9oX+RfaF89K3RfZF9gX3BfYF9cX2xfXF9YX2hfWF85K2RfVF9QX2BfUF9MX1xfTF9IX1hfSF81K1RfMSstK1BfLSspK0xfKSslK0hfJSshKkwLRF9AXxRfQF88XwRfPF84XvRfOF04H0RfNF8wX0BfMF8sXzxfLF8oXzhfKF00HzRfJF8gXzBfIF8cXyxfHF8YXyhfGF0wHyRfHSsZKyBfGSsVKxxfFSsRKxhfESsNKkwLFF8QXuRfEF8MXtRfDF8IXsRfCF0gHxRfBF8AXxBfAF78Xwxe/F74Xwhe+F0cHwRe9F7wXwBe8F7sXvxe7F7oXvhe6F0YHvReVAlEHvBdRB1AHuxdQB08HuhdPBykBkwK5F7gXrRe4F7cXqRe3F7YXpRe2F8JKuRe1F7QXuBe0F7MXtxezF7IXtheyF8FKtRexF7AXtBewF68XsxevF64XsheuF8BKsReUAksHsBdLB0oHrxdKB0kHrhdJBxEBkwKtF6wX0ResF6sXzRerF6oXyReqF79KrRepF6gXrBeoF6cXqxenF6YXqhemF75KqRelF6QXqBekF6MXpxejF6IXpheiF71KpRe8SrtKpBe7SrpKoxe6SrlKohe5SrhKjwKhF6AXlRegF58XkRefF54XjReeF0IHoRedF5wXoBecF5sXnxebF5oXnheaF0EHnReZF5gXnBeYF5cXmxeXF5YXmheWF0AHmRe3SrZKmBe2SrVKlxe1SrRKlhe0SrNKjwKVF5QXiReUF5MXhReTF5IXgReSFzwHlReRF5AXlBeQF48XkxePF44XkheOFzsHkReNF4wXkBeMF4sXjxeLF4oXjheKFzoHjReSAkUHjBdFB0QHixdEB0MHihdDB1cBjwKJF4gXfReIF4cXeReHF4YXdReGFzYHiReFF4QXiBeEF4MXhxeDF4IXhheCFzUHhReBF4AXhBeAF38Xgxd/F34Xghd+FzQHgReRAj8HgBc/Bz4Hfxc+Bz0Hfhc9BygBjwJ9F3wXoRd8F3sXnRd7F3oXmRd6F7JKfRd5F3gXfBd4F3cXexd3F3YXehd2F7FKeRd1F3QXeBd0F3MXdxdzF3IXdhdyF7BKdReQAjkHdBc5BzgHcxc4BzcHchc3B69KjAJxF3AXZRdwF28XYRdvF24XXRduFwkHcRdtF2wXcBdsF2sXbxdrF2oXbhdqFwgHbRdpF2gXbBdoF2cXaxdnF2YXahdmFwcHaReLAiQHaBckByMHZxcjByIHZhciByYBjAJlF2QXWRdkF2MXVRdjF2IXURdiFzAHZRdhF2AXZBdgF18XYxdfF14XYhdeFy8HYRddF1wXYBdcF1sXXxdbF1oXXhdaFy4HXReEAgYHXBcGBwUHWxcFBwQHWhcEBycBjAJZF1gXTRdYF1cXSRdXF1YXRRdWFyoHWRdVF1QXWBdUF1MXVxdTF1IXVhdSFykHVRdRF1AXVBdQF08XUxdPF04XUhdOFygHUReOAjMHUBczBzIHTxcyBzEHThcxBy8BjAJNF0wXcRdMF0sXbRdLF0oXaRdKFycHTRdJF0gXTBdIF0cXSxdHF0YXShdGFyYHSRdFF0QXSBdEF0MXRxdDF0IXRhdCFyUHRReNAi0HRBctBywHQxcsBysHQhcrBy4BiQJBF0AXNRdAFz8XMRc/Fz4XLRc+F8sFQRc9FzwXQBc8FzsXPxc7FzoXPhc6F8oFPRc5FzgXPBc4FzcXOxc3FzYXOhc2F8kFOReuSq1KOBetSqxKNxesSqtKNherSiUBiQI1FzQXKRc0FzMXJRczFzIXIRcyFyQHNRcxFzAXNBcwFy8XMxcvFy4XMhcuFyMHMRctFywXMBcsFysXLxcrFyoXLhcqFyIHLRc+AsgFLBfIBccFKxfHBcYFKhfGBSYBiQIpFygXHRcoFycXGRcnFyYXFRcmFx4HKRclFyQXKBckFyMXJxcjFyIXJhciFx0HJRchFyAXJBcgFx8XIxcfFx4XIhceFxwHIReLAicHIBcnByYHHxcmByUHHhclBy4BiQIdFxwXQRccFxsXPRcbFxoXORcaF6pKHRcZFxgXHBcYFxcXGxcXFxYXGhcWF6lKGRcVFxQXGBcUFxMXFxcTFxIXFhcSF6hKFReKAiEHFBchByAHExcgBx8HEhcfB6dKhQIRFxAXBRcQFw8XARcPFw4X/RYOFyUGERcNFwwXEBcMFwsXDxcLFwoXDhcKFyQGDRcJFwgXDBcIFwcXCxcHFwYXChcGFyMGCReGAg8HCBcPBw4HBxcOBw0HBhcNByQBhQIFFwQX+RYEFwMX9RYDFwIX8RYCFxgHBRcBFwAXBBcAF/8WAxf/Fv4WAhf+FhcHARf9FvwWABf8FvsW/xb7FvoW/hb6FhYH/RZRAiIG/BYiBiEG+xYhBiAG+hYgBlhKhQL5FvgW7Rb4FvcW6Rb3FvYW5Rb2FhIH+Rb1FvQW+Bb0FvMW9xbzFvIW9hbyFhEH9RbxFvAW9BbwFu8W8xbvFu4W8hbuFhAH8RaIAhsH8BYbBxoH7xYaBxkH7hYZBy0BhQLtFuwWERfsFusWDRfrFuoWCRfqFgwH7RbpFugW7BboFucW6xbnFuYW6hbmFgsH6RblFuQW6BbkFuMW5xbjFuIW5hbiFgoH5RaHAhUH5BYVBxQH4xYUBxMH4hYTBywBggLhFuAW1RbgFt8W0RbfFt4WzRbeFgYH4RbdFtwW4BbcFtsW3xbbFtoW3hbaFgUH3RbZFtgW3BbYFtcW2xbXFtYW2hbWFgQH2RaDAgMH2BYDBwIH1xYCBwEH1hYBBycBggLVFtQWyRbUFtMWxRbTFtIWwRbSFtEF1RbRFtAW1BbQFs8W0xbPFs4W0hbOFtAF0RbNFswW0BbMFssWzxbLFsoWzhbKFs8FzRaEAgkHzBYJBwgHyxYIBwcHyhYHByYBggLJFsgWvRbIFscWuRbHFsYWtRbGFqZKyRbFFsQWyBbEFsMWxxbDFsIWxhbCFqVKxRbBFsAWxBbAFr8Wwxa/Fr4Wwha+FqRKwRY/As4FwBbOBc0FvxbNBcwFvhbMBRwBggK9FrwW4Ra8FrsW3Ra7FroW2Ra6FgAHvRa5FrgWvBa4FrcWuxa3FrYWuha2Fv8GuRa1FrQWuBa0FrMWtxazFrIWthayFv4GtRajSqJKtBaiSqFKsxahSqBKshagSp9KfwKxFrAWpRawFq8WoRavFq4WnRauFp5KsRatFqwWsBasFqsWrxarFqoWrhaqFp1KrRapFqgWrBaoFqcWqxanFqYWqhamFpxKqRabSppKqBaaSplKpxaZSphKphaYSiIBfwKlFqQWmRakFqMWlRajFqIWkRaiFvoGpRahFqAWpBagFp8WoxafFp4WohaeFvkGoRadFpwWoBacFpsWnxabFpoWnhaaFvgGnRaXSpZKnBaWSpVKmxaVSpRKmhaUSpNKfwKZFpgWjRaYFpcWiRaXFpYWhRaWFvQGmRaVFpQWmBaUFpMWlxaTFpIWlhaSFvMGlRaRFpAWlBaQFo8WkxaPFo4WkhaOFvIGkRaBAv0GkBb9BvwGjxb8BvsGjhb7BkgBfwKNFowWsRaMFosWrRaLFooWqRaKFpJKjRaJFogWjBaIFocWixaHFoYWihaGFpFKiRaFFoQWiBaEFoMWhxaDFoIWhhaCFpBKhRaAAvcGhBb3BvYGgxb2BvUGghb1Bo9KewKBFoAWdRaAFn8WcRZ/Fn4WbRZ+Fu4GgRZ9FnwWgBZ8FnsWfxZ7FnoWfhZ6Fu0GfRZ5FngWfBZ4FncWexZ3FnYWehZ2FuwGeRZ8AuUGeBblBuQGdxbkBuMGdhbjBlwBewJ1FnQWaRZ0FnMWZRZzFnIWYRZyFn8GdRZxFnAWdBZwFm8WcxZvFm4WchZuFn4GcRZtFmwWcBZsFmsWbxZrFmoWbhZqFn0GbRZ+AvEGbBbxBvAGaxbwBu8GahbvBlsBewJpFmgWXRZoFmcWWRZnFmYWVRZmFugGaRZlFmQWaBZkFmMWZxZjFmIWZhZiFucGZRZhFmAWZBZgFl8WYxZfFl4WYhZeFuYGYRZlAnwGYBZ8BnsGXxZ7BnoGXhZ6BiIBewJdFlwWgRZcFlsWfRZbFloWeRZaFuIGXRZZFlgWXBZYFlcWWxZXFlYWWhZWFuEGWRZVFlQWWBZUFlMWVxZTFlIWVhZSFuAGVRZ9AusGVBbrBuoGUxbqBukGUhbpBk8BdwJRFlAWRRZQFk8WQRZPFk4WPRZOFo5KURZNFkwWUBZMFksWTxZLFkoWThZKFo1KTRZJFkgWTBZIFkcWSxZHFkYWShZGFoxKSRZ4AtMGSBbTBtIGRxbSBtEGRhbRBotKdwJFFkQWORZEFkMWNRZDFkIWMRZCFtwGRRZBFkAWRBZAFj8WQxY/Fj4WQhY+FtsGQRY9FjwWQBY8FjsWPxY7FjoWPhY6FtoGPRaKSolKPBaJSohKOxaISodKOhaHSiEBdwI5FjgWLRY4FjcWKRY3FjYWJRY2FtYGORY1FjQWOBY0FjMWNxYzFjIWNhYyFtUGNRYxFjAWNBYwFi8WMxYvFi4WMhYuFtQGMRZ6At8GMBbfBt4GLxbeBt0GLhbdBk0BdwItFiwWURYsFisWTRYrFioWSRYqFtAGLRYpFigWLBYoFicWKxYnFiYWKhYmFs8GKRYlFiQWKBYkFiMWJxYjFiIWJhYiFs4GJRZ5AtkGJBbZBtgGIxbYBtcGIhbXBksBcwIhFiAWFRYgFh8WERYfFh4WDRYeFsoGIRYdFhwWIBYcFhsWHxYbFhoWHhYaFskGHRYZFhgWHBYYFhcWGxYXFhYWGhYWFsgGGRZ0AsEGGBbBBsAGFxbABr8GFha/BjMBcwIVFhQWCRYUFhMWBRYTFhIWARYSFvUFFRYRFhAWFBYQFg8WExYPFg4WEhYOFvQFERYNFgwWEBYMFgsWDxYLFgoWDhYKFvMFDRZ2As0GDBbNBswGCxbMBssGChbLBjIBcwIJFggW/RUIFgcW+RUHFgYW9RUGFsQGCRYFFgQWCBYEFgMWBxYDFgIWBhYCFsMGBRYBFgAWBBYAFv8VAxb/Ff4VAhb+FcIGARZHAvIFABbyBfEF/xXxBfAF/hXwBSABcwL9FfwVIRb8FfsVHRb7FfoVGRb6Fb4G/RX5FfgV/BX4FfcV+xX3FfYV+hX2Fb0G+RX1FfQV+BX0FfMV9xXzFfIV9hXyFbwG9RV1AscG9BXHBsYG8xXGBsUG8hXFBhIBbwLxFfAV5RXwFe8V4RXvFe4V3RXuFbkF8RXtFewV8BXsFesV7xXrFeoV7hXqFbgF7RXpFegV7BXoFecV6xXnFeYV6hXmFbcF6RVwAq8G6BWvBq4G5xWuBq0G5hWtBh4BbwLlFeQV2RXkFeMV1RXjFeIV0RXiFbgG5RXhFeAV5BXgFd8V4xXfFd4V4hXeFbcG4RXdFdwV4BXcFdsV3xXbFdoV3hXaFbYG3RU6ArYF3BW2BbUF2xW1BbQF2hW0BR8BbwLZFdgVzRXYFdcVyRXXFdYVxRXWFbIG2RXVFdQV2BXUFdMV1xXTFdIV1hXSFbEG1RXRFdAV1BXQFc8V0xXPFc4V0hXOFbAG0RVyArsG0BW7BroGzxW6BrkGzhW5BhMBbwLNFcwV8RXMFcsV7RXLFcoV6RXKFawGzRXJFcgVzBXIFccVyxXHFcYVyhXGFasGyRXFFcQVyBXEFcMVxxXDFcIVxhXCFaoGxRVxArUGxBW1BrQGwxW0BrMGwhWzBhsBagLBFcAVtRXAFb8VsRW/Fb4VrRW+FaYGwRW9FbwVwBW8FbsVvxW7FboVvhW6FaUGvRW5FbgVvBW4FbcVuxW3FbYVuhW2FaQGuRVrApcGuBWXBpYGtxWWBpUGthWVBmoBagK1FbQVqRW0FbMVpRWzFbIVoRWyFaAGtRWxFbAVtBWwFa8VsxWvFa4VshWuFZ8GsRWtFawVsBWsFasVrxWrFaoVrhWqFZ4GrRVuAqkGrBWpBqgGqxWoBqcGqhWnBmkBagKpFagVnRWoFacVmRWnFaYVlRWmFZoGqRWlFaQVqBWkFaMVpxWjFaIVphWiFZkGpRWhFaAVpBWgFZ8VoxWfFZ4VohWeFZgGoRVtAqMGoBWjBqIGnxWiBqEGnhWhBmgBagKdFZwVwRWcFZsVvRWbFZoVuRWaFZQGnRWZFZgVnBWYFZcVmxWXFZYVmhWWFZMGmRWVFZQVmBWUFZMVlxWTFZIVlhWSFZIGlRVsAp0GlBWdBpwGkxWcBpsGkhWbBmYBZgKRFZAVhRWQFY8VgRWPFY4VfRWOFSsGkRWNFYwVkBWMFYsVjxWLFYoVjhWKFSoGjRWJFYgVjBWIFYcVixWHFYYVihWGFSkGiRVnAoUGiBWFBoQGhxWEBoMGhhWDBmVKZgKFFYQVeRWEFYMVdRWDFYIVcRWCFY4GhRWBFYAVhBWAFX8VgxV/FX4VghV+FY0GgRV9FXwVgBV8FXsVfxV7FXoVfhV6FYwGfRVTAigGfBUoBicGexUnBiYGehUmBh0BZgJ5FXgVbRV4FXcVaRV3FXYVZRV2FYgGeRV1FXQVeBV0FXMVdxVzFXIVdhVyFYcGdRVxFXAVdBVwFW8VcxVvFW4VchVuFYYGcRVpApEGcBWRBpAGbxWQBo8GbhWPBhoBZgJtFWwVkRVsFWsVjRVrFWoViRVqFYIG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J0r4APkACQAIACZKJUr3APgACAAHACRKI0r2APcABwAGACJKIUr1APYABgAFACBKH0r0APUABQAEAB5KHUrzAPQABAADABxKAQDyAPMAAwACAAAAG0oJAfEACQEIAfAACAEHAe8ABwEGAe4ABgEFAe0ABQEEAewABAEDAesAAwECAeoAAgEBAekAAQEAAegAAAH/AOcA/wD+AOYA/gD9AOUA/QD8AOQA/AD7AOMA+wD6AOIA+gD5AOEA+QD4AOAA+AD3AN8A9wD2AN4A9gD1AN0A9QD0ANwA9ADzANsA8wDyANoAGkrxANkA8QDwANgA8ADvANcA7wDuANYA7gDtANUA7QDsANQA7ADrANMA6wDqANIA6gDpANEA6QDoANAA6ADnAM8A5wDmAM4A5gDlAM0A5QDkAMwA5ADjAMsA4wDiAMoA4gDhAMkA4QDgAMgA4ADfAMcA3wDeAMYA3gDdAMUA3QDcAMQA3ADbAMMA2wDaAMIAGUrZAMEA2QDYAMAA2ADXAL8A1wDWAL4A1gDVAL0A1QDUALwA1ADTALsA0wDSALoA0gDRALkA0QDQALgA0ADPALcAzwDOALYAzgDNALUAzQDMALQAzADLALMAywDKALIAygDJALEAyQDIALAAyADHAK8AxwDGAK4AxgDFAK0AxQDEAKwAxADDAKsAwwDCAKoAGErBAKkAwQDAAKgAwAC/AKcAvwC+AKYAvgC9AKUAvQC8AKQAvAC7AKMAuwC6AKIAugC5AKEAuQC4AKAAuAC3AJ8AtwC2AJ4AtgC1AJ0AtQC0AJwAtACzAJsAswCyAJoAsgCxAJkAsQCwAJgAsACvAJcArwCuAJYArgCtAJUArQCsAJQArACrAJMAqwCqAJIAF0qpAJEAqQCoAJAAqACnAI8ApwCmAI4ApgClAI0ApQCkAIwApACjAIsAowCiAIoAogChAIkAoQCgAIgAoACfAIcAnwCeAIYAngCdAIUAnQCcAIQAnACbAIMAmwCaAIIAmgCZAIEAmQCYAIAAmACXAH8AlwCWAH4AlgCVAH0AlQCUAHwAlACTAHsAkwCSAHoAFkqRAHkAkQCQAHgAkACPAHcAjwCOAHYAjgCNAHUAjQCMAHQAjACLAHMAiwCKAHIAigCJAHEAiQCIAHAAiACHAG8AhwCGAG4AhgCFAG0AhQCEAGwAhACDAGsAgwCCAGoA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BQADAAIAAQAFAAMACwACAAUAAwALAAIACwADAAUAAgALAAMABQACAAMACwAFAAIAAwAFAAsAAgAFAAMACwACAAUAAwALAAIABQADAAIAAQAFAAMAAgABAAUAAwACAAEABQADAAIAAQAFAAMAAgABAAMABQACAAEAAwAFAAIAAQAFAAQAAwACAAUABAADAAIABQAHAAQAAwAFAAMAAgABAAUAAwACAAEABQAEAAMAAgAFAAQAAwACAAUABAADAAIABQADAAIAAQAFAAMAAgABAAUAAwACAAEABQADAAIAAQAFAAMAAgABAAUAAwACAAEABQADAAIAAQAFAAMAAgABAAUAAwACAAEABQADAAIAAQAFAAQAAwACAAUAAwACAAEABQADAAIAAQAFAAMAAgABAAUAAwACAAEABQADAAIAAQAFAAMAAgABAAUABAADAAIABQAEAAMAAgAFAAQAAwACAAUABAADAAIABQAEAAMAAgAFAAQAAwACAAUABAADAAIABQAEAAMAAgAFAAQAAwACAAUAAwACAAEABQADAAIAAQAFAAMAAgABAAUAAwACAAEABQADAAIAAQAFAAMAAgABAAUAAwACAAEABQAEAAMAAgAFAAQAAwACAAUABAADAAIABQADAAIAAQAFAAMAAgABAAUAAwACAAEABQADAAIAAQAFAAQAAwACAAUABAADAAIABQAEAAMAAgAFAAQAAwACAAUABAADAAIABQAEAAMAAgAFAAQAAwACAAUABAADAAIABQAEAAMAAgAFAAQAAwACAAUABAADAAIABQAEAAMAAgAFAAQAAwACAAUAAwACAAEABQAEAAMAAgAFAAMAAgABAAUABAADAAIABQAEAAMAAgAFAAQAAwACAAUABAADAAIABQAEAAMAAgAFAAQAAwACAAUAAwACAAEABQADAAIAAQAFAAQAAwACAAUABAADAAIABQAEAAMAAgAFAAQAAwACAAUABAADAAIABQAEAAMAAgAFAAQAAwACAAUABAADAAIABQAEAAMAAgAFAAQAAwACAAUABAADAAIABQAEAAMAAgAFAAQAAwACAAUABAADAAIABQAEAAMAAgAFAAQAAwACAAUABAADAAIABQAEAAMAAgAFAAQAAwACAAUABAADAAIABQAEAAMAAgAFAAQAAwACAAUABAADAAIABQAEAAMAAgAFAAQAAwACAAUABAADAAIABQAEAAMAAgAFAAQAAwACAAUABAADAAIABQAEAAMAAgAFAAQAAwACAAUABAADAAIABQAEAAMAAgAFAAQAAwACAAUABAADAAIABQAEAAMAAgAFAAQAAwACAAUABAADAAIABQAEAAMAAgAFAAQAAwACAAUABAADAAIABQAEAAMAAgAFAAQAAwACAAUABAADAAIABQAEAAMAAgAFAAQAAwACAAUABAADAAIABQAEAAMAAgAFAAQAAwACAAUABAADAAIABQAEAAMAAgAFAAQAAwACAAUABAADAAIABQAEAAMAAgAFAAQAAwACAAUABAADAAIABQAEAAMAAgAFAAQAAwACAAUABAADAAIABQAEAAMAAgAFAAQAAwACAAUABAADAAIABQAEAAMAAgAFAAQAAwACAAUABAADAAIABQAEAAMAAgAFAAQAAwACAAUABAADAAIABQAEAAMAAgAFAAQAAwACAAUABAADAAIABQAEAAMAAgAFAAQAAwACAAUABAADAAIABQAEAAMAAgAFAAQAAwACAAUABAADAAIABQAEAAMAAgAFAAQAAwACAAUABAADAAIABQAEAAMAAgAFAAQAAwACAAUABAADAAIABQAEAAMAAgAFAAQAAwACAAUABAADAAIABQAEAAMAAgAFAAQAAwACAAUABAADAAIABQAEAAMAAgAFAAQAAwACAAUABAADAAIABQAEAAMAAgAFAAQAAwACAAUABAADAAIABQAEAAMAAgAFAAQAAwACAAUABAADAAIABQAEAAMAAgAFAAQAAwACAAUABAADAAIABQAEAAMAAgAFAAQAAwACAAUABAADAAIABQAEAAMAAgAFAAQAAwACAAUABAADAAIABQAEAAMAAgAFAAQAAwACAAUABAADAAIABQAEAAMAAgAFAAQAAwACAAUABAADAAIABQAEAAMAAgAFAAQAAwACAAUABAADAAIABQAEAAMAAgAFAAQAAwACAAUABAADAAIABQAEAAMAAgAMAAsACgAJAAsACgAJAAgAAQAAAAIAAwAEAAMABQAHAAAAAQADAAIABwADAAQABQAAAAEAAwACAAcAAwAEAAUAAQAAAAIAAwAEAAMABQAHAAwACwAKAAkACwAKAAkACAAAAAMAAQAPAAAAAwABAA8ABwADAAQABQAHAAMABAAFAAQABQADAAcABAAFAAMABwAEAAMABwAFAAQABQADAAcABAAFAAMABwAEAAMABwAFAAEAAAACAAMAEQASABAADwASABEAEAAPAAEAAAACAAMABwADAAgABAAHAAMABAAIAAQAAwAHAAUABAADAAUABwAHAAMABAAIAAcAAwAEAAUABAADAAcABQAEAAMABQAHAAcACAADAAIABwADAAgAAgADAAcAAgAEAAMAAgAEAAcABwAIAAMAAgAHAAMAAgAIAAMABwACAAQAAwACAAQABwAAAA8AEwABAAAADwAIAAEAAAAPAAEACAAAABMADwABAA8AAAAIAAEAAAAPABMAAQAPAAAACAABAAAADwATAAEAAAAPAAEACAAAAA8AAQATAA8AAAABAAIADwAAAAkAAQAPAAAAAQACAA8AAAABAAIADwAJAAAAAQAPAAAAEwABAA8ACQAAAAEADwAAAAEAAgAPAAAAAQACAA8AAAAJAAEAEgARABAADwASABEAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEgARABAADwARABIAEAAPAA8ACQAAAAEADwAAAAgAAQAAAAMADwABAAcACAADAAIABwADAAQACAAHAAMABAAFAAQABQADAAcABAADAAIAAQARABIAEAAPABEAEgAQAA8ADwAAABMAAQAAAA8AEwABAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABQAEAAMABwAEAAMAAgABAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHABEAEAASAA8AEQASABAADwASABEAEAAPABEAEgAQAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPAAkACgAIAAcACQAKAAgABwAJAAoACAAHAAkACgAIAAcACQAKAAgABwAJAAoACAAHABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABAAEQASAA8AEAARABIADwAQABEAEgAPABAAEQAPABIAEAARAA8ADgAQABEADwASABAAEQAPABIAEAARABIADwAQABEAEgAPABAAEQASAA8AEAARABIADwAQABEAEgAPAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgACQAPAAAACAATAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAPAAAACAATAAgABwAJAAMACAAHAAkABgAIAAcACQAGAAgABwAJAAYACAAHAAkAAwAIAAcACQAGAAAAAQADAAIAAwALAAQABQAAAAEAAwACAAsAAwAEAAUAAAADAAEAEwAAAAMAAQATAAsAAwAEAAUACwADAAQABQAEAAMACwAFAAQABQADAAsABAAFAAMACwAEAAMACwAFAAEAAAACAAMAFQAWABQAEwAWABUAFAATAAEAAAACAAMACwADAAQADAADAAsABAAMAAQAAwALAAUACwADAAQADAALAAMABAAFAAQAAwALAAUACwAMAAMAAgALAAMADAACAAMACwACAAQACwAMAAMAAgALAAMAAgAMAAMACwACAAQAAAATAAEADAAAABMAAQAMAAAAEwAMAAEAAAATAAwAAQAAABMAAQAPAAAAEwABAA0AEwAAAA8AAQATAAAADQABABMAAAANAAEAEwAAAAEAAgATAAAADQABABMAAAAPAAEAEwAAAA0AAQATAAAADwABABMAAAANAAEAEwAAAA0AAQAWABUAFAATABYAFQAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAWABUAFAATABYAFQAUABMAFQAWABQAEwAWABUAFAATABUAFgAUABMAEwAAAA0AAQAAABMADAABAAAAAwABABMACwAMAAMAAgALAAMABAAMAAsAAwAEAAUABAAFAAMACwAVABYAFAATABUAFgAUABMAEwAAAA8AAQAEAAUAAwALAAQABQADAAsABAAFAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwALAAwAAwACAAsADAADAAIACwAMAAMAAgALAAwAAwACAAsADAADAAIACwAMAAMAAgAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAVABYAFAATABUAFgAUABMAFgAVABQAEwAVABYAFAATABUAFgAUABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwANAA4ADAALAA0ADgAMAAsADQAOAAwACwANAA4ADAALAA0ADgAMAAsADQAOAAwACwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAUABUAFgATABQAFQAWABMAFAAVABMAFgAUABUAEwAWABQAFQATABIAFAAVABMAFgAUABUAEwAWABQAFQAWABMAFAAVABYAEwAUABUAFgATABQAFQAWABMAFAAVABYAEwATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADAABABMAAAANAAwAEwAAAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAEwAAAA8ADQAMAAsADQADAAwACwANAAoADAALAA0ACgAMAAsADQAKAAwACwANAAoADAALAA0ACgAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAQAAwAFAAcAAwAHAAQABQADAAcABAAFAAcAAwAEAAUAAwAHAAQABQAEAAMABwAFAAMABwACAAEAAwACAAcAAQAAAAEAAwACAAcAAwACAAAABwADAAgAAgACAAMAAQAHAAMABwACAAQAAgADAAEABwABAAAAAgADABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAIAAMABwAEAAUABAADAAUABwADAAcABAAFABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwADAAcABAAFAAcAAwAEAAUAAwAHAAQABQAEAAUAAwAHAAcAAwAAAAIAAAADAA8AAQAHAAMAAAACAAcACAADAAIAEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwAEAAMABQAHAAQAAwAFAAcABAADAAUABwAEAAUAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAMABQAHAAIAAwABAAAAAgADAAEAAAABAAAAAgADAAMAAgAEAAcAEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPAAQAAwAFAAcABAADAAUABwAEAAMABwAFAAcAAwAIAAQABwADAAgABAAHAAMACAACAAcAAwAEAAgAAwAHAAQACAADAAcAAgAEAAMABAAHAAUAAwAEAAcABQADAAIABAAHAAMABAAHAAsABwADAAQABQAHAAMABAAFAAcAAwAEAAgABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAQAAwAHAAUABwADAAQABQAEAAMABwAFAAQAAwAFAAcABAADAAcABQADAAcAAgABAAcAAwACAAAAAAABAAMAAgADAAIABwABAAMAAgABAAcAAAABAAIAAwACAAMAAQAHAAIAAwABAAAAAQAAAAIAAwACAAMAAQAAAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAHAAMABAAIAAcAAwAIAAQABwADAAQACAADAAcABAACAAMABAAHAAIABAADAAcAAgAEAAMABwALAAAADwABAAMAAAAPAAEAAwAAAA8ACAABAAAADwABAAMAAAAPAAEAAgAAAA8AAQAIAAAADwABAAkAAAAPAAEACAAAAA8AAQAIAAAADwABAAgAAAAPAAEAAwAAAA8AAQADAAAADwAIAAEAAAAPAAEAAwAAAA8AAwABAA8AAAAIAAEAAAAPAAMACAAAAAEADwATAAAADwABABMAAAABAA8AEwAAAAEADwATAAAAAQATAA8AAAAPAAEAEwAPAAAACAABAA8AAAAIAAEADwAAAAkAAQAPAAAACAAJAA8AAAAIAAEADwAAAAgACQAPAAAACQABAA8AAAAJAAgADwAAAAgAAQAPAAAACQAIAA8AAAAJAAgADwAAAAEAAgAPAAAACAAJAA8AAAAIAAkADwAAAAgACQAPAAAACQABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8ACQAAAAEADwAAAAgAAQAPAAAACAABAAAADwATAAEAAAAPABMAAQAPAAAAAQACAAAADwATAAkAAAAPABMAAQAPAAAAEwAJAA8AAAABAAIAAAAPABMACAAAAA8AEwABAAAADwATAAEADwAAABMAAQAAAA8AEwABAAAADwATAAEADwAAABMACQAPAAAACQABAAAADwATAAkAAAAPABMAAQAAAA8AEwABAA8AAAABAAIAAAAPABMAAQARABAAEgAPABEAEAASAA8AEQASABAADwARABAAEgAPABAAEQASAA8AEQASABAADwASABEAEAAPABEAEgAQAA8AEAARABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABAAEQAPAA4AEQAQABIADwARABAAEgAPABEAEAASAA8AEAARAA8AEgARABAAEgAPABEAEAASAA8AEQAQABIADwAQABEAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEAARAA8AEgARABAAEgAPABEAEAASAA8AEAARAA8AEgARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABAAEQASAA8AEQASABAADwASABEAEAAPABEAEAASAA8AEAARABIADwARABAAEgAPABEAEAASAA8AEAARABIADwARABAAEgAPABAAEQASAA8AEQAQABIADwAPAAAACAABAA8ACQAAAAEADwAAAAgAAQAAAA8AAwAIAA8AAAAIAAEAAAADAA8AAQAHAAMAAAACAAcACAADAAIACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAHAAMABAAFAAcAAwAEAAgABwADAAQABQADAAcABAAFAAQABQADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQAQABIADwAQABEAEgAPABEAEAASAA8AAAAPABMAAQAPAAAAEwABAAAADwATAAEABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcAEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABwAIAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMABAAHAAgAAwAEAAcACAADAAIABwAIAAMABAAHAAMACAAEAAcACAADAAIABwADAAgABAAHAAMACAAEAAcACAADAAIABwAIAAMABAAHAAgAAwAEAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIACgAJAAgABwAKAAkACAAHAAoACQAIAAcACQAKAAgABwAKAAkACAAHAAoACQAIAAcACQAKAAgABwAKAAkACAAHAAoACQAIAAcACQAKAAgABwAKAAkACAAHAAoACQAIAAcACQAKAAgABwAKAAkACAAHAAoACQAIAAcACQAKAAgABwAKAAkACAAHAAkACgAIAAcAEQASABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABEAEgAQAA8AEgARABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwAIAAcAAwACAAgABwADAAIACAAHAAMAAgAIAAcACQADAAgABwADAAIACAAHAAMAAgAIAAcACQAGAAgABwADAAIACAAHAAMAAgAIAAcACQAGAAgABwADAAIACAAHAAMAAgAIAAcACQADAAgABwADAAkACAAHAAMACQAIAAcACQAGAAgABwADAAkACAAHAAkAAwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwAPABAADgANAA8AEAAOAA0ADwAQAA4ADQAPABAADgANAA8AEAAOAA0ADwAQAA4ADQAPABAADgANAA8AEAAOAA0ADwAQAA4ADQAPABAADgANAA8AEAAOAA0ADwAQAA4ADQAPABAADgANAA8AEAAOAA0ADwAQAA4ADQAPABAADgANAA8AEAAOAA0ADwAQAA4ADQAPABAADgANAA8AEAAOAA0ADwAQAA4ADQAPABAADgANAA8AEAAOAA0ADwAQAA4ADQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAAAADwAIAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAATAA8AAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPAAEACAAPAAAACAABAAgACQAHAAoACQAIAAoABwAIAAkABwAGAAgACQAHAAYACAAJAAcABgAIAAkABwAGAAgACQAHAAYACAAJAAcABgAJAAgACgAHAAkACAAKAAcACQAIAAoABwAJAAgACgAHAAMACwAEAAUABAADAAUACwADAAsABAAFAAsAAwAEAAUAAwALAAQABQADAAsABAAFAAQAAwALAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAIAAQALAAMADAACAAsAAwAAAAIAAAABAAMAAgADAAIACwABAAMAAgABAAsAAQAAAAIAAwACAAMAAQALAAMACwACAAQAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATAAsAAwAEAAUACwADAAQADAALAAMABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAQAAwAFAAsAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATAAMACwAEAAUABAAFAAMACwADAAsABAAFAAsAAwAEAAUACwADAAAAAgALAAwAAwACAAsAAwAAAAEAAAADAAEAEwAWABUAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATAAQAAwAFAAsABAAFAAMACwAEAAMABQALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABAAFAAMACwAEAAMABQALAAQABQADAAsAAgADAAEAAAADAAIABAALAAEAAAACAAMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFgAVABQAEwAVABYAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATAAQAAwAFAAsABAADAAUACwALAAMADAAEAAsAAwAEAAwACwADAAwAAgALAAMADAAEAAMACwAEAAwAAwAEAAsABQADAAsAAgAEAAMABAALAAUAAwACAAQACwALAAMABAAFAAsAAwAEAAUACwADAAQADAALAAMABAAFAAsAAwAEAAUACwADAAQABQALAAMABAAFAAMACwAEAAUAAwALAAQABQAEAAMACwAFAAQAAwAFAAsABAADAAsABQADAAsAAgABAAMAAgALAAEAAAABAAMAAgADAAsAAgABAAMAAgABAAsAAgADAAEACwABAAAAAgADAAIAAwABAAAAAQAAAAIAAwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsACwADAAQADAALAAMABAAMAAsAAwAMAAQAAwALAAQADAADAAQACwACAAQAAwALAAcAAAATAAEAAwAAABMAAQAMAAAAEwABAAwAAAATAAEAAwAAABMAAQAMAAAAEwABAAwAAAATAAEADAAAABMAAQAMAAAAEwABAAMAAAATAAEADAAAABMAAQAMAAAAEwABAAMAAAATAAEAAwAAABMAAQAMAAAAEwABAAMAAAATAAMAAQAAABMADAABAAAAAQATAA8AAAATAAEADwAAAAEAEwAPAAAAEwABAA8AEwAAAAwAAQATAAAADAABABMAAAANAAwAEwAAAA0AAQATAAAADAABABMAAAANAAwAEwAAAAwAAQATAAAADQAPABMAAAANAAEAEwAAAA0AAQATAAAADQABABMAAAANAAwAEwAAAA0AAQATAAAADQAPABMAAAAMAA0AEwAAAAwADQATAAAADAABABMAAAANAAEAEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAA0AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQATAAAADwABAAAAEwAPAAEAEwAAAA8ADQAAABMADwABABMAAAABAAIAAAATAA8AAQAAABMADwABAAAAEwAPAAEAEwAAAA8AAQAAABMADwABAAAAEwAPAA0AAAATAA8AAQAAABMADwABABMAAAANAAEAAAATAA8AAQAAABMADwABABMAAAAPAAEAFQAUABYAEwAUABUAFgATABUAFgAUABMAFQAWABQAEwAVABQAFgATABUAFgAUABMAFAAVABYAEwAWABUAFAATABYAFQAUABMAFQAUABYAEwAUABUAEwAWABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFAAVABMAFgAVABQAFgATABUAFAAWABMAFQAUABYAEwAUABUAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABQAFQATABYAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAUABUAEwAWABUAFAAWABMAFQAUABYAEwAUABUAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABYAFQAUABMAFAAVABYAEwAVABYAFAATABYAFQAUABMAFQAUABYAEwAUABUAFgATABUAFgAUABMAFQAUABYAEwAVABQAFgATABQAFQAWABMAEwAAAAwAAQATAAAADAABABMAAAANAAEAAAATAAMAAQAAAAMAAQATAAAAEwAMAAEACwADAAAAAgALAAwAAwACAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsACwADAAQABQALAAMABAAFAAsAAwAEAAwAAwALAAQABQAEAAUAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABQAFgATABUAFAAWABMAFAAVABYAEwAAABMADwABAAAAEwAPAAEAEwAAAA8AAQAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMABQAEAAMACwAFAAQAAwALAAUABAADAAsACwAMAAMAAgALAAwAAwAEAAsADAADAAIACwAMAAMAAgALAAwAAwAEAAsADAADAAQACwAMAAMAAgALAAMADAAEAAsAAwAMAAQACwAMAAMAAgALAAMADAAEAAsADAADAAQACwAMAAMAAgALAAwAAwAEAAsADAADAAIACwAMAAMAAgALAAwAAwACAAsADAADAAIADgANAAwACwANAA4ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA0ADgAMAAsADgANAAwACwAOAA0ADAALAA0ADgAMAAsADgANAAwACwAOAA0ADAALAA0ADgAMAAsADgANAAwACwAOAA0ADAALAA0ADgAMAAsADgANAAwACwAOAA0ADAALAA0ADgAMAAsAFQAWABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABUAFgAUABMAFQAWABQAEwAWABUAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAWABQAEwAMAAsAAwACAAwACwANAAoADAALAAMAAgAMAAsAAwANAAwACwADAAIADAALAA0ACgAMAAsAAwACAAwACwADAAIADAALAA0ACgAMAAsAAwACAAwACwADAAIADAALAA0AAwAMAAsAAwANAAwACwADAA0ADAALAA0ACgAMAAsAAwANAAwACwADAA0ADAALAA0ACgAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwATABQAEgARABMAFAASABEAEwAUABIAEQATABQAEgARABMAFAASABEAEwAUABIAEQATABQAEgARABMAFAASABEAEwAUABIAEQATABQAEgARABMAFAASABEAEwAUABIAEQATABQAEgARABMAFAASABEAEwAUABIAEQATABQAEgARABMAFAASABEAEwAUABIAEQATABQAEgARABMAFAASABEAEwAUABIAEQATABQAEgARABMAFAASABEAEwAUABIAEQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAEADAATAAAAAQAMAAAAEwABAA8AAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwABAA8AAAATAAEADAAMAA0ADgALAAwADQAOAAsADQAMAA4ACwAMAA0ADgALAAwADQAOAAsADAANAA4ACwAMAA0ADgALAAwADQAOAAsADQAMAA4ACwANAAwADgALAA0ADAAOAAsADQAMAA4ACwAHAAMABAAFAAcAAwAEAAUABwADAAQABQAEAAMABwAFAAQAAwAHAAUAAwAHAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAEAAUAAwAHAAQAAwAFAAcAAwAEAAcABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAUAAwAHAAQABQADAAcABAADAAUABwAHAAMABAAFAAMABwAEAAUAAwAHAAQABQAEAAMABwAFAAMABAAHAAUAAwAHAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQADAAQABwAFAAMABAAHAAUAAwAHAAQABQAHAAMABAAFAAcAAwAEAAUAAwAHAAQABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQABAAAAAwACAAEAAwAAAAIAAwACAAEAAAAHAAMAAgAIAAcAAwACAAEAAwAHAAIAAQAAAAMAAQAPAAAAAQADAA8AAAABAAMADwAAAAEAAwACAAAAAQADAAIAAAABAAMAAgAHAAgAAwACAAcAAwAIAAIABwADAAIACAAAAAMAAQAHAAMAAAABAAcAAwAHAAAAAQAHAAMACAACAAcAAwAIAAIABwADAAgAAgAHAAgAAwACAAcACAADAAIABwADAAgAAgADAAcAAgAEAAMABwACAAQAAwAHAAIABAAHAAMAAgAIAAcAAwACAAQAAwAHAAIABAABAAAAAgADAAEAAgAAAAMAAgABAAMAAAADAAIABwAIAAMAAgAHAAgAAgADAAEABwAAAAEAAgADAAAAAQACAAMAAAABAAIAAwABAAAAAgADAAEAAAACAAMAAQAAAAIAAwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwARABIAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwARABIAEAAPABEAEgAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAIAAcAAwAEAAgABwADAAQACAAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAIAAcAAwAEAAgABwADAAQACAAHAAMABAAIAAcAAwAEAAgABwADAAQACAAEAAUAAwAHAAQABQADAAcABAADAAUABwAEAAMABwAFAAQAAwAHAAUABAADAAUABwAHAAMABAAFAAcAAwAEAAUAAwAHAAQABQAEAAUAAwAHAAQAAwAFAAcAAwAEAAcABQARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAEAAUAAwAHAAQAAwAFAAcAAwAEAAcABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAAAAMADwABAAAAAwAPAAEAAAADAA8AAQAAAAMAAQAPAAAAAwABAA8AAAADAAEADwAHAAgAAwACAAcACAADAAAABwADAAgAAAAAAAMABwABAAMAAAAHAAEAAwAHAAAAAQAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwAEAAMABQAHAAQAAwAFAAcABAADAAUABwAEAAMABwAFAAQAAwAFAAcABAADAAUABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAMABQAHAAQAAwAFAAcABAADAAUABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAMABQAHAAQAAwAFAAcABAADAAUABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAMABwAFAAQAAwAHAAUABAADAAUABwAEAAMABQAHAAQAAwAFAAcABAADAAUABwABAAAAAgADAAEAAgAAAAMAAgABAAMAAAADAAIABAAHAAMAAgABAAQAAgADAAEABwABAAAAAgADAAEAAAACAAMAAQAAAAIAAwABAAAAAgADAAEAAAACAAMAAQAAAAIAAwADAAIABAAHAAMAAgAEAAcAAwACAAQABwADAAIABwAEAAMAAgAHAAQAAwACAAQABwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwAEAAMABQAHAAQAAwAFAAcABAADAAUABwAEAAMABQAHAAQAAwAFAAcABAADAAUABwAEAAMABQAHAAQAAwAFAAcABAADAAUABwAEAAMABwAFAAQAAwAHAAUABAADAAcABQAHAAgAAwACAAcACAADAAQABwADAAgABAAHAAMACAAEAAcAAwAIAAQABwADAAgABAAHAAMACAACAAcAAwAIAAIABwADAAgAAgAHAAgAAwACAAcACAADAAIABwADAAgAAgAHAAMABAAIAAcAAwAEAAgABwADAAQACAAHAAMACAAEAAcAAwAIAAQABwADAAgABAADAAcAAgAEAAMABwACAAQAAwAHAAIABAAHAAMACAACAAcAAwACAAgAAwAHAAIABAAEAAMABwAFAAMABAAHAAUAAwAEAAcABQADAAcABAACAAMABwAEAAIAAwAEAAcAAgADAAIABAAHAAMAAgAEAAcAAwACAAQABwADAAcAAgAEAAMAAgAHAAQAAwACAAcABAAEAAMABQAHAAQAAwAFAAcABAADAAcABQADAAQAAgAHAAMABAAHAAIAAwAEAAcACwAHAAMABAAIAAcAAwAEAAgABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAIAAcAAwAEAAgABwADAAQACAAHAAMABAAIAAcAAwAEAAgABwADAAQACAAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAIAAcAAwAEAAgABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAIAAcAAwAEAAgABwADAAQACAAHAAMABAAFAAcAAwAEAAUABwADAAQABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAEAAMABwAFAAQAAwAHAAUAAwAHAAQABQAEAAMABQAHAAQAAwAFAAcABAADAAUABwAEAAMABQAHAAQAAwAFAAcABAADAAUABwAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABQAHAAQAAwAHAAUABAADAAcABQAAAAMAAQAHAAMAAAAHAAEAAwAHAAAAAgAHAAgAAwACAAcAAwAIAAIABwADAAIACAAAAAEAAwACAAAAAQADAAIAAAABAAMAAgAAAAMAAQAPAAAAAwABAA8AAAADAAEADwAHAAMAAgAIAAcAAwACAAEAAwAHAAIAAQAAAAEAAwACAAEAAwAAAAIAAwACAAEAAAABAAAAAgADAAEAAAACAAMAAAABAAIAAwAAAAEAAwACAAAAAQACAAMAAAABAAIAAwADAAIABwAEAAMAAgAHAAEAAwACAAEABwABAAAAAgADAAEAAgADAAAAAgABAAMAAAABAAAAAgADAAEAAAACAAMAAQAAAAIAAwABAAAAAgADAAEAAAACAAMAAQAAAAIAAwADAAIABAAHAAMAAgABAAcAAwACAAEAAAABAAAAAgADAAEAAgAAAAMAAgABAAMAAAAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAHAAMABAAIAAcAAwAIAAQABwADAAgABAAHAAgAAwAEAAcACAADAAQABwADAAgABAAHAAMABAAIAAcAAwAEAAgABwADAAQACAAHAAMABAAFAAcAAwAEAAUABwADAAQABQADAAcABAACAAMABAAHAAIAAwAEAAcAAgAEAAMABwAFAAQAAwAHAAUABAADAAcABQADAAQAAgAHAAMABAACAAcAAwAEAAcAAgAEAAMABwAFAAQAAwAHAAUABAADAAcACwAAAA8ACAABAAAADwAIAAEAAAAPAAgAAQAAAAMADwABAAAADwADAAEAAAAPAAMAAQAAAA8ACAABAAAADwAIAAEAAAAPAAgAAQAAAA8ACAABAAAADwAIAAEAAAAPAAgAAQAAAAEADwADAAAAAQAPAAMAAAAPAAEAAwAAAA8AAQAIAAAADwABAAgAAAAPAAEACAAAAA8AAQAIAAAADwABAAgAAAAPAAEACAAAAA8ACAABAAAADwABAAgAAAAPAAEACAAAAAEAAgAPAAAAAQAPAAIAAAABAA8AAgAAAA8AAQATAAAADwABAAkAAAAPAAEACQAAAA8AAQAIAAAADwABAAgAAAAPAAEACAAAAAEAAgAPAAAAAQAPAAIAAAABAA8ACAAAAA8AAQAIAAAADwABAAgAAAAPAAEACAAAAA8AAQAIAAAADwABAAgAAAAPAAEACAAAAAEADwADAAAAAQAPAAMAAAAPAAEAAwAAAA8AAQAIAAAADwABAAgAAAAPAAEACAAPAAAACAABAAAADwAIAAEAAAAPAAgAAQAAAA8AAQAIAAAADwABAAgAAAAPAAEACAAAAA8AAwABAAAADwABAAMAAAAPAAEAAwAAAA8ACAABAAAADwAIAAEAAAAPAAEACAAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAAAA8AAwABAAAADwADAAEAAAAPAAMAAQAPAAAACAABAAAADwAIAAMAAAAPAAgAAwAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AAQATAAAADwABABMAAAAPAAEAEwAAAAEAAgAPAAAAAQACAA8AAAABAA8AEwAAAA8AEwABAAAADwATAAEAAAABAA8AEwAAABMADwABAAAAEwAPAAEAAAABABMADwAAAAEAAgATAAAAAQATAAIAAAABABMADwAAAA8AAQAIAAAADwABAAgAAAAPAAEAEwAAAA8AEwABAAAADwATAAEAAAAPABMAAQAPAAAACQAIAA8AAAAIAAkADwAAAAgACQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACQABAA8AAAAJAAEADwAAAAkAAQAPAAAACQABAA8AAAAJAAEADwAAAAkAAQAPAAAACAABAA8AAAAIAAEADwAAAAgACQAPAAAACQABAA8AAAAJAAgADwAAAAgACQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACQABAA8AAAAJAAEADwAAAAkAAQAPAAAACQABAA8AAAAJAAEADwAAAAkAAQAPAAAACAATAA8AAAAIABMADwAAAAgAEwAPAAAACQABAA8AAAAJAAgADwAAAAkAEwAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAATAA8AAAAIABMADwAAAAgAAQAPAAAACQABAA8AAAAJABMADwAAAAkACAAPAAAACAATAA8AAAAIAAkADwAAAAkACAAPAAAAAQACAA8AAAABAAIADwAAAAEAAgAPAAAAAQACAA8AAAABAAIADwAAAAEAAgAPAAAACAAJAA8AAAAIAAkADwAAAAgACQAPAAAACQABAA8AAAAJAAgADwAAAAgACQAPAAAACAAJAA8AAAAIAAkADwAAAAgACQAPAAAACAAJAA8AAAAIAAkADwAAAAgACQAPAAkAAAABAA8ACQAAAAEADwAJAAAAAQAPAAAACQABAA8AAAAJAAEADwAAAAkAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACQABAA8AAAAIAAkADwAAAAgAAQAPAAAACAAJAA8AAAAIAAkADwAAAAgACQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAkAAAABAA8ACQAAAAEADwAJAAAAAQAPAAkAAAABAA8ACQAAAAEADwAJAAAAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACQAIAA8AAAAIAAkADwAAAAgACQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAAEwABAA8AAAATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAPAAAAAQACAA8AAAABAAIADwAAAAEAAgAPAAAAEwABAA8AAAATAAEADwAAABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMACQAPAAAAEwABAA8AAAATAAEAAAAPABMACQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAPAAAAAQACAA8AAAABAAIADwAAAAEAAgAPAAAAEwABAA8AAAATAAEADwAAAAEAAgAAAA8AEwABAAAADwATAAEAAAAPABMAAQAPAAAAEwAIAAAADwATAAgAAAAPABMACAAPAAAAEwABAA8AAAATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAPAAAAEwABAA8AAAATAAEADwAAABMAAQAPAAAAEwABAA8AAAATAAEADwAAABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAPAAAAEwABAA8AAAATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAPAAAAAQACAA8AAAAJAAEADwAAAAkAAQAPAAAACQABAA8AAAAJAAEADwAAAAkAAQAAAA8AEwABAAAADwATAAkAAAAPABMACQAPAAAAEwAJAA8AAAATAAkAAAAPABMACQAPAAAAEwAIAA8AAAATAAgAAAAPABMACAAAAA8AEwABAAAADwATAAEAAAAPABMAAQAPAAAAEwABAA8AAAATAAEADwAAABMAAQAPAAAAAQACAA8AAAATAAEADwAAABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQARABAAEgAPABEAEAASAA8AEQAQABIADwAQABEAEgAPABEAEAASAA8AEQAQABIADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABAAEgAPABEAEAASAA8AEQAQABIADwAQABEAEgAPABEAEAASAA8AEQAQABIADwARABIAEAAPABEAEgAQAA8AEQASABAADwAQABEAEgAPABAAEQASAA8AEAARABIADwAQABEAEgAPABAAEQASAA8AEAARABIADwASABEAEAAPABIAEQAQAA8AEgARABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwAQABEAEgAPABEAEAASAA8AEQASABAADwASABEAEAAPABIAEQAQAA8AEQASABAADwAQABEAEgAPABAAEQASAA8AEAARABIADwAQABEAEgAPABAAEQASAA8AEAARABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwAQABEADwASABAAEQASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwAQABEAEgAPABAAEQASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwAQABEADwAOABAAEQAPAA4AEAARAA8ADgAQABEADwASABAAEQAPABIAEAARAA8AEgARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwAQABEAEgAPABAAEQASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwAQABEADwASABAAEQAPABIAEAARAA8AEgAQABEAEgAPABAAEQAPABIAEAARAA8AEgARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwAQABEAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwAQABEAEgAPABAAEQASAA8AEAARABIADwAQABEAEgAPABAAEQASAA8AEAARABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwAQABEAEgAPABAAEQASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwAQABEAEgAPABAAEQASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwAQABEADwASABAAEQAPABIAEAARAA8AEgAQABEADwASABAAEQAPABIAEAARAA8AEgARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwAQABEADwASABAAEQAPABIAEAARAA8AEgAQABEADwAOABAAEQAPAA4AEAARAA8AEgARABAAEgAPABEAEAASAA8AEQAQABIADwAQABEAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwAQABEAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwAQABEAEgAPABAAEQASAA8AEAARABIADwAQABEAEgAPABAAEQASAA8AEAARABIADwARABIAEAAPABEAEgAQAA8AEQASABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwAQABEAEgAPABEAEAASAA8AEQAQABIADwARABIAEAAPABEAEgAQAA8AEQASABAADwAQABEAEgAPABAAEQASAA8AEAARABIADwAQABEAEgAPABAAEQASAA8AEAARABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABIAEAAPABEAEgAQAA8AEQASABAADwAQABEAEgAPABAAEQASAA8AEAARABIADwAQABEAEgAPABAAEQASAA8AEAARABIADwAQABEAEgAPABAAEQASAA8AEAARABIADwAQABEAEgAPABAAEQASAA8AEAARABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwAPAAAACQABAA8AAAAJAAEADwAAAAkAAQAPAAAACQABAA8AAAAJAAEADwAAAAkAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAAAAMADwABAAAAAwAPAAEAAAADAA8AAQAAAAMAAQAPAAAAAwAPAAEAAAADAA8AAQAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAHAAMABAAIAAcAAwAEAAgABwADAAQACAAHAAMABAAIAAcAAwAEAAgABwADAAQACAAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwAQABEAEgAPABAAEQASAA8AEAARABIADwAQABEAEgAPABAAEQASAA8AEAARABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwAPAAAAEwABAA8AAAATAAEADwAAABMAAQAPAAAAEwABAA8AAAATAAEADwAAABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAFAAQAAwAHAAUABAADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwARABIAEAAPABEAEgAQAA8AEQASABAADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABAAEgAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAEAAUAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMABAAHAAgAAwACAAcACAADAAIABwAIAAMABAAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAMACAAEAAcAAwAIAAQABwADAAgABAAHAAgAAwACAAcACAADAAQABwAIAAMABAAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAMACAAEAAcAAwAIAAQABwADAAgABAAHAAgAAwACAAcACAADAAQABwAIAAMABAAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAMACAAEAAcAAwAIAAQABwADAAgABAAHAAgAAwACAAcACAADAAIABwAIAAMABAAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAJAAoACAAHAAkACgAIAAcACQAKAAgABwAJAAoACAAHAAkACgAIAAcACQAKAAgABwAJAAoACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAJAAoACAAHAAkACgAIAAcACQAKAAgABwAJAAoACAAHAAkACgAIAAcACQAKAAgABwAJAAoACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAJAAoACAAHAAkACgAIAAcACQAKAAgABwAJAAoACAAHAAkACgAIAAcACQAKAAgABwAJAAoACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAJAAoACAAHAAkACgAIAAcACQAKAAgABwAJAAoACAAHAAkACgAIAAcACQAKAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAJAAoACAAHAAkACgAIAAcACQAKAAgABwAJAAoACAAHAAkACgAIAAcACQAKAAgABwAJAAoACAAHAAkACgAIAAcACQAKAAgABwAJAAoACAAHAAkACgAIAAcACQAKAAgABwARABIAEAAPABEAEgAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwARABIAEAAPABEAEgAQAA8AEgARABAADwARABAAEgAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABAAEgAPABEAEAASAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABIAEAAPABEAEgAQAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABIAEAAPABEAEgAQAA8AEQAQABIADwAHAAgAAwACAAcACAADAAIACAAHAAMAAgAIAAcACQADAAgABwADAAkACAAHAAMACQAIAAcACQADAAgABwADAAkACAAHAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAIAAcACQADAAgABwAJAAMACAAHAAkAAwAIAAcACQAGAAgABwAJAAMACAAHAAkAAwAIAAcACQAGAAgABwADAAIACAAHAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAIAAcACQAGAAgABwAJAAYACAAHAAkABgAIAAcACQAGAAgABwAJAAYACAAHAAkABgAIAAcACQADAAgABwADAAIACAAHAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAIAAcACQAGAAgABwAJAAYACAAHAAkABgAIAAcACQAGAAgABwAJAAYACAAHAAkABgAIAAcACQADAAgABwADAAkACAAHAAMACQAHAAgAAwACAAcACAADAAIABwAIAAMAAgAIAAcACQAGAAgABwAJAAMACAAHAAkAAwAIAAcACQADAAgABwAJAAMACAAHAAkAAwAIAAcACQADAAgABwAJAAMACAAHAAMACQAHAAgAAwACAAcACAADAAIACAAHAAMACQAIAAcACQADAAgABwAJAAMACAAHAAkAAwAIAAcACQAGAAgABwAJAAYACAAHAAkAAwAIAAcACQADAAgABwAJAAMACAAHAAkAAwAIAAcACQADAAgABwAJAAMACAAHAAkAAwASABEAEAAPABIAEQAQAA8AEgARABAADwARABIAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwARABIAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwAPAAkAAAAQAA8AEAAJAAgADwAQAA4ADQAQABEADwASABAADwARAA4AEAAPAA4ADQAQABEADwASABAADwARAA4AEAAPAA4ADQAPAAkAAAAQAA8AEAAJAAgADwAQAA4ADQAQABEADwASABAADwARAA4AEAAPAA4ADQAPAAkAAAAQAA8AEAAJAAgADwAQAA4ADQAQABEADwAOABAADwARAA4AEAAPAA4ADQAPAAAACQABAA8AEAAOAA0ADwAQAA4ADQAQABEADwAOABAADwARAA4AEAAPAA4ADQAPAAAAAQACAA8AEAAAAAEADwAQAA4ADQAQABEADwAOABAADwARAA4AEAAPAA4ADQAPAAAAAQACAA8AAAAQAAEADwAQAA4ADQAQABEADwASABAADwARAA4AEAAPAA4ADQAPAAAAAQACAA8AAAAQAAEADwAQAA4ADQAQABEADwASABAADwARAA4AEAAPAA4ADQAPAAAAAQACAA8AAAAQAAEADwAQAA4ADQAQABEADwASABAADwARAA4AEAAPAA4ADQAPAAAAAQACAA8AAAAQAAEADwAQAA4ADQAQABEADwASABAADwARAA4AEAAPAA4ADQAPAAAAAQACAA8AAAAQAAEADwAQAA4ADQAQABEAEgAPABAADwARABIAEAAPAA4ADQAPAAAACQABAA8AEAAAAAEADwAQAA4ADQAQABEADwASABAADwARABIAEAAPAA4ADQAPAAAACQAQAA8AEAAAAAEADwAQAA4ADQAAAA8ACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAAJAA8AAAAIAAEADwAAAAgAAQAAAA8ACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAATAAAADwAIABMAAAAPAAgAEwAAAA8AAQAIAAAADwABAAgAAAAPAAgAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAPAAAAEwAIAA8AAAATAAgADwAAABMACAAAAA8AAQATAAAADwABABMAAAAPAAEAEwAJAAoACAAHAAkACAAKAAcACQAIAAoABwAIAAkABwAGAAgACQAHAAYACAAJAAcABgAIAAcACQAGAAgACQAHAAYACAAJAAcABgAJAAgACgAHAAkACAAKAAcACQAIAAoABwAIAAcACQAGAAgACQAHAAYACAAJAAcABgAJAAgACgAHAAkACAAKAAcACQAIAAoABwAIAAcACQAGAAgACQAHAAYACAAJAAcABgAJAAgACgAHAAkACAAKAAcACQAIAAoABwAIAAkABwAGAAgACQAHAAYACAAJAAcABgAJAAoACAAHAAkACAAKAAcACQAIAAoABwAIAAkABwAGAAgACQAHAAYACAAJAAcACgAJAAoACAAHAAkACAAKAAcACQAIAAoABwAEAAUAAwALAAQABQADAAsABAADAAUACwAEAAMACwAFAAQAAwALAAUABAADAAUACwALAAMABAAFAAsAAwAEAAUAAwALAAQABQAEAAUAAwALAAQAAwAFAAsAAwAEAAsABQALAAMABAAFAAsAAwAEAAUACwADAAQABQALAAMABAAFAAsAAwAEAAUACwADAAQABQAEAAMACwAFAAQAAwALAAUAAwAEAAsABQALAAMABAAFAAsAAwAEAAUAAwALAAQABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAQACwAFAAMABAALAAUAAwAEAAsABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQAEAAMACwAFAAMABAALAAUAAwAEAAsABQADAAsABAAFAAMACwAEAAUAAwALAAQABQALAAwAAwACAAsADAADAAIACwADAAwAAgALAAMADAACAAsAAwAMAAIACwADAAwAAgAAAAMAAQALAAMAAAALAAEAAwALAAAAAQALAAwAAwACAAsAAwAMAAIACwADAAIADAAAAAEAAwACAAAAAQADAAIAAAABAAMAAgAAAAMAAQATAAAAAQADABMAAAABAAMAEwALAAMAAgAMAAsAAwACAAEAAwALAAIAAQAAAAEAAwACAAEAAwAAAAIAAwACAAEAAAABAAAAAgADAAEAAAACAAMAAQAAAAIAAwAAAAEAAwACAAAAAQACAAMAAAABAAIAAwADAAIACwAEAAMAAgALAAEAAwACAAEACwABAAAAAgADAAEAAgADAAAAAgABAAMAAAALAAMAAgAMAAsAAwACAAQAAwALAAIABAADAAsAAgAEAAMACwACAAQAAwALAAIABAAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwALAAMABAAMAAsAAwAEAAwACwADAAQADAALAAMABAAMAAsAAwAEAAwACwADAAQADAALAAMABAAFAAsAAwAEAAUACwADAAQABQALAAMABAAMAAsAAwAEAAwACwADAAQADAADAAsABAAFAAMACwAEAAUAAwALAAQABQALAAMABAAFAAMACwAEAAUAAwALAAQABQAEAAUAAwALAAQAAwAFAAsAAwAEAAsABQADAAsABAAFAAMACwAEAAUAAwALAAQABQAEAAMACwAFAAQAAwAFAAsABAADAAUACwAEAAUAAwALAAQABQADAAsABAADAAUACwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwALAAMABAAFAAsAAwAEAAUAAwALAAQABQAEAAUAAwALAAQAAwAFAAsAAwAEAAsABQALAAMABAAFAAsAAwAEAAUACwADAAQABQALAAMABAAFAAsAAwAEAAUACwADAAQABQALAAwAAwACAAsADAADAAIACwAMAAMAAgALAAwAAwACAAsADAADAAIACwAMAAMAAgAAAAMACwABAAMAAAALAAEAAwALAAAAAQALAAwAAwACAAsAAwAMAAAACwADAAwAAAAAAAMAAQATAAAAAwABABMAAAADAAEAEwAAAAMAAQATAAAAAwABABMAAAADAAEAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAWABUAFAATABYAFQAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAEAAUAAwAHAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAMABQALAAQAAwAFAAsABAADAAUACwAEAAMABQAHAAQAAwAFAAsABAADAAUACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwAHAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwAHAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAEAAMABQAHAAQAAwAFAAsABAADAAUACwAEAAMACwAFAAQAAwAFAAsABAADAAUACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwAHAAQABQADAAsABAAFAAMACwADAAIACwAEAAMAAgAEAAsAAwACAAQACwADAAIABAALAAMAAgAEAAsAAwACAAQACwABAAAAAgADAAEAAAACAAMAAQAAAAIAAwABAAAAAgADAAEAAAACAAMAAQAAAAIAAwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAEAAMACwAFAAQAAwALAAUABAADAAUACwAEAAMABQAHAAQAAwAFAAsABAADAAUACwALAAMADAAEAAsAAwAMAAQACwADAAwABAALAAMABAAMAAsAAwAEAAwACwADAAQADAALAAwAAwACAAsADAADAAIACwADAAwAAgALAAMADAACAAsAAwAMAAIACwADAAwAAgALAAMADAAEAAsAAwAMAAQACwADAAwABAALAAwAAwAEAAsADAADAAQACwADAAwABAADAAsABAACAAMABAALAAIAAwAEAAsAAgAEAAMACwAFAAMABAALAAUAAwAEAAsABQALAAMADAACAAMACwACAAwAAwALAAIADAADAAsAAgAEAAMACwACAAQAAwALAAIABAADAAsAAgAEAAMAAgALAAQAAwACAAQACwADAAIABAALAAMAAgAEAAsAAwACAAQACwALAAMABAAMAAsAAwAEAAwACwADAAQABQALAAMABAAFAAsAAwAEAAUACwADAAQABQALAAMABAAMAAsAAwAEAAwACwADAAQADAALAAMABAAMAAsAAwAEAAwACwADAAQADAALAAMABAAFAAsAAwAEAAUACwADAAQABQALAAMABAAMAAsAAwAEAAUACwADAAQABQALAAMABAAFAAsAAwAEAAUACwADAAQABQALAAMABAAMAAsAAwAEAAwACwADAAQABQALAAMABAAFAAsAAwAEAAUACwADAAQABQALAAMABAAFAAsAAwAEAAUACwADAAQABQAEAAMACwAFAAMABAALAAUAAwAEAAsABQALAAMABAAFAAsAAwAEAAUAAwALAAQABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMABQAHAAQAAwAFAAsABAADAAUACwAEAAMACwAFAAQAAwALAAUABAADAAsABQABAAAAAwACAAEAAwAAAAIAAwACAAEAAAALAAMAAgAMAAMACwACAAEAAwALAAIAAQAAAAMAAQATAAAAAQADAAIAAAABAAMAAgAAAAEAAwACAAAAAQADAAIAAAABAAMAAgALAAwAAwACAAsAAwAMAAIACwADAAIADAAAAAMAAQACAAMAAAABAAsAAwALAAAAAQABAAAAAgADAAEAAgADAAAAAgABAAMAAAADAAIACwAEAAMAAgALAAEAAwACAAEACwAAAAEAAwACAAAAAQACAAMAAAABAAIAAwABAAAAAgADAAEAAAACAAMAAQAAAAIAAwABAAAAAgADAAEAAAACAAMAAQAAAAIAAwABAAAAAgADAAEAAAACAAMAAQAAAAIAAwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwALAAMABAAFAAsAAwAEAAwACwADAAQADAALAAMADAAEAAsAAwAEAAwACwADAAQADAALAAwAAwAEAAsADAADAAQACwADAAwABAALAAMABAAMAAsAAwAMAAQACwADAAwABAAEAAMACwAFAAQAAwALAAUABAADAAsABQADAAsABAACAAMABAALAAIAAwAEAAsAAgAAABMAAQAMAAAAEwABAAwAAAATAAEADAAAAAEAEwADAAAAAQATAAMAAAATAAEAAwAAABMADAABAAAAEwAMAAEAAAATAAEADAAAABMAAQAMAAAAEwABAAwAAAATAAEADAAAAAMAAQATAAAAEwABAAMAAAATAAEAAwAAABMAAQAMAAAAEwABAAwAAAATAAEAAwAAABMAAQANAAAAEwABAAwAAAATAAEADAAAAAEAAgATAAAAAQATAAIAAAABABMADAAAABMAAQAMAAAAEwABAAwAAAATAAEADAAAABMAAQAMAAAAEwABAAwAAAATAAEADAAAABMAAQAMAAAAEwABAAwAAAATAAEAAwAAAAEAEwADAAAAAQATAAMAAAATAAEAAwAAABMAAQAMAAAAEwABAAwAAAATAAEADAAAABMAAQAMAAAAEwABAAwAAAATAAEADAAAAAEAAgATAAAAAQATAAIAAAABABMADAAAABMAAQAMAAAAEwABAAwAAAATAAEADAAAABMAAQAMAAAAEwABAAwAAAATAAEAAwAAAAMAAQATAAAAEwABAAMAAAATAAEAAwAAABMAAQAMAAAAEwABAAwAAAATAAEADAAAABMADAABAAAAEwABAAwAAAATAAEADAAAABMADAABAAAAEwAMAAEAAAATAAEAAwAAAAMAEwABAAAAEwADAAEAAAATAAMAAQAAABMADAABAAAAEwAMAAEAAAATAAwAAQAAABMADAABAAAAEwAMAAEAAAATAAwAAQAAABMAAQANAAAAEwABAA8AAAATAAEADwAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMAAQAPAAAAEwABAA8AAAATAAEADwATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADQABABMAAAANAAEAEwAAAA0AAQATAAAADAANABMAAAAMAA0AEwAAAAwADQATAAAADQABABMAAAANAAEAEwAAAA0AAQATAAAADQABABMAAAANAAEAEwAAAA0AAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADQABABMAAAANAAwAEwAAAAwADQATAAAADwANABMAAAABAA0AEwAAAAEADQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADQABABMAAAANAA8AEwAAAA0ADwATAAAADwANABMAAAAPAA0AEwAAAA8ADQATAAAADQABABMAAAANAAEAEwAAAA0AAQATAAAADQABABMAAAANAAEAEwAAAA0AAQATAAAADQABABMAAAANAAEAEwAAAA0AAQATAAAADwABABMAAAABAA0AEwAAAAEADQATAAAADQABABMAAAANAAEAEwAAAA0AAQATAAAADQAMABMAAAANAAwAEwAAAA0ADAATAAAADQABABMAAAANAAEAEwAAAA0AAQATAAAADQABABMAAAANAAEAEwAAAA0AAQATAAAADwABABMAAAAPAA0AEwAAAA8ADQATAAAADQABABMAAAANAA8AEwAAAA0ADwATAAAADAABABMAAAAMAAEAEwAAAAwADQATAAAADQAMABMAAAAMAA0AEwAAAAwADQATAAAADQABABMAAAANAAwAEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADQABABMAAAANAAEAEwAAAA0AAQATAAAADQABABMAAAANAAEAEwAAAA0AAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADQABABMAAAANAAwAEwAAAAwADQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADQABABMAAAANAAEAEwAAAA0AAQATAAAADQABABMAAAANAAEAEwAAAA0AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQATAAAADwABABMAAAAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQATAAAADwABABMAAAAPAAEAEwAAAA8AAQATAAAADwABABMAAAAPAAEAEwAAAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQATAAAADwABABMAAAAPAAEAAAATAA8AAQATAAAADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQATAAAADwABABMAAAAPAAEAEwAAAA8AAQATAAAADQABABMAAAANAAEAEwAAAA0AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQATAAAADwABABMAAAAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQATAAAADwABABMAAAAPAAEAEwAAAA8AAQATAAAADwABABMAAAAPAAEAEwAAAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQATAAAADwABABMAAAAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwANAAAAEwAPAAEAAAATAA8AAQATAAAADwABABMAAAAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQATAAAADQABABMAAAANAAEAEwAAAA0AAQATAAAADwABABMAAAAPAAEAEwAAAA0AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQATAAAADwABABMAAAAPAAEAEwAAAA8AAQATAAAADwABABMAAAAPAAEAEwAAAA8AAQAUABUAFgATABQAFQAWABMAFAAVABYAEwAUABUAFgATABQAFQAWABMAFAAVABYAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAUABUAFgATABUAFAAWABMAFQAUABYAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAUABUAFgATABUAFAAWABMAFQAUABYAEwAVABYAFAATABUAFAAWABMAFQAUABYAEwAUABUAFgATABQAFQAWABMAFAAVABYAEwAUABUAFgATABQAFQAWABMAFAAVABYAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAUABUAFgATABUAFgAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAUABUAEwAWABQAFQATABYAFAAVABMAFgAUABUAEwASABQAFQATABYAFAAVABMAFgAVABQAFgATABUAFAAWABMAFQAUABYAEwAUABUAFgATABQAFQAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAUABUAEwAWABQAFQAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAUABUAEwAWABQAFQATABYAFAAVABMAFgAUABUAEwAWABQAFQATABYAFAAVABMAFgAVABQAFgATABUAFAAWABMAFQAUABYAEwAUABUAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAUABUAFgATABQAFQAWABMAFAAVABYAEwAUABUAFgATABQAFQAWABMAFAAVABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAUABUAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAUABUAEwAWABQAFQATABYAFAAVABMAFgAUABUAEwAWABQAFQATABYAFAAVABMAFgAVABQAFgATABUAFAAWABMAFQAUABYAEwAUABUAFgATABQAFQAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAUABUAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAUABUAEwASABQAFQATABIAFAAVABMAFgAUABUAEwAWABQAFQATABYAFAAVABMAFgAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAUABUAFgATABQAFQAWABMAFAAVABYAEwAUABUAFgATABQAFQAWABMAFAAVABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAUABUAFgATABUAFAAWABMAFQAUABYAEwAVABYAFAATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAUABUAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAUABUAFgATABQAFQAWABMAFAAVABYAEwAUABUAFgATABQAFQAWABMAFAAVABYAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAUABUAFgATABUAFAAWABMAFQAUABYAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAUABUAFgATABQAFQAWABMAFAAVABYAEwAUABUAFgATABQAFQAWABMAFAAVABYAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAUABUAFgATABQAFQAWABMAFAAVABYAEwAUABUAFgATABQAFQAWABMAFAAVABYAEwATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADQABABMAAAANAAEAEwAAAA0AAQATAAAADQABABMAAAANAAEAEwAAAA0AAQAAAAMAAQATAAAAAwABABMAAAADAAEAEwAAAAMAAQATAAAAAwABABMAAAADAAEAEwAAABMADAABAAAAEwAMAAEAAAATAAwAAQAAABMADAABAAAAEwAMAAEAAAATAAwAAQALAAwAAwACAAsADAADAAIACwAMAAMAAgALAAwAAwACAAsADAADAAIACwAMAAMAAgAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwALAAMABAAFAAsAAwAEAAUACwADAAQABQALAAMABAAFAAsAAwAEAAUACwADAAQABQALAAMABAAMAAsAAwAEAAwACwADAAQADAALAAMABAAMAAsAAwAEAAwACwADAAQADAAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwAHAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAUABUAFgATABQAFQAWABMAFAAVABYAEwAUABUAFgATABQAFQAWABMAFAAVABYAEwAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQATAAAADwABABMAAAAPAAEAEwAAAA8AAQATAAAADwABABMAAAAPAAEAEwAAAA8AAQAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAFAAQAAwALAAUABAADAAsABAAFAAMACwAEAAUAAwAHAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwAHAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABQAFgATABUAFAAWABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAWABUAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwALAAwAAwACAAsADAADAAIACwAMAAMABAALAAwAAwACAAsADAADAAQACwAMAAMABAALAAwAAwACAAsADAADAAIACwAMAAMAAgALAAwAAwACAAsADAADAAIACwAMAAMAAgALAAwAAwACAAsADAADAAIACwAMAAMAAgALAAwAAwACAAsADAADAAIACwAMAAMAAgALAAwAAwAEAAsADAADAAQACwAMAAMABAALAAMADAAEAAsAAwAMAAQACwADAAwABAALAAwAAwACAAsADAADAAIACwAMAAMAAgALAAwAAwACAAsADAADAAIACwAMAAMAAgALAAwAAwACAAsADAADAAQACwAMAAMABAALAAMADAAEAAsAAwAMAAQACwADAAwABAALAAwAAwACAAsADAADAAIACwAMAAMAAgALAAwAAwACAAsADAADAAIACwAMAAMAAgALAAwAAwACAAsADAADAAQACwAMAAMABAALAAMADAAEAAsAAwAMAAQACwADAAwABAALAAwAAwACAAsADAADAAIACwAMAAMAAgALAAwAAwACAAsADAADAAIACwAMAAMAAgALAAwAAwACAAsADAADAAIACwAMAAMAAgALAAwAAwACAAsADAADAAIACwAMAAMAAgALAAwAAwACAAsADAADAAIACwAMAAMAAgALAAwAAwACAAsADAADAAIACwAMAAMAAgALAAwAAwACAAsADAADAAIACwAMAAMAAgALAAwAAwACAAsADAADAAIACwAMAAMAAgANAA4ADAALAA0ADgAMAAsADQAOAAwACwANAA4ADAALAA0ADgAMAAsADQAOAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwANAA4ADAALAA0ADgAMAAsADQAOAAwACwANAA4ADAALAA0ADgAMAAsADQAOAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwANAA4ADAALAA0ADgAMAAsADQAOAAwACwANAA4ADAALAA0ADgAMAAsADQAOAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwANAA4ADAALAA0ADgAMAAsADQAOAAwACwANAA4ADAALAA0ADgAMAAsADQAOAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwANAA4ADAALAA0ADgAMAAsADQAOAAwACwANAA4ADAALAA0ADgAMAAsADQAOAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwANAA4ADAALAA0ADgAMAAsADQAOAAwACwANAA4ADAALAA0ADgAMAAsADQAOAAwACwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABQAFgATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABQAFgATABUAFAAWABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABYAFAATABUAFgAUABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAMAAsADQAKAAwACwANAAoADAALAA0ACgAMAAsADQAKAAwACwANAAoADAALAA0AAwALAAwAAwACAAsADAADAAIADAALAAMAAgAMAAsADQADAAwACwADAA0ADAALAAMAAgAMAAsADQADAAwACwADAA0ADAALAAMADQALAAwAAwACAAwACwADAAIADAALAAMAAgAMAAsADQAKAAwACwANAAoADAALAA0ACgAMAAsADQAKAAwACwANAAoADAALAA0ACgALAAwAAwACAAsADAADAAIACwAMAAMAAgAMAAsADQAKAAwACwADAAIADAALAAMAAgAMAAsADQAKAAwACwANAAoADAALAA0ACgAMAAsADQAKAAwACwANAAoADAALAA0ACgALAAwAAwACAAsADAADAAIADAALAAMAAgAMAAsADQADAAwACwADAA0ADAALAAMAAgAMAAsADQADAAwACwANAAMADAALAA0AAwAMAAsADQAKAAwACwANAAMADAALAA0AAwALAAwAAwACAAsADAADAAIADAALAAMAAgAMAAsADQADAAwACwADAA0ADAALAAMADQAMAAsADQAKAAwACwANAAoADAALAA0ACgAMAAsADQADAAwACwANAAMADAALAA0AAwALAAwAAwACAAwACwADAAIADAALAAMADQAMAAsADQADAAwACwANAAMADAALAAMADQAMAAsADQAKAAwACwANAAoADAALAA0ACgAMAAsADQAKAAwACwANAAoADAALAA0ACgAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwATAAAADQABABMAFAASABEAEwAUABIAEQAUABUAEwAWABQAEwAVABIAFAATABIAEQAUABUAEwAWABQAEwAVABIAFAATABIAEQATAAAADQABABMAFAASABEAEwAUABIAEQATAAAADQABABMAFAAAAAEAEwAUABIAEQAUABUAEwAWABQAEwAVABIAFAATABIAEQATAAAADQABABMAFAAAAAEAEwAUABIAEQAUABUAEwASABQAEwAVABIAFAATABIAEQATAAAAAQACABMAFAAAAAEAEwAUABIAEQAUABUAEwASABQAEwAVABIAFAATABIAEQATAAAAAQACABMAAAAUAAEAEwAUABIAEQAUABUAEwASABQAEwAVABIAFAATABIAEQATAAAAAQACABMAAAAUAAEAEwAUABIAEQAUABUAEwAWABQAEwAVABIAFAATABIAEQATAAAAAQACABMAAAAUAAEAEwAUABIAEQAUABUAEwAWABQAEwAVABIAFAATABIAEQATAAAAAQACABMAAAAUAAEAEwAUABIAEQAUABUAEwAWABQAEwAVABIAFAATABIAEQATAAAAAQACABMAAAAUAAEAEwAUABIAEQAUABUAEwAWABQAEwAVABYAFAATABIAEQATAAAADQABABMAFAAAAAEAEwAUABIAEQAUABUAEwAWABQAEwAVABYAFAATABIAEQATAAAADQABABMAFAAAAAEAEwAUABIAEQAUABUAEwAWABQAEwAVABYAFAATABIAEQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQAAABMAAQAMAAAAEwABAAwAAAATAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQAAABMADAABABMAAAAMAAEAEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQAAABMAAQAMAAAAEwABAAwAEwAAAAEADAATAAAADQABABMAAAABAAwAEwAAAAEADAAAABMAAQAPAAAAEwABAA8AAAATAAEADwATAAAADwABAAAAEwAPAAEAAAATAAEADwAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAAA8AEwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAAA8AEwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMAAQAMAAAAEwABAAwAAAATAAEADwAAABMADwABAAAAEwAPAAEAAAATAAEADwANAA4ADAALAA0ADAAOAAsADQAMAA4ACwAMAAsADQAKAAwADQALAAoADAANAAsACgAMAA0ACwAKAAwADQALAAoADAANAAsACgANAA4ADAALAA0ADAAOAAsADQAMAA4ACwANAA4ADAALAA0ADAAOAAsADQAMAA4ACwAMAAsADQAKAAwADQALAAoADAANAAsACgANAA4ADAALAA0ADAAOAAsADQAMAA4ACwAMAAsADQAKAAwADQALAAoADAANAAsACgANAA4ADAALAA0ADAAOAAsADQAMAA4ACwAMAA0ACwAKAAwADQALAAoADAANAAsACgANAA4ADAALAA0ADAAOAAsADQAMAA4ACwAMAA0ACwAKAAwADQALAAoADAANAAsACgAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAEAAUAAwAHAAQAAwAFAAcABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUAAwAEAAcABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQAEAAMABwAFAAQAAwAHAAUAAwAHAAQABQAHAAMABAAFAAQAAwAHAAUABAADAAcABQADAAcABAAFAAcAAwAEAAUABAADAAcABQAEAAMABwAFAAMABwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQAHAAMABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAcAAwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUABwADAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAQABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAMABAAHAAUAAwAEAAcABQADAAQABwAFAAMABAAHAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQAEAAMABwAFAAMABAAHAAUAAwAHAAQABQADAAcABAAFAAQAAwAHAAUAAwAEAAcABQADAAcABAAFAAMABwAEAAUABAADAAcABQADAAQABwAFAAMABwAEAAUAAwAHAAQABQAAAAEAAwACAAAAAQADAAIAAAABAAMAAgAAAAEAAwACAAEAAwAAAAIAAQADAAAAAgADAAAAAQACAAMAAAABAAIAAwACAAEABwADAAIAAQAHAAMAAgABAAcAAwAHAAIAAQAAAAMAAQACAAMAAAABAAcAAwAHAAAAAQAHAAMAAgABAAAAAwABAAIAAwAAAAEABwADAAcAAAABAAcAAwACAAEAAAADAAEAAgADAAAAAQACAAMABwAAAAEABwADAAIAAQAHAAgAAwACAAcAAwAIAAIABwADAAgAAgAHAAMACAACAAcAAwAIAAIABwADAAgAAgAHAAMACAACAAcAAwACAAgABwADAAIAAQAHAAMAAgABAAcAAwACAAEABwADAAIAAQAHAAMAAgAIAAcAAwACAAgABwADAAIAAQADAAcAAgABAAcAAwAIAAIABwADAAIACAAHAAMAAgABAAMABwACAAEABwADAAgAAgAHAAMAAgAIAAcAAwACAAEAAwAHAAIAAQAHAAMAAgAIAAMABwACAAgAAwAHAAIACAADAAcAAgAIAAcAAwACAAEAAwAHAAIAAQADAAcAAgABAAMABwACAAgAAwAHAAIAAQADAAcAAgABAAMAAgAHAAEAAwACAAcAAQADAAIABwAIAAMAAgAHAAgAAgADAAcAAQACAAMAAQAHAAMABwACAAgAAwACAAcAAQADAAIABwABAAIAAwABAAcAAwAHAAIACAADAAIABwABAAMAAgAHAAEAAgADAAEABwABAAAAAgADAAEAAAACAAMAAQAAAAIAAwABAAAAAgADAAEAAgAAAAMAAQACAAAAAwABAAIAAAADAAEAAgAAAAMAAgABAAMAAAACAAEAAwAAAAIAAQADAAAAAgABAAMAAAABAAAAAgADAAEAAgAAAAMAAgADAAEAAAADAAIABwABAAEAAAACAAMAAQACAAAAAwACAAMAAQAAAAMAAgAHAAEAAQAAAAIAAwABAAIAAAADAAIAAQADAAAAAgADAAEABwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAIAAcAAwAEAAgABwADAAQACAAHAAMABAAIAAcAAwAEAAgABwADAAQACAAHAAMABAAIAAcAAwAEAAgABwADAAQACAAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAgABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQACAAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAcAAwAEAAUABwADAAQABQADAAcABAAFAAMABwAEAAUABwADAAQABQAHAAMABAAFAAMABwAEAAUAAwAHAAQABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAMABAAHAAUAAwAEAAcABQADAAQABwAFAAMABAAHAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQAEAAUAAwAHAAQAAwAFAAcAAwAEAAcABQADAAcABAAFAAQAAwAFAAcAAwAEAAcABQADAAcABAAFAAMABwAEAAUABAADAAUABwADAAQABwAFAAMABwAEAAUAAwAHAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwAHAAMABAAFAAcAAwAEAAUABwADAAQABQADAAcABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAMABwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUAAwAHAAQABQAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQAAwAFAAcABAADAAUABwAEAAMABQAHAAQAAwAFAAcAAwAEAAcABQADAAQABwAFAAMABAAHAAUAAwAEAAcABQAEAAUAAwAHAAQAAwAFAAcAAwAEAAcABQAHAAMABAAFAAQABQADAAcABAADAAUABwADAAQABwAFAAcAAwAEAAUABAAFAAMABwAEAAMABQAHAAQAAwAHAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAAAAMABwABAAMAAAAHAAEAAwAHAAAAAQAHAAMAAAABAAAAAwAHAAEAAwAAAAcAAQADAAcAAAABAAcAAwAAAAEAAAADAAcAAQADAAAABwABAAMABwAAAAEABwADAAAAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAAABwAIAAMAAAAHAAgAAwACAAcACAADAAIABwADAAgAAAAHAAMACAAAAAcAAwAIAAAABwADAAgAAAAHAAgAAwACAAcAAwAIAAIABwADAAIACAAHAAMAAAACAAcACAADAAIABwAIAAMAAgAHAAMACAACAAcAAwAAAAIABwAIAAMAAgAHAAgAAwACAAcAAwAIAAIABwADAAAAAgAAAAMAAQAHAAAAAwABAAcAAAADAAEABwAAAAMABwABAAMAAAAHAAEAAwAAAAcAAQADAAAABwABAAMAAAAHAAEAAwAHAAAAAQADAAcAAAABAAMABwAAAAEAAwAHAAAAAQARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwAEAAMABQAHAAQAAwAFAAcABAADAAUABwAEAAMABQAHAAQAAwAFAAcABAADAAUABwAEAAMABQAHAAQAAwAFAAcABAADAAUABwAEAAMABQAHAAQAAwAFAAcABAADAAUABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAMABQAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQAAwAFAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAADAAUABwAEAAMABQAHAAQAAwAFAAcABAADAAUABwAEAAMABQAHAAQAAwAFAAcABAADAAUABwAEAAMABQAHAAQAAwAFAAcABAADAAUABwAEAAMABQAHAAQAAwAFAAcABAADAAUABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAMABQAHAAQAAwAFAAcABAADAAUABwAEAAMABQAHAAQAAwAFAAcABAADAAUABwAEAAMABQAHAAQAAwAFAAcABAADAAUABwAEAAMABQAHAAQAAwAFAAcABAADAAUABwAEAAMABwAFAAQAAwAFAAcABAADAAUABwAEAAMABQAHAAQAAwAFAAcABAADAAUABwAEAAMABQAHAAQAAwAFAAcABAADAAUABwAEAAMABQAHAAQAAwAFAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwABAAAAAgADAAEAAAACAAMAAQAAAAIAAwABAAAAAgADAAEAAgAAAAMAAQACAAAAAwABAAIAAAADAAEAAgAAAAMAAgABAAMAAAACAAEAAwAAAAIAAQADAAAAAgABAAMAAAABAAAAAgADAAEAAgAAAAMAAgABAAMAAAACAAMAAQAHAAEAAAACAAMAAQACAAAAAwACAAEAAwAAAAIAAwABAAAAAQAAAAIAAwABAAIAAAADAAIAAQADAAAAAgADAAEAAAADAAIABwAEAAMAAgAHAAQAAwACAAcABAADAAIABwAEAAMAAgAHAAEAAwACAAcAAQADAAIABwABAAMAAgAHAAEAAgADAAEABwACAAMAAQAHAAIAAwABAAcAAgADAAEABwADAAIABAAHAAMAAgABAAcAAgADAAEABwACAAMAAQAAAAMAAgAEAAcAAwACAAEABwACAAMAAQAHAAIAAwABAAAAAwACAAQABwADAAIAAQAHAAIAAwABAAcAAgADAAEAAAARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwASABEAEAAPABEAEgAQAA8AEQASABAADwASABEAEAAPABIAEQAQAA8AEQASABAADwARABIAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABEAEgAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwAEAAMABQAHAAQAAwAFAAcABAADAAUABwAEAAMABQAHAAQAAwAFAAcABAADAAUABwAEAAMABQAHAAQAAwAFAAcABAADAAUABwAEAAMABQAHAAQAAwAFAAcABAADAAUABwAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAFAAcABAADAAUABwAEAAMABQAHAAQAAwAFAAcABAADAAUABwAEAAMABQAHAAQAAwAFAAcABAADAAUABwAEAAMABwAFAAQAAwAHAAUABAADAAUABwAEAAMABQAHAAQAAwAHAAUABAADAAcABQAEAAMABQAHAAQAAwAFAAcABAADAAcABQAEAAMABQAHAAQAAwAFAAcABAADAAUABwAEAAMABQAHAAQAAwAFAAcABAADAAUABwAEAAMABQAHAAQAAwAFAAcABAADAAUABwAEAAMABQAHAAQAAwAFAAcABAADAAUABwAEAAMABQAHAAQAAwAFAAcABAADAAUABwAHAAgAAwACAAcACAADAAIABwADAAgAAgAHAAMACAACAAcACAADAAQABwADAAgABAAHAAMACAAEAAcAAwAIAAQABwADAAgABAAHAAMACAAEAAcAAwAIAAQABwADAAgABAAHAAMACAACAAcAAwAIAAQABwADAAgABAAHAAMACAAEAAcAAwAIAAIABwADAAgABAAHAAMACAAEAAcAAwAIAAQABwADAAgAAgAHAAMACAAEAAcAAwAIAAQABwADAAgABAAHAAMABAAIAAcAAwAEAAgABwADAAQACAAHAAMABAAIAAcAAwAEAAgABwADAAQACAAHAAMABAAIAAcAAwAEAAgABwADAAQACAAHAAMABAAIAAcAAwAIAAQABwADAAgABAAHAAMACAAEAAcAAwAIAAQABwADAAgABAAHAAMACAAEAAcAAwAEAAgABwADAAgABAAHAAMACAAEAAcAAwAIAAQABwADAAQACAAHAAMACAAEAAcAAwAIAAQABwADAAgABAAHAAMACAAEAAcAAwAIAAQAAwAHAAQACAADAAcABAACAAcAAwAIAAQABwADAAQACAADAAcABAAIAAMABwAEAAgABwADAAQACAAHAAMABAAIAAMABwAEAAgAAwAHAAQACAADAAcABAACAAMABwAEAAIAAwAEAAcAAgADAAQABwAFAAMABwAEAAIAAwAHAAQAAgADAAcABAACAAMABwAEAAUAAwAHAAQAAgADAAcABAACAAMABwAEAAgAAwAHAAQABQADAAQABwAFAAMABAAHAAUAAwAHAAQABQADAAcABAAFAAMABAAHAAUAAwAEAAcABQADAAcABAAFAAMABwAEAAUAAwAEAAcABQADAAQABwAFAAMABwAEAAUAAwAHAAQABQAHAAMABAAIAAcAAwAEAAgABwADAAQACAAHAAMABAAIAAcAAwAEAAUABwADAAQACAAHAAMABAAIAAcAAwAEAAgAAwAHAAQABQADAAcABAAFAAMABwAEAAgAAwAHAAQACAADAAcABAACAAMABAAHAAIAAwAEAAcAAgADAAQABwACAAMABAAHAAIAAwAEAAcAAgADAAQABwACAAMABAAHAAIAAwAEAAcAAgADAAQABwACAAMABAAHAAIAAwAEAAcAAgADAAQAAgAHAAMABAAHAAIAAwAEAAcACwADAAQABwAFAAMABAACAAcAAwAEAAcAAgADAAQABwALAAMABAAHAAUAAwAEAAcAAgADAAQABwACAAMABAAHAAIAAwAEAAcABQAEAAMABQAHAAQAAwAFAAcABAADAAUABwAEAAMABwAFAAQAAwAFAAcABAADAAUABwAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUAAwAEAAcABQADAAQABwAFAAQAAwAHAAUABAADAAcABQADAAQABwAFAAMABAAHAAUABAADAAcABQAEAAMABwAFAAMABAAHAAUAAwAEAAcABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAIAAcAAwAEAAgABwADAAQACAAHAAMABAAIAAcAAwAEAAgABwADAAQACAAHAAMABAAIAAcAAwAEAAgABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAIAAcAAwAEAAgABwADAAQABQAHAAMABAAFAAcAAwAEAAgABwADAAQACAAHAAMABAAFAAcAAwAEAAUABwADAAQACAAHAAMABAAIAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAIAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQAEAAMABwAFAAQAAwAHAAUAAwAHAAQABQAHAAMABAAFAAQAAwAHAAUABAADAAcABQADAAcABAAFAAcAAwAEAAUABAADAAcABQAEAAMABwAFAAMABwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAEAAMABwAFAAQAAwAHAAUABAADAAUABwAEAAMABQAHAAQAAwAHAAUABAADAAcABQAEAAMABQAHAAQAAwAFAAcABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAUABwAEAAMABQAHAAQAAwAFAAcABAADAAUABwAEAAMABQAHAAQAAwAFAAcABAADAAUABwAEAAMABQAHAAQAAwAFAAcABAADAAUABwAEAAMABQAHAAQAAwAFAAcABAADAAUABwAEAAMABQAHAAQAAwAFAAcABAADAAcABQAEAAMABwAFAAQAAwAFAAcABAADAAUABwAEAAMABQAHAAQAAwAHAAUABAADAAUABwAEAAMABQAHAAQAAwAFAAcABAADAAUABwAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAAAAMAAQAHAAAAAwABAAIAAAADAAEAAgAAAAMAAQACAAMAAAAHAAEAAwAAAAEABwADAAAAAQAHAAMAAAABAAIAAwAHAAAAAgADAAcAAAACAAMABwAAAAIAAwAHAAAAAgAAAAEAAwACAAMAAQAAAAIAAwACAAEAAAADAAcAAgABAAAAAQADAAIAAwAAAAEAAgADAAIAAQAHAAMABwACAAEAAAADAAEAAgADAAAAAQACAAMABwACAAAAAwAHAAIAAQAHAAMACAACAAcAAwAIAAIABwADAAgAAgAHAAMACAACAAcAAwACAAgABwADAAIACAAHAAMAAgAIAAcAAwACAAgAAwAHAAIAAQAHAAMAAgABAAcAAwACAAEABwADAAIAAQAHAAgAAwACAAcAAwAIAAIABwADAAIACAAHAAMAAgAAAAcAAwAIAAIABwADAAgAAgAHAAMAAgABAAcAAwACAAAABwADAAgAAgAHAAMACAACAAcAAwACAAEAAwAHAAIAAAAAAAEAAwACAAEAAAACAAMAAQAAAAIAAwABAAAAAgADAAEAAAADAAIAAQACAAAAAwABAAIAAwAAAAEAAgADAAAAAwACAAEAAAADAAIAAQAAAAMAAgABAAAAAgADAAEAAAABAAAAAgADAAEAAgADAAAAAgABAAMAAAACAAMAAQAHAAEAAAACAAMAAQACAAMAAAACAAEAAwAAAAMAAgABAAcAAQAAAAIAAwABAAIAAwAAAAIAAwABAAAAAwACAAEABwADAAcAAgAEAAMABwACAAQAAwAHAAIABAADAAcAAgAEAAMAAgAHAAEAAwACAAcAAQADAAIABwABAAMABwACAAEAAwACAAEABwADAAIABwABAAMAAgAHAAEAAwACAAcAAQAHAAMAAgAIAAMABwACAAEAAwAHAAIAAQADAAIABwABAAMABwACAAgAAwAHAAIAAQADAAcAAgABAAMAAgAHAAEAAwAHAAIACAADAAcAAgABAAMAAgAHAAEAAwACAAEABwABAAAAAgADAAEAAAACAAMAAQAAAAIAAwABAAAAAgADAAEAAgADAAAAAQACAAMAAAABAAIAAwAAAAEAAgAAAAMAAgABAAMAAAACAAEAAwAAAAIAAQADAAAAAgABAAMAAAABAAAAAgADAAEAAgAAAAMAAgABAAMAAAACAAMAAQAAAAEAAAACAAMAAQACAAAAAwACAAEAAwAAAAIAAwABAAAAAQAAAAIAAwABAAIAAAADAAIAAQADAAAAAgADAAEAAAADAAIABAAHAAMAAgAEAAcAAwACAAcABAADAAIABwAEAAMAAgABAAcAAwACAAEABwADAAIAAQAHAAMAAgABAAcAAwACAAEAAAADAAIAAQAHAAMAAgABAAcAAwACAAEABwADAAIABwAEAAMAAgAHAAEAAwACAAEABwACAAMAAQAAAAMAAgAHAAQAAwACAAcAAQADAAIAAQAHAAIAAwABAAAAAwACAAcABAADAAIABwABAAMAAgABAAcAAgADAAEAAAAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAHAAMABAAIAAcAAwAEAAgABwADAAQACAAHAAMABAAIAAcAAwAEAAgABwADAAQACAAHAAMABAAIAAcAAwAEAAgABwADAAgABAAHAAMABAAIAAcAAwAEAAgABwADAAQACAAHAAMABAAFAAcAAwAEAAUABwADAAQACAAHAAMABAAIAAcAAwAEAAUABwADAAQACAAHAAMABAAIAAcAAwAEAAgABwADAAQACAAHAAMABAAIAAcAAwAEAAgABwADAAQACAAHAAMACAAEAAcAAwAIAAQABwADAAgABAAHAAMACAAEAAcAAwAEAAgABwADAAgABAAHAAMACAAEAAcAAwAIAAQABwADAAQACAAHAAMABAAIAAcAAwAEAAgABwADAAgABAAHAAgAAwAEAAcAAwAIAAQABwADAAgABAAHAAMACAAEAAcACAADAAQABwADAAgABAAHAAMACAAEAAcAAwAIAAQABwADAAgABAAHAAMACAAEAAcAAwAIAAQABwADAAgABAAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAEAAMABwAFAAQAAwAHAAUAAwAEAAcABQADAAQABwACAAQAAwAHAAUAAwAEAAcABQADAAQABwAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAACAAMABwAEAAIAAwAHAAQAAgADAAcABAACAAMABwAEAAIAAwAHAAQAAgADAAcABAACAAMABwAEAAIAAwAEAAcAAgADAAcABAACAAMABwAEAAIAAwAHAAQAAgAHAAMABAACAAcAAwAEAAgABwADAAQACAAHAAMABAAIAAcAAwAEAAIABwADAAQAAgAHAAMABAACAAcAAwAEAAUABwADAAQAAgAHAAMABAACAAcAAwAEAAIABwADAAQABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwALAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAsABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQADAAQAAgAHAAMABAACAAcAAwAEAAIABwADAAQAAgAHAAMABAACAAcAAwAEAAcAAgADAAQABwACAAMABAAHAAIAAwAEAAcAAgADAAQABwACAAMABAAHAAIAAwAEAAcAAgADAAQABwACAAMABAAHAAIAAwAEAAcAAgADAAQABwAFAAMABAAHAAIAAwAEAAcAAgADAAQABwACAAMABAAHAAUAAwAEAAcAAgADAAQABwACAAMABAAHAAIABAADAAcABQAAAA8ACAABAAAADwAIAAEAAAAPAAgAAQAAAA8ACAABAAAADwAIAAEAAAAPAAgAAQAAAA8ACAABAAAADwAIAAEAAAAPAAgAAQAAAA8AAQAIAAAADwABAAgAAAAPAAEACAAAAA8AAQAIAAAADwABAAgAAAAPAAEACAAAAA8AAQADAAAADwAIAAEAAAAPAAEACAAAAA8AAQAIAAAADwABAAMAAAAPAAgAAQAAAA8AAQAIAAAADwABAAgAAAAPAAEAAwAAAAEADwADAAAAAQAPAAMAAAABAA8AAwAAAAEAAwAPAAAAAQAPAAMAAAAPAAEAAwAAAA8AAQADAAAADwABAAMAAAAPAAEAAwAAAA8AAQADAAAADwABAAMAAAAPAAEAAwAAAAMADwABAAAADwADAAEAAAAPAAEAAwAAAA8AAQADAAAAAwAPAAEAAAAPAAEAAwAAAA8AAQADAAAADwABAAMAAAABAA8AAwAAAA8AAQADAAAADwABAAMAAAAPAAEAAwAAAA8AAQAIAAAADwABAAgAAAAPAAEACAAAAA8AAQAIAAAADwABAAgAAAAPAAEACAAAAA8AAQAIAAAADwABAAgAAAAPAAEACAAAAA8AAQAIAAAADwABAAgAAAAPAAEACAAAAA8AAQAIAAAADwABAAgAAAAPAAEACQAAAA8AAQACAAAADwABAAgAAAAPAAEACAAAAA8AAQAIAAAADwABAAIAAAAPAAEACAAAAA8AAQAIAAAADwABAAgAAAAPAAEAAgAAAAEADwACAAAAAQAPAAIAAAABAA8AAgAAAAEADwACAAAAAQAPAAIAAAABAA8AAgAAAAEADwACAAAAAQAPAAIAAAABAA8AAgAAAAEADwACAAAADwABAAIAAAAPAAEAAgAAAAEADwADAAAAAQAPAAMAAAAPAAEAAwAAAA8AAQADAAAAAQAPAAMAAAABAA8AAwAAAA8AAQADAAAADwABAAMAAAABAA8AAgAAAAEADwACAAAADwABAAMAAAAPAAEAAwAAAA8AAQAIAAAADwABAAgAAAAPAAEACAAAAA8AAQAIAAAADwABAAgAAAAPAAEACAAAAA8AAQAIAAAADwABAAgAAAAPAAEACAAAAA8AAQAIAAAADwABAAgAAAAPAAEACAAAAA8AAQAIAAAADwABAAgAAAAPAAEACAAAAA8AAQAIAAAADwABAAgAAAAPAAEACAAAAA8AAQAIAAAADwABAAgAAAAPAAEACAAAAA8AAQAIAAAADwABAAgAAAAPAAEACAAAAAEADwADAAAAAQAPAAIAAAABAA8AAgAAAAEADwACAAAAAQAPAAMAAAABAA8AAgAAAAEADwACAAAAAQAPAAIAAAAPAAEAAwAAAA8AAQACAAAADwABAAIAAAABAA8AAgAAAAEAAgAPAAAAAQAPAAIAAAABAA8ACAAAAA8AAQAIAAAAAQAPAAIAAAABAA8AAgAAAAEADwACAAAADwABAAgAAAABAA8AAgAAAAEADwACAAAAAQAPAAIAAAAPAAEACAAAAA8AAQAIAAAADwABAAgAAAAPAAEACAAAAA8AAQAIAAAADwABAAgAAAAPAAEACAAAAA8AAQAIAAAADwABAAgAAAAPAAEACAAAAA8AAQAIAAAADwABAAgAAAAPAAEAAwAAAA8ACAABAAAADwABAAgAAAAPAAEACAAAAA8AAQADAAAADwABAAgAAAAPAAEACAAAAA8AAQAIAAAADwABAAMAAAAPAAEACAAAAA8AAQAIAAAADwABAAgAAAAPAAEAAwAAAAEADwADAAAAAQAPAAMAAAABAA8AAwAAAAEADwADAAAADwABAAMAAAAPAAEAAwAAAA8AAQADAAAADwABAAMAAAAPAAEAAwAAAA8AAQADAAAADwABAAMAAAAPAAEAAwAAAAEADwADAAAAAQAPAAMAAAAPAAEAAwAAAA8AAQADAAAAAQAPAAMAAAABAA8AAwAAAA8AAQADAAAADwABAAMAAAABAA8AAwAAAA8AAQADAAAADwABAAMAAAAPAAEAAwAAAA8ACAABAAAADwAIAAEADwAAAAgAAQAPAAAACAABAAAADwAIAAEAAAAPAAgAAQAAAA8ACAABAAAADwAIAAEAAAAPAAEACAAAAA8ACAABAAAADwAIAAEAAAAPAAgAAQAPAAAACAABAAAADwAIAAEAAAAPAAgAAwAAAA8AAwAIAA8AAAAIAAEAAAAPAAgAAQAAAA8ACAADAAAADwADAAgADwAAAAgAAQAAAA8ACAABAAAADwAIAAEAAAAPAAMAAQAAAA8AAwABAAAADwADAAEAAAAPAAMAAQAAAA8AAwABAAAADwADAAEAAAAPAAMAAQAAAA8AAwABAAAADwADAAEAAAAPAAMAAQAAAA8AAwABAAAADwADAAEAAAAPAAMAAQAAAA8AAwABAAAADwADAAEAAAAPAAEAAwAAAA8AAQADAAAADwADAAEAAAAPAAMAAQAAAA8AAwABAAAADwABAAMAAAAPAAMAAQAAAA8AAwABAAAADwADAAEAAAAPAAMAAQAAAA8AAQATAAAADwABABMAAAAPAAEAEwAAAA8AAQATAAAADwABABMAAAAPAAEAEwAAAA8AAQATAAAADwABABMAAAAPAAEAEwAAAA8AAQATAAAADwABABMAAAAPAAEAEwAAAA8AEwABAAAADwABABMAAAABAA8AEwAAAAEADwATAAAADwATAAEAAAAPAAEAEwAAAA8AAQATAAAAAQAPABMAAAAPAAEAEwAAAA8AAQATAAAADwABABMAAAABAA8AEwAAAAEAAgAPAAAAAQACAA8AAAABAAIADwAAAAEAAgAPAAAAAQAPAAIAAAABAA8AAgAAAAEADwACAAAAAQAPAAIAAAABAA8AEwAAAAEADwATAAAAAQAPABMAAAABAA8AAgAAAAEAAgAPAAAAAQAPAAIAAAABAA8AAgAAAA8AAQACAAAAAQACAA8AAAABAA8AAgAAAAEADwACAAAADwABABMAAAABAAIADwAAAAEADwACAAAAAQAPAAIAAAABAA8AEwAAAA8AEwABAAAADwATAAEAAAAPAAEAEwAAAA8AAQATAAAADwABABMAAAAPAAEAEwAAAA8AAQATAAAADwABABMAAAABAA8AEwAAAAEADwATAAAADwABABMAAAAPAAEAEwAAAA8AAQAIAAAADwABAAgAAAAPAAEACAAAAA8AAQAIAAAADwABAAgAAAAPAAEACAAAAA8AAQAIAAAAAQAPAAgAAAAPAAEAEwAAAA8AAQATAAAADwABABMAAAABAA8AEwAAAAEAAgAPAAAAAQACAA8AAAABAAIADwAAAAEAAgAPAAAAAQAPAAIAAAABAA8AAgAAAAEADwACAAAAAQAPAAIAAAABAA8AAgAAAAEADwACAAAAAQAPAAIAAAABAA8AEwAAAAEAAgAPAAAAAQAPAAIAAAABAA8AEwAAAAEADwATAAAAAQACAA8AAAABAA8AAgAAAAEADwATAAAAAQAPABMAAAABAAIADwAAAAEADwACAAAAAQAPABMAAAABAA8AEwAPAAAACQAIAA8AAAAJAAgADwAAAAkAAQAPAAAACQABAA8AAAAJAAgADwAAAAkACAAPAAAACQAIAA8AAAAJAAgADwAAAAgACQAPAAAACAAJAA8AAAAIAAkADwAAAAgACQAPAAAACQABAA8AAAAJAAgADwAAAAgACQAPAAAACAAJAA8AAAAJAAgADwAAAAkACAAPAAAACAAJAA8AAAAIAAkADwAAAAkACAAPAAAACQAIAA8AAAAIAAkADwAAAAgACQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgACQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgACQAPAAAACQABAA8AAAAJAAEADwAAAAkAAQAPAAAACQABAA8AAAAJAAgADwAAAAkACAAPAAAACQAIAA8AAAAJAAgADwAAAAgACQAPAAAACAAJAA8AAAAIAAkADwAAAAkACAAPAAAACQABAA8AAAAJAAgADwAAAAkACAAPAAAACAAJAA8AAAAJAAEADwAAAAkACAAPAAAACQAIAA8AAAAIAAkADwAAAAkAAQAPAAAACQAIAA8AAAAJAAgADwAAAAgACQAPAAAACAATAA8AAAAIABMADwAAAAgACQAPAAAACAABAA8AAAAIABMADwAAAAgAEwAPAAAACAAJAA8AAAAIAAkADwAAAAgAEwAPAAAACAAJAA8AAAAIAAkADwAAAAgACQAPAAAACAABAA8AAAAIAAkADwAAAAgACQAPAAAACAAJAA8AAAAIAAEADwAAAAgACQAPAAAACAAJAA8AAAAIAAkADwAAAAgAAQAPAAAACAAJAA8AAAAIAAkADwAAAAgACQAPAAAACQABAA8AAAAJAAEADwAAAAkAAQAPAAAACQABAA8AAAAJAAgADwAAAAkACAAPAAAACQAIAA8AAAAJAAgADwAAAAkACAAPAAAACQAIAA8AAAAJAAgADwAAAAkACAAPAAAACQABAA8AAAAJAAgADwAAAAkACAAPAAAACAAJAA8AAAAJAAEADwAAAAkACAAPAAAACQAIAA8AAAAIAAkADwAAAAkAAQAPAAAACQAIAA8AAAAJAAgADwAAAAgACQAPAAAACAAJAA8AAAAIAAkADwAAAAgACQAPAAAACAAJAA8AAAAIAAkADwAAAAgACQAPAAAACAAJAA8AAAAIAAkADwAAAAgACQAPAAAACAAJAA8AAAAIAAkADwAAAAgACQAPAAAACAAJAA8AAAAIAAkADwAAAAgACQAPAAAACQAIAA8AAAAIAAkADwAAAAgACQAPAAAACAAJAA8AAAAJAAgADwAAAAgACQAPAAAACAAJAA8AAAAIAAkADwAAAAgACQAPAAAACQABAA8AAAAJAAEADwAAAAkAAQAPAAAACQABAA8AAAAJAAgADwAAAAgACQAPAAAACAAJAA8AAAAIAAkADwAAAAgACQAPAAAACAAJAA8AAAAIAAkADwAAAAgACQAPAAAACQAIAA8AAAAIAAkADwAAAAgAAQAPAAAACAABAA8AAAAJAAgADwAAAAgACQAPAAAACAABAA8AAAAIAAEADwAAAAkACAAPAAAACAAJAA8AAAAIAAkADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAAJAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAkADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgACQAPAAAACAAJAA8AAAAIAAkADwAAAAgACQAPAAAACAAJAA8AAAAIAAkADwAAAAgACQAPAAAACAAJAA8AAAAIAAkADwAAAAgACQAPAAAACAAJAA8AAAAIAAkADwAAAAgACQAPAAAACQAIAA8AAAAJAAgADwAAAAkACAAPAAAACQAIAA8AAAAIAAkADwAAAAgACQAPAAAACAAJAA8AAAAIAAkADwAAAAgACQAPAAAACAAJAA8AAAAIAAkADwAAAAgACQAPAAAACQAIAA8AAAAIAAkADwAAAAgACQAPAAAACAABAA8AAAAJAAgADwAAAAgACQAPAAAACAAJAA8AAAAIAAEADwAAAAkACAAPAAAACAAJAA8AAAAIAAkADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAAEwABAA8AAAATAAEADwAAABMAAQAPAAAAEwABAA8AAAATAAEADwAAABMAAQAPAAAAEwABAA8AAAATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAPAAAAEwABAA8AAAATAAEAAAAPABMAAQAAAA8AEwAJAA8AAAATAAEADwAAABMAAQAAAA8AEwABAAAADwATAAEADwAAABMAAQAPAAAAEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAPAAAAEwABAA8AAAATAAEADwAAABMACQAPAAAAEwAJAA8AAAATAAkADwAAABMACQAPAAAAEwAJAA8AAAATAAkAAAAPABMACQAPAAAAEwAJAA8AAAATAAkADwAAABMACQAPAAAACQATAA8AAAAJABMADwAAAAkAEwAPAAAAEwAJAA8AAAATAAkADwAAABMACQAPAAAAEwAJAA8AAAATAAkADwAAABMACQAPAAAAEwAJAA8AAAATAAkADwAAABMACQAPAAAAEwAIAAAADwATAAgAAAAPABMACAAAAA8AEwAIAA8AAAATAAgADwAAABMACAAAAA8AEwAIAAAADwATAAgADwAAABMACAAPAAAAEwAIAAAADwATAAgAAAAPABMACAAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwAJAAAADwATAAEAAAAPABMAAQAAAA8AEwAIAAAADwATAAkAAAAPABMAAQAAAA8AEwAIAAAADwATAAgAAAAPABMACQAPAAAAEwABAA8AAAATAAEADwAAABMAAQAPAAAAEwABAA8AAAATAAEADwAAABMAAQAPAAAAEwABAA8AAAATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAPAAAAEwABAA8AAAATAAEAAAAPABMAAQAAAA8AEwABAA8AAAATAAEADwAAABMAAQAAAA8AEwABAAAADwATAAEADwAAABMAAQAPAAAAEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAPAAAACQABAA8AAAAJAAEADwAAAAkAEwAPAAAACQATAA8AAAAJABMADwAAAAkAEwAPAAAACQATAA8AAAATAAkADwAAAAkAEwAPAAAAEwAJAA8AAAATAAkADwAAABMACQAPAAAAEwAJAA8AAAATAAkADwAAABMACQAAAA8AEwAJAA8AAAATAAkADwAAABMACQAPAAAAEwAJAAAADwATAAkADwAAABMACQAPAAAAEwAJAA8AAAATAAkAAAAPABMACQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwAJAAAADwATAAkAAAAPABMACQAAAA8AEwAJAAAADwATAAkAAAAPABMACQAPAAAAEwAIAA8AAAATAAgADwAAABMACAAPAAAAEwAJAA8AAAATAAgADwAAABMACAAPAAAAEwAIAA8AAAATAAkAAAAPABMACAAPAAAAEwAIAA8AAAATAAgADwAAABMACQAPAAAAEwAJAA8AAAATAAEADwAAABMAAQAPAAAAEwABAA8AAAATAAkADwAAABMAAQAPAAAAEwABAA8AAAATAAEAAAAPABMACQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAPAAAAEwABAA8AAAATAAEAAAAPABMAAQAAAA8AEwABAA8AAAATAAEADwAAABMAAQAAAA8AEwABAAAADwATAAEADwAAABMAAQAPAAAAEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwAJAAAADwATAAEAAAAPABMAAQAAAA8AEwAJAAAADwATAAkAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABIAEAAPABEAEgAQAA8AEQAQABIADwARABAAEgAPABEAEgAQAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwAQABEAEgAPABAAEQASAA8AEAARABIADwAQABEAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwAQABEAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABAAEQASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEAARABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwASABEAEAAPABIAEQAQAA8AEQASABAADwARABIAEAAPABIAEQAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEgARABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwAQABEAEgAPABAAEQASAA8AEAARABIADwAQABEAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwAQABEAEgAPABEAEAASAA8AEQAQABIADwARABIAEAAPABAAEQASAA8AEQAQABIADwARABAAEgAPABEAEgAQAA8AEAARABIADwARABAAEgAPABEAEgAQAA8AEQASABAADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwAQABEAEgAPABAAEQASAA8AEAARABIADwAQABEAEgAPABAAEQASAA8AEAARABIADwAQABEAEgAPABAAEQASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwAQABEAEgAPABAAEQASAA8AEQAQABIADwARABAAEgAPABAAEQASAA8AEAARABIADwARABAAEgAPABEAEAASAA8AEAARABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwAQABEAEgAPABAAEQASAA8AEAARABIADwAQABEAEgAPABAAEQASAA8AEAARABIADwAQABEAEgAPABAAEQASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwAQABEAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABAAEQASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEAARABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwAQABEAEgAPABAAEQASAA8AEAARABIADwAQABEAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwAQABEAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABAAEQASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEAARABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwAQABEAEgAPABAAEQASAA8AEAARABIADwAQABEAEgAPABAAEQASAA8AEAARABIADwAQABEAEgAPABAAEQASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwAQABEAEgAPABAAEQASAA8AEQAQABIADwARABAAEgAPABAAEQASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEAARABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwAQABEAEgAPABAAEQASAA8AEAARABIADwAQABEAEgAPABAAEQASAA8AEAARABIADwAQABEAEgAPABAAEQASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwAQABEAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABAAEQASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEAARABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwAQABEAEgAPABAAEQASAA8AEAARABIADwAQABEAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwAQABEAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABAAEQASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEAARABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwASABEAEAAPABIAEQAQAA8AEgARABAADwARABIAEAAPABIAEQAQAA8AEgARABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwAQABEAEgAPABAAEQASAA8AEAARABIADwAQABEAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEgAQAA8AEQASABAADwAQABEAEgAPABEAEAASAA8AEQASABAADwARABIAEAAPABAAEQASAA8AEQAQABIADwARABIAEAAPABEAEgAQAA8AEAARABIADwARABAAEgAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQAQABIADwARABAAEgAPABEAEgAQAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwAQABEAEgAPABAAEQASAA8AEAARABIADwAQABEAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwAQABEAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABAAEQASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEAARABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwAQABEAEgAPABAAEQASAA8AEAARABIADwAQABEAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwAQABEAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABAAEQASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEAARABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwAPAAAACQAIAA8AAAAIAAkADwAAAAgACQAPAAAACAABAA8AAAAJAAgADwAAAAgACQAPAAAACAAJAA8AAAAIAAEADwAAAAkACAAPAAAACAAJAA8AAAAIAAkADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACQAIAA8AAAAJAAgADwAAAAkACAAPAAAACQAIAA8AAAAIAAkADwAAAAgACQAPAAAACAAJAA8AAAAIAAkADwAAAAgACQAPAAAACAAJAA8AAAAIAAkADwAAAAgACQAAAA8ACAABAAAADwAIAAEAAAAPAAgAAQAAAA8AAQADAAAADwAIAAEAAAAPAAgAAQAAAA8ACAABAAAADwADAAEAAAAPAAgAAQAAAA8ACAABAAAADwAIAAMAAAAPAAMACAAAAA8AAwABAAAADwADAAEAAAAPAAMAAQAAAA8AAwABAAAADwADAAEAAAAPAAMAAQAAAA8AAwABAAAADwADAAEAAAAPAAMAAQAAAA8AAwABAAAADwADAAEAAAAPAAMAAQAAAA8AAwABAAAADwADAAEAAAAPAAMAAQAAAA8AAwAIAAAADwADAAEAAAAPAAMAAQAAAA8AAwABAAAADwADAAgAAAAPAAMAAQAAAA8AAwABAAAADwADAAEAAAAPAAMACAAPAAAACAADAA8AAAAIAAMADwAAAAgAAwAPAAAACAADAAAADwAIAAMAAAAPAAgAAwAAAA8ACAADAAAADwAIAAMAAAAPAAgAAwAAAA8ACAADAAAADwAIAAMAAAAPAAgAAwAAAAMAAQAHAAMAAAAHAAEAAwAHAAAAAQAHAAMAAAACAAAAAwAHAAEAAwAAAAcAAQADAAcAAAABAAcAAwAAAAIAAAADAAcAAQADAAAABwABAAMABwAAAAEABwADAAAAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcAAwAIAAIABwADAAgAAgAHAAgAAwACAAcACAADAAIABwADAAgAAgAHAAMACAACAAcAAwAIAAAABwADAAgAAAAHAAgAAwACAAcACAADAAAABwADAAgAAAAHAAMAAAACAAcACAADAAIABwAIAAMAAAAHAAMACAAAAAcAAwAAAAIABwAIAAMAAgAHAAgAAwAAAAcAAwAIAAAABwADAAAAAgAAAAMABwABAAAAAwAHAAEAAAADAAcAAQAAAAMABwABAAMAAAAHAAEAAwAAAAcAAQADAAAABwABAAMAAAAHAAEAAwAHAAAAAQADAAcAAAABAAMABwAAAAEAAwAHAAAAAQAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAHAAMABAAIAAcAAwAEAAgABwADAAQACAAHAAMABAAFAAcAAwAEAAgABwADAAQACAAHAAMABAAIAAcAAwAEAAUABwADAAQACAAHAAMABAAIAAcAAwAEAAgABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAIAAcAAwAEAAgABwADAAQACAAHAAMABAAIAAcAAwAEAAgABwADAAQACAAHAAMABAAIAAcAAwAEAAgABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQADAAcABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAMABwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUAAwAHAAQABQAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQAAwAFAAcABAADAAUABwAEAAMABQAHAAQAAwAFAAcAAwAEAAcABQADAAQABwAFAAMABAAHAAUAAwAEAAcABQAEAAUAAwAHAAQAAwAFAAcABAADAAcABQADAAcABAAFAAQABQADAAcABAADAAUABwAEAAMABwAFAAMABwAEAAUABAAFAAMABwAEAAMABQAHAAMABAAHAAUAAwAHAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwAQABEAEgAPABAAEQASAA8AEAARABIADwAQABEAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwAQABEAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABAAEQASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEAARABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwAPAAAAEwABAA8AAAATAAEAAAAPABMAAQAAAA8AEwABAA8AAAATAAEADwAAABMAAQAAAA8AEwABAAAADwATAAEADwAAABMAAQAPAAAAEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAPAAAAEwABAA8AAAATAAEADwAAABMAAQAPAAAAEwABAA8AAAATAAEADwAAABMAAQAPAAAAEwABAA8AAAATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAQABQADAAcABAAFAAMABwAFAAQAAwAHAAUABAADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAFAAQAAwAHAAUABAADAAcABAAFAAMABwAEAAUAAwAHAAUABAADAAcABQAEAAMABwAEAAUAAwAHAAQABQADAAcABQAEAAMABwAFAAQAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABIAEAAPABEAEAASAA8AEQAQABIADwARABIAEAAPABEAEgAQAA8AEQAQABIADwARABAAEgAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABAAEgAPABEAEAASAA8AEQASABAADwARABIAEAAPABEAEAASAA8AEQAQABIADwARABIAEAAPABEAEgAQAA8AEQAQABIADwARABIAEAAPABEAEgAQAA8AEQASABAADwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAQABwAIAAMABAAHAAgAAwAEAAcACAADAAQABwAIAAMABAAHAAgAAwAEAAcACAADAAQABwAIAAMABAAHAAgAAwACAAcACAADAAQABwAIAAMABAAHAAgAAwAEAAcACAADAAQABwAIAAMABAAHAAgAAwAEAAcACAADAAQABwAIAAMABAAHAAgAAwAEAAcACAADAAQABwAIAAMABAAHAAMACAAEAAcAAwAIAAQABwADAAgABAAHAAMACAAEAAcAAwAIAAQABwADAAgABAAHAAMACAAEAAcAAwAIAAQABwADAAgABAAHAAMACAAEAAcACAADAAQABwAIAAMABAAHAAgAAwAEAAcACAADAAQABwAIAAMABAAHAAgAAwAEAAcACAADAAQABwAIAAMABAAHAAgAAwAEAAcACAADAAQABwAIAAMABAAHAAgAAwAEAAcACAADAAQABwAIAAMABAAHAAgAAwAEAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAQABwAIAAMABAAHAAgAAwAEAAcACAADAAQABwAIAAMABAAHAAgAAwAEAAcACAADAAQABwAIAAMABAAHAAgAAwACAAcACAADAAQABwAIAAMABAAHAAMACAAEAAcACAADAAQABwAIAAMABAAHAAgAAwAEAAcAAwAIAAQABwAIAAMABAAHAAgAAwAEAAcACAADAAQABwADAAgABAAHAAMACAAEAAcAAwAIAAQABwADAAgABAAHAAMACAAEAAcAAwAIAAQABwADAAgABAAHAAMACAAEAAcAAwAIAAQABwADAAgABAAHAAMACAAEAAcAAwAIAAQABwADAAgABAAHAAMACAAEAAcAAwAIAAQABwADAAgABAAHAAgAAwAEAAcAAwAIAAQABwADAAgABAAHAAMACAAEAAcAAwAIAAQABwADAAgABAAHAAMACAAEAAcAAwAIAAQABwADAAgABAAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAQABwAIAAMABAAHAAgAAwAEAAcACAADAAQABwAIAAMABAAHAAgAAwAEAAcACAADAAQABwAIAAMABAAHAAgAAwACAAcACAADAAQABwAIAAMABAAHAAgAAwAEAAcACAADAAIABwAIAAMABAAHAAgAAwAEAAcAAwAIAAQABwAIAAMAAgAHAAgAAwAEAAcACAADAAQABwADAAgABAAHAAMACAAEAAcAAwAIAAQABwADAAgABAAHAAMACAAEAAcAAwAIAAQABwADAAgABAAHAAMACAAEAAcAAwAIAAQABwADAAgABAAHAAMACAAEAAcAAwAIAAQABwADAAgABAAHAAMACAAEAAcAAwAIAAQABwADAAgABAAHAAMACAAEAAcAAwAIAAQABwADAAgABAAHAAMACAAEAAcAAwAIAAQABwADAAgABAAHAAMACAAEAAcAAwAIAAQABwADAAgABAAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAQABwAIAAMABAAHAAgAAwACAAcACAADAAIABwAIAAMABAAHAAgAAwAEAAcACAADAAQABwAIAAMABAAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAQABwAIAAMAAgAHAAgAAwACAAcACAADAAQABwAIAAMABAAHAAgAAwACAAcACAADAAQABwAIAAMABAAHAAMACAAEAAcACAADAAIABwAIAAMABAAHAAgAAwAEAAcACAADAAQABwAIAAMABAAHAAgAAwAEAAcACAADAAQABwAIAAMABAAHAAMACAAEAAcAAwAIAAQABwADAAgABAAHAAgAAwAEAAcAAwAIAAQABwADAAgABAAHAAgAAwAEAAcACAADAAQABwADAAgABAAHAAMACAAEAAcACAADAAQABwAIAAMABAAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAJAAoACAAHAAkACgAIAAcACQAKAAgABwAJAAoACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAJAAoACAAHAAkACgAIAAcACQAKAAgABwAJAAoACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAJAAoACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAkACgAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACQAKAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAJAAoACAAHAAkACgAIAAcACQAKAAgABwAJAAoACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAJAAoACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAkACgAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACQAKAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACQAKAAgABwAJAAoACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAJAAoACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAkACgAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACQAKAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwARABIAEAAPABEAEgAQAA8AEgARABAADwASABEAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABIAEQAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABEAEgAQAA8AEgARABAADwASABEAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwARABIAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABEAEgAQAA8AEgARABAADwASABEAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABAAEgAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwASABEAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABAAEgAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEAASAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQAQABIADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEgAQAA8AEQASABAADwARABAAEgAPABEAEAASAA8AEQASABAADwARABIAEAAPABEAEAASAA8AEQAQABIADwARABIAEAAPABEAEgAQAA8AEQAQABIADwARABAAEgAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABAAEgAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEAASAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABIAEAAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEgAQAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQAQABIADwARABAAEgAPABEAEgAQAA8AEQASABAADwARABAAEgAPABEAEAASAA8AEQASABAADwARABIAEAAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABIAEAAPABEAEgAQAA8AEQAQABIADwARABAAEgAPABEAEgAQAA8AEQASABAADwARABAAEgAPABEAEAASAA8AEQASABAADwARABIAEAAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIACAAHAAMAAgAIAAcAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAIAAcAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAgABwADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIACAAHAAMAAgAIAAcACQADAAgABwAJAAMACAAHAAkAAwAIAAcACQADAAgABwADAAkACAAHAAMACQAIAAcAAwAJAAgABwADAAkACAAHAAMAAgAIAAcAAwACAAgABwADAAkACAAHAAMACQAIAAcACQADAAgABwADAAkACAAHAAMACQAIAAcAAwAJAAgABwAJAAMACAAHAAMACQAIAAcAAwAJAAgABwADAAkACAAHAAkAAwAIAAcAAwAJAAgABwADAAkACAAHAAMACQAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAIAAcAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAgABwADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIACAAHAAMAAgAIAAcACQAGAAgABwAJAAYACAAHAAkAAwAIAAcACQADAAgABwADAAIACAAHAAMAAgAIAAcAAwACAAgABwADAAkACAAHAAMAAgAIAAcAAwACAAgABwADAAIACAAHAAMAAgAIAAcACQADAAgABwADAAkACAAHAAMAAgAIAAcAAwACAAgABwAJAAMACAAHAAMACQAIAAcAAwACAAgABwADAAIACAAHAAkAAwAIAAcAAwAJAAgABwADAAIACAAHAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAIAAcAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAgABwADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIACAAHAAMAAgAIAAcACQADAAgABwAJAAMACAAHAAkAAwAIAAcACQADAAgABwADAAkACAAHAAMACQAIAAcAAwAJAAgABwADAAIACAAHAAMAAgAIAAcAAwACAAgABwADAAIACAAHAAMAAgAIAAcACQADAAgABwADAAIACAAHAAMAAgAIAAcAAwACAAgABwAJAAMACAAHAAMACQAIAAcAAwACAAgABwADAAIACAAHAAkAAwAIAAcAAwAJAAgABwADAAIACAAHAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAIAAcAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAgABwADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIACAAHAAMAAgAIAAcACQADAAgABwAJAAMACAAHAAkAAwAIAAcACQADAAgABwADAAkACAAHAAMACQAIAAcAAwAJAAgABwADAAkACAAHAAMACQAIAAcAAwAJAAgABwADAAkACAAHAAMACQAIAAcACQADAAgABwADAAkACAAHAAMAAgAIAAcAAwACAAgABwAJAAMACAAHAAMACQAIAAcAAwAJAAgABwADAAIACAAHAAkAAwAIAAcAAwAJAAgABwADAAkACAAHAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAIAAcAAwAJAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAgABwADAAkABwAIAAMAAgAHAAgAAwACAAcACAADAAIACAAHAAMACQAIAAcACQADAAgABwAJAAMACAAHAAkAAwAIAAcACQADAAgABwAJAAMACAAHAAkAAwAIAAcACQADAAgABwAJAAMACAAHAAMACQAIAAcAAwAJAAgABwADAAkACAAHAAMACQAIAAcACQADAAgABwADAAkACAAHAAMACQAHAAgAAwAJAAgABwAJAAMACAAHAAMACQAIAAcAAwAJAAgABwADAAkACAAHAAkAAwAIAAcAAwAJAAgABwADAAkACAAHAAMACQAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAIAAcAAwAJAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAgABwADAAkABwAIAAMAAgAHAAgAAwACAAcACAADAAIACAAHAAMACQAIAAcACQADAAgABwAJAAMACAAHAAkAAwAIAAcACQADAAgABwADAAkACAAHAAMACQAIAAcAAwAJAAgABwAJAAMACAAHAAMACQAIAAcAAwAJAAgABwADAAkACAAHAAMACQAIAAcACQADAAgABwAJAAMACAAHAAMACQAIAAcAAwAJAAgABwAJAAMACAAHAAkAAwAIAAcAAwAJAAgABwADAAkACAAHAAkAAwAIAAcACQADAAgABwADAAkACAAHAAMACQASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwARABIAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwAPAAkAAAAQAA8ACQAAABAADwAJAAAAEAAPAAkAAAAQAA8AEAAJAAgADwAQAAkACAAPABAACQAIAA8AEAAJAAgADwAQAA4ADQAPABAADgANAA8AEAAOAA0ADwAQAA4ADQAPAAkAAAAQAA8AEAAJAAgADwAQAA4ADQAPABAADgANAA8ACQAAABAADwAQAAkACAAPABAADgANAA8AEAAOAA0ADwAJAAAAEAAPABAACQAIAA8AEAAOAA0ADwAQAA4ADQAQABEADwASABAAEQAPABIAEAARAA8AEgAQABEADwASABAADwARAA4AEAAPABEADgAQAA8AEQAOABAADwARAA4AEAAPAA4ADQAQAA8ADgANABAADwAOAA0AEAAPAA4ADQAQABEADwASABAADwARAA4AEAAPAA4ADQAPABAADgANABAAEQAPABIAEAAPABEADgAQAA8ADgANAA8AEAAOAA0AEAARAA8AEgAQAA8AEQAOABAADwAOAA0ADwAQAA4ADQAPAAkAAAAQAA8ACQAAABAADwAJAAAAEAAPAAkAAAAQAA8AEAAJAAgADwAQAAkACAAPABAACQAIAA8AEAAJAAgADwAQAA4ADQAPABAADgANAA8AEAAOAA0ADwAQAA4ADQAPAAkAAAAQAA8AEAAJAAgADwAQAA4ADQAPABAADgANAA8ACQAAABAADwAQAAkACAAPABAADgANAA8AEAAOAA0ADwAJAAAAEAAPABAACQAIAA8AEAAOAA0ADwAQAA4ADQAQABEADwASABAAEQAPABIAEAARAA8AEgAQABEADwASABAADwARAA4AEAAPABEADgAQAA8AEQAOABAADwARAA4AEAAPAA4ADQAQAA8ADgANABAADwAOAA0AEAAPAA4ADQAQABEADwASABAADwARAA4AEAAPAA4ADQAPABAADgANABAAEQAPABIAEAAPABEADgAQAA8ADgANAA8AEAAOAA0AEAARAA8AEgAQAA8AEQAOABAADwAOAA0ADwAQAA4ADQAPAAkAAAAQAA8ACQAAABAADwAJAAAAEAAPAAkAAAAQAA8AEAAJAAgADwAQAAkACAAPABAACQAIAA8AEAAJAAgADwAQAA4ADQAPABAADgANAA8AEAAOAA0ADwAQAA4ADQAPAAkAAAAQAA8AEAAOAA0ADwAQAA4ADQAPABAADgANAA8ACQAAABAADwAQAA4ADQAPABAADgANAA8AEAAOAA0ADwAJAAAAEAAPABAACQAIAA8AEAAOAA0ADwAQAA4ADQAQABEADwAOABAAEQAPAA4AEAARAA8AEgAQABEADwASABAADwARAA4AEAAPABEADgAQAA8AEQAOABAADwARAA4AEAAPAA4ADQAQAA8ADgANABAADwAOAA0AEAAPAA4ADQAQABEADwASABAADwARAA4AEAAPAA4ADQAPABAADgANABAAEQAPABIAEAAPABEADgAQAA8ADgANAA8AEAAOAA0AEAARAA8AEgAQAA8AEQAOABAADwAOAA0ADwAQAA4ADQAPAAAACQAQAA8AAAAJABAADwAAABAACQAPAAAAEAABAA8AEAAOAA0ADwAQAA4ADQAPABAADgANAA8AEAAAAAEADwAQAA4ADQAPABAADgANAA8AEAAOAA0ADwAQAA4ADQAPAAAAEAABAA8AEAAAAAEADwAQAA4ADQAPABAADgANAA8AAAAQAAEADwAQAAAAAQAPABAADgANAA8AEAAOAA0ADwAAABAAAQAPABAAAAABAA8AEAAOAA0ADwAQAA4ADQAQABEADwAOABAAEQAPAA4AEAARAA8ADgAQABEADwAOABAADwARAA4AEAAPABEADgAQAA8AEQAOABAADwARAA4AEAAPAA4ADQAQAA8ADgANABAADwAOAA0AEAAPAA4ADQAQABEADwAOABAADwARAA4AEAAPAA4ADQAPABAADgANABAAEQAPAA4AEAAPABEADgAQAA8ADgANAA8AEAAOAA0AEAARAA8ADgAQAA8AEQAOABAADwAOAA0ADwAQAA4ADQAPAAAAEAABAA8AAAAQAAEADwAAABAAAQAPAAAAEAABAA8AEAAAAAEADwAQAAAAAQAPABAAAAABAA8AAAAQAAEADwAQAA4ADQAPABAADgANAA8AEAAOAA0ADwAQAA4ADQAPAAAAAQACAA8AAAAQAAEADwAQAA4ADQAPABAADgANAA8AAAAQAAEADwAAABAAAQAPABAADgANAA8AEAAOAA0ADwAAABAAAQAPAAAAEAABAA8AEAAOAA0ADwAQAA4ADQAQABEADwAOABAAEQAPAA4AEAARAA8ADgAQABEADwAOABAADwARAA4AEAAPABEADgAQAA8AEQAOABAADwARAA4AEAAPAA4ADQAQAA8ADgANABAADwAOAA0AEAAPAA4ADQAQABEADwAOABAADwARAA4AEAAPAA4ADQAPABAADgANABAAEQAPAA4AEAAPABEADgAQAA8ADgANAA8AEAAOAA0AEAARAA8ADgAQAA8AEQAOABAADwAOAA0ADwAQAA4ADQAPAAAAAQACAA8AAAABAAIADwAAAAEAAgAPAAAAAQACAA8AAAAQAAEADwAAABAAAQAPAAAAEAABAA8AAAAQAAEADwAQAA4ADQAPABAADgANAA8AEAAOAA0ADwAQAA4ADQAPAAAAAQACAA8AAAAQAAEADwAQAA4ADQAPABAADgANAA8AAAABAAIADwAAABAAAQAPABAADgANAA8AEAAOAA0ADwAAAAEAAgAPAAAAEAABAA8AEAAOAA0ADwAQAA4ADQAQABEADwASABAAEQAPABIAEAARAA8AEgAQABEADwASABAADwARAA4AEAAPABEADgAQAA8AEQAOABAADwARAA4AEAAPAA4ADQAQAA8ADgANABAADwAOAA0AEAAPAA4ADQAQABEADwAOABAADwARAA4AEAAPAA4ADQAPABAADgANABAAEQAPABIAEAAPABEADgAQAA8ADgANAA8AEAAOAA0AEAARAA8AEgAQAA8AEQAOABAADwAOAA0ADwAQAA4ADQAPAAAAAQACAA8AAAABAAIADwAAAAEAAgAPAAAAAQACAA8AAAAQAAEADwAAABAAAQAPAAAAEAABAA8AAAAQAAEADwAQAA4ADQAPABAADgANAA8AEAAOAA0ADwAQAA4ADQAPAAAAAQACAA8AAAAQAAEADwAQAA4ADQAPABAADgANAA8AAAABAAIADwAAABAAAQAPABAADgANAA8AEAAOAA0ADwAAAAEAAgAPAAAAEAABAA8AEAAOAA0ADwAQAA4ADQAQABEADwASABAAEQAPABIAEAARAA8AEgAQABEADwASABAADwARAA4AEAAPABEADgAQAA8AEQAOABAADwARAA4AEAAPAA4ADQAQAA8ADgANABAADwAOAA0AEAAPAA4ADQAQABEADwASABAADwARAA4AEAAPAA4ADQAPABAADgANABAAEQAPABIAEAAPABEADgAQAA8ADgANAA8AEAAOAA0AEAARAA8AEgAQAA8AEQAOABAADwAOAA0ADwAQAA4ADQAPAAAAAQACAA8AAAABAAIADwAAAAEAAgAPAAAAAQACAA8AAAAQAAEADwAAABAAAQAPAAAAEAABAA8AAAAQAAEADwAQAA4ADQAPABAADgANAA8AEAAOAA0ADwAQAA4ADQAPAAAAAQACAA8AAAAQAAEADwAQAA4ADQAPABAADgANAA8AAAABAAIADwAAABAAAQAPABAADgANAA8AEAAOAA0ADwAAAAEAAgAPAAAAEAABAA8AEAAOAA0ADwAQAA4ADQAQABEADwASABAAEQAPABIAEAARAA8AEgAQABEADwASABAADwARAA4AEAAPABEADgAQAA8AEQAOABAADwARAA4AEAAPAA4ADQAQAA8ADgANABAADwAOAA0AEAAPAA4ADQAQABEADwASABAADwARAA4AEAAPAA4ADQAPABAADgANABAAEQAPABIAEAAPABEADgAQAA8ADgANAA8AEAAOAA0AEAARAA8AEgAQAA8AEQAOABAADwAOAA0ADwAQAA4ADQAPAAAAAQACAA8AAAABAAIADwAAAAEAAgAPAAAAAQACAA8AAAAQAAEADwAAABAAAQAPAAAAEAABAA8AAAAQAAEADwAQAA4ADQAPABAADgANAA8AEAAOAA0ADwAQAA4ADQAPAAAAAQACAA8AAAAQAAEADwAQAA4ADQAPABAADgANAA8AAAABAAIADwAAABAAAQAPABAADgANAA8AEAAOAA0ADwAAAAEAAgAPAAAAEAABAA8AEAAOAA0ADwAQAA4ADQAQABEADwASABAAEQAPABIAEAARAA8AEgAQABEADwASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARAA4AEAAPAA4ADQAQAA8ADgANABAADwAOAA0AEAAPAA4ADQAQABEADwASABAADwARAA4AEAAPAA4ADQAPABAADgANABAAEQAPABIAEAAPABEADgAQAA8ADgANAA8AEAAOAA0AEAARAA8AEgAQAA8AEQASABAADwAOAA0ADwAQAA4ADQAPAAAAAQACAA8AAAABAAIADwAAAAEAAgAPAAAAAQACAA8AAAAQAAEADwAAABAAAQAPAAAAEAABAA8AAAAQAAEADwAQAA4ADQAPABAADgANAA8AEAAOAA0ADwAQAA4ADQAPAAAACQABAA8AEAAAAAEADwAQAA4ADQAPABAADgANAA8AAAAJAAEADwAAABAAAQAPABAADgANAA8AEAAOAA0ADwAAAAkAAQAPAAAAEAABAA8AEAAOAA0ADwAQAA4ADQAQABEAEgAPABAAEQASAA8AEAARABIADwAQABEAEgAPABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPAA4ADQAQAA8ADgANABAADwAOAA0AEAAPAA4ADQAQABEADwASABAADwARABIAEAAPAA4ADQAPABAADgANABAAEQAPABIAEAAPABEAEgAQAA8ADgANAA8AEAAOAA0AEAARABIADwAQAA8AEQASABAADwAOAA0ADwAQAA4ADQAPAAAACQABAA8AAAAJAAEADwAAAAkAAQAPAAAACQABAA8AEAAAAAEADwAQAAAAAQAPABAAAAABAA8AEAAAAAEADwAQAA4ADQAPABAADgANAA8AEAAOAA0ADwAQAA4ADQAPAAAACQAQAA8AEAAAAAEADwAQAA4ADQAPABAADgANAA8AAAAJABAADwAQAAAAAQAPABAADgANAA8AEAAOAA0ADwAAAAkAEAAPABAAAAABAA8AEAAOAA0ADwAQAA4ADQAQABEADwASABAAEQAPABIAEAARABIADwAQABEAEgAPABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPAA4ADQAQAA8ADgANABAADwAOAA0AEAAPAA4ADQAQABEAEgAPABAADwARABIAEAAPAA4ADQAPABAADgANABAAEQASAA8AEAAPABEAEgAQAA8ADgANAA8AEAAOAA0AEAARABIADwAQAA8AEQASABAADwAOAA0ADwAQAA4ADQAPAAAACQAQAA8AAAAJABAADwAAAAkAEAAPAAAACQAQAA8AEAAAAAEADwAQAAAAAQAPABAAAAABAA8AEAAAAAkADwAQAA4ADQAPABAADgANAA8AEAAOAA0ADwAQAA4ADQAPAAkAAAAQAA8AEAAJAAAADwAQAA4ADQAPABAADgANAA8AAAAJABAADwAQAAAACQAPABAADgANAA8AEAAOAA0ADwAAAAkAEAAPABAAAAAJAA8AEAAOAA0ADwAQAA4ADQAQABEADwASABAAEQAPABIAEAARAA8AEgAQABEADwASABAADwARAA4AEAAPABEADgAQAA8AEQAOABAADwARABIAEAAPAA4ADQAQAA8ADgANABAADwAOAA0AEAAPAA4ADQAQABEADwASABAADwARABIAEAAPAA4ADQAPABAADgANABAAEQAPABIAEAAPABEAEgAQAA8ADgANAA8AEAAOAA0AEAARAA8AEgAQAA8AEQASABAADwAOAA0ADwAQAA4ADQAAAA8ACAABAAAADwAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAMADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAAAA8AAQAIAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAAAADwABAAgADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAAAA8AAQAIAAAADwABAAgAAAAPAAEACAAAAA8AAQAIAAAADwAIAAEAAAAPAAgAAQAAAA8ACAABAAAADwABAAgADwAAAAgAAQAPAAAACAABAA8AAAAIAAEAAAAPAAgAAQAAAA8AAQAIAAAADwABAAgAAAAPAAgAAQAAAA8ACAABAAAADwABAAgAAAAPAAEACAAAAA8ACAABAAAADwAIAAEAAAAPAAEACAAAAA8AAQAIAAAADwAIAAEADwAAAAgAAQAPAAAACAATAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEAAAAPAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAAAA8AAQAIAAAADwABABMAAAAPAAEAEwAAAA8AEwABAAAADwABAAgAAAAPAAEAEwAAAA8AEwABAAAADwATAAEAAAAPAAEAEwAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwAIAAAADwATAAgAAAAPABMAAQAAAA8AEwABAAAADwATAAgAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AAQATAAAADwABABMAAAAPAAEAEwAAAA8AEwABAAAADwABABMAAAAPAAEAEwAAAA8AEwABAAAADwATAAEAAAAPAAEAEwAAAA8AEwABAAAADwATAAEAAAAPABMAAQAPAAAAEwAIAAAADwATAAEAAAAPABMAAQAAAA8AEwABAA8AAAATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AAQAIAAAADwABAAgAAAAPAAEACAAAAA8AAQAIAAAADwABAAgAAAAPAAEACAAAAA8AAQAIAAAADwABAAgAAAAPAAEACAAPAAAAAQAIAA8AAAABAAgADwAAAAgAAQAAAA8ACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAAAADwABAAgADwAAAAgAAQAPAAAACAABAA8AAAAIAAEAAAAPAAEACAAPAAAAAQAIAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAATAA8AAAAIABMADwAAAAEACAAPAAAAAQAIAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAABAAgADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAJAAoACAAHAAkACgAIAAcACQAKAAgABwAJAAgACgAHAAkACAAKAAcACQAIAAoABwAJAAgACgAHAAkACAAKAAcACQAIAAoABwAJAAgACgAHAAkACAAKAAcACQAIAAoABwAJAAgACgAHAAkACAAKAAcACQAIAAoABwAIAAkABwAGAAkACAAKAAcACQAIAAoABwAJAAgACgAHAAgACQAHAAoACQAIAAoABwAJAAgACgAHAAkACAAKAAcACAAJAAoABwAIAAcACQAGAAgABwAJAAYACAAHAAkABgAIAAcACQAGAAgACQAHAAYACAAJAAcABgAIAAkABwAGAAgACQAHAAYACAAJAAcABgAIAAkABwAGAAgACQAHAAYACAAJAAcABgAIAAkABwAGAAgACQAHAAYACAAJAAcABgAIAAkACgAHAAgABwAJAAYACAAJAAcABgAIAAkABwAGAAgACQAKAAcACAAHAAkABgAIAAkABwAGAAgACQAHAAYACAAJAAoABwAJAAgACgAHAAkACAAKAAcACQAIAAoABwAJAAgACgAHAAkACAAKAAcACQAIAAoABwAJAAgACgAHAAkACAAKAAcACQAIAAoABwAJAAgACgAHAAkACAAKAAcACQAIAAoABwAJAAgACgAHAAkACAAKAAcACQAIAAoABwAIAAkABwAGAAkACAAKAAcACQAIAAoABwAJAAgACgAHAAgACQAHAAYACQAIAAoABwAJAAgACgAHAAkACAAKAAcACAAJAAoABwAIAAcACQAGAAgABwAJAAYACAAHAAkABgAIAAcACQAGAAgACQAHAAYACAAJAAcABgAIAAkABwAGAAgACQAHAAYACAAJAAcABgAIAAkABwAGAAgACQAHAAYACAAJAAcABgAIAAcACQAGAAgACQAHAAYACAAJAAcABgAIAAkABwAKAAgABwAJAAYACAAJAAcABgAIAAkABwAGAAgACQAHAAoACAAHAAkABgAIAAkABwAGAAgACQAHAAYACAAJAAcACgAJAAgACgAHAAkACAAKAAcACQAIAAoABwAJAAgACgAHAAkACAAKAAcACQAIAAoABwAJAAgACgAHAAkACAAKAAcACQAIAAoABwAJAAgACgAHAAkACAAKAAcACQAIAAoABwAJAAgACgAHAAkACAAKAAcACQAIAAoABwAIAAkABwAGAAkACAAKAAcACQAIAAoABwAJAAgACgAHAAgACQAHAAYACQAIAAoABwAJAAgACgAHAAkACAAKAAcACAAJAAcACgAIAAcACQAGAAgABwAJAAYACAAHAAkABgAIAAcACQAGAAgACQAHAAYACAAJAAcABgAIAAkABwAGAAgACQAHAAYACAAJAAcABgAIAAkABwAGAAgACQAHAAYACAAJAAcABgAIAAcACQAGAAgACQAHAAYACAAJAAcABgAIAAkABwAKAAgABwAJAAYACAAJAAcABgAIAAkABwAGAAgACQAHAAoACAAHAAkABgAIAAkABwAGAAgACQAHAAYACAAJAAcACgAJAAgACgAHAAkACAAKAAcACQAIAAoABwAJAAgACgAHAAkACAAKAAcACQAIAAoABwAJAAgACgAHAAkACAAKAAcACQAIAAoABwAJAAgACgAHAAkACAAKAAcACQAIAAoABwAJAAoACAAHAAkACAAKAAcACQAIAAoABwAIAAkACgAHAAkACgAIAAcACQAIAAoABwAJAAgACgAHAAgACQAKAAcACQAKAAgABwAJAAgACgAHAAkACAAKAAcACAAJAAoABwAIAAkABwAGAAgACQAHAAYACAAHAAkABgAIAAcACQAGAAgACQAHAAYACAAJAAcABgAIAAkABwAGAAgACQAHAAYACAAJAAcABgAIAAkABwAGAAgACQAHAAYACAAJAAcABgAIAAcACQAGAAgACQAHAAYACAAJAAcABgAIAAkABwAKAAgABwAJAAYACAAJAAcABgAIAAkABwAGAAgACQAHAAoACAAHAAkABgAIAAkABwAGAAgACQAHAAYACAAJAAcACgAJAAoACAAHAAkACgAIAAcACQAKAAgABwAJAAoACAAHAAkACAAKAAcACQAIAAoABwAJAAgACgAHAAkACAAKAAcACQAIAAoABwAJAAgACgAHAAkACAAKAAcACQAIAAoABwAJAAoACAAHAAkACAAKAAcACQAIAAoABwAJAAgACgAHAAkACgAIAAcACQAIAAoABwAJAAgACgAHAAkACAAKAAcACQAKAAgABwAJAAgACgAHAAkACAAKAAcACQAIAAoABwAIAAkABwAGAAgACQAHAAYACAAJAAcABgAIAAkABwAGAAgACQAHAAYACAAJAAcABgAIAAkABwAGAAgACQAHAAYACAAJAAcACgAIAAkABwAKAAgACQAHAAoACAAJAAcACgAIAAkABwAGAAgACQAHAAYACAAJAAcACgAJAAgACgAHAAgACQAHAAYACAAJAAcABgAIAAkABwAKAAkACAAKAAcACAAJAAcABgAIAAkABwAGAAgACQAHAAoACQAIAAoABwAJAAoACAAHAAkACgAIAAcACQAKAAgABwAJAAoACAAHAAkACAAKAAcACQAIAAoABwAJAAgACgAHAAkACAAKAAcACQAIAAoABwAJAAgACgAHAAkACAAKAAcACQAIAAoABwAJAAoACAAHAAkACAAKAAcACQAIAAoABwAJAAgACgAHAAkACgAIAAcACQAIAAoABwAJAAgACgAHAAkACAAKAAcACQAKAAgABwAJAAgACgAHAAkACAAKAAcACQAIAAoABwAIAAkABwAGAAgACQAHAAYACAAJAAcABgAIAAkABwAGAAgACQAHAAYACAAJAAcABgAIAAkABwAGAAgACQAHAAYACAAJAAcACgAIAAkABwAKAAgACQAHAAoACAAJAAcACgAIAAkABwAGAAgACQAHAAYACAAJAAcACgAJAAgACgAHAAgACQAHAAYACAAJAAcABgAIAAkABwAKAAkACAAKAAcACAAJAAcABgAIAAkABwAGAAgACQAHAAoACQAIAAoABwAEAAUAAwALAAQAAwAFAAsAAwAEAAsABQADAAsABAAFAAQAAwAFAAsABAADAAsABQADAAQACwAFAAMACwAEAAUABAADAAUACwAEAAMACwAFAAMABAALAAUAAwALAAQABQALAAMABAAFAAsAAwAEAAUACwADAAQABQALAAMABAAFAAsAAwAEAAUACwADAAQABQALAAMABAAFAAsAAwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQALAAMABAAFAAsAAwAEAAUAAwALAAQABQADAAsABAAFAAsAAwAEAAUACwADAAQABQADAAsABAAFAAMACwAEAAUACwADAAQABQALAAMABAAFAAMACwAEAAUAAwALAAQABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUAAwAEAAsABQADAAQACwAFAAMABAALAAUAAwAEAAsABQAEAAMACwAFAAMABAALAAUAAwAEAAsABQADAAsABAAFAAQAAwALAAUAAwAEAAsABQADAAQACwAFAAMACwAEAAUABAADAAsABQADAAQACwAFAAMABAALAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAMABAALAAUAAwAEAAsABQADAAQACwAFAAMABAALAAUAAwAEAAsABQADAAQACwAFAAMABAALAAUAAwAEAAsABQALAAwAAwACAAsAAwAMAAIACwADAAIADAADAAsAAgAAAAsAAwAMAAIACwADAAwAAgALAAMAAgABAAMACwACAAAACwADAAwAAgALAAMADAACAAsAAwACAAEAAwALAAIAAAAAAAMAAQALAAAAAwABAAIAAAADAAEAAgAAAAEAAwACAAMAAAABAAsAAwAAAAEACwADAAAAAQACAAMAAAABAAIAAwALAAAAAQADAAsAAAABAAMACwAAAAIAAwALAAAAAgAAAAEAAwACAAEAAwAAAAIAAwACAAEAAAADAAsAAgABAAAAAQADAAIAAwAAAAEAAgADAAIAAQAAAAMACwACAAEAAAABAAMAAgAAAAMAAQACAAMACwACAAEAAwALAAIAAQALAAMAAgAMAAsAAwAMAAIACwADAAwAAgALAAMADAACAAsAAwACAAwACwADAAIADAALAAMAAgAMAAsAAwACAAwAAwALAAIAAQALAAMAAgABAAsAAwACAAEACwADAAIAAQABAAAAAgADAAEAAgADAAAAAgABAAMAAAACAAMAAQALAAEAAAACAAMAAQACAAMAAAACAAEAAwAAAAIAAwABAAsAAQAAAAIAAwABAAIAAwAAAAIAAQADAAAAAgADAAEACwADAAIACwAEAAMACwACAAQAAwALAAIABAADAAsAAgAEAAMAAgALAAEAAwACAAsAAQADAAIACwABAAMACwACAAEAAwACAAEACwADAAIACwABAAMAAgALAAEAAwACAAsAAQALAAMAAgAMAAMACwACAAEAAwALAAIAAQADAAIACwABAAMACwACAAwAAwALAAIAAQADAAsAAgABAAMAAgALAAEAAwALAAIABAADAAsAAgABAAMAAgALAAEAAwACAAEACwABAAAAAwACAAEAAAACAAMAAQAAAAIAAwABAAAAAgADAAEAAAADAAIAAQACAAAAAwABAAIAAAADAAEAAgAAAAMAAwACAAEAAAADAAIAAQAAAAIAAwABAAAAAgADAAEAAAAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwALAAMABAAMAAsAAwAEAAwACwADAAQADAALAAMABAAFAAsAAwAEAAwACwADAAQADAALAAMABAAFAAsAAwAEAAUACwADAAQADAALAAMABAAMAAsAAwAEAAUACwADAAQABQALAAMABAAFAAsAAwAEAAUACwADAAQABQADAAsABAAFAAsAAwAEAAUACwADAAQABQALAAMABAAFAAsAAwAEAAUACwADAAQABQALAAMABAAFAAsAAwAEAAUACwADAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAsAAwAEAAUACwADAAQABQALAAMABAAFAAsAAwAEAAUACwADAAQADAALAAMABAAMAAMACwAEAAUACwADAAQABQALAAMABAAFAAsAAwAEAAUAAwALAAQABQALAAMABAAFAAsAAwAEAAUACwADAAQABQAEAAUAAwALAAQAAwAFAAsABAADAAUACwAEAAMABQALAAQAAwAFAAsAAwAEAAsABQADAAQACwAFAAMABAALAAUAAwAEAAsABQADAAQACwAFAAMABAALAAUAAwAEAAsABQAEAAMACwAFAAMABAALAAUAAwAEAAsABQADAAsABAAFAAQAAwALAAUAAwAEAAsABQADAAQACwAFAAMACwAEAAUABAADAAsABQADAAQACwAFAAMABAALAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQAAwAFAAsABAADAAUACwAEAAMABQALAAQAAwAFAAsAAwAEAAsABQADAAQACwAFAAMABAALAAUAAwAEAAsABQAEAAUAAwALAAQAAwAFAAsAAwAEAAsABQADAAsABAAFAAQABQADAAsABAADAAUACwADAAQACwAFAAMACwAEAAUABAAFAAMACwAEAAMABQALAAMABAALAAUAAwALAAQABQALAAMABAAFAAsAAwAEAAUACwADAAQABQALAAMABAAFAAsAAwAEAAUACwADAAQABQALAAMABAAFAAsAAwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQALAAMABAAFAAsAAwAEAAUACwADAAQABQADAAsABAAFAAsAAwAEAAUACwADAAQABQALAAMABAAFAAMACwAEAAUACwADAAQABQALAAMABAAFAAsAAwAEAAUAAwALAAQABQALAAwAAwACAAsADAADAAIACwAMAAMAAgALAAwAAwACAAsAAwAMAAIACwADAAwAAgALAAMADAACAAsAAwAMAAIACwADAAwAAgALAAMADAACAAsAAwAMAAAACwADAAwAAAALAAwAAwACAAsAAwAMAAAACwADAAwAAAALAAMAAAACAAsADAADAAIACwADAAwAAAALAAMADAAAAAsAAwAAAAIACwAMAAMAAgALAAwAAwACAAsAAwAMAAAACwADAAAAAgAAAAMACwABAAAAAwALAAEAAAADAAsAAQAAAAMACwABAAMAAAALAAEAAwAAAAsAAQADAAAACwABAAMAAAALAAEAAwALAAAAAQADAAsAAAABAAMACwAAAAEAAwALAAAAAQAAAAMAAQALAAAAAwALAAEAAwALAAAAAQALAAMAAAACAAAAAwABAAsAAAADAAsAAQADAAsAAAABAAsAAwAAAAIAAAADAAEACwAAAAMACwABAAMACwAAAAEACwADAAAAAgAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAVABYAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABUAFgAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFQAWABQAEwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAMABQAHAAQAAwAFAAsABAADAAUACwAEAAMABQALAAQAAwAFAAcABAADAAUACwAEAAMABQALAAQAAwAFAAsABAADAAUABwAEAAMABQALAAQAAwAFAAsABAADAAUACwAEAAMABQALAAQAAwAFAAsABAADAAUACwAEAAMABQALAAQAAwAFAAsABAADAAUACwAEAAMABQALAAQAAwAFAAsABAADAAUACwAEAAMABQALAAQAAwAFAAsABAAFAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwAHAAUABAADAAcABQAEAAMACwAFAAQAAwALAAUABAADAAcABQAEAAMABwAFAAQAAwALAAUABAADAAsABQAEAAMABwAFAAQAAwAHAAUABAADAAsABQAEAAMACwAEAAMACwAFAAQAAwAFAAsABAADAAUACwAEAAMABQALAAQAAwAFAAsABAADAAUACwAEAAMABQALAAQAAwAFAAsABAADAAUACwAEAAMABQALAAQAAwAFAAsABAADAAUACwAEAAMABQAHAAQAAwAFAAcABAADAAUABwAEAAUAAwAHAAQAAwAFAAsABAADAAUACwAEAAMABQALAAQABQADAAsABAADAAUACwAEAAMABQALAAQAAwAFAAsABAAFAAMACwAEAAUAAwAHAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAcABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMABwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAMABQALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQAAwAFAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwADAAIACwAEAAMAAgALAAEAAgADAAEACwACAAMAAQALAAMAAgALAAQAAwACAAsAAQACAAMAAQALAAIAAwABAAAAAwACAAsABAADAAIACwABAAIAAwABAAsAAgADAAEAAAABAAAAAgADAAEAAAACAAMAAQAAAAIAAwABAAAAAgADAAEAAgAAAAMAAQACAAAAAwABAAIAAAADAAEAAgAAAAMAAgABAAMAAAACAAEAAwAAAAIAAQADAAAAAgABAAMAAAABAAAAAgADAAEAAgAAAAMAAgABAAMAAAACAAMAAQAAAAEAAAACAAMAAQACAAAAAwACAAEAAwAAAAIAAwABAAAAAQAAAAIAAwABAAIAAAADAAIAAQADAAAAAgADAAEAAAADAAIABAALAAMAAgAEAAsAAwACAAQACwADAAIABAALAAMAAgABAAQAAwACAAEABAADAAIAAQALAAMAAgABAAsAAgADAAEACwACAAMAAQALAAIAAwABAAsAAgADAAEACwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAWABUAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABYAFQAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFgAVABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMABQALAAQAAwAFAAsABAADAAUACwAEAAMABQALAAQAAwAFAAsABAADAAUACwAEAAMABQALAAQAAwAFAAsABAADAAUACwAEAAMABQALAAQAAwAFAAsABAADAAUACwAEAAMABQALAAQAAwAFAAsABAADAAUACwAEAAMABQALAAQAAwAFAAsABAADAAUACwAEAAMABQALAAQAAwAFAAsABAADAAUACwAEAAMABQAHAAQAAwAFAAcABAADAAUABwAEAAMABQAHAAQAAwAFAAsABAADAAUACwAEAAMABQALAAQAAwAFAAsABAADAAUACwAEAAMABQALAAQAAwAFAAsABAADAAUACwAEAAMABQAHAAQAAwAFAAsABAADAAUACwAEAAMABQALAAQAAwAFAAcABAADAAUACwAEAAMABQALAAQAAwAFAAsABAADAAUABwAEAAMABQALAAQAAwAFAAsABAADAAUACwALAAMABAAMAAsAAwAEAAwACwADAAQADAALAAMABAAMAAsAAwAEAAwACwADAAQADAALAAMABAAMAAsAAwAMAAQACwADAAQADAALAAMABAAMAAsAAwAEAAwACwADAAwABAALAAMADAAEAAsAAwAMAAQACwADAAwABAALAAMADAAEAAsAAwAMAAQACwADAAwABAALAAMADAAEAAsAAwAMAAQACwADAAwABAALAAMADAAEAAsAAwAMAAQACwADAAwABAALAAwAAwAEAAsADAADAAQACwADAAwABAALAAMADAAEAAsADAADAAQACwADAAwABAALAAMADAAEAAsAAwAMAAQACwADAAwABAALAAMADAAEAAsAAwAMAAQACwADAAwABAALAAMABAAMAAsAAwAEAAwACwADAAQADAALAAMABAAMAAsAAwAMAAQACwADAAwABAALAAMABAAMAAsAAwAEAAwACwADAAwABAALAAMADAAEAAsAAwAMAAQACwADAAwABAADAAQACwAFAAMABAALAAUAAwAEAAsABQADAAQACwAFAAMABAALAAUAAwAEAAsABQADAAQACwAFAAMABAALAAUAAwAEAAsABQADAAQACwAFAAMACwAEAAUAAwALAAQABQADAAsABAACAAMACwAEAAIAAwALAAQAAgADAAsABAACAAMACwAEAAIAAwALAAQAAgADAAsABAACAAMACwAEAAwAAwAEAAsAAgADAAsABAACAAMACwAEAAIAAwALAAQADAALAAMADAAEAAsAAwAMAAQACwADAAQADAALAAMABAAMAAsAAwAEAAwACwADAAQADAALAAMABAAMAAsAAwAEAAwAAwALAAQADAADAAsABAAMAAMACwAEAAwAAwALAAQADAADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAsAAwAEAAwAAwALAAQADAADAAsABAAFAAMACwAEAAUACwADAAQADAADAAsABAAMAAMACwAEAAwAAwALAAQABQAEAAMABQAHAAQAAwAFAAcABAADAAUABwADAAQABwALAAQAAwAFAAsABAADAAUACwAEAAMABQALAAMABAALAAcABAADAAUACwAEAAMABQALAAQAAwALAAUAAwAEAAsABQADAAQAAgAHAAMABAACAAsAAwAEAAIACwADAAQACwACAAMABAAHAAIAAwAEAAsAAgADAAQACwACAAMABAALAAIAAwAEAAcACwADAAQACwAHAAMABAALAAcAAwAEAAsABwADAAQACwACAAMABAALAAIAAwAEAAsAAgADAAQACwAFAAMABAALAAIAAwAEAAsAAgADAAQACwACAAMABAALAAUAAwAEAAsAAgADAAQACwACAAMABAALAAcAAwAEAAsABQAEAAMACwAFAAQAAwALAAUABAADAAUACwAEAAMABQALAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwAFAAsAAwAEAAsABQADAAQACwAFAAQAAwALAAUABAADAAsABQALAAMABAAMAAsAAwAEAAwACwADAAQADAALAAMABAAMAAsAAwAEAAwACwADAAQADAALAAMABAAFAAsAAwAEAAUACwADAAQABQALAAMABAAFAAsAAwAEAAUACwADAAQABQALAAMABAAMAAsAAwAEAAUACwADAAQABQALAAMABAAFAAsAAwAEAAwACwADAAQABQALAAMABAAFAAsAAwAEAAUACwADAAQADAALAAMABAAFAAsAAwAEAAUACwADAAQABQALAAMABAAFAAsAAwAEAAUACwADAAQABQALAAMABAAFAAsAAwAEAAUACwADAAQABQALAAMABAAFAAsAAwAEAAUACwADAAQABQALAAMABAAFAAsAAwAEAAUACwADAAQABQALAAMABAAFAAsAAwAEAAUACwADAAQABQALAAMABAAFAAsAAwAEAAUACwADAAQABQALAAMABAAFAAsAAwAEAAUACwADAAQABQALAAMABAAFAAsAAwAEAAUACwADAAQABQALAAMABAAFAAsAAwAEAAUACwADAAQABQALAAMABAAFAAsAAwAEAAUACwADAAQABQALAAMABAAFAAsAAwAEAAUACwADAAQABQALAAMABAAFAAsAAwAEAAUACwADAAQABQALAAMABAAFAAsAAwAEAAUACwADAAQABQALAAMABAAFAAsAAwAEAAUACwADAAQABQALAAMABAAFAAsAAwAEAAUACwADAAQABQALAAMABAAFAAsAAwAEAAUACwADAAQABQALAAMABAAFAAsAAwAEAAUACwADAAQABQALAAMABAAFAAsAAwAEAAUACwADAAQABQALAAMABAAFAAsAAwAEAAUACwADAAQABQALAAMABAAFAAsAAwAEAAUACwADAAQABQALAAMABAAFAAsAAwAEAAUACwADAAQABQALAAMABAAFAAsAAwAEAAUACwADAAQABQALAAMABAAFAAsAAwAEAAUACwADAAQABQALAAMABAAFAAsAAwAEAAUACwADAAQABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUAAwAEAAsABQADAAQACwAFAAMABAALAAUAAwAEAAsABQAEAAMACwAFAAQAAwALAAUAAwAEAAsABQADAAsABAAFAAQAAwALAAUABAADAAsABQADAAQACwAFAAMACwAEAAUABAADAAsABQAEAAMACwAFAAMABAALAAUAAwALAAQABQALAAMABAAFAAsAAwAEAAUACwADAAQABQALAAMABAAFAAsAAwAEAAUACwADAAQABQALAAMABAAFAAsAAwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQALAAMABAAFAAsAAwAEAAUAAwALAAQABQADAAsABAAFAAsAAwAEAAUACwADAAQABQADAAsABAAFAAMACwAEAAUACwADAAQABQALAAMABAAFAAMACwAEAAUAAwALAAQABQAEAAMABQAHAAQAAwAFAAcABAADAAUABwAEAAMABQAHAAQAAwAFAAsABAADAAUACwAEAAMABQALAAQAAwAFAAsABAADAAUACwAEAAMABQALAAQAAwAFAAsABAADAAUACwAEAAMABQAHAAQAAwAFAAsABAADAAUACwAEAAMABQALAAQAAwAFAAcABAADAAUACwAEAAMABQALAAQAAwAFAAsABAADAAUABwAEAAMABQALAAQAAwAFAAsABAADAAUACwAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwAFAAsABAADAAUACwAEAAMABQALAAQAAwALAAUABAADAAUACwAEAAMABQALAAQAAwAFAAsABAADAAUACwAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMABQALAAQAAwALAAUABAADAAsABQAEAAMABQALAAQAAwAFAAsABAADAAsABQAEAAMACwAFAAQAAwAFAAsABAADAAUACwALAAMADAACAAsAAwACAAwAAwALAAIAAQADAAIACwABAAsAAwAMAAIACwADAAIADAADAAsAAgABAAMACwACAAEACwADAAwAAgALAAMAAgAMAAMACwACAAEAAwALAAIAAQAAAAEAAwACAAAAAQADAAIAAAABAAMAAgAAAAMAAQACAAEAAwAAAAIAAwABAAAAAgADAAAAAQACAAMAAAABAAIAAwACAAEAAAADAAIAAQAAAAMAAQACAAAAAwABAAIACwAAAAMAAQACAAMAAAABAAsAAwALAAAAAQADAAsAAgABAAAAAwABAAIAAwAAAAEAAgADAAsAAAABAAMACwACAAEAAAADAAEAAgADAAAAAQACAAMACwAAAAEAAwALAAIAAQALAAwAAwACAAsAAwAMAAIACwADAAwAAgALAAMADAACAAsAAwAMAAIACwADAAwAAgALAAMADAACAAsAAwAMAAIACwADAAIADAALAAMAAgABAAsAAwACAAEAAwALAAIAAQADAAsAAgAEAAMAAgALAAEAAwACAAEACwACAAMAAQALAAMACwACAAQAAwACAAsAAQADAAIACwABAAMAAgABAAsAAwALAAIABAADAAIACwABAAMAAgALAAEAAwACAAEACwABAAAAAgADAAEAAAACAAMAAQAAAAIAAwABAAAAAgADAAEAAgADAAAAAQACAAMAAAABAAIAAwAAAAEAAgADAAAAAgABAAMAAAACAAEAAwAAAAIAAwABAAAAAgADAAEAAAABAAAAAwACAAEAAwACAAAAAwACAAEAAAADAAIACwABAAEAAAACAAMAAQADAAIAAAADAAIAAQAAAAMAAgABAAsAAQAAAAIAAwABAAIAAwAAAAMAAgABAAAAAwACAAEACwALAAMAAgAMAAMACwACAAwAAwALAAIADAADAAsAAgAEAAMACwACAAEAAwALAAIAAQADAAsAAgABAAMACwACAAEAAwALAAIAAQADAAsAAgABAAMAAgALAAEAAwACAAsAAQADAAIABAALAAMAAgABAAsAAwACAAEAAAACAAMAAQAAAAMAAgAEAAsAAwACAAEACwADAAIAAQALAAIAAwABAAAAAwACAAQACwADAAIAAQALAAMAAgABAAsAAgADAAEAAAABAAAAAgADAAEAAAACAAMAAQAAAAIAAwABAAAAAgADAAEAAgAAAAMAAQACAAAAAwABAAIAAwAAAAEAAgADAAAAAgABAAMAAAACAAEAAwAAAAIAAQADAAAAAgABAAMAAAABAAAAAgADAAEAAgADAAAAAgABAAMAAAACAAMAAQAAAAEAAAACAAMAAQACAAMAAAACAAEAAwAAAAIAAwABAAAAAQAAAAIAAwABAAIAAwAAAAIAAQADAAAAAgADAAEAAAADAAIACwAEAAMAAgALAAQAAwACAAsABAADAAIACwAEAAMAAgALAAEAAwACAAsAAQADAAIACwABAAMAAgABAAsAAwACAAEACwADAAIAAQALAAMAAgABAAsAAwACAAEACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwALAAMADAAEAAsAAwAMAAQACwADAAQADAALAAMABAAMAAsAAwAMAAQACwADAAwABAALAAMABAAMAAsAAwAEAAwACwADAAwABAALAAMADAAEAAsAAwAMAAQACwADAAQADAALAAMABAAFAAsAAwAEAAUACwADAAQABQALAAMABAAFAAsAAwAEAAwACwADAAQADAALAAMABAAMAAsAAwAEAAwACwADAAQADAALAAMABAAMAAsAAwAEAAwACwADAAQADAALAAMABAAMAAsAAwAEAAwACwADAAwABAALAAMADAAEAAsAAwAEAAwACwADAAQADAALAAMABAAMAAsAAwAMAAQACwADAAQADAALAAMABAAMAAsAAwAEAAwACwADAAwABAALAAwAAwAEAAsADAADAAQACwADAAwABAALAAMADAAEAAsAAwAMAAQACwADAAwABAALAAMADAAEAAsAAwAMAAQACwADAAwABAALAAMADAAEAAsAAwAMAAQACwADAAwABAADAAsABAACAAMACwAEAAIAAwAEAAsAAgADAAQACwACAAMACwAEAAIAAwALAAQAAgADAAsABAACAAMABAALAAIAAwALAAQAAgADAAsABAACAAMACwAEAAIAAwALAAQAAgAEAAMACwAFAAMABAALAAUAAwAEAAsABQADAAsABAAFAAQAAwALAAUAAwAEAAsABQADAAsABAAFAAMACwAEAAUAAwAEAAsABQADAAQACwAFAAMACwAEAAUAAwALAAQABQALAAMABAAFAAsAAwAEAAUACwADAAQADAALAAMABAAMAAsAAwAEAAUACwADAAQABQALAAMABAAFAAsAAwAEAAwACwADAAQABQALAAMABAAFAAsAAwAEAAUACwADAAQADAALAAMADAAEAAsAAwAEAAIAAwALAAQAAgADAAsABAACAAsAAwAEAAwACwADAAQADAALAAMABAACAAMACwAEAAIACwADAAQADAALAAMABAAMAAsAAwAEAAIAAwALAAQAAgADAAQAAgALAAMABAACAAcAAwAEAAcACwAEAAMABwALAAMABAACAAsAAwAEAAIACwADAAQACwAHAAQAAwALAAcAAwAEAAIACwADAAQAAgALAAMABAALAAIABAADAAsABwAEAAMABQAHAAQAAwAFAAsABAADAAsABQAEAAMACwAFAAQAAwAFAAcABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAcACwAEAAMACwAHAAQAAwALAAcABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQADAAQACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAMABAALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABwADAAQACwACAAMABAALAAIAAwAEAAIACwADAAQAAgALAAMABAALAAIAAwAEAAsAAgADAAQACwACAAMABAALAAIAAwAEAAsAAgADAAQACwACAAMABAALAAIAAwAEAAsAAgAAAAEAEwADAAAAAQATAAMAAAATAAEAAwAAABMAAQAMAAAAAQADABMAAAABABMAAwAAABMAAQADAAAAEwABAAMAAAABAAMAEwAAAAEAEwADAAAAEwABAAMAAAATAAEAAwAAABMAAQAMAAAAEwABAAwAAAATAAEADAAAABMAAQAMAAAAEwABAAwAAAATAAEADAAAABMAAQAMAAAAEwABAAwAAAATAAEADAAAABMAAQAMAAAAEwABAAwAAAATAAEAAwAAABMAAQAMAAAAEwABAAwAAAATAAEAAwAAABMAAQADAAAAEwABAAwAAAATAAEADAAAABMAAQADAAAAEwABAAMAAAATAAEADAAAABMAAQAMAAAAEwABAAMAAAATAAEAAwAAAAEAAwATAAAAAQADABMAAAABAAMAEwAAAAEAAwATAAAAEwABAAMAAAATAAEAAwAAABMAAQADAAAAEwABAAMAAAATAAEAAwAAABMAAQADAAAAEwABAAMAAAATAAEAAwAAAAEAAgATAAAAAQATAAIAAAABABMADAAAABMAAQAMAAAAAQATAAIAAAABABMAAgAAAAEAEwAMAAAAEwABAAwAAAABABMAAgAAAAEAEwACAAAAAQATAAwAAAATAAEADAAAABMAAQAMAAAAEwABAAwAAAATAAEADAAAABMAAQAMAAAAEwABAAwAAAATAAEADAAAABMAAQAMAAAAEwABAAwAAAATAAEADAAAABMAAQAMAAAAEwABAAwAAAATAAEADAAAABMAAQAMAAAAEwABAAwAAAATAAEADAAAABMAAQAMAAAAEwABAAwAAAATAAEADAAAABMAAQAMAAAAEwABAAwAAAATAAEADAAAABMAAQAMAAAAEwABAAwAAAATAAEADAAAAAEAEwADAAAAAQATAAMAAAABABMAAgAAAAEAEwACAAAAAQATAAMAAAABABMAAwAAAAEAEwACAAAAAQATAAIAAAATAAEAAwAAABMAAQADAAAAEwABAAIAAAABABMAAgAAAAEAEwADAAAAAQATAAMAAAATAAEAAwAAABMAAQADAAAAAQATAAMAAAABABMAAwAAABMAAQADAAAAEwABAAMAAAABABMAAgAAAAEAEwACAAAAEwABAAMAAAATAAEAAwAAABMAAQAMAAAAEwABAAwAAAATAAEADAAAABMAAQAMAAAAEwABAAwAAAATAAEADAAAABMAAQAMAAAAEwABAAwAAAATAAEAAwAAABMAAQADAAAAEwABAAwAAAATAAEADAAAABMAAQAMAAAAEwABAAwAAAATAAEADAAAABMAAQAMAAAAEwABAAwAAAATAAEADAAAABMAAQAMAAAAEwABAAwAAAATAAEADAAAABMAAQAMAAAAEwABAAwAAAATAAEADAAAAAEAEwACAAAAAQATAAIAAAABABMAAgAAAAEAEwACAAAAAQATAAIAAAABABMAAgAAAAEAEwACAAAAAQATAAIAAAABABMAAgAAAAEAEwACAAAAAQATAAIAAAATAAEAAgAAAAEAAwATAAAAEwABAAMAAAATAAEAAwAAABMAAQADAAAAAQADABMAAAATAAEAAwAAABMAAQADAAAAEwABAAMAAAABAAMAEwAAABMAAQADAAAAEwABAAMAAAATAAEAAwAAABMAAQAMAAAAEwABAAwAAAATAAEADAAAABMAAQAMAAAAEwABAAwAAAATAAEAAwAAABMAAQADAAAAEwABAAMAAAATAAEAAwAAABMAAQADAAAAEwABAAMAAAATAAEAAwAAABMAAQAMAAAAEwABAAMAAAATAAEAAwAAABMAAQADAAAAEwABAAwAAAATAAEAAwAAABMAAQADAAAAEwABAAMAAAATAAEADAAAABMAAQADAAAAEwABAAMAAAATAAEAAwAAAAEAEwADAAAAAQATAAMAAAABABMAAwAAAAEAEwADAAAAAQATAAMAAAABABMAAwAAAAEAEwADAAAAEwABAAMAAAATAAEAAwAAABMAAQADAAAAEwABAAMAAAATAAEAAwAAAAMAEwABAAAAEwADAAEAAAATAAMAAQAAABMAAwABAAAAAwATAAEAAAATAAMAAQAAABMAAwABAAAAEwADAAEAAAADABMAAQAAABMAAwABAAAAEwADAAEAAAATAAMAAQAAABMADAABAAAAEwAMAAEAAAATAAwAAQAAABMADAABAAAAEwAMAAEAAAATAAwAAQAAABMADAABAAAAEwABAAwAAAATAAMAAQAAABMAAwABAAAAEwABAAMAAAATAAEAAwAAABMAAQAMAAAAEwABAAwAAAATAAEAAwAAABMAAQADAAAAEwAMAAEAAAATAAEADAAAABMAAQADAAAAEwABAAMAAAATAAwAAQAAABMAAQAMAAAAEwABAAMAAAATAAEAAwAAAAMAEwABAAAAAwATAAEAAAADABMAAQAAAAMAEwABAAAAEwADAAEAAAATAAMAAQAAABMAAwABAAAAEwADAAEAAAATAAEAAwAAABMAAwABAAAAEwADAAEAAAATAAMAAQAAAAEAAgATAAAAAQACABMAAAABABMADwAAAAEAEwAPAAAAAQACABMAAAABABMAAgAAAAEAEwAPAAAAAQATAA8AAAABAAIAEwAAAAEAEwACAAAAAQATAA8AAAABABMADwAAABMADwABAAAAEwAPAAEAAAATAAEADwAAABMAAQAPAAAAEwABAA8AAAATAAEADwAAABMAAQAPAAAAEwABAA8AAAABABMADwAAAAEAEwAPAAAAEwABAA8AAAATAAEADwAAABMAAQANAAAAEwABAAwAAAATAAEADAAAAAEAEwAMAAAAEwABAA8AAAATAAEADwAAABMAAQAPAAAAAQATAAwAAAATAAEADwAAABMAAQAPAAAAEwABAA8AAAABABMADwAAAAEAAgATAAAAAQACABMAAAABAAIAEwAAAAEAAgATAAAAAQATAAIAAAABABMAAgAAAAEAEwACAAAAAQATAAIAAAABABMAAgAAAAEAEwACAAAAAQATAAIAAAABABMAAgAAAAEAAgATAAAAAQATAAIAAAABABMAAgAAABMAAQAMAAAAAQACABMAAAABABMAAgAAAAEAEwACAAAAAQATAAwAAAABAAIAEwAAAAEAEwACAAAAAQATAAIAAAABABMADwAAABMAAQAPAAAAEwABAA8AAAATAAEADwAAABMAAQAPAAAAEwABAA8AAAATAAEADwAAABMAAQAPAAAAEwABAA8AAAATAAEADwAAABMAAQAPAAAAEwABAA8AAAATAAEADwAAABMADwABAAAAEwABAA8AAAABABMADwAAAAEAEwAPAAAAEwAPAAEAAAATAAEADwAAABMAAQAPAAAAAQATAA8AAAATAAEADwAAABMAAQAPAAAAEwABAA8AAAABABMADwAAAAEAAgATAAAAAQACABMAAAABAAIAEwAAAAEAAgATAAAAAQATAAIAAAABABMAAgAAAAEAEwACAAAAAQATAAIAAAABABMADwAAAAEAEwAPAAAAAQATAA8AAAABABMAAgATAAAADAABABMAAAAMAA0AEwAAAAwADQATAAAADAANABMAAAAMAAEAEwAAAAwAAQATAAAADAABABMAAAAMAA0AEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAwADQATAAAADQABABMAAAANAAEAEwAAAA0AAQATAAAADQABABMAAAANAAEAEwAAAA0AAQATAAAADQABABMAAAANAAEAEwAAAA0ADAATAAAADQAMABMAAAANAAwAEwAAAAwADQATAAAADQABABMAAAANAAwAEwAAAAwADQATAAAADAABABMAAAANAAEAEwAAAA0ADAATAAAADAANABMAAAAMAAEAEwAAAA0AAQATAAAADQAMABMAAAAMAA0AEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADwANABMAAAAPAA0AEwAAAA0ADwATAAAADQAPABMAAAANAAEAEwAAAA0ADwATAAAADQAPABMAAAANAA8AEwAAAA0AAQATAAAADQAMABMAAAANAAwAEwAAAA0ADwATAAAADQABABMAAAANAAEAEwAAAA0AAQATAAAADQABABMAAAANAA8AEwAAAA0ADwATAAAADQABABMAAAANAAEAEwAAAA0ADwATAAAADQAPABMAAAANAA8AEwAAAA0ADwATAAAADQABABMAAAANAAEAEwAAAA0ADAATAAAADQAMABMAAAANAAEAEwAAAA0AAQATAAAADQAMABMAAAANAAwAEwAAAA0AAQATAAAADQABABMAAAANAAwAEwAAAA0ADAATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADAABABMAAAAMAA0AEwAAAAwADQATAAAADAANABMAAAANAAwAEwAAAAwADQATAAAADAANABMAAAANAAwAEwAAAA0ADAATAAAADQAMABMAAAANAAwAEwAAAA0ADAATAAAADQAMABMAAAANAAEAEwAAAA0ADAATAAAADQAMABMAAAANAAwAEwAAAA0AAQATAAAADQABABMAAAANAAEAEwAAAA0ADAATAAAADQABABMAAAANAAEAEwAAAA0AAQATAAAADQABABMAAAANAAEAEwAAAA0AAQATAAAADQABABMAAAANAAEAEwAAAA0ADAATAAAADQAMABMAAAANAAEAEwAAAA0AAQATAAAADQABABMAAAANAA8AEwAAAA0ADwATAAAADQAPABMAAAANAAEAEwAAAA0AAQATAAAADQAPABMAAAANAA8AEwAAAA0AAQATAAAADQABABMAAAANAA8AEwAAAA0AAQATAAAADwABABMAAAABAA0AEwAAAA0AAQATAAAADQABABMAAAAPAA0AEwAAAA0ADwATAAAADQABABMAAAANAAEAEwAAAA0ADwATAAAADQAPABMAAAANAAEAEwAAAA0AAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADAANABMAAAAMAA0AEwAAAAwADQATAAAADAANABMAAAAMAA0AEwAAAAwADQATAAAADQABABMAAAANAAEAEwAAAA0AAQATAAAADQABABMAAAANAAwAEwAAAA0ADAATAAAADQAMABMAAAANAAwAEwAAAAwADQATAAAADAANABMAAAAMAA0AEwAAAA0ADAATAAAADQABABMAAAANAAEAEwAAAA0ADAATAAAADQAMABMAAAANAAEAEwAAAA0ADAATAAAADQAMABMAAAANAAwAEwAAAA0AAQATAAAADQAMABMAAAANAAwAEwAAAA0ADAATAAAADQAMABMAAAAMAA0AEwAAAAwADQATAAAADAANABMAAAANAAwAEwAAAAwADQATAAAADAANABMAAAAMAA0AEwAAAA0ADAATAAAADQAMABMAAAAMAA0AEwAAAAwADQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADQABABMAAAANAAEAEwAAAA0AAQATAAAADQABABMAAAANAAwAEwAAAA0ADAATAAAADQAMABMAAAANAAwAEwAAAAwADQATAAAADAANABMAAAAMAA0AEwAAAAwADQATAAAADQABABMAAAANAAwAEwAAAAwADQATAAAADAABABMAAAANAAEAEwAAAA0ADAATAAAADAANABMAAAAMAAEAEwAAAA0AAQATAAAADQAMABMAAAAMAA0AEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQATAAAADwABABMAAAAPAAEAEwAAAA8AAQATAAAADwABABMAAAAPAAEAEwAAAA8AAQATAAAADwABABMAAAAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQATAAAADwABABMAAAAPAAEAAAATAA8AAQAAABMADwABABMAAAAPAAEAEwAAAA8AAQAAABMADwABAAAAEwAPAAEAEwAAAA8AAQATAAAADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQATAAAADwABABMAAAAPAAEAEwAAAA8ADQATAAAADwANAAAAEwAPAAEAEwAAAA8AAQATAAAADwANABMAAAAPAA0AAAATAA8AAQAAABMADwABAAAAEwAPAAEAEwAAAA8ADQATAAAADQABABMAAAANAA8AEwAAAA0ADwATAAAADwANABMAAAANAA8AEwAAAA0ADwATAAAADwANABMAAAAPAA0AEwAAAA8ADQATAAAADwANABMAAAAPAA0AEwAAAA8ADQATAAAADwANABMAAAAPAA0AAAATAA8ADQAAABMADwABABMAAAAPAA0AEwAAAA8ADQAAABMADwANAAAAEwAPAAEAEwAAAA8ADQATAAAADwANABMAAAAPAA0AAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQATAAAADwABABMAAAAPAAEAEwAAAA8AAQATAAAADwABABMAAAAPAAEAEwAAAA8AAQATAAAADwABABMAAAAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQATAAAADwABABMAAAAPAAEAAAATAA8AAQAAABMADwABABMAAAAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAEwAAAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAA0AAAATAA8AAQAAABMADwABAAAAEwAPAA0AAAATAA8ADQATAAAADwABABMAAAAPAAEAEwAAAA8ADQATAAAADwANABMAAAAPAAEAEwAAAA8ADQATAAAADwANABMAAAAPAA0AAAATAA8ADQAAABMADwANAAAAEwAPAA0AEwAAAA8ADQATAAAADQAPABMAAAANAA8AEwAAAA8ADQATAAAADwANABMAAAANAA8AEwAAAA8ADQATAAAADwANABMAAAAPAA0AEwAAAA8ADQATAAAADwANABMAAAAPAA0AAAATAA8ADQAAABMADwANAAAAEwAPAA0AAAATAA8AAQAAABMADwABAAAAEwAPAA0AAAATAA8ADQAAABMADwANAAAAEwAPAAEAEwAAAA8ADQAAABMADwANAAAAEwAPAA0AAAATAA8ADQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQATAAAADwABABMAAAAPAAEAEwAAAA8AAQATAAAADwABAAAAEwAPAAEAAAATAA8AAQATAAAADwABABMAAAAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQATAAAADwABABMAAAAPAAEAAAATAA8AAQAAABMADwABABMAAAAPAAEAEwAAAA8AAQAAABMADwABAAAAEwAPAAEAEwAAAA8AAQATAAAADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAUABUAFgATABUAFAAWABMAFQAUABYAEwAVABYAFAATABQAFQAWABMAFQAUABYAEwAVABQAFgATABUAFgAUABMAFAAVABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFgAUABMAFQAWABQAEwAVABQAFgATABUAFAAWABMAFQAWABQAEwAVABYAFAATABUAFAAWABMAFQAUABYAEwAUABUAFgATABQAFQAWABMAFAAVABYAEwAUABUAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAUABUAFgATABUAFgAUABMAFgAVABQAEwAWABUAFAATABQAFQAWABMAFQAUABYAEwAWABUAFAATABYAFQAUABMAFAAVABYAEwAVABQAFgATABUAFgAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABYAFQAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFgAVABQAEwAWABUAFAATABUAFgAUABMAFQAWABQAEwAUABUAFgATABQAFQAWABMAFAAVABYAEwAUABUAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAUABUAFgATABQAFQAWABMAFQAUABYAEwAVABQAFgATABQAFQAWABMAFAAVABYAEwAVABQAFgATABUAFAAWABMAFAAVABYAEwAUABUAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAUABUAEwAWABQAFQAWABMAFAAVABYAEwAUABUAFgATABQAFQAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAUABUAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABQAFQAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFAAVABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAUABUAFgATABQAFQAWABMAFAAVABYAEwAUABUAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAUABUAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABQAFQAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFAAVABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAUABUAFgATABQAFQAWABMAFAAVABYAEwAUABUAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAUABUAFgATABQAFQAWABMAFQAUABYAEwAVABQAFgATABQAFQAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFAAVABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAUABUAFgATABQAFQAWABMAFAAVABYAEwAUABUAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAUABUAEwAWABUAFAAWABMAFQAUABYAEwAVABQAFgATABQAFQATABYAFQAUABYAEwAVABQAFgATABUAFAAWABMAFAAVABMAFgAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAUABUAFgATABQAFQAWABMAFAAVABYAEwAUABUAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAUABUAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABQAFQAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFAAVABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAUABUAFgATABQAFQAWABMAFAAVABYAEwAUABUAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAUABUAFgATABUAFAAWABMAFQAWABQAEwAVABYAFAATABQAFQAWABMAFQAUABYAEwAVABYAFAATABUAFgAUABMAFAAVABYAEwAVABQAFgATABUAFgAUABMAFQAWABQAEwAVABYAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABUAFgAUABMAFQAWABQAEwAWABUAFAATABYAFQAUABMAFQAWABQAEwAVABYAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAUABUAFgATABQAFQAWABMAFAAVABYAEwAUABUAFgATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFAAWABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFQAWABQAEwAUABUAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABQAFQAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFAAVABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFAAWABMAFQAUABYAEwAVABYAFAATABUAFgAUABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFAAWABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAUABYAEwAUABUAFgATABQAFQAWABMAFAAVABYAEwAUABUAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAUABUAFgATABQAFQAWABMAFAAVABYAEwAUABUAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAUABUAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABQAFQAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFAAVABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADQABABMAAAANAAEAEwAAAA0AAQATAAAADQABABMAAAANAAwAEwAAAA0ADAATAAAADQAMABMAAAANAAwAEwAAAAwADQATAAAADAANABMAAAAMAA0AEwAAAAwADQATAAAADQABABMAAAANAAwAEwAAAAwADQATAAAADAABABMAAAANAAEAEwAAAA0ADAATAAAADAANABMAAAAMAAEAEwAAAA0AAQATAAAADQAMABMAAAAMAA0AEwAAAAwAAQAAAAMAEwABAAAAAwATAAEAAAADABMAAQAAAAMAEwABAAAAEwADAAEAAAATAAMAAQAAABMAAwABAAAAEwADAAEAAAATAAMAAQAAABMAAwABAAAAEwADAAEAAAATAAMAAQAAAAMAAQATAAAAEwADAAEAAAATAAEAAwAAABMAAQADAAAAAwATAAEAAAATAAMAAQAAABMAAwABAAAAEwABAAMAAAADABMAAQAAABMAAwABAAAAEwADAAEAAAATAAMAAQAAABMAAQAMAAAAEwAMAAEAAAATAAwAAQAAABMADAABAAAAEwABAAMAAAATAAEAAwAAABMAAQADAAAAEwABAAMAAAATAAEAAwAAABMAAQADAAAAEwABAAMAAAATAAMAAQAAABMADAABAAAAEwABAAMAAAATAAMAAQAAABMAAwABAAAAEwAMAAEAAAATAAMAAQAAABMAAwABAAAAEwADAAEAAAATAAwAAQAAABMAAQADAAAAEwADAAEAAAATAAMAAQALAAwAAwACAAsADAADAAIACwAMAAMAAgALAAwAAwACAAsAAwAMAAAACwADAAwAAAALAAMADAACAAsAAwAMAAIACwADAAwAAAALAAMADAAAAAsAAwAMAAAACwADAAwAAAALAAwAAwACAAsAAwAMAAIACwADAAwAAgADAAsAAAACAAsADAADAAIACwADAAwAAgALAAMADAACAAMACwAAAAIACwAMAAMAAgALAAMADAACAAsAAwAMAAIACwADAAAAAgAAAAMAAQALAAAAAwABAAsAAAADAAEACwAAAAMAAQALAAMAAAALAAEAAwAAAAsAAQADAAAACwABAAMAAAALAAEAAwALAAAAAQADAAsAAAABAAMACwAAAAEAAwALAAAAAQAAAAMACwABAAMAAAALAAEAAwALAAAAAQALAAMAAAABAAAAAwALAAEAAwAAAAsAAQADAAsAAAABAAsAAwAAAAEAAAADAAEACwADAAAACwABAAMACwAAAAEACwADAAAAAQAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwALAAMABAAFAAsAAwAEAAUACwADAAQABQALAAMABAAFAAsAAwAEAAUACwADAAQABQALAAMABAAFAAsAAwAEAAUACwADAAQABQALAAMABAAFAAsAAwAEAAUACwADAAQABQALAAMABAAFAAsAAwAEAAUACwADAAQABQALAAMABAAFAAsAAwAEAAUACwADAAQABQALAAMABAAFAAsAAwAEAAUACwADAAQABQALAAMABAAFAAsAAwAEAAUACwADAAQABQALAAMABAAMAAsAAwAEAAwACwADAAQADAALAAMABAAMAAsAAwAEAAwACwADAAQADAALAAMABAAMAAsAAwAEAAwACwADAAQABQALAAMABAAFAAsAAwAEAAUACwADAAQABQALAAMABAAMAAsAAwAEAAUACwADAAQABQALAAMABAAFAAsAAwAEAAwACwADAAQABQALAAMABAAFAAsAAwAEAAUACwADAAQADAALAAMABAAMAAsAAwAEAAUACwADAAQABQAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQAAwAFAAsABAADAAUACwAEAAMABQALAAQAAwAFAAsABAADAAsABQADAAQACwAFAAMABAALAAUAAwAEAAsABQAEAAUAAwALAAQAAwAFAAsAAwAEAAsABQADAAsABAAFAAQABQADAAsABAADAAUACwADAAQACwAFAAMACwAEAAUABAAFAAMACwAEAAMABQALAAMABAALAAUAAwALAAQABQALAAMABAAFAAsAAwAEAAUACwADAAQABQALAAMABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAsAAwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQALAAMABAAFAAsAAwAEAAUAAwALAAQABQADAAsABAAFAAsAAwAEAAUACwADAAQABQADAAsABAAFAAMACwAEAAUACwADAAQABQALAAMABAAFAAMACwAEAAUAAwALAAQABQAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwAHAAUABAADAAcABQAEAAMACwAFAAQAAwALAAUABAADAAcABQAEAAMABwAFAAQAAwALAAUABAADAAsABQAEAAMABwAFAAQAAwAHAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAUABUAFgATABQAFQAWABMAFAAVABYAEwAUABUAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAUABUAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABQAFQAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFAAVABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQATAAAADwABABMAAAAPAAEAEwAAAA8AAQATAAAADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQATAAAADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABABMAAAAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAEwAAAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABQAEAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwAHAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAcABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMABwAEAAUAAwALAAQABQADAAsABAAFAAMACwAFAAQAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAUABAADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABQAEAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwAHAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAcABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMABwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAFAAQAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAUABAADAAsABQAEAAMACwAEAAUAAwALAAQABQADAAsABQAEAAMACwAFAAQAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwAHAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAcABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMABwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAVABQAFgATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFAAWABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAUABYAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwAHAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAcABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMABwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwALAAwAAwACAAsADAADAAIACwAMAAMAAgALAAwAAwACAAsADAADAAIACwAMAAMAAgALAAwAAwACAAsADAADAAIACwAMAAMAAgALAAwAAwACAAsADAADAAIACwAMAAMAAgALAAwAAwACAAsADAADAAIACwAMAAMAAgALAAwAAwACAAsADAADAAIACwAMAAMAAgALAAwAAwACAAsADAADAAIACwAMAAMAAgALAAwAAwACAAsADAADAAIACwAMAAMAAgALAAwAAwACAAsADAADAAIACwAMAAMAAgALAAwAAwACAAsADAADAAIACwAMAAMAAgALAAwAAwACAAsADAADAAIACwAMAAMAAgALAAwAAwACAAsADAADAAIACwAMAAMAAgALAAwAAwACAAsADAADAAIACwAMAAMAAgALAAwAAwACAAsADAADAAIACwAMAAMAAgALAAwAAwACAAsADAADAAIACwAMAAMAAgALAAwAAwACAAsADAADAAIACwAMAAMAAgALAAMADAAEAAsAAwAMAAQACwADAAwABAALAAwAAwAEAAsAAwAMAAQACwADAAwABAALAAMADAAEAAsADAADAAQACwADAAwABAALAAMADAAEAAsADAADAAQACwAMAAMABAALAAwAAwAEAAsADAADAAQACwAMAAMABAALAAwAAwAEAAsADAADAAQACwAMAAMABAALAAwAAwAEAAsADAADAAQACwAMAAMABAALAAwAAwAEAAsADAADAAQACwAMAAMABAALAAwAAwAEAAsADAADAAQACwAMAAMABAALAAwAAwAEAAsADAADAAQACwAMAAMABAALAAwAAwAEAAsADAADAAQACwAMAAMABAALAAwAAwAEAAsADAADAAQACwAMAAMABAALAAwAAwAEAAsADAADAAQACwAMAAMABAALAAMADAAEAAsADAADAAQACwAMAAMABAALAAwAAwAEAAsADAADAAQACwAMAAMABAALAAwAAwAEAAsADAADAAQACwAMAAMABAALAAMADAAEAAsAAwAMAAQACwADAAwABAALAAMADAAEAAsAAwAMAAQACwADAAwABAALAAMADAAEAAsAAwAMAAQACwADAAwABAALAAMADAAEAAsAAwAMAAQACwADAAwABAALAAwAAwACAAsADAADAAQACwAMAAMABAALAAwAAwAEAAsADAADAAQACwAMAAMABAALAAwAAwAEAAsADAADAAQACwAMAAMABAALAAwAAwAEAAsADAADAAQACwAMAAMABAALAAwAAwAEAAsADAADAAQACwAMAAMABAALAAwAAwAEAAsADAADAAQACwAMAAMABAALAAwAAwAEAAsAAwAMAAQACwAMAAMABAALAAwAAwAEAAsADAADAAQACwADAAwABAALAAMABAAMAAsAAwAEAAwACwADAAwABAALAAMADAAEAAsAAwAMAAQACwADAAwABAALAAMADAAEAAsAAwAMAAQACwADAAwABAALAAMADAAEAAsAAwAMAAQACwADAAwABAALAAMADAAEAAsAAwAMAAQACwADAAwABAALAAwAAwAEAAsAAwAMAAQACwADAAwABAALAAMADAAEAAsAAwAMAAQACwADAAwABAALAAMADAAEAAsAAwAMAAQACwADAAwABAALAAwAAwACAAsADAADAAIACwAMAAMAAgALAAwAAwACAAsADAADAAQACwAMAAMABAALAAwAAwAEAAsADAADAAQACwAMAAMABAALAAwAAwAEAAsADAADAAQACwAMAAMABAALAAwAAwAEAAsADAADAAQACwAMAAMABAALAAMADAAEAAsADAADAAQACwAMAAMABAALAAwAAwAEAAsAAwAMAAQACwAMAAMABAALAAwAAwAEAAsADAADAAQACwADAAwABAALAAMADAAEAAsAAwAMAAQACwADAAwABAALAAMADAAEAAsAAwAMAAQACwADAAwABAALAAMADAAEAAsAAwAMAAQACwADAAwABAALAAMADAAEAAsAAwAMAAQACwADAAwABAALAAwAAwAEAAsADAADAAQACwAMAAMABAALAAwAAwAEAAsADAADAAQACwAMAAMABAALAAwAAwAEAAsADAADAAQACwAMAAMABAALAAwAAwAEAAsADAADAAQACwAMAAMABAALAAwAAwACAAsADAADAAIACwAMAAMABAALAAwAAwAEAAsADAADAAQACwAMAAMABAALAAwAAwAEAAsADAADAAQACwAMAAMABAALAAwAAwAEAAsADAADAAQACwAMAAMABAALAAwAAwAEAAsADAADAAQACwAMAAMABAALAAwAAwAEAAsADAADAAQACwAMAAMABAALAAwAAwAEAAsADAADAAQACwAMAAMABAALAAwAAwAEAAsADAADAAQACwAMAAMABAALAAMADAAEAAsAAwAMAAQACwADAAwABAALAAMADAAEAAsAAwAMAAQACwADAAwABAALAAMADAAEAAsADAADAAQACwADAAwABAALAAwAAwAEAAsADAADAAQACwAMAAMABAALAAwAAwACAAsADAADAAIACwAMAAMAAgALAAwAAwACAAsADAADAAIACwAMAAMAAgALAAwAAwACAAsADAADAAIACwAMAAMAAgALAAwAAwACAAsADAADAAIACwAMAAMAAgALAAwAAwACAAsADAADAAIACwAMAAMAAgALAAwAAwACAAsADAADAAIACwAMAAMAAgALAAwAAwACAAsADAADAAIACwAMAAMAAgALAAwAAwACAAsADAADAAIACwAMAAMAAgALAAwAAwACAAsADAADAAIACwAMAAMAAgALAAwAAwACAAsADAADAAIACwAMAAMAAgALAAwAAwACAAsADAADAAIACwAMAAMAAgALAAwAAwACAAsADAADAAIACwAMAAMAAgALAAwAAwACAAsADAADAAIACwAMAAMAAgALAAwAAwACAAsADAADAAIACwAMAAMAAgALAAwAAwACAAsADAADAAIACwAMAAMAAgALAAwAAwACAAsADAADAAIACwAMAAMAAgAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAVABYAFAATABUAFgAUABMAFgAVABQAEwAWABUAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABYAFQAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABYAFQAUABMAFgAVABQAEwAVABYAFAATABUAFgAUABMAFgAVABQAEwAWABUAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABUAFgAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFgAVABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABQAFgATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABQAFgATABUAFAAWABMAFQAWABQAEwAVABYAFAATABUAFAAWABMAFQAUABYAEwAVABYAFAATABUAFgAUABMAFQAUABYAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABYAFAATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFgAUABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABQAFgATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFAAWABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAWABQAEwAVABYAFAATABUAFAAWABMAFQAUABYAEwAVABYAFAATABUAFgAUABMAFQAUABYAEwAVABQAFgATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAMAAsADQADAAwACwADAA0ADAALAAMAAgAMAAsAAwACAAwACwANAAMADAALAAMADQAMAAsAAwANAAwACwADAAIADAALAA0AAwAMAAsAAwANAAwACwADAA0ADAALAAMAAgALAAwAAwACAAsADAADAAIACwAMAAMAAgALAAwAAwACAAsADAADAAIACwAMAAMAAgALAAwAAwACAAsADAADAAIADAALAAMAAgAMAAsAAwACAAwACwADAAIADAALAAMAAgALAAwAAwACAAwACwADAAIADAALAAMAAgAMAAsAAwANAAsADAADAAIADAALAAMAAgAMAAsAAwACAAwACwADAA0ACwAMAAMAAgALAAwAAwACAAwACwADAAIADAALAAMADQAMAAsADQADAAwACwANAAMADAALAA0AAwAMAAsADQADAAwACwADAA0ADAALAAMADQAMAAsAAwANAAwACwADAA0ADAALAAMADQAMAAsAAwANAAwACwADAA0ADAALAAMADQAMAAsADQAKAAwACwADAA0ADAALAAMAAgAMAAsAAwACAAwACwANAAoADAALAAMADQAMAAsAAwACAAwACwADAAIADAALAA0AAwAMAAsAAwANAAwACwADAAIADAALAAMAAgALAAwAAwACAAsADAADAAIACwAMAAMAAgALAAwAAwACAAsADAADAAIACwAMAAMAAgALAAwAAwACAAsADAADAAIACwAMAAMAAgALAAwAAwACAAsADAADAAIACwAMAAMAAgALAAwAAwACAAsADAADAAIACwAMAAMAAgAMAAsAAwACAAsADAADAAIACwAMAAMAAgALAAwAAwACAAwACwADAAIACwAMAAMAAgALAAwAAwACAAsADAADAAIADAALAAMAAgAMAAsADQADAAwACwANAAMADAALAA0AAwAMAAsADQADAAwACwADAA0ADAALAAMADQAMAAsAAwANAAwACwADAA0ADAALAAMADQAMAAsAAwACAAwACwADAAIADAALAAMAAgAMAAsADQADAAwACwADAA0ADAALAAMAAgAMAAsAAwACAAwACwANAAMADAALAAMADQAMAAsAAwACAAwACwADAAIADAALAA0AAwAMAAsAAwANAAwACwADAAIADAALAAMAAgALAAwAAwACAAsADAADAAIACwAMAAMAAgALAAwAAwACAAsADAADAAIACwAMAAMAAgALAAwAAwACAAsADAADAAIADAALAAMAAgALAAwAAwACAAsADAADAAIACwAMAAMAAgALAAwAAwACAAsADAADAAIACwAMAAMAAgAMAAsAAwACAAsADAADAAIACwAMAAMAAgALAAwAAwACAAwACwADAAIACwAMAAMAAgALAAwAAwACAAsADAADAAIADAALAAMAAgAMAAsADQADAAwACwANAAMADAALAA0AAwAMAAsADQADAAwACwADAA0ADAALAAMADQAMAAsAAwANAAwACwADAA0ADAALAAMAAgAMAAsAAwACAAwACwADAAIADAALAAMAAgAMAAsADQADAAwACwADAA0ADAALAAMADQAMAAsAAwANAAwACwANAAMADAALAAMADQAMAAsAAwANAAwACwADAA0ADAALAA0AAwAMAAsAAwANAAwACwADAA0ADAALAAMADQALAAwAAwACAAsADAADAAIACwAMAAMAAgALAAwAAwACAAsADAADAAIACwAMAAMAAgALAAwAAwACAAsADAADAAIADAALAAMAAgAMAAsAAwACAAwACwADAAIADAALAAMAAgALAAwAAwACAAsADAADAAIADAALAAMAAgAMAAsAAwACAAsADAADAAIACwAMAAMAAgAMAAsAAwACAAwACwADAAIACwAMAAMABAALAAwAAwACAAwACwADAAIADAALAAMAAgAMAAsADQADAAwACwANAAMADAALAA0AAwAMAAsADQADAAwACwADAA0ADAALAAMADQAMAAsAAwANAAwACwADAA0ADAALAAMADQAMAAsAAwANAAwACwADAA0ADAALAAMADQAMAAsADQADAAwACwANAAMADAALAAMADQAMAAsAAwANAAwACwANAAMADAALAA0AAwAMAAsAAwANAAwACwADAA0ADAALAA0AAwAMAAsADQADAAwACwADAA0ADAALAAMADQALAAwAAwACAAsADAADAAIACwAMAAMAAgALAAwAAwACAAsADAADAAIACwAMAAMAAgALAAwAAwACAAsADAADAAIADAALAAMADQAMAAsAAwANAAwACwADAAIADAALAAMAAgALAAwAAwACAAsADAADAAIADAALAAMAAgAMAAsAAwANAAsADAADAAIACwAMAAMAAgAMAAsAAwACAAwACwADAA0ACwAMAAMAAgALAAwAAwACAAwACwADAAIADAALAAMADQAMAAsADQADAAwACwANAAMADAALAA0AAwAMAAsADQADAAwACwADAA0ADAALAAMADQAMAAsADQADAAwACwANAAMADAALAAMADQAMAAsAAwANAAwACwADAA0ADAALAAMADQAMAAsADQADAAwACwADAA0ADAALAAMADQAMAAsAAwANAAwACwANAAMADAALAA0AAwAMAAsAAwANAAwACwADAA0ADAALAA0AAwAMAAsADQADAAwACwADAA0ADAALAAMADQALAAwAAwACAAsADAADAAIACwAMAAMAAgALAAwAAwACAAwACwADAAIADAALAAMAAgAMAAsAAwACAAwACwADAAIADAALAAMADQAMAAsAAwACAAwACwADAAIADAALAAMAAgALAAwAAwACAAsADAADAAIADAALAAMADQAMAAsAAwANAAsADAADAAIADAALAAMAAgAMAAsAAwANAAwACwADAA0ACwAMAAMAAgAMAAsAAwACAAwACwADAA0ADAALAAMADQAMAAsADQADAAwACwANAAMADAALAA0AAwAMAAsADQADAAwACwANAAMADAALAA0AAwAMAAsADQADAAwACwANAAMADAALAAMADQAMAAsAAwANAAwACwADAA0ADAALAAMADQAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAUABUAEwAWABQAEwAVABIAFAATABIAEQATABQAEgARABQAFQATABYAFAATABUAEgAUABMAEgARABMAFAASABEAFAAVABMAFgAUABMAFQASABQAEwASABEAEwAUABIAEQATAAAADQABABMAAAANAAEAEwAAAA0AAQATAAAADQABABMAFAAAAAEAEwAUAAAAAQATABQAAAABABMAFAAAAAEAEwAUABIAEQATABQAEgARABMAFAASABEAEwAUABIAEQATAAAADQABABMAFAAAAAEAEwAUABIAEQATABQAEgARABMAAAANAAEAEwAUAAAAAQATABQAEgARABMAFAASABEAEwAAAA0AAQATABQAAAABABMAFAASABEAEwAUABIAEQAUABUAEwAWABQAFQATABYAFAAVABMAFgAUABUAEwAWABQAEwAVABIAFAATABUAEgAUABMAFQASABQAEwAVABIAFAATABIAEQAUABMAEgARABQAEwASABEAFAATABIAEQAUABUAEwAWABQAEwAVABIAFAATABIAEQATABQAEgARABQAFQATABYAFAATABUAEgAUABMAEgARABMAFAASABEAFAAVABMAFgAUABMAFQASABQAEwASABEAEwAUABIAEQATAAAADQABABMAAAANAAEAEwAAAA0AAQATAAAADQABABMAFAAAAAEAEwAUAAAAAQATABQAAAABABMAFAAAAAEAEwAUABIAEQATABQAEgARABMAFAASABEAEwAUABIAEQATAAAADQABABMAFAAAAAEAEwAUABIAEQATABQAEgARABMAAAANAAEAEwAUAAAAAQATABQAEgARABMAFAASABEAEwAAAA0AAQATABQAAAABABMAFAASABEAEwAUABIAEQAUABUAEwAWABQAFQATABYAFAAVABMAFgAUABUAEwAWABQAEwAVABIAFAATABUAEgAUABMAFQASABQAEwAVABIAFAATABIAEQAUABMAEgARABQAEwASABEAFAATABIAEQAUABUAEwAWABQAEwAVABIAFAATABIAEQATABQAEgARABQAFQATABYAFAATABUAEgAUABMAEgARABMAFAASABEAFAAVABMAFgAUABMAFQASABQAEwASABEAEwAUABIAEQATAAAADQABABMAAAANAAEAEwAAAA0AAQATAAAADQABABMAFAAAAAEAEwAUAAAAAQATABQAAAABABMAFAAAAAEAEwAUABIAEQATABQAEgARABMAFAASABEAEwAUABIAEQATAAAADQABABMAFAAAAAEAEwAUABIAEQATABQAEgARABMAAAANAAEAEwAUAAAAAQATABQAEgARABMAFAASABEAEwAAAA0AAQATABQAAAABABMAFAASABEAEwAUABIAEQAUABUAEwAWABQAFQATABYAFAAVABMAFgAUABUAEwAWABQAEwAVABIAFAATABUAEgAUABMAFQASABQAEwAVABIAFAATABIAEQAUABMAEgARABQAEwASABEAFAATABIAEQAUABUAEwASABQAEwAVABIAFAATABIAEQATABQAEgARABQAFQATABIAFAATABUAEgAUABMAEgARABMAFAASABEAFAAVABMAEgAUABMAFQASABQAEwASABEAEwAUABIAEQATAAAAAQACABMAAAANAAEAEwAAAA0AAQATAAAADQABABMAFAAAAAEAEwAUAAAAAQATABQAAAABABMAFAAAAAEAEwAUABIAEQATABQAEgARABMAFAASABEAEwAUABIAEQATAAAADQABABMAFAAAAAEAEwAUABIAEQATABQAEgARABMAAAANAAEAEwAUAAAAAQATABQAEgARABMAFAASABEAEwAAAA0AAQATABQAAAABABMAFAASABEAEwAUABIAEQAUABUAEwAWABQAFQATABIAFAAVABMAEgAUABUAEwASABQAEwAVABIAFAATABUAEgAUABMAFQASABQAEwAVABIAFAATABIAEQAUABMAEgARABQAEwASABEAFAATABIAEQAUABUAEwASABQAEwAVABIAFAATABIAEQATABQAEgARABQAFQATABIAFAATABUAEgAUABMAEgARABMAFAASABEAFAAVABMAEgAUABMAFQASABQAEwASABEAEwAUABIAEQATAAAAAQACABMAAAABAAIAEwAAAAEAAgATAAAAAQACABMAAAAUAAEAEwAAABQAAQATAAAAFAABABMAAAAUAAEAEwAUABIAEQATABQAEgARABMAFAASABEAEwAUABIAEQATAAAAAQACABMAAAAUAAEAEwAUABIAEQATABQAEgARABMAAAABAAIAEwAAABQAAQATABQAEgARABMAFAASABEAEwAAAAEAAgATAAAAFAABABMAFAASABEAEwAUABIAEQAUABUAEwASABQAFQATABIAFAAVABMAEgAUABUAEwASABQAEwAVABIAFAATABUAEgAUABMAFQASABQAEwAVABIAFAATABIAEQAUABMAEgARABQAEwASABEAFAATABIAEQAUABUAEwAWABQAEwAVABIAFAATABIAEQATABQAEgARABQAFQATABYAFAATABUAEgAUABMAEgARABMAFAASABEAFAAVABMAFgAUABMAFQASABQAEwASABEAEwAUABIAEQATAAAAAQACABMAAAABAAIAEwAAAAEAAgATAAAAAQACABMAAAAUAAEAEwAAABQAAQATAAAAFAABABMAAAAUAAEAEwAUABIAEQATABQAEgARABMAFAASABEAEwAUABIAEQATAAAAAQACABMAAAAUAAEAEwAUABIAEQATABQAEgARABMAAAABAAIAEwAAABQAAQATABQAEgARABMAFAASABEAEwAAAAEAAgATAAAAFAABABMAFAASABEAEwAUABIAEQAUABUAEwAWABQAFQATABYAFAAVABMAFgAUABUAEwAWABQAEwAVABIAFAATABUAEgAUABMAFQASABQAEwAVABIAFAATABIAEQAUABMAEgARABQAEwASABEAFAATABIAEQAUABUAEwAWABQAEwAVABIAFAATABIAEQATABQAEgARABQAFQATABYAFAATABUAEgAUABMAEgARABMAFAASABEAFAAVABMAFgAUABMAFQASABQAEwASABEAEwAUABIAEQATAAAAAQACABMAAAABAAIAEwAAAAEAAgATAAAAAQACABMAAAAUAAEAEwAAABQAAQATAAAAFAABABMAAAAUAAEAEwAUABIAEQATABQAEgARABMAFAASABEAEwAUABIAEQATAAAAAQACABMAAAAUAAEAEwAUABIAEQATABQAEgARABMAAAABAAIAEwAAABQAAQATABQAEgARABMAFAASABEAEwAAAAEAAgATAAAAFAABABMAFAASABEAEwAUABIAEQAUABUAEwAWABQAFQATABYAFAAVABMAFgAUABUAEwAWABQAEwAVABIAFAATABUAEgAUABMAFQASABQAEwAVABIAFAATABIAEQAUABMAEgARABQAEwASABEAFAATABIAEQAUABUAEwAWABQAEwAVABIAFAATABIAEQATABQAEgARABQAFQATABYAFAATABUAEgAUABMAEgARABMAFAASABEAFAAVABMAFgAUABMAFQASABQAEwASABEAEwAUABIAEQATAAAAAQACABMAAAABAAIAEwAAAAEAAgATAAAAAQACABMAAAAUAAEAEwAAABQAAQATAAAAFAABABMAAAAUAAEAEwAUABIAEQATABQAEgARABMAFAASABEAEwAUABIAEQATAAAAAQACABMAAAAUAAEAEwAUABIAEQATABQAEgARABMAAAABAAIAEwAAABQAAQATABQAEgARABMAFAASABEAEwAAAAEAAgATAAAAFAABABMAFAASABEAEwAUABIAEQAUABUAEwAWABQAFQATABYAFAAVABMAFgAUABUAEwAWABQAEwAVABIAFAATABUAEgAUABMAFQASABQAEwAVABIAFAATABIAEQAUABMAEgARABQAEwASABEAFAATABIAEQAUABUAEwAWABQAEwAVABYAFAATABIAEQATABQAEgARABQAFQATABYAFAATABUAFgAUABMAEgARABMAFAASABEAFAAVABMAFgAUABMAFQAWABQAEwASABEAEwAUABIAEQATAAAAAQACABMAAAABAAIAEwAAAAEAAgATAAAAAQACABMAAAAUAAEAEwAAABQAAQATAAAAFAABABMAAAAUAAEAEwAUABIAEQATABQAEgARABMAFAASABEAEwAUABIAEQATAAAAAQACABMAAAAUAAEAEwAUABIAEQATABQAEgARABMAAAABAAIAEwAAABQAAQATABQAEgARABMAFAASABEAEwAAAAEAAgATAAAAFAABABMAFAASABEAEwAUABIAEQAUABUAEwAWABQAFQATABYAFAAVABMAFgAUABUAEwAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABIAEQAUABMAEgARABQAEwASABEAFAATABIAEQAUABUAEwAWABQAEwAVABYAFAATABIAEQATABQAEgARABQAFQATABYAFAATABUAFgAUABMAEgARABMAFAASABEAFAAVABMAFgAUABMAFQAWABQAEwASABEAEwAUABIAEQATAAAADQABABMAAAANAAEAEwAAAAEAAgATAAAAAQACABMAAAAUAAEAEwAAABQAAQATAAAAFAABABMAAAAUAAEAEwAUABIAEQATABQAEgARABMAFAASABEAEwAUABIAEQATAAAAAQACABMAAAAUAAEAEwAUABIAEQATABQAEgARABMAAAABAAIAEwAAABQAAQATABQAEgARABMAFAASABEAEwAAAAEAAgATAAAAFAABABMAFAASABEAEwAUABIAEQAUABUAEwAWABQAFQATABYAFAAVABMAFgAUABUAFgATABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABIAEQAUABMAEgARABQAEwASABEAFAATABIAEQAUABUAEwAWABQAEwAVABYAFAATABIAEQATABQAEgARABQAFQATABYAFAATABUAFgAUABMAEgARABMAFAASABEAFAAVABMAFgAUABMAFQAWABQAEwASABEAEwAUABIAEQATAAAADQABABMAAAANAAEAEwAAAA0AAQATAAAADQABABMAFAAAAAEAEwAUAAAAAQATABQAAAABABMAFAAAAAEAEwAUABIAEQATABQAEgARABMAFAASABEAEwAUABIAEQATAAAADQABABMAAAAUAAEAEwAUABIAEQATABQAEgARABMAAAANAAEAEwAUAAAAAQATABQAEgARABMAFAASABEAEwAAAA0AAQATABQAAAABABMAFAASABEAEwAUABIAEQAUABUAEwAWABQAFQATABYAFAAVABYAEwAUABUAFgATABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABIAEQAUABMAEgARABQAEwASABEAFAATABIAEQAUABUAEwAWABQAEwAVABYAFAATABIAEQATABQAEgARABQAFQATABYAFAATABUAFgAUABMAEgARABMAFAASABEAFAAVABMAFgAUABMAFQAWABQAEwASABEAEwAUABIAEQATAAAADQABABMAAAANAAEAEwAAAA0AAQATAAAADQABABMAFAAAAAEAEwAUAAAAAQATABQAAAABABMAFAAAAAEAEwAUABIAEQATABQAEgARABMAFAASABEAEwAUABIAEQATAAAADQABABMAFAAAAAEAEwAUABIAEQATABQAEgARABMAAAANAAEAEwAUAAAAAQATABQAEgARABMAFAASABEAEwAAAA0AAQATABQAAAABABMAFAASABEAEwAUABIAEQAUABUAEwAWABQAFQATABYAFAAVABMAFgAUABUAEwAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABIAEQAUABMAEgARABQAEwASABEAFAATABIAEQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQAAABMADAABAAAAEwAMAAEAAAATAAEADAAAABMAAQAMABMAAAAMAAEAEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQAAABMAAQAMAAAAEwABAAwAEwAAAAwAAQATAAAADAABAAAAEwABAAwAAAATAAEADAATAAAADAABABMAAAAMAAEAAAATAAEADAAAABMAAQAMABMAAAAMAAEAEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADAABABMAAAABAAwAEwAAAAEADAATAAAAAQAMABMAAAAMAAEAEwAAAAwAAQATAAAAAQAMABMAAAABAAwAEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAEADAAAABMAAQAMAAAAEwABAAwAAAATAAEADAAAABMAAQAMAAAAEwABAAwAAAATAAEADAAAABMAAQAMABMAAAABAAwAEwAAAAEADAATAAAAAQAMABMAAAABAAwAEwAAAAEADAAAABMADAABABMAAAAMAAEAEwAAAAwAAQATAAAADAABAAAAEwABAAwAEwAAAAwAAQATAAAADAABABMAAAAMAAEAAAATAAEADAATAAAAAQAMABMAAAABAAwAEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADwABABMAAAABAA8AAAATAAEADwAAABMAAQAPABMAAAABAA8AEwAAAAEADwATAAAAAQAPAAAAEwABAA8AEwAAAAEADwATAAAAAQAPABMAAAABAA8AAAATAAEADwAAABMAAQAPAAAAEwABAAwAAAATAAEADAAAABMAAQAMAAAAEwABAA8AAAATAAEADwAAABMAAQAMAAAAEwABAAwAAAATAAEADwAAABMAAQAPAAAAEwABAA8AAAATAAEADAAAABMAAQAMAAAAEwABAAwAAAATAAEADAATAAAAAQAMAAAAEwABAAwAAAATAAEADAAAABMAAQAMABMAAAABAAwAAAATAAEADAAAABMAAQAMAAAAEwABAAwAEwAAAAEADAATAAAAAQANABMAAAABAA0AEwAAAAEADQATAAAAAQANABMAAAABAAwAEwAAAAEADQATAAAAAQANABMAAAABAA8AEwAAAAEADAATAAAAAQAMABMAAAABAAwAEwAAAAEADwAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMAAQAPAAAAEwABAA8AAAATAAEADwAAABMAAQAPAAAAEwABAA8AAAATAAEADwAAABMADwABAAAAEwAPAAEAAAATAAEADwAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAAPABMAAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAAEwAPAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAAA8AEwABAAAADwATAAEAAAATAA8AAQAAABMADwABAAAADwATAAEAAAAPABMAAQAAABMADwABAAAAEwAPAAEAAAAPABMAAQAAAA8AEwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAAA8AEwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAAA8AEwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAADwATAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAAPABMAAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMAAQAPAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMAAQAPAAAAEwABAA8AAAATAAEADwAAABMADwABAAAAEwABAA8AAAATAAEADwAAABMADwABAAAAEwAPAAEAAAATAAEADwAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAAAQAMABMAAAAMAAEAEwAAAAwAAQATAAAAAQAMAAAAEwABAAwAEwAAAAwAAQATAAAAAQAMABMAAAABAAwAAAATAAEADAAAABMAAQAMAAAAEwABAAwAAAATAAEADAAAABMAAQAMAAAAEwABAAwAAAATAAEADAAAABMAAQAMAAAAEwABAAwAAAATAAEADAAAABMAAQAMAAAAEwABAAwAAAATAAEADAAAABMAAQAMAAAAEwABAAwAAAATAAEADwAAABMAAQAPAAAAEwABAAwAAAATAAEADAAAABMAAQAMAAAAEwABAAwAAAATAAEADAAAABMAAQAMAAAAEwABAAwAAAATAAEADAAAABMADwABABMAAAABAA8AEwAAAAEADAATAAAAAQAMAAAAEwABAA8AAAATAAEADwATAAAAAQAMABMAAAABAAwAAAATAAEADwAAABMAAQAPAAAAEwABAAwAEwAAAAEADAAMAAsADQAKAAwADQALAAoADAANAAsACgAMAA0ADgALAAwADQALAAoADAANAAsACgAMAA0ACwAKAAwADQAOAAsADAANAAsACgAMAA0ACwAKAAwADQALAAoADAANAA4ACwANAA4ADAALAA0ADgAMAAsADQAOAAwACwANAA4ADAALAA0ADAAOAAsADQAMAA4ACwANAAwADgALAA0ADAAOAAsADQAMAA4ACwANAAwADgALAA0ADAAOAAsADQAMAA4ACwANAA4ADAALAA0ADAAOAAsADQAMAA4ACwANAAwADgALAA0ADgAMAAsADQAMAA4ACwANAAwADgALAA0ADAAOAAsADQAOAAwACwANAAwADgALAA0ADAAOAAsADQAMAA4ACwAMAA0ACwAKAAwADQALAAoADAANAAsACgAMAA0ACwAKAAwADQALAAoADAANAAsACgAMAA0ACwAKAAwADQALAAoADAANAAsADgAMAA0ACwAOAAwADQALAA4ADAANAAsADgAMAAsADQAKAAwADQALAAoADAANAAsACgAMAA0ADgALAAwACwANAAoADAANAAsACgAMAA0ACwAKAAwADQAOAAsADAALAA0ACgAMAA0ACwAKAAwADQALAAoADAANAA4ACwANAA4ADAALAA0ADgAMAAsADQAOAAwACwANAA4ADAALAA0ADAAOAAsADQAMAA4ACwANAAwADgALAA0ADAAOAAsADQAMAA4ACwANAAwADgALAA0ADAAOAAsADQAMAA4ACwANAA4ADAALAA0ADAAOAAsADQAMAA4ACwAMAA0ADgALAA0ADgAMAAsADQAMAA4ACwANAAwADgALAAwADQAOAAsADQAOAAwACwANAAwADgALAA0ADAAOAAsADAANAA4ACwAMAAsADQAKAAwACwANAAoADAALAA0ACgAMAAsADQAKAAwADQALAAoADAANAAsACgAMAA0ACwAKAAwADQALAAoADAANAAsACgAMAA0ACwAKAAwADQALAAoADAANAAsACgAMAAsADQAKAAwADQALAAoADAANAAsACgAMAA0ADgALAAwACwANAAoADAANAAsACgAMAA0ACwAKAAwADQAOAAsADAALAA0ACgAMAA0ACwAKAAwADQALAAoADAANAA4ACwANAA4ADAALAA0ADgAMAAsADQAOAAwACwANAA4ADAALAA0ADAAOAAsADQAMAA4ACwANAAwADgALAA0ADAAOAAsADQAMAA4ACwANAAwADgALAA0ADAAOAAsADQAMAA4ACwANAA4ADAALAA0ADAAOAAsADQAMAA4ACwAMAA0ADgALAA0ADgAMAAsADQAMAA4ACwANAAwADgALAAwADQAOAAsADQAOAAwACwANAAwADgALAA0ADAAOAAsADAANAA4ACwAMAAsADQAKAAwACwANAAoADAALAA0ACgAMAAsADQAKAAwADQALAAoADAANAAsACgAMAA0ACwAKAAwADQALAAoADAANAAsACgAMAA0ACwAKAAwADQALAAoADAANAAsACgAMAA0ACwAKAAwADQALAAoADAANAAsACgANAAwADgALAAwADQALAAoADAANAAsACgAMAA0ACwAKAA0ADAAOAAsADAANAAsACgAMAA0ACwAKAAwADQALAAoADQAMAA4ACwANAA4ADAALAA0ADgAMAAsADQAOAAwACwANAA4ADAALAA0ADAAOAAsADQAMAA4ACwANAAwADgALAA0ADAAOAAsADQAMAA4ACwANAAwADgALAA0ADAAOAAsADQAMAA4ACwANAA4ADAALAA0ADAAOAAsADQAMAA4ACwAMAA0ADgALAA0ADgAMAAsADQAMAA4ACwANAAwADgALAAwADQAOAAsADQAOAAwACwANAAwADgALAA0ADAAOAAsADAANAA4ACwAMAA0ACwAKAAwADQALAAoADAANAAsACgAMAA0ACwAKAAwADQALAAoADAANAAsACgAMAA0ACwAKAAwADQALAAoADAANAAsACgAMAA0ACwAOAAwADQALAA4ADAANAAsADgAMAA0ACwAKAAwADQALAAoADAANAAsACgANAAwADgALAAwADQALAAoADAANAAsACgAMAA0ACwAKAA0ADAAOAAsADAANAAsACgAMAA0ACwAKAAwADQALAA4ADQAMAA4ACwANAA4ADAALAA0ADgAMAAsADQAOAAwACwANAA4ADAALAA0ADAAOAAsADQAMAA4ACwANAAwADgALAA0ADAAOAAsADQAMAA4ACwANAAwADgALAA0ADAAOAAsADQAMAA4ACwANAA4ADAALAA0ADAAOAAsADQAMAA4ACwANAAwADgALAA0ADgAMAAsADQAMAA4ACwANAAwADgALAA0ADAAOAAsADQAOAAwACwANAAwADgALAA0ADAAOAAsADQAMAA4ACwAMAA0ACwAKAAwADQALAAoADAANAAsACgAMAA0ACwAKAAwADQALAAoADAANAAsACgAMAA0ACwAKAAwADQALAAoADAANAAsADgAMAA0ACwAOAAwADQALAA4ADAANAAsADgAMAA0ACwAKAAwADQALAAoADAANAAsACgANAAwADgALAAwADQALAAoADAANAAsACgAMAA0ACwAOAA0ADAAOAAsADAANAAsACgAMAA0ACwAKAAwADQALAA4ADQAMAA4ACwANAA4ADAALAA0ADgAMAAsADQAOAAwACwANAA4ADAALAA0ADAAOAAsADQAMAA4ACwANAAwADgALAA0ADAAOAAsADQAMAA4ACwANAAwADgALAA0ADAAOAAsADQAMAA4ACwANAA4ADAALAA0ADAAOAAsADQAMAA4ACwANAAwADgALAA0ADgAMAAsADQAOAAwACwANAAwADgALAA0ADAAOAAsADQAOAAwACwANAA4ADAALAA0ADAAOAAsADQAMAA4ACwAMAA0ACwAKAAwADQALAAoADAANAAsACgAMAA0ACwAKAAwADQALAAoADAANAAsACgAMAA0ACwAKAAwADQALAAoADAANAAsADgAMAA0ACwAOAAwADQALAA4ADAANAAsADgADAAUABwACAAMABQACAAEABQAEAAMAAgAFAAMAAgABAAUABAADAAIABQAEAAMAAgAFAAQAAwACAAUABAADAAIABQAEAAMAAgAFAAQAAwACAAQAAwACAAEABQAEAAMAAgAEAAMAAgABAAUABAADAAIABAADAAIAAQAFAAQAAwACAAQAAwACAAEABQAEAAMAAgAEAAMAAgABAAUABAADAAIABAADAAIAAQAFAAQAAwACAAQAAwACAAEABQAEAAMAAgAEAAMAAgABAAUABAADAAIABAADAAIAAQAFAAQAAwACAAQAAwACAAEABQAEAAMAAgAEAAMAAgABAAUABAADAAIABAADAAIAAQAFAAQAAwACAAQAAwACAAEABQAEAAMAAgAEAAMAAgABAAUABAADAAIABAADAAIAAQAFAAQAAwACAAQAAwACAAEABQAEAAMAAgAEAAMAAgABAAUABAADAAIABAADAAIAAQAFAAQAAwACAAQAAwACAAEABQAEAAMAAgAEAAMAAgABAAUABAADAAIABAADAAIAAQAFAAQAAwACAAQAAwACAAEABQAEAAMAAgAEAAMAAgABAAUAAwAEAAIABQAEAAMAAgAHAAMAAgAIAAcAAwACAAgABwADAAIAAQADAAcAAgABAAAAAQADAAIAAQAAAAMAAgABAAMAAAACAAMAAgABAAAAAwACAAcAAQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAgABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABAADAAcABQAEAAMABwAFAAMABAAHAAUAAwAHAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABAAFAAMABwAEAAUAAwAHAAQAAwAFAAcAAwAEAAcABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwAIAAMAAgAHAAgAAwACAAcAAwAIAAIABwADAAIACAAHAAMAAgAAAAAAAwABAAcAAwAAAAEABwADAAcAAAABABEAEgAQAA8AEQASABAADwARABIAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwAEAAMABQAHAAQAAwAFAAcABAADAAUABwAEAAMABQAHAAQAAwAFAAcABAADAAcABQAEAAMABQAHAAQAAwAFAAcABwADAAgAAgAHAAMACAAEAAcAAwAIAAQABwADAAgABAAHAAMABAAIAAcAAwAEAAgABwADAAQACAAHAAMABAAIAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAIAAcAAwAEAAgABwADAAQACAAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAMABwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAQAAwAHAAUABAADAAcABQAEAAMABQAHAAQAAwAFAAcABAADAAUABwAEAAMABQAHAAQAAwAFAAcAAAABAAMAAgAAAAEAAwACAAEAAwAAAAIAAwACAAEAAAAHAAMAAgAIAAcAAwACAAEAAwAHAAIAAQADAAIABwABAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAgABwADAAQACAAHAAMABAAIAAcAAwAEAAgAAAABAAMAAgAAAAEAAwACAAAAAQADAAIAAAABAAMAAgAAAAEAAwACAAAAAwABAA8AAAADAAEADwAAAAMAAQAPAAAAAwABAA8AAQAAAAIAAwABAAAAAgADAAEAAAACAAMAAAABAAIAAwAAAAEAAgADAAAAAQADAAIAAAABAAIAAwAAAAEAAgADAAAAAQACAAMAAAABAAIAAwAAAAEAAgADAAEAAAACAAMAAQAAAAIAAwABAAAAAgADAAEAAAACAAMAAQAAAAIAAwAAAAMAAQAPAAAAAwABAA8AAAABAAMADwAAAAEAAwAPAAAAAQADAAIAAAABAAMAAgAAAAEAAwACAAAAAQADAAIAAAADAA8AAQAAAAMADwABAAAAAwAPAAEAAAADAA8AAQAAAAMADwABAAAAAwABAA8AAAADAAEADwAAAAMAAQAPAAEAAAACAAMAAQAAAAIAAwABAAAAAgADAAEAAAACAAMAAQAAAAIAAwABAAAAAgADAAEAAAACAAMAAQAAAAIAAwABAAAAAgADAAEAAAACAAMAAQAAAAIAAwABAAAAAgADAAEAAAACAAMAAQAAAAIAAwABAAAAAgADAA8ACQAAAAEADwAAAAkAAQAPAAAACAAJAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAABAAIADwAAAAkAAQAPAAAACQATAA8AAAAJAAgADwAAAAkACAAPAAAACAATAA8AAAAIABMADwAAAAgACQAPAAAACQAIAA8AAAAJAAEADwAAAAkAAQAPAAAACQAIAA8AAAAJABMADwAAAAgAEwAPAAAACAATAA8AAAAIABMADwAAAAgAEwAPAAAACQAIAA8AAAABAAIADwAAABMAAQAPAAAAEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEAARABIADwAQABEAEgAPABAAEQASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwAQABEADwAOABAAEQAPABIAEAARABIADwARABAAEgAPABIAEQAQAA8AEgARABAADwASABEAEAAPABEAEgAQAA8AEAARABIADwAQABEAEgAPABEAEAASAA8AEQASABAADwARABIAEAAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwAQABEAEgAPABAAEQASAA8AEQAQABIADwARABAAEgAPABAAEQASAA8AEAARABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPAA8ACQAAAAEADwAAAAkACAAPAAAACAAJAA8AAAAIAAkADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAAAAAwABAAcAAwAAAAcAAQADAAcAAAACAAcAAwACAAAAAAADAAEADwAAAAMADwABAAAAAwAPAAEABwAIAAMAAgAHAAgAAwACAAcAAwAIAAIABwADAAIACAAAAAMADwABAAAAAwAPAAEAAAADAA8AAQAAAAMADwABAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAcAAwAIAAQABwADAAQACAAHAAMABAAIAAcAAwAEAAgABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAMABwAEAAUAAwAHAAQABQAHAAMABAAFAAcAAwAEAAUABwADAAQABQAEAAUAAwAHAAQABQADAAcABAADAAUABwADAAQABwAFAAcAAwAEAAUABwADAAQABQAHAAMABAAFAAcAAwAEAAUABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcAEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwAQABEADwASABAAEQASAA8AEAARABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwAPAAAAEwABAA8AAAATAAEADwAAABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAUABAADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAUABAADAAcABQAEAAMABwAEAAUAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABAAFAAMABwAEAAUAAwAHAAQABQADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAFAAQAAwAHAAUABAADAAcABQAEAAMABwAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIABwADAAQACAAHAAMACAAEAAcAAwAIAAQABwADAAgABAAHAAgAAwAEAAcACAADAAQABwADAAgABAAHAAgAAwACAAcACAADAAIABwAIAAMABAAHAAgAAwAEAAcAAwAIAAQABwADAAgABAAHAAMACAAEAAcAAwAIAAQABwAIAAMAAgAHAAgAAwAEAAcAAwAIAAQABwADAAgABAAHAAMACAAEAAcAAwAIAAQABwADAAgABAAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAkACgAIAAcACQAKAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwAKAAkACAAHAAoACQAIAAcACQAKAAgABwAKAAkACAAHAAoACQAIAAcACgAJAAgABwARABIAEAAPABEAEgAQAA8AEQASABAADwARABAAEgAPABEAEgAQAA8AEQASABAADwARABIAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEAASAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQAQABIADwARABAAEgAPABEAEAASAA8AEQAQABIADwARABAAEgAPABEAEgAQAA8AEQASABAADwARABIAEAAPABEAEgAQAA8AEQAQABIADwARABAAEgAPABEAEAASAA8ABwAIAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAIAAcACQAGAAgABwAJAAYACAAHAAMAAgAIAAcAAwACAAgABwADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIABwAIAAMAAgAHAAgAAwACAAcACAADAAIACAAHAAMACQAIAAcACQAGAAgABwAJAAMACAAHAAkAAwAIAAcAAwAJAAgABwADAAkAEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPABIAEQAQAA8AEgARABAADwASABEAEAAPAA8ACQAAABAADwAQAAkACAAPABAADgANABAAEQAPABIAEAAPABEADgAQAA8ADgANAA8AEAAOAA0ADwAAAAEAAgAPABAAAAABAA8AEAAOAA0AEAARAA8ADgAQAA8AEQAOABAADwAOAA0ADwAQAA4ADQAPAAAAAQACAA8AAAAQAAEADwAQAA4ADQAQABEADwASABAADwARAA4AEAAPAA4ADQAPABAADgANAA8AAAABAAIADwAAABAAAQAPABAADgANABAAEQAPABIAEAAPABEADgAQAA8ADgANAA8AEAAOAA0ADwAAAAkAAQAPABAAAAABAA8AEAAOAA0AEAARABIADwAQAA8AEQASABAADwAOAA0ADwAQAA4ADQAPAAkAAAAQAA8AEAAJAAgADwAQAA4ADQAPABAADgANABAAEQAPABIAEAAPABEADgAQAA8ADgANAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAPAAAACAABAA8AAAAIAAEADwAAAAgAAQAAAA8AAQAIAAAADwABAAgAAAAPAAgAAQAPAAAACAATAAAADwAIABMAAAAPAAgAEwAAAA8ACAABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AEwABAAAADwATAAEAAAAPABMAAQAAAA8AAQATAAAADwABABMAAAAPAAEAEwAPAAAAEwAIAA8AAAATAAgADwAAABMACAAAAA8AAQAIAAkACAAKAAcACQAIAAoABwAJAAgACgAHAAgABwAJAAYACAAJAAcABgAIAAkABwAGAAgACQAHAAYACQAKAAgABwAJAAgACgAHAAkACAAKAAcACAAJAAcABgAIAAkABwAGAAgACQAHAAoACQAIAAoABwALAAMAAgAMAAsAAwACAAwACwADAAIAAQADAAsAAgABAAMAAgALAAEAAAABAAMAAgAAAAEAAwACAAEAAwAAAAIAAwACAAEAAAADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQADAADAAsABAAFAAMACwAEAAUAAwALAAQABQAEAAMACwAFAAQAAwALAAUAAwAEAAsABQADAAQACwAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAsAAwAEAAUACwADAAQABQADAAsABAAFAAMACwAEAAUABAAFAAMACwAEAAUAAwALAAQAAwAFAAsAAwAEAAsABQALAAMABAAFAAsAAwAEAAUACwADAAQABQADAAsABAAFAAMACwAEAAUACwAMAAMAAgALAAwAAwACAAsAAwAMAAIACwADAAIADAAAAAMAAQALAAMAAAALAAEAAwALAAAAAQALAAMAAAACABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATAAQAAwAFAAsABAADAAUACwAEAAMABQALAAQAAwAFAAsABAADAAUABwAEAAMABQALAAQAAwAFAAsACwADAAwAAgALAAMADAAEAAsAAwAMAAQACwADAAwABAALAAMABAAMAAsAAwAEAAwACwADAAQADAALAAMABAAMAAsAAwAEAAUACwADAAQABQALAAMABAAFAAsAAwAEAAUACwADAAQABQALAAMABAAFAAsAAwAEAAUACwADAAQABQALAAMABAAFAAsAAwAEAAUACwADAAQABQALAAMABAAFAAsAAwAEAAUACwADAAQABQALAAMABAAFAAsAAwAEAAUACwADAAQABQALAAMABAAFAAsAAwAEAAUACwADAAQABQALAAMABAAFAAsAAwAEAAwACwADAAQADAALAAMABAAFAAsAAwAEAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUAAwAEAAsABQADAAsABAAFAAsAAwAEAAUACwADAAQABQALAAMABAAFAAsAAwAEAAUACwADAAQABQALAAMABAAFAAsAAwAEAAUAAwALAAQABQALAAMABAAFAAsAAwAEAAUACwADAAQABQALAAMABAAFAAQAAwAFAAcABAADAAUACwAEAAMABQALAAQAAwAFAAsABAADAAsABQAEAAMABQALAAQAAwAFAAsAAAABAAMAAgABAAAAAwACAAEAAwAAAAIAAwACAAEAAAADAAIACwABAAsAAwACAAwAAwALAAIAAQADAAsAAgABAAsAAwAEAAUACwADAAQADAALAAMABAAMAAsAAwAEAAwACwADAAwABAALAAMABAAMAAsAAwAEAAwAAAABAAMAAgAAAAEAAwACAAAAAQADAAIAAAABAAMAAgAAAAMAAQATAAAAAwABABMAAAABAAMAAgAAAAEAAwACAAAAAQADAAIAAQAAAAIAAwABAAAAAgADAAEAAAACAAMAAQAAAAIAAwAAAAEAAwACAAAAAQACAAMAAAABAAIAAwABAAAAAgADAAAAAQADAAIAAAABAAIAAwAAAAEAAgADAAEAAAACAAMAAQAAAAIAAwABAAAAAgADAAEAAAACAAMAAQAAAAIAAwAAAAMAAQATAAAAAwABABMAAAABAAMAEwAAAAEAAwATAAAAAQADAAIAAAABAAMAAgAAAAEAAwACAAAAAQADAAIAAAADAAEAEwAAAAMAAQATAAAAAwABABMAAAADAAEAEwAAAAMAAQATAAAAAwABABMAAAADAAEAEwAAAAMAAQATAAEAAAACAAMAAQAAAAIAAwABAAAAAgADAAEAAAACAAMAAQAAAAIAAwABAAAAAgADAAEAAAACAAMAAQAAAAIAAwABAAAAAgADAAEAAAACAAMAAQAAAAIAAwABAAAAAgADAAEAAAACAAMAAQAAAAIAAwATAAAADQABABMAAAANAAEAEwAAAA0ADAATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADwABABMAAAAPAAEAEwAAAA8ADQATAAAADwANABMAAAANAA8AEwAAAA0AAQATAAAADQABABMAAAANAA8AEwAAAA0ADwATAAAADQABABMAAAANAAEAEwAAAA0ADwATAAAADQAPABMAAAANAA8AEwAAAA8ADQATAAAADwANABMAAAAPAA0AEwAAAA8ADQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAEwAAAA8AAQATAAAADwABABMAAAAPAAEAAAATAA8AAQAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFAAVABMAFgAUABUAFgATABUAFAAWABMAFQAUABYAEwAUABUAEwASABQAFQATABYAFAAVABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFAAVABYAEwAUABUAFgATABUAFgAUABMAFgAVABQAEwAUABUAFgATABQAFQAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAWABQAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAUABUAFgATABQAFQAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAWABQAEwAVABYAFAATABUAFAAWABMAFQAUABYAEwATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAA0AAQATAAAADQABABMAAAANAAwAEwAAAAwADQALAAwAAwACAAsADAADAAIACwADAAwAAgALAAMAAgAMAAMACwACAAEAAAADAAEAEwAAAAMAAQATAAAAAwABABMAAAADAAEAEwAAAAMAAQACAAMAAAABAAsAAwALAAAAAQAAAAMAAQATAAAAAwABABMAAAADAAEAEwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwALAAMABAAFAAsAAwAEAAUACwADAAQABQALAAMABAAFAAsAAwAEAAUACwADAAQADAALAAMABAAMAAsAAwAEAAwACwADAAQADAAEAAUAAwALAAQABQADAAsABAADAAUACwADAAQACwAFAAMACwAEAAUACwADAAQABQALAAMABAAFAAsAAwAEAAUACwADAAQABQALAAMABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAsAAwAEAAUACwADAAQABQALAAMABAAFAAUABAADAAcABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABQAFQATABYAFAAVABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQATAAAADwABABMAAAAPAAEAEwAAAA8AAQAAABMADwABAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAcABAAFAAMACwAEAAUAAwALAAUABAADAAcABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAQABQADAAsABAAFAAMACwAEAAUAAwALAAQABQADAAsABAAFAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAcABQAEAAMACwAFAAQAAwALAAQABQADAAcABAAFAAMACwAEAAUAAwALAAQABQADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwAFAAQAAwALAAUABAADAAsABQAEAAMACwALAAwAAwACAAsADAADAAIACwAMAAMAAgALAAwAAwACAAsADAADAAIACwAMAAMAAgALAAMABAAMAAsAAwAMAAQACwADAAwABAALAAwAAwAEAAsADAADAAQACwADAAwABAALAAMADAAEAAsADAADAAIACwAMAAMAAgALAAwAAwAEAAsADAADAAQACwADAAwABAALAAMADAAEAAsAAwAMAAQACwADAAwABAALAAwAAwAEAAsADAADAAQACwADAAwABAALAAMADAAEAAsAAwAMAAQACwADAAwABAALAAMADAAEAAsADAADAAIACwAMAAMAAgALAAwAAwACAAsADAADAAIACwAMAAMAAgALAAwAAwACAAsADAADAAIACwAMAAMAAgALAAwAAwACAAsADAADAAIACwAMAAMAAgALAAwAAwACAAsADAADAAIACwAMAAMAAgAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADQAOAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA0ADgAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAOAA0ADAALAA4ADQAMAAsADgANAAwACwAWABUAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABQAFgATABUAFAAWABMAFQAWABQAEwAVABYAFAATABUAFgAUABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABQAFgATABUAFAAWABMAFQAUABYAEwAVABYAFAATABUAFgAUABMAFQAWABQAEwAVABYAFAATABUAFgAUABMACwAMAAMAAgALAAwAAwACAAsADAADAAIACwAMAAMAAgALAAwAAwACAAsADAADAAIACwAMAAMAAgALAAwAAwACAAsADAADAAIACwAMAAMAAgAMAAsAAwACAAwACwANAAoADAALAA0ACgAMAAsAAwACAAwACwADAAIACwAMAAMAAgALAAwAAwACAAsADAADAAIACwAMAAMAAgALAAwAAwACAAsADAADAAIACwAMAAMAAgALAAwAAwACAAwACwADAAIADAALAAMADQAMAAsAAwANAAwACwANAAoADAALAA0AAwAMAAsADQADAAwACwADAA0AFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABYAFQAUABMAFgAVABQAEwAWABUAFAATABMAAAANAAEAEwAUAAAAAQATABQAEgARABMAFAASABEAFAAVABMAFgAUABMAFQASABQAEwASABEAEwAAAAEAAgATABQAAAABABMAFAASABEAEwAUABIAEQAUABUAEwASABQAEwAVABIAFAATABIAEQATAAAAAQACABMAAAAUAAEAEwAUABIAEQATABQAEgARABQAFQATABYAFAATABUAEgAUABMAEgARABMAAAABAAIAEwAAABQAAQATABQAEgARABMAFAASABEAFAAVABMAFgAUABMAFQASABQAEwASABEAEwAAAA0AAQATABQAAAABABMAFAASABEAEwAUABIAEQAUABUAEwAWABQAEwAVABYAFAATABIAEQAUABUAEwAWABQAEwAVABIAFAATABIAEQATABQAEgARABMAAAANAAEAEwAUABIAEQATABQAEgARABMAAAAMAAEAEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADAABABMAAAAMAAEAAAATAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQATAAAADAABABMAAAAMAAEAEwAAAAwAAQAAABMAAQAPAAAAEwABAA8AAAATAAEADwAAABMAAQAPABMAAAAPAAEAAAATAA8AAQAAABMAAQAPAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAAPABMAAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMADwABAAAAEwAPAAEAAAATAA8AAQAAABMAAQAMAAAAEwABAAwAAAATAAEADwAAABMAAQAPAAAAEwAPAAEAAAATAA8AAQAAABMA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AAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAA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", - "byteLength":1372120 - }, - { - "uri":"data:application/octet-stream;base64,AACAPwAAAAAAAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAADvGsL4AAAAAAACAP13ofz/XIeU782jUvAAAAAAAX/67EeF/P0mB87wAAAAAYpvSPOwQ9Tz/zH8/AAAAALMLpTth1ye/XlCOPAAAgD/SwH4/PM3KPARpw70AAAAAq9sCvdonfz+/xpi9AAAAAMv7vj1zRp49jh1+PwAAAACj4+s81wWCv1OtgT0AAIA/0Uh8P21HID0dJim+AAAAAIPkcb3oxn0/sZ/wvQAAAADg+CI+EI4APm6vej8AAAAAKZiEPbdZtr8hOAE+AACAP1qdfD8kYyo9xmsgvgAAAACTXnm9Aal9P3KG9r0AAAAAxdMZPjFmAz5A9Ho/AAAAAEct8T397PG/DmwGPgAAgD+w7X0/yfCGPd1A3r0AAAAA1HCJvVhqfz9lEvq7AAAAAE233D3ZWHM8B3t+PwAAAADrNw4+ugQRwEz+gzwAAIA/sO19P8nwhj3dQN69AAAAANRwib1Yan8/ZRL6uwAAAABNt9w92VhzPAd7fj8AAAAAEoByPtNVf8ASmUU9AACAP+bAij76i1c/2tnuvgAAAACAuP09xtgCv5m8Wb8AAAAA5F50vxvZMD4+p3i+AAAAAL7Ilr7NnCU/XuXwPwAAgD+FWc8+z21oPni9Yr8AAAAAFTeTvfgxdb9xgI6+AAAAAMdXab96nTQ+lT6+vgAAAABUYKK+eQewP9yxtz8AAIA/rDL5PgDs971UeV2/AAAAAAvtMb8rUye/PV+ZvgAAAACUeQe/9UA/P/L0zb4AAAAAcRCfvXbnBz8HoZQ/AACAP8BuSj/pi3O+EWUQvwAAAAC/iA6/YJEpv6VSAL8AAAAAJT+CvuvdNT9+/Ce/AAAAAKlGe7/YDVQ+FRMlPwAAgD9d/tu8Fhtpv+0w0z4AAAAAG+MVvv8nz76DF2e/AAAAAD0mfT+DTK29fbb6vQAAAADwoFg+bp6/PivH9T8AAIA/mQ67vr07Kr7heGo/AAAAAEBjoL6bkme/hQqUvgAAAACLZ2A/hfzIvnaLjj4AAAAAM5AWPtQirz80/7U/AACAPy/orL49k1S+0wZrPwAAAADzVFa+QzRvv+eYk74AAAAAS+1qPyY7lL7dUIs+AAAAAPpfi76Ot84+oXOfPwAAgD/qfvE9/RFDPBoyfj8AAAAAaf+9vQfUfr/JB7w8AAAAACYafT+dM8K91CDuvQAAAABYj/g96/uDvVgsmD8AAIA/SCZ+v/DdwL3KYJg9AAAAADqBkT1X9XW/EEGJvgAAAACPGsY9No6FvrHkdT8AAAAAAH/NPl5PVj5ETz86AACAPz19fL/32ge+7A/JPQAAAADoIVk9KWZRv1ikEr8AAAAANg0gPnJMD7/rU1A/AAAAAIxo+z7yfm+/6zZEvwAAgD/PpX+/ArXdumK0Vj0AAAAAxaoaPZyAN79kPTI/AAAAAOcTFT1RgDI/JUQ3PwAAAAAcgQ8/ME7FvwXvvT8AAIA/nPF/v/WZnTzYDwi8AAAAAAIjobuP6S0+HEd8PwAAAAAv3aY8mzt8P/zGLb4AAAAAMpPpPn4Mwz6Z0CVAAACAP4rvfr8pITi9MEGivQAAAAAJLoi8vPRDv8ytJD8AAAAA5Wu3vddUJD8080I/AAAAAOfU374oGsk9qOQLvgAAgD/s73e/KGetPFkMfr4AAAAAGog3vcOzfr9nYrg9AAAAABLPer78V8k9T+x2PwAAAAAglAO/iDydv3SBBD0AAIA/akp7vznJNb726Y+9AAAAAG36Tj0zsxi/dhBNPwAAAACniTy+CWJIP/0vGD8AAAAAMcS3vmyrp7+FVd8/AACAP+DRe78ySha+a1TVPQAAAABvSKs9NRIPPkuVfD8AAAAA2S8jvmOwej9iKgC+AAAAAKLndL77e50++AQpQAAAgD8=", - "byteLength":1472 - }], - "materials":[{ - "pbrMetallicRoughness":{ - "baseColorFactor":[0.9098039215686274, - 0.9098039215686274, - 0.9098039215686274, - 1.0], - "metallicFactor":0.0, - "roughnessFactor":0.5 - }, - "emissiveFactor":[0.0, - 0.0, - 0.0], - "alphaMode":"OPAQUE", - "doubleSided":false, - "name":"材质" - }], - "animations":[{ - "samplers":[{ - "input":0, - "interpolation":"LINEAR", - "output":1 - }, - { - "input":2, - "interpolation":"LINEAR", - "output":3 - }, - { - "input":4, - "interpolation":"LINEAR", - "output":5 - }, - { - "input":6, - "interpolation":"LINEAR", - "output":7 - }, - { - "input":8, - "interpolation":"LINEAR", - "output":9 - }, - { - "input":10, - "interpolation":"LINEAR", - "output":11 - }, - { - "input":12, - "interpolation":"LINEAR", - "output":13 - }, - { - "input":14, - "interpolation":"LINEAR", - "output":15 - }, - { - "input":16, - "interpolation":"LINEAR", - "output":17 - }, - { - "input":18, - "interpolation":"LINEAR", - "output":19 - }, - { - "input":20, - "interpolation":"LINEAR", - "output":21 - }, - { - "input":22, - "interpolation":"LINEAR", - "output":23 - }, - { - "input":24, - "interpolation":"LINEAR", - "output":25 - }, - { - "input":26, - "interpolation":"LINEAR", - "output":27 - }], - "channels":[{ - "sampler":0, - "target":{ - "path":"rotation", - "node":8 - } - }, - { - "sampler":1, - "target":{ - "path":"rotation", - "node":9 - } - }, - { - "sampler":2, - "target":{ - "path":"rotation", - "node":10 - } - }, - { - "sampler":3, - "target":{ - "path":"rotation", - "node":12 - } - }, - { - "sampler":4, - "target":{ - "path":"rotation", - "node":13 - } - }, - { - "sampler":5, - "target":{ - "path":"rotation", - "node":14 - } - }, - { - "sampler":6, - "target":{ - "path":"rotation", - "node":16 - } - }, - { - "sampler":7, - "target":{ - "path":"rotation", - "node":17 - } - }, - { - "sampler":8, - "target":{ - "path":"rotation", - "node":18 - } - }, - { - "sampler":9, - "target":{ - "path":"rotation", - "node":19 - } - }, - { - "sampler":10, - "target":{ - "path":"rotation", - "node":20 - } - }, - { - "sampler":11, - "target":{ - "path":"rotation", - "node":21 - } - }, - { - "sampler":12, - "target":{ - "path":"rotation", - "node":22 - } - }, - { - "sampler":13, - "target":{ - "path":"rotation", - "node":23 - } - }] - }] -} \ No newline at end of file diff --git a/public/static/img/tcjf.png b/public/static/img/tcjf.png deleted file mode 100644 index 32eaaf4..0000000 Binary files a/public/static/img/tcjf.png and /dev/null differ diff --git a/public/static/img/zhong.glb b/public/static/img/zhong.glb deleted file mode 100644 index 474f796..0000000 Binary files a/public/static/img/zhong.glb and /dev/null differ diff --git a/public/static/offline/JSON/getAroundIntroduce.json b/public/static/offline/JSON/getAroundIntroduce.json deleted file mode 100644 index d197afe..0000000 --- a/public/static/offline/JSON/getAroundIntroduce.json +++ /dev/null @@ -1 +0,0 @@ -{"code":200,"msg":"操作成功","data":[{"id":864,"entryCode":"D1Dzo5cbm95G0UBDr7f5B","title":"周边介绍","content":{"title":"周边公交地铁介绍","titleEn":"Introduction to Surrounding Public Transport and Subway","fileUrl":["/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/nnhjUsjAj2f1Odm4118BJ.png"],"content":"

金地广场附近的公交车站有:

- 市政府(公交站)

距离金地广场16米,在1内,29路,3路,13路,6路,9路 。可换乘2,12,19,5,36,16,14,30,10,8,1路等公交车。

- 供水公司(公交站)

距离金地广场526米,在11路,21路,22路 。可换乘9,4,19,2,1,18,12,29,28,3,6,14,16,36,5,13,21,22,11,15路等公交车。

- 文体局(公交站)

距离金地广场522米,在12内 。可换乘19,12,2,5,16,8,1,10,9,29,3,13,14路等公交车。


金地广场附近的地铁站有:

地铁1号线、地铁4号线、地铁5号线

","contentEn":"

The bus stops near Jindi Square include:


-Municipal Government (Bus Station)


Located 16 meters away from Jindi Square, within 1, there are routes 29, 3, 13, 6, and 9. You can transfer to buses such as 2,12,19,5,36,16,14,30,10,8,1.


-Water Supply Company (Bus Station)


526 meters away from Jindi Square, on routes 11, 21, and 22. You can transfer to buses such as 9,4,19,2,1,18,12,29,28,3,6,14,16,36,5,13,21,22,11,15.


-Culture and Sports Bureau (Bus Station)


It is 522 meters away from Jindi Square and within 12 meters. You can transfer to buses such as 19, 12, 2, 5, 16, 8, 10, 9, 29, 3, 13, and 14.




The subway stations near Jindi Square include:


Subway Line 1, Subway Line 4, Subway Line 5

"}}]} \ No newline at end of file diff --git a/public/static/offline/JSON/getBackTime.json b/public/static/offline/JSON/getBackTime.json index e41ca97..5a77f33 100644 --- a/public/static/offline/JSON/getBackTime.json +++ b/public/static/offline/JSON/getBackTime.json @@ -1 +1 @@ -{"code":200,"msg":"操作成功","data":[1000000000000,1000000000000]} +{"code":200,"msg":"操作成功","data":[60,0]} diff --git a/public/static/offline/JSON/getBrandShopList.json b/public/static/offline/JSON/getBrandShopList.json deleted file mode 100644 index b5806fb..0000000 --- a/public/static/offline/JSON/getBrandShopList.json +++ /dev/null @@ -1,531 +0,0 @@ -{ - "code": 200, - "msg": "操作成功", - "data": { - "allShopNum": 11, - "floorList": [ - { - "building": "苏州金地广场", - "floor": "B3", - "buildingCode": "gDQKBSW9Poutfp1gDkOeb", - "floorCode": "eAx9XqfXkPtK3RgXXdpzL" - }, - { - "building": "苏州金地广场", - "floor": "B2", - "buildingCode": "gDQKBSW9Poutfp1gDkOeb", - "floorCode": "qVfcECIRfX14egPA7U4yE" - }, - { - "building": "苏州金地广场", - "floor": "B1", - "buildingCode": "gDQKBSW9Poutfp1gDkOeb", - "floorCode": "bXx1U0xdFI0d6B0NueY8r" - }, - { - "building": "苏州金地广场", - "floor": "LG", - "buildingCode": "gDQKBSW9Poutfp1gDkOeb", - "floorCode": "3xmtwGPYYlUyL9WftNsdd" - }, - { - "building": "苏州金地广场", - "floor": "L1", - "buildingCode": "gDQKBSW9Poutfp1gDkOeb", - "floorCode": "cwgojwijT_qG0f7DVhWpu" - }, - { - "building": "苏州金地广场", - "floor": "L2", - "buildingCode": "gDQKBSW9Poutfp1gDkOeb", - "floorCode": "KfRjq3d6ICYrXyaYFjAJU" - }, - { - "building": "苏州金地广场", - "floor": "L3", - "buildingCode": "gDQKBSW9Poutfp1gDkOeb", - "floorCode": "Ek_MaiuKLPjakB1uB0uQV" - }, - { - "building": "苏州金地广场", - "floor": "L4", - "buildingCode": "gDQKBSW9Poutfp1gDkOeb", - "floorCode": "AnbWM8WtRnNx34DGySB5C" - } - ], - "recommendList": [ - { - "industryName": "生活配套", - "industryFatherName": "生活配套", - "industryFatherNameEn": "", - "shopCode": "Zm0a2Gp2y2zG-tyu9R6ym", - "shopName": "佬克拉", - "shopNameEn": "", - "logoCode": "qentCamtghXztYY2UxcSK", - "logoUrl": "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/qentCamtghXztYY2UxcSK.png", - "industryUrl": "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/HrR0FjrdJkKLFATk6L43J.png", - "building": "苏州金地广场", - "floor": "L3", - "intro": "Brand Introduction\n佬克拉男士理容馆专注男士理发是一家集纯正男士理发 文身\n潮牌 美酒音乐 派对 为一体的专属男人的社交场所 提供轻松\n愉悦的理发氛围 考究的工具 细节的处理 传递出我们的工作\n态度 除了理发本身更注重跟客户的关系 诚实 健康 快乐 大胆 \n全心全意提供一个专属男士的生活俱乐部\n老克拉,或称“老克勒”,指的是老上海那些阅历较深,收入较\n高,消费前卫,在文化休闲方式上独领潮流的都市男性族群。\n这些人大多出身于名门世家,受过当时的“洋 化”教育,目睹或\n亲历了十里洋场上灯红酒绿、光怪陆离的生活方式。“老”并不\n是指年纪老,而是经验丰富、久经历练的意思。", - "introEn": "", - "businessHours": "10:00-22:00", - "contact": "13149439287", - "thirdKouCode": "", - "thirdMeiCode": "", - "thirdZhiCode": "", - "isNewShop": 0, - "xaxis": "[-1076, 40, -598.5]", - "yaxis": "51", - "navXaxis": "-985", - "navYaxis": "-601", - "doorMaterialList": [ - "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/0KfCv_37Jej5W4giUTHEH.png", - "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/K5gyV1Je46hInTQrLcTew.png" - ], - "foodMaterialList": [], - "buildingCode": "gDQKBSW9Poutfp1gDkOeb", - "buildingOrder": 0, - "floorCode": "Ek_MaiuKLPjakB1uB0uQV", - "floorOrder": 6, - "star": 0 - }, - { - "industryName": "餐饮", - "industryFatherName": "餐饮", - "industryFatherNameEn": "", - "shopCode": "BKDvK95c8BCsWPCCUEFbp", - "shopName": "奈雪的茶", - "shopNameEn": "NAIXUE", - "logoCode": "7X-h9Z8vhoXBqSUiDlqiW", - "logoUrl": "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/7X-h9Z8vhoXBqSUiDlqiW.png", - "industryUrl": "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/I3-tfHkflBawkBiEdnBFE.png", - "building": "苏州金地广场", - "floor": "LG", - "intro": "奈雪的茶,新茶饮赛道开创者,创立于2015年,领创推出“茶饮+软欧包”双品类模式。聚焦以茶为核心的现代生活方式,奈雪已形成“现制茶饮”、“奈雪茗茶”及“瓶装饮料”三大业务版块,成功打造“霸气玉油柑”、“鸭屎香宝藏茶”、“龙井奶茶”等多款行业爆品。\n2021年6月30日,奈雪的茶正式在港交所挂牌上市。目前,奈雪的茶已覆盖全国近100个城市,门店数量超过1200家。\n秉承“美好自有力量”的理念,奈雪的茶以成为“受顾客喜爱的全球性茶饮品牌”为使命,致力于成为茶文化走向世界的创新者和推动者。", - "introEn": "", - "businessHours": "10:00-22:00", - "contact": "", - "thirdKouCode": "", - "thirdMeiCode": "", - "thirdZhiCode": "", - "isNewShop": 0, - "xaxis": "[-880, 30, 870]", - "yaxis": "16", - "navXaxis": "-864", - "navYaxis": "690", - "doorMaterialList": [], - "foodMaterialList": [], - "buildingCode": "gDQKBSW9Poutfp1gDkOeb", - "buildingOrder": 0, - "floorCode": "3xmtwGPYYlUyL9WftNsdd", - "floorOrder": 3, - "star": 0 - }, - { - "industryName": "餐饮", - "industryFatherName": "餐饮", - "industryFatherNameEn": "", - "shopCode": "6yU8mbIO6u5FwlF83AHhl", - "shopName": "柠檬森林", - "shopNameEn": "", - "logoCode": "HLyocAxVDBDsZRqjIpL4K", - "logoUrl": "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/HLyocAxVDBDsZRqjIpL4K.png", - "industryUrl": "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/I3-tfHkflBawkBiEdnBFE.png", - "building": "苏州金地广场", - "floor": "B1", - "intro": "柠檬森林2021年成立于苏州,执着新鲜的茶饮口感,追逐新奇的味蕾体验,崇尚新潮的生活态度,致力于研创柠檬茶的全新制作方式。\n全新推出可以喝的『鸡鸭鱼肉』系列,柠檬森林开市啦!\n\n原创鸡笼香单枞茶底,茶香清悠,入口绵柔,清新韵味缓缓释放。\n经典鸭屎香单枞茶底,银花香气,醇厚劲爽,余韵悠长,回甘上头。\n尝新东方美人茶,果蜜香气丰腴,滋味清透活泼,鲜爽甜润。\n焙火造就高香肉桂,入口醇厚,回味似有乳香,甘润爽快。\n4款茶底,可纯茶呈现,可制成酸爽柠檬茶,可搭配轻乳和香柠轻奶霜,可搭配香柠轻奶油和小饼干。柠檬森林菜篮子,鸡鸭鱼肉都好喝!", - "introEn": "", - "businessHours": "10:00-22:00", - "contact": "", - "thirdKouCode": "", - "thirdMeiCode": "", - "thirdZhiCode": "", - "isNewShop": 0, - "xaxis": "[-941, 30, 490.5]", - "yaxis": "15", - "navXaxis": "-485", - "navYaxis": "480", - "doorMaterialList": [], - "foodMaterialList": [], - "buildingCode": "gDQKBSW9Poutfp1gDkOeb", - "buildingOrder": 0, - "floorCode": "bXx1U0xdFI0d6B0NueY8r", - "floorOrder": 2, - "star": 0 - }, - { - "industryName": "休闲娱乐", - "industryFatherName": "休闲娱乐", - "industryFatherNameEn": "", - "shopCode": "lqF15INUravcfL7Avk-Pd", - "shopName": "跳动方块", - "shopNameEn": "", - "logoCode": "nRwugprLg6T2MHtPouHkY", - "logoUrl": "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/nRwugprLg6T2MHtPouHkY.png", - "building": "苏州金地广场", - "floor": "L3", - "intro": "沉浸式体感运动项目游戏 ,室内全新游戏模式:国内兴起的超火爆的线下娱乐游戏。跳动方块游戏是通过不同的灯光变化规则设置,实现双人/多人组队闯关或对抗的游戏模式,在趣味性/互动性上有非常多的玩法,还有一定的运动锻炼作用,是一种全新的年轻人线下聚会游戏体验方式。\n “跳一下瘦20斤” 新型社交运动方式,打造不一样的运动新体验。全都需要团队配合以及肢体触发才能通关,过程中非常考验反应力、浸式体感运动,协调力和协作性,是绿色、健度、运动的体感游\n 随着对技术、产品理解的深入,跳动方块的物联网芯片、游戏设计、商业模型等方面更加成熟。这是一款以亲子运动、年轻势力为主流消费群体,不分年龄、不分城市的新式科技感运动游戏设备。\n 跳动方块始终坚持以活力、潮流、有趣为核心,打造科技运动新风向标,将意想意创公司十年以来的技术基础融会贯通,打造新运动,新生活。革新室内娱乐方式,让体育运动更有趣!", - "introEn": "", - "businessHours": "10:00-22:00", - "contact": "", - "thirdKouCode": "", - "thirdMeiCode": "", - "thirdZhiCode": "", - "isNewShop": 0, - "xaxis": "[160, 40, -502]", - "yaxis": "40", - "navXaxis": "159", - "navYaxis": "-668", - "doorMaterialList": [], - "foodMaterialList": [], - "buildingCode": "gDQKBSW9Poutfp1gDkOeb", - "buildingOrder": 0, - "floorCode": "Ek_MaiuKLPjakB1uB0uQV", - "floorOrder": 6, - "star": 0 - }, - { - "industryName": "餐饮", - "industryFatherName": "餐饮", - "industryFatherNameEn": "", - "shopCode": "K2cg1Om-AI2A6w35N07Yd", - "shopName": "兰湘子", - "shopNameEn": "", - "logoCode": "0ZCN4jLpZGh3NfHQTNA21", - "logoUrl": "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/0ZCN4jLpZGh3NfHQTNA21.png", - "industryUrl": "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/I3-tfHkflBawkBiEdnBFE.png", - "building": "苏州金地广场", - "floor": "L3", - "intro": "想要吃一餐好饭却又担心时间不够?\n\n兰湘子 · 湘菜小炒,\n专为解决更多白领一族的美食体验和用餐效率问题;\n上菜快,吃得爽,湘菜热销榜;\n兰湘子产品由著名湘菜大师张小春先生主理出品;\n是首个入驻skp的湘菜品牌,也是湘菜小炒品类引领者;2022年大众点评必吃榜上榜品牌;\n全国14省,200+直营门店。", - "introEn": "", - "businessHours": "10:00-22:00", - "contact": "", - "thirdKouCode": "", - "thirdMeiCode": "", - "thirdZhiCode": "", - "isNewShop": 0, - "xaxis": "[407, 40, 702]", - "yaxis": "28", - "navXaxis": "337", - "navYaxis": "600", - "doorMaterialList": [ - "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/hb4D__B5anhDZ48VB5KMl.png", - "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/nl9BxnyfeTgQa9JeDrS3i.png", - "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/ErMNXULl31yfzZnTqSlfp.png" - ], - "foodMaterialList": [ - "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/dsrlg87RAsWFTsyB28UKC.png" - ], - "buildingCode": "gDQKBSW9Poutfp1gDkOeb", - "buildingOrder": 0, - "floorCode": "Ek_MaiuKLPjakB1uB0uQV", - "floorOrder": 6, - "star": 0 - }, - { - "industryName": "餐饮", - "industryFatherName": "餐饮", - "industryFatherNameEn": "", - "shopCode": "HJIpv7HTM9A1WyB8llz53", - "shopName": "哥哥的夜深夜食堂", - "shopNameEn": "", - "logoCode": "Io-Xl44rmTy6ShVVSOymd", - "logoUrl": "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/Io-Xl44rmTy6ShVVSOymd.png", - "industryUrl": "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/I3-tfHkflBawkBiEdnBFE.png", - "building": "苏州金地广场", - "floor": "L4", - "intro": "哥哥心语:希望每一个到来的客人都能在“哥哥の深夜食堂”遇见关于美食的幸福。不但满足您的胃,更能温暖您的心。\n一家风格以“寿司”和“碳烤”为主的居酒屋,是一家用心的【深夜食堂】。\n 取名“哥哥”是觉得这是一个亲切的称呼,在寂静的深夜特别能给人温暖。\n 带着掌心温度的寿司:我们花时间比较了所有日本产的电饭煲,最终从日本駝来了虎牌。很多人误以为寿司就是生冷的,许多店铺也会为客人提供冰鲜的寿司,殊不知,带有师傅掌心温度的寿司才是最适合品尝的。\n 盐烤:相比世面上的居酒屋,店里的碳烤以盐烤为主,较为有特色;\n 大到食材,小到酱汁,对我们来说,没有一件是小事,没有一件事不值得用心完成。\n “ 哥哥の深夜食堂”只想做一家认真的,用心的小店;温暖所有的不完美!", - "introEn": "", - "businessHours": "10:00-22:00", - "contact": "", - "thirdKouCode": "", - "thirdMeiCode": "", - "thirdZhiCode": "", - "isNewShop": 0, - "xaxis": "[825.5, 30, -429]", - "yaxis": "8", - "navXaxis": "989", - "navYaxis": "-424", - "doorMaterialList": [], - "foodMaterialList": [], - "buildingCode": "gDQKBSW9Poutfp1gDkOeb", - "buildingOrder": 0, - "floorCode": "AnbWM8WtRnNx34DGySB5C", - "floorOrder": 7, - "star": 0 - }, - { - "industryName": "零售", - "industryFatherName": "零售", - "industryFatherNameEn": "", - "shopCode": "3zZ9xUruHS1BeutRzuuFZ", - "shopName": "漫库", - "shopNameEn": "", - "logoCode": "nYoCUJlnBAt3NTeSoXAFY", - "logoUrl": "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/nYoCUJlnBAt3NTeSoXAFY.png", - "industryUrl": "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/ML7yzGtexT_-LAh-bmnqr.png", - "building": "苏州金地广场", - "floor": "B1", - "intro": "漫库是国内全新的二次元品牌,成立于2019年12月,致力于为用户提供优质的二次元图书和正版授权的IP衍生品,拥有优秀的商务团队、产品设计团队和营销团队。针对全国二次元年轻用户,通过网络宣传,贩售与漫展,商场快闪店,实体店相结合的经营模式,打通线下与线上渠道,带给用户沉浸式的二次元体验。致力于为用户提供优质的正版授权IP衍生品(即谷子),拥有优秀的商务团队、产品设计团队和营销团队。针对全国00后的二次元年轻用户,MANCOOL漫库旗下自媒体矩阵覆盖微博、微信公众号、抖音、小红书、loft等近2000万的平台流量。短视频、活动策划的形式玩转营销;并在微信,抖音,QQ群聚集粉丝,搭建500万+的私域流量池,对用户进行深度营销。", - "introEn": "", - "businessHours": "10:00-22:00", - "contact": "", - "thirdKouCode": "", - "thirdMeiCode": "", - "thirdZhiCode": "", - "isNewShop": 0, - "xaxis": "[1140, 30, -858.5]", - "yaxis": "14", - "navXaxis": "1005", - "navYaxis": "-930", - "doorMaterialList": [], - "foodMaterialList": [], - "buildingCode": "gDQKBSW9Poutfp1gDkOeb", - "buildingOrder": 0, - "floorCode": "bXx1U0xdFI0d6B0NueY8r", - "floorOrder": 2, - "star": 0 - }, - { - "industryName": "餐饮", - "industryFatherName": "餐饮", - "industryFatherNameEn": "", - "shopCode": "JWVv0Q2gyl4T72Od66G7I", - "shopName": "酸奶罐罐", - "shopNameEn": "", - "logoCode": "ZP5hVVHWWxFYe8ap8NsBg", - "logoUrl": "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/ZP5hVVHWWxFYe8ap8NsBg.png", - "industryUrl": "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/I3-tfHkflBawkBiEdnBFE.png", - "building": "苏州金地广场", - "floor": "B1", - "intro": "酸奶罐罐是桂桂茶(原桂源铺)集团旗下的年轻酸奶饮品品牌,主打水果芝士酸奶,品牌整体风格年轻、时尚、有活力。以易拉罐形式进行包装,满足高颜值、强锁鲜与易传播的特性。产品以7种俄式乳酸菌发酵而成的酸奶为主,添加安佳进口芝士、0卡糖,再搭配不同鲜果制作而成,罐罐有芝士,罐罐有惊喜!\n传递积极向上、鼓励彼此阳光生活的态度与文化是酸奶罐罐的品牌理念。\n酸奶罐罐共有3个产品类别,分别是芝士酸奶系列、创意酸奶系列和天然色系列,其中小蓝罐现做芝士酸奶即是主打产品。\n芝士酸奶系列,香浓顺滑的芝士酸奶搭配鲜果、坚果等精选食材,让这一罐的美味达到了每一口都惊艳的地步。\n创意酸奶系列,打破传统酸奶口味,精心挑选和芝士酸奶能完美融合的食材,经历上万次的实验和搭配,制作出创意不凡、口味新颖的高颜值饮品。\n天然色系列,在芝士酸奶中加入了食物的天然本色,每一款超乎您的想象!\n这一次,我们打破了大家对日常酸奶的刻板印象,用突破性技术把酸奶装进易拉罐,锁住美味,在品尝现做芝士酸奶的瞬间,您的味觉感官一定会得到释放和满足!", - "introEn": "", - "businessHours": "10:00-22:00", - "contact": "", - "thirdKouCode": "", - "thirdMeiCode": "", - "thirdZhiCode": "", - "isNewShop": 0, - "xaxis": "[865, 30, 369]", - "yaxis": "4", - "navXaxis": "725", - "navYaxis": "341", - "doorMaterialList": [], - "foodMaterialList": [], - "buildingCode": "gDQKBSW9Poutfp1gDkOeb", - "buildingOrder": 0, - "floorCode": "bXx1U0xdFI0d6B0NueY8r", - "floorOrder": 2, - "star": 0 - }, - { - "industryName": "餐饮", - "industryFatherName": "餐饮", - "industryFatherNameEn": "", - "shopCode": "la-k9y5UAXns_iHoRpFvH", - "shopName": "九月海", - "shopNameEn": "", - "logoCode": "jzP2Ps3HRgo72QIHr9T3D", - "logoUrl": "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/jzP2Ps3HRgo72QIHr9T3D.png", - "industryUrl": "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/I3-tfHkflBawkBiEdnBFE.png", - "building": "苏州金地广场", - "floor": "L3", - "intro": "九月海海鲜自助餐厅团队不但囊括了长期霸榜美团、大众点评等平台海鲜人气榜NO.ONE、堪称海鲜连锁的巨匠大咖,还邀请了国家级特级厨师,前国家乒乓球训练基地总厨师长,国内数一数二的美食制造者加入。九月海海鲜自助餐厅以“烹健康食材、享大海致味”为初心而成立的自助海鲜品牌,品牌的目的就是实现海鲜平民化。\n九月海海鲜自助餐厅会让消费者亲眼看见生猛异常、活蹦乱跳的海鲜自由烹饪,只有以“高端的食材、简单的烹饪”保留海鲜最原始的鲜味,才能满足都市人日益挑剔的味蕾。以“生猛鲜活、原始美味”著称的“九月海”,获得了消费者一致好评。\n九月海海鲜自助餐厅励志于为普罗大众带去健康的饮食理念、海味十足的味蕾定格,追求极致“海之味”的坚定信念,从东海之滨全球首店展开新的启程、势必创建全国连锁餐饮品牌矩阵。", - "introEn": "", - "businessHours": "10:00-22:00", - "contact": "17605931045", - "thirdKouCode": "", - "thirdMeiCode": "", - "thirdZhiCode": "", - "isNewShop": 0, - "xaxis": "[911, 40, -949.5]", - "yaxis": "3", - "navXaxis": "780", - "navYaxis": "-782", - "doorMaterialList": [], - "foodMaterialList": [], - "buildingCode": "gDQKBSW9Poutfp1gDkOeb", - "buildingOrder": 0, - "floorCode": "Ek_MaiuKLPjakB1uB0uQV", - "floorOrder": 6, - "star": 0 - }, - { - "industryName": "餐饮", - "industryFatherName": "餐饮", - "industryFatherNameEn": "", - "shopCode": "PzJtTKXrlcKjsR6a60NXk", - "shopName": "霸王茶姬", - "shopNameEn": "", - "logoCode": "MQhcm4As4nAbDjug2eakZ", - "logoUrl": "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/MQhcm4As4nAbDjug2eakZ.png", - "industryUrl": "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/I3-tfHkflBawkBiEdnBFE.png", - "building": "苏州金地广场", - "floor": "B1", - "intro": "霸王茶姬来自世界茶叶故乡云南的新中式国风茶饮品牌,原叶鲜奶茶,喝出真茶味,健康好茶,喝霸王茶姬", - "introEn": "", - "businessHours": "10:00-22:00", - "contact": "", - "thirdKouCode": "", - "thirdMeiCode": "", - "thirdZhiCode": "", - "isNewShop": 0, - "xaxis": "[-106, 30, 554]", - "yaxis": "42", - "navXaxis": "-91", - "navYaxis": "434", - "doorMaterialList": [], - "foodMaterialList": [], - "buildingCode": "gDQKBSW9Poutfp1gDkOeb", - "buildingOrder": 0, - "floorCode": "bXx1U0xdFI0d6B0NueY8r", - "floorOrder": 2, - "star": 0 - } - ], - "industryFatherList": [ - { - "fileUrl": "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/I3-tfHkflBawkBiEdnBFE.png", - "isSpecial": 0, - "industryCode": "xJ9TDqzwZeOxh3XKuF4CY", - "industryName": "餐饮", - "industryNameEn": "", - "industryNameJa": "", - "industryNameOl": "", - "shopNum": 8, - "industryList": [ - { - "industryCode": "9YILgbC34ICSaMxlY9DtI", - "industryName": "中餐", - "industryNameEn": "", - "industryNameJa": "", - "industryNameOl": "", - "shopNum": 1 - }, - { - "industryCode": "7axYKdEizHB19jjdVDkk_", - "industryName": "甜品饮品类", - "industryNameEn": "", - "industryNameJa": "", - "industryNameOl": "", - "shopNum": 5 - }, - { - "industryCode": "jriAJU9--9QWS4UJY97FY", - "industryName": "异国餐饮", - "industryNameEn": "", - "industryNameJa": "", - "industryNameOl": "", - "shopNum": 1 - }, - { - "industryCode": "V_BVkmNqO0IdYZsBnU_0R", - "industryName": "自助/烧烤", - "industryNameEn": "", - "industryNameJa": "", - "industryNameOl": "", - "shopNum": 1 - } - ] - }, - { - "fileUrl": "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/ML7yzGtexT_-LAh-bmnqr.png", - "isSpecial": 0, - "industryCode": "X8f1sfGl0gfa_QwVcMy86", - "industryName": "零售", - "industryNameEn": "", - "industryNameJa": "", - "industryNameOl": "", - "shopNum": 1, - "industryList": [] - }, - { - "fileUrl": "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/HrR0FjrdJkKLFATk6L43J.png", - "isSpecial": 0, - "industryCode": "IgA6IPVu8efV_Nj6BglZO", - "industryName": "生活配套", - "industryNameEn": "", - "industryNameJa": "", - "industryNameOl": "", - "shopNum": 1, - "industryList": [ - { - "industryCode": "9YILg1bC34ICSaMxlY9DtI", - "industryName": "中餐", - "industryNameEn": "", - "industryNameJa": "", - "industryNameOl": "", - "shopNum": 1 - }, - { - "industryCode": "7axYKdE4izHB19jjdVDkk_", - "industryName": "甜品饮品类", - "industryNameEn": "", - "industryNameJa": "", - "industryNameOl": "", - "shopNum": 5 - } - ] - }, - { - "isSpecial": 0, - "industryCode": "iAuVTeLLzJZ6aXlgK1x7I", - "industryName": "休闲娱乐", - "industryNameEn": "", - "industryNameJa": "", - "industryNameOl": "", - "shopNum": 1, - "industryList": [] - } - ], - "buildingList": [ - { - "building": "苏州金地广场", - "buildingCode": "gDQKBSW9Poutfp1gDkOeb", - "buildingOrder": 0, - "floorList": [ - { - "floor": "B3", - "floorCode": "eAx9XqfXkPtK3RgXXdpzL", - "floorOrder": 0 - }, - { - "floor": "B2", - "floorCode": "qVfcECIRfX14egPA7U4yE", - "floorOrder": 1 - }, - { - "floor": "B1", - "floorCode": "bXx1U0xdFI0d6B0NueY8r", - "floorOrder": 2 - }, - { - "floor": "LG", - "floorCode": "3xmtwGPYYlUyL9WftNsdd", - "floorOrder": 3 - }, - { - "floor": "L1", - "floorCode": "cwgojwijT_qG0f7DVhWpu", - "floorOrder": 4 - }, - { - "floor": "L2", - "floorCode": "KfRjq3d6ICYrXyaYFjAJU", - "floorOrder": 5 - }, - { - "floor": "L3", - "floorCode": "Ek_MaiuKLPjakB1uB0uQV", - "floorOrder": 6 - }, - { - "floor": "L4", - "floorCode": "AnbWM8WtRnNx34DGySB5C", - "floorOrder": 7 - } - ] - } - ] - } -} diff --git a/public/static/offline/JSON/getBrandShopListByFloor.json b/public/static/offline/JSON/getBrandShopListByFloor.json deleted file mode 100644 index d582314..0000000 --- a/public/static/offline/JSON/getBrandShopListByFloor.json +++ /dev/null @@ -1 +0,0 @@ -{"code":200,"msg":"操作成功","data":{"list":[{"name":"L4","shopList":[{"isSpecial":0,"isPass":1,"industryCode":"jriAJU9--9QWS4UJY97FY","industryName":"异国餐饮","industryNameEn":"","industryNameJa":"","industryNameOl":"","industryFatherCode":"xJ9TDqzwZeOxh3XKuF4CY","industryFatherName":"餐饮","industryFatherNameEn":"","industryFatherNameJa":"","industryFatherNameOl":"","shopCode":"HJIpv7HTM9A1WyB8llz53","shopName":"哥哥的夜深夜食堂","shopNameEn":"","shopNameJa":"","shopNameOl":"","alias":"","logoCode":"Io-Xl44rmTy6ShVVSOymd","logoUrl":"/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/Io-Xl44rmTy6ShVVSOymd.png","industryUrl":"/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/I3-tfHkflBawkBiEdnBFE.png","building":"苏州金地广场","floor":"L4","houseNumber":"L4-7","intro":"哥哥心语:希望每一个到来的客人都能在“哥哥の深夜食堂”遇见关于美食的幸福。不但满足您的胃,更能温暖您的心。\n一家风格以“寿司”和“碳烤”为主的居酒屋,是一家用心的【深夜食堂】。\n 取名“哥哥”是觉得这是一个亲切的称呼,在寂静的深夜特别能给人温暖。\n 带着掌心温度的寿司:我们花时间比较了所有日本产的电饭煲,最终从日本駝来了虎牌。很多人误以为寿司就是生冷的,许多店铺也会为客人提供冰鲜的寿司,殊不知,带有师傅掌心温度的寿司才是最适合品尝的。\n 盐烤:相比世面上的居酒屋,店里的碳烤以盐烤为主,较为有特色;\n 大到食材,小到酱汁,对我们来说,没有一件是小事,没有一件事不值得用心完成。\n “ 哥哥の深夜食堂”只想做一家认真的,用心的小店;温暖所有的不完美!","introEn":"","introJa":"","introOl":"","regionCode":"","businessHours":"10:00-22:00","contact":"","gender":3,"minAge":1,"maxAge":100,"thirdKouCode":"","thirdMeiCode":"","thirdZhiCode":"","isNewShop":0,"xaxis":"[825.5, 30, -429]","yaxis":"8","doorMaterialList":[],"foodMaterialList":[],"spelling":"ge ge de ye shen ye shi tang ","initials":"GGDYSYST","borderColor":"","formatColor":"#F46F85","buildingCode":"gDQKBSW9Poutfp1gDkOeb","buildingOrder":0,"floorCode":"AnbWM8WtRnNx34DGySB5C","floorOrder":7,"star":0,"tagList":[]}]},{"name":"L3","shopList":[{"isSpecial":0,"isPass":1,"industryCode":"","industryFatherCode":"IgA6IPVu8efV_Nj6BglZO","industryFatherName":"生活配套","industryFatherNameEn":"","industryFatherNameJa":"","industryFatherNameOl":"","shopCode":"Zm0a2Gp2y2zG-tyu9R6ym","shopName":"佬克拉","shopNameEn":"","shopNameJa":"","shopNameOl":"","alias":"","logoCode":"qentCamtghXztYY2UxcSK","logoUrl":"/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/qentCamtghXztYY2UxcSK.png","industryUrl":"/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/HrR0FjrdJkKLFATk6L43J.png","building":"苏州金地广场","floor":"L3","houseNumber":"L3-44","intro":"Brand Introduction\n佬克拉男士理容馆专注男士理发是一家集纯正男士理发 文身\n潮牌 美酒音乐 派对 为一体的专属男人的社交场所 提供轻松\n愉悦的理发氛围 考究的工具 细节的处理 传递出我们的工作\n态度 除了理发本身更注重跟客户的关系 诚实 健康 快乐 大胆 \n全心全意提供一个专属男士的生活俱乐部\n老克拉,或称“老克勒”,指的是老上海那些阅历较深,收入较\n高,消费前卫,在文化休闲方式上独领潮流的都市男性族群。\n这些人大多出身于名门世家,受过当时的“洋 化”教育,目睹或\n亲历了十里洋场上灯红酒绿、光怪陆离的生活方式。“老”并不\n是指年纪老,而是经验丰富、久经历练的意思。","introEn":"","introJa":"","introOl":"","regionCode":"","businessHours":"10:00-22:00","contact":"13149439287","gender":3,"minAge":1,"maxAge":100,"thirdKouCode":"","thirdMeiCode":"","thirdZhiCode":"","isNewShop":0,"xaxis":"[-1076, 40, -598.5]","yaxis":"51","doorMaterialList":["/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/0KfCv_37Jej5W4giUTHEH.png","/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/K5gyV1Je46hInTQrLcTew.png"],"foodMaterialList":[],"spelling":"lao ke la ","initials":"LKL","borderColor":"","formatColor":"","buildingCode":"gDQKBSW9Poutfp1gDkOeb","buildingOrder":0,"floorCode":"Ek_MaiuKLPjakB1uB0uQV","floorOrder":6,"star":0,"tagList":[]},{"isSpecial":0,"isPass":1,"industryCode":"","industryFatherCode":"iAuVTeLLzJZ6aXlgK1x7I","industryFatherName":"休闲娱乐","industryFatherNameEn":"","industryFatherNameJa":"","industryFatherNameOl":"","shopCode":"lqF15INUravcfL7Avk-Pd","shopName":"跳动方块","shopNameEn":"","shopNameJa":"","shopNameOl":"","alias":"","logoCode":"nRwugprLg6T2MHtPouHkY","logoUrl":"/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/nRwugprLg6T2MHtPouHkY.png","building":"苏州金地广场","floor":"L3","houseNumber":"L3-29","intro":"沉浸式体感运动项目游戏 ,室内全新游戏模式:国内兴起的超火爆的线下娱乐游戏。跳动方块游戏是通过不同的灯光变化规则设置,实现双人/多人组队闯关或对抗的游戏模式,在趣味性/互动性上有非常多的玩法,还有一定的运动锻炼作用,是一种全新的年轻人线下聚会游戏体验方式。\n “跳一下瘦20斤” 新型社交运动方式,打造不一样的运动新体验。全都需要团队配合以及肢体触发才能通关,过程中非常考验反应力、浸式体感运动,协调力和协作性,是绿色、健度、运动的体感游\n 随着对技术、产品理解的深入,跳动方块的物联网芯片、游戏设计、商业模型等方面更加成熟。这是一款以亲子运动、年轻势力为主流消费群体,不分年龄、不分城市的新式科技感运动游戏设备。\n 跳动方块始终坚持以活力、潮流、有趣为核心,打造科技运动新风向标,将意想意创公司十年以来的技术基础融会贯通,打造新运动,新生活。革新室内娱乐方式,让体育运动更有趣!","introEn":"","introJa":"","introOl":"","regionCode":"","businessHours":"10:00-22:00","contact":"","gender":3,"minAge":1,"maxAge":100,"thirdKouCode":"","thirdMeiCode":"","thirdZhiCode":"","isNewShop":0,"xaxis":"[160, 40, -502]","yaxis":"40","doorMaterialList":[],"foodMaterialList":[],"spelling":"tiao dong fang kuai ","initials":"TDFK","borderColor":"","formatColor":"","buildingCode":"gDQKBSW9Poutfp1gDkOeb","buildingOrder":0,"floorCode":"Ek_MaiuKLPjakB1uB0uQV","floorOrder":6,"star":0,"tagList":[]},{"isSpecial":0,"isPass":1,"industryCode":"9YILgbC34ICSaMxlY9DtI","industryName":"中餐","industryNameEn":"","industryNameJa":"","industryNameOl":"","industryFatherCode":"xJ9TDqzwZeOxh3XKuF4CY","industryFatherName":"餐饮","industryFatherNameEn":"","industryFatherNameJa":"","industryFatherNameOl":"","shopCode":"K2cg1Om-AI2A6w35N07Yd","shopName":"兰湘子","shopNameEn":"","shopNameJa":"","shopNameOl":"","alias":"","logoCode":"0ZCN4jLpZGh3NfHQTNA21","logoUrl":"/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/0ZCN4jLpZGh3NfHQTNA21.png","industryUrl":"/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/I3-tfHkflBawkBiEdnBFE.png","building":"苏州金地广场","floor":"L3","houseNumber":"L3-6/7/8","intro":"想要吃一餐好饭却又担心时间不够?\n\n兰湘子 · 湘菜小炒,\n专为解决更多白领一族的美食体验和用餐效率问题;\n上菜快,吃得爽,湘菜热销榜;\n兰湘子产品由著名湘菜大师张小春先生主理出品;\n是首个入驻skp的湘菜品牌,也是湘菜小炒品类引领者;2022年大众点评必吃榜上榜品牌;\n全国14省,200+直营门店。","introEn":"","introJa":"","introOl":"","regionCode":"","businessHours":"10:00-22:00","contact":"","gender":3,"minAge":1,"maxAge":100,"thirdKouCode":"","thirdMeiCode":"","thirdZhiCode":"","isNewShop":0,"xaxis":"[407, 40, 702]","yaxis":"28","doorMaterialList":["/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/hb4D__B5anhDZ48VB5KMl.png","/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/nl9BxnyfeTgQa9JeDrS3i.png","/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/ErMNXULl31yfzZnTqSlfp.png"],"foodMaterialList":["/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/dsrlg87RAsWFTsyB28UKC.png"],"spelling":"lan xiang zi ","initials":"LXZ","borderColor":"","formatColor":"#F46F85","buildingCode":"gDQKBSW9Poutfp1gDkOeb","buildingOrder":0,"floorCode":"Ek_MaiuKLPjakB1uB0uQV","floorOrder":6,"star":0,"tagList":[]},{"isSpecial":0,"isPass":1,"industryCode":"V_BVkmNqO0IdYZsBnU_0R","industryName":"自助/烧烤","industryNameEn":"","industryNameJa":"","industryNameOl":"","industryFatherCode":"xJ9TDqzwZeOxh3XKuF4CY","industryFatherName":"餐饮","industryFatherNameEn":"","industryFatherNameJa":"","industryFatherNameOl":"","shopCode":"la-k9y5UAXns_iHoRpFvH","shopName":"九月海","shopNameEn":"","shopNameJa":"","shopNameOl":"","alias":"","logoCode":"jzP2Ps3HRgo72QIHr9T3D","logoUrl":"/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/jzP2Ps3HRgo72QIHr9T3D.png","industryUrl":"/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/I3-tfHkflBawkBiEdnBFE.png","building":"苏州金地广场","floor":"L3","houseNumber":"L3-25/26b","intro":"九月海海鲜自助餐厅团队不但囊括了长期霸榜美团、大众点评等平台海鲜人气榜NO.ONE、堪称海鲜连锁的巨匠大咖,还邀请了国家级特级厨师,前国家乒乓球训练基地总厨师长,国内数一数二的美食制造者加入。九月海海鲜自助餐厅以“烹健康食材、享大海致味”为初心而成立的自助海鲜品牌,品牌的目的就是实现海鲜平民化。\n九月海海鲜自助餐厅会让消费者亲眼看见生猛异常、活蹦乱跳的海鲜自由烹饪,只有以“高端的食材、简单的烹饪”保留海鲜最原始的鲜味,才能满足都市人日益挑剔的味蕾。以“生猛鲜活、原始美味”著称的“九月海”,获得了消费者一致好评。\n九月海海鲜自助餐厅励志于为普罗大众带去健康的饮食理念、海味十足的味蕾定格,追求极致“海之味”的坚定信念,从东海之滨全球首店展开新的启程、势必创建全国连锁餐饮品牌矩阵。","introEn":"","introJa":"","introOl":"","regionCode":"","businessHours":"10:00-22:00","contact":"17605931045","gender":3,"minAge":1,"maxAge":100,"thirdKouCode":"","thirdMeiCode":"","thirdZhiCode":"","isNewShop":0,"xaxis":"[911, 40, -949.5]","yaxis":"3","doorMaterialList":[],"foodMaterialList":[],"spelling":"jiu yue hai ","initials":"JYH","borderColor":"","formatColor":"#F46F85","buildingCode":"gDQKBSW9Poutfp1gDkOeb","buildingOrder":0,"floorCode":"Ek_MaiuKLPjakB1uB0uQV","floorOrder":6,"star":0,"tagList":[]}]},{"name":"L2","shopList":[]},{"name":"L1","shopList":[]},{"name":"LG","shopList":[{"isSpecial":0,"isPass":1,"industryCode":"7axYKdEizHB19jjdVDkk_","industryName":"甜品饮品类","industryNameEn":"","industryNameJa":"","industryNameOl":"","industryFatherCode":"xJ9TDqzwZeOxh3XKuF4CY","industryFatherName":"餐饮","industryFatherNameEn":"","industryFatherNameJa":"","industryFatherNameOl":"","shopCode":"BKDvK95c8BCsWPCCUEFbp","shopName":"奈雪的茶","shopNameEn":"NAIXUE","shopNameJa":"","shopNameOl":"","alias":"","logoCode":"7X-h9Z8vhoXBqSUiDlqiW","logoUrl":"/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/7X-h9Z8vhoXBqSUiDlqiW.png","industryUrl":"/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/I3-tfHkflBawkBiEdnBFE.png","building":"苏州金地广场","floor":"LG","houseNumber":"LG-18","intro":"奈雪的茶,新茶饮赛道开创者,创立于2015年,领创推出“茶饮+软欧包”双品类模式。聚焦以茶为核心的现代生活方式,奈雪已形成“现制茶饮”、“奈雪茗茶”及“瓶装饮料”三大业务版块,成功打造“霸气玉油柑”、“鸭屎香宝藏茶”、“龙井奶茶”等多款行业爆品。\n2021年6月30日,奈雪的茶正式在港交所挂牌上市。目前,奈雪的茶已覆盖全国近100个城市,门店数量超过1200家。\n秉承“美好自有力量”的理念,奈雪的茶以成为“受顾客喜爱的全球性茶饮品牌”为使命,致力于成为茶文化走向世界的创新者和推动者。","introEn":"","introJa":"","introOl":"","regionCode":"","businessHours":"10:00-22:00","contact":"","gender":3,"minAge":1,"maxAge":100,"thirdKouCode":"","thirdMeiCode":"","thirdZhiCode":"","isNewShop":0,"xaxis":"[-880, 30, 870]","yaxis":"16","doorMaterialList":[],"foodMaterialList":[],"spelling":"nai xue de cha ","initials":"NXDC","borderColor":"","formatColor":"#F46F85","buildingCode":"gDQKBSW9Poutfp1gDkOeb","buildingOrder":0,"floorCode":"3xmtwGPYYlUyL9WftNsdd","floorOrder":3,"star":0,"tagList":[]}]},{"name":"B1","shopList":[{"isSpecial":0,"isPass":1,"industryCode":"7axYKdEizHB19jjdVDkk_","industryName":"甜品饮品类","industryNameEn":"","industryNameJa":"","industryNameOl":"","industryFatherCode":"xJ9TDqzwZeOxh3XKuF4CY","industryFatherName":"餐饮","industryFatherNameEn":"","industryFatherNameJa":"","industryFatherNameOl":"","shopCode":"IuE3EV6ZXgbl7WFs65u4R","shopName":"马伍旺","shopNameEn":"","shopNameJa":"","shopNameOl":"","alias":"","logoCode":"1tC1SylXjnX9RY9CpcFoc","logoUrl":"/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/1tC1SylXjnX9RY9CpcFoc.png","industryUrl":"/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/I3-tfHkflBawkBiEdnBFE.png","building":"苏州金地广场","floor":"B1","houseNumber":"B1-24a","intro":"年轻人的80s复古回潮工厂风饮料铺\n馬伍旺饮料厂以年代记忆为切入点,基于特定的时代风格,运用国营工厂的文化标签和视觉表现,注入现代工作生活的美好寓意,顺应了行业的复古潮流,满足了消费者的年代情怀。\n作为南京川菜长期头部商家——馬伍旺的衍生品牌,馬伍旺饮料厂积极运用品牌+产品+内容的矩阵效应,各门店开业之初,便一举登顶大众点评南京全市及各区饮品店热门榜TOP1。\n\n馬伍旺饮料厂设计灵感源于中国人的底层审美,运用创新与融合,再现70-80年代计划经济工风,大胆撞色,戳中年轻人的审美情趣,别具一格,市面上独此一家。\n馬伍旺饮料厂以江浙沪口味为基础研发产品,坚持使用真奶好茶,创造原生爆款消费者一口就能喝出区别,好的原材料才能有好的味觉持续性。 \n\n馬伍旺深入洞察年轻人的喜好和特性,不仅好喝,而且耐看。用视觉吸引客人,用口味留住客人,用内涵获得支持。\n\nSlogan:真奶好茶 国货正品 质量保证 加速实现饮料自由","introEn":"","introJa":"","introOl":"","regionCode":"","businessHours":"10:00-22:00","contact":"","gender":3,"minAge":1,"maxAge":100,"thirdKouCode":"","thirdMeiCode":"","thirdZhiCode":"","isNewShop":0,"xaxis":"[-890, 30, -267]","yaxis":"21","doorMaterialList":["/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/2Of7OpFJoBwKV9a2tW-IB.png","/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/2OKmCBomT-ftWqHCcAa7Y.png","/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/CbouQ7GQgMEhZYIO0FH1m.png"],"foodMaterialList":["/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/1h2l47U6swpyI26s3VbQh.png"],"spelling":"ma wu wang ","initials":"MWW","borderColor":"","formatColor":"#F46F85","buildingCode":"gDQKBSW9Poutfp1gDkOeb","buildingOrder":0,"floorCode":"bXx1U0xdFI0d6B0NueY8r","floorOrder":2,"star":0,"tagList":[]},{"isSpecial":0,"isPass":1,"industryCode":"7axYKdEizHB19jjdVDkk_","industryName":"甜品饮品类","industryNameEn":"","industryNameJa":"","industryNameOl":"","industryFatherCode":"xJ9TDqzwZeOxh3XKuF4CY","industryFatherName":"餐饮","industryFatherNameEn":"","industryFatherNameJa":"","industryFatherNameOl":"","shopCode":"6yU8mbIO6u5FwlF83AHhl","shopName":"柠檬森林","shopNameEn":"","shopNameJa":"","shopNameOl":"","alias":"","logoCode":"HLyocAxVDBDsZRqjIpL4K","logoUrl":"/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/HLyocAxVDBDsZRqjIpL4K.png","industryUrl":"/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/I3-tfHkflBawkBiEdnBFE.png","building":"苏州金地广场","floor":"B1","houseNumber":"B1-24b","intro":"柠檬森林2021年成立于苏州,执着新鲜的茶饮口感,追逐新奇的味蕾体验,崇尚新潮的生活态度,致力于研创柠檬茶的全新制作方式。\n全新推出可以喝的『鸡鸭鱼肉』系列,柠檬森林开市啦!\n\n原创鸡笼香单枞茶底,茶香清悠,入口绵柔,清新韵味缓缓释放。\n经典鸭屎香单枞茶底,银花香气,醇厚劲爽,余韵悠长,回甘上头。\n尝新东方美人茶,果蜜香气丰腴,滋味清透活泼,鲜爽甜润。\n焙火造就高香肉桂,入口醇厚,回味似有乳香,甘润爽快。\n4款茶底,可纯茶呈现,可制成酸爽柠檬茶,可搭配轻乳和香柠轻奶霜,可搭配香柠轻奶油和小饼干。柠檬森林菜篮子,鸡鸭鱼肉都好喝!","introEn":"","introJa":"","introOl":"","regionCode":"","businessHours":"10:00-22:00","contact":"","gender":3,"minAge":1,"maxAge":100,"thirdKouCode":"","thirdMeiCode":"","thirdZhiCode":"","isNewShop":0,"xaxis":"[-941, 30, 490.5]","yaxis":"15","doorMaterialList":[],"foodMaterialList":[],"spelling":"ning meng sen lin ","initials":"NMSL","borderColor":"","formatColor":"#F46F85","buildingCode":"gDQKBSW9Poutfp1gDkOeb","buildingOrder":0,"floorCode":"bXx1U0xdFI0d6B0NueY8r","floorOrder":2,"star":0,"tagList":[]},{"isSpecial":0,"isPass":1,"industryCode":"","industryFatherCode":"X8f1sfGl0gfa_QwVcMy86","industryFatherName":"零售","industryFatherNameEn":"","industryFatherNameJa":"","industryFatherNameOl":"","shopCode":"3zZ9xUruHS1BeutRzuuFZ","shopName":"漫库","shopNameEn":"","shopNameJa":"","shopNameOl":"","alias":"","logoCode":"nYoCUJlnBAt3NTeSoXAFY","logoUrl":"/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/nYoCUJlnBAt3NTeSoXAFY.png","industryUrl":"/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/ML7yzGtexT_-LAh-bmnqr.png","building":"苏州金地广场","floor":"B1","houseNumber":"B1-1b","intro":"漫库是国内全新的二次元品牌,成立于2019年12月,致力于为用户提供优质的二次元图书和正版授权的IP衍生品,拥有优秀的商务团队、产品设计团队和营销团队。针对全国二次元年轻用户,通过网络宣传,贩售与漫展,商场快闪店,实体店相结合的经营模式,打通线下与线上渠道,带给用户沉浸式的二次元体验。致力于为用户提供优质的正版授权IP衍生品(即谷子),拥有优秀的商务团队、产品设计团队和营销团队。针对全国00后的二次元年轻用户,MANCOOL漫库旗下自媒体矩阵覆盖微博、微信公众号、抖音、小红书、loft等近2000万的平台流量。短视频、活动策划的形式玩转营销;并在微信,抖音,QQ群聚集粉丝,搭建500万+的私域流量池,对用户进行深度营销。","introEn":"","introJa":"","introOl":"","regionCode":"","businessHours":"10:00-22:00","contact":"","gender":3,"minAge":1,"maxAge":100,"thirdKouCode":"","thirdMeiCode":"","thirdZhiCode":"","isNewShop":0,"xaxis":"[1140, 30, -858.5]","yaxis":"14","doorMaterialList":[],"foodMaterialList":[],"spelling":"man ku ","initials":"MK","borderColor":"","formatColor":"","buildingCode":"gDQKBSW9Poutfp1gDkOeb","buildingOrder":0,"floorCode":"bXx1U0xdFI0d6B0NueY8r","floorOrder":2,"star":0,"tagList":[]},{"isSpecial":0,"isPass":1,"industryCode":"7axYKdEizHB19jjdVDkk_","industryName":"甜品饮品类","industryNameEn":"","industryNameJa":"","industryNameOl":"","industryFatherCode":"xJ9TDqzwZeOxh3XKuF4CY","industryFatherName":"餐饮","industryFatherNameEn":"","industryFatherNameJa":"","industryFatherNameOl":"","shopCode":"JWVv0Q2gyl4T72Od66G7I","shopName":"酸奶罐罐","shopNameEn":"","shopNameJa":"","shopNameOl":"","alias":"","logoCode":"ZP5hVVHWWxFYe8ap8NsBg","logoUrl":"/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/ZP5hVVHWWxFYe8ap8NsBg.png","industryUrl":"/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/I3-tfHkflBawkBiEdnBFE.png","building":"苏州金地广场","floor":"B1","houseNumber":"B1-43b","intro":"酸奶罐罐是桂桂茶(原桂源铺)集团旗下的年轻酸奶饮品品牌,主打水果芝士酸奶,品牌整体风格年轻、时尚、有活力。以易拉罐形式进行包装,满足高颜值、强锁鲜与易传播的特性。产品以7种俄式乳酸菌发酵而成的酸奶为主,添加安佳进口芝士、0卡糖,再搭配不同鲜果制作而成,罐罐有芝士,罐罐有惊喜!\n传递积极向上、鼓励彼此阳光生活的态度与文化是酸奶罐罐的品牌理念。\n酸奶罐罐共有3个产品类别,分别是芝士酸奶系列、创意酸奶系列和天然色系列,其中小蓝罐现做芝士酸奶即是主打产品。\n芝士酸奶系列,香浓顺滑的芝士酸奶搭配鲜果、坚果等精选食材,让这一罐的美味达到了每一口都惊艳的地步。\n创意酸奶系列,打破传统酸奶口味,精心挑选和芝士酸奶能完美融合的食材,经历上万次的实验和搭配,制作出创意不凡、口味新颖的高颜值饮品。\n天然色系列,在芝士酸奶中加入了食物的天然本色,每一款超乎您的想象!\n这一次,我们打破了大家对日常酸奶的刻板印象,用突破性技术把酸奶装进易拉罐,锁住美味,在品尝现做芝士酸奶的瞬间,您的味觉感官一定会得到释放和满足!","introEn":"","introJa":"","introOl":"","regionCode":"","businessHours":"10:00-22:00","contact":"","gender":3,"minAge":1,"maxAge":100,"thirdKouCode":"","thirdMeiCode":"","thirdZhiCode":"","isNewShop":0,"xaxis":"[865, 30, 369]","yaxis":"4","doorMaterialList":[],"foodMaterialList":[],"spelling":"suan nai guan guan ","initials":"SNGG","borderColor":"","formatColor":"#F46F85","buildingCode":"gDQKBSW9Poutfp1gDkOeb","buildingOrder":0,"floorCode":"bXx1U0xdFI0d6B0NueY8r","floorOrder":2,"star":0,"tagList":[]},{"isSpecial":0,"isPass":1,"industryCode":"7axYKdEizHB19jjdVDkk_","industryName":"甜品饮品类","industryNameEn":"","industryNameJa":"","industryNameOl":"","industryFatherCode":"xJ9TDqzwZeOxh3XKuF4CY","industryFatherName":"餐饮","industryFatherNameEn":"","industryFatherNameJa":"","industryFatherNameOl":"","shopCode":"PzJtTKXrlcKjsR6a60NXk","shopName":"霸王茶姬","shopNameEn":"","shopNameJa":"","shopNameOl":"","alias":"","logoCode":"MQhcm4As4nAbDjug2eakZ","logoUrl":"/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/MQhcm4As4nAbDjug2eakZ.png","industryUrl":"/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/I3-tfHkflBawkBiEdnBFE.png","building":"苏州金地广场","floor":"B1","houseNumber":"B1-34","intro":"霸王茶姬来自世界茶叶故乡云南的新中式国风茶饮品牌,原叶鲜奶茶,喝出真茶味,健康好茶,喝霸王茶姬","introEn":"","introJa":"","introOl":"","regionCode":"","businessHours":"10:00-22:00","contact":"","gender":3,"minAge":1,"maxAge":100,"thirdKouCode":"","thirdMeiCode":"","thirdZhiCode":"","isNewShop":0,"xaxis":"[-106, 30, 554]","yaxis":"42","doorMaterialList":[],"foodMaterialList":[],"spelling":"ba wang cha ji ","initials":"BWCJ","borderColor":"","formatColor":"#F46F85","buildingCode":"gDQKBSW9Poutfp1gDkOeb","buildingOrder":0,"floorCode":"bXx1U0xdFI0d6B0NueY8r","floorOrder":2,"star":0,"tagList":[]}]},{"name":"B2","shopList":[]},{"name":"B3","shopList":[]}]}} \ No newline at end of file diff --git a/public/static/offline/JSON/getBrandShopListByIndustryId.json b/public/static/offline/JSON/getBrandShopListByIndustryId.json deleted file mode 100644 index cc4291c..0000000 --- a/public/static/offline/JSON/getBrandShopListByIndustryId.json +++ /dev/null @@ -1,628 +0,0 @@ -{ - "code": 200, - "msg": "操作成功", - "data": { - "list": [ - { - "name": "餐饮", - "nameEn": "", - "shopList": [ - { - "isSpecial": 0, - "isPass": 1, - "industryCode": "7axYKdEizHB19jjdVDkk_", - "industryName": "甜品饮品类", - "industryNameEn": "", - "industryNameJa": "", - "industryNameOl": "", - "industryFatherCode": "xJ9TDqzwZeOxh3XKuF4CY", - "industryFatherName": "餐饮", - "industryFatherNameEn": "", - "industryFatherNameJa": "", - "industryFatherNameOl": "", - "shopCode": "IuE3EV6ZXgbl7WFs65u4R", - "shopName": "马伍旺", - "shopNameEn": "", - "shopNameJa": "", - "shopNameOl": "", - "alias": "", - "logoCode": "1tC1SylXjnX9RY9CpcFoc", - "logoUrl": "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/1tC1SylXjnX9RY9CpcFoc.png", - "industryUrl": "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/I3-tfHkflBawkBiEdnBFE.png", - "building": "苏州金地广场", - "floor": "B1", - "houseNumber": "B1-24a", - "intro": "年轻人的80s复古回潮工厂风饮料铺\n馬伍旺饮料厂以年代记忆为切入点,基于特定的时代风格,运用国营工厂的文化标签和视觉表现,注入现代工作生活的美好寓意,顺应了行业的复古潮流,满足了消费者的年代情怀。\n作为南京川菜长期头部商家——馬伍旺的衍生品牌,馬伍旺饮料厂积极运用品牌+产品+内容的矩阵效应,各门店开业之初,便一举登顶大众点评南京全市及各区饮品店热门榜TOP1。\n\n馬伍旺饮料厂设计灵感源于中国人的底层审美,运用创新与融合,再现70-80年代计划经济工风,大胆撞色,戳中年轻人的审美情趣,别具一格,市面上独此一家。\n馬伍旺饮料厂以江浙沪口味为基础研发产品,坚持使用真奶好茶,创造原生爆款消费者一口就能喝出区别,好的原材料才能有好的味觉持续性。 \n\n馬伍旺深入洞察年轻人的喜好和特性,不仅好喝,而且耐看。用视觉吸引客人,用口味留住客人,用内涵获得支持。\n\nSlogan:真奶好茶 国货正品 质量保证 加速实现饮料自由", - "introEn": "", - "introJa": "", - "introOl": "", - "regionCode": "", - "businessHours": "10:00-22:00", - "contact": "", - "gender": 3, - "minAge": 1, - "maxAge": 100, - "thirdKouCode": "", - "thirdMeiCode": "", - "thirdZhiCode": "", - "isNewShop": 0, - "xaxis": "[-890, 30, -267]", - "yaxis": "21", - "doorMaterialList": [ - "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/2Of7OpFJoBwKV9a2tW-IB.png", - "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/2OKmCBomT-ftWqHCcAa7Y.png", - "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/CbouQ7GQgMEhZYIO0FH1m.png" - ], - "foodMaterialList": [ - "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/1h2l47U6swpyI26s3VbQh.png" - ], - "spelling": "ma wu wang ", - "initials": "MWW", - "borderColor": "", - "formatColor": "#F46F85", - "buildingCode": "gDQKBSW9Poutfp1gDkOeb", - "buildingOrder": 0, - "floorCode": "bXx1U0xdFI0d6B0NueY8r", - "floorOrder": 2, - "star": 0, - "tagList": [] - }, - { - "isSpecial": 0, - "isPass": 1, - "industryCode": "7axYKdEizHB19jjdVDkk_", - "industryName": "甜品饮品类", - "industryNameEn": "", - "industryNameJa": "", - "industryNameOl": "", - "industryFatherCode": "xJ9TDqzwZeOxh3XKuF4CY", - "industryFatherName": "餐饮", - "industryFatherNameEn": "", - "industryFatherNameJa": "", - "industryFatherNameOl": "", - "shopCode": "BKDvK95c8BCsWPCCUEFbp", - "shopName": "奈雪的茶", - "shopNameEn": "NAIXUE", - "shopNameJa": "", - "shopNameOl": "", - "alias": "", - "logoCode": "7X-h9Z8vhoXBqSUiDlqiW", - "logoUrl": "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/7X-h9Z8vhoXBqSUiDlqiW.png", - "industryUrl": "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/I3-tfHkflBawkBiEdnBFE.png", - "building": "苏州金地广场", - "floor": "LG", - "houseNumber": "LG-18", - "intro": "奈雪的茶,新茶饮赛道开创者,创立于2015年,领创推出“茶饮+软欧包”双品类模式。聚焦以茶为核心的现代生活方式,奈雪已形成“现制茶饮”、“奈雪茗茶”及“瓶装饮料”三大业务版块,成功打造“霸气玉油柑”、“鸭屎香宝藏茶”、“龙井奶茶”等多款行业爆品。\n2021年6月30日,奈雪的茶正式在港交所挂牌上市。目前,奈雪的茶已覆盖全国近100个城市,门店数量超过1200家。\n秉承“美好自有力量”的理念,奈雪的茶以成为“受顾客喜爱的全球性茶饮品牌”为使命,致力于成为茶文化走向世界的创新者和推动者。", - "introEn": "", - "introJa": "", - "introOl": "", - "regionCode": "", - "businessHours": "10:00-22:00", - "contact": "", - "gender": 3, - "minAge": 1, - "maxAge": 100, - "thirdKouCode": "", - "thirdMeiCode": "", - "thirdZhiCode": "", - "isNewShop": 0, - "xaxis": "[-880, 30, 870]", - "yaxis": "16", - "doorMaterialList": [], - "foodMaterialList": [], - "spelling": "nai xue de cha ", - "initials": "NXDC", - "borderColor": "", - "formatColor": "#F46F85", - "buildingCode": "gDQKBSW9Poutfp1gDkOeb", - "buildingOrder": 0, - "floorCode": "3xmtwGPYYlUyL9WftNsdd", - "floorOrder": 3, - "star": 0, - "tagList": [] - }, - { - "isSpecial": 0, - "isPass": 1, - "industryCode": "7axYKdEizHB19jjdVDkk_", - "industryName": "甜品饮品类", - "industryNameEn": "", - "industryNameJa": "", - "industryNameOl": "", - "industryFatherCode": "xJ9TDqzwZeOxh3XKuF4CY", - "industryFatherName": "餐饮", - "industryFatherNameEn": "", - "industryFatherNameJa": "", - "industryFatherNameOl": "", - "shopCode": "6yU8mbIO6u5FwlF83AHhl", - "shopName": "柠檬森林", - "shopNameEn": "", - "shopNameJa": "", - "shopNameOl": "", - "alias": "", - "logoCode": "HLyocAxVDBDsZRqjIpL4K", - "logoUrl": "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/HLyocAxVDBDsZRqjIpL4K.png", - "industryUrl": "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/I3-tfHkflBawkBiEdnBFE.png", - "building": "苏州金地广场", - "floor": "B1", - "houseNumber": "B1-24b", - "intro": "柠檬森林2021年成立于苏州,执着新鲜的茶饮口感,追逐新奇的味蕾体验,崇尚新潮的生活态度,致力于研创柠檬茶的全新制作方式。\n全新推出可以喝的『鸡鸭鱼肉』系列,柠檬森林开市啦!\n\n原创鸡笼香单枞茶底,茶香清悠,入口绵柔,清新韵味缓缓释放。\n经典鸭屎香单枞茶底,银花香气,醇厚劲爽,余韵悠长,回甘上头。\n尝新东方美人茶,果蜜香气丰腴,滋味清透活泼,鲜爽甜润。\n焙火造就高香肉桂,入口醇厚,回味似有乳香,甘润爽快。\n4款茶底,可纯茶呈现,可制成酸爽柠檬茶,可搭配轻乳和香柠轻奶霜,可搭配香柠轻奶油和小饼干。柠檬森林菜篮子,鸡鸭鱼肉都好喝!", - "introEn": "", - "introJa": "", - "introOl": "", - "regionCode": "", - "businessHours": "10:00-22:00", - "contact": "", - "gender": 3, - "minAge": 1, - "maxAge": 100, - "thirdKouCode": "", - "thirdMeiCode": "", - "thirdZhiCode": "", - "isNewShop": 0, - "xaxis": "[-941, 30, 490.5]", - "yaxis": "15", - "doorMaterialList": [], - "foodMaterialList": [], - "spelling": "ning meng sen lin ", - "initials": "NMSL", - "borderColor": "", - "formatColor": "#F46F85", - "buildingCode": "gDQKBSW9Poutfp1gDkOeb", - "buildingOrder": 0, - "floorCode": "bXx1U0xdFI0d6B0NueY8r", - "floorOrder": 2, - "star": 0, - "tagList": [] - }, - { - "isSpecial": 0, - "isPass": 1, - "industryCode": "jriAJU9--9QWS4UJY97FY", - "industryName": "异国餐饮", - "industryNameEn": "", - "industryNameJa": "", - "industryNameOl": "", - "industryFatherCode": "xJ9TDqzwZeOxh3XKuF4CY", - "industryFatherName": "餐饮", - "industryFatherNameEn": "", - "industryFatherNameJa": "", - "industryFatherNameOl": "", - "shopCode": "HJIpv7HTM9A1WyB8llz53", - "shopName": "哥哥的夜深夜食堂", - "shopNameEn": "", - "shopNameJa": "", - "shopNameOl": "", - "alias": "", - "logoCode": "Io-Xl44rmTy6ShVVSOymd", - "logoUrl": "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/Io-Xl44rmTy6ShVVSOymd.png", - "industryUrl": "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/I3-tfHkflBawkBiEdnBFE.png", - "building": "苏州金地广场", - "floor": "L4", - "houseNumber": "L4-7", - "intro": "哥哥心语:希望每一个到来的客人都能在“哥哥の深夜食堂”遇见关于美食的幸福。不但满足您的胃,更能温暖您的心。\n一家风格以“寿司”和“碳烤”为主的居酒屋,是一家用心的【深夜食堂】。\n 取名“哥哥”是觉得这是一个亲切的称呼,在寂静的深夜特别能给人温暖。\n 带着掌心温度的寿司:我们花时间比较了所有日本产的电饭煲,最终从日本駝来了虎牌。很多人误以为寿司就是生冷的,许多店铺也会为客人提供冰鲜的寿司,殊不知,带有师傅掌心温度的寿司才是最适合品尝的。\n 盐烤:相比世面上的居酒屋,店里的碳烤以盐烤为主,较为有特色;\n 大到食材,小到酱汁,对我们来说,没有一件是小事,没有一件事不值得用心完成。\n “ 哥哥の深夜食堂”只想做一家认真的,用心的小店;温暖所有的不完美!", - "introEn": "", - "introJa": "", - "introOl": "", - "regionCode": "", - "businessHours": "10:00-22:00", - "contact": "", - "gender": 3, - "minAge": 1, - "maxAge": 100, - "thirdKouCode": "", - "thirdMeiCode": "", - "thirdZhiCode": "", - "isNewShop": 0, - "xaxis": "[825.5, 30, -429]", - "yaxis": "8", - "doorMaterialList": [], - "foodMaterialList": [], - "spelling": "ge ge de ye shen ye shi tang ", - "initials": "GGDYSYST", - "borderColor": "", - "formatColor": "#F46F85", - "buildingCode": "gDQKBSW9Poutfp1gDkOeb", - "buildingOrder": 0, - "floorCode": "AnbWM8WtRnNx34DGySB5C", - "floorOrder": 7, - "star": 0, - "tagList": [] - }, - { - "isSpecial": 0, - "isPass": 1, - "industryCode": "9YILgbC34ICSaMxlY9DtI", - "industryName": "中餐", - "industryNameEn": "", - "industryNameJa": "", - "industryNameOl": "", - "industryFatherCode": "xJ9TDqzwZeOxh3XKuF4CY", - "industryFatherName": "餐饮", - "industryFatherNameEn": "", - "industryFatherNameJa": "", - "industryFatherNameOl": "", - "shopCode": "K2cg1Om-AI2A6w35N07Yd", - "shopName": "兰湘子", - "shopNameEn": "", - "shopNameJa": "", - "shopNameOl": "", - "alias": "", - "logoCode": "0ZCN4jLpZGh3NfHQTNA21", - "logoUrl": "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/0ZCN4jLpZGh3NfHQTNA21.png", - "industryUrl": "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/I3-tfHkflBawkBiEdnBFE.png", - "building": "苏州金地广场", - "floor": "L3", - "houseNumber": "L3-6/7/8", - "intro": "想要吃一餐好饭却又担心时间不够?\n\n兰湘子 · 湘菜小炒,\n专为解决更多白领一族的美食体验和用餐效率问题;\n上菜快,吃得爽,湘菜热销榜;\n兰湘子产品由著名湘菜大师张小春先生主理出品;\n是首个入驻skp的湘菜品牌,也是湘菜小炒品类引领者;2022年大众点评必吃榜上榜品牌;\n全国14省,200+直营门店。", - "introEn": "", - "introJa": "", - "introOl": "", - "regionCode": "", - "businessHours": "10:00-22:00", - "contact": "", - "gender": 3, - "minAge": 1, - "maxAge": 100, - "thirdKouCode": "", - "thirdMeiCode": "", - "thirdZhiCode": "", - "isNewShop": 0, - "xaxis": "[407, 40, 702]", - "yaxis": "28", - "doorMaterialList": [ - "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/hb4D__B5anhDZ48VB5KMl.png", - "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/nl9BxnyfeTgQa9JeDrS3i.png", - "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/ErMNXULl31yfzZnTqSlfp.png" - ], - "foodMaterialList": [ - "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/dsrlg87RAsWFTsyB28UKC.png" - ], - "spelling": "lan xiang zi ", - "initials": "LXZ", - "borderColor": "", - "formatColor": "#F46F85", - "buildingCode": "gDQKBSW9Poutfp1gDkOeb", - "buildingOrder": 0, - "floorCode": "Ek_MaiuKLPjakB1uB0uQV", - "floorOrder": 6, - "star": 0, - "tagList": [] - }, - { - "isSpecial": 0, - "isPass": 1, - "industryCode": "7axYKdEizHB19jjdVDkk_", - "industryName": "甜品饮品类", - "industryNameEn": "", - "industryNameJa": "", - "industryNameOl": "", - "industryFatherCode": "xJ9TDqzwZeOxh3XKuF4CY", - "industryFatherName": "餐饮", - "industryFatherNameEn": "", - "industryFatherNameJa": "", - "industryFatherNameOl": "", - "shopCode": "JWVv0Q2gyl4T72Od66G7I", - "shopName": "酸奶罐罐", - "shopNameEn": "", - "shopNameJa": "", - "shopNameOl": "", - "alias": "", - "logoCode": "ZP5hVVHWWxFYe8ap8NsBg", - "logoUrl": "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/ZP5hVVHWWxFYe8ap8NsBg.png", - "industryUrl": "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/I3-tfHkflBawkBiEdnBFE.png", - "building": "苏州金地广场", - "floor": "B1", - "houseNumber": "B1-43b", - "intro": "酸奶罐罐是桂桂茶(原桂源铺)集团旗下的年轻酸奶饮品品牌,主打水果芝士酸奶,品牌整体风格年轻、时尚、有活力。以易拉罐形式进行包装,满足高颜值、强锁鲜与易传播的特性。产品以7种俄式乳酸菌发酵而成的酸奶为主,添加安佳进口芝士、0卡糖,再搭配不同鲜果制作而成,罐罐有芝士,罐罐有惊喜!\n传递积极向上、鼓励彼此阳光生活的态度与文化是酸奶罐罐的品牌理念。\n酸奶罐罐共有3个产品类别,分别是芝士酸奶系列、创意酸奶系列和天然色系列,其中小蓝罐现做芝士酸奶即是主打产品。\n芝士酸奶系列,香浓顺滑的芝士酸奶搭配鲜果、坚果等精选食材,让这一罐的美味达到了每一口都惊艳的地步。\n创意酸奶系列,打破传统酸奶口味,精心挑选和芝士酸奶能完美融合的食材,经历上万次的实验和搭配,制作出创意不凡、口味新颖的高颜值饮品。\n天然色系列,在芝士酸奶中加入了食物的天然本色,每一款超乎您的想象!\n这一次,我们打破了大家对日常酸奶的刻板印象,用突破性技术把酸奶装进易拉罐,锁住美味,在品尝现做芝士酸奶的瞬间,您的味觉感官一定会得到释放和满足!", - "introEn": "", - "introJa": "", - "introOl": "", - "regionCode": "", - "businessHours": "10:00-22:00", - "contact": "", - "gender": 3, - "minAge": 1, - "maxAge": 100, - "thirdKouCode": "", - "thirdMeiCode": "", - "thirdZhiCode": "", - "isNewShop": 0, - "xaxis": "[865, 30, 369]", - "yaxis": "4", - "doorMaterialList": [], - "foodMaterialList": [], - "spelling": "suan nai guan guan ", - "initials": "SNGG", - "borderColor": "", - "formatColor": "#F46F85", - "buildingCode": "gDQKBSW9Poutfp1gDkOeb", - "buildingOrder": 0, - "floorCode": "bXx1U0xdFI0d6B0NueY8r", - "floorOrder": 2, - "star": 0, - "tagList": [] - }, - { - "isSpecial": 0, - "isPass": 1, - "industryCode": "7axYKdEizHB19jjdVDkk_", - "industryName": "甜品饮品类", - "industryNameEn": "", - "industryNameJa": "", - "industryNameOl": "", - "industryFatherCode": "xJ9TDqzwZeOxh3XKuF4CY", - "industryFatherName": "餐饮", - "industryFatherNameEn": "", - "industryFatherNameJa": "", - "industryFatherNameOl": "", - "shopCode": "PzJtTKXrlcKjsR6a60NXk", - "shopName": "霸王茶姬", - "shopNameEn": "", - "shopNameJa": "", - "shopNameOl": "", - "alias": "", - "logoCode": "MQhcm4As4nAbDjug2eakZ", - "logoUrl": "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/MQhcm4As4nAbDjug2eakZ.png", - "industryUrl": "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/I3-tfHkflBawkBiEdnBFE.png", - "building": "苏州金地广场", - "floor": "B1", - "houseNumber": "B1-34", - "intro": "霸王茶姬来自世界茶叶故乡云南的新中式国风茶饮品牌,原叶鲜奶茶,喝出真茶味,健康好茶,喝霸王茶姬", - "introEn": "", - "introJa": "", - "introOl": "", - "regionCode": "", - "businessHours": "10:00-22:00", - "contact": "", - "gender": 3, - "minAge": 1, - "maxAge": 100, - "thirdKouCode": "", - "thirdMeiCode": "", - "thirdZhiCode": "", - "isNewShop": 0, - "xaxis": "[-106, 30, 554]", - "yaxis": "42", - "doorMaterialList": [], - "foodMaterialList": [], - "spelling": "ba wang cha ji ", - "initials": "BWCJ", - "borderColor": "", - "formatColor": "#F46F85", - "buildingCode": "gDQKBSW9Poutfp1gDkOeb", - "buildingOrder": 0, - "floorCode": "bXx1U0xdFI0d6B0NueY8r", - "floorOrder": 2, - "star": 0, - "tagList": [] - }, - { - "isSpecial": 0, - "isPass": 1, - "industryCode": "V_BVkmNqO0IdYZsBnU_0R", - "industryName": "自助/烧烤", - "industryNameEn": "", - "industryNameJa": "", - "industryNameOl": "", - "industryFatherCode": "xJ9TDqzwZeOxh3XKuF4CY", - "industryFatherName": "餐饮", - "industryFatherNameEn": "", - "industryFatherNameJa": "", - "industryFatherNameOl": "", - "shopCode": "la-k9y5UAXns_iHoRpFvH", - "shopName": "九月海", - "shopNameEn": "", - "shopNameJa": "", - "shopNameOl": "", - "alias": "", - "logoCode": "jzP2Ps3HRgo72QIHr9T3D", - "logoUrl": "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/jzP2Ps3HRgo72QIHr9T3D.png", - "industryUrl": "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/I3-tfHkflBawkBiEdnBFE.png", - "building": "苏州金地广场", - "floor": "L3", - "houseNumber": "L3-25/26b", - "intro": "九月海海鲜自助餐厅团队不但囊括了长期霸榜美团、大众点评等平台海鲜人气榜NO.ONE、堪称海鲜连锁的巨匠大咖,还邀请了国家级特级厨师,前国家乒乓球训练基地总厨师长,国内数一数二的美食制造者加入。九月海海鲜自助餐厅以“烹健康食材、享大海致味”为初心而成立的自助海鲜品牌,品牌的目的就是实现海鲜平民化。\n九月海海鲜自助餐厅会让消费者亲眼看见生猛异常、活蹦乱跳的海鲜自由烹饪,只有以“高端的食材、简单的烹饪”保留海鲜最原始的鲜味,才能满足都市人日益挑剔的味蕾。以“生猛鲜活、原始美味”著称的“九月海”,获得了消费者一致好评。\n九月海海鲜自助餐厅励志于为普罗大众带去健康的饮食理念、海味十足的味蕾定格,追求极致“海之味”的坚定信念,从东海之滨全球首店展开新的启程、势必创建全国连锁餐饮品牌矩阵。", - "introEn": "", - "introJa": "", - "introOl": "", - "regionCode": "", - "businessHours": "10:00-22:00", - "contact": "17605931045", - "gender": 3, - "minAge": 1, - "maxAge": 100, - "thirdKouCode": "", - "thirdMeiCode": "", - "thirdZhiCode": "", - "isNewShop": 0, - "xaxis": "[911, 40, -949.5]", - "yaxis": "3", - "doorMaterialList": [], - "foodMaterialList": [], - "spelling": "jiu yue hai ", - "initials": "JYH", - "borderColor": "", - "formatColor": "#F46F85", - "buildingCode": "gDQKBSW9Poutfp1gDkOeb", - "buildingOrder": 0, - "floorCode": "Ek_MaiuKLPjakB1uB0uQV", - "floorOrder": 6, - "star": 0, - "tagList": [] - } - ] - }, - { - "name": "零售", - "nameEn": "", - "shopList": [ - { - "isSpecial": 0, - "isPass": 1, - "industryCode": "", - "industryFatherCode": "X8f1sfGl0gfa_QwVcMy86", - "industryFatherName": "零售", - "industryFatherNameEn": "", - "industryFatherNameJa": "", - "industryFatherNameOl": "", - "shopCode": "3zZ9xUruHS1BeutRzuuFZ", - "shopName": "漫库", - "shopNameEn": "", - "shopNameJa": "", - "shopNameOl": "", - "alias": "", - "logoCode": "nYoCUJlnBAt3NTeSoXAFY", - "logoUrl": "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/nYoCUJlnBAt3NTeSoXAFY.png", - "industryUrl": "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/ML7yzGtexT_-LAh-bmnqr.png", - "building": "苏州金地广场", - "floor": "B1", - "houseNumber": "B1-1b", - "intro": "漫库是国内全新的二次元品牌,成立于2019年12月,致力于为用户提供优质的二次元图书和正版授权的IP衍生品,拥有优秀的商务团队、产品设计团队和营销团队。针对全国二次元年轻用户,通过网络宣传,贩售与漫展,商场快闪店,实体店相结合的经营模式,打通线下与线上渠道,带给用户沉浸式的二次元体验。致力于为用户提供优质的正版授权IP衍生品(即谷子),拥有优秀的商务团队、产品设计团队和营销团队。针对全国00后的二次元年轻用户,MANCOOL漫库旗下自媒体矩阵覆盖微博、微信公众号、抖音、小红书、loft等近2000万的平台流量。短视频、活动策划的形式玩转营销;并在微信,抖音,QQ群聚集粉丝,搭建500万+的私域流量池,对用户进行深度营销。", - "introEn": "", - "introJa": "", - "introOl": "", - "regionCode": "", - "businessHours": "10:00-22:00", - "contact": "", - "gender": 3, - "minAge": 1, - "maxAge": 100, - "thirdKouCode": "", - "thirdMeiCode": "", - "thirdZhiCode": "", - "isNewShop": 0, - "xaxis": "[1140, 30, -858.5]", - "yaxis": "14", - "doorMaterialList": [], - "foodMaterialList": [], - "spelling": "man ku ", - "initials": "MK", - "borderColor": "", - "formatColor": "", - "buildingCode": "gDQKBSW9Poutfp1gDkOeb", - "buildingOrder": 0, - "floorCode": "bXx1U0xdFI0d6B0NueY8r", - "floorOrder": 2, - "star": 0, - "tagList": [] - } - ] - }, - { - "name": "生活配套", - "nameEn": "", - "shopList": [ - { - "isSpecial": 0, - "isPass": 1, - "industryCode": "", - "industryFatherCode": "IgA6IPVu8efV_Nj6BglZO", - "industryFatherName": "生活配套", - "industryFatherNameEn": "", - "industryFatherNameJa": "", - "industryFatherNameOl": "", - "shopCode": "Zm0a2Gp2y2zG-tyu9R6ym", - "shopName": "佬克拉", - "shopNameEn": "", - "shopNameJa": "", - "shopNameOl": "", - "alias": "", - "logoCode": "qentCamtghXztYY2UxcSK", - "logoUrl": "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/qentCamtghXztYY2UxcSK.png", - "industryUrl": "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/HrR0FjrdJkKLFATk6L43J.png", - "building": "苏州金地广场", - "floor": "L3", - "houseNumber": "L3-44", - "intro": "Brand Introduction\n佬克拉男士理容馆专注男士理发是一家集纯正男士理发 文身\n潮牌 美酒音乐 派对 为一体的专属男人的社交场所 提供轻松\n愉悦的理发氛围 考究的工具 细节的处理 传递出我们的工作\n态度 除了理发本身更注重跟客户的关系 诚实 健康 快乐 大胆 \n全心全意提供一个专属男士的生活俱乐部\n老克拉,或称“老克勒”,指的是老上海那些阅历较深,收入较\n高,消费前卫,在文化休闲方式上独领潮流的都市男性族群。\n这些人大多出身于名门世家,受过当时的“洋 化”教育,目睹或\n亲历了十里洋场上灯红酒绿、光怪陆离的生活方式。“老”并不\n是指年纪老,而是经验丰富、久经历练的意思。", - "introEn": "", - "introJa": "", - "introOl": "", - "regionCode": "", - "businessHours": "10:00-22:00", - "contact": "13149439287", - "gender": 3, - "minAge": 1, - "maxAge": 100, - "thirdKouCode": "", - "thirdMeiCode": "", - "thirdZhiCode": "", - "isNewShop": 0, - "xaxis": "[-1076, 40, -598.5]", - "yaxis": "51", - "doorMaterialList": [ - "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/0KfCv_37Jej5W4giUTHEH.png", - "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/K5gyV1Je46hInTQrLcTew.png" - ], - "foodMaterialList": [], - "spelling": "lao ke la ", - "initials": "LKL", - "borderColor": "", - "formatColor": "", - "buildingCode": "gDQKBSW9Poutfp1gDkOeb", - "buildingOrder": 0, - "floorCode": "Ek_MaiuKLPjakB1uB0uQV", - "floorOrder": 6, - "star": 0, - "tagList": [] - } - ] - }, - { - "name": "休闲娱乐", - "nameEn": "", - "shopList": [ - { - "isSpecial": 0, - "isPass": 1, - "industryCode": "", - "industryFatherCode": "iAuVTeLLzJZ6aXlgK1x7I", - "industryFatherName": "休闲娱乐", - "industryFatherNameEn": "", - "industryFatherNameJa": "", - "industryFatherNameOl": "", - "shopCode": "lqF15INUravcfL7Avk-Pd", - "shopName": "跳动方块", - "shopNameEn": "", - "shopNameJa": "", - "shopNameOl": "", - "alias": "", - "logoCode": "nRwugprLg6T2MHtPouHkY", - "logoUrl": "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/nRwugprLg6T2MHtPouHkY.png", - "building": "苏州金地广场", - "floor": "L3", - "houseNumber": "L3-29", - "intro": "沉浸式体感运动项目游戏 ,室内全新游戏模式:国内兴起的超火爆的线下娱乐游戏。跳动方块游戏是通过不同的灯光变化规则设置,实现双人/多人组队闯关或对抗的游戏模式,在趣味性/互动性上有非常多的玩法,还有一定的运动锻炼作用,是一种全新的年轻人线下聚会游戏体验方式。\n “跳一下瘦20斤” 新型社交运动方式,打造不一样的运动新体验。全都需要团队配合以及肢体触发才能通关,过程中非常考验反应力、浸式体感运动,协调力和协作性,是绿色、健度、运动的体感游\n 随着对技术、产品理解的深入,跳动方块的物联网芯片、游戏设计、商业模型等方面更加成熟。这是一款以亲子运动、年轻势力为主流消费群体,不分年龄、不分城市的新式科技感运动游戏设备。\n 跳动方块始终坚持以活力、潮流、有趣为核心,打造科技运动新风向标,将意想意创公司十年以来的技术基础融会贯通,打造新运动,新生活。革新室内娱乐方式,让体育运动更有趣!", - "introEn": "", - "introJa": "", - "introOl": "", - "regionCode": "", - "businessHours": "10:00-22:00", - "contact": "", - "gender": 3, - "minAge": 1, - "maxAge": 100, - "thirdKouCode": "", - "thirdMeiCode": "", - "thirdZhiCode": "", - "isNewShop": 0, - "xaxis": "[160, 40, -502]", - "yaxis": "40", - "doorMaterialList": [], - "foodMaterialList": [], - "spelling": "tiao dong fang kuai ", - "initials": "TDFK", - "borderColor": "", - "formatColor": "", - "buildingCode": "gDQKBSW9Poutfp1gDkOeb", - "buildingOrder": 0, - "floorCode": "Ek_MaiuKLPjakB1uB0uQV", - "floorOrder": 6, - "star": 0, - "tagList": [] - } - ] - } - ] - } -} \ No newline at end of file diff --git a/public/static/offline/JSON/getConfig.json b/public/static/offline/JSON/getConfig.json index c29dbf8..d9f9fc5 100644 --- a/public/static/offline/JSON/getConfig.json +++ b/public/static/offline/JSON/getConfig.json @@ -7,10 +7,10 @@ "entryCode": "QD3QZd7_rr0jkDYR2qtc7", "title": "配置文件", "content": { - "interfaceUrl": "https://project-iot.test.1000my.com/api", + "interfaceUrl": "https://iot.1000my.com/api", "mobileNav": "https://qianmu-iot.1000my.com/SuZhou_JinDi_Square-szjds_react-test/index.html#/", "handWriteUrl": "http://saas.1000my.com:8014/words" } } ] -} \ No newline at end of file +} diff --git a/public/static/offline/JSON/getCustomerQr.json b/public/static/offline/JSON/getCustomerQr.json new file mode 100644 index 0000000..ae3caeb --- /dev/null +++ b/public/static/offline/JSON/getCustomerQr.json @@ -0,0 +1,16 @@ +{ + "code": 200, + "msg": "操作成功", + "data": [ + { + "id": 1476, + "entryCode": "ogMDNkoxrQrFIXWP06T6y", + "title": "顾客心声二维码", + "content": { + "qrUrl": [ + "/iotFile/project-bg9aktmmvxxfvi6vya0dua/20240715/ZR8QBUPdCyn2qZIszWaT2.jpg" + ] + } + } + ] +} diff --git a/public/static/offline/JSON/getDevCoordinateByIP.json b/public/static/offline/JSON/getDevCoordinateByIP.json index 2ae12ac..df8aa05 100644 --- a/public/static/offline/JSON/getDevCoordinateByIP.json +++ b/public/static/offline/JSON/getDevCoordinateByIP.json @@ -17,7 +17,7 @@ "mac": "30B49EC47D5E", "location": "51", "angle": "0", - "projectCode": "project-o99mwit8jby-qb_xrffk2a", + "projectCode": "project-ao3xebi-o6mwtgswdr-jfa", "regionCode": "", "lensCoordinate": "", "orientationCoordinate": "", diff --git a/public/static/offline/JSON/getFacilityList.json b/public/static/offline/JSON/getFacilityList.json deleted file mode 100644 index 80f0051..0000000 --- a/public/static/offline/JSON/getFacilityList.json +++ /dev/null @@ -1 +0,0 @@ -{"code":200,"msg":"操作成功","data":[{"name":"直梯","nameEn":"","code":"m9QXJ28_rvIefOg-5m3nt","customFacilityName":"","customFacilityNameEn":"","customFacilityNameOl":"","abbreviation":"dt","filePath":"/convert/Files/86b0e9ab-57bd-40b9-97c0-f1b6f1d0efd4/dt.png"},{"name":"扶梯","nameEn":"","code":"m9Keq4Kgi_odFBsbb5jNl","customFacilityName":"","customFacilityNameEn":"","customFacilityNameOl":"","abbreviation":"ft"},{"name":"出入门","nameEn":"","code":"mFkemtF_Znzmj05w1f6OX","customFacilityName":"","customFacilityNameEn":"","customFacilityNameOl":"","abbreviation":"door","filePath":"/convert/Files/d4cef981-bd89-42ec-a80c-558d5ecd89fd/door.png"},{"name":"洗手间","nameEn":"","code":"NHpomU2-zlH8en26D1Ipc","customFacilityName":"","customFacilityNameEn":"","customFacilityNameOl":"","abbreviation":"xsj","filePath":"/convert/Files/8c564bba-04d5-4768-9cfa-a12a5d4a2f99/xsj.png"},{"name":"无障碍卫生间","nameEn":"","code":"LaWdkKUiDdl30Ie30di6j","customFacilityName":"","customFacilityNameEn":"","customFacilityNameOl":"","abbreviation":"cjr","filePath":"/convert/Files/abc22b61-3d10-42c2-a5c1-182c21da9147/cjr.png"},{"name":"母婴室","nameEn":"","code":"gOqgg8VRfgdce0yl8kuel","customFacilityName":"","customFacilityNameEn":"","customFacilityNameOl":"","abbreviation":"mys"},{"name":"服务台","nameEn":"","code":"6Z30FS8YaVM0lqIRILox_","customFacilityName":"","customFacilityNameEn":"","customFacilityNameOl":"","abbreviation":"fwt","filePath":"/convert/Files/293e3458-9588-46be-954b-f081b669dc52/fwt.png"}]} \ No newline at end of file diff --git a/public/static/offline/JSON/getMallActivities.json b/public/static/offline/JSON/getMallActivities.json deleted file mode 100644 index 94b7bd2..0000000 --- a/public/static/offline/JSON/getMallActivities.json +++ /dev/null @@ -1 +0,0 @@ -{"code":200,"msg":"操作成功","data":[{"id":870,"entryCode":"-EDV7RynnHLCjvGDElQEa","title":"商场活动一","content":{"title":"绑定点位L1-25的商场活动","titleEn":"In just two or three years","content":"要消费城市的160余家加盟店以及专柜年销售额达到2.5亿在短短的两、三年间,迅速于中国60多个一、二类主要消费城市的160余家加盟店以及专柜年销售额达到2.5亿在短短的两、三年间,迅速于中欧时力(香港)集团全权代理意大利品牌欧时力(OCHIRLY),并组建欧时力(中国)有限公司,全权负责OCHIRLY在大中华区的品牌经营。欧时力自1999年进入中国市场以来,欧时力以前所未有的速度在中国市场发展壮大。在短短的两、三年间,迅速于中国60多个一、二类主要消费城市的160余家加盟店以及专柜年销售额达到2.5亿。销售业绩评效均名列前茅,整体业绩不断上扬!在女装市场享有一定的知名度和美誉度。欧时力(香港)集团全权代理意大利品牌欧时力(OCHIRLY),并组建欧时力(中国)有限公司,全权负责OCHIRLY在大中华区的品牌经营。欧时力自1999年进入中国市场以来,欧时力以前所未有的速度在中国市场发展壮大。在短短的两、三年间,迅速于中国60多个一、二类主要消费城市的160余家加盟店以及专柜年销售额达到2.5亿在短短的两、三年间,迅速于中国60多个一、二类主要消费城市的160余家加盟店以及专柜年销售额达到2.5亿在短短的两、三年间。","contentEn":"In just two or three years, it quickly reached 250 million yuan in annual sales of over 160 franchise stores and counters in more than 60 primary and secondary consumer cities in China. In just two or three years, it quickly reached 250 million yuan in annual sales of over 160 franchise stores and counters in more than 60 primary and secondary consumer cities in China. In just two or three years, it quickly became the sole agent of the Italian brand OCHIRLY for the China Europe Shili (Hong Kong) Group,","fileUrl":["/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/tFPPMQwtEetcBeaU6uFND.png"],"startDate":"2023-11-22","endDate":"2024-12-07","address":"欧时力(香港)集","addressEn":"Oushili (Hong Kong) Group","shopCode":"","point":"0_4_25"}},{"id":871,"entryCode":"Zn-9CS9CgMcbMwlO2kB5F","title":"商场活动二","content":{"title":"绑定点位的商场活动","titleEn":"hili (Hong Kong) Group fully represents the Italian ","content":"RLY),并组建欧时力(中国)有限公司,全权负责OCHIRLY在大中华区的品牌经营。欧时力自1999年进入中国市场以来,欧时力以前所未有的速度在中国市场发展壮大。在短短的两、三年间,迅速于中国60多个一、二类主要消费城市的160余家加盟店以及专柜年销售额达到2.5亿在短短的两、三年间,迅速于中国60多个一、二类主要消费城市的160余家加盟店以及专柜年销售额达到2.5亿在短短的两、三年间,迅速于中欧时力(香港)集团全权代理意大利品牌欧时力(OCHIRLY),并组建欧时力(中国)有限公司,全权负责OCHIRLY在大中华区的品牌经营。欧时力自1999年进入中国","contentEn":"In just two or three years, the annual sales of over 160 franchise stores and counters in over 60 major consumer cities in China reached 250 million yuan.","fileUrl":["/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/qbkPtEM1lVateAdMFuCEO.png"],"startDate":"2023-11-22","endDate":"2024-11-30","address":"全权负责OCHIRLY在大中华区的品牌经营","addressEn":" Co., Ltd., fully responsible for OCHIRLY's brand management in Greater China","shopCode":"K2cg1Om-AI2A6w35N07Yd","point":""}},{"id":872,"entryCode":"bjLUsWX64BJQVD6O5WJf2","title":"商场活动三","content":{"title":"绑定店铺的商场活动","titleEn":"asdasdgaef ","content":"自1999年进入中国市场以来,欧时力以前所未有的速度在中国市场发展壮大。在短短的两、三年间,迅速于中国60多个一、二类主要消费城市的160余家加盟店以及专柜年销售额达到2.5亿。销售业绩评效均名列前茅,整体业绩不断上扬!在女装市场享有一定的知名度和美誉度。欧时力(香港)集团全权代理意大利品牌欧时力(OCHIRLY),并组建欧时力(中国)有限公司,全权负责OCHIRLY在大中华区的品牌经营。欧","contentEn":"uan in annual sales of over 160 franchise stores and counters in more than 60 primary and secondary consumer cities in China. In just two or three years, it quickly reached 250 million yuan in annual sales of over 160 franchise stores and counters in more than 60 primary and secondary consumer cities in China. In just two or three years, it quickly became the sole agent of the Italian brand OCHIRLY for the China Europe Shili (Hong Kong) Group, And establish Oushili (China) Co., Ltd., fully responsible for OCHIRLY's brand management in Greater China. Since Oushili entered the Chinese market in 1999, Oushili has grown and grown at an unprecedented speed in the Chinese market. In just two or three years, the annual sales of over 160 franchise stores and counters in over 60 major consumer cities in China reached 250 million yuan. The sales performance evaluation is among the top, and the overall performance is constantly improving! Enjoy a certain level of popularity and reputation in the women's clothing market. Oushili (Hong Kong) Group fully represents the Italian brand OCHIRLY and establishes Oushili (China) C","fileUrl":["/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/-iHrrg0zCe5ZJL5Za84da.png"],"startDate":"2023-11-22","endDate":"2024-11-30","address":"宿松县\n趾凤乡","addressEn":"sdvsdvdsvdv","shopCode":"","point":""}}]} \ No newline at end of file diff --git a/public/static/offline/JSON/getMallIntroduce.json b/public/static/offline/JSON/getMallIntroduce.json deleted file mode 100644 index 270e3fb..0000000 --- a/public/static/offline/JSON/getMallIntroduce.json +++ /dev/null @@ -1 +0,0 @@ -{"code":200,"msg":"操作成功","data":[{"id":863,"entryCode":"3GfQMQiRwKu3fsJzRK66K","title":"商场介绍","content":{"title":"商场介绍","titleEn":"Shopping mall introduction","content":"星巴克会员是星巴克公司推出的一个会员计划,旨在为喜欢在星巴克消费的顾客提供更多的优惠和特别服务。星巴克会员计划是免费的,任何人都可以通过星巴克官方网站或者移动应用程序加入。\n通过成为星巴克会员,您可以享受以下优惠:\n星巴克星礼卡:星巴克会员可以通过星巴克移动应用程序购买和管理星巴克星礼卡,同时也可以获得更多的星礼卡奖励。\n积分奖励:星巴克会员可以通过消费获得积分,并且可以将积分兑换成免费的咖啡和食品。\n免费的生日饮料:在会员生日当天,星巴克会员可以获得一杯免费的咖啡或茶饮。\n优先订购新品:星巴克会员可以提前订购新品,并且可以获得更多的新品信息和特别优惠。\n其他会员专享优惠:星巴克会员可以获得更多的会员专享优惠,例如优惠券和特别活动等。\n总之,星巴克会员计划是一个非常实用和有用的计划,可以为星巴克的忠实消费者提供更多的优惠和特别服务。如果你经常在星巴克消费,那么加入星巴克会员计划是一个非常不错的选择。星巴克会员是星巴克公司推出的一个会员计划,旨在为喜欢在星巴克消费的顾客提供更多的优惠和特别服务。星巴克会员计划是免费的,任何人都可以通过星巴克官方网站或者移动应用程序加入。\n通过成为星巴克会员,您可以享受以下优惠:\n星巴克星礼卡:星巴克会员可以通过星巴克移动应用程序购买和管理星巴克星礼卡,同时也可以获得更多的星礼卡奖励。\n积分奖励:星巴克会员可以通过消费获得积分,并且可以将积分兑换成免费的咖啡和食品。\n免费的生日饮料:在会员生日当天,星巴克会员可以获得一杯免费的咖啡或茶饮。\n优先订购新品:星巴克会员可以提前订购新品,并且可以获得更多的新品信息和特别优惠。\n其他会员专享优惠:星巴克会员可以获得更多的会员专享优惠,例如优惠券和特别活动等。\n总之,星巴克会员计划是一个非常实用和有用的计划,可以为星巴克的忠实消费者提供更多的优惠和特别服务。如果你经常在星巴克消费,那么加入星巴克会员计划是一个非常不错的选择。","contentEn":"Starbucks Membership is a membership program launched by Starbucks, aimed at providing more discounts and special services to customers who enjoy spending at Starbucks. The Starbucks membership program is free and anyone can join through the Starbucks official website or mobile application.\n\nBy becoming a Starbucks member, you can enjoy the following benefits:\n\nStarbucks Star Gift Card: Starbucks members can purchase and manage Starbucks Star Gift Cards through the Starbucks mobile application, and also receive more Star Gift Card rewards.\n\nReward points: Starbucks members can earn points through consumption and exchange points for free coffee and food.\n\nFree birthday drinks: On a member's birthday, Starbucks members can receive a free cup of coffee or tea.\n\nPriority ordering of new products: Starbucks members can order new products in advance and receive more new product information and special discounts.\n\nOther member exclusive discounts: Starbucks members can receive more member exclusive discounts, such as coupons and special events.\n\nIn short, the Starbucks membership program is a very practical and useful program that can provide more discounts and special services to loyal Starbucks consumers. If you frequently consume at Starbucks, joining the Starbucks membership program is a great choice. Starbucks Membership is a membership program launched by Starbucks, aimed at providing more discounts and special services to customers who enjoy spending at Starbucks. The Starbucks membership program is free and anyone can join through the Starbucks official website or mobile application.\n\nBy becoming a Starbucks member, you can enjoy the following benefits:\n\nStarbucks Star Gift Card: Starbucks members can purchase and manage Starbucks Star Gift Cards through the Starbucks mobile application, and also receive more Star Gift Card rewards.\n\nReward points: Starbucks members can earn points through consumption and exchange points for free coffee and food.\n\nFree birthday drinks: On a member's birthday, Starbucks members can receive a free cup of coffee or tea.\n\nPriority ordering of new products: Starbucks members can order new products in advance and receive more new product information and special discounts.\n\nOther member exclusive discounts: Starbucks members can receive more member exclusive discounts, such as coupons and special events.\n\nIn short, the Starbucks membership program is a very practical and useful program that can provide more discounts and special services to loyal Starbucks consumers. If you frequently consume at Starbucks, joining the Starbucks membership program is a great choice.","fileUrl":["/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/VJbsZjrgosYObOUf2N_I8.png","/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/3V8BP8srpC6NU4NR3ZrRL.png","/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/6BktHfpGKb573yGJl38Hu.png","/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/rUqUUn9PuSahflt1W_fLy.png","/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/BPvpMWAbVyE3vVS1PVDf7.png","/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/73VK7_AzDJEBce3OCgP6l.jpg","/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/j4PG1vrmD_iqHGHOsOokU.png"]}}]} \ No newline at end of file diff --git a/public/static/offline/JSON/getMap.json b/public/static/offline/JSON/getMap.json deleted file mode 100644 index 84c8a87..0000000 --- a/public/static/offline/JSON/getMap.json +++ /dev/null @@ -1 +0,0 @@ -{"code":200,"msg":"操作成功","data":{"mapData":"[{\"name\":\"苏州金地广场\",\"scale\":18,\"collision\":true,\"playSpeed\":6,\"facSize\":20,\"aRadius\":0,\"navColor\":\"#EE6A50\",\"boxShop\":\"\",\"shopStyle\":\"shopName\",\"modelIcon\":true,\"iconSize\":64,\"d_col\":\"#ffffff\",\"d_int\":0.1,\"s_col\":\"#fffff0\",\"g_col\":\"#ffffff\",\"a_int\":0.5,\"c_site\":\"\",\"m_site\":\"\",\"m_zoom\":1.2,\"m_scale\":0.08,\"mapW\":5000,\"mapH\":5000,\"buildArr\":[{\"name\":\"B3\",\"mapData\":{\"groupArea\":[],\"floorArea\":null,\"buildArea\":[],\"hollowArea\":[],\"shopArea\":[],\"path\":null,\"decos\":[],\"icons\":[],\"stairs\":[],\"parkArea\":[],\"wallArea\":[],\"svgArea\":[],\"models\":[]},\"code\":\"eAx9XqfXkPtK3RgXXdpzL\"},{\"name\":\"B2\",\"mapData\":{\"groupArea\":[],\"floorArea\":{\"id\":\"3eba391a0e8f\",\"name\":\"floor\",\"hasLines\":[{\"startPoint\":{\"x\":-1397,\"y\":-1235},\"endPoint\":{\"x\":-600,\"y\":-1235},\"name\":9923750,\"isStrLine\":true},{\"startPoint\":{\"x\":-600,\"y\":-1235},\"endPoint\":{\"x\":1298,\"y\":-10},\"name\":9923751,\"isStrLine\":false,\"ctrlPoint1\":{\"x\":355,\"y\":-1235},\"ctrlPoint2\":{\"x\":1065,\"y\":-460}},{\"startPoint\":{\"x\":1298,\"y\":-10},\"endPoint\":{\"x\":1310,\"y\":95},\"name\":9923752,\"isStrLine\":true},{\"startPoint\":{\"x\":1310,\"y\":95},\"endPoint\":{\"x\":1385,\"y\":228},\"name\":9923753,\"isStrLine\":true},{\"startPoint\":{\"x\":1385,\"y\":228},\"endPoint\":{\"x\":1198,\"y\":543},\"name\":9923754,\"isStrLine\":false,\"ctrlPoint1\":{\"x\":1430,\"y\":393},\"ctrlPoint2\":{\"x\":1350,\"y\":525}},{\"startPoint\":{\"x\":1198,\"y\":543},\"endPoint\":{\"x\":1198,\"y\":943},\"name\":9923755,\"isStrLine\":true},{\"startPoint\":{\"x\":1198,\"y\":943},\"endPoint\":{\"x\":203,\"y\":943},\"name\":9923756,\"isStrLine\":true},{\"startPoint\":{\"x\":203,\"y\":943},\"endPoint\":{\"x\":-410,\"y\":1235},\"name\":9923757,\"isStrLine\":true},{\"startPoint\":{\"x\":-410,\"y\":1235},\"endPoint\":{\"x\":-1180,\"y\":1235},\"name\":9923758,\"isStrLine\":true},{\"startPoint\":{\"x\":-1180,\"y\":1235},\"endPoint\":{\"x\":-1397,\"y\":1123},\"name\":9923759,\"isStrLine\":true},{\"startPoint\":{\"x\":-1397,\"y\":1123},\"endPoint\":{\"x\":-1397,\"y\":-1235},\"name\":9923760,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":5,\"alphaModle\":90,\"site\":0,\"xaxis\":-1096,\"yaxis\":-1112.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":17013,\"map\":\"\"},\"buildArea\":[],\"hollowArea\":[],\"shopArea\":[],\"path\":{\"nodes\":[{\"id\":0,\"x\":-1250,\"y\":-26,\"Proy\":\"graph\",\"list\":[{\"cost\":200,\"id\":14}]},{\"id\":1,\"x\":965,\"y\":168,\"Proy\":\"graph\",\"list\":[{\"cost\":61,\"id\":85}]},{\"id\":2,\"x\":-949,\"y\":173,\"Proy\":\"graph\",\"list\":[{\"cost\":154,\"id\":35},{\"cost\":156,\"id\":42},{\"cost\":167,\"id\":65},{\"cost\":172,\"id\":66}]},{\"id\":3,\"x\":-956,\"y\":-1077,\"Proy\":\"graph\",\"list\":[{\"cost\":78,\"id\":28}]},{\"id\":4,\"x\":-954,\"y\":-736,\"Proy\":\"graph\",\"list\":[{\"cost\":93,\"id\":30},{\"cost\":115,\"id\":31},{\"cost\":112,\"id\":53}]},{\"id\":5,\"x\":262,\"y\":-737,\"Proy\":\"graph\",\"list\":[{\"cost\":110,\"id\":6},{\"cost\":160,\"id\":58},{\"cost\":112,\"id\":77}]},{\"id\":6,\"x\":263,\"y\":-847,\"Proy\":\"graph\",\"list\":[{\"cost\":110,\"id\":5}]},{\"id\":7,\"x\":262,\"y\":169,\"Proy\":\"graph\",\"list\":[{\"cost\":146,\"id\":73},{\"cost\":155,\"id\":82},{\"cost\":137,\"id\":83},{\"cost\":109,\"id\":91}]},{\"id\":8,\"x\":262,\"y\":860,\"Proy\":\"graph\",\"list\":[{\"cost\":96,\"id\":9},{\"cost\":281,\"id\":51},{\"cost\":122,\"id\":89}]},{\"id\":9,\"x\":358,\"y\":863,\"Proy\":\"graph\",\"list\":[{\"cost\":96,\"id\":8}]},{\"id\":10,\"x\":-402,\"y\":1188,\"Proy\":\"graph\",\"list\":[{\"cost\":202,\"id\":49},{\"cost\":115,\"id\":11}]},{\"id\":11,\"x\":-517,\"y\":1190,\"Proy\":\"graph\",\"list\":[{\"cost\":115,\"id\":10},{\"cost\":223,\"id\":48}]},{\"id\":12,\"x\":-517,\"y\":603,\"Proy\":\"graph\",\"list\":[{\"cost\":132,\"id\":17},{\"cost\":126,\"id\":46}]},{\"id\":13,\"x\":-1250,\"y\":620,\"Proy\":\"graph\",\"list\":[{\"cost\":118,\"id\":38},{\"cost\":104,\"id\":39}]},{\"id\":14,\"x\":-1251,\"y\":174,\"Proy\":\"graph\",\"list\":[{\"cost\":200,\"id\":0},{\"cost\":95,\"id\":36},{\"cost\":130,\"id\":66}]},{\"id\":15,\"x\":-946,\"y\":612,\"Proy\":\"graph\",\"list\":[{\"cost\":173,\"id\":16},{\"cost\":105,\"id\":40},{\"cost\":125,\"id\":41},{\"cost\":178,\"id\":45}]},{\"id\":16,\"x\":-947,\"y\":785,\"Proy\":\"graph\",\"list\":[{\"cost\":173,\"id\":15}]},{\"id\":17,\"x\":-649,\"y\":605,\"Proy\":\"graph\",\"list\":[{\"cost\":132,\"id\":12},{\"cost\":162,\"id\":44},{\"cost\":119,\"id\":45}]},{\"id\":18,\"x\":-653,\"y\":172,\"Proy\":\"graph\",\"list\":[{\"cost\":126,\"id\":43},{\"cost\":158,\"id\":52},{\"cost\":128,\"id\":64},{\"cost\":129,\"id\":65}]},{\"id\":19,\"x\":-655,\"y\":-177,\"Proy\":\"graph\",\"list\":[{\"cost\":191,\"id\":52}]},{\"id\":20,\"x\":-358,\"y\":171,\"Proy\":\"graph\",\"list\":[{\"cost\":187,\"id\":63},{\"cost\":167,\"id\":64},{\"cost\":133,\"id\":67}]},{\"id\":21,\"x\":-362,\"y\":-737,\"Proy\":\"graph\",\"list\":[{\"cost\":114,\"id\":56},{\"cost\":152,\"id\":57},{\"cost\":181,\"id\":59},{\"cost\":213,\"id\":93}]},{\"id\":22,\"x\":-49,\"y\":170,\"Proy\":\"graph\",\"list\":[{\"cost\":176,\"id\":67},{\"cost\":163,\"id\":68},{\"cost\":156,\"id\":82}]},{\"id\":23,\"x\":-50,\"y\":-737,\"Proy\":\"graph\",\"list\":[{\"cost\":160,\"id\":57},{\"cost\":152,\"id\":58},{\"cost\":139,\"id\":72}]},{\"id\":24,\"x\":569,\"y\":169,\"Proy\":\"graph\",\"list\":[{\"cost\":170,\"id\":81},{\"cost\":170,\"id\":83},{\"cost\":145,\"id\":84}]},{\"id\":25,\"x\":563,\"y\":-512,\"Proy\":\"graph\",\"list\":[{\"cost\":111,\"id\":78}]},{\"id\":26,\"x\":-607,\"y\":-737,\"Proy\":\"graph\",\"list\":[{\"cost\":105,\"id\":54},{\"cost\":199,\"id\":55},{\"cost\":131,\"id\":56}]},{\"id\":27,\"x\":-607,\"y\":-1075,\"Proy\":\"graph\",\"list\":[{\"cost\":139,\"id\":55}]},{\"id\":28,\"x\":-956,\"y\":-999,\"Proy\":\"graph\",\"list\":[{\"cost\":78,\"id\":3},{\"cost\":93,\"id\":29}]},{\"id\":29,\"x\":-955,\"y\":-906,\"Proy\":\"graph\",\"list\":[{\"cost\":93,\"id\":28},{\"cost\":77,\"id\":30}]},{\"id\":30,\"x\":-955,\"y\":-829,\"Proy\":\"graph\",\"list\":[{\"cost\":93,\"id\":4},{\"cost\":77,\"id\":29}]},{\"id\":31,\"x\":-954,\"y\":-621,\"Proy\":\"graph\",\"list\":[{\"cost\":115,\"id\":4},{\"cost\":140,\"id\":32}]},{\"id\":32,\"x\":-953,\"y\":-481,\"Proy\":\"graph\",\"list\":[{\"cost\":140,\"id\":31},{\"cost\":158,\"id\":33}]},{\"id\":33,\"x\":-952,\"y\":-323,\"Proy\":\"graph\",\"list\":[{\"cost\":158,\"id\":32},{\"cost\":157,\"id\":34}]},{\"id\":34,\"x\":-951,\"y\":-166,\"Proy\":\"graph\",\"list\":[{\"cost\":157,\"id\":33},{\"cost\":185,\"id\":35}]},{\"id\":35,\"x\":-950,\"y\":19,\"Proy\":\"graph\",\"list\":[{\"cost\":154,\"id\":2},{\"cost\":185,\"id\":34}]},{\"id\":36,\"x\":-1251,\"y\":269,\"Proy\":\"graph\",\"list\":[{\"cost\":95,\"id\":14},{\"cost\":115,\"id\":37}]},{\"id\":37,\"x\":-1251,\"y\":384,\"Proy\":\"graph\",\"list\":[{\"cost\":115,\"id\":36},{\"cost\":118,\"id\":38}]},{\"id\":38,\"x\":-1251,\"y\":502,\"Proy\":\"graph\",\"list\":[{\"cost\":118,\"id\":13},{\"cost\":118,\"id\":37}]},{\"id\":39,\"x\":-1146,\"y\":617,\"Proy\":\"graph\",\"list\":[{\"cost\":104,\"id\":13},{\"cost\":95,\"id\":40}]},{\"id\":40,\"x\":-1051,\"y\":615,\"Proy\":\"graph\",\"list\":[{\"cost\":105,\"id\":15},{\"cost\":95,\"id\":39}]},{\"id\":41,\"x\":-947,\"y\":487,\"Proy\":\"graph\",\"list\":[{\"cost\":125,\"id\":15},{\"cost\":158,\"id\":42}]},{\"id\":42,\"x\":-948,\"y\":329,\"Proy\":\"graph\",\"list\":[{\"cost\":156,\"id\":2},{\"cost\":158,\"id\":41}]},{\"id\":43,\"x\":-652,\"y\":298,\"Proy\":\"graph\",\"list\":[{\"cost\":126,\"id\":18},{\"cost\":145,\"id\":44}]},{\"id\":44,\"x\":-651,\"y\":443,\"Proy\":\"graph\",\"list\":[{\"cost\":162,\"id\":17},{\"cost\":145,\"id\":43}]},{\"id\":45,\"x\":-768,\"y\":608,\"Proy\":\"graph\",\"list\":[{\"cost\":178,\"id\":15},{\"cost\":119,\"id\":17}]},{\"id\":46,\"x\":-517,\"y\":729,\"Proy\":\"graph\",\"list\":[{\"cost\":126,\"id\":12},{\"cost\":108,\"id\":47}]},{\"id\":47,\"x\":-517,\"y\":837,\"Proy\":\"graph\",\"list\":[{\"cost\":108,\"id\":46},{\"cost\":130,\"id\":48}]},{\"id\":48,\"x\":-517,\"y\":967,\"Proy\":\"graph\",\"list\":[{\"cost\":223,\"id\":11},{\"cost\":130,\"id\":47}]},{\"id\":49,\"x\":-221,\"y\":1098,\"Proy\":\"graph\",\"list\":[{\"cost\":202,\"id\":10},{\"cost\":109,\"id\":50}]},{\"id\":50,\"x\":-123,\"y\":1050,\"Proy\":\"graph\",\"list\":[{\"cost\":109,\"id\":49},{\"cost\":147,\"id\":51}]},{\"id\":51,\"x\":9,\"y\":984,\"Proy\":\"graph\",\"list\":[{\"cost\":281,\"id\":8},{\"cost\":147,\"id\":50}]},{\"id\":52,\"x\":-654,\"y\":14,\"Proy\":\"graph\",\"list\":[{\"cost\":158,\"id\":18},{\"cost\":191,\"id\":19}]},{\"id\":53,\"x\":-842,\"y\":-737,\"Proy\":\"graph\",\"list\":[{\"cost\":112,\"id\":4},{\"cost\":130,\"id\":54}]},{\"id\":54,\"x\":-712,\"y\":-737,\"Proy\":\"graph\",\"list\":[{\"cost\":105,\"id\":26},{\"cost\":130,\"id\":53}]},{\"id\":55,\"x\":-607,\"y\":-936,\"Proy\":\"graph\",\"list\":[{\"cost\":199,\"id\":26},{\"cost\":139,\"id\":27}]},{\"id\":56,\"x\":-476,\"y\":-737,\"Proy\":\"graph\",\"list\":[{\"cost\":114,\"id\":21},{\"cost\":131,\"id\":26}]},{\"id\":57,\"x\":-210,\"y\":-737,\"Proy\":\"graph\",\"list\":[{\"cost\":152,\"id\":21},{\"cost\":160,\"id\":23}]},{\"id\":58,\"x\":102,\"y\":-737,\"Proy\":\"graph\",\"list\":[{\"cost\":160,\"id\":5},{\"cost\":152,\"id\":23}]},{\"id\":59,\"x\":-362,\"y\":-556,\"Proy\":\"graph\",\"list\":[{\"cost\":181,\"id\":21},{\"cost\":120,\"id\":60}]},{\"id\":60,\"x\":-361,\"y\":-436,\"Proy\":\"graph\",\"list\":[{\"cost\":120,\"id\":59},{\"cost\":120,\"id\":61}]},{\"id\":61,\"x\":-360,\"y\":-316,\"Proy\":\"graph\",\"list\":[{\"cost\":120,\"id\":60},{\"cost\":135,\"id\":62}]},{\"id\":62,\"x\":-360,\"y\":-181,\"Proy\":\"graph\",\"list\":[{\"cost\":135,\"id\":61},{\"cost\":165,\"id\":63}]},{\"id\":63,\"x\":-359,\"y\":-16,\"Proy\":\"graph\",\"list\":[{\"cost\":187,\"id\":20},{\"cost\":165,\"id\":62}]},{\"id\":64,\"x\":-525,\"y\":172,\"Proy\":\"graph\",\"list\":[{\"cost\":128,\"id\":18},{\"cost\":167,\"id\":20}]},{\"id\":65,\"x\":-782,\"y\":172,\"Proy\":\"graph\",\"list\":[{\"cost\":167,\"id\":2},{\"cost\":129,\"id\":18}]},{\"id\":66,\"x\":-1121,\"y\":173,\"Proy\":\"graph\",\"list\":[{\"cost\":172,\"id\":2},{\"cost\":130,\"id\":14}]},{\"id\":67,\"x\":-225,\"y\":171,\"Proy\":\"graph\",\"list\":[{\"cost\":133,\"id\":20},{\"cost\":176,\"id\":22}]},{\"id\":68,\"x\":-49,\"y\":7,\"Proy\":\"graph\",\"list\":[{\"cost\":163,\"id\":22},{\"cost\":158,\"id\":69}]},{\"id\":69,\"x\":-50,\"y\":-151,\"Proy\":\"graph\",\"list\":[{\"cost\":158,\"id\":68},{\"cost\":135,\"id\":70}]},{\"id\":70,\"x\":-50,\"y\":-286,\"Proy\":\"graph\",\"list\":[{\"cost\":135,\"id\":69},{\"cost\":145,\"id\":71}]},{\"id\":71,\"x\":-50,\"y\":-431,\"Proy\":\"graph\",\"list\":[{\"cost\":145,\"id\":70},{\"cost\":167,\"id\":72}]},{\"id\":72,\"x\":-50,\"y\":-598,\"Proy\":\"graph\",\"list\":[{\"cost\":139,\"id\":23},{\"cost\":167,\"id\":71}]},{\"id\":73,\"x\":262,\"y\":23,\"Proy\":\"graph\",\"list\":[{\"cost\":146,\"id\":7},{\"cost\":158,\"id\":74}]},{\"id\":74,\"x\":262,\"y\":-135,\"Proy\":\"graph\",\"list\":[{\"cost\":158,\"id\":73},{\"cost\":150,\"id\":75}]},{\"id\":75,\"x\":262,\"y\":-285,\"Proy\":\"graph\",\"list\":[{\"cost\":150,\"id\":74},{\"cost\":170,\"id\":76}]},{\"id\":76,\"x\":262,\"y\":-455,\"Proy\":\"graph\",\"list\":[{\"cost\":170,\"id\":75},{\"cost\":170,\"id\":77}]},{\"id\":77,\"x\":262,\"y\":-625,\"Proy\":\"graph\",\"list\":[{\"cost\":112,\"id\":5},{\"cost\":170,\"id\":76}]},{\"id\":78,\"x\":563,\"y\":-401,\"Proy\":\"graph\",\"list\":[{\"cost\":111,\"id\":25},{\"cost\":100,\"id\":79}]},{\"id\":79,\"x\":564,\"y\":-301,\"Proy\":\"graph\",\"list\":[{\"cost\":100,\"id\":78},{\"cost\":155,\"id\":80}]},{\"id\":80,\"x\":566,\"y\":-146,\"Proy\":\"graph\",\"list\":[{\"cost\":155,\"id\":79},{\"cost\":145,\"id\":81}]},{\"id\":81,\"x\":567,\"y\":-1,\"Proy\":\"graph\",\"list\":[{\"cost\":170,\"id\":24},{\"cost\":145,\"id\":80}]},{\"id\":82,\"x\":107,\"y\":170,\"Proy\":\"graph\",\"list\":[{\"cost\":155,\"id\":7},{\"cost\":156,\"id\":22}]},{\"id\":83,\"x\":399,\"y\":169,\"Proy\":\"graph\",\"list\":[{\"cost\":137,\"id\":7},{\"cost\":170,\"id\":24}]},{\"id\":84,\"x\":714,\"y\":168,\"Proy\":\"graph\",\"list\":[{\"cost\":145,\"id\":24},{\"cost\":190,\"id\":85}]},{\"id\":85,\"x\":903,\"y\":168,\"Proy\":\"graph\",\"list\":[{\"cost\":61,\"id\":1},{\"cost\":190,\"id\":84},{\"cost\":160,\"id\":87},{\"cost\":158,\"id\":94}]},{\"id\":86,\"x\":903,\"y\":538,\"Proy\":\"graph\",\"list\":[{\"cost\":78,\"id\":88}]},{\"id\":87,\"x\":903,\"y\":328,\"Proy\":\"graph\",\"list\":[{\"cost\":160,\"id\":85},{\"cost\":132,\"id\":88}]},{\"id\":88,\"x\":903,\"y\":460,\"Proy\":\"graph\",\"list\":[{\"cost\":78,\"id\":86},{\"cost\":132,\"id\":87}]},{\"id\":89,\"x\":262,\"y\":738,\"Proy\":\"graph\",\"list\":[{\"cost\":122,\"id\":8},{\"cost\":110,\"id\":90}]},{\"id\":90,\"x\":262,\"y\":628,\"Proy\":\"graph\",\"list\":[{\"cost\":110,\"id\":89},{\"cost\":128,\"id\":92}]},{\"id\":91,\"x\":262,\"y\":278,\"Proy\":\"graph\",\"list\":[{\"cost\":109,\"id\":7},{\"cost\":222,\"id\":92}]},{\"id\":92,\"x\":262,\"y\":500,\"Proy\":\"graph\",\"list\":[{\"cost\":128,\"id\":90},{\"cost\":222,\"id\":91}]},{\"id\":93,\"x\":-362,\"y\":-950,\"Proy\":\"graph\",\"list\":[{\"cost\":213,\"id\":21}]},{\"id\":94,\"x\":903,\"y\":10,\"Proy\":\"graph\",\"list\":[{\"cost\":158,\"id\":85},{\"cost\":227,\"id\":95}]},{\"id\":95,\"x\":1130,\"y\":8,\"Proy\":\"graph\",\"list\":[{\"cost\":227,\"id\":94}]}]},\"decos\":[{\"id\":\"4535a4e7d05a\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":-1393,\"y\":-1228},\"endPoint\":{\"x\":-570,\"y\":-1228},\"name\":9923761,\"isStrLine\":true},{\"startPoint\":{\"x\":-570,\"y\":-1228},\"endPoint\":{\"x\":1285,\"y\":-8},\"name\":9923762,\"isStrLine\":false,\"ctrlPoint1\":{\"x\":280,\"y\":-1230},\"ctrlPoint2\":{\"x\":1018,\"y\":-515}},{\"startPoint\":{\"x\":1285,\"y\":-8},\"endPoint\":{\"x\":1298,\"y\":100},\"name\":9923763,\"isStrLine\":true},{\"startPoint\":{\"x\":1298,\"y\":100},\"endPoint\":{\"x\":1187,\"y\":533},\"name\":9923764,\"isStrLine\":false,\"ctrlPoint1\":{\"x\":1433,\"y\":295},\"ctrlPoint2\":{\"x\":1418,\"y\":485}},{\"startPoint\":{\"x\":1187,\"y\":533},\"endPoint\":{\"x\":1188,\"y\":932},\"name\":9923765,\"isStrLine\":true},{\"startPoint\":{\"x\":1188,\"y\":932},\"endPoint\":{\"x\":1020,\"y\":932},\"name\":9923766,\"isStrLine\":true},{\"startPoint\":{\"x\":1020,\"y\":932},\"endPoint\":{\"x\":1018,\"y\":418},\"name\":9923767,\"isStrLine\":true},{\"startPoint\":{\"x\":1018,\"y\":418},\"endPoint\":{\"x\":960,\"y\":418},\"name\":9923768,\"isStrLine\":true},{\"startPoint\":{\"x\":960,\"y\":418},\"endPoint\":{\"x\":960,\"y\":208},\"name\":9923769,\"isStrLine\":true},{\"startPoint\":{\"x\":960,\"y\":208},\"endPoint\":{\"x\":1082,\"y\":208},\"name\":9923770,\"isStrLine\":true},{\"startPoint\":{\"x\":1082,\"y\":208},\"endPoint\":{\"x\":1082,\"y\":102},\"name\":9923771,\"isStrLine\":true},{\"startPoint\":{\"x\":1082,\"y\":102},\"endPoint\":{\"x\":596,\"y\":102},\"name\":9923772,\"isStrLine\":true},{\"startPoint\":{\"x\":596,\"y\":102},\"endPoint\":{\"x\":595,\"y\":-145},\"name\":9923773,\"isStrLine\":true},{\"startPoint\":{\"x\":595,\"y\":-145},\"endPoint\":{\"x\":620,\"y\":-158},\"name\":9923774,\"isStrLine\":true},{\"startPoint\":{\"x\":620,\"y\":-158},\"endPoint\":{\"x\":620,\"y\":-533},\"name\":9923775,\"isStrLine\":true},{\"startPoint\":{\"x\":620,\"y\":-533},\"endPoint\":{\"x\":520,\"y\":-533},\"name\":9923776,\"isStrLine\":true},{\"startPoint\":{\"x\":520,\"y\":-533},\"endPoint\":{\"x\":520,\"y\":102},\"name\":9923777,\"isStrLine\":true},{\"startPoint\":{\"x\":520,\"y\":102},\"endPoint\":{\"x\":300,\"y\":102},\"name\":9923778,\"isStrLine\":true},{\"startPoint\":{\"x\":300,\"y\":102},\"endPoint\":{\"x\":300,\"y\":-858},\"name\":9923779,\"isStrLine\":true},{\"startPoint\":{\"x\":300,\"y\":-858},\"endPoint\":{\"x\":207,\"y\":-858},\"name\":9923780,\"isStrLine\":true},{\"startPoint\":{\"x\":207,\"y\":-858},\"endPoint\":{\"x\":207,\"y\":-782},\"name\":9923781,\"isStrLine\":true},{\"startPoint\":{\"x\":207,\"y\":-782},\"endPoint\":{\"x\":-30,\"y\":-782},\"name\":9923782,\"isStrLine\":true},{\"startPoint\":{\"x\":-30,\"y\":-782},\"endPoint\":{\"x\":-50,\"y\":-765},\"name\":9923783,\"isStrLine\":true},{\"startPoint\":{\"x\":-50,\"y\":-765},\"endPoint\":{\"x\":-570,\"y\":-765},\"name\":9923784,\"isStrLine\":true},{\"startPoint\":{\"x\":-570,\"y\":-765},\"endPoint\":{\"x\":-570,\"y\":-1117},\"name\":9923785,\"isStrLine\":true},{\"startPoint\":{\"x\":-570,\"y\":-1117},\"endPoint\":{\"x\":-652,\"y\":-1117},\"name\":9923786,\"isStrLine\":true},{\"startPoint\":{\"x\":-652,\"y\":-1117},\"endPoint\":{\"x\":-652,\"y\":-782},\"name\":9923787,\"isStrLine\":true},{\"startPoint\":{\"x\":-652,\"y\":-782},\"endPoint\":{\"x\":-900,\"y\":-782},\"name\":9923788,\"isStrLine\":true},{\"startPoint\":{\"x\":-900,\"y\":-782},\"endPoint\":{\"x\":-900,\"y\":-1118},\"name\":9923789,\"isStrLine\":true},{\"startPoint\":{\"x\":-900,\"y\":-1118},\"endPoint\":{\"x\":-1022,\"y\":-1118},\"name\":9923790,\"isStrLine\":true},{\"startPoint\":{\"x\":-1022,\"y\":-1118},\"endPoint\":{\"x\":-1022,\"y\":-98},\"name\":9923791,\"isStrLine\":true},{\"startPoint\":{\"x\":-1022,\"y\":-98},\"endPoint\":{\"x\":-1009.2958801498128,\"y\":-81},\"name\":9923792,\"isStrLine\":true},{\"startPoint\":{\"x\":-1009.2958801498128,\"y\":-81},\"endPoint\":{\"x\":-1010,\"y\":107},\"name\":9923793,\"isStrLine\":true},{\"startPoint\":{\"x\":-1010,\"y\":107},\"endPoint\":{\"x\":-1393,\"y\":107},\"name\":9923794,\"isStrLine\":true},{\"startPoint\":{\"x\":-1393,\"y\":107},\"endPoint\":{\"x\":-1393,\"y\":-1228},\"name\":9923795,\"isStrLine\":true}],\"entColor\":\"#F0E7FF\",\"borderColor\":\"#F0E7FF\",\"toHeight\":4,\"alphaModle\":90,\"site\":0,\"xaxis\":-1199,\"yaxis\":-720,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":4,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":5503,\"map\":\"\"},{\"id\":\"24a93445a1d7\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":317,\"y\":232},\"endPoint\":{\"x\":848,\"y\":232},\"name\":9923796,\"isStrLine\":true},{\"startPoint\":{\"x\":848,\"y\":232},\"endPoint\":{\"x\":848,\"y\":637},\"name\":9923797,\"isStrLine\":true},{\"startPoint\":{\"x\":848,\"y\":637},\"endPoint\":{\"x\":908,\"y\":637},\"name\":9923798,\"isStrLine\":true},{\"startPoint\":{\"x\":908,\"y\":637},\"endPoint\":{\"x\":908,\"y\":812},\"name\":9923799,\"isStrLine\":true},{\"startPoint\":{\"x\":908,\"y\":812},\"endPoint\":{\"x\":848,\"y\":812},\"name\":9923800,\"isStrLine\":true},{\"startPoint\":{\"x\":848,\"y\":812},\"endPoint\":{\"x\":848,\"y\":932},\"name\":9923801,\"isStrLine\":true},{\"startPoint\":{\"x\":848,\"y\":932},\"endPoint\":{\"x\":382,\"y\":932},\"name\":9923802,\"isStrLine\":true},{\"startPoint\":{\"x\":382,\"y\":932},\"endPoint\":{\"x\":382,\"y\":813},\"name\":9923803,\"isStrLine\":true},{\"startPoint\":{\"x\":382,\"y\":813},\"endPoint\":{\"x\":317,\"y\":813},\"name\":9923804,\"isStrLine\":true},{\"startPoint\":{\"x\":317,\"y\":813},\"endPoint\":{\"x\":317,\"y\":232},\"name\":9923805,\"isStrLine\":true}],\"entColor\":\"#F0E7FF\",\"borderColor\":\"#F0E7FF\",\"toHeight\":4,\"alphaModle\":90,\"site\":0,\"xaxis\":597,\"yaxis\":584.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":86,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":1156,\"map\":\"\"},{\"id\":\"97ba3ea9307f\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":-488,\"y\":212},\"endPoint\":{\"x\":-413,\"y\":197},\"name\":9923806,\"isStrLine\":true},{\"startPoint\":{\"x\":-413,\"y\":197},\"endPoint\":{\"x\":-318,\"y\":197},\"name\":9923807,\"isStrLine\":true},{\"startPoint\":{\"x\":-318,\"y\":197},\"endPoint\":{\"x\":-268,\"y\":220},\"name\":9923808,\"isStrLine\":true},{\"startPoint\":{\"x\":-268,\"y\":220},\"endPoint\":{\"x\":207,\"y\":220},\"name\":9923809,\"isStrLine\":true},{\"startPoint\":{\"x\":207,\"y\":220},\"endPoint\":{\"x\":207,\"y\":818},\"name\":9923810,\"isStrLine\":true},{\"startPoint\":{\"x\":207,\"y\":818},\"endPoint\":{\"x\":40,\"y\":895},\"name\":9923811,\"isStrLine\":true},{\"startPoint\":{\"x\":40,\"y\":895},\"endPoint\":{\"x\":-22,\"y\":763},\"name\":9923812,\"isStrLine\":true},{\"startPoint\":{\"x\":-22,\"y\":763},\"endPoint\":{\"x\":-22,\"y\":537},\"name\":9923813,\"isStrLine\":true},{\"startPoint\":{\"x\":-22,\"y\":537},\"endPoint\":{\"x\":-488,\"y\":537},\"name\":9923814,\"isStrLine\":true},{\"startPoint\":{\"x\":-488,\"y\":537},\"endPoint\":{\"x\":-488,\"y\":212},\"name\":9923815,\"isStrLine\":true}],\"entColor\":\"#F0E7FF\",\"borderColor\":\"#F0E7FF\",\"toHeight\":4,\"alphaModle\":90,\"site\":0,\"xaxis\":-197.5,\"yaxis\":515,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":67,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":913,\"map\":\"\"},{\"id\":\"765050422b8d\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":1,\"y\":-692},\"endPoint\":{\"x\":217,\"y\":-692},\"name\":9923816,\"isStrLine\":true},{\"startPoint\":{\"x\":217,\"y\":-692},\"endPoint\":{\"x\":217,\"y\":100},\"name\":9923817,\"isStrLine\":true},{\"startPoint\":{\"x\":217,\"y\":100},\"endPoint\":{\"x\":1,\"y\":100},\"name\":9923818,\"isStrLine\":true},{\"startPoint\":{\"x\":1,\"y\":100},\"endPoint\":{\"x\":1,\"y\":-692},\"name\":9923819,\"isStrLine\":true}],\"entColor\":\"#F0E7FF\",\"borderColor\":\"#F0E7FF\",\"toHeight\":4,\"alphaModle\":90,\"site\":0,\"xaxis\":109,\"yaxis\":-296,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":75,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":528,\"map\":\"\"},{\"id\":\"eb9aa8ce8995\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":-315,\"y\":-672},\"endPoint\":{\"x\":-95,\"y\":-672},\"name\":9923820,\"isStrLine\":true},{\"startPoint\":{\"x\":-95,\"y\":-672},\"endPoint\":{\"x\":-95,\"y\":-60},\"name\":9923821,\"isStrLine\":true},{\"startPoint\":{\"x\":-95,\"y\":-60},\"endPoint\":{\"x\":-315,\"y\":-60},\"name\":9923822,\"isStrLine\":true},{\"startPoint\":{\"x\":-315,\"y\":-60},\"endPoint\":{\"x\":-315,\"y\":-672},\"name\":9923823,\"isStrLine\":true}],\"entColor\":\"#F0E7FF\",\"borderColor\":\"#F0E7FF\",\"toHeight\":4,\"alphaModle\":90,\"site\":0,\"xaxis\":-205,\"yaxis\":-366,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":61,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":416,\"map\":\"\"},{\"id\":\"1914c91988fc\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":-908,\"y\":-692},\"endPoint\":{\"x\":-400,\"y\":-692},\"name\":9923824,\"isStrLine\":true},{\"startPoint\":{\"x\":-400,\"y\":-692},\"endPoint\":{\"x\":-400,\"y\":-70},\"name\":9923825,\"isStrLine\":true},{\"startPoint\":{\"x\":-400,\"y\":-70},\"endPoint\":{\"x\":-619,\"y\":-70},\"name\":9923826,\"isStrLine\":true},{\"startPoint\":{\"x\":-619,\"y\":-70},\"endPoint\":{\"x\":-619,\"y\":-232},\"name\":9923827,\"isStrLine\":true},{\"startPoint\":{\"x\":-619,\"y\":-232},\"endPoint\":{\"x\":-697,\"y\":-232},\"name\":9923828,\"isStrLine\":true},{\"startPoint\":{\"x\":-697,\"y\":-232},\"endPoint\":{\"x\":-697,\"y\":-70},\"name\":9923829,\"isStrLine\":true},{\"startPoint\":{\"x\":-697,\"y\":-70},\"endPoint\":{\"x\":-908,\"y\":-70},\"name\":9923830,\"isStrLine\":true},{\"startPoint\":{\"x\":-908,\"y\":-70},\"endPoint\":{\"x\":-908,\"y\":-692},\"name\":9923831,\"isStrLine\":true}],\"entColor\":\"#F0E7FF\",\"borderColor\":\"#F0E7FF\",\"toHeight\":4,\"alphaModle\":90,\"site\":0,\"xaxis\":-654,\"yaxis\":-381,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":19,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":936,\"map\":\"\"},{\"id\":\"bab612a029fa\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":-607,\"y\":212},\"endPoint\":{\"x\":-488,\"y\":212},\"name\":9923832,\"isStrLine\":true},{\"startPoint\":{\"x\":-488,\"y\":212},\"endPoint\":{\"x\":-488,\"y\":537},\"name\":9923833,\"isStrLine\":true},{\"startPoint\":{\"x\":-488,\"y\":537},\"endPoint\":{\"x\":-22,\"y\":537},\"name\":9923834,\"isStrLine\":true},{\"startPoint\":{\"x\":-22,\"y\":537},\"endPoint\":{\"x\":-22,\"y\":763},\"name\":9923835,\"isStrLine\":true},{\"startPoint\":{\"x\":-22,\"y\":763},\"endPoint\":{\"x\":40,\"y\":895},\"name\":9923836,\"isStrLine\":true},{\"startPoint\":{\"x\":40,\"y\":895},\"endPoint\":{\"x\":-346,\"y\":1083},\"name\":9923837,\"isStrLine\":true},{\"startPoint\":{\"x\":-346,\"y\":1083},\"endPoint\":{\"x\":-463,\"y\":1046},\"name\":9923838,\"isStrLine\":false,\"ctrlPoint1\":{\"x\":-401,\"y\":1121},\"ctrlPoint2\":{\"x\":-466,\"y\":1106}},{\"startPoint\":{\"x\":-463,\"y\":1046},\"endPoint\":{\"x\":-463,\"y\":557},\"name\":9923839,\"isStrLine\":true},{\"startPoint\":{\"x\":-463,\"y\":557},\"endPoint\":{\"x\":-607,\"y\":557},\"name\":9923840,\"isStrLine\":true},{\"startPoint\":{\"x\":-607,\"y\":557},\"endPoint\":{\"x\":-607,\"y\":212},\"name\":9923841,\"isStrLine\":true}],\"entColor\":\"#FCFBD6\",\"borderColor\":\"#FCFBD6\",\"toHeight\":4,\"alphaModle\":90,\"site\":0,\"xaxis\":-216,\"yaxis\":611.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":12,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":812,\"map\":\"\"},{\"id\":\"53e9d7fbe7d6\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":-901,\"y\":227},\"endPoint\":{\"x\":-686,\"y\":227},\"name\":9923842,\"isStrLine\":true},{\"startPoint\":{\"x\":-686,\"y\":227},\"endPoint\":{\"x\":-686,\"y\":567},\"name\":9923843,\"isStrLine\":true},{\"startPoint\":{\"x\":-686,\"y\":567},\"endPoint\":{\"x\":-901,\"y\":567},\"name\":9923844,\"isStrLine\":true},{\"startPoint\":{\"x\":-901,\"y\":567},\"endPoint\":{\"x\":-901,\"y\":227},\"name\":9923845,\"isStrLine\":true}],\"entColor\":\"#FCFBD6\",\"borderColor\":\"#FCFBD6\",\"toHeight\":4,\"alphaModle\":90,\"site\":0,\"xaxis\":-793.5,\"yaxis\":397,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":44,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":226,\"map\":\"\"},{\"id\":\"57620ab91a91\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":-1207,\"y\":229},\"endPoint\":{\"x\":-986,\"y\":229},\"name\":9923846,\"isStrLine\":true},{\"startPoint\":{\"x\":-986,\"y\":229},\"endPoint\":{\"x\":-986,\"y\":567},\"name\":9923847,\"isStrLine\":true},{\"startPoint\":{\"x\":-986,\"y\":567},\"endPoint\":{\"x\":-1207,\"y\":567},\"name\":9923848,\"isStrLine\":true},{\"startPoint\":{\"x\":-1207,\"y\":567},\"endPoint\":{\"x\":-1207,\"y\":229},\"name\":9923849,\"isStrLine\":true}],\"entColor\":\"#FCFBD6\",\"borderColor\":\"#FCFBD6\",\"toHeight\":4,\"alphaModle\":90,\"site\":0,\"xaxis\":-1096.5,\"yaxis\":398,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":37,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":231,\"map\":\"\"},{\"id\":\"2d544767febc\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":-1393,\"y\":107},\"endPoint\":{\"x\":-1291,\"y\":107},\"name\":9923850,\"isStrLine\":true},{\"startPoint\":{\"x\":-1291,\"y\":107},\"endPoint\":{\"x\":-1291,\"y\":624},\"name\":9923851,\"isStrLine\":true},{\"startPoint\":{\"x\":-1291,\"y\":624},\"endPoint\":{\"x\":-1329,\"y\":624},\"name\":9923852,\"isStrLine\":true},{\"startPoint\":{\"x\":-1329,\"y\":624},\"endPoint\":{\"x\":-1329,\"y\":750},\"name\":9923853,\"isStrLine\":true},{\"startPoint\":{\"x\":-1329,\"y\":750},\"endPoint\":{\"x\":-1363,\"y\":750},\"name\":9923854,\"isStrLine\":true},{\"startPoint\":{\"x\":-1363,\"y\":750},\"endPoint\":{\"x\":-1363,\"y\":906},\"name\":9923855,\"isStrLine\":true},{\"startPoint\":{\"x\":-1363,\"y\":906},\"endPoint\":{\"x\":-1244,\"y\":906},\"name\":9923856,\"isStrLine\":true},{\"startPoint\":{\"x\":-1244,\"y\":906},\"endPoint\":{\"x\":-1244,\"y\":677},\"name\":9923857,\"isStrLine\":true},{\"startPoint\":{\"x\":-1244,\"y\":677},\"endPoint\":{\"x\":-999,\"y\":677},\"name\":9923858,\"isStrLine\":true},{\"startPoint\":{\"x\":-999,\"y\":677},\"endPoint\":{\"x\":-999,\"y\":826},\"name\":9923859,\"isStrLine\":true},{\"startPoint\":{\"x\":-999,\"y\":826},\"endPoint\":{\"x\":-904,\"y\":826},\"name\":9923860,\"isStrLine\":true},{\"startPoint\":{\"x\":-904,\"y\":826},\"endPoint\":{\"x\":-904,\"y\":651},\"name\":9923861,\"isStrLine\":true},{\"startPoint\":{\"x\":-904,\"y\":651},\"endPoint\":{\"x\":-559,\"y\":651},\"name\":9923862,\"isStrLine\":true},{\"startPoint\":{\"x\":-559,\"y\":651},\"endPoint\":{\"x\":-559,\"y\":1227},\"name\":9923863,\"isStrLine\":true},{\"startPoint\":{\"x\":-559,\"y\":1227},\"endPoint\":{\"x\":-1177,\"y\":1227},\"name\":9923864,\"isStrLine\":true},{\"startPoint\":{\"x\":-1177,\"y\":1227},\"endPoint\":{\"x\":-1393,\"y\":1119},\"name\":9923865,\"isStrLine\":true},{\"startPoint\":{\"x\":-1393,\"y\":1119},\"endPoint\":{\"x\":-1393,\"y\":107},\"name\":9923866,\"isStrLine\":true}],\"entColor\":\"#FCFBD6\",\"borderColor\":\"#FCFBD6\",\"toHeight\":4,\"alphaModle\":90,\"site\":0,\"xaxis\":-1347,\"yaxis\":184.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":14,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":1461,\"map\":\"\"},{\"id\":\"fff27cc7a418\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":-908,\"y\":-70},\"endPoint\":{\"x\":-697,\"y\":-70},\"name\":9923867,\"isStrLine\":true},{\"startPoint\":{\"x\":-697,\"y\":-70},\"endPoint\":{\"x\":-697,\"y\":103},\"name\":9923868,\"isStrLine\":true},{\"startPoint\":{\"x\":-697,\"y\":103},\"endPoint\":{\"x\":-908,\"y\":103},\"name\":9923869,\"isStrLine\":true},{\"startPoint\":{\"x\":-908,\"y\":103},\"endPoint\":{\"x\":-908,\"y\":-70},\"name\":9923870,\"isStrLine\":true}],\"entColor\":\"#FCFBD6\",\"borderColor\":\"#FCFBD6\",\"toHeight\":4,\"alphaModle\":90,\"site\":0,\"xaxis\":-835,\"yaxis\":28,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":35,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":113,\"map\":\"\"},{\"id\":\"40f76f8b2f68\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":-619,\"y\":-70},\"endPoint\":{\"x\":-400,\"y\":-70},\"name\":9923871,\"isStrLine\":true},{\"startPoint\":{\"x\":-400,\"y\":-70},\"endPoint\":{\"x\":-400,\"y\":103},\"name\":9923872,\"isStrLine\":true},{\"startPoint\":{\"x\":-400,\"y\":103},\"endPoint\":{\"x\":-619,\"y\":103},\"name\":9923873,\"isStrLine\":true},{\"startPoint\":{\"x\":-619,\"y\":103},\"endPoint\":{\"x\":-619,\"y\":-70},\"name\":9923874,\"isStrLine\":true}],\"entColor\":\"#FCFBD6\",\"borderColor\":\"#FCFBD6\",\"toHeight\":4,\"alphaModle\":90,\"site\":0,\"xaxis\":-516.5,\"yaxis\":19.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":52,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":117,\"map\":\"\"},{\"id\":\"02541d038719\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":-315,\"y\":-60},\"endPoint\":{\"x\":-95,\"y\":-60},\"name\":9923875,\"isStrLine\":true},{\"startPoint\":{\"x\":-95,\"y\":-60},\"endPoint\":{\"x\":-95,\"y\":103},\"name\":9923876,\"isStrLine\":true},{\"startPoint\":{\"x\":-95,\"y\":103},\"endPoint\":{\"x\":-315,\"y\":103},\"name\":9923877,\"isStrLine\":true},{\"startPoint\":{\"x\":-315,\"y\":103},\"endPoint\":{\"x\":-315,\"y\":-60},\"name\":9923878,\"isStrLine\":true}],\"entColor\":\"#FCFBD6\",\"borderColor\":\"#FCFBD6\",\"toHeight\":4,\"alphaModle\":90,\"site\":0,\"xaxis\":-246,\"yaxis\":48.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":67,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":111,\"map\":\"\"}],\"icons\":[],\"stairs\":[{\"no\":\"1\",\"x\":-360,\"y\":-952,\"navCode\":93,\"facCode\":\"dt\",\"title\":\"直梯\",\"site\":0,\"angle\":0,\"state\":true,\"iShow\":true,\"downState\":false,\"upState\":false},{\"no\":\"2\",\"x\":1135,\"y\":13,\"navCode\":95,\"facCode\":\"dt\",\"title\":\"直梯\",\"site\":0,\"angle\":0,\"state\":true,\"iShow\":true,\"downState\":false,\"upState\":false}],\"parkArea\":[{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-1010,\"y\":-1229},\"endPoint\":{\"x\":-966,\"y\":-1229},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-966,\"y\":-1229},\"endPoint\":{\"x\":-966,\"y\":-1129},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-966,\"y\":-1129},\"endPoint\":{\"x\":-1010,\"y\":-1129},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-1010,\"y\":-1129},\"endPoint\":{\"x\":-1010,\"y\":-1229},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-038\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-038\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":-988,\"yaxis\":-1179,\"shopNav\":3,\"childArea\":[],\"angle\":0},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-1033.69,\"y\":-978.67},\"endPoint\":{\"x\":-1033.69,\"y\":-934.67},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-1033.69,\"y\":-934.67},\"endPoint\":{\"x\":-1133.69,\"y\":-934.67},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-1133.69,\"y\":-934.67},\"endPoint\":{\"x\":-1133.69,\"y\":-978.67},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-1133.69,\"y\":-978.67},\"endPoint\":{\"x\":-1033.69,\"y\":-978.67},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-039\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-039\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":-1083.714285714286,\"yaxis\":-956.7142857142853,\"shopNav\":28,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-1033.69,\"y\":-933.67},\"endPoint\":{\"x\":-1033.69,\"y\":-889.67},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-1033.69,\"y\":-889.67},\"endPoint\":{\"x\":-1133.69,\"y\":-889.67},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-1133.69,\"y\":-889.67},\"endPoint\":{\"x\":-1133.69,\"y\":-933.67},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-1133.69,\"y\":-933.67},\"endPoint\":{\"x\":-1033.69,\"y\":-933.67},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-040\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-040\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":-1083.714285714286,\"yaxis\":-911.7142857142853,\"shopNav\":29,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-1033.69,\"y\":-888.67},\"endPoint\":{\"x\":-1033.69,\"y\":-844.67},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-1033.69,\"y\":-844.67},\"endPoint\":{\"x\":-1133.69,\"y\":-844.67},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-1133.69,\"y\":-844.67},\"endPoint\":{\"x\":-1133.69,\"y\":-888.67},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-1133.69,\"y\":-888.67},\"endPoint\":{\"x\":-1033.69,\"y\":-888.67},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-041\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-041\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":-1083.714285714286,\"yaxis\":-866.7142857142853,\"shopNav\":30,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-1033.69,\"y\":-843.67},\"endPoint\":{\"x\":-1033.69,\"y\":-799.67},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-1033.69,\"y\":-799.67},\"endPoint\":{\"x\":-1133.69,\"y\":-799.67},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-1133.69,\"y\":-799.67},\"endPoint\":{\"x\":-1133.69,\"y\":-843.67},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-1133.69,\"y\":-843.67},\"endPoint\":{\"x\":-1033.69,\"y\":-843.67},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-042\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-042\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":-1083.714285714286,\"yaxis\":-821.7142857142853,\"shopNav\":30,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-1033.69,\"y\":-773.67},\"endPoint\":{\"x\":-1033.69,\"y\":-729.67},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-1033.69,\"y\":-729.67},\"endPoint\":{\"x\":-1133.69,\"y\":-729.67},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-1133.69,\"y\":-729.67},\"endPoint\":{\"x\":-1133.69,\"y\":-773.67},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-1133.69,\"y\":-773.67},\"endPoint\":{\"x\":-1033.69,\"y\":-773.67},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-043\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-043\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":-1083.714285714286,\"yaxis\":-751.7142857142853,\"shopNav\":4,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-1033.69,\"y\":-690.67},\"endPoint\":{\"x\":-1033.69,\"y\":-646.67},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-1033.69,\"y\":-646.67},\"endPoint\":{\"x\":-1133.69,\"y\":-646.67},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-1133.69,\"y\":-646.67},\"endPoint\":{\"x\":-1133.69,\"y\":-690.67},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-1133.69,\"y\":-690.67},\"endPoint\":{\"x\":-1033.69,\"y\":-690.67},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-044\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-044\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":-1083.714285714286,\"yaxis\":-668.7142857142853,\"shopNav\":31,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-1033.69,\"y\":-645.67},\"endPoint\":{\"x\":-1033.69,\"y\":-601.67},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-1033.69,\"y\":-601.67},\"endPoint\":{\"x\":-1133.69,\"y\":-601.67},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-1133.69,\"y\":-601.67},\"endPoint\":{\"x\":-1133.69,\"y\":-645.67},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-1133.69,\"y\":-645.67},\"endPoint\":{\"x\":-1033.69,\"y\":-645.67},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-045\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-045\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":-1083.714285714286,\"yaxis\":-623.7142857142853,\"shopNav\":31,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-1033.69,\"y\":-600.67},\"endPoint\":{\"x\":-1033.69,\"y\":-556.67},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-1033.69,\"y\":-556.67},\"endPoint\":{\"x\":-1133.69,\"y\":-556.67},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-1133.69,\"y\":-556.67},\"endPoint\":{\"x\":-1133.69,\"y\":-600.67},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-1133.69,\"y\":-600.67},\"endPoint\":{\"x\":-1033.69,\"y\":-600.67},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-046\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-046\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":-1083.714285714286,\"yaxis\":-578.7142857142853,\"shopNav\":31,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-1033.69,\"y\":-520.67},\"endPoint\":{\"x\":-1033.69,\"y\":-476.67},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-1033.69,\"y\":-476.67},\"endPoint\":{\"x\":-1133.69,\"y\":-476.67},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-1133.69,\"y\":-476.67},\"endPoint\":{\"x\":-1133.69,\"y\":-520.67},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-1133.69,\"y\":-520.67},\"endPoint\":{\"x\":-1033.69,\"y\":-520.67},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-047\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-047\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":-1083.714285714286,\"yaxis\":-498.7142857142853,\"shopNav\":32,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-1033.69,\"y\":-475.67},\"endPoint\":{\"x\":-1033.69,\"y\":-431.67},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-1033.69,\"y\":-431.67},\"endPoint\":{\"x\":-1133.69,\"y\":-431.67},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-1133.69,\"y\":-431.67},\"endPoint\":{\"x\":-1133.69,\"y\":-475.67},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-1133.69,\"y\":-475.67},\"endPoint\":{\"x\":-1033.69,\"y\":-475.67},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-048\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-048\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":-1083.714285714286,\"yaxis\":-453.7142857142854,\"shopNav\":32,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-1033.69,\"y\":-348.67},\"endPoint\":{\"x\":-1033.69,\"y\":-304.67},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-1033.69,\"y\":-304.67},\"endPoint\":{\"x\":-1133.69,\"y\":-304.67},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-1133.69,\"y\":-304.67},\"endPoint\":{\"x\":-1133.69,\"y\":-348.67},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-1133.69,\"y\":-348.67},\"endPoint\":{\"x\":-1033.69,\"y\":-348.67},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-049\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-049\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":-1083.714285714286,\"yaxis\":-326.7142857142854,\"shopNav\":33,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-1033.69,\"y\":-303.67},\"endPoint\":{\"x\":-1033.69,\"y\":-259.67},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-1033.69,\"y\":-259.67},\"endPoint\":{\"x\":-1133.69,\"y\":-259.67},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-1133.69,\"y\":-259.67},\"endPoint\":{\"x\":-1133.69,\"y\":-303.67},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-1133.69,\"y\":-303.67},\"endPoint\":{\"x\":-1033.69,\"y\":-303.67},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-050\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-050\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":-1083.714285714286,\"yaxis\":-281.7142857142854,\"shopNav\":33,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-1033.69,\"y\":-230.67},\"endPoint\":{\"x\":-1033.69,\"y\":-186.67},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-1033.69,\"y\":-186.67},\"endPoint\":{\"x\":-1133.69,\"y\":-186.67},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-1133.69,\"y\":-186.67},\"endPoint\":{\"x\":-1133.69,\"y\":-230.67},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-1133.69,\"y\":-230.67},\"endPoint\":{\"x\":-1033.69,\"y\":-230.67},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-051\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-051\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":-1083.714285714286,\"yaxis\":-208.71428571428538,\"shopNav\":34,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-1033.69,\"y\":-185.67},\"endPoint\":{\"x\":-1033.69,\"y\":-141.67},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-1033.69,\"y\":-141.67},\"endPoint\":{\"x\":-1133.69,\"y\":-141.67},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-1133.69,\"y\":-141.67},\"endPoint\":{\"x\":-1133.69,\"y\":-185.67},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-1133.69,\"y\":-185.67},\"endPoint\":{\"x\":-1033.69,\"y\":-185.67},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-052\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-052\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":-1083.714285714286,\"yaxis\":-163.71428571428538,\"shopNav\":34,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-1033.69,\"y\":-140.67},\"endPoint\":{\"x\":-1033.69,\"y\":-96.67},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-1033.69,\"y\":-96.67},\"endPoint\":{\"x\":-1133.69,\"y\":-96.67},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-1133.69,\"y\":-96.67},\"endPoint\":{\"x\":-1133.69,\"y\":-140.67},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-1133.69,\"y\":-140.67},\"endPoint\":{\"x\":-1033.69,\"y\":-140.67},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-053\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-053\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":-1083.714285714286,\"yaxis\":-118.71428571428538,\"shopNav\":34,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-796.69,\"y\":-970.67},\"endPoint\":{\"x\":-796.69,\"y\":-926.67},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-796.69,\"y\":-926.67},\"endPoint\":{\"x\":-896.69,\"y\":-926.67},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-896.69,\"y\":-926.67},\"endPoint\":{\"x\":-896.69,\"y\":-970.67},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-896.69,\"y\":-970.67},\"endPoint\":{\"x\":-796.69,\"y\":-970.67},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-034\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-034\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":-846.714285714286,\"yaxis\":-948.7142857142853,\"shopNav\":29,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-796.69,\"y\":-1044.67},\"endPoint\":{\"x\":-796.69,\"y\":-1000.67},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-796.69,\"y\":-1000.67},\"endPoint\":{\"x\":-896.69,\"y\":-1000.67},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-896.69,\"y\":-1000.67},\"endPoint\":{\"x\":-896.69,\"y\":-1044.67},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-896.69,\"y\":-1044.67},\"endPoint\":{\"x\":-796.69,\"y\":-1044.67},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-035\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-035\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":-846.714285714286,\"yaxis\":-1022.7142857142853,\"shopNav\":28,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-796.69,\"y\":-1089.67},\"endPoint\":{\"x\":-796.69,\"y\":-1045.67},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-796.69,\"y\":-1045.67},\"endPoint\":{\"x\":-896.69,\"y\":-1045.67},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-896.69,\"y\":-1045.67},\"endPoint\":{\"x\":-896.69,\"y\":-1089.67},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-896.69,\"y\":-1089.67},\"endPoint\":{\"x\":-796.69,\"y\":-1089.67},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-036\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-036\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":-846.714285714286,\"yaxis\":-1067.7142857142853,\"shopNav\":3,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-796.69,\"y\":-1134.67},\"endPoint\":{\"x\":-796.69,\"y\":-1090.67},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-796.69,\"y\":-1090.67},\"endPoint\":{\"x\":-896.69,\"y\":-1090.67},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-896.69,\"y\":-1090.67},\"endPoint\":{\"x\":-896.69,\"y\":-1134.67},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-896.69,\"y\":-1134.67},\"endPoint\":{\"x\":-796.69,\"y\":-1134.67},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-037\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-037\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":-846.714285714286,\"yaxis\":-1112.7142857142853,\"shopNav\":3,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-659.69,\"y\":-1134.67},\"endPoint\":{\"x\":-659.69,\"y\":-1090.67},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-659.69,\"y\":-1090.67},\"endPoint\":{\"x\":-759.69,\"y\":-1090.67},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-759.69,\"y\":-1090.67},\"endPoint\":{\"x\":-759.69,\"y\":-1134.67},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-759.69,\"y\":-1134.67},\"endPoint\":{\"x\":-659.69,\"y\":-1134.67},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-026\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-026\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":-709.714285714286,\"yaxis\":-1112.7142857142853,\"shopNav\":27,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-659.69,\"y\":-1089.67},\"endPoint\":{\"x\":-659.69,\"y\":-1045.67},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-659.69,\"y\":-1045.67},\"endPoint\":{\"x\":-759.69,\"y\":-1045.67},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-759.69,\"y\":-1045.67},\"endPoint\":{\"x\":-759.69,\"y\":-1089.67},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-759.69,\"y\":-1089.67},\"endPoint\":{\"x\":-659.69,\"y\":-1089.67},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-027\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-027\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":-709.69,\"yaxis\":-1067.67,\"shopNav\":27,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-659.69,\"y\":-1044.67},\"endPoint\":{\"x\":-659.69,\"y\":-1000.67},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-659.69,\"y\":-1000.67},\"endPoint\":{\"x\":-759.69,\"y\":-1000.67},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-759.69,\"y\":-1000.67},\"endPoint\":{\"x\":-759.69,\"y\":-1044.67},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-759.69,\"y\":-1044.67},\"endPoint\":{\"x\":-659.69,\"y\":-1044.67},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-028\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-028\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":-709.714285714286,\"yaxis\":-1022.7142857142853,\"shopNav\":27,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-659.69,\"y\":-980.67},\"endPoint\":{\"x\":-659.69,\"y\":-936.67},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-659.69,\"y\":-936.67},\"endPoint\":{\"x\":-759.69,\"y\":-936.67},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-759.69,\"y\":-936.67},\"endPoint\":{\"x\":-759.69,\"y\":-980.67},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-759.69,\"y\":-980.67},\"endPoint\":{\"x\":-659.69,\"y\":-980.67},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-029\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-029\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":-709.714285714286,\"yaxis\":-958.7142857142852,\"shopNav\":55,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-717.67,\"y\":-886.74},\"endPoint\":{\"x\":-673.67,\"y\":-886.74},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-673.67,\"y\":-886.74},\"endPoint\":{\"x\":-673.67,\"y\":-786.74},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-673.67,\"y\":-786.74},\"endPoint\":{\"x\":-717.67,\"y\":-786.74},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-717.67,\"y\":-786.74},\"endPoint\":{\"x\":-717.67,\"y\":-886.74},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-030\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-030\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":-695.67,\"yaxis\":-836.74,\"shopNav\":54,\"childArea\":[],\"angle\":0},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-784.67,\"y\":-886.74},\"endPoint\":{\"x\":-740.67,\"y\":-886.74},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-740.67,\"y\":-886.74},\"endPoint\":{\"x\":-740.67,\"y\":-786.74},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-740.67,\"y\":-786.74},\"endPoint\":{\"x\":-784.67,\"y\":-786.74},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-784.67,\"y\":-786.74},\"endPoint\":{\"x\":-784.67,\"y\":-886.74},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-031\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-031\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":-762.67,\"yaxis\":-836.74,\"shopNav\":54,\"childArea\":[],\"angle\":0},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-829.67,\"y\":-886.74},\"endPoint\":{\"x\":-785.67,\"y\":-886.74},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-785.67,\"y\":-886.74},\"endPoint\":{\"x\":-785.67,\"y\":-786.74},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-785.67,\"y\":-786.74},\"endPoint\":{\"x\":-829.67,\"y\":-786.74},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-829.67,\"y\":-786.74},\"endPoint\":{\"x\":-829.67,\"y\":-886.74},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-032\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-032\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":-807.67,\"yaxis\":-836.74,\"shopNav\":53,\"childArea\":[],\"angle\":0},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-874.67,\"y\":-886.74},\"endPoint\":{\"x\":-830.67,\"y\":-886.74},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-830.67,\"y\":-886.74},\"endPoint\":{\"x\":-830.67,\"y\":-786.74},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-830.67,\"y\":-786.74},\"endPoint\":{\"x\":-874.67,\"y\":-786.74},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-874.67,\"y\":-786.74},\"endPoint\":{\"x\":-874.67,\"y\":-886.74},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-033\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-033\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":-852.67,\"yaxis\":-836.74,\"shopNav\":30,\"childArea\":[],\"angle\":0},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-461.69,\"y\":-1077.67},\"endPoint\":{\"x\":-461.69,\"y\":-1033.67},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-461.69,\"y\":-1033.67},\"endPoint\":{\"x\":-561.69,\"y\":-1033.67},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-561.69,\"y\":-1033.67},\"endPoint\":{\"x\":-561.69,\"y\":-1077.67},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-561.69,\"y\":-1077.67},\"endPoint\":{\"x\":-461.69,\"y\":-1077.67},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-024\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-024\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":-511.69000000000005,\"yaxis\":-1055.67,\"shopNav\":27,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-461.69,\"y\":-1122.67},\"endPoint\":{\"x\":-461.69,\"y\":-1078.67},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-461.69,\"y\":-1078.67},\"endPoint\":{\"x\":-561.69,\"y\":-1078.67},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-561.69,\"y\":-1078.67},\"endPoint\":{\"x\":-561.69,\"y\":-1122.67},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-561.69,\"y\":-1122.67},\"endPoint\":{\"x\":-461.69,\"y\":-1122.67},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-025\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-025\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":-511.69000000000005,\"yaxis\":-1100.67,\"shopNav\":27,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":416.9,\"y\":-776.3},\"endPoint\":{\"x\":416.9,\"y\":-732.3},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":416.9,\"y\":-732.3},\"endPoint\":{\"x\":316.9,\"y\":-732.3},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":316.9,\"y\":-732.3},\"endPoint\":{\"x\":316.9,\"y\":-776.3},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":316.9,\"y\":-776.3},\"endPoint\":{\"x\":416.9,\"y\":-776.3},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-013\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-013\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":366.88142857142884,\"yaxis\":-754.2414285714293,\"shopNav\":5,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":416.9,\"y\":-821.3},\"endPoint\":{\"x\":416.9,\"y\":-777.3},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":416.9,\"y\":-777.3},\"endPoint\":{\"x\":316.9,\"y\":-777.3},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":316.9,\"y\":-777.3},\"endPoint\":{\"x\":316.9,\"y\":-821.3},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":316.9,\"y\":-821.3},\"endPoint\":{\"x\":416.9,\"y\":-821.3},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-014\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-014\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":366.88142857142884,\"yaxis\":-799.2414285714293,\"shopNav\":6,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":416.9,\"y\":-866.3},\"endPoint\":{\"x\":416.9,\"y\":-822.3},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":416.9,\"y\":-822.3},\"endPoint\":{\"x\":316.9,\"y\":-822.3},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":316.9,\"y\":-822.3},\"endPoint\":{\"x\":316.9,\"y\":-866.3},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":316.9,\"y\":-866.3},\"endPoint\":{\"x\":416.9,\"y\":-866.3},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-015\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-015\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":366.88142857142884,\"yaxis\":-844.2414285714293,\"shopNav\":6,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":214.82,\"y\":-986.26},\"endPoint\":{\"x\":258.82,\"y\":-986.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":258.82,\"y\":-986.26},\"endPoint\":{\"x\":258.82,\"y\":-886.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":258.82,\"y\":-886.26},\"endPoint\":{\"x\":214.82,\"y\":-886.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":214.82,\"y\":-886.26},\"endPoint\":{\"x\":214.82,\"y\":-986.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-016\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-016\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":236.82,\"yaxis\":-936.26,\"shopNav\":6,\"childArea\":[],\"angle\":0},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":143.82,\"y\":-888.26},\"endPoint\":{\"x\":187.82,\"y\":-888.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":187.82,\"y\":-888.26},\"endPoint\":{\"x\":187.82,\"y\":-788.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":187.82,\"y\":-788.26},\"endPoint\":{\"x\":143.82,\"y\":-788.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":143.82,\"y\":-788.26},\"endPoint\":{\"x\":143.82,\"y\":-888.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-017\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-017\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":165.82,\"yaxis\":-838.26,\"shopNav\":6,\"childArea\":[],\"angle\":0},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":52.82,\"y\":-888.26},\"endPoint\":{\"x\":96.82,\"y\":-888.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":96.82,\"y\":-888.26},\"endPoint\":{\"x\":96.82,\"y\":-788.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":96.82,\"y\":-788.26},\"endPoint\":{\"x\":52.82,\"y\":-788.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":52.82,\"y\":-788.26},\"endPoint\":{\"x\":52.82,\"y\":-888.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-018\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-018\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":74.82,\"yaxis\":-838.26,\"shopNav\":58,\"childArea\":[],\"angle\":0},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-13.18,\"y\":-888.26},\"endPoint\":{\"x\":30.82,\"y\":-888.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":30.82,\"y\":-888.26},\"endPoint\":{\"x\":30.82,\"y\":-788.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":30.82,\"y\":-788.26},\"endPoint\":{\"x\":-13.18,\"y\":-788.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-13.18,\"y\":-788.26},\"endPoint\":{\"x\":-13.18,\"y\":-888.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-019\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-019\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":8.82,\"yaxis\":-838.26,\"shopNav\":23,\"childArea\":[],\"angle\":0},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-104.18,\"y\":-872.26},\"endPoint\":{\"x\":-60.18,\"y\":-872.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-60.18,\"y\":-872.26},\"endPoint\":{\"x\":-60.18,\"y\":-772.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-60.18,\"y\":-772.26},\"endPoint\":{\"x\":-104.18,\"y\":-772.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-104.18,\"y\":-772.26},\"endPoint\":{\"x\":-104.18,\"y\":-872.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-020\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-020\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":-82.18,\"yaxis\":-822.26,\"shopNav\":23,\"childArea\":[],\"angle\":0},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-165.18,\"y\":-888.26},\"endPoint\":{\"x\":-121.18,\"y\":-888.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-121.18,\"y\":-888.26},\"endPoint\":{\"x\":-121.18,\"y\":-788.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-121.18,\"y\":-788.26},\"endPoint\":{\"x\":-165.18,\"y\":-788.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-165.18,\"y\":-788.26},\"endPoint\":{\"x\":-165.18,\"y\":-888.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-021\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-021\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":-143.18,\"yaxis\":-838.26,\"shopNav\":57,\"childArea\":[],\"angle\":0},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-210.18,\"y\":-888.26},\"endPoint\":{\"x\":-166.18,\"y\":-888.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-166.18,\"y\":-888.26},\"endPoint\":{\"x\":-166.18,\"y\":-788.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-166.18,\"y\":-788.26},\"endPoint\":{\"x\":-210.18,\"y\":-788.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-210.18,\"y\":-788.26},\"endPoint\":{\"x\":-210.18,\"y\":-888.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-022\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-022\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":-188.18,\"yaxis\":-838.26,\"shopNav\":57,\"childArea\":[],\"angle\":0},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-255.18,\"y\":-888.26},\"endPoint\":{\"x\":-211.18,\"y\":-888.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-211.18,\"y\":-888.26},\"endPoint\":{\"x\":-211.18,\"y\":-788.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-211.18,\"y\":-788.26},\"endPoint\":{\"x\":-255.18,\"y\":-788.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-255.18,\"y\":-788.26},\"endPoint\":{\"x\":-255.18,\"y\":-888.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-023\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-023\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":-233.18,\"yaxis\":-838.26,\"shopNav\":57,\"childArea\":[],\"angle\":0},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":140.82,\"y\":-687.26},\"endPoint\":{\"x\":184.82,\"y\":-687.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":184.82,\"y\":-687.26},\"endPoint\":{\"x\":184.82,\"y\":-587.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":184.82,\"y\":-587.26},\"endPoint\":{\"x\":140.82,\"y\":-587.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":140.82,\"y\":-587.26},\"endPoint\":{\"x\":140.82,\"y\":-687.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-129\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-129\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":162.82,\"yaxis\":-637.26,\"shopNav\":77,\"childArea\":[],\"angle\":0},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":95.82,\"y\":-687.26},\"endPoint\":{\"x\":139.82,\"y\":-687.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":139.82,\"y\":-687.26},\"endPoint\":{\"x\":139.82,\"y\":-587.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":139.82,\"y\":-587.26},\"endPoint\":{\"x\":95.82,\"y\":-587.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":95.82,\"y\":-587.26},\"endPoint\":{\"x\":95.82,\"y\":-687.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-130\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-130\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":117.82,\"yaxis\":-637.26,\"shopNav\":58,\"childArea\":[],\"angle\":0},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":50.82,\"y\":-687.26},\"endPoint\":{\"x\":94.82,\"y\":-687.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":94.82,\"y\":-687.26},\"endPoint\":{\"x\":94.82,\"y\":-587.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":94.82,\"y\":-587.26},\"endPoint\":{\"x\":50.82,\"y\":-587.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":50.82,\"y\":-587.26},\"endPoint\":{\"x\":50.82,\"y\":-687.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-131\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-131\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":72.82,\"yaxis\":-637.26,\"shopNav\":58,\"childArea\":[],\"angle\":0},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":105.82,\"y\":-584.26},\"endPoint\":{\"x\":105.82,\"y\":-540.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":105.82,\"y\":-540.26},\"endPoint\":{\"x\":5.82,\"y\":-540.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":5.82,\"y\":-540.26},\"endPoint\":{\"x\":5.82,\"y\":-584.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":5.82,\"y\":-584.26},\"endPoint\":{\"x\":105.82,\"y\":-584.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-132\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-132\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":55.81999999999999,\"yaxis\":-562.26,\"shopNav\":72,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":105.82,\"y\":-366.26},\"endPoint\":{\"x\":105.82,\"y\":-322.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":105.82,\"y\":-322.26},\"endPoint\":{\"x\":5.82,\"y\":-322.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":5.82,\"y\":-322.26},\"endPoint\":{\"x\":5.82,\"y\":-366.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":5.82,\"y\":-366.26},\"endPoint\":{\"x\":105.82,\"y\":-366.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-133\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-133\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":55.81999999999999,\"yaxis\":-344.26,\"shopNav\":70,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":105.82,\"y\":-321.26},\"endPoint\":{\"x\":105.82,\"y\":-277.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":105.82,\"y\":-277.26},\"endPoint\":{\"x\":5.82,\"y\":-277.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":5.82,\"y\":-277.26},\"endPoint\":{\"x\":5.82,\"y\":-321.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":5.82,\"y\":-321.26},\"endPoint\":{\"x\":105.82,\"y\":-321.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-134\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-134\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":55.81999999999999,\"yaxis\":-299.26,\"shopNav\":70,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":105.82,\"y\":-276.26},\"endPoint\":{\"x\":105.82,\"y\":-232.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":105.82,\"y\":-232.26},\"endPoint\":{\"x\":5.82,\"y\":-232.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":5.82,\"y\":-232.26},\"endPoint\":{\"x\":5.82,\"y\":-276.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":5.82,\"y\":-276.26},\"endPoint\":{\"x\":105.82,\"y\":-276.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-135\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-135\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":55.81999999999999,\"yaxis\":-254.26,\"shopNav\":70,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":105.82,\"y\":-210.26},\"endPoint\":{\"x\":105.82,\"y\":-166.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":105.82,\"y\":-166.26},\"endPoint\":{\"x\":5.82,\"y\":-166.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":5.82,\"y\":-166.26},\"endPoint\":{\"x\":5.82,\"y\":-210.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":5.82,\"y\":-210.26},\"endPoint\":{\"x\":105.82,\"y\":-210.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-136\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-136\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":55.81999999999999,\"yaxis\":-188.26,\"shopNav\":69,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":105.82,\"y\":-165.26},\"endPoint\":{\"x\":105.82,\"y\":-121.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":105.82,\"y\":-121.26},\"endPoint\":{\"x\":5.82,\"y\":-121.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":5.82,\"y\":-121.26},\"endPoint\":{\"x\":5.82,\"y\":-165.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":5.82,\"y\":-165.26},\"endPoint\":{\"x\":105.82,\"y\":-165.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-137\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-137\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":55.81999999999999,\"yaxis\":-143.26,\"shopNav\":69,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":105.82,\"y\":-120.26},\"endPoint\":{\"x\":105.82,\"y\":-76.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":105.82,\"y\":-76.26},\"endPoint\":{\"x\":5.82,\"y\":-76.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":5.82,\"y\":-76.26},\"endPoint\":{\"x\":5.82,\"y\":-120.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":5.82,\"y\":-120.26},\"endPoint\":{\"x\":105.82,\"y\":-120.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-138\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-138\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":55.81999999999999,\"yaxis\":-98.26,\"shopNav\":69,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":105.82,\"y\":-61.26},\"endPoint\":{\"x\":105.82,\"y\":-17.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":105.82,\"y\":-17.26},\"endPoint\":{\"x\":5.82,\"y\":-17.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":5.82,\"y\":-17.26},\"endPoint\":{\"x\":5.82,\"y\":-61.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":5.82,\"y\":-61.26},\"endPoint\":{\"x\":105.82,\"y\":-61.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-139\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-139\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":55.81999999999999,\"yaxis\":-39.260000000000005,\"shopNav\":68,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":105.82,\"y\":-16.26},\"endPoint\":{\"x\":105.82,\"y\":27.74},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":105.82,\"y\":27.74},\"endPoint\":{\"x\":5.82,\"y\":27.74},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":5.82,\"y\":27.74},\"endPoint\":{\"x\":5.82,\"y\":-16.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":5.82,\"y\":-16.26},\"endPoint\":{\"x\":105.82,\"y\":-16.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-140\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-140\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":55.81999999999999,\"yaxis\":5.739999999999995,\"shopNav\":68,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":105.82,\"y\":28.74},\"endPoint\":{\"x\":105.82,\"y\":72.74},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":105.82,\"y\":72.74},\"endPoint\":{\"x\":5.82,\"y\":72.74},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":5.82,\"y\":72.74},\"endPoint\":{\"x\":5.82,\"y\":28.74},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":5.82,\"y\":28.74},\"endPoint\":{\"x\":105.82,\"y\":28.74},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-141\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-141\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":55.81999999999999,\"yaxis\":50.739999999999995,\"shopNav\":68,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":206.82,\"y\":28.74},\"endPoint\":{\"x\":206.82,\"y\":72.74},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":206.82,\"y\":72.74},\"endPoint\":{\"x\":106.82,\"y\":72.74},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":106.82,\"y\":72.74},\"endPoint\":{\"x\":106.82,\"y\":28.74},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":106.82,\"y\":28.74},\"endPoint\":{\"x\":206.82,\"y\":28.74},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-119\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-119\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":156.82,\"yaxis\":50.739999999999995,\"shopNav\":73,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":206.82,\"y\":-16.26},\"endPoint\":{\"x\":206.82,\"y\":27.74},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":206.82,\"y\":27.74},\"endPoint\":{\"x\":106.82,\"y\":27.74},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":106.82,\"y\":27.74},\"endPoint\":{\"x\":106.82,\"y\":-16.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":106.82,\"y\":-16.26},\"endPoint\":{\"x\":206.82,\"y\":-16.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-120\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-120\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":156.82,\"yaxis\":5.739999999999995,\"shopNav\":73,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":206.82,\"y\":-61.26},\"endPoint\":{\"x\":206.82,\"y\":-17.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":206.82,\"y\":-17.26},\"endPoint\":{\"x\":106.82,\"y\":-17.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":106.82,\"y\":-17.26},\"endPoint\":{\"x\":106.82,\"y\":-61.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":106.82,\"y\":-61.26},\"endPoint\":{\"x\":206.82,\"y\":-61.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-121\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-121\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":156.82,\"yaxis\":-39.260000000000005,\"shopNav\":73,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":206.82,\"y\":-120.26},\"endPoint\":{\"x\":206.82,\"y\":-76.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":206.82,\"y\":-76.26},\"endPoint\":{\"x\":106.82,\"y\":-76.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":106.82,\"y\":-76.26},\"endPoint\":{\"x\":106.82,\"y\":-120.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":106.82,\"y\":-120.26},\"endPoint\":{\"x\":206.82,\"y\":-120.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-122\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-122\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":156.82,\"yaxis\":-98.26,\"shopNav\":74,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":206.82,\"y\":-165.26},\"endPoint\":{\"x\":206.82,\"y\":-121.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":206.82,\"y\":-121.26},\"endPoint\":{\"x\":106.82,\"y\":-121.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":106.82,\"y\":-121.26},\"endPoint\":{\"x\":106.82,\"y\":-165.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":106.82,\"y\":-165.26},\"endPoint\":{\"x\":206.82,\"y\":-165.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-123\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-123\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":156.82,\"yaxis\":-143.26,\"shopNav\":74,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":206.82,\"y\":-210.26},\"endPoint\":{\"x\":206.82,\"y\":-166.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":206.82,\"y\":-166.26},\"endPoint\":{\"x\":106.82,\"y\":-166.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":106.82,\"y\":-166.26},\"endPoint\":{\"x\":106.82,\"y\":-210.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":106.82,\"y\":-210.26},\"endPoint\":{\"x\":206.82,\"y\":-210.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-124\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-124\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":156.82,\"yaxis\":-188.26,\"shopNav\":74,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":206.82,\"y\":-276.26},\"endPoint\":{\"x\":206.82,\"y\":-232.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":206.82,\"y\":-232.26},\"endPoint\":{\"x\":106.82,\"y\":-232.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":106.82,\"y\":-232.26},\"endPoint\":{\"x\":106.82,\"y\":-276.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":106.82,\"y\":-276.26},\"endPoint\":{\"x\":206.82,\"y\":-276.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-125\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-125\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":156.82,\"yaxis\":-254.26,\"shopNav\":75,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":206.82,\"y\":-321.26},\"endPoint\":{\"x\":206.82,\"y\":-277.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":206.82,\"y\":-277.26},\"endPoint\":{\"x\":106.82,\"y\":-277.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":106.82,\"y\":-277.26},\"endPoint\":{\"x\":106.82,\"y\":-321.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":106.82,\"y\":-321.26},\"endPoint\":{\"x\":206.82,\"y\":-321.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-126\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-126\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":156.82,\"yaxis\":-299.26,\"shopNav\":75,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":206.82,\"y\":-366.26},\"endPoint\":{\"x\":206.82,\"y\":-322.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":206.82,\"y\":-322.26},\"endPoint\":{\"x\":106.82,\"y\":-322.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":106.82,\"y\":-322.26},\"endPoint\":{\"x\":106.82,\"y\":-366.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":106.82,\"y\":-366.26},\"endPoint\":{\"x\":206.82,\"y\":-366.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-127\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-127\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":156.82,\"yaxis\":-344.26,\"shopNav\":75,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":206.82,\"y\":-584.26},\"endPoint\":{\"x\":206.82,\"y\":-540.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":206.82,\"y\":-540.26},\"endPoint\":{\"x\":106.82,\"y\":-540.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":106.82,\"y\":-540.26},\"endPoint\":{\"x\":106.82,\"y\":-584.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":106.82,\"y\":-584.26},\"endPoint\":{\"x\":206.82,\"y\":-584.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-128\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-128\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":156.82,\"yaxis\":-562.26,\"shopNav\":77,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":728.82,\"y\":-188.26},\"endPoint\":{\"x\":728.82,\"y\":-144.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":728.82,\"y\":-144.26},\"endPoint\":{\"x\":628.82,\"y\":-144.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":628.82,\"y\":-144.26},\"endPoint\":{\"x\":628.82,\"y\":-188.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":628.82,\"y\":-188.26},\"endPoint\":{\"x\":728.82,\"y\":-188.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-01\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-01\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":678.82,\"yaxis\":-166.26,\"shopNav\":80,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":728.82,\"y\":-280.26},\"endPoint\":{\"x\":728.82,\"y\":-236.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":728.82,\"y\":-236.26},\"endPoint\":{\"x\":628.82,\"y\":-236.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":628.82,\"y\":-236.26},\"endPoint\":{\"x\":628.82,\"y\":-280.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":628.82,\"y\":-280.26},\"endPoint\":{\"x\":728.82,\"y\":-280.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-02\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-02\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":678.8199999999999,\"yaxis\":-258.26,\"shopNav\":79,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":728.82,\"y\":-345.26},\"endPoint\":{\"x\":728.82,\"y\":-301.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":728.82,\"y\":-301.26},\"endPoint\":{\"x\":628.82,\"y\":-301.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":628.82,\"y\":-301.26},\"endPoint\":{\"x\":628.82,\"y\":-345.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":628.82,\"y\":-345.26},\"endPoint\":{\"x\":728.82,\"y\":-345.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-03\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-03\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":678.8199999999999,\"yaxis\":-323.26,\"shopNav\":79,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":512.82,\"y\":-525.26},\"endPoint\":{\"x\":512.82,\"y\":-481.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":512.82,\"y\":-481.26},\"endPoint\":{\"x\":412.82,\"y\":-481.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":412.82,\"y\":-481.26},\"endPoint\":{\"x\":412.82,\"y\":-525.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":412.82,\"y\":-525.26},\"endPoint\":{\"x\":512.82,\"y\":-525.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-04\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-04\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":462.81999999999994,\"yaxis\":-503.26,\"shopNav\":25,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":512.82,\"y\":-446.26},\"endPoint\":{\"x\":512.82,\"y\":-402.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":512.82,\"y\":-402.26},\"endPoint\":{\"x\":412.82,\"y\":-402.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":412.82,\"y\":-402.26},\"endPoint\":{\"x\":412.82,\"y\":-446.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":412.82,\"y\":-446.26},\"endPoint\":{\"x\":512.82,\"y\":-446.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-05\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-05\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":462.81999999999994,\"yaxis\":-424.26,\"shopNav\":78,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":512.82,\"y\":-367.26},\"endPoint\":{\"x\":512.82,\"y\":-323.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":512.82,\"y\":-323.26},\"endPoint\":{\"x\":412.82,\"y\":-323.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":412.82,\"y\":-323.26},\"endPoint\":{\"x\":412.82,\"y\":-367.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":412.82,\"y\":-367.26},\"endPoint\":{\"x\":512.82,\"y\":-367.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-06\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-06\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":462.81999999999994,\"yaxis\":-345.26,\"shopNav\":79,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":512.82,\"y\":-322.26},\"endPoint\":{\"x\":512.82,\"y\":-278.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":512.82,\"y\":-278.26},\"endPoint\":{\"x\":412.82,\"y\":-278.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":412.82,\"y\":-278.26},\"endPoint\":{\"x\":412.82,\"y\":-322.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":412.82,\"y\":-322.26},\"endPoint\":{\"x\":512.82,\"y\":-322.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-07\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-07\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":462.81999999999994,\"yaxis\":-300.26,\"shopNav\":79,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":512.82,\"y\":-277.26},\"endPoint\":{\"x\":512.82,\"y\":-233.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":512.82,\"y\":-233.26},\"endPoint\":{\"x\":412.82,\"y\":-233.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":412.82,\"y\":-233.26},\"endPoint\":{\"x\":412.82,\"y\":-277.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":412.82,\"y\":-277.26},\"endPoint\":{\"x\":512.82,\"y\":-277.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-08\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-08\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":462.81999999999994,\"yaxis\":-255.26,\"shopNav\":79,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":512.82,\"y\":-211.26},\"endPoint\":{\"x\":512.82,\"y\":-167.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":512.82,\"y\":-167.26},\"endPoint\":{\"x\":412.82,\"y\":-167.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":412.82,\"y\":-167.26},\"endPoint\":{\"x\":412.82,\"y\":-211.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":412.82,\"y\":-211.26},\"endPoint\":{\"x\":512.82,\"y\":-211.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-09\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-09\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":462.81999999999994,\"yaxis\":-189.26,\"shopNav\":80,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":512.82,\"y\":-166.26},\"endPoint\":{\"x\":512.82,\"y\":-122.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":512.82,\"y\":-122.26},\"endPoint\":{\"x\":412.82,\"y\":-122.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":412.82,\"y\":-122.26},\"endPoint\":{\"x\":412.82,\"y\":-166.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":412.82,\"y\":-166.26},\"endPoint\":{\"x\":512.82,\"y\":-166.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-10\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-10\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":462.81999999999994,\"yaxis\":-144.26,\"shopNav\":80,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":512.82,\"y\":-121.26},\"endPoint\":{\"x\":512.82,\"y\":-77.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":512.82,\"y\":-77.26},\"endPoint\":{\"x\":412.82,\"y\":-77.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":412.82,\"y\":-77.26},\"endPoint\":{\"x\":412.82,\"y\":-121.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":412.82,\"y\":-121.26},\"endPoint\":{\"x\":512.82,\"y\":-121.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-11\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-11\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":462.81999999999994,\"yaxis\":-99.26,\"shopNav\":80,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":512.82,\"y\":-56.26},\"endPoint\":{\"x\":512.82,\"y\":-12.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":512.82,\"y\":-12.26},\"endPoint\":{\"x\":412.82,\"y\":-12.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":412.82,\"y\":-12.26},\"endPoint\":{\"x\":412.82,\"y\":-56.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":412.82,\"y\":-56.26},\"endPoint\":{\"x\":512.82,\"y\":-56.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-12\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-12\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":462.81999999999994,\"yaxis\":-34.260000000000005,\"shopNav\":81,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":512.82,\"y\":-11.26},\"endPoint\":{\"x\":512.82,\"y\":32.74},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":512.82,\"y\":32.74},\"endPoint\":{\"x\":412.82,\"y\":32.74},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":412.82,\"y\":32.74},\"endPoint\":{\"x\":412.82,\"y\":-11.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":412.82,\"y\":-11.26},\"endPoint\":{\"x\":512.82,\"y\":-11.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-13\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-13\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":462.81999999999994,\"yaxis\":10.739999999999995,\"shopNav\":81,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":512.82,\"y\":33.74},\"endPoint\":{\"x\":512.82,\"y\":77.74},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":512.82,\"y\":77.74},\"endPoint\":{\"x\":412.82,\"y\":77.74},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":412.82,\"y\":77.74},\"endPoint\":{\"x\":412.82,\"y\":33.74},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":412.82,\"y\":33.74},\"endPoint\":{\"x\":512.82,\"y\":33.74},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-14\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-14\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":462.81999999999994,\"yaxis\":55.739999999999995,\"shopNav\":81,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":411.82,\"y\":33.74},\"endPoint\":{\"x\":411.82,\"y\":77.74},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":411.82,\"y\":77.74},\"endPoint\":{\"x\":311.82,\"y\":77.74},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":311.82,\"y\":77.74},\"endPoint\":{\"x\":311.82,\"y\":33.74},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":311.82,\"y\":33.74},\"endPoint\":{\"x\":411.82,\"y\":33.74},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-002\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-002\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":361.82,\"yaxis\":55.739999999999995,\"shopNav\":73,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":748.82,\"y\":-22.26},\"endPoint\":{\"x\":792.82,\"y\":-22.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":792.82,\"y\":-22.26},\"endPoint\":{\"x\":792.82,\"y\":77.74},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":792.82,\"y\":77.74},\"endPoint\":{\"x\":748.82,\"y\":77.74},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":748.82,\"y\":77.74},\"endPoint\":{\"x\":748.82,\"y\":-22.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-001\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-001\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":770.82,\"yaxis\":27.739999999999995,\"shopNav\":84,\"childArea\":[],\"angle\":0},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":411.82,\"y\":-11.26},\"endPoint\":{\"x\":411.82,\"y\":32.74},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":411.82,\"y\":32.74},\"endPoint\":{\"x\":311.82,\"y\":32.74},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":311.82,\"y\":32.74},\"endPoint\":{\"x\":311.82,\"y\":-11.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":311.82,\"y\":-11.26},\"endPoint\":{\"x\":411.82,\"y\":-11.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-003\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-003\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":361.82,\"yaxis\":10.740000000000002,\"shopNav\":73,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":411.82,\"y\":-56.26},\"endPoint\":{\"x\":411.82,\"y\":-12.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":411.82,\"y\":-12.26},\"endPoint\":{\"x\":311.82,\"y\":-12.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":311.82,\"y\":-12.26},\"endPoint\":{\"x\":311.82,\"y\":-56.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":311.82,\"y\":-56.26},\"endPoint\":{\"x\":411.82,\"y\":-56.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-004\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-004\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":361.82,\"yaxis\":-34.26,\"shopNav\":73,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":411.82,\"y\":-121.26},\"endPoint\":{\"x\":411.82,\"y\":-77.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":411.82,\"y\":-77.26},\"endPoint\":{\"x\":311.82,\"y\":-77.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":311.82,\"y\":-77.26},\"endPoint\":{\"x\":311.82,\"y\":-121.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":311.82,\"y\":-121.26},\"endPoint\":{\"x\":411.82,\"y\":-121.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-005\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-005\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":361.82,\"yaxis\":-99.26,\"shopNav\":74,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":411.82,\"y\":-166.26},\"endPoint\":{\"x\":411.82,\"y\":-122.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":411.82,\"y\":-122.26},\"endPoint\":{\"x\":311.82,\"y\":-122.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":311.82,\"y\":-122.26},\"endPoint\":{\"x\":311.82,\"y\":-166.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":311.82,\"y\":-166.26},\"endPoint\":{\"x\":411.82,\"y\":-166.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-006\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-006\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":361.82,\"yaxis\":-144.26,\"shopNav\":74,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":411.82,\"y\":-211.26},\"endPoint\":{\"x\":411.82,\"y\":-167.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":411.82,\"y\":-167.26},\"endPoint\":{\"x\":311.82,\"y\":-167.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":311.82,\"y\":-167.26},\"endPoint\":{\"x\":311.82,\"y\":-211.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":311.82,\"y\":-211.26},\"endPoint\":{\"x\":411.82,\"y\":-211.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-007\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-007\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":361.82,\"yaxis\":-189.26,\"shopNav\":74,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":411.82,\"y\":-277.26},\"endPoint\":{\"x\":411.82,\"y\":-233.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":411.82,\"y\":-233.26},\"endPoint\":{\"x\":311.82,\"y\":-233.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":311.82,\"y\":-233.26},\"endPoint\":{\"x\":311.82,\"y\":-277.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":311.82,\"y\":-277.26},\"endPoint\":{\"x\":411.82,\"y\":-277.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-008\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-008\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":361.82,\"yaxis\":-255.26,\"shopNav\":75,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":411.82,\"y\":-322.26},\"endPoint\":{\"x\":411.82,\"y\":-278.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":411.82,\"y\":-278.26},\"endPoint\":{\"x\":311.82,\"y\":-278.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":311.82,\"y\":-278.26},\"endPoint\":{\"x\":311.82,\"y\":-322.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":311.82,\"y\":-322.26},\"endPoint\":{\"x\":411.82,\"y\":-322.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-009\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-009\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":361.82,\"yaxis\":-300.26,\"shopNav\":75,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":411.82,\"y\":-367.26},\"endPoint\":{\"x\":411.82,\"y\":-323.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":411.82,\"y\":-323.26},\"endPoint\":{\"x\":311.82,\"y\":-323.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":311.82,\"y\":-323.26},\"endPoint\":{\"x\":311.82,\"y\":-367.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":311.82,\"y\":-367.26},\"endPoint\":{\"x\":411.82,\"y\":-367.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-010\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-010\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":361.82,\"yaxis\":-345.26,\"shopNav\":75,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":411.82,\"y\":-424.26},\"endPoint\":{\"x\":411.82,\"y\":-380.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":411.82,\"y\":-380.26},\"endPoint\":{\"x\":311.82,\"y\":-380.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":311.82,\"y\":-380.26},\"endPoint\":{\"x\":311.82,\"y\":-424.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":311.82,\"y\":-424.26},\"endPoint\":{\"x\":411.82,\"y\":-424.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-011\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-011\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":361.82,\"yaxis\":-402.26,\"shopNav\":76,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":411.82,\"y\":-469.26},\"endPoint\":{\"x\":411.82,\"y\":-425.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":411.82,\"y\":-425.26},\"endPoint\":{\"x\":311.82,\"y\":-425.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":311.82,\"y\":-425.26},\"endPoint\":{\"x\":311.82,\"y\":-469.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":311.82,\"y\":-469.26},\"endPoint\":{\"x\":411.82,\"y\":-469.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-012\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-012\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":361.82,\"yaxis\":-447.26,\"shopNav\":76,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-102.18,\"y\":-124.26},\"endPoint\":{\"x\":-102.18,\"y\":-80.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-102.18,\"y\":-80.26},\"endPoint\":{\"x\":-202.18,\"y\":-80.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-202.18,\"y\":-80.26},\"endPoint\":{\"x\":-202.18,\"y\":-124.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-202.18,\"y\":-124.26},\"endPoint\":{\"x\":-102.18,\"y\":-124.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-142\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-142\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":-152.18,\"yaxis\":-102.26,\"shopNav\":69,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-102.18,\"y\":-169.26},\"endPoint\":{\"x\":-102.18,\"y\":-125.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-102.18,\"y\":-125.26},\"endPoint\":{\"x\":-202.18,\"y\":-125.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-202.18,\"y\":-125.26},\"endPoint\":{\"x\":-202.18,\"y\":-169.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-202.18,\"y\":-169.26},\"endPoint\":{\"x\":-102.18,\"y\":-169.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-143\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-143\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":-152.18,\"yaxis\":-147.26,\"shopNav\":69,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-102.18,\"y\":-214.26},\"endPoint\":{\"x\":-102.18,\"y\":-170.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-102.18,\"y\":-170.26},\"endPoint\":{\"x\":-202.18,\"y\":-170.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-202.18,\"y\":-170.26},\"endPoint\":{\"x\":-202.18,\"y\":-214.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-202.18,\"y\":-214.26},\"endPoint\":{\"x\":-102.18,\"y\":-214.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-144\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-144\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":-152.18,\"yaxis\":-192.26,\"shopNav\":69,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-102.18,\"y\":-269.26},\"endPoint\":{\"x\":-102.18,\"y\":-225.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-102.18,\"y\":-225.26},\"endPoint\":{\"x\":-202.18,\"y\":-225.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-202.18,\"y\":-225.26},\"endPoint\":{\"x\":-202.18,\"y\":-269.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-202.18,\"y\":-269.26},\"endPoint\":{\"x\":-102.18,\"y\":-269.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-145\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-145\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":-152.18,\"yaxis\":-247.26,\"shopNav\":70,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-102.18,\"y\":-314.26},\"endPoint\":{\"x\":-102.18,\"y\":-270.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-102.18,\"y\":-270.26},\"endPoint\":{\"x\":-202.18,\"y\":-270.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-202.18,\"y\":-270.26},\"endPoint\":{\"x\":-202.18,\"y\":-314.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-202.18,\"y\":-314.26},\"endPoint\":{\"x\":-102.18,\"y\":-314.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-146\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-146\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":-152.18,\"yaxis\":-292.26,\"shopNav\":70,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-203.18,\"y\":-314.26},\"endPoint\":{\"x\":-203.18,\"y\":-270.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-203.18,\"y\":-270.26},\"endPoint\":{\"x\":-303.18,\"y\":-270.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-303.18,\"y\":-270.26},\"endPoint\":{\"x\":-303.18,\"y\":-314.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-303.18,\"y\":-314.26},\"endPoint\":{\"x\":-203.18,\"y\":-314.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-147\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-147\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":-253.18,\"yaxis\":-292.26,\"shopNav\":61,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-203.18,\"y\":-269.26},\"endPoint\":{\"x\":-203.18,\"y\":-225.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-203.18,\"y\":-225.26},\"endPoint\":{\"x\":-303.18,\"y\":-225.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-303.18,\"y\":-225.26},\"endPoint\":{\"x\":-303.18,\"y\":-269.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-303.18,\"y\":-269.26},\"endPoint\":{\"x\":-203.18,\"y\":-269.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-148\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-148\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":-253.18,\"yaxis\":-247.26,\"shopNav\":62,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-203.18,\"y\":-214.26},\"endPoint\":{\"x\":-203.18,\"y\":-170.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-203.18,\"y\":-170.26},\"endPoint\":{\"x\":-303.18,\"y\":-170.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-303.18,\"y\":-170.26},\"endPoint\":{\"x\":-303.18,\"y\":-214.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-303.18,\"y\":-214.26},\"endPoint\":{\"x\":-203.18,\"y\":-214.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-149\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-149\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":-253.18,\"yaxis\":-192.26,\"shopNav\":62,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-203.18,\"y\":-169.26},\"endPoint\":{\"x\":-203.18,\"y\":-125.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-203.18,\"y\":-125.26},\"endPoint\":{\"x\":-303.18,\"y\":-125.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-303.18,\"y\":-125.26},\"endPoint\":{\"x\":-303.18,\"y\":-169.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-303.18,\"y\":-169.26},\"endPoint\":{\"x\":-203.18,\"y\":-169.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-150\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-150\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":-253.18,\"yaxis\":-147.26,\"shopNav\":62,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-203.18,\"y\":-124.26},\"endPoint\":{\"x\":-203.18,\"y\":-80.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-203.18,\"y\":-80.26},\"endPoint\":{\"x\":-303.18,\"y\":-80.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-303.18,\"y\":-80.26},\"endPoint\":{\"x\":-303.18,\"y\":-124.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-303.18,\"y\":-124.26},\"endPoint\":{\"x\":-203.18,\"y\":-124.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-151\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-151\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":-253.18,\"yaxis\":-102.26,\"shopNav\":62,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-407.18,\"y\":-150.26},\"endPoint\":{\"x\":-407.18,\"y\":-106.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-407.18,\"y\":-106.26},\"endPoint\":{\"x\":-507.18,\"y\":-106.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-507.18,\"y\":-106.26},\"endPoint\":{\"x\":-507.18,\"y\":-150.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-507.18,\"y\":-150.26},\"endPoint\":{\"x\":-407.18,\"y\":-150.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-158\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-158\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":-457.18,\"yaxis\":-128.26,\"shopNav\":62,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-407.18,\"y\":-195.26},\"endPoint\":{\"x\":-407.18,\"y\":-151.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-407.18,\"y\":-151.26},\"endPoint\":{\"x\":-507.18,\"y\":-151.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-507.18,\"y\":-151.26},\"endPoint\":{\"x\":-507.18,\"y\":-195.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-507.18,\"y\":-195.26},\"endPoint\":{\"x\":-407.18,\"y\":-195.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-159\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-159\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":-457.18,\"yaxis\":-173.26,\"shopNav\":62,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-407.18,\"y\":-240.26},\"endPoint\":{\"x\":-407.18,\"y\":-196.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-407.18,\"y\":-196.26},\"endPoint\":{\"x\":-507.18,\"y\":-196.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-507.18,\"y\":-196.26},\"endPoint\":{\"x\":-507.18,\"y\":-240.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-507.18,\"y\":-240.26},\"endPoint\":{\"x\":-407.18,\"y\":-240.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-160\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-160\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":-457.18,\"yaxis\":-218.26,\"shopNav\":62,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-508.18,\"y\":-240.26},\"endPoint\":{\"x\":-508.18,\"y\":-196.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-508.18,\"y\":-196.26},\"endPoint\":{\"x\":-608.18,\"y\":-196.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-608.18,\"y\":-196.26},\"endPoint\":{\"x\":-608.18,\"y\":-240.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-608.18,\"y\":-240.26},\"endPoint\":{\"x\":-508.18,\"y\":-240.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-161\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-161\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":-558.1800000000001,\"yaxis\":-218.26,\"shopNav\":19,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-508.18,\"y\":-195.26},\"endPoint\":{\"x\":-508.18,\"y\":-151.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-508.18,\"y\":-151.26},\"endPoint\":{\"x\":-608.18,\"y\":-151.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-608.18,\"y\":-151.26},\"endPoint\":{\"x\":-608.18,\"y\":-195.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-608.18,\"y\":-195.26},\"endPoint\":{\"x\":-508.18,\"y\":-195.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-162\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-162\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":-558.1800000000001,\"yaxis\":-173.26,\"shopNav\":19,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-508.18,\"y\":-150.26},\"endPoint\":{\"x\":-508.18,\"y\":-106.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-508.18,\"y\":-106.26},\"endPoint\":{\"x\":-608.18,\"y\":-106.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-608.18,\"y\":-106.26},\"endPoint\":{\"x\":-608.18,\"y\":-150.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-608.18,\"y\":-150.26},\"endPoint\":{\"x\":-508.18,\"y\":-150.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-163\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-163\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":-558.1800000000001,\"yaxis\":-128.26,\"shopNav\":19,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-705.18,\"y\":-240.26},\"endPoint\":{\"x\":-705.18,\"y\":-196.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-705.18,\"y\":-196.26},\"endPoint\":{\"x\":-805.18,\"y\":-196.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-805.18,\"y\":-196.26},\"endPoint\":{\"x\":-805.18,\"y\":-240.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-805.18,\"y\":-240.26},\"endPoint\":{\"x\":-705.18,\"y\":-240.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-167\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-167\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":-755.1800000000001,\"yaxis\":-218.26,\"shopNav\":19,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-705.18,\"y\":-195.26},\"endPoint\":{\"x\":-705.18,\"y\":-151.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-705.18,\"y\":-151.26},\"endPoint\":{\"x\":-805.18,\"y\":-151.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-805.18,\"y\":-151.26},\"endPoint\":{\"x\":-805.18,\"y\":-195.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-805.18,\"y\":-195.26},\"endPoint\":{\"x\":-705.18,\"y\":-195.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-168\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-168\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":-755.1800000000001,\"yaxis\":-173.26,\"shopNav\":19,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-705.18,\"y\":-150.26},\"endPoint\":{\"x\":-705.18,\"y\":-106.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-705.18,\"y\":-106.26},\"endPoint\":{\"x\":-805.18,\"y\":-106.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-805.18,\"y\":-106.26},\"endPoint\":{\"x\":-805.18,\"y\":-150.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-805.18,\"y\":-150.26},\"endPoint\":{\"x\":-705.18,\"y\":-150.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-169\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-169\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":-755.18,\"yaxis\":-128.26,\"shopNav\":19,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-806.18,\"y\":-150.26},\"endPoint\":{\"x\":-806.18,\"y\":-106.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-806.18,\"y\":-106.26},\"endPoint\":{\"x\":-906.18,\"y\":-106.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-906.18,\"y\":-106.26},\"endPoint\":{\"x\":-906.18,\"y\":-150.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-906.18,\"y\":-150.26},\"endPoint\":{\"x\":-806.18,\"y\":-150.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-176\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-176\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":-856.1800000000001,\"yaxis\":-128.26,\"shopNav\":34,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-806.18,\"y\":-195.26},\"endPoint\":{\"x\":-806.18,\"y\":-151.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-806.18,\"y\":-151.26},\"endPoint\":{\"x\":-906.18,\"y\":-151.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-906.18,\"y\":-151.26},\"endPoint\":{\"x\":-906.18,\"y\":-195.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-906.18,\"y\":-195.26},\"endPoint\":{\"x\":-806.18,\"y\":-195.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-177\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-177\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":-856.1800000000001,\"yaxis\":-173.26,\"shopNav\":34,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-806.18,\"y\":-240.26},\"endPoint\":{\"x\":-806.18,\"y\":-196.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-806.18,\"y\":-196.26},\"endPoint\":{\"x\":-906.18,\"y\":-196.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-906.18,\"y\":-196.26},\"endPoint\":{\"x\":-906.18,\"y\":-240.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-906.18,\"y\":-240.26},\"endPoint\":{\"x\":-806.18,\"y\":-240.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-178\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-178\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":-856.1800000000001,\"yaxis\":-218.26,\"shopNav\":34,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-806.18,\"y\":-302.26},\"endPoint\":{\"x\":-806.18,\"y\":-258.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-806.18,\"y\":-258.26},\"endPoint\":{\"x\":-906.18,\"y\":-258.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-906.18,\"y\":-258.26},\"endPoint\":{\"x\":-906.18,\"y\":-302.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-906.18,\"y\":-302.26},\"endPoint\":{\"x\":-806.18,\"y\":-302.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-179\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-179\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":-856.1800000000001,\"yaxis\":-280.26,\"shopNav\":33,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-806.18,\"y\":-347.26},\"endPoint\":{\"x\":-806.18,\"y\":-303.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-806.18,\"y\":-303.26},\"endPoint\":{\"x\":-906.18,\"y\":-303.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-906.18,\"y\":-303.26},\"endPoint\":{\"x\":-906.18,\"y\":-347.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-906.18,\"y\":-347.26},\"endPoint\":{\"x\":-806.18,\"y\":-347.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-180\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-180\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":-856.1800000000001,\"yaxis\":-325.26,\"shopNav\":33,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-806.18,\"y\":-392.26},\"endPoint\":{\"x\":-806.18,\"y\":-348.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-806.18,\"y\":-348.26},\"endPoint\":{\"x\":-906.18,\"y\":-348.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-906.18,\"y\":-348.26},\"endPoint\":{\"x\":-906.18,\"y\":-392.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-906.18,\"y\":-392.26},\"endPoint\":{\"x\":-806.18,\"y\":-392.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-181\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-181\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":-856.1800000000001,\"yaxis\":-370.26,\"shopNav\":33,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-806.18,\"y\":-472.26},\"endPoint\":{\"x\":-806.18,\"y\":-428.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-806.18,\"y\":-428.26},\"endPoint\":{\"x\":-906.18,\"y\":-428.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-906.18,\"y\":-428.26},\"endPoint\":{\"x\":-906.18,\"y\":-472.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-906.18,\"y\":-472.26},\"endPoint\":{\"x\":-806.18,\"y\":-472.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-182\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-182\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":-856.1800000000001,\"yaxis\":-450.26,\"shopNav\":32,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-806.18,\"y\":-517.26},\"endPoint\":{\"x\":-806.18,\"y\":-473.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-806.18,\"y\":-473.26},\"endPoint\":{\"x\":-906.18,\"y\":-473.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-906.18,\"y\":-473.26},\"endPoint\":{\"x\":-906.18,\"y\":-517.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-906.18,\"y\":-517.26},\"endPoint\":{\"x\":-806.18,\"y\":-517.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-183\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-183\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":-856.1800000000001,\"yaxis\":-495.26,\"shopNav\":32,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-806.18,\"y\":-582.26},\"endPoint\":{\"x\":-806.18,\"y\":-538.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-806.18,\"y\":-538.26},\"endPoint\":{\"x\":-906.18,\"y\":-538.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-906.18,\"y\":-538.26},\"endPoint\":{\"x\":-906.18,\"y\":-582.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-906.18,\"y\":-582.26},\"endPoint\":{\"x\":-806.18,\"y\":-582.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-184\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-184\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":-856.18,\"yaxis\":-560.26,\"shopNav\":31,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-878.18,\"y\":-685.26},\"endPoint\":{\"x\":-834.18,\"y\":-685.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-834.18,\"y\":-685.26},\"endPoint\":{\"x\":-834.18,\"y\":-585.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-834.18,\"y\":-585.26},\"endPoint\":{\"x\":-878.18,\"y\":-585.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-878.18,\"y\":-585.26},\"endPoint\":{\"x\":-878.18,\"y\":-685.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-185\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-185\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":-856.18,\"yaxis\":-635.26,\"shopNav\":31,\"childArea\":[],\"angle\":0},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-833.18,\"y\":-685.26},\"endPoint\":{\"x\":-789.18,\"y\":-685.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-789.18,\"y\":-685.26},\"endPoint\":{\"x\":-789.18,\"y\":-585.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-789.18,\"y\":-585.26},\"endPoint\":{\"x\":-833.18,\"y\":-585.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-833.18,\"y\":-585.26},\"endPoint\":{\"x\":-833.18,\"y\":-685.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-186\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-186\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":-811.18,\"yaxis\":-635.26,\"shopNav\":53,\"childArea\":[],\"angle\":0},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-788.18,\"y\":-685.26},\"endPoint\":{\"x\":-744.18,\"y\":-685.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-744.18,\"y\":-685.26},\"endPoint\":{\"x\":-744.18,\"y\":-585.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-744.18,\"y\":-585.26},\"endPoint\":{\"x\":-788.18,\"y\":-585.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-788.18,\"y\":-585.26},\"endPoint\":{\"x\":-788.18,\"y\":-685.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-187\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-187\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":-766.18,\"yaxis\":-635.26,\"shopNav\":54,\"childArea\":[],\"angle\":0},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-678.18,\"y\":-685.26},\"endPoint\":{\"x\":-634.18,\"y\":-685.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-634.18,\"y\":-685.26},\"endPoint\":{\"x\":-634.18,\"y\":-585.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-634.18,\"y\":-585.26},\"endPoint\":{\"x\":-678.18,\"y\":-585.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-678.18,\"y\":-585.26},\"endPoint\":{\"x\":-678.18,\"y\":-685.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-188\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-188\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":-656.18,\"yaxis\":-635.26,\"shopNav\":26,\"childArea\":[],\"angle\":0},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-633.18,\"y\":-685.26},\"endPoint\":{\"x\":-589.18,\"y\":-685.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-589.18,\"y\":-685.26},\"endPoint\":{\"x\":-589.18,\"y\":-585.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-589.18,\"y\":-585.26},\"endPoint\":{\"x\":-633.18,\"y\":-585.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-633.18,\"y\":-585.26},\"endPoint\":{\"x\":-633.18,\"y\":-685.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-189\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-189\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":-611.18,\"yaxis\":-635.26,\"shopNav\":26,\"childArea\":[],\"angle\":0},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-564.18,\"y\":-685.26},\"endPoint\":{\"x\":-520.18,\"y\":-685.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-520.18,\"y\":-685.26},\"endPoint\":{\"x\":-520.18,\"y\":-585.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-520.18,\"y\":-585.26},\"endPoint\":{\"x\":-564.18,\"y\":-585.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-564.18,\"y\":-585.26},\"endPoint\":{\"x\":-564.18,\"y\":-685.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-190\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-190\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":-542.18,\"yaxis\":-635.26,\"shopNav\":26,\"childArea\":[],\"angle\":0},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-519.18,\"y\":-685.26},\"endPoint\":{\"x\":-475.18,\"y\":-685.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-475.18,\"y\":-685.26},\"endPoint\":{\"x\":-475.18,\"y\":-585.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-475.18,\"y\":-585.26},\"endPoint\":{\"x\":-519.18,\"y\":-585.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-519.18,\"y\":-585.26},\"endPoint\":{\"x\":-519.18,\"y\":-685.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-191\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-191\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":-497.17999999999995,\"yaxis\":-635.26,\"shopNav\":56,\"childArea\":[],\"angle\":0},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-474.18,\"y\":-685.26},\"endPoint\":{\"x\":-430.18,\"y\":-685.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-430.18,\"y\":-685.26},\"endPoint\":{\"x\":-430.18,\"y\":-585.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-430.18,\"y\":-585.26},\"endPoint\":{\"x\":-474.18,\"y\":-585.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-474.18,\"y\":-585.26},\"endPoint\":{\"x\":-474.18,\"y\":-685.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-192\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-192\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":-452.18,\"yaxis\":-635.26,\"shopNav\":56,\"childArea\":[],\"angle\":0},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-407.18,\"y\":-583.26},\"endPoint\":{\"x\":-407.18,\"y\":-539.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-407.18,\"y\":-539.26},\"endPoint\":{\"x\":-507.18,\"y\":-539.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-507.18,\"y\":-539.26},\"endPoint\":{\"x\":-507.18,\"y\":-583.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-507.18,\"y\":-583.26},\"endPoint\":{\"x\":-407.18,\"y\":-583.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-193\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-193\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":-457.18,\"yaxis\":-561.26,\"shopNav\":59,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-407.18,\"y\":-519.26},\"endPoint\":{\"x\":-407.18,\"y\":-475.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-407.18,\"y\":-475.26},\"endPoint\":{\"x\":-507.18,\"y\":-475.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-507.18,\"y\":-475.26},\"endPoint\":{\"x\":-507.18,\"y\":-519.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-507.18,\"y\":-519.26},\"endPoint\":{\"x\":-407.18,\"y\":-519.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-194\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-194\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":-457.18,\"yaxis\":-497.26,\"shopNav\":59,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-407.18,\"y\":-474.26},\"endPoint\":{\"x\":-407.18,\"y\":-430.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-407.18,\"y\":-430.26},\"endPoint\":{\"x\":-507.18,\"y\":-430.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-507.18,\"y\":-430.26},\"endPoint\":{\"x\":-507.18,\"y\":-474.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-507.18,\"y\":-474.26},\"endPoint\":{\"x\":-407.18,\"y\":-474.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-195\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-195\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":-457.18,\"yaxis\":-452.26,\"shopNav\":60,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":840.82,\"y\":493.74},\"endPoint\":{\"x\":840.82,\"y\":537.74},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":840.82,\"y\":537.74},\"endPoint\":{\"x\":740.82,\"y\":537.74},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":740.82,\"y\":537.74},\"endPoint\":{\"x\":740.82,\"y\":493.74},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":740.82,\"y\":493.74},\"endPoint\":{\"x\":840.82,\"y\":493.74},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-204\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-204\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":790.82,\"yaxis\":515.74,\"shopNav\":86,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":840.82,\"y\":448.74},\"endPoint\":{\"x\":840.82,\"y\":492.74},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":840.82,\"y\":492.74},\"endPoint\":{\"x\":740.82,\"y\":492.74},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":740.82,\"y\":492.74},\"endPoint\":{\"x\":740.82,\"y\":448.74},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":740.82,\"y\":448.74},\"endPoint\":{\"x\":840.82,\"y\":448.74},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-205\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-205\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":790.82,\"yaxis\":470.74,\"shopNav\":88,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":840.82,\"y\":403.74},\"endPoint\":{\"x\":840.82,\"y\":447.74},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":840.82,\"y\":447.74},\"endPoint\":{\"x\":740.82,\"y\":447.74},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":740.82,\"y\":447.74},\"endPoint\":{\"x\":740.82,\"y\":403.74},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":740.82,\"y\":403.74},\"endPoint\":{\"x\":840.82,\"y\":403.74},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-206\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-206\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":790.82,\"yaxis\":425.74,\"shopNav\":88,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":840.82,\"y\":340.74},\"endPoint\":{\"x\":840.82,\"y\":384.74},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":840.82,\"y\":384.74},\"endPoint\":{\"x\":740.82,\"y\":384.74},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":740.82,\"y\":384.74},\"endPoint\":{\"x\":740.82,\"y\":340.74},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":740.82,\"y\":340.74},\"endPoint\":{\"x\":840.82,\"y\":340.74},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-207\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-207\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":790.82,\"yaxis\":362.74,\"shopNav\":87,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":840.82,\"y\":295.74},\"endPoint\":{\"x\":840.82,\"y\":339.74},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":840.82,\"y\":339.74},\"endPoint\":{\"x\":740.82,\"y\":339.74},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":740.82,\"y\":339.74},\"endPoint\":{\"x\":740.82,\"y\":295.74},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":740.82,\"y\":295.74},\"endPoint\":{\"x\":840.82,\"y\":295.74},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-208\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-208\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":790.82,\"yaxis\":317.74,\"shopNav\":87,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":840.82,\"y\":250.74},\"endPoint\":{\"x\":840.82,\"y\":294.74},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":840.82,\"y\":294.74},\"endPoint\":{\"x\":740.82,\"y\":294.74},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":740.82,\"y\":294.74},\"endPoint\":{\"x\":740.82,\"y\":250.74},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":740.82,\"y\":250.74},\"endPoint\":{\"x\":840.82,\"y\":250.74},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-209\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-209\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":790.82,\"yaxis\":272.74,\"shopNav\":87,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":1130.82,\"y\":443.74},\"endPoint\":{\"x\":1130.82,\"y\":487.74},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":1130.82,\"y\":487.74},\"endPoint\":{\"x\":1030.82,\"y\":487.74},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":1030.82,\"y\":487.74},\"endPoint\":{\"x\":1030.82,\"y\":443.74},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":1030.82,\"y\":443.74},\"endPoint\":{\"x\":1130.82,\"y\":443.74},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-210\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-210\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":1080.8200000000002,\"yaxis\":465.74,\"shopNav\":88,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":1130.82,\"y\":488.74},\"endPoint\":{\"x\":1130.82,\"y\":532.74},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":1130.82,\"y\":532.74},\"endPoint\":{\"x\":1030.82,\"y\":532.74},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":1030.82,\"y\":532.74},\"endPoint\":{\"x\":1030.82,\"y\":488.74},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":1030.82,\"y\":488.74},\"endPoint\":{\"x\":1130.82,\"y\":488.74},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-211\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-211\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":1080.8200000000002,\"yaxis\":510.74,\"shopNav\":86,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":421.82,\"y\":250.74},\"endPoint\":{\"x\":421.82,\"y\":294.74},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":421.82,\"y\":294.74},\"endPoint\":{\"x\":321.82,\"y\":294.74},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":321.82,\"y\":294.74},\"endPoint\":{\"x\":321.82,\"y\":250.74},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":321.82,\"y\":250.74},\"endPoint\":{\"x\":421.82,\"y\":250.74},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-196\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-196\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":371.82,\"yaxis\":272.74,\"shopNav\":91,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":616.82,\"y\":250.74},\"endPoint\":{\"x\":616.82,\"y\":294.74},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":616.82,\"y\":294.74},\"endPoint\":{\"x\":516.82,\"y\":294.74},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":516.82,\"y\":294.74},\"endPoint\":{\"x\":516.82,\"y\":250.74},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":516.82,\"y\":250.74},\"endPoint\":{\"x\":616.82,\"y\":250.74},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-202\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-202\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":566.82,\"yaxis\":272.74,\"shopNav\":24,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":676.82,\"y\":250.74},\"endPoint\":{\"x\":720.82,\"y\":250.74},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":720.82,\"y\":250.74},\"endPoint\":{\"x\":720.82,\"y\":350.74},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":720.82,\"y\":350.74},\"endPoint\":{\"x\":676.82,\"y\":350.74},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":676.82,\"y\":350.74},\"endPoint\":{\"x\":676.82,\"y\":250.74},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-203\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-203\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":698.82,\"yaxis\":300.74,\"shopNav\":84,\"childArea\":[],\"angle\":0},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":421.82,\"y\":608.74},\"endPoint\":{\"x\":421.82,\"y\":652.74},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":421.82,\"y\":652.74},\"endPoint\":{\"x\":321.82,\"y\":652.74},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":321.82,\"y\":652.74},\"endPoint\":{\"x\":321.82,\"y\":608.74},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":321.82,\"y\":608.74},\"endPoint\":{\"x\":421.82,\"y\":608.74},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-197\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-197\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":371.82,\"yaxis\":630.74,\"shopNav\":90,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":421.82,\"y\":680.74},\"endPoint\":{\"x\":421.82,\"y\":724.74},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":421.82,\"y\":724.74},\"endPoint\":{\"x\":321.82,\"y\":724.74},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":321.82,\"y\":724.74},\"endPoint\":{\"x\":321.82,\"y\":680.74},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":321.82,\"y\":680.74},\"endPoint\":{\"x\":421.82,\"y\":680.74},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-198\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-198\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":371.82,\"yaxis\":702.74,\"shopNav\":89,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":421.82,\"y\":725.74},\"endPoint\":{\"x\":421.82,\"y\":769.74},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":421.82,\"y\":769.74},\"endPoint\":{\"x\":321.82,\"y\":769.74},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":321.82,\"y\":769.74},\"endPoint\":{\"x\":321.82,\"y\":725.74},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":321.82,\"y\":725.74},\"endPoint\":{\"x\":421.82,\"y\":725.74},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-199\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-199\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":371.82,\"yaxis\":747.74,\"shopNav\":89,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":487.82,\"y\":824.74},\"endPoint\":{\"x\":487.82,\"y\":868.74},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":487.82,\"y\":868.74},\"endPoint\":{\"x\":387.82,\"y\":868.74},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":387.82,\"y\":868.74},\"endPoint\":{\"x\":387.82,\"y\":824.74},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":387.82,\"y\":824.74},\"endPoint\":{\"x\":487.82,\"y\":824.74},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-200\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-200\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":437.82,\"yaxis\":846.74,\"shopNav\":9,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":487.82,\"y\":869.74},\"endPoint\":{\"x\":487.82,\"y\":913.74},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":487.82,\"y\":913.74},\"endPoint\":{\"x\":387.82,\"y\":913.74},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":387.82,\"y\":913.74},\"endPoint\":{\"x\":387.82,\"y\":869.74},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":387.82,\"y\":869.74},\"endPoint\":{\"x\":487.82,\"y\":869.74},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-201\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-201\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":437.82,\"yaxis\":891.74,\"shopNav\":9,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":199.82,\"y\":745.74},\"endPoint\":{\"x\":199.82,\"y\":789.74},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":199.82,\"y\":789.74},\"endPoint\":{\"x\":99.82,\"y\":789.74},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":99.82,\"y\":789.74},\"endPoint\":{\"x\":99.82,\"y\":745.74},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":99.82,\"y\":745.74},\"endPoint\":{\"x\":199.82,\"y\":745.74},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-107\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-107\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":149.82,\"yaxis\":767.74,\"shopNav\":89,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":199.82,\"y\":490.74},\"endPoint\":{\"x\":199.82,\"y\":534.74},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":199.82,\"y\":534.74},\"endPoint\":{\"x\":99.82,\"y\":534.74},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":99.82,\"y\":534.74},\"endPoint\":{\"x\":99.82,\"y\":490.74},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":99.82,\"y\":490.74},\"endPoint\":{\"x\":199.82,\"y\":490.74},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-108\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-108\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":149.82,\"yaxis\":512.74,\"shopNav\":92,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":137.47,\"y\":224.74},\"endPoint\":{\"x\":181.47,\"y\":224.74},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":181.47,\"y\":224.74},\"endPoint\":{\"x\":181.47,\"y\":324.74},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":181.47,\"y\":324.74},\"endPoint\":{\"x\":137.47,\"y\":324.74},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":137.47,\"y\":324.74},\"endPoint\":{\"x\":137.47,\"y\":224.74},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-109\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-109\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":159.48666666666682,\"yaxis\":274.7300000000001,\"shopNav\":91,\"childArea\":[],\"angle\":0},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":92.47,\"y\":224.74},\"endPoint\":{\"x\":136.47,\"y\":224.74},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":136.47,\"y\":224.74},\"endPoint\":{\"x\":136.47,\"y\":324.74},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":136.47,\"y\":324.74},\"endPoint\":{\"x\":92.47,\"y\":324.74},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":92.47,\"y\":324.74},\"endPoint\":{\"x\":92.47,\"y\":224.74},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-110\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-110\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":114.48666666666682,\"yaxis\":274.7300000000001,\"shopNav\":82,\"childArea\":[],\"angle\":0},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":47.47,\"y\":224.74},\"endPoint\":{\"x\":91.47,\"y\":224.74},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":91.47,\"y\":224.74},\"endPoint\":{\"x\":91.47,\"y\":324.74},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":91.47,\"y\":324.74},\"endPoint\":{\"x\":47.47,\"y\":324.74},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":47.47,\"y\":324.74},\"endPoint\":{\"x\":47.47,\"y\":224.74},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-111\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-111\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":69.48666666666682,\"yaxis\":274.7300000000001,\"shopNav\":82,\"childArea\":[],\"angle\":0},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-17.53,\"y\":224.74},\"endPoint\":{\"x\":26.47,\"y\":224.74},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":26.47,\"y\":224.74},\"endPoint\":{\"x\":26.47,\"y\":324.74},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":26.47,\"y\":324.74},\"endPoint\":{\"x\":-17.53,\"y\":324.74},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-17.53,\"y\":324.74},\"endPoint\":{\"x\":-17.53,\"y\":224.74},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-112\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-112\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":4.486666666666821,\"yaxis\":274.7300000000001,\"shopNav\":22,\"childArea\":[],\"angle\":0},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-62.53,\"y\":224.74},\"endPoint\":{\"x\":-18.53,\"y\":224.74},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-18.53,\"y\":224.74},\"endPoint\":{\"x\":-18.53,\"y\":324.74},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-18.53,\"y\":324.74},\"endPoint\":{\"x\":-62.53,\"y\":324.74},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-62.53,\"y\":324.74},\"endPoint\":{\"x\":-62.53,\"y\":224.74},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-113\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-113\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":-40.51333333333318,\"yaxis\":274.7300000000001,\"shopNav\":22,\"childArea\":[],\"angle\":0},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-107.53,\"y\":224.74},\"endPoint\":{\"x\":-63.53,\"y\":224.74},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-63.53,\"y\":224.74},\"endPoint\":{\"x\":-63.53,\"y\":324.74},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-63.53,\"y\":324.74},\"endPoint\":{\"x\":-107.53,\"y\":324.74},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-107.53,\"y\":324.74},\"endPoint\":{\"x\":-107.53,\"y\":224.74},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-114\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-114\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":-85.51333333333318,\"yaxis\":274.7300000000001,\"shopNav\":22,\"childArea\":[],\"angle\":0},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-171.53,\"y\":224.74},\"endPoint\":{\"x\":-127.53,\"y\":224.74},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-127.53,\"y\":224.74},\"endPoint\":{\"x\":-127.53,\"y\":324.74},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-127.53,\"y\":324.74},\"endPoint\":{\"x\":-171.53,\"y\":324.74},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-171.53,\"y\":324.74},\"endPoint\":{\"x\":-171.53,\"y\":224.74},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-115\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-115\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":-149.51333333333318,\"yaxis\":274.7300000000001,\"shopNav\":67,\"childArea\":[],\"angle\":0},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-316.53,\"y\":224.74},\"endPoint\":{\"x\":-272.53,\"y\":224.74},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-272.53,\"y\":224.74},\"endPoint\":{\"x\":-272.53,\"y\":324.74},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-272.53,\"y\":324.74},\"endPoint\":{\"x\":-316.53,\"y\":324.74},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-316.53,\"y\":324.74},\"endPoint\":{\"x\":-316.53,\"y\":224.74},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-116\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-116\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":-294.53,\"yaxis\":274.74,\"shopNav\":20,\"childArea\":[],\"angle\":0},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-361.53,\"y\":204.74},\"endPoint\":{\"x\":-317.53,\"y\":204.74},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-317.53,\"y\":204.74},\"endPoint\":{\"x\":-317.53,\"y\":304.74},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-317.53,\"y\":304.74},\"endPoint\":{\"x\":-361.53,\"y\":304.74},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-361.53,\"y\":304.74},\"endPoint\":{\"x\":-361.53,\"y\":204.74},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-117\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-117\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":-339.5133333333332,\"yaxis\":254.73000000000008,\"shopNav\":20,\"childArea\":[],\"angle\":0},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-406.53,\"y\":204.74},\"endPoint\":{\"x\":-362.53,\"y\":204.74},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-362.53,\"y\":204.74},\"endPoint\":{\"x\":-362.53,\"y\":304.74},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-362.53,\"y\":304.74},\"endPoint\":{\"x\":-406.53,\"y\":304.74},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-406.53,\"y\":304.74},\"endPoint\":{\"x\":-406.53,\"y\":204.74},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#CCB7EF\",\"name\":\"B2-A-118\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-A-118\",\"park_first\":\"B2-A-\",\"park_after\":\"\",\"xaxis\":-384.5133333333332,\"yaxis\":254.73000000000008,\"shopNav\":20,\"childArea\":[],\"angle\":0},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-705.18,\"y\":-55.26},\"endPoint\":{\"x\":-705.18,\"y\":-11.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-705.18,\"y\":-11.26},\"endPoint\":{\"x\":-805.18,\"y\":-11.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-805.18,\"y\":-11.26},\"endPoint\":{\"x\":-805.18,\"y\":-55.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-805.18,\"y\":-55.26},\"endPoint\":{\"x\":-705.18,\"y\":-55.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#E6DB9C\",\"name\":\"B2-C-170\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-C-170\",\"park_first\":\"B2-C-\",\"park_after\":\"\",\"xaxis\":-755.18,\"yaxis\":-33.260000000000005,\"shopNav\":52,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-705.18,\"y\":-10.26},\"endPoint\":{\"x\":-705.18,\"y\":33.74},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-705.18,\"y\":33.74},\"endPoint\":{\"x\":-805.18,\"y\":33.74},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-805.18,\"y\":33.74},\"endPoint\":{\"x\":-805.18,\"y\":-10.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-805.18,\"y\":-10.26},\"endPoint\":{\"x\":-705.18,\"y\":-10.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#E6DB9C\",\"name\":\"B2-C-171\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-C-171\",\"park_first\":\"B2-C-\",\"park_after\":\"\",\"xaxis\":-755.18,\"yaxis\":11.739999999999995,\"shopNav\":52,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-705.18,\"y\":34.74},\"endPoint\":{\"x\":-705.18,\"y\":78.74},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-705.18,\"y\":78.74},\"endPoint\":{\"x\":-805.18,\"y\":78.74},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-805.18,\"y\":78.74},\"endPoint\":{\"x\":-805.18,\"y\":34.74},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-805.18,\"y\":34.74},\"endPoint\":{\"x\":-705.18,\"y\":34.74},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#E6DB9C\",\"name\":\"B2-C-172\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-C-172\",\"park_first\":\"B2-C-\",\"park_after\":\"\",\"xaxis\":-755.18,\"yaxis\":56.739999999999995,\"shopNav\":65,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-806.18,\"y\":34.74},\"endPoint\":{\"x\":-806.18,\"y\":78.74},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-806.18,\"y\":78.74},\"endPoint\":{\"x\":-906.18,\"y\":78.74},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-906.18,\"y\":78.74},\"endPoint\":{\"x\":-906.18,\"y\":34.74},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-906.18,\"y\":34.74},\"endPoint\":{\"x\":-806.18,\"y\":34.74},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#E6DB9C\",\"name\":\"B2-C-173\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-C-173\",\"park_first\":\"B2-C-\",\"park_after\":\"\",\"xaxis\":-856.18,\"yaxis\":56.739999999999995,\"shopNav\":35,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-806.18,\"y\":-10.26},\"endPoint\":{\"x\":-806.18,\"y\":33.74},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-806.18,\"y\":33.74},\"endPoint\":{\"x\":-906.18,\"y\":33.74},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-906.18,\"y\":33.74},\"endPoint\":{\"x\":-906.18,\"y\":-10.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-906.18,\"y\":-10.26},\"endPoint\":{\"x\":-806.18,\"y\":-10.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#E6DB9C\",\"name\":\"B2-C-174\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-C-174\",\"park_first\":\"B2-C-\",\"park_after\":\"\",\"xaxis\":-856.18,\"yaxis\":11.740000000000002,\"shopNav\":35,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-806.18,\"y\":-55.26},\"endPoint\":{\"x\":-806.18,\"y\":-11.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-806.18,\"y\":-11.26},\"endPoint\":{\"x\":-906.18,\"y\":-11.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-906.18,\"y\":-11.26},\"endPoint\":{\"x\":-906.18,\"y\":-55.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-906.18,\"y\":-55.26},\"endPoint\":{\"x\":-806.18,\"y\":-55.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#E6DB9C\",\"name\":\"B2-C-175\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-C-175\",\"park_first\":\"B2-C-\",\"park_after\":\"\",\"xaxis\":-856.18,\"yaxis\":-33.26,\"shopNav\":35,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-407.18,\"y\":34.74},\"endPoint\":{\"x\":-407.18,\"y\":78.74},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-407.18,\"y\":78.74},\"endPoint\":{\"x\":-507.18,\"y\":78.74},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-507.18,\"y\":78.74},\"endPoint\":{\"x\":-507.18,\"y\":34.74},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-507.18,\"y\":34.74},\"endPoint\":{\"x\":-407.18,\"y\":34.74},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#E6DB9C\",\"name\":\"B2-C-155\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-C-155\",\"park_first\":\"B2-C-\",\"park_after\":\"\",\"xaxis\":-457.18,\"yaxis\":56.739999999999995,\"shopNav\":63,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-407.18,\"y\":-10.26},\"endPoint\":{\"x\":-407.18,\"y\":33.74},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-407.18,\"y\":33.74},\"endPoint\":{\"x\":-507.18,\"y\":33.74},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-507.18,\"y\":33.74},\"endPoint\":{\"x\":-507.18,\"y\":-10.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-507.18,\"y\":-10.26},\"endPoint\":{\"x\":-407.18,\"y\":-10.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#E6DB9C\",\"name\":\"B2-C-156\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-C-156\",\"park_first\":\"B2-C-\",\"park_after\":\"\",\"xaxis\":-457.18,\"yaxis\":11.740000000000002,\"shopNav\":63,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-407.18,\"y\":-55.26},\"endPoint\":{\"x\":-407.18,\"y\":-11.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-407.18,\"y\":-11.26},\"endPoint\":{\"x\":-507.18,\"y\":-11.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-507.18,\"y\":-11.26},\"endPoint\":{\"x\":-507.18,\"y\":-55.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-507.18,\"y\":-55.26},\"endPoint\":{\"x\":-407.18,\"y\":-55.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#E6DB9C\",\"name\":\"B2-C-157\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-C-157\",\"park_first\":\"B2-C-\",\"park_after\":\"\",\"xaxis\":-457.18,\"yaxis\":-33.26,\"shopNav\":63,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-508.18,\"y\":-55.26},\"endPoint\":{\"x\":-508.18,\"y\":-11.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-508.18,\"y\":-11.26},\"endPoint\":{\"x\":-608.18,\"y\":-11.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-608.18,\"y\":-11.26},\"endPoint\":{\"x\":-608.18,\"y\":-55.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-608.18,\"y\":-55.26},\"endPoint\":{\"x\":-508.18,\"y\":-55.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#E6DB9C\",\"name\":\"B2-C-164\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-C-164\",\"park_first\":\"B2-C-\",\"park_after\":\"\",\"xaxis\":-558.1800000000001,\"yaxis\":-33.26,\"shopNav\":52,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-508.18,\"y\":-10.26},\"endPoint\":{\"x\":-508.18,\"y\":33.74},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-508.18,\"y\":33.74},\"endPoint\":{\"x\":-608.18,\"y\":33.74},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-608.18,\"y\":33.74},\"endPoint\":{\"x\":-608.18,\"y\":-10.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-608.18,\"y\":-10.26},\"endPoint\":{\"x\":-508.18,\"y\":-10.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#E6DB9C\",\"name\":\"B2-C-165\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-C-165\",\"park_first\":\"B2-C-\",\"park_after\":\"\",\"xaxis\":-558.1800000000001,\"yaxis\":11.740000000000002,\"shopNav\":52,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-508.18,\"y\":34.74},\"endPoint\":{\"x\":-508.18,\"y\":78.74},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-508.18,\"y\":78.74},\"endPoint\":{\"x\":-608.18,\"y\":78.74},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-608.18,\"y\":78.74},\"endPoint\":{\"x\":-608.18,\"y\":34.74},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-608.18,\"y\":34.74},\"endPoint\":{\"x\":-508.18,\"y\":34.74},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#E6DB9C\",\"name\":\"B2-C-166\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-C-166\",\"park_first\":\"B2-C-\",\"park_after\":\"\",\"xaxis\":-558.1800000000001,\"yaxis\":56.74,\"shopNav\":52,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-203.18,\"y\":-55.26},\"endPoint\":{\"x\":-203.18,\"y\":-11.26},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-203.18,\"y\":-11.26},\"endPoint\":{\"x\":-303.18,\"y\":-11.26},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-303.18,\"y\":-11.26},\"endPoint\":{\"x\":-303.18,\"y\":-55.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-303.18,\"y\":-55.26},\"endPoint\":{\"x\":-203.18,\"y\":-55.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#E6DB9C\",\"name\":\"B2-C-158\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-C-158\",\"park_first\":\"B2-C-\",\"park_after\":\"\",\"xaxis\":-253.18,\"yaxis\":-33.26,\"shopNav\":63,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-203.18,\"y\":-10.26},\"endPoint\":{\"x\":-203.18,\"y\":33.74},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-203.18,\"y\":33.74},\"endPoint\":{\"x\":-303.18,\"y\":33.74},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-303.18,\"y\":33.74},\"endPoint\":{\"x\":-303.18,\"y\":-10.26},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-303.18,\"y\":-10.26},\"endPoint\":{\"x\":-203.18,\"y\":-10.26},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#E6DB9C\",\"name\":\"B2-C-159\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-C-159\",\"park_first\":\"B2-C-\",\"park_after\":\"\",\"xaxis\":-253.18,\"yaxis\":11.740000000000002,\"shopNav\":63,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-203.18,\"y\":34.74},\"endPoint\":{\"x\":-203.18,\"y\":78.74},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-203.18,\"y\":78.74},\"endPoint\":{\"x\":-303.18,\"y\":78.74},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-303.18,\"y\":78.74},\"endPoint\":{\"x\":-303.18,\"y\":34.74},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-303.18,\"y\":34.74},\"endPoint\":{\"x\":-203.18,\"y\":34.74},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#E6DB9C\",\"name\":\"B2-C-160\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-C-160\",\"park_first\":\"B2-C-\",\"park_after\":\"\",\"xaxis\":-253.18,\"yaxis\":56.74,\"shopNav\":67,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-1296.2,\"y\":152.08},\"endPoint\":{\"x\":-1296.2,\"y\":196.08},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-1296.2,\"y\":196.08},\"endPoint\":{\"x\":-1396.2,\"y\":196.08},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-1396.2,\"y\":196.08},\"endPoint\":{\"x\":-1396.2,\"y\":152.08},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-1396.2,\"y\":152.08},\"endPoint\":{\"x\":-1296.2,\"y\":152.08},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#E6DB9C\",\"name\":\"B2-C-054\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-C-054\",\"park_first\":\"B2-C-\",\"park_after\":\"\",\"xaxis\":-1346.1800000000003,\"yaxis\":174.07333333333332,\"shopNav\":14,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-1296.2,\"y\":385.08},\"endPoint\":{\"x\":-1296.2,\"y\":429.08},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-1296.2,\"y\":429.08},\"endPoint\":{\"x\":-1396.2,\"y\":429.08},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-1396.2,\"y\":429.08},\"endPoint\":{\"x\":-1396.2,\"y\":385.08},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-1396.2,\"y\":385.08},\"endPoint\":{\"x\":-1296.2,\"y\":385.08},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#E6DB9C\",\"name\":\"B2-C-055\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-C-055\",\"park_first\":\"B2-C-\",\"park_after\":\"\",\"xaxis\":-1346.1800000000003,\"yaxis\":407.0733333333333,\"shopNav\":37,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-1296.2,\"y\":430.08},\"endPoint\":{\"x\":-1296.2,\"y\":474.08},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-1296.2,\"y\":474.08},\"endPoint\":{\"x\":-1396.2,\"y\":474.08},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-1396.2,\"y\":474.08},\"endPoint\":{\"x\":-1396.2,\"y\":430.08},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-1396.2,\"y\":430.08},\"endPoint\":{\"x\":-1296.2,\"y\":430.08},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#E6DB9C\",\"name\":\"B2-C-056\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-C-056\",\"park_first\":\"B2-C-\",\"park_after\":\"\",\"xaxis\":-1346.1800000000003,\"yaxis\":452.0733333333333,\"shopNav\":38,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-1296.2,\"y\":475.08},\"endPoint\":{\"x\":-1296.2,\"y\":519.08},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-1296.2,\"y\":519.08},\"endPoint\":{\"x\":-1396.2,\"y\":519.08},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-1396.2,\"y\":519.08},\"endPoint\":{\"x\":-1396.2,\"y\":475.08},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-1396.2,\"y\":475.08},\"endPoint\":{\"x\":-1296.2,\"y\":475.08},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#E6DB9C\",\"name\":\"B2-C-057\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-C-057\",\"park_first\":\"B2-C-\",\"park_after\":\"\",\"xaxis\":-1346.1800000000003,\"yaxis\":497.0733333333333,\"shopNav\":38,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-1296.2,\"y\":568.08},\"endPoint\":{\"x\":-1296.2,\"y\":612.08},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-1296.2,\"y\":612.08},\"endPoint\":{\"x\":-1396.2,\"y\":612.08},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-1396.2,\"y\":612.08},\"endPoint\":{\"x\":-1396.2,\"y\":568.08},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-1396.2,\"y\":568.08},\"endPoint\":{\"x\":-1296.2,\"y\":568.08},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#E6DB9C\",\"name\":\"B2-C-058\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-C-058\",\"park_first\":\"B2-C-\",\"park_after\":\"\",\"xaxis\":-1346.1800000000003,\"yaxis\":590.0733333333334,\"shopNav\":13,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-1095.2,\"y\":493.08},\"endPoint\":{\"x\":-1095.2,\"y\":537.08},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-1095.2,\"y\":537.08},\"endPoint\":{\"x\":-1195.2,\"y\":537.08},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-1195.2,\"y\":537.08},\"endPoint\":{\"x\":-1195.2,\"y\":493.08},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-1195.2,\"y\":493.08},\"endPoint\":{\"x\":-1095.2,\"y\":493.08},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#E6DB9C\",\"name\":\"B2-C-068\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-C-068\",\"park_first\":\"B2-C-\",\"park_after\":\"\",\"xaxis\":-1145.1800000000003,\"yaxis\":515.0733333333334,\"shopNav\":39,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-1095.2,\"y\":448.08},\"endPoint\":{\"x\":-1095.2,\"y\":492.08},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-1095.2,\"y\":492.08},\"endPoint\":{\"x\":-1195.2,\"y\":492.08},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-1195.2,\"y\":492.08},\"endPoint\":{\"x\":-1195.2,\"y\":448.08},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-1195.2,\"y\":448.08},\"endPoint\":{\"x\":-1095.2,\"y\":448.08},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#E6DB9C\",\"name\":\"B2-C-069\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-C-069\",\"park_first\":\"B2-C-\",\"park_after\":\"\",\"xaxis\":-1145.1800000000003,\"yaxis\":470.0733333333333,\"shopNav\":38,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-1095.2,\"y\":403.08},\"endPoint\":{\"x\":-1095.2,\"y\":447.08},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-1095.2,\"y\":447.08},\"endPoint\":{\"x\":-1195.2,\"y\":447.08},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-1195.2,\"y\":447.08},\"endPoint\":{\"x\":-1195.2,\"y\":403.08},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-1195.2,\"y\":403.08},\"endPoint\":{\"x\":-1095.2,\"y\":403.08},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#E6DB9C\",\"name\":\"B2-C-070\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-C-070\",\"park_first\":\"B2-C-\",\"park_after\":\"\",\"xaxis\":-1145.1800000000003,\"yaxis\":425.0733333333333,\"shopNav\":37,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-994.2,\"y\":493.08},\"endPoint\":{\"x\":-994.2,\"y\":537.08},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-994.2,\"y\":537.08},\"endPoint\":{\"x\":-1094.2,\"y\":537.08},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-1094.2,\"y\":537.08},\"endPoint\":{\"x\":-1094.2,\"y\":493.08},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-1094.2,\"y\":493.08},\"endPoint\":{\"x\":-994.2,\"y\":493.08},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#E6DB9C\",\"name\":\"B2-C-071\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-C-071\",\"park_first\":\"B2-C-\",\"park_after\":\"\",\"xaxis\":-1044.2,\"yaxis\":515.08,\"shopNav\":40,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-994.2,\"y\":448.08},\"endPoint\":{\"x\":-994.2,\"y\":492.08},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-994.2,\"y\":492.08},\"endPoint\":{\"x\":-1094.2,\"y\":492.08},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-1094.2,\"y\":492.08},\"endPoint\":{\"x\":-1094.2,\"y\":448.08},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-1094.2,\"y\":448.08},\"endPoint\":{\"x\":-994.2,\"y\":448.08},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#E6DB9C\",\"name\":\"B2-C-072\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-C-072\",\"park_first\":\"B2-C-\",\"park_after\":\"\",\"xaxis\":-1044.2,\"yaxis\":470.08,\"shopNav\":41,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-994.2,\"y\":403.08},\"endPoint\":{\"x\":-994.2,\"y\":447.08},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-994.2,\"y\":447.08},\"endPoint\":{\"x\":-1094.2,\"y\":447.08},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-1094.2,\"y\":447.08},\"endPoint\":{\"x\":-1094.2,\"y\":403.08},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-1094.2,\"y\":403.08},\"endPoint\":{\"x\":-994.2,\"y\":403.08},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#E6DB9C\",\"name\":\"B2-C-073\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-C-073\",\"park_first\":\"B2-C-\",\"park_after\":\"\",\"xaxis\":-1044.2,\"yaxis\":425.08,\"shopNav\":41,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-994.2,\"y\":337.08},\"endPoint\":{\"x\":-994.2,\"y\":381.08},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-994.2,\"y\":381.08},\"endPoint\":{\"x\":-1094.2,\"y\":381.08},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-1094.2,\"y\":381.08},\"endPoint\":{\"x\":-1094.2,\"y\":337.08},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-1094.2,\"y\":337.08},\"endPoint\":{\"x\":-994.2,\"y\":337.08},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#E6DB9C\",\"name\":\"B2-C-074\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-C-074\",\"park_first\":\"B2-C-\",\"park_after\":\"\",\"xaxis\":-1044.2,\"yaxis\":359.08,\"shopNav\":42,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-994.2,\"y\":292.08},\"endPoint\":{\"x\":-994.2,\"y\":336.08},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-994.2,\"y\":336.08},\"endPoint\":{\"x\":-1094.2,\"y\":336.08},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-1094.2,\"y\":336.08},\"endPoint\":{\"x\":-1094.2,\"y\":292.08},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-1094.2,\"y\":292.08},\"endPoint\":{\"x\":-994.2,\"y\":292.08},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#E6DB9C\",\"name\":\"B2-C-075\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-C-075\",\"park_first\":\"B2-C-\",\"park_after\":\"\",\"xaxis\":-1044.2,\"yaxis\":314.08,\"shopNav\":42,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-994.2,\"y\":247.08},\"endPoint\":{\"x\":-994.2,\"y\":291.08},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-994.2,\"y\":291.08},\"endPoint\":{\"x\":-1094.2,\"y\":291.08},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-1094.2,\"y\":291.08},\"endPoint\":{\"x\":-1094.2,\"y\":247.08},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-1094.2,\"y\":247.08},\"endPoint\":{\"x\":-994.2,\"y\":247.08},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#E6DB9C\",\"name\":\"B2-C-076\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-C-076\",\"park_first\":\"B2-C-\",\"park_after\":\"\",\"xaxis\":-1044.2,\"yaxis\":269.08,\"shopNav\":42,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-798.2,\"y\":303.08},\"endPoint\":{\"x\":-798.2,\"y\":347.08},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-798.2,\"y\":347.08},\"endPoint\":{\"x\":-898.2,\"y\":347.08},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-898.2,\"y\":347.08},\"endPoint\":{\"x\":-898.2,\"y\":303.08},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-898.2,\"y\":303.08},\"endPoint\":{\"x\":-798.2,\"y\":303.08},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#E6DB9C\",\"name\":\"B2-C-077\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-C-077\",\"park_first\":\"B2-C-\",\"park_after\":\"\",\"xaxis\":-848.2,\"yaxis\":325.08,\"shopNav\":42,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-798.2,\"y\":348.08},\"endPoint\":{\"x\":-798.2,\"y\":392.08},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-798.2,\"y\":392.08},\"endPoint\":{\"x\":-898.2,\"y\":392.08},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-898.2,\"y\":392.08},\"endPoint\":{\"x\":-898.2,\"y\":348.08},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-898.2,\"y\":348.08},\"endPoint\":{\"x\":-798.2,\"y\":348.08},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#E6DB9C\",\"name\":\"B2-C-078\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-C-078\",\"park_first\":\"B2-C-\",\"park_after\":\"\",\"xaxis\":-848.2,\"yaxis\":370.08,\"shopNav\":42,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-798.2,\"y\":403.08},\"endPoint\":{\"x\":-798.2,\"y\":447.08},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-798.2,\"y\":447.08},\"endPoint\":{\"x\":-898.2,\"y\":447.08},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-898.2,\"y\":447.08},\"endPoint\":{\"x\":-898.2,\"y\":403.08},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-898.2,\"y\":403.08},\"endPoint\":{\"x\":-798.2,\"y\":403.08},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#E6DB9C\",\"name\":\"B2-C-079\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-C-079\",\"park_first\":\"B2-C-\",\"park_after\":\"\",\"xaxis\":-848.2,\"yaxis\":425.08,\"shopNav\":41,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-798.2,\"y\":448.08},\"endPoint\":{\"x\":-798.2,\"y\":492.08},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-798.2,\"y\":492.08},\"endPoint\":{\"x\":-898.2,\"y\":492.08},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-898.2,\"y\":492.08},\"endPoint\":{\"x\":-898.2,\"y\":448.08},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-898.2,\"y\":448.08},\"endPoint\":{\"x\":-798.2,\"y\":448.08},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#E6DB9C\",\"name\":\"B2-C-080\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-C-080\",\"park_first\":\"B2-C-\",\"park_after\":\"\",\"xaxis\":-848.2,\"yaxis\":470.08,\"shopNav\":41,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-798.2,\"y\":493.08},\"endPoint\":{\"x\":-798.2,\"y\":537.08},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-798.2,\"y\":537.08},\"endPoint\":{\"x\":-898.2,\"y\":537.08},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-898.2,\"y\":537.08},\"endPoint\":{\"x\":-898.2,\"y\":493.08},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-898.2,\"y\":493.08},\"endPoint\":{\"x\":-798.2,\"y\":493.08},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#E6DB9C\",\"name\":\"B2-C-081\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-C-081\",\"park_first\":\"B2-C-\",\"park_after\":\"\",\"xaxis\":-848.2,\"yaxis\":515.08,\"shopNav\":41,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-697.2,\"y\":493.08},\"endPoint\":{\"x\":-697.2,\"y\":537.08},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-697.2,\"y\":537.08},\"endPoint\":{\"x\":-797.2,\"y\":537.08},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-797.2,\"y\":537.08},\"endPoint\":{\"x\":-797.2,\"y\":493.08},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-797.2,\"y\":493.08},\"endPoint\":{\"x\":-697.2,\"y\":493.08},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#E6DB9C\",\"name\":\"B2-C-082\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-C-082\",\"park_first\":\"B2-C-\",\"park_after\":\"\",\"xaxis\":-747.2,\"yaxis\":515.0799999999999,\"shopNav\":45,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-697.2,\"y\":448.08},\"endPoint\":{\"x\":-697.2,\"y\":492.08},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-697.2,\"y\":492.08},\"endPoint\":{\"x\":-797.2,\"y\":492.08},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-797.2,\"y\":492.08},\"endPoint\":{\"x\":-797.2,\"y\":448.08},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-797.2,\"y\":448.08},\"endPoint\":{\"x\":-697.2,\"y\":448.08},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#E6DB9C\",\"name\":\"B2-C-083\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-C-083\",\"park_first\":\"B2-C-\",\"park_after\":\"\",\"xaxis\":-747.2,\"yaxis\":470.07999999999987,\"shopNav\":44,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-697.2,\"y\":403.08},\"endPoint\":{\"x\":-697.2,\"y\":447.08},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-697.2,\"y\":447.08},\"endPoint\":{\"x\":-797.2,\"y\":447.08},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-797.2,\"y\":447.08},\"endPoint\":{\"x\":-797.2,\"y\":403.08},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-797.2,\"y\":403.08},\"endPoint\":{\"x\":-697.2,\"y\":403.08},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#E6DB9C\",\"name\":\"B2-C-084\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-C-084\",\"park_first\":\"B2-C-\",\"park_after\":\"\",\"xaxis\":-747.2,\"yaxis\":425.07999999999987,\"shopNav\":44,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-697.2,\"y\":348.08},\"endPoint\":{\"x\":-697.2,\"y\":392.08},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-697.2,\"y\":392.08},\"endPoint\":{\"x\":-797.2,\"y\":392.08},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-797.2,\"y\":392.08},\"endPoint\":{\"x\":-797.2,\"y\":348.08},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-797.2,\"y\":348.08},\"endPoint\":{\"x\":-697.2,\"y\":348.08},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#E6DB9C\",\"name\":\"B2-C-085\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-C-085\",\"park_first\":\"B2-C-\",\"park_after\":\"\",\"xaxis\":-747.2,\"yaxis\":370.08,\"shopNav\":43,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-697.2,\"y\":303.08},\"endPoint\":{\"x\":-697.2,\"y\":347.08},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-697.2,\"y\":347.08},\"endPoint\":{\"x\":-797.2,\"y\":347.08},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-797.2,\"y\":347.08},\"endPoint\":{\"x\":-797.2,\"y\":303.08},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-797.2,\"y\":303.08},\"endPoint\":{\"x\":-697.2,\"y\":303.08},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#E6DB9C\",\"name\":\"B2-C-086\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-C-086\",\"park_first\":\"B2-C-\",\"park_after\":\"\",\"xaxis\":-747.2,\"yaxis\":325.08,\"shopNav\":43,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-697.2,\"y\":258.08},\"endPoint\":{\"x\":-697.2,\"y\":302.08},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-697.2,\"y\":302.08},\"endPoint\":{\"x\":-797.2,\"y\":302.08},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-797.2,\"y\":302.08},\"endPoint\":{\"x\":-797.2,\"y\":258.08},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-797.2,\"y\":258.08},\"endPoint\":{\"x\":-697.2,\"y\":258.08},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#E6DB9C\",\"name\":\"B2-C-087\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-C-087\",\"park_first\":\"B2-C-\",\"park_after\":\"\",\"xaxis\":-747.2,\"yaxis\":280.08,\"shopNav\":43,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-495.2,\"y\":258.08},\"endPoint\":{\"x\":-495.2,\"y\":302.08},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-495.2,\"y\":302.08},\"endPoint\":{\"x\":-595.2,\"y\":302.08},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-595.2,\"y\":302.08},\"endPoint\":{\"x\":-595.2,\"y\":258.08},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-595.2,\"y\":258.08},\"endPoint\":{\"x\":-495.2,\"y\":258.08},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#E6DB9C\",\"name\":\"B2-C-088\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-C-088\",\"park_first\":\"B2-C-\",\"park_after\":\"\",\"xaxis\":-545.2,\"yaxis\":280.08,\"shopNav\":43,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-495.2,\"y\":303.08},\"endPoint\":{\"x\":-495.2,\"y\":347.08},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-495.2,\"y\":347.08},\"endPoint\":{\"x\":-595.2,\"y\":347.08},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-595.2,\"y\":347.08},\"endPoint\":{\"x\":-595.2,\"y\":303.08},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-595.2,\"y\":303.08},\"endPoint\":{\"x\":-495.2,\"y\":303.08},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#E6DB9C\",\"name\":\"B2-C-089\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-C-089\",\"park_first\":\"B2-C-\",\"park_after\":\"\",\"xaxis\":-545.2,\"yaxis\":325.08,\"shopNav\":43,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-495.2,\"y\":348.08},\"endPoint\":{\"x\":-495.2,\"y\":392.08},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-495.2,\"y\":392.08},\"endPoint\":{\"x\":-595.2,\"y\":392.08},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-595.2,\"y\":392.08},\"endPoint\":{\"x\":-595.2,\"y\":348.08},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-595.2,\"y\":348.08},\"endPoint\":{\"x\":-495.2,\"y\":348.08},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#E6DB9C\",\"name\":\"B2-C-090\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-C-090\",\"park_first\":\"B2-C-\",\"park_after\":\"\",\"xaxis\":-545.2,\"yaxis\":370.08,\"shopNav\":44,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-495.2,\"y\":409.08},\"endPoint\":{\"x\":-495.2,\"y\":453.08},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-495.2,\"y\":453.08},\"endPoint\":{\"x\":-595.2,\"y\":453.08},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-595.2,\"y\":453.08},\"endPoint\":{\"x\":-595.2,\"y\":409.08},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-595.2,\"y\":409.08},\"endPoint\":{\"x\":-495.2,\"y\":409.08},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#E6DB9C\",\"name\":\"B2-C-091\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-C-091\",\"park_first\":\"B2-C-\",\"park_after\":\"\",\"xaxis\":-545.2,\"yaxis\":431.08,\"shopNav\":44,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-495.2,\"y\":497.08},\"endPoint\":{\"x\":-495.2,\"y\":541.08},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-495.2,\"y\":541.08},\"endPoint\":{\"x\":-595.2,\"y\":541.08},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-595.2,\"y\":541.08},\"endPoint\":{\"x\":-595.2,\"y\":497.08},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-595.2,\"y\":497.08},\"endPoint\":{\"x\":-495.2,\"y\":497.08},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#E6DB9C\",\"name\":\"B2-C-092\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-C-092\",\"park_first\":\"B2-C-\",\"park_after\":\"\",\"xaxis\":-545.2,\"yaxis\":519.0799999999999,\"shopNav\":12,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-798.2,\"y\":807.08},\"endPoint\":{\"x\":-798.2,\"y\":851.08},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-798.2,\"y\":851.08},\"endPoint\":{\"x\":-898.2,\"y\":851.08},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-898.2,\"y\":851.08},\"endPoint\":{\"x\":-898.2,\"y\":807.08},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-898.2,\"y\":807.08},\"endPoint\":{\"x\":-798.2,\"y\":807.08},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#E6DB9C\",\"name\":\"B2-C-059\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-C-059\",\"park_first\":\"B2-C-\",\"park_after\":\"\",\"xaxis\":-848.2,\"yaxis\":829.0800000000002,\"shopNav\":16,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-798.2,\"y\":762.08},\"endPoint\":{\"x\":-798.2,\"y\":806.08},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-798.2,\"y\":806.08},\"endPoint\":{\"x\":-898.2,\"y\":806.08},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-898.2,\"y\":806.08},\"endPoint\":{\"x\":-898.2,\"y\":762.08},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-898.2,\"y\":762.08},\"endPoint\":{\"x\":-798.2,\"y\":762.08},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#E6DB9C\",\"name\":\"B2-C-060\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-C-060\",\"park_first\":\"B2-C-\",\"park_after\":\"\",\"xaxis\":-848.2,\"yaxis\":784.0800000000002,\"shopNav\":16,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-798.2,\"y\":701.08},\"endPoint\":{\"x\":-798.2,\"y\":745.08},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-798.2,\"y\":745.08},\"endPoint\":{\"x\":-898.2,\"y\":745.08},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-898.2,\"y\":745.08},\"endPoint\":{\"x\":-898.2,\"y\":701.08},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-898.2,\"y\":701.08},\"endPoint\":{\"x\":-798.2,\"y\":701.08},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#E6DB9C\",\"name\":\"B2-C-061\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-C-061\",\"park_first\":\"B2-C-\",\"park_after\":\"\",\"xaxis\":-848.2,\"yaxis\":723.0800000000002,\"shopNav\":16,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-781.2,\"y\":658.08},\"endPoint\":{\"x\":-737.2,\"y\":658.08},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-737.2,\"y\":658.08},\"endPoint\":{\"x\":-737.2,\"y\":758.08},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-737.2,\"y\":758.08},\"endPoint\":{\"x\":-781.2,\"y\":758.08},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-781.2,\"y\":758.08},\"endPoint\":{\"x\":-781.2,\"y\":658.08},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#E6DB9C\",\"name\":\"B2-C-062\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-C-062\",\"park_first\":\"B2-C-\",\"park_after\":\"\",\"xaxis\":-759.2,\"yaxis\":708.08,\"shopNav\":45,\"childArea\":[],\"angle\":0},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-717.2,\"y\":677.08},\"endPoint\":{\"x\":-673.2,\"y\":677.08},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-673.2,\"y\":677.08},\"endPoint\":{\"x\":-673.2,\"y\":777.08},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-673.2,\"y\":777.08},\"endPoint\":{\"x\":-717.2,\"y\":777.08},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-717.2,\"y\":777.08},\"endPoint\":{\"x\":-717.2,\"y\":677.08},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#E6DB9C\",\"name\":\"B2-C-063\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-C-063\",\"park_first\":\"B2-C-\",\"park_after\":\"\",\"xaxis\":-695.2,\"yaxis\":727.08,\"shopNav\":17,\"childArea\":[],\"angle\":0},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-565.2,\"y\":701.08},\"endPoint\":{\"x\":-565.2,\"y\":745.08},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-565.2,\"y\":745.08},\"endPoint\":{\"x\":-665.2,\"y\":745.08},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-665.2,\"y\":745.08},\"endPoint\":{\"x\":-665.2,\"y\":701.08},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-665.2,\"y\":701.08},\"endPoint\":{\"x\":-565.2,\"y\":701.08},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#E6DB9C\",\"name\":\"B2-C-064\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-C-064\",\"park_first\":\"B2-C-\",\"park_after\":\"\",\"xaxis\":-615.2,\"yaxis\":723.08,\"shopNav\":46,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-565.2,\"y\":762.08},\"endPoint\":{\"x\":-565.2,\"y\":806.08},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-565.2,\"y\":806.08},\"endPoint\":{\"x\":-665.2,\"y\":806.08},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-665.2,\"y\":806.08},\"endPoint\":{\"x\":-665.2,\"y\":762.08},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-665.2,\"y\":762.08},\"endPoint\":{\"x\":-565.2,\"y\":762.08},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#E6DB9C\",\"name\":\"B2-C-065\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-C-065\",\"park_first\":\"B2-C-\",\"park_after\":\"\",\"xaxis\":-615.2,\"yaxis\":784.08,\"shopNav\":47,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-565.2,\"y\":807.08},\"endPoint\":{\"x\":-565.2,\"y\":851.08},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-565.2,\"y\":851.08},\"endPoint\":{\"x\":-665.2,\"y\":851.08},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-665.2,\"y\":851.08},\"endPoint\":{\"x\":-665.2,\"y\":807.08},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-665.2,\"y\":807.08},\"endPoint\":{\"x\":-565.2,\"y\":807.08},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#E6DB9C\",\"name\":\"B2-C-066\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-C-066\",\"park_first\":\"B2-C-\",\"park_after\":\"\",\"xaxis\":-615.2,\"yaxis\":829.08,\"shopNav\":47,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-565.2,\"y\":852.08},\"endPoint\":{\"x\":-565.2,\"y\":896.08},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-565.2,\"y\":896.08},\"endPoint\":{\"x\":-665.2,\"y\":896.08},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-665.2,\"y\":896.08},\"endPoint\":{\"x\":-665.2,\"y\":852.08},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-665.2,\"y\":852.08},\"endPoint\":{\"x\":-565.2,\"y\":852.08},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#E6DB9C\",\"name\":\"B2-C-067\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-C-067\",\"park_first\":\"B2-C-\",\"park_after\":\"\",\"xaxis\":-615.2,\"yaxis\":874.08,\"shopNav\":47,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-344.2,\"y\":556.08},\"endPoint\":{\"x\":-344.2,\"y\":600.08},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-344.2,\"y\":600.08},\"endPoint\":{\"x\":-444.2,\"y\":600.08},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-444.2,\"y\":600.08},\"endPoint\":{\"x\":-444.2,\"y\":556.08},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-444.2,\"y\":556.08},\"endPoint\":{\"x\":-344.2,\"y\":556.08},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#E6DB9C\",\"name\":\"B2-C-093\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-C-093\",\"park_first\":\"B2-C-\",\"park_after\":\"\",\"xaxis\":-394.20000000000005,\"yaxis\":578.0799999999999,\"shopNav\":12,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-344.2,\"y\":601.08},\"endPoint\":{\"x\":-344.2,\"y\":645.08},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-344.2,\"y\":645.08},\"endPoint\":{\"x\":-444.2,\"y\":645.08},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-444.2,\"y\":645.08},\"endPoint\":{\"x\":-444.2,\"y\":601.08},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-444.2,\"y\":601.08},\"endPoint\":{\"x\":-344.2,\"y\":601.08},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#E6DB9C\",\"name\":\"B2-C-094\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-C-094\",\"park_first\":\"B2-C-\",\"park_after\":\"\",\"xaxis\":-394.20000000000005,\"yaxis\":623.0799999999999,\"shopNav\":12,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-344.2,\"y\":646.08},\"endPoint\":{\"x\":-344.2,\"y\":690.08},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-344.2,\"y\":690.08},\"endPoint\":{\"x\":-444.2,\"y\":690.08},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-444.2,\"y\":690.08},\"endPoint\":{\"x\":-444.2,\"y\":646.08},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-444.2,\"y\":646.08},\"endPoint\":{\"x\":-344.2,\"y\":646.08},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#E6DB9C\",\"name\":\"B2-C-095\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-C-095\",\"park_first\":\"B2-C-\",\"park_after\":\"\",\"xaxis\":-394.20000000000005,\"yaxis\":668.0799999999999,\"shopNav\":46,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-344.2,\"y\":854.08},\"endPoint\":{\"x\":-344.2,\"y\":898.08},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-344.2,\"y\":898.08},\"endPoint\":{\"x\":-444.2,\"y\":898.08},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-444.2,\"y\":898.08},\"endPoint\":{\"x\":-444.2,\"y\":854.08},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-444.2,\"y\":854.08},\"endPoint\":{\"x\":-344.2,\"y\":854.08},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#E6DB9C\",\"name\":\"B2-C-096\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-C-096\",\"park_first\":\"B2-C-\",\"park_after\":\"\",\"xaxis\":-394.20000000000005,\"yaxis\":876.0799999999999,\"shopNav\":47,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-344.2,\"y\":923.08},\"endPoint\":{\"x\":-344.2,\"y\":967.08},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-344.2,\"y\":967.08},\"endPoint\":{\"x\":-444.2,\"y\":967.08},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-444.2,\"y\":967.08},\"endPoint\":{\"x\":-444.2,\"y\":923.08},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-444.2,\"y\":923.08},\"endPoint\":{\"x\":-344.2,\"y\":923.08},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#E6DB9C\",\"name\":\"B2-C-097\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-C-097\",\"park_first\":\"B2-C-\",\"park_after\":\"\",\"xaxis\":-394.20000000000005,\"yaxis\":945.0799999999999,\"shopNav\":48,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-344.2,\"y\":968.08},\"endPoint\":{\"x\":-344.2,\"y\":1012.08},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-344.2,\"y\":1012.08},\"endPoint\":{\"x\":-444.2,\"y\":1012.08},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-444.2,\"y\":1012.08},\"endPoint\":{\"x\":-444.2,\"y\":968.08},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-444.2,\"y\":968.08},\"endPoint\":{\"x\":-344.2,\"y\":968.08},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#E6DB9C\",\"name\":\"B2-C-098\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-C-098\",\"park_first\":\"B2-C-\",\"park_after\":\"\",\"xaxis\":-394.20000000000005,\"yaxis\":990.0799999999999,\"shopNav\":48,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-344.2,\"y\":1013.08},\"endPoint\":{\"x\":-344.2,\"y\":1057.08},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-344.2,\"y\":1057.08},\"endPoint\":{\"x\":-444.2,\"y\":1057.08},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-444.2,\"y\":1057.08},\"endPoint\":{\"x\":-444.2,\"y\":1013.08},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-444.2,\"y\":1013.08},\"endPoint\":{\"x\":-344.2,\"y\":1013.08},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#E6DB9C\",\"name\":\"B2-C-099\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-C-099\",\"park_first\":\"B2-C-\",\"park_after\":\"\",\"xaxis\":-394.20000000000005,\"yaxis\":1035.08,\"shopNav\":10,\"childArea\":[],\"angle\":1.5707963267948966},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-324.93,\"y\":954.52},\"endPoint\":{\"x\":-285.4,\"y\":935.2},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-285.4,\"y\":935.2},\"endPoint\":{\"x\":-241.55,\"y\":1025.08},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-241.55,\"y\":1025.08},\"endPoint\":{\"x\":-281.11,\"y\":1044.39},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-281.11,\"y\":1044.39},\"endPoint\":{\"x\":-324.93,\"y\":954.52},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#E6DB9C\",\"name\":\"B2-C-100\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-C-100\",\"park_first\":\"B2-C-\",\"park_after\":\"\",\"xaxis\":-283.24,\"yaxis\":989.7950000000001,\"shopNav\":49,\"childArea\":[],\"angle\":-0.4537856055185257},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-284.48,\"y\":934.77},\"endPoint\":{\"x\":-244.93,\"y\":915.47},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-244.93,\"y\":915.47},\"endPoint\":{\"x\":-201.11,\"y\":1005.34},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-201.11,\"y\":1005.34},\"endPoint\":{\"x\":-240.65,\"y\":1024.65},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-240.65,\"y\":1024.65},\"endPoint\":{\"x\":-284.48,\"y\":934.77},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#E6DB9C\",\"name\":\"B2-C-101\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-C-101\",\"park_first\":\"B2-C-\",\"park_after\":\"\",\"xaxis\":-242.79500000000002,\"yaxis\":970.0600000000001,\"shopNav\":49,\"childArea\":[],\"angle\":-0.4537856055185257},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-244.05,\"y\":915.04},\"endPoint\":{\"x\":-204.5,\"y\":895.76},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-204.5,\"y\":895.76},\"endPoint\":{\"x\":-160.65,\"y\":985.64},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-160.65,\"y\":985.64},\"endPoint\":{\"x\":-200.2,\"y\":1004.93},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-200.2,\"y\":1004.93},\"endPoint\":{\"x\":-244.05,\"y\":915.04},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#E6DB9C\",\"name\":\"B2-C-102\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-C-102\",\"park_first\":\"B2-C-\",\"park_after\":\"\",\"xaxis\":-202.35000000000002,\"yaxis\":950.345,\"shopNav\":49,\"childArea\":[],\"angle\":-0.4537856055185257},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-203.6,\"y\":895.31},\"endPoint\":{\"x\":-164.04,\"y\":876.01},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-164.04,\"y\":876.01},\"endPoint\":{\"x\":-120.21,\"y\":965.91},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-120.21,\"y\":965.91},\"endPoint\":{\"x\":-159.75,\"y\":985.21},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-159.75,\"y\":985.21},\"endPoint\":{\"x\":-203.6,\"y\":895.31},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#E6DB9C\",\"name\":\"B2-C-103\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-C-103\",\"park_first\":\"B2-C-\",\"park_after\":\"\",\"xaxis\":-161.905,\"yaxis\":930.61,\"shopNav\":50,\"childArea\":[],\"angle\":-0.4537856055185257},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-138.49,\"y\":864.12},\"endPoint\":{\"x\":-98.94,\"y\":844.83},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-98.94,\"y\":844.83},\"endPoint\":{\"x\":-55.09,\"y\":934.72},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-55.09,\"y\":934.72},\"endPoint\":{\"x\":-94.64,\"y\":954},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-94.64,\"y\":954},\"endPoint\":{\"x\":-138.49,\"y\":864.12},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#E6DB9C\",\"name\":\"B2-C-104\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-C-104\",\"park_first\":\"B2-C-\",\"park_after\":\"\",\"xaxis\":-96.79,\"yaxis\":899.415,\"shopNav\":50,\"childArea\":[],\"angle\":-0.4537856055185257},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-98.03,\"y\":844.42},\"endPoint\":{\"x\":-58.49,\"y\":825.11},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-58.49,\"y\":825.11},\"endPoint\":{\"x\":-14.66,\"y\":914.99},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":-14.66,\"y\":914.99},\"endPoint\":{\"x\":-54.21,\"y\":934.29},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-54.21,\"y\":934.29},\"endPoint\":{\"x\":-98.03,\"y\":844.42},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#E6DB9C\",\"name\":\"B2-C-105\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-C-105\",\"park_first\":\"B2-C-\",\"park_after\":\"\",\"xaxis\":-56.345,\"yaxis\":879.7,\"shopNav\":51,\"childArea\":[],\"angle\":-0.4537856055185257},{\"id\":0,\"hasLines\":[{\"startPoint\":{\"x\":-57.59,\"y\":824.68},\"endPoint\":{\"x\":-18.03,\"y\":805.37},\"name\":1,\"isStrLine\":true},{\"startPoint\":{\"x\":-18.03,\"y\":805.37},\"endPoint\":{\"x\":25.79,\"y\":895.24},\"name\":2,\"isStrLine\":true},{\"startPoint\":{\"x\":25.79,\"y\":895.24},\"endPoint\":{\"x\":-13.74,\"y\":914.56},\"name\":3,\"isStrLine\":true},{\"startPoint\":{\"x\":-13.74,\"y\":914.56},\"endPoint\":{\"x\":-57.59,\"y\":824.68},\"name\":4,\"isStrLine\":true}],\"entColor\":\"#E6DB9C\",\"name\":\"B2-C-106\",\"borderColor\":\"#FFFFFF\",\"toHeight\":5,\"parkNum\":\"B2-C-106\",\"park_first\":\"B2-C-\",\"park_after\":\"\",\"xaxis\":-15.900000000000002,\"yaxis\":859.9649999999999,\"shopNav\":51,\"childArea\":[],\"angle\":-0.4537856055185257}],\"wallArea\":[],\"svgArea\":[],\"models\":[]},\"code\":\"qVfcECIRfX14egPA7U4yE\"},{\"name\":\"B1\",\"mapData\":{\"groupArea\":[],\"floorArea\":{\"id\":\"530474825b32\",\"name\":\"floor\",\"hasLines\":[{\"startPoint\":{\"x\":-1403,\"y\":-1081},\"endPoint\":{\"x\":597,\"y\":-1081},\"name\":7114,\"isStrLine\":true},{\"startPoint\":{\"x\":597,\"y\":-1081},\"endPoint\":{\"x\":597,\"y\":-1232},\"name\":7115,\"isStrLine\":true},{\"startPoint\":{\"x\":597,\"y\":-1232},\"endPoint\":{\"x\":1325,\"y\":-1232},\"name\":7116,\"isStrLine\":true},{\"startPoint\":{\"x\":1325,\"y\":-1232},\"endPoint\":{\"x\":1325,\"y\":191},\"name\":7117,\"isStrLine\":true},{\"startPoint\":{\"x\":1325,\"y\":191},\"endPoint\":{\"x\":1220,\"y\":486},\"name\":7118,\"isStrLine\":true},{\"startPoint\":{\"x\":1220,\"y\":486},\"endPoint\":{\"x\":1220,\"y\":1003},\"name\":7119,\"isStrLine\":true},{\"startPoint\":{\"x\":1220,\"y\":1003},\"endPoint\":{\"x\":88,\"y\":1003},\"name\":7120,\"isStrLine\":true},{\"startPoint\":{\"x\":88,\"y\":1003},\"endPoint\":{\"x\":-352,\"y\":1219},\"name\":7121,\"isStrLine\":true},{\"startPoint\":{\"x\":-352,\"y\":1219},\"endPoint\":{\"x\":-1403,\"y\":1219},\"name\":7122,\"isStrLine\":true},{\"startPoint\":{\"x\":-1403,\"y\":1219},\"endPoint\":{\"x\":-1403,\"y\":-1081},\"name\":7123,\"isStrLine\":true}],\"entColor\":\"#f0f0f0\",\"borderColor\":\"#c7c7c7\",\"toHeight\":5,\"alphaModle\":90,\"site\":0,\"xaxis\":-39,\"yaxis\":-6.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":18518,\"map\":\"\"},\"buildArea\":[],\"hollowArea\":[{\"id\":\"a310f31aba3a\",\"name\":\"hollow\",\"hasLines\":[{\"startPoint\":{\"x\":515,\"y\":-637},\"endPoint\":{\"x\":625,\"y\":-637},\"name\":7124,\"isStrLine\":true},{\"startPoint\":{\"x\":625,\"y\":-637},\"endPoint\":{\"x\":675,\"y\":-582},\"name\":7125,\"isStrLine\":true},{\"startPoint\":{\"x\":675,\"y\":-582},\"endPoint\":{\"x\":660,\"y\":-527},\"name\":7126,\"isStrLine\":true},{\"startPoint\":{\"x\":660,\"y\":-527},\"endPoint\":{\"x\":583,\"y\":-527},\"name\":7127,\"isStrLine\":true},{\"startPoint\":{\"x\":583,\"y\":-527},\"endPoint\":{\"x\":515,\"y\":-590},\"name\":7128,\"isStrLine\":true},{\"startPoint\":{\"x\":515,\"y\":-590},\"endPoint\":{\"x\":515,\"y\":-637},\"name\":7129,\"isStrLine\":true}],\"entColor\":\"\",\"borderColor\":\"\",\"toHeight\":30,\"alphaModle\":90,\"site\":0,\"xaxis\":587.5,\"yaxis\":-593.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":42,\"map\":\"\"},{\"id\":\"20a920f4de36\",\"name\":\"hollow\",\"hasLines\":[{\"startPoint\":{\"x\":460,\"y\":248},\"endPoint\":{\"x\":658,\"y\":248},\"name\":7130,\"isStrLine\":true},{\"startPoint\":{\"x\":658,\"y\":248},\"endPoint\":{\"x\":658,\"y\":360},\"name\":7131,\"isStrLine\":true},{\"startPoint\":{\"x\":658,\"y\":360},\"endPoint\":{\"x\":578,\"y\":410},\"name\":7132,\"isStrLine\":true},{\"startPoint\":{\"x\":578,\"y\":410},\"endPoint\":{\"x\":410,\"y\":410},\"name\":7133,\"isStrLine\":true},{\"startPoint\":{\"x\":410,\"y\":410},\"endPoint\":{\"x\":373,\"y\":398},\"name\":7134,\"isStrLine\":true},{\"startPoint\":{\"x\":373,\"y\":398},\"endPoint\":{\"x\":373,\"y\":360},\"name\":7135,\"isStrLine\":true},{\"startPoint\":{\"x\":373,\"y\":360},\"endPoint\":{\"x\":460,\"y\":248},\"name\":7136,\"isStrLine\":true}],\"entColor\":\"\",\"borderColor\":\"\",\"toHeight\":30,\"alphaModle\":90,\"site\":0,\"xaxis\":559,\"yaxis\":304,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":121,\"map\":\"\"},{\"id\":\"bc4faee263df\",\"name\":\"hollow\",\"hasLines\":[{\"startPoint\":{\"x\":63,\"y\":-237},\"endPoint\":{\"x\":233,\"y\":-237},\"name\":7137,\"isStrLine\":true},{\"startPoint\":{\"x\":233,\"y\":-237},\"endPoint\":{\"x\":233,\"y\":310},\"name\":7138,\"isStrLine\":true},{\"startPoint\":{\"x\":233,\"y\":310},\"endPoint\":{\"x\":173,\"y\":363},\"name\":7139,\"isStrLine\":true},{\"startPoint\":{\"x\":173,\"y\":363},\"endPoint\":{\"x\":20,\"y\":363},\"name\":7140,\"isStrLine\":true},{\"startPoint\":{\"x\":20,\"y\":363},\"endPoint\":{\"x\":-240,\"y\":318},\"name\":7141,\"isStrLine\":true},{\"startPoint\":{\"x\":-240,\"y\":318},\"endPoint\":{\"x\":-240,\"y\":158},\"name\":7142,\"isStrLine\":true},{\"startPoint\":{\"x\":-240,\"y\":158},\"endPoint\":{\"x\":-107,\"y\":158},\"name\":7143,\"isStrLine\":true},{\"startPoint\":{\"x\":-107,\"y\":158},\"endPoint\":{\"x\":35,\"y\":70},\"name\":7144,\"isStrLine\":true},{\"startPoint\":{\"x\":35,\"y\":70},\"endPoint\":{\"x\":35,\"y\":-197},\"name\":7145,\"isStrLine\":true},{\"startPoint\":{\"x\":35,\"y\":-197},\"endPoint\":{\"x\":63,\"y\":-237},\"name\":7146,\"isStrLine\":true}],\"entColor\":\"\",\"borderColor\":\"\",\"toHeight\":30,\"alphaModle\":90,\"site\":0,\"xaxis\":148,\"yaxis\":36.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":535,\"map\":\"\"},{\"id\":\"b8951ce5bfd1\",\"name\":\"hollow\",\"hasLines\":[{\"startPoint\":{\"x\":610,\"y\":-217},\"endPoint\":{\"x\":708,\"y\":-217},\"name\":7147,\"isStrLine\":true},{\"startPoint\":{\"x\":708,\"y\":-217},\"endPoint\":{\"x\":708,\"y\":68},\"name\":7148,\"isStrLine\":true},{\"startPoint\":{\"x\":708,\"y\":68},\"endPoint\":{\"x\":610,\"y\":68},\"name\":7149,\"isStrLine\":true},{\"startPoint\":{\"x\":610,\"y\":68},\"endPoint\":{\"x\":610,\"y\":-217},\"name\":7150,\"isStrLine\":true}],\"entColor\":\"\",\"borderColor\":\"\",\"toHeight\":30,\"alphaModle\":90,\"site\":0,\"xaxis\":659,\"yaxis\":-74.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":86,\"map\":\"\"}],\"shopArea\":[{\"id\":\"a4c0c468aa42\",\"name\":\"B1-43b\",\"hasLines\":[{\"startPoint\":{\"x\":755,\"y\":130},\"endPoint\":{\"x\":1300,\"y\":133},\"name\":247489,\"isStrLine\":true},{\"startPoint\":{\"x\":1300,\"y\":133},\"endPoint\":{\"x\":1300,\"y\":188},\"name\":247490,\"isStrLine\":true},{\"startPoint\":{\"x\":1300,\"y\":188},\"endPoint\":{\"x\":1200,\"y\":478},\"name\":247491,\"isStrLine\":true},{\"startPoint\":{\"x\":1200,\"y\":478},\"endPoint\":{\"x\":1200,\"y\":608},\"name\":247492,\"isStrLine\":true},{\"startPoint\":{\"x\":1200,\"y\":608},\"endPoint\":{\"x\":755,\"y\":608},\"name\":247493,\"isStrLine\":true},{\"startPoint\":{\"x\":755,\"y\":608},\"endPoint\":{\"x\":755,\"y\":130},\"name\":247494,\"isStrLine\":true}],\"entColor\":\"#b7b7b7\",\"borderColor\":\"#b7b7b7\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":865,\"yaxis\":369,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":4,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":717,\"map\":\"\"},{\"id\":\"5f728f3bfc31\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":755,\"y\":-147},\"endPoint\":{\"x\":1300,\"y\":-147},\"name\":247507,\"isStrLine\":true},{\"startPoint\":{\"x\":1300,\"y\":-147},\"endPoint\":{\"x\":1300,\"y\":8},\"name\":247508,\"isStrLine\":true},{\"startPoint\":{\"x\":1300,\"y\":8},\"endPoint\":{\"x\":755,\"y\":8},\"name\":247509,\"isStrLine\":true},{\"startPoint\":{\"x\":755,\"y\":8},\"endPoint\":{\"x\":755,\"y\":-147},\"name\":247510,\"isStrLine\":true}],\"entColor\":\"#b7b7b7\",\"borderColor\":\"#b7b7b7\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":856.5,\"yaxis\":-99.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":35,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":261,\"map\":\"\"},{\"id\":\"5738e21ab665\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":755,\"y\":-410},\"endPoint\":{\"x\":1300,\"y\":-410},\"name\":247519,\"isStrLine\":true},{\"startPoint\":{\"x\":1300,\"y\":-410},\"endPoint\":{\"x\":1300,\"y\":-147},\"name\":247520,\"isStrLine\":true},{\"startPoint\":{\"x\":1300,\"y\":-147},\"endPoint\":{\"x\":755,\"y\":-147},\"name\":247521,\"isStrLine\":true},{\"startPoint\":{\"x\":755,\"y\":-147},\"endPoint\":{\"x\":755,\"y\":-410},\"name\":247522,\"isStrLine\":true}],\"entColor\":\"#b7b7b7\",\"borderColor\":\"#b7b7b7\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":838,\"yaxis\":-297.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":34,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":442,\"map\":\"\"},{\"id\":\"bc10b4ac807a\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":755,\"y\":-650},\"endPoint\":{\"x\":1300,\"y\":-650},\"name\":247531,\"isStrLine\":true},{\"startPoint\":{\"x\":1300,\"y\":-650},\"endPoint\":{\"x\":1300,\"y\":-410},\"name\":247532,\"isStrLine\":true},{\"startPoint\":{\"x\":1300,\"y\":-410},\"endPoint\":{\"x\":755,\"y\":-410},\"name\":247533,\"isStrLine\":true},{\"startPoint\":{\"x\":755,\"y\":-410},\"endPoint\":{\"x\":755,\"y\":-650},\"name\":247534,\"isStrLine\":true}],\"entColor\":\"#b7b7b7\",\"borderColor\":\"#b7b7b7\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":861.5,\"yaxis\":-547,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":7,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":404,\"map\":\"\"},{\"id\":\"c7703a6744bc\",\"name\":\"B1-1b\",\"hasLines\":[{\"startPoint\":{\"x\":1133,\"y\":-995},\"endPoint\":{\"x\":1300,\"y\":-995},\"name\":247543,\"isStrLine\":true},{\"startPoint\":{\"x\":1300,\"y\":-995},\"endPoint\":{\"x\":1300,\"y\":-740},\"name\":247544,\"isStrLine\":true},{\"startPoint\":{\"x\":1300,\"y\":-740},\"endPoint\":{\"x\":895,\"y\":-740},\"name\":247545,\"isStrLine\":true},{\"startPoint\":{\"x\":895,\"y\":-740},\"endPoint\":{\"x\":875,\"y\":-772},\"name\":247546,\"isStrLine\":true},{\"startPoint\":{\"x\":875,\"y\":-772},\"endPoint\":{\"x\":1133,\"y\":-995},\"name\":247547,\"isStrLine\":true}],\"entColor\":\"#b7b7b7\",\"borderColor\":\"#b7b7b7\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":1140,\"yaxis\":-858.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":14,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":245,\"map\":\"\"},{\"id\":\"b113a146da13\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":688,\"y\":400},\"endPoint\":{\"x\":755,\"y\":400},\"name\":247558,\"isStrLine\":true},{\"startPoint\":{\"x\":755,\"y\":400},\"endPoint\":{\"x\":755,\"y\":608},\"name\":247559,\"isStrLine\":true},{\"startPoint\":{\"x\":755,\"y\":608},\"endPoint\":{\"x\":688,\"y\":608},\"name\":247560,\"isStrLine\":true},{\"startPoint\":{\"x\":688,\"y\":608},\"endPoint\":{\"x\":688,\"y\":400},\"name\":247561,\"isStrLine\":true}],\"entColor\":\"#b7b7b7\",\"borderColor\":\"#b7b7b7\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":708,\"yaxis\":486.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":4,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":43,\"map\":\"\"},{\"id\":\"ac8c1d11f80b\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":563,\"y\":463},\"endPoint\":{\"x\":688,\"y\":400},\"name\":247570,\"isStrLine\":true},{\"startPoint\":{\"x\":688,\"y\":400},\"endPoint\":{\"x\":688,\"y\":608},\"name\":247571,\"isStrLine\":true},{\"startPoint\":{\"x\":688,\"y\":608},\"endPoint\":{\"x\":563,\"y\":608},\"name\":247572,\"isStrLine\":true},{\"startPoint\":{\"x\":563,\"y\":608},\"endPoint\":{\"x\":563,\"y\":463},\"name\":247573,\"isStrLine\":true}],\"entColor\":\"#b7b7b7\",\"borderColor\":\"#b7b7b7\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":615,\"yaxis\":536.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":38,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":68,\"map\":\"\"},{\"id\":\"0caa99b3ad81\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":463,\"y\":463},\"endPoint\":{\"x\":563,\"y\":463},\"name\":247582,\"isStrLine\":true},{\"startPoint\":{\"x\":563,\"y\":463},\"endPoint\":{\"x\":563,\"y\":608},\"name\":247583,\"isStrLine\":true},{\"startPoint\":{\"x\":563,\"y\":608},\"endPoint\":{\"x\":463,\"y\":608},\"name\":247584,\"isStrLine\":true},{\"startPoint\":{\"x\":463,\"y\":608},\"endPoint\":{\"x\":463,\"y\":463},\"name\":247585,\"isStrLine\":true}],\"entColor\":\"#b7b7b7\",\"borderColor\":\"#b7b7b7\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":508,\"yaxis\":512.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":11,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":45,\"map\":\"\"},{\"id\":\"93c9099fdbd6\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":193,\"y\":460},\"endPoint\":{\"x\":430,\"y\":460},\"name\":247594,\"isStrLine\":true},{\"startPoint\":{\"x\":430,\"y\":460},\"endPoint\":{\"x\":430,\"y\":540},\"name\":247595,\"isStrLine\":true},{\"startPoint\":{\"x\":430,\"y\":540},\"endPoint\":{\"x\":335,\"y\":540},\"name\":247596,\"isStrLine\":true},{\"startPoint\":{\"x\":335,\"y\":540},\"endPoint\":{\"x\":335,\"y\":708},\"name\":247597,\"isStrLine\":true},{\"startPoint\":{\"x\":335,\"y\":708},\"endPoint\":{\"x\":193,\"y\":708},\"name\":247598,\"isStrLine\":true},{\"startPoint\":{\"x\":193,\"y\":708},\"endPoint\":{\"x\":193,\"y\":460},\"name\":247599,\"isStrLine\":true}],\"entColor\":\"#b7b7b7\",\"borderColor\":\"#b7b7b7\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":282.5,\"yaxis\":585.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":40,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":132,\"map\":\"\"},{\"id\":\"5922a391c9bb\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":20,\"y\":460},\"endPoint\":{\"x\":193,\"y\":460},\"name\":247612,\"isStrLine\":true},{\"startPoint\":{\"x\":193,\"y\":460},\"endPoint\":{\"x\":193,\"y\":708},\"name\":247613,\"isStrLine\":true},{\"startPoint\":{\"x\":193,\"y\":708},\"endPoint\":{\"x\":20,\"y\":708},\"name\":247614,\"isStrLine\":true},{\"startPoint\":{\"x\":20,\"y\":708},\"endPoint\":{\"x\":20,\"y\":460},\"name\":247615,\"isStrLine\":true}],\"entColor\":\"#b7b7b7\",\"borderColor\":\"#b7b7b7\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":97.5,\"yaxis\":567.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":41,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":132,\"map\":\"\"},{\"id\":\"95e1a526348f\",\"name\":\"B1-34\",\"hasLines\":[{\"startPoint\":{\"x\":-247,\"y\":460},\"endPoint\":{\"x\":20,\"y\":460},\"name\":247624,\"isStrLine\":true},{\"startPoint\":{\"x\":20,\"y\":460},\"endPoint\":{\"x\":20,\"y\":708},\"name\":247625,\"isStrLine\":true},{\"startPoint\":{\"x\":20,\"y\":708},\"endPoint\":{\"x\":-247,\"y\":708},\"name\":247626,\"isStrLine\":true},{\"startPoint\":{\"x\":-247,\"y\":708},\"endPoint\":{\"x\":-247,\"y\":460},\"name\":247627,\"isStrLine\":true}],\"entColor\":\"#b7b7b7\",\"borderColor\":\"#b7b7b7\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":-106,\"yaxis\":554,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":42,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":204,\"map\":\"\"},{\"id\":\"cf3999b676f9\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-485,\"y\":558},\"endPoint\":{\"x\":-247,\"y\":460},\"name\":247636,\"isStrLine\":true},{\"startPoint\":{\"x\":-247,\"y\":460},\"endPoint\":{\"x\":-247,\"y\":708},\"name\":247637,\"isStrLine\":true},{\"startPoint\":{\"x\":-247,\"y\":708},\"endPoint\":{\"x\":-485,\"y\":708},\"name\":247638,\"isStrLine\":true},{\"startPoint\":{\"x\":-485,\"y\":708},\"endPoint\":{\"x\":-485,\"y\":558},\"name\":247639,\"isStrLine\":true}],\"entColor\":\"#b7b7b7\",\"borderColor\":\"#b7b7b7\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":-380,\"yaxis\":612.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":12,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":146,\"map\":\"\"},{\"id\":\"4b952fdf4734\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":235,\"y\":240},\"endPoint\":{\"x\":330,\"y\":240},\"name\":247648,\"isStrLine\":true},{\"startPoint\":{\"x\":330,\"y\":240},\"endPoint\":{\"x\":330,\"y\":395},\"name\":247649,\"isStrLine\":true},{\"startPoint\":{\"x\":330,\"y\":395},\"endPoint\":{\"x\":145,\"y\":395},\"name\":247650,\"isStrLine\":true},{\"startPoint\":{\"x\":145,\"y\":395},\"endPoint\":{\"x\":145,\"y\":363},\"name\":247651,\"isStrLine\":true},{\"startPoint\":{\"x\":145,\"y\":363},\"endPoint\":{\"x\":178,\"y\":363},\"name\":247652,\"isStrLine\":true},{\"startPoint\":{\"x\":178,\"y\":363},\"endPoint\":{\"x\":235,\"y\":313},\"name\":247653,\"isStrLine\":true},{\"startPoint\":{\"x\":235,\"y\":313},\"endPoint\":{\"x\":235,\"y\":240},\"name\":247654,\"isStrLine\":true}],\"entColor\":\"#b7b7b7\",\"borderColor\":\"#b7b7b7\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":282.5,\"yaxis\":317.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":13,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":59,\"map\":\"\"},{\"id\":\"f0d516085685\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":448,\"y\":0},\"endPoint\":{\"x\":560,\"y\":0},\"name\":247669,\"isStrLine\":true},{\"startPoint\":{\"x\":560,\"y\":0},\"endPoint\":{\"x\":560,\"y\":148},\"name\":247670,\"isStrLine\":true},{\"startPoint\":{\"x\":560,\"y\":148},\"endPoint\":{\"x\":448,\"y\":148},\"name\":247671,\"isStrLine\":true},{\"startPoint\":{\"x\":448,\"y\":148},\"endPoint\":{\"x\":448,\"y\":0},\"name\":247672,\"isStrLine\":true}],\"entColor\":\"#b7b7b7\",\"borderColor\":\"#b7b7b7\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":504,\"yaxis\":74,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":37,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":51,\"map\":\"\"},{\"id\":\"9c761d76d129\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":433,\"y\":-147},\"endPoint\":{\"x\":560,\"y\":-147},\"name\":247681,\"isStrLine\":true},{\"startPoint\":{\"x\":560,\"y\":-147},\"endPoint\":{\"x\":560,\"y\":-52},\"name\":247682,\"isStrLine\":true},{\"startPoint\":{\"x\":560,\"y\":-52},\"endPoint\":{\"x\":433,\"y\":-52},\"name\":247683,\"isStrLine\":true},{\"startPoint\":{\"x\":433,\"y\":-52},\"endPoint\":{\"x\":433,\"y\":-147},\"name\":247684,\"isStrLine\":true}],\"entColor\":\"#b7b7b7\",\"borderColor\":\"#b7b7b7\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":493,\"yaxis\":-99.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":36,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":37,\"map\":\"\"},{\"id\":\"3c67fd37dd21\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":235,\"y\":-147},\"endPoint\":{\"x\":433,\"y\":-147},\"name\":247693,\"isStrLine\":true},{\"startPoint\":{\"x\":433,\"y\":-147},\"endPoint\":{\"x\":433,\"y\":-52},\"name\":247694,\"isStrLine\":true},{\"startPoint\":{\"x\":433,\"y\":-52},\"endPoint\":{\"x\":383,\"y\":-52},\"name\":247695,\"isStrLine\":true},{\"startPoint\":{\"x\":383,\"y\":-52},\"endPoint\":{\"x\":383,\"y\":148},\"name\":247696,\"isStrLine\":true},{\"startPoint\":{\"x\":383,\"y\":148},\"endPoint\":{\"x\":235,\"y\":148},\"name\":247697,\"isStrLine\":true},{\"startPoint\":{\"x\":235,\"y\":148},\"endPoint\":{\"x\":235,\"y\":-147},\"name\":247698,\"isStrLine\":true}],\"entColor\":\"#b7b7b7\",\"borderColor\":\"#b7b7b7\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":336.5,\"yaxis\":-63.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":13,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":149,\"map\":\"\"},{\"id\":\"991bf1232fc1\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":420,\"y\":-507},\"endPoint\":{\"x\":560,\"y\":-507},\"name\":247711,\"isStrLine\":true},{\"startPoint\":{\"x\":560,\"y\":-507},\"endPoint\":{\"x\":560,\"y\":-237},\"name\":247712,\"isStrLine\":true},{\"startPoint\":{\"x\":560,\"y\":-237},\"endPoint\":{\"x\":420,\"y\":-237},\"name\":247713,\"isStrLine\":true},{\"startPoint\":{\"x\":420,\"y\":-237},\"endPoint\":{\"x\":420,\"y\":-507},\"name\":247714,\"isStrLine\":true}],\"entColor\":\"#b7b7b7\",\"borderColor\":\"#b7b7b7\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":490,\"yaxis\":-372,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":29,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":117,\"map\":\"\"},{\"id\":\"19d04b1a8c39\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":420,\"y\":-587},\"endPoint\":{\"x\":460,\"y\":-587},\"name\":247723,\"isStrLine\":true},{\"startPoint\":{\"x\":460,\"y\":-587},\"endPoint\":{\"x\":560,\"y\":-507},\"name\":247724,\"isStrLine\":true},{\"startPoint\":{\"x\":560,\"y\":-507},\"endPoint\":{\"x\":420,\"y\":-507},\"name\":247725,\"isStrLine\":true},{\"startPoint\":{\"x\":420,\"y\":-507},\"endPoint\":{\"x\":420,\"y\":-587},\"name\":247726,\"isStrLine\":true}],\"entColor\":\"#b7b7b7\",\"borderColor\":\"#b7b7b7\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":485,\"yaxis\":-547,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":3,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":22,\"map\":\"\"},{\"id\":\"49114de1aa91\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":265,\"y\":-587},\"endPoint\":{\"x\":420,\"y\":-587},\"name\":247735,\"isStrLine\":true},{\"startPoint\":{\"x\":420,\"y\":-587},\"endPoint\":{\"x\":420,\"y\":-237},\"name\":247736,\"isStrLine\":true},{\"startPoint\":{\"x\":420,\"y\":-237},\"endPoint\":{\"x\":265,\"y\":-237},\"name\":247737,\"isStrLine\":true},{\"startPoint\":{\"x\":265,\"y\":-237},\"endPoint\":{\"x\":265,\"y\":-587},\"name\":247738,\"isStrLine\":true}],\"entColor\":\"#b7b7b7\",\"borderColor\":\"#b7b7b7\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":342.5,\"yaxis\":-429.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":28,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":167,\"map\":\"\"},{\"id\":\"0da20a9744db\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-412,\"y\":278},\"endPoint\":{\"x\":-242,\"y\":278},\"name\":247747,\"isStrLine\":true},{\"startPoint\":{\"x\":-242,\"y\":278},\"endPoint\":{\"x\":-242,\"y\":323},\"name\":247748,\"isStrLine\":true},{\"startPoint\":{\"x\":-242,\"y\":323},\"endPoint\":{\"x\":-75,\"y\":353},\"name\":247749,\"isStrLine\":true},{\"startPoint\":{\"x\":-75,\"y\":353},\"endPoint\":{\"x\":-75,\"y\":390},\"name\":247750,\"isStrLine\":true},{\"startPoint\":{\"x\":-75,\"y\":390},\"endPoint\":{\"x\":-362,\"y\":390},\"name\":247751,\"isStrLine\":true},{\"startPoint\":{\"x\":-362,\"y\":390},\"endPoint\":{\"x\":-412,\"y\":278},\"name\":247752,\"isStrLine\":true}],\"entColor\":\"#b7b7b7\",\"borderColor\":\"#b7b7b7\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":-243.5,\"yaxis\":334,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":43,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":77,\"map\":\"\"},{\"id\":\"64826050f8f3\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-400,\"y\":-20},\"endPoint\":{\"x\":28,\"y\":-20},\"name\":247765,\"isStrLine\":true},{\"startPoint\":{\"x\":28,\"y\":-20},\"endPoint\":{\"x\":28,\"y\":65},\"name\":247766,\"isStrLine\":true},{\"startPoint\":{\"x\":28,\"y\":65},\"endPoint\":{\"x\":-102,\"y\":150},\"name\":247767,\"isStrLine\":true},{\"startPoint\":{\"x\":-102,\"y\":150},\"endPoint\":{\"x\":-400,\"y\":150},\"name\":247768,\"isStrLine\":true},{\"startPoint\":{\"x\":-400,\"y\":150},\"endPoint\":{\"x\":-400,\"y\":-20},\"name\":247769,\"isStrLine\":true}],\"entColor\":\"#b7b7b7\",\"borderColor\":\"#b7b7b7\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":-251,\"yaxis\":65,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":20,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":208,\"map\":\"\"},{\"id\":\"18c17f398772\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-310,\"y\":-212},\"endPoint\":{\"x\":-177,\"y\":-212},\"name\":247780,\"isStrLine\":true},{\"startPoint\":{\"x\":-177,\"y\":-212},\"endPoint\":{\"x\":-177,\"y\":-130},\"name\":247781,\"isStrLine\":true},{\"startPoint\":{\"x\":-177,\"y\":-130},\"endPoint\":{\"x\":-310,\"y\":-130},\"name\":247782,\"isStrLine\":true},{\"startPoint\":{\"x\":-310,\"y\":-130},\"endPoint\":{\"x\":-310,\"y\":-212},\"name\":247783,\"isStrLine\":true}],\"entColor\":\"#b7b7b7\",\"borderColor\":\"#b7b7b7\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":-243.5,\"yaxis\":-171,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":20,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":34,\"map\":\"\"},{\"id\":\"884fad1dd649\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-177,\"y\":-212},\"endPoint\":{\"x\":-65,\"y\":-212},\"name\":247792,\"isStrLine\":true},{\"startPoint\":{\"x\":-65,\"y\":-212},\"endPoint\":{\"x\":-65,\"y\":-130},\"name\":247793,\"isStrLine\":true},{\"startPoint\":{\"x\":-65,\"y\":-130},\"endPoint\":{\"x\":-177,\"y\":-130},\"name\":247794,\"isStrLine\":true},{\"startPoint\":{\"x\":-177,\"y\":-130},\"endPoint\":{\"x\":-177,\"y\":-212},\"name\":247795,\"isStrLine\":true}],\"entColor\":\"#b7b7b7\",\"borderColor\":\"#b7b7b7\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":-110.5,\"yaxis\":-171,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":19,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":28,\"map\":\"\"},{\"id\":\"0344d3a85dcc\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-65,\"y\":-302},\"endPoint\":{\"x\":128,\"y\":-302},\"name\":247804,\"isStrLine\":true},{\"startPoint\":{\"x\":128,\"y\":-302},\"endPoint\":{\"x\":128,\"y\":-252},\"name\":247805,\"isStrLine\":true},{\"startPoint\":{\"x\":128,\"y\":-252},\"endPoint\":{\"x\":60,\"y\":-252},\"name\":247806,\"isStrLine\":true},{\"startPoint\":{\"x\":60,\"y\":-252},\"endPoint\":{\"x\":18,\"y\":-190},\"name\":247807,\"isStrLine\":true},{\"startPoint\":{\"x\":18,\"y\":-190},\"endPoint\":{\"x\":18,\"y\":-90},\"name\":247808,\"isStrLine\":true},{\"startPoint\":{\"x\":18,\"y\":-90},\"endPoint\":{\"x\":-65,\"y\":-90},\"name\":247809,\"isStrLine\":true},{\"startPoint\":{\"x\":-65,\"y\":-90},\"endPoint\":{\"x\":-65,\"y\":-302},\"name\":247810,\"isStrLine\":true}],\"entColor\":\"#b7b7b7\",\"borderColor\":\"#b7b7b7\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":-13.5,\"yaxis\":-191,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":18,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":75,\"map\":\"\"},{\"id\":\"2cbc43642306\",\"name\":\"B1-24a\",\"hasLines\":[{\"startPoint\":{\"x\":-1200,\"y\":-807},\"endPoint\":{\"x\":-678,\"y\":-807},\"name\":247825,\"isStrLine\":true},{\"startPoint\":{\"x\":-678,\"y\":-807},\"endPoint\":{\"x\":-580,\"y\":-628},\"name\":247826,\"isStrLine\":true},{\"startPoint\":{\"x\":-580,\"y\":-628},\"endPoint\":{\"x\":-580,\"y\":273},\"name\":247827,\"isStrLine\":true},{\"startPoint\":{\"x\":-580,\"y\":273},\"endPoint\":{\"x\":-1200,\"y\":273},\"name\":247828,\"isStrLine\":true},{\"startPoint\":{\"x\":-1200,\"y\":273},\"endPoint\":{\"x\":-1200,\"y\":-807},\"name\":247829,\"isStrLine\":true}],\"entColor\":\"#b7b7b7\",\"borderColor\":\"#b7b7b7\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":-890,\"yaxis\":-267,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":21,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":2067,\"map\":\"\"},{\"id\":\"aa25d0ac6e2d\",\"name\":\"B1-24b\",\"hasLines\":[{\"startPoint\":{\"x\":-1200,\"y\":273},\"endPoint\":{\"x\":-580,\"y\":273},\"name\":247840,\"isStrLine\":true},{\"startPoint\":{\"x\":-580,\"y\":273},\"endPoint\":{\"x\":-532.1724137931035,\"y\":492},\"name\":247841,\"isStrLine\":true},{\"startPoint\":{\"x\":-532.1724137931035,\"y\":492},\"endPoint\":{\"x\":-612,\"y\":528},\"name\":247842,\"isStrLine\":true},{\"startPoint\":{\"x\":-612,\"y\":528},\"endPoint\":{\"x\":-612,\"y\":708},\"name\":247843,\"isStrLine\":true},{\"startPoint\":{\"x\":-612,\"y\":708},\"endPoint\":{\"x\":-1200,\"y\":708},\"name\":247844,\"isStrLine\":true},{\"startPoint\":{\"x\":-1200,\"y\":708},\"endPoint\":{\"x\":-1200,\"y\":273},\"name\":247845,\"isStrLine\":true}],\"entColor\":\"#b7b7b7\",\"borderColor\":\"#b7b7b7\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":-941,\"yaxis\":490.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":15,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":832,\"map\":\"\"},{\"id\":\"88b5f6bce88f\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":85,\"y\":-577},\"endPoint\":{\"x\":188,\"y\":-590},\"name\":247858,\"isStrLine\":true},{\"startPoint\":{\"x\":188,\"y\":-590},\"endPoint\":{\"x\":188,\"y\":-460},\"name\":247859,\"isStrLine\":true},{\"startPoint\":{\"x\":188,\"y\":-460},\"endPoint\":{\"x\":131,\"y\":-460},\"name\":247860,\"isStrLine\":true},{\"startPoint\":{\"x\":131,\"y\":-460},\"endPoint\":{\"x\":131,\"y\":-347},\"name\":247861,\"isStrLine\":true},{\"startPoint\":{\"x\":131,\"y\":-347},\"endPoint\":{\"x\":85,\"y\":-347},\"name\":247862,\"isStrLine\":true},{\"startPoint\":{\"x\":85,\"y\":-347},\"endPoint\":{\"x\":85,\"y\":-577},\"name\":247863,\"isStrLine\":true}],\"entColor\":\"#b7b7b7\",\"borderColor\":\"#b7b7b7\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":131.5,\"yaxis\":-462,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":27,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":55,\"map\":\"\"},{\"id\":\"9f25b79eb2a0\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":8,\"y\":-560},\"endPoint\":{\"x\":85,\"y\":-577},\"name\":247876,\"isStrLine\":true},{\"startPoint\":{\"x\":85,\"y\":-577},\"endPoint\":{\"x\":85,\"y\":-347},\"name\":247877,\"isStrLine\":true},{\"startPoint\":{\"x\":85,\"y\":-347},\"endPoint\":{\"x\":8,\"y\":-347},\"name\":247878,\"isStrLine\":true},{\"startPoint\":{\"x\":8,\"y\":-347},\"endPoint\":{\"x\":8,\"y\":-560},\"name\":247879,\"isStrLine\":true}],\"entColor\":\"#b7b7b7\",\"borderColor\":\"#b7b7b7\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":35.5,\"yaxis\":-453.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":26,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":53,\"map\":\"\"},{\"id\":\"e1c595b93b62\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-125,\"y\":-535},\"endPoint\":{\"x\":8,\"y\":-560},\"name\":247888,\"isStrLine\":true},{\"startPoint\":{\"x\":8,\"y\":-560},\"endPoint\":{\"x\":8,\"y\":-347},\"name\":247889,\"isStrLine\":true},{\"startPoint\":{\"x\":8,\"y\":-347},\"endPoint\":{\"x\":-125,\"y\":-347},\"name\":247890,\"isStrLine\":true},{\"startPoint\":{\"x\":-125,\"y\":-347},\"endPoint\":{\"x\":-125,\"y\":-535},\"name\":247891,\"isStrLine\":true}],\"entColor\":\"#b7b7b7\",\"borderColor\":\"#b7b7b7\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":-54.5,\"yaxis\":-433.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":25,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":82,\"map\":\"\"},{\"id\":\"37b334a00aba\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-320,\"y\":-527},\"endPoint\":{\"x\":-162,\"y\":-545},\"name\":247900,\"isStrLine\":true},{\"startPoint\":{\"x\":-162,\"y\":-545},\"endPoint\":{\"x\":-162,\"y\":-360},\"name\":247901,\"isStrLine\":true},{\"startPoint\":{\"x\":-162,\"y\":-360},\"endPoint\":{\"x\":-245,\"y\":-360},\"name\":247902,\"isStrLine\":true},{\"startPoint\":{\"x\":-245,\"y\":-360},\"endPoint\":{\"x\":-245,\"y\":-267},\"name\":247903,\"isStrLine\":true},{\"startPoint\":{\"x\":-245,\"y\":-267},\"endPoint\":{\"x\":-320,\"y\":-267},\"name\":247904,\"isStrLine\":true},{\"startPoint\":{\"x\":-320,\"y\":-267},\"endPoint\":{\"x\":-320,\"y\":-527},\"name\":247905,\"isStrLine\":true}],\"entColor\":\"#b7b7b7\",\"borderColor\":\"#b7b7b7\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":-242.5,\"yaxis\":-408.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":24,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":107,\"map\":\"\"},{\"id\":\"135c34e0ccca\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":803,\"y\":-1157},\"endPoint\":{\"x\":985,\"y\":-1157},\"name\":247918,\"isStrLine\":true},{\"startPoint\":{\"x\":985,\"y\":-1157},\"endPoint\":{\"x\":985,\"y\":-1022},\"name\":247919,\"isStrLine\":true},{\"startPoint\":{\"x\":985,\"y\":-1022},\"endPoint\":{\"x\":803,\"y\":-865},\"name\":247920,\"isStrLine\":true},{\"startPoint\":{\"x\":803,\"y\":-865},\"endPoint\":{\"x\":803,\"y\":-1157},\"name\":247921,\"isStrLine\":true}],\"entColor\":\"#b7b7b7\",\"borderColor\":\"#b7b7b7\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":885,\"yaxis\":-1089.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":32,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":120,\"map\":\"\"},{\"id\":\"675d832e11d1\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":640,\"y\":-1157},\"endPoint\":{\"x\":803,\"y\":-1157},\"name\":247930,\"isStrLine\":true},{\"startPoint\":{\"x\":803,\"y\":-1157},\"endPoint\":{\"x\":803,\"y\":-865},\"name\":247931,\"isStrLine\":true},{\"startPoint\":{\"x\":803,\"y\":-865},\"endPoint\":{\"x\":640,\"y\":-730},\"name\":247932,\"isStrLine\":true},{\"startPoint\":{\"x\":640,\"y\":-730},\"endPoint\":{\"x\":640,\"y\":-1157},\"name\":247933,\"isStrLine\":true}],\"entColor\":\"#b7b7b7\",\"borderColor\":\"#b7b7b7\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":711.5,\"yaxis\":-983.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":31,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":181,\"map\":\"\"},{\"id\":\"1e8c5af7adf1\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":463,\"y\":-1065},\"endPoint\":{\"x\":640,\"y\":-1065},\"name\":247942,\"isStrLine\":true},{\"startPoint\":{\"x\":640,\"y\":-1065},\"endPoint\":{\"x\":640,\"y\":-730},\"name\":247943,\"isStrLine\":true},{\"startPoint\":{\"x\":640,\"y\":-730},\"endPoint\":{\"x\":575,\"y\":-670},\"name\":247944,\"isStrLine\":true},{\"startPoint\":{\"x\":575,\"y\":-670},\"endPoint\":{\"x\":493,\"y\":-670},\"name\":247945,\"isStrLine\":true},{\"startPoint\":{\"x\":493,\"y\":-670},\"endPoint\":{\"x\":463,\"y\":-717},\"name\":247946,\"isStrLine\":true},{\"startPoint\":{\"x\":463,\"y\":-717},\"endPoint\":{\"x\":463,\"y\":-1065},\"name\":247947,\"isStrLine\":true}],\"entColor\":\"#b7b7b7\",\"borderColor\":\"#b7b7b7\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":540.5,\"yaxis\":-898.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":30,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":208,\"map\":\"\"},{\"id\":\"2b091c27eebc\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":320,\"y\":-982},\"endPoint\":{\"x\":430,\"y\":-982},\"name\":247960,\"isStrLine\":true},{\"startPoint\":{\"x\":430,\"y\":-982},\"endPoint\":{\"x\":430,\"y\":-670},\"name\":247961,\"isStrLine\":true},{\"startPoint\":{\"x\":430,\"y\":-670},\"endPoint\":{\"x\":320,\"y\":-670},\"name\":247962,\"isStrLine\":true},{\"startPoint\":{\"x\":320,\"y\":-670},\"endPoint\":{\"x\":320,\"y\":-982},\"name\":247963,\"isStrLine\":true}],\"entColor\":\"#b7b7b7\",\"borderColor\":\"#b7b7b7\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":375,\"yaxis\":-747.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":28,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":106,\"map\":\"\"},{\"id\":\"8deffde0fffb\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":65,\"y\":-982},\"endPoint\":{\"x\":288,\"y\":-982},\"name\":247972,\"isStrLine\":true},{\"startPoint\":{\"x\":288,\"y\":-982},\"endPoint\":{\"x\":288,\"y\":-670},\"name\":247973,\"isStrLine\":true},{\"startPoint\":{\"x\":288,\"y\":-670},\"endPoint\":{\"x\":65,\"y\":-670},\"name\":247974,\"isStrLine\":true},{\"startPoint\":{\"x\":65,\"y\":-670},\"endPoint\":{\"x\":65,\"y\":-982},\"name\":247975,\"isStrLine\":true}],\"entColor\":\"#b7b7b7\",\"borderColor\":\"#b7b7b7\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":150,\"yaxis\":-727,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":2,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":215,\"map\":\"\"},{\"id\":\"6379d2e4af64\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-127,\"y\":-850},\"endPoint\":{\"x\":-78,\"y\":-850},\"name\":247984,\"isStrLine\":true},{\"startPoint\":{\"x\":-78,\"y\":-850},\"endPoint\":{\"x\":-78,\"y\":-982},\"name\":247985,\"isStrLine\":true},{\"startPoint\":{\"x\":-78,\"y\":-982},\"endPoint\":{\"x\":-25,\"y\":-982},\"name\":247986,\"isStrLine\":true},{\"startPoint\":{\"x\":-25,\"y\":-982},\"endPoint\":{\"x\":-25,\"y\":-670},\"name\":247987,\"isStrLine\":true},{\"startPoint\":{\"x\":-25,\"y\":-670},\"endPoint\":{\"x\":-127,\"y\":-670},\"name\":247988,\"isStrLine\":true},{\"startPoint\":{\"x\":-127,\"y\":-670},\"endPoint\":{\"x\":-127,\"y\":-850},\"name\":247989,\"isStrLine\":true}],\"entColor\":\"#b7b7b7\",\"borderColor\":\"#b7b7b7\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":-79.5,\"yaxis\":-753.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":25,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":78,\"map\":\"\"},{\"id\":\"2f2c953949e1\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-335,\"y\":-767},\"endPoint\":{\"x\":-272,\"y\":-767},\"name\":248002,\"isStrLine\":true},{\"startPoint\":{\"x\":-272,\"y\":-767},\"endPoint\":{\"x\":-272,\"y\":-620},\"name\":248003,\"isStrLine\":true},{\"startPoint\":{\"x\":-272,\"y\":-620},\"endPoint\":{\"x\":-335,\"y\":-620},\"name\":248004,\"isStrLine\":true},{\"startPoint\":{\"x\":-335,\"y\":-620},\"endPoint\":{\"x\":-335,\"y\":-767},\"name\":248005,\"isStrLine\":true}],\"entColor\":\"#b7b7b7\",\"borderColor\":\"#b7b7b7\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":-303.5,\"yaxis\":-693.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":23,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":29,\"map\":\"\"},{\"id\":\"54932ce8acfe\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-457,\"y\":-720},\"endPoint\":{\"x\":-400,\"y\":-720},\"name\":248014,\"isStrLine\":true},{\"startPoint\":{\"x\":-400,\"y\":-720},\"endPoint\":{\"x\":-400,\"y\":-767},\"name\":248015,\"isStrLine\":true},{\"startPoint\":{\"x\":-400,\"y\":-767},\"endPoint\":{\"x\":-335,\"y\":-767},\"name\":248016,\"isStrLine\":true},{\"startPoint\":{\"x\":-335,\"y\":-767},\"endPoint\":{\"x\":-335,\"y\":-620},\"name\":248017,\"isStrLine\":true},{\"startPoint\":{\"x\":-335,\"y\":-620},\"endPoint\":{\"x\":-402,\"y\":-620},\"name\":248018,\"isStrLine\":true},{\"startPoint\":{\"x\":-402,\"y\":-620},\"endPoint\":{\"x\":-457,\"y\":-720},\"name\":248019,\"isStrLine\":true}],\"entColor\":\"#b7b7b7\",\"borderColor\":\"#b7b7b7\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":-392.5,\"yaxis\":-681,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":22,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":39,\"map\":\"\"}],\"path\":{\"nodes\":[{\"id\":0,\"x\":-450,\"y\":275,\"Proy\":\"graph\",\"list\":[{\"cost\":172,\"id\":12},{\"cost\":333,\"id\":17}]},{\"id\":1,\"x\":-447,\"y\":-527,\"Proy\":\"graph\",\"list\":[{\"cost\":301,\"id\":21},{\"cost\":76,\"id\":22},{\"cost\":231,\"id\":44}]},{\"id\":2,\"x\":198,\"y\":-620,\"Proy\":\"graph\",\"list\":[{\"cost\":87,\"id\":27},{\"cost\":141,\"id\":28}]},{\"id\":3,\"x\":462,\"y\":-617,\"Proy\":\"graph\",\"list\":[{\"cost\":46,\"id\":5},{\"cost\":175,\"id\":8},{\"cost\":123,\"id\":28}]},{\"id\":4,\"x\":725,\"y\":341,\"Proy\":\"graph\",\"list\":[{\"cost\":149,\"id\":10},{\"cost\":110,\"id\":38}]},{\"id\":5,\"x\":495,\"y\":-650,\"Proy\":\"graph\",\"list\":[{\"cost\":46,\"id\":3},{\"cost\":84,\"id\":30}]},{\"id\":6,\"x\":703,\"y\":-654,\"Proy\":\"graph\",\"list\":[{\"cost\":124,\"id\":30},{\"cost\":110,\"id\":31},{\"cost\":68,\"id\":33}]},{\"id\":7,\"x\":727,\"y\":-500,\"Proy\":\"graph\",\"list\":[{\"cost\":137,\"id\":8},{\"cost\":87,\"id\":33},{\"cost\":198,\"id\":34}]},{\"id\":8,\"x\":590,\"y\":-497,\"Proy\":\"graph\",\"list\":[{\"cost\":175,\"id\":3},{\"cost\":137,\"id\":7},{\"cost\":136,\"id\":29}]},{\"id\":9,\"x\":587,\"y\":193,\"Proy\":\"graph\",\"list\":[{\"cost\":138,\"id\":10},{\"cost\":312,\"id\":13},{\"cost\":111,\"id\":37}]},{\"id\":10,\"x\":725,\"y\":192,\"Proy\":\"graph\",\"list\":[{\"cost\":149,\"id\":4},{\"cost\":138,\"id\":9},{\"cost\":140,\"id\":45}]},{\"id\":11,\"x\":560,\"y\":445,\"Proy\":\"graph\",\"list\":[{\"cost\":84,\"id\":38},{\"cost\":208,\"id\":39}]},{\"id\":12,\"x\":-375,\"y\":430,\"Proy\":\"graph\",\"list\":[{\"cost\":172,\"id\":0},{\"cost\":120,\"id\":15},{\"cost\":97,\"id\":43}]},{\"id\":13,\"x\":275,\"y\":193,\"Proy\":\"graph\",\"list\":[{\"cost\":312,\"id\":9}]},{\"id\":14,\"x\":1005,\"y\":-930,\"Proy\":\"graph\",\"list\":[{\"cost\":116,\"id\":32}]},{\"id\":15,\"x\":-485,\"y\":480,\"Proy\":\"graph\",\"list\":[{\"cost\":120,\"id\":12},{\"cost\":96,\"id\":16}]},{\"id\":16,\"x\":-515,\"y\":388,\"Proy\":\"graph\",\"list\":[{\"cost\":96,\"id\":15}]},{\"id\":17,\"x\":-449,\"y\":-58,\"Proy\":\"graph\",\"list\":[{\"cost\":333,\"id\":0},{\"cost\":197,\"id\":20},{\"cost\":168,\"id\":21}]},{\"id\":18,\"x\":-17,\"y\":-62,\"Proy\":\"graph\",\"list\":[{\"cost\":100,\"id\":19}]},{\"id\":19,\"x\":-117,\"y\":-62,\"Proy\":\"graph\",\"list\":[{\"cost\":100,\"id\":18},{\"cost\":135,\"id\":20}]},{\"id\":20,\"x\":-252,\"y\":-60,\"Proy\":\"graph\",\"list\":[{\"cost\":197,\"id\":17},{\"cost\":135,\"id\":19}]},{\"id\":21,\"x\":-449,\"y\":-226,\"Proy\":\"graph\",\"list\":[{\"cost\":301,\"id\":1},{\"cost\":168,\"id\":17}]},{\"id\":22,\"x\":-371,\"y\":-538,\"Proy\":\"graph\",\"list\":[{\"cost\":76,\"id\":1},{\"cost\":80,\"id\":23},{\"cost\":158,\"id\":24}]},{\"id\":23,\"x\":-292,\"y\":-555,\"Proy\":\"graph\",\"list\":[{\"cost\":80,\"id\":22}]},{\"id\":24,\"x\":-214,\"y\":-561,\"Proy\":\"graph\",\"list\":[{\"cost\":158,\"id\":22},{\"cost\":144,\"id\":25}]},{\"id\":25,\"x\":-71,\"y\":-582,\"Proy\":\"graph\",\"list\":[{\"cost\":144,\"id\":24},{\"cost\":97,\"id\":26}]},{\"id\":26,\"x\":25,\"y\":-596,\"Proy\":\"graph\",\"list\":[{\"cost\":97,\"id\":25},{\"cost\":86,\"id\":27}]},{\"id\":27,\"x\":111,\"y\":-608,\"Proy\":\"graph\",\"list\":[{\"cost\":87,\"id\":2},{\"cost\":86,\"id\":26}]},{\"id\":28,\"x\":339,\"y\":-619,\"Proy\":\"graph\",\"list\":[{\"cost\":141,\"id\":2},{\"cost\":123,\"id\":3}]},{\"id\":29,\"x\":589,\"y\":-361,\"Proy\":\"graph\",\"list\":[{\"cost\":136,\"id\":8},{\"cost\":270,\"id\":36}]},{\"id\":30,\"x\":579,\"y\":-652,\"Proy\":\"graph\",\"list\":[{\"cost\":84,\"id\":5},{\"cost\":124,\"id\":6}]},{\"id\":31,\"x\":784,\"y\":-729,\"Proy\":\"graph\",\"list\":[{\"cost\":110,\"id\":6},{\"cost\":182,\"id\":32}]},{\"id\":32,\"x\":919,\"y\":-852,\"Proy\":\"graph\",\"list\":[{\"cost\":116,\"id\":14},{\"cost\":182,\"id\":31}]},{\"id\":33,\"x\":713,\"y\":-586,\"Proy\":\"graph\",\"list\":[{\"cost\":68,\"id\":6},{\"cost\":87,\"id\":7}]},{\"id\":34,\"x\":726,\"y\":-302,\"Proy\":\"graph\",\"list\":[{\"cost\":198,\"id\":7},{\"cost\":227,\"id\":35}]},{\"id\":35,\"x\":726,\"y\":-75,\"Proy\":\"graph\",\"list\":[{\"cost\":227,\"id\":34},{\"cost\":127,\"id\":45}]},{\"id\":36,\"x\":588,\"y\":-91,\"Proy\":\"graph\",\"list\":[{\"cost\":270,\"id\":29},{\"cost\":173,\"id\":37}]},{\"id\":37,\"x\":588,\"y\":82,\"Proy\":\"graph\",\"list\":[{\"cost\":111,\"id\":9},{\"cost\":173,\"id\":36}]},{\"id\":38,\"x\":631,\"y\":400,\"Proy\":\"graph\",\"list\":[{\"cost\":110,\"id\":4},{\"cost\":84,\"id\":11}]},{\"id\":39,\"x\":352,\"y\":441,\"Proy\":\"graph\",\"list\":[{\"cost\":208,\"id\":11},{\"cost\":93,\"id\":40}]},{\"id\":40,\"x\":259,\"y\":440,\"Proy\":\"graph\",\"list\":[{\"cost\":93,\"id\":39},{\"cost\":125,\"id\":41}]},{\"id\":41,\"x\":134,\"y\":438,\"Proy\":\"graph\",\"list\":[{\"cost\":125,\"id\":40},{\"cost\":225,\"id\":42}]},{\"id\":42,\"x\":-91,\"y\":434,\"Proy\":\"graph\",\"list\":[{\"cost\":225,\"id\":41},{\"cost\":187,\"id\":43}]},{\"id\":43,\"x\":-278,\"y\":431,\"Proy\":\"graph\",\"list\":[{\"cost\":97,\"id\":12},{\"cost\":187,\"id\":42}]},{\"id\":44,\"x\":-525,\"y\":-745,\"Proy\":\"graph\",\"list\":[{\"cost\":231,\"id\":1}]},{\"id\":45,\"x\":725,\"y\":52,\"Proy\":\"graph\",\"list\":[{\"cost\":140,\"id\":10},{\"cost\":127,\"id\":35},{\"cost\":138,\"id\":46}]},{\"id\":46,\"x\":863,\"y\":51,\"Proy\":\"graph\",\"list\":[{\"cost\":138,\"id\":45}]}]},\"decos\":[],\"icons\":[],\"stairs\":[{\"no\":\"1\",\"x\":-527,\"y\":-750,\"navCode\":44,\"facCode\":\"dt\",\"title\":\"直梯\",\"site\":0,\"angle\":0,\"state\":true,\"iShow\":true,\"downState\":false,\"upState\":false},{\"no\":\"2\",\"x\":865,\"y\":48,\"navCode\":46,\"facCode\":\"dt\",\"title\":\"直梯\",\"site\":0,\"angle\":0,\"state\":true,\"iShow\":true,\"downState\":false,\"upState\":false}],\"parkArea\":[],\"wallArea\":[],\"svgArea\":[],\"models\":[]},\"code\":\"bXx1U0xdFI0d6B0NueY8r\"},{\"name\":\"LG\",\"mapData\":{\"groupArea\":[],\"floorArea\":{\"id\":\"530474825b32\",\"name\":\"floor\",\"hasLines\":[{\"startPoint\":{\"x\":-1403,\"y\":-1081},\"endPoint\":{\"x\":597,\"y\":-1081},\"name\":6678,\"isStrLine\":true},{\"startPoint\":{\"x\":597,\"y\":-1081},\"endPoint\":{\"x\":597,\"y\":-1232},\"name\":6679,\"isStrLine\":true},{\"startPoint\":{\"x\":597,\"y\":-1232},\"endPoint\":{\"x\":1325,\"y\":-1232},\"name\":6680,\"isStrLine\":true},{\"startPoint\":{\"x\":1325,\"y\":-1232},\"endPoint\":{\"x\":1325,\"y\":191},\"name\":6681,\"isStrLine\":true},{\"startPoint\":{\"x\":1325,\"y\":191},\"endPoint\":{\"x\":1220,\"y\":486},\"name\":6682,\"isStrLine\":true},{\"startPoint\":{\"x\":1220,\"y\":486},\"endPoint\":{\"x\":1220,\"y\":1003},\"name\":6683,\"isStrLine\":true},{\"startPoint\":{\"x\":1220,\"y\":1003},\"endPoint\":{\"x\":88,\"y\":1003},\"name\":6684,\"isStrLine\":true},{\"startPoint\":{\"x\":88,\"y\":1003},\"endPoint\":{\"x\":-352,\"y\":1219},\"name\":6685,\"isStrLine\":true},{\"startPoint\":{\"x\":-352,\"y\":1219},\"endPoint\":{\"x\":-1403,\"y\":1219},\"name\":6686,\"isStrLine\":true},{\"startPoint\":{\"x\":-1403,\"y\":1219},\"endPoint\":{\"x\":-1403,\"y\":-1081},\"name\":6687,\"isStrLine\":true}],\"entColor\":\"#f0f0f0\",\"borderColor\":\"#c7c7c7\",\"toHeight\":5,\"alphaModle\":90,\"site\":0,\"xaxis\":-39,\"yaxis\":-6.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":18518,\"map\":\"\"},\"buildArea\":[],\"hollowArea\":[{\"id\":\"42718683bb80\",\"name\":\"hollow\",\"hasLines\":[{\"startPoint\":{\"x\":595,\"y\":-697},\"endPoint\":{\"x\":745,\"y\":-697},\"name\":6688,\"isStrLine\":true},{\"startPoint\":{\"x\":745,\"y\":-697},\"endPoint\":{\"x\":800,\"y\":-602},\"name\":6689,\"isStrLine\":true},{\"startPoint\":{\"x\":800,\"y\":-602},\"endPoint\":{\"x\":800,\"y\":-515},\"name\":6690,\"isStrLine\":true},{\"startPoint\":{\"x\":800,\"y\":-515},\"endPoint\":{\"x\":715,\"y\":-515},\"name\":6691,\"isStrLine\":true},{\"startPoint\":{\"x\":715,\"y\":-515},\"endPoint\":{\"x\":595,\"y\":-635},\"name\":6692,\"isStrLine\":true},{\"startPoint\":{\"x\":595,\"y\":-635},\"endPoint\":{\"x\":595,\"y\":-697},\"name\":6693,\"isStrLine\":true}],\"entColor\":\"\",\"borderColor\":\"\",\"toHeight\":30,\"alphaModle\":90,\"site\":0,\"xaxis\":697.5,\"yaxis\":-606,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":85,\"map\":\"\"},{\"id\":\"dcce640c9268\",\"name\":\"hollow\",\"hasLines\":[{\"startPoint\":{\"x\":755,\"y\":-307},\"endPoint\":{\"x\":828,\"y\":-307},\"name\":6694,\"isStrLine\":true},{\"startPoint\":{\"x\":828,\"y\":-307},\"endPoint\":{\"x\":828,\"y\":63},\"name\":6695,\"isStrLine\":true},{\"startPoint\":{\"x\":828,\"y\":63},\"endPoint\":{\"x\":755,\"y\":63},\"name\":6696,\"isStrLine\":true},{\"startPoint\":{\"x\":755,\"y\":63},\"endPoint\":{\"x\":755,\"y\":-307},\"name\":6697,\"isStrLine\":true}],\"entColor\":\"\",\"borderColor\":\"\",\"toHeight\":30,\"alphaModle\":90,\"site\":0,\"xaxis\":791.5,\"yaxis\":-122,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":83,\"map\":\"\"},{\"id\":\"242e1fff7e87\",\"name\":\"hollow\",\"hasLines\":[{\"startPoint\":{\"x\":553,\"y\":260},\"endPoint\":{\"x\":810,\"y\":260},\"name\":6698,\"isStrLine\":true},{\"startPoint\":{\"x\":810,\"y\":260},\"endPoint\":{\"x\":810,\"y\":438},\"name\":6699,\"isStrLine\":true},{\"startPoint\":{\"x\":810,\"y\":438},\"endPoint\":{\"x\":703,\"y\":493},\"name\":6700,\"isStrLine\":true},{\"startPoint\":{\"x\":703,\"y\":493},\"endPoint\":{\"x\":523,\"y\":493},\"name\":6701,\"isStrLine\":true},{\"startPoint\":{\"x\":523,\"y\":493},\"endPoint\":{\"x\":455,\"y\":463},\"name\":6702,\"isStrLine\":true},{\"startPoint\":{\"x\":455,\"y\":463},\"endPoint\":{\"x\":455,\"y\":403},\"name\":6703,\"isStrLine\":true},{\"startPoint\":{\"x\":455,\"y\":403},\"endPoint\":{\"x\":553,\"y\":260},\"name\":6704,\"isStrLine\":true}],\"entColor\":\"\",\"borderColor\":\"\",\"toHeight\":30,\"alphaModle\":90,\"site\":0,\"xaxis\":681.5,\"yaxis\":349,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":221,\"map\":\"\"},{\"id\":\"1189a92b67ae\",\"name\":\"hollow\",\"hasLines\":[{\"startPoint\":{\"x\":-930,\"y\":425},\"endPoint\":{\"x\":-812,\"y\":425},\"name\":6705,\"isStrLine\":true},{\"startPoint\":{\"x\":-812,\"y\":425},\"endPoint\":{\"x\":-617,\"y\":618},\"name\":6706,\"isStrLine\":true},{\"startPoint\":{\"x\":-617,\"y\":618},\"endPoint\":{\"x\":-652,\"y\":655},\"name\":6707,\"isStrLine\":true},{\"startPoint\":{\"x\":-652,\"y\":655},\"endPoint\":{\"x\":-895,\"y\":655},\"name\":6708,\"isStrLine\":true},{\"startPoint\":{\"x\":-895,\"y\":655},\"endPoint\":{\"x\":-960,\"y\":615},\"name\":6709,\"isStrLine\":true},{\"startPoint\":{\"x\":-960,\"y\":615},\"endPoint\":{\"x\":-972,\"y\":465},\"name\":6710,\"isStrLine\":true},{\"startPoint\":{\"x\":-972,\"y\":465},\"endPoint\":{\"x\":-930,\"y\":425},\"name\":6711,\"isStrLine\":true}],\"entColor\":\"\",\"borderColor\":\"\",\"toHeight\":30,\"alphaModle\":90,\"site\":0,\"xaxis\":-793.5,\"yaxis\":540,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":181,\"map\":\"\"},{\"id\":\"836fa2b6fad2\",\"name\":\"hollow\",\"hasLines\":[{\"startPoint\":{\"x\":-315,\"y\":-657},\"endPoint\":{\"x\":125,\"y\":-657},\"name\":6712,\"isStrLine\":true},{\"startPoint\":{\"x\":125,\"y\":-657},\"endPoint\":{\"x\":125,\"y\":-590},\"name\":6713,\"isStrLine\":true},{\"startPoint\":{\"x\":125,\"y\":-590},\"endPoint\":{\"x\":-60,\"y\":-567},\"name\":6714,\"isStrLine\":true},{\"startPoint\":{\"x\":-60,\"y\":-567},\"endPoint\":{\"x\":-315,\"y\":-607},\"name\":6715,\"isStrLine\":true},{\"startPoint\":{\"x\":-315,\"y\":-607},\"endPoint\":{\"x\":-315,\"y\":-657},\"name\":6716,\"isStrLine\":true}],\"entColor\":\"\",\"borderColor\":\"\",\"toHeight\":30,\"alphaModle\":90,\"site\":0,\"xaxis\":-95,\"yaxis\":-623.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":100,\"map\":\"\"},{\"id\":\"058b964a1d2d\",\"name\":\"hollow\",\"hasLines\":[{\"startPoint\":{\"x\":-332,\"y\":-550},\"endPoint\":{\"x\":-267,\"y\":-550},\"name\":6717,\"isStrLine\":true},{\"startPoint\":{\"x\":-267,\"y\":-550},\"endPoint\":{\"x\":-267,\"y\":-305},\"name\":6718,\"isStrLine\":true},{\"startPoint\":{\"x\":-267,\"y\":-305},\"endPoint\":{\"x\":-332,\"y\":-305},\"name\":6719,\"isStrLine\":true},{\"startPoint\":{\"x\":-332,\"y\":-305},\"endPoint\":{\"x\":-332,\"y\":-550},\"name\":6720,\"isStrLine\":true}],\"entColor\":\"\",\"borderColor\":\"\",\"toHeight\":30,\"alphaModle\":90,\"site\":0,\"xaxis\":-299.5,\"yaxis\":-427.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":49,\"map\":\"\"}],\"shopArea\":[{\"id\":\"f49e5b85a61d\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-1398,\"y\":-1076},\"endPoint\":{\"x\":-1180,\"y\":-1076},\"name\":6924,\"isStrLine\":true},{\"startPoint\":{\"x\":-1180,\"y\":-1076},\"endPoint\":{\"x\":-1180,\"y\":-872},\"name\":6925,\"isStrLine\":true},{\"startPoint\":{\"x\":-1180,\"y\":-872},\"endPoint\":{\"x\":-950,\"y\":-872},\"name\":6926,\"isStrLine\":true},{\"startPoint\":{\"x\":-950,\"y\":-872},\"endPoint\":{\"x\":-950,\"y\":-729},\"name\":6927,\"isStrLine\":true},{\"startPoint\":{\"x\":-950,\"y\":-729},\"endPoint\":{\"x\":-1035,\"y\":-729},\"name\":6928,\"isStrLine\":true},{\"startPoint\":{\"x\":-1035,\"y\":-729},\"endPoint\":{\"x\":-1035,\"y\":-508},\"name\":6929,\"isStrLine\":true},{\"startPoint\":{\"x\":-1035,\"y\":-508},\"endPoint\":{\"x\":-1398,\"y\":-508},\"name\":6930,\"isStrLine\":true},{\"startPoint\":{\"x\":-1398,\"y\":-508},\"endPoint\":{\"x\":-1398,\"y\":-1076},\"name\":6931,\"isStrLine\":true}],\"entColor\":\"#b3c8ff\",\"borderColor\":\"#7e95cd\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":-1202,\"yaxis\":-746,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":\"2\",\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":583,\"map\":\"\"},{\"id\":\"a53589d571be\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-791,\"y\":-872},\"endPoint\":{\"x\":-791,\"y\":-1076},\"name\":6948,\"isStrLine\":true},{\"startPoint\":{\"x\":-791,\"y\":-1076},\"endPoint\":{\"x\":-656,\"y\":-1076},\"name\":6949,\"isStrLine\":true},{\"startPoint\":{\"x\":-656,\"y\":-1076},\"endPoint\":{\"x\":-656,\"y\":-729},\"name\":6950,\"isStrLine\":true},{\"startPoint\":{\"x\":-656,\"y\":-729},\"endPoint\":{\"x\":-916,\"y\":-729},\"name\":6951,\"isStrLine\":true},{\"startPoint\":{\"x\":-916,\"y\":-729},\"endPoint\":{\"x\":-916,\"y\":-872},\"name\":6952,\"isStrLine\":true},{\"startPoint\":{\"x\":-916,\"y\":-872},\"endPoint\":{\"x\":-791,\"y\":-872},\"name\":6953,\"isStrLine\":true}],\"entColor\":\"#b3c8ff\",\"borderColor\":\"#7e95cd\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":-761.5,\"yaxis\":-790,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":18,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":200,\"map\":\"\"},{\"id\":\"5de969ed19bc\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-347,\"y\":-820},\"endPoint\":{\"x\":-155,\"y\":-820},\"name\":6966,\"isStrLine\":true},{\"startPoint\":{\"x\":-155,\"y\":-820},\"endPoint\":{\"x\":-155,\"y\":-729},\"name\":6967,\"isStrLine\":true},{\"startPoint\":{\"x\":-155,\"y\":-729},\"endPoint\":{\"x\":-347,\"y\":-729},\"name\":6968,\"isStrLine\":true},{\"startPoint\":{\"x\":-347,\"y\":-729},\"endPoint\":{\"x\":-347,\"y\":-820},\"name\":6969,\"isStrLine\":true}],\"entColor\":\"#b3c8ff\",\"borderColor\":\"#7e95cd\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":-251,\"yaxis\":-774.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":20,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":54,\"map\":\"\"},{\"id\":\"efbab02e9283\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-108,\"y\":-1067},\"endPoint\":{\"x\":62,\"y\":-1067},\"name\":6978,\"isStrLine\":true},{\"startPoint\":{\"x\":62,\"y\":-1067},\"endPoint\":{\"x\":62,\"y\":-728},\"name\":6979,\"isStrLine\":true},{\"startPoint\":{\"x\":62,\"y\":-728},\"endPoint\":{\"x\":-108,\"y\":-728},\"name\":6980,\"isStrLine\":true},{\"startPoint\":{\"x\":-108,\"y\":-728},\"endPoint\":{\"x\":-108,\"y\":-1067},\"name\":6981,\"isStrLine\":true}],\"entColor\":\"#b3c8ff\",\"borderColor\":\"#7e95cd\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":-23,\"yaxis\":-897.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":21,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":178,\"map\":\"\"},{\"id\":\"4f21efd170e0\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":156,\"y\":-836},\"endPoint\":{\"x\":249,\"y\":-836},\"name\":6990,\"isStrLine\":true},{\"startPoint\":{\"x\":249,\"y\":-836},\"endPoint\":{\"x\":249,\"y\":-732},\"name\":6991,\"isStrLine\":true},{\"startPoint\":{\"x\":249,\"y\":-732},\"endPoint\":{\"x\":156,\"y\":-732},\"name\":6992,\"isStrLine\":true},{\"startPoint\":{\"x\":156,\"y\":-732},\"endPoint\":{\"x\":156,\"y\":-836},\"name\":6993,\"isStrLine\":true}],\"entColor\":\"#b3c8ff\",\"borderColor\":\"#7e95cd\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":202.5,\"yaxis\":-784,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":22,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":30,\"map\":\"\"},{\"id\":\"227357b9f82d\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":782,\"y\":-1229},\"endPoint\":{\"x\":1324,\"y\":-1229},\"name\":7002,\"isStrLine\":true},{\"startPoint\":{\"x\":1324,\"y\":-1229},\"endPoint\":{\"x\":1324,\"y\":-469},\"name\":7003,\"isStrLine\":true},{\"startPoint\":{\"x\":1324,\"y\":-469},\"endPoint\":{\"x\":885,\"y\":-469},\"name\":7004,\"isStrLine\":true},{\"startPoint\":{\"x\":885,\"y\":-469},\"endPoint\":{\"x\":885,\"y\":-657},\"name\":7005,\"isStrLine\":true},{\"startPoint\":{\"x\":885,\"y\":-657},\"endPoint\":{\"x\":792,\"y\":-786},\"name\":7006,\"isStrLine\":true},{\"startPoint\":{\"x\":792,\"y\":-786},\"endPoint\":{\"x\":566,\"y\":-786},\"name\":7007,\"isStrLine\":true},{\"startPoint\":{\"x\":566,\"y\":-786},\"endPoint\":{\"x\":566,\"y\":-920},\"name\":7008,\"isStrLine\":true},{\"startPoint\":{\"x\":566,\"y\":-920},\"endPoint\":{\"x\":782,\"y\":-920},\"name\":7009,\"isStrLine\":true},{\"startPoint\":{\"x\":782,\"y\":-920},\"endPoint\":{\"x\":782,\"y\":-1229},\"name\":7010,\"isStrLine\":true}],\"entColor\":\"#b3c8ff\",\"borderColor\":\"#7e95cd\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":978,\"yaxis\":-885,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":10,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":1278,\"map\":\"\"},{\"id\":\"0ac07273bac0\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":385,\"y\":-859},\"endPoint\":{\"x\":491,\"y\":-859},\"name\":7029,\"isStrLine\":true},{\"startPoint\":{\"x\":491,\"y\":-859},\"endPoint\":{\"x\":491,\"y\":-770},\"name\":7030,\"isStrLine\":true},{\"startPoint\":{\"x\":491,\"y\":-770},\"endPoint\":{\"x\":451,\"y\":-731},\"name\":7031,\"isStrLine\":true},{\"startPoint\":{\"x\":451,\"y\":-731},\"endPoint\":{\"x\":385,\"y\":-731},\"name\":7032,\"isStrLine\":true},{\"startPoint\":{\"x\":385,\"y\":-731},\"endPoint\":{\"x\":385,\"y\":-859},\"name\":7033,\"isStrLine\":true}],\"entColor\":\"#b3c8ff\",\"borderColor\":\"#7e95cd\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":439.5,\"yaxis\":-787,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":24,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":39,\"map\":\"\"},{\"id\":\"f48c768f08aa\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":271,\"y\":-859},\"endPoint\":{\"x\":385,\"y\":-859},\"name\":7044,\"isStrLine\":true},{\"startPoint\":{\"x\":385,\"y\":-859},\"endPoint\":{\"x\":385,\"y\":-731},\"name\":7045,\"isStrLine\":true},{\"startPoint\":{\"x\":385,\"y\":-731},\"endPoint\":{\"x\":271,\"y\":-731},\"name\":7046,\"isStrLine\":true},{\"startPoint\":{\"x\":271,\"y\":-731},\"endPoint\":{\"x\":271,\"y\":-859},\"name\":7047,\"isStrLine\":true}],\"entColor\":\"#b3c8ff\",\"borderColor\":\"#7e95cd\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":332,\"yaxis\":-794,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":23,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":45,\"map\":\"\"},{\"id\":\"3717a70e4aec\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":885,\"y\":-422},\"endPoint\":{\"x\":1013,\"y\":-422},\"name\":7056,\"isStrLine\":true},{\"startPoint\":{\"x\":1013,\"y\":-422},\"endPoint\":{\"x\":1013,\"y\":-226},\"name\":7057,\"isStrLine\":true},{\"startPoint\":{\"x\":1013,\"y\":-226},\"endPoint\":{\"x\":885,\"y\":-226},\"name\":7058,\"isStrLine\":true},{\"startPoint\":{\"x\":885,\"y\":-226},\"endPoint\":{\"x\":885,\"y\":-422},\"name\":7059,\"isStrLine\":true}],\"entColor\":\"#b3c8ff\",\"borderColor\":\"#7e95cd\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":961.5,\"yaxis\":-315,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":25,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":77,\"map\":\"\"},{\"id\":\"e2a6c420c5fc\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":885,\"y\":-157},\"endPoint\":{\"x\":1013,\"y\":-157},\"name\":7068,\"isStrLine\":true},{\"startPoint\":{\"x\":1013,\"y\":-157},\"endPoint\":{\"x\":1013,\"y\":39},\"name\":7069,\"isStrLine\":true},{\"startPoint\":{\"x\":1013,\"y\":39},\"endPoint\":{\"x\":885,\"y\":39},\"name\":7070,\"isStrLine\":true},{\"startPoint\":{\"x\":885,\"y\":39},\"endPoint\":{\"x\":885,\"y\":-157},\"name\":7071,\"isStrLine\":true}],\"entColor\":\"#b3c8ff\",\"borderColor\":\"#7e95cd\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":961.5,\"yaxis\":-50,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":26,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":77,\"map\":\"\"},{\"id\":\"aa1543eab79c\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":886,\"y\":165},\"endPoint\":{\"x\":1325,\"y\":165},\"name\":7080,\"isStrLine\":true},{\"startPoint\":{\"x\":1325,\"y\":165},\"endPoint\":{\"x\":1325,\"y\":193},\"name\":7081,\"isStrLine\":true},{\"startPoint\":{\"x\":1325,\"y\":193},\"endPoint\":{\"x\":1275,\"y\":327},\"name\":7082,\"isStrLine\":true},{\"startPoint\":{\"x\":1275,\"y\":327},\"endPoint\":{\"x\":886,\"y\":327},\"name\":7083,\"isStrLine\":true},{\"startPoint\":{\"x\":886,\"y\":327},\"endPoint\":{\"x\":886,\"y\":165},\"name\":7084,\"isStrLine\":true}],\"entColor\":\"#b3c8ff\",\"borderColor\":\"#7e95cd\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":1080.5,\"yaxis\":246,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":32,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":209,\"map\":\"\"},{\"id\":\"6d7deeef8096\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":886,\"y\":327},\"endPoint\":{\"x\":1275,\"y\":327},\"name\":7095,\"isStrLine\":true},{\"startPoint\":{\"x\":1275,\"y\":327},\"endPoint\":{\"x\":1220,\"y\":485},\"name\":7096,\"isStrLine\":true},{\"startPoint\":{\"x\":1220,\"y\":485},\"endPoint\":{\"x\":886,\"y\":485},\"name\":7097,\"isStrLine\":true},{\"startPoint\":{\"x\":886,\"y\":485},\"endPoint\":{\"x\":886,\"y\":327},\"name\":7098,\"isStrLine\":true}],\"entColor\":\"#b3c8ff\",\"borderColor\":\"#7e95cd\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":968,\"yaxis\":376.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":50,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":176,\"map\":\"\"},{\"id\":\"e4fec2324e8b\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":886,\"y\":485},\"endPoint\":{\"x\":1220,\"y\":485},\"name\":7107,\"isStrLine\":true},{\"startPoint\":{\"x\":1220,\"y\":485},\"endPoint\":{\"x\":1220,\"y\":1002},\"name\":7108,\"isStrLine\":true},{\"startPoint\":{\"x\":1220,\"y\":1002},\"endPoint\":{\"x\":886,\"y\":1002},\"name\":7109,\"isStrLine\":true},{\"startPoint\":{\"x\":886,\"y\":1002},\"endPoint\":{\"x\":886,\"y\":485},\"name\":7110,\"isStrLine\":true}],\"entColor\":\"#b3c8ff\",\"borderColor\":\"#7e95cd\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":1008,\"yaxis\":627,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":8,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":533,\"map\":\"\"},{\"id\":\"84218ee56af2\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":746,\"y\":565},\"endPoint\":{\"x\":841,\"y\":565},\"name\":7119,\"isStrLine\":true},{\"startPoint\":{\"x\":841,\"y\":565},\"endPoint\":{\"x\":886,\"y\":485},\"name\":7120,\"isStrLine\":true},{\"startPoint\":{\"x\":886,\"y\":485},\"endPoint\":{\"x\":886,\"y\":726},\"name\":7121,\"isStrLine\":true},{\"startPoint\":{\"x\":886,\"y\":726},\"endPoint\":{\"x\":746,\"y\":726},\"name\":7122,\"isStrLine\":true},{\"startPoint\":{\"x\":746,\"y\":726},\"endPoint\":{\"x\":746,\"y\":565},\"name\":7123,\"isStrLine\":true}],\"entColor\":\"#b3c8ff\",\"borderColor\":\"#7e95cd\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":674,\"yaxis\":627,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":7,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":75,\"map\":\"\"},{\"id\":\"d837eda06449\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":570,\"y\":575},\"endPoint\":{\"x\":684,\"y\":575},\"name\":7134,\"isStrLine\":true},{\"startPoint\":{\"x\":684,\"y\":575},\"endPoint\":{\"x\":684,\"y\":725},\"name\":7135,\"isStrLine\":true},{\"startPoint\":{\"x\":684,\"y\":725},\"endPoint\":{\"x\":570,\"y\":725},\"name\":7136,\"isStrLine\":true},{\"startPoint\":{\"x\":570,\"y\":725},\"endPoint\":{\"x\":570,\"y\":575},\"name\":7137,\"isStrLine\":true}],\"entColor\":\"#b3c8ff\",\"borderColor\":\"#7e95cd\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":628,\"yaxis\":648.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":49,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":53,\"map\":\"\"},{\"id\":\"e90e63147256\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":407,\"y\":575},\"endPoint\":{\"x\":533,\"y\":575},\"name\":7146,\"isStrLine\":true},{\"startPoint\":{\"x\":533,\"y\":575},\"endPoint\":{\"x\":533,\"y\":867},\"name\":7147,\"isStrLine\":true},{\"startPoint\":{\"x\":533,\"y\":867},\"endPoint\":{\"x\":296,\"y\":867},\"name\":7148,\"isStrLine\":true},{\"startPoint\":{\"x\":296,\"y\":867},\"endPoint\":{\"x\":296,\"y\":650},\"name\":7149,\"isStrLine\":true},{\"startPoint\":{\"x\":296,\"y\":650},\"endPoint\":{\"x\":407,\"y\":575},\"name\":7150,\"isStrLine\":true}],\"entColor\":\"#b3c8ff\",\"borderColor\":\"#7e95cd\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":477,\"yaxis\":648.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":6,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":201,\"map\":\"\"},{\"id\":\"6216b3e4b077\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":180,\"y\":729},\"endPoint\":{\"x\":271,\"y\":663},\"name\":7161,\"isStrLine\":true},{\"startPoint\":{\"x\":271,\"y\":663},\"endPoint\":{\"x\":271,\"y\":867},\"name\":7162,\"isStrLine\":true},{\"startPoint\":{\"x\":271,\"y\":867},\"endPoint\":{\"x\":59,\"y\":867},\"name\":7163,\"isStrLine\":true},{\"startPoint\":{\"x\":59,\"y\":867},\"endPoint\":{\"x\":59,\"y\":729},\"name\":7164,\"isStrLine\":true},{\"startPoint\":{\"x\":59,\"y\":729},\"endPoint\":{\"x\":180,\"y\":729},\"name\":7165,\"isStrLine\":true}],\"entColor\":\"#b3c8ff\",\"borderColor\":\"#7e95cd\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":240,\"yaxis\":648.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":5,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":100,\"map\":\"\"},{\"id\":\"a1742790a494\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-200,\"y\":728},\"endPoint\":{\"x\":19,\"y\":728},\"name\":7176,\"isStrLine\":true},{\"startPoint\":{\"x\":19,\"y\":728},\"endPoint\":{\"x\":19,\"y\":867},\"name\":7177,\"isStrLine\":true},{\"startPoint\":{\"x\":19,\"y\":867},\"endPoint\":{\"x\":-200,\"y\":867},\"name\":7178,\"isStrLine\":true},{\"startPoint\":{\"x\":-200,\"y\":867},\"endPoint\":{\"x\":-200,\"y\":728},\"name\":7179,\"isStrLine\":true}],\"entColor\":\"#b3c8ff\",\"borderColor\":\"#7e95cd\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":-90.5,\"yaxis\":791,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":46,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":94,\"map\":\"\"},{\"id\":\"35627d844fd4\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-374,\"y\":728},\"endPoint\":{\"x\":-243,\"y\":728},\"name\":7188,\"isStrLine\":true},{\"startPoint\":{\"x\":-243,\"y\":728},\"endPoint\":{\"x\":-243,\"y\":867},\"name\":7189,\"isStrLine\":true},{\"startPoint\":{\"x\":-243,\"y\":867},\"endPoint\":{\"x\":-374,\"y\":867},\"name\":7190,\"isStrLine\":true},{\"startPoint\":{\"x\":-374,\"y\":867},\"endPoint\":{\"x\":-374,\"y\":728},\"name\":7191,\"isStrLine\":true}],\"entColor\":\"#b3c8ff\",\"borderColor\":\"#7e95cd\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":-307,\"yaxis\":798,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":45,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":56,\"map\":\"\"},{\"id\":\"38bd0fbf9848\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-513,\"y\":728},\"endPoint\":{\"x\":-419,\"y\":728},\"name\":7200,\"isStrLine\":true},{\"startPoint\":{\"x\":-419,\"y\":728},\"endPoint\":{\"x\":-419,\"y\":867},\"name\":7201,\"isStrLine\":true},{\"startPoint\":{\"x\":-419,\"y\":867},\"endPoint\":{\"x\":-513,\"y\":867},\"name\":7202,\"isStrLine\":true},{\"startPoint\":{\"x\":-513,\"y\":867},\"endPoint\":{\"x\":-513,\"y\":728},\"name\":7203,\"isStrLine\":true}],\"entColor\":\"#b3c8ff\",\"borderColor\":\"#7e95cd\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":-465,\"yaxis\":788,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":44,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":40,\"map\":\"\"},{\"id\":\"19fb4753632a\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-772,\"y\":716},\"endPoint\":{\"x\":-560,\"y\":716},\"name\":7212,\"isStrLine\":true},{\"startPoint\":{\"x\":-560,\"y\":716},\"endPoint\":{\"x\":-560,\"y\":1152},\"name\":7213,\"isStrLine\":true},{\"startPoint\":{\"x\":-560,\"y\":1152},\"endPoint\":{\"x\":-924,\"y\":1152},\"name\":7214,\"isStrLine\":true},{\"startPoint\":{\"x\":-924,\"y\":1152},\"endPoint\":{\"x\":-924,\"y\":1005},\"name\":7215,\"isStrLine\":true},{\"startPoint\":{\"x\":-924,\"y\":1005},\"endPoint\":{\"x\":-772,\"y\":1005},\"name\":7216,\"isStrLine\":true},{\"startPoint\":{\"x\":-772,\"y\":1005},\"endPoint\":{\"x\":-772,\"y\":716},\"name\":7217,\"isStrLine\":true}],\"entColor\":\"#b3c8ff\",\"borderColor\":\"#7e95cd\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":-687,\"yaxis\":813,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":43,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":354,\"map\":\"\"},{\"id\":\"5af1383d4f75\",\"name\":\"LG-18\",\"hasLines\":[{\"startPoint\":{\"x\":-985,\"y\":773},\"endPoint\":{\"x\":-905,\"y\":716},\"name\":7230,\"isStrLine\":true},{\"startPoint\":{\"x\":-905,\"y\":716},\"endPoint\":{\"x\":-772,\"y\":716},\"name\":7231,\"isStrLine\":true},{\"startPoint\":{\"x\":-772,\"y\":716},\"endPoint\":{\"x\":-772,\"y\":1005},\"name\":7232,\"isStrLine\":true},{\"startPoint\":{\"x\":-772,\"y\":1005},\"endPoint\":{\"x\":-985,\"y\":1005},\"name\":7233,\"isStrLine\":true},{\"startPoint\":{\"x\":-985,\"y\":1005},\"endPoint\":{\"x\":-985,\"y\":773},\"name\":7234,\"isStrLine\":true}],\"entColor\":\"#b3c8ff\",\"borderColor\":\"#7e95cd\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":-880,\"yaxis\":870,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":\"16\",\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":183,\"map\":\"\"},{\"id\":\"1fe8a190556e\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-1399,\"y\":699},\"endPoint\":{\"x\":-1060,\"y\":699},\"name\":7245,\"isStrLine\":true},{\"startPoint\":{\"x\":-1060,\"y\":699},\"endPoint\":{\"x\":-1020,\"y\":766},\"name\":7246,\"isStrLine\":true},{\"startPoint\":{\"x\":-1020,\"y\":766},\"endPoint\":{\"x\":-1020,\"y\":835},\"name\":7247,\"isStrLine\":true},{\"startPoint\":{\"x\":-1020,\"y\":835},\"endPoint\":{\"x\":-1399,\"y\":835},\"name\":7248,\"isStrLine\":true},{\"startPoint\":{\"x\":-1399,\"y\":835},\"endPoint\":{\"x\":-1399,\"y\":699},\"name\":7249,\"isStrLine\":true}],\"entColor\":\"#b3c8ff\",\"borderColor\":\"#7e95cd\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":-1223.5,\"yaxis\":752.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":4,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":155,\"map\":\"\"},{\"id\":\"effac1fefca6\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-1401,\"y\":481},\"endPoint\":{\"x\":-1046,\"y\":481},\"name\":7260,\"isStrLine\":true},{\"startPoint\":{\"x\":-1046,\"y\":481},\"endPoint\":{\"x\":-1046,\"y\":627},\"name\":7261,\"isStrLine\":true},{\"startPoint\":{\"x\":-1046,\"y\":627},\"endPoint\":{\"x\":-1401,\"y\":627},\"name\":7262,\"isStrLine\":true},{\"startPoint\":{\"x\":-1401,\"y\":627},\"endPoint\":{\"x\":-1401,\"y\":481},\"name\":7263,\"isStrLine\":true}],\"entColor\":\"#b3c8ff\",\"borderColor\":\"#7e95cd\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":-1223.5,\"yaxis\":554,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":42,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":160,\"map\":\"\"},{\"id\":\"d58c98fc7248\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-1401,\"y\":112},\"endPoint\":{\"x\":-1044,\"y\":112},\"name\":7272,\"isStrLine\":true},{\"startPoint\":{\"x\":-1044,\"y\":112},\"endPoint\":{\"x\":-1044,\"y\":391},\"name\":7273,\"isStrLine\":true},{\"startPoint\":{\"x\":-1044,\"y\":391},\"endPoint\":{\"x\":-1401,\"y\":391},\"name\":7274,\"isStrLine\":true},{\"startPoint\":{\"x\":-1401,\"y\":391},\"endPoint\":{\"x\":-1401,\"y\":112},\"name\":7275,\"isStrLine\":true}],\"entColor\":\"#b3c8ff\",\"borderColor\":\"#7e95cd\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":-1222.5,\"yaxis\":251.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":41,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":307,\"map\":\"\"},{\"id\":\"d4f16fcf1ecb\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-1397,\"y\":-219},\"endPoint\":{\"x\":-1046,\"y\":-219},\"name\":7284,\"isStrLine\":true},{\"startPoint\":{\"x\":-1046,\"y\":-219},\"endPoint\":{\"x\":-1046,\"y\":35},\"name\":7285,\"isStrLine\":true},{\"startPoint\":{\"x\":-1046,\"y\":35},\"endPoint\":{\"x\":-1397,\"y\":35},\"name\":7286,\"isStrLine\":true},{\"startPoint\":{\"x\":-1397,\"y\":35},\"endPoint\":{\"x\":-1397,\"y\":-219},\"name\":7287,\"isStrLine\":true}],\"entColor\":\"#b3c8ff\",\"borderColor\":\"#7e95cd\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":-1221.5,\"yaxis\":-92,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":38,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":275,\"map\":\"\"},{\"id\":\"5c696b53218c\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-1400,\"y\":-466},\"endPoint\":{\"x\":-1043,\"y\":-466},\"name\":7296,\"isStrLine\":true},{\"startPoint\":{\"x\":-1043,\"y\":-466},\"endPoint\":{\"x\":-1043,\"y\":-292},\"name\":7297,\"isStrLine\":true},{\"startPoint\":{\"x\":-1043,\"y\":-292},\"endPoint\":{\"x\":-1400,\"y\":-292},\"name\":7298,\"isStrLine\":true},{\"startPoint\":{\"x\":-1400,\"y\":-292},\"endPoint\":{\"x\":-1400,\"y\":-466},\"name\":7299,\"isStrLine\":true}],\"entColor\":\"#b3c8ff\",\"borderColor\":\"#7e95cd\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":-1221.5,\"yaxis\":-379,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":36,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":192,\"map\":\"\"},{\"id\":\"47076592d13b\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-950,\"y\":-632},\"endPoint\":{\"x\":-854,\"y\":-632},\"name\":7308,\"isStrLine\":true},{\"startPoint\":{\"x\":-854,\"y\":-632},\"endPoint\":{\"x\":-854,\"y\":-407},\"name\":7309,\"isStrLine\":true},{\"startPoint\":{\"x\":-854,\"y\":-407},\"endPoint\":{\"x\":-950,\"y\":-407},\"name\":7310,\"isStrLine\":true},{\"startPoint\":{\"x\":-950,\"y\":-407},\"endPoint\":{\"x\":-950,\"y\":-632},\"name\":7311,\"isStrLine\":true}],\"entColor\":\"#b3c8ff\",\"borderColor\":\"#7e95cd\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":-902,\"yaxis\":-519.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":17,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":67,\"map\":\"\"},{\"id\":\"5d62c4c4bba1\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-854,\"y\":-632},\"endPoint\":{\"x\":-435,\"y\":-632},\"name\":7320,\"isStrLine\":true},{\"startPoint\":{\"x\":-435,\"y\":-632},\"endPoint\":{\"x\":-435,\"y\":-312},\"name\":7321,\"isStrLine\":true},{\"startPoint\":{\"x\":-435,\"y\":-312},\"endPoint\":{\"x\":-527,\"y\":-312},\"name\":7322,\"isStrLine\":true},{\"startPoint\":{\"x\":-527,\"y\":-312},\"endPoint\":{\"x\":-600,\"y\":-260},\"name\":7323,\"isStrLine\":true},{\"startPoint\":{\"x\":-600,\"y\":-260},\"endPoint\":{\"x\":-600,\"y\":-407},\"name\":7324,\"isStrLine\":true},{\"startPoint\":{\"x\":-600,\"y\":-407},\"endPoint\":{\"x\":-854,\"y\":-407},\"name\":7325,\"isStrLine\":true},{\"startPoint\":{\"x\":-854,\"y\":-407},\"endPoint\":{\"x\":-854,\"y\":-632},\"name\":7326,\"isStrLine\":true}],\"entColor\":\"#b3c8ff\",\"borderColor\":\"#7e95cd\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":-806,\"yaxis\":-519.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":19,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":345,\"map\":\"\"},{\"id\":\"96c06da7ca04\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-950,\"y\":-407},\"endPoint\":{\"x\":-600,\"y\":-407},\"name\":7341,\"isStrLine\":true},{\"startPoint\":{\"x\":-600,\"y\":-407},\"endPoint\":{\"x\":-600,\"y\":-260},\"name\":7342,\"isStrLine\":true},{\"startPoint\":{\"x\":-600,\"y\":-260},\"endPoint\":{\"x\":-644,\"y\":-232},\"name\":7343,\"isStrLine\":true},{\"startPoint\":{\"x\":-644,\"y\":-232},\"endPoint\":{\"x\":-950,\"y\":-232},\"name\":7344,\"isStrLine\":true},{\"startPoint\":{\"x\":-950,\"y\":-232},\"endPoint\":{\"x\":-950,\"y\":-407},\"name\":7345,\"isStrLine\":true}],\"entColor\":\"#b3c8ff\",\"borderColor\":\"#7e95cd\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":-815.5,\"yaxis\":-355,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":37,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":187,\"map\":\"\"},{\"id\":\"cecb4306f83d\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-948,\"y\":-155},\"endPoint\":{\"x\":-797,\"y\":-155},\"name\":7356,\"isStrLine\":true},{\"startPoint\":{\"x\":-797,\"y\":-155},\"endPoint\":{\"x\":-781,\"y\":35},\"name\":7357,\"isStrLine\":true},{\"startPoint\":{\"x\":-781,\"y\":35},\"endPoint\":{\"x\":-948,\"y\":35},\"name\":7358,\"isStrLine\":true},{\"startPoint\":{\"x\":-948,\"y\":35},\"endPoint\":{\"x\":-948,\"y\":-155},\"name\":7359,\"isStrLine\":true}],\"entColor\":\"#b3c8ff\",\"borderColor\":\"#7e95cd\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":-864.5,\"yaxis\":-61,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":39,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":93,\"map\":\"\"},{\"id\":\"186ffc44e3d8\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-948,\"y\":35},\"endPoint\":{\"x\":-781,\"y\":35},\"name\":7368,\"isStrLine\":true},{\"startPoint\":{\"x\":-781,\"y\":35},\"endPoint\":{\"x\":-776,\"y\":116},\"name\":7369,\"isStrLine\":true},{\"startPoint\":{\"x\":-776,\"y\":116},\"endPoint\":{\"x\":-846,\"y\":290},\"name\":7370,\"isStrLine\":true},{\"startPoint\":{\"x\":-846,\"y\":290},\"endPoint\":{\"x\":-948,\"y\":290},\"name\":7371,\"isStrLine\":true},{\"startPoint\":{\"x\":-948,\"y\":290},\"endPoint\":{\"x\":-948,\"y\":35},\"name\":7372,\"isStrLine\":true}],\"entColor\":\"#b3c8ff\",\"borderColor\":\"#7e95cd\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":-864.5,\"yaxis\":129,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":40,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":116,\"map\":\"\"},{\"id\":\"c1f8a95e84c6\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-251,\"y\":-545},\"endPoint\":{\"x\":-90,\"y\":-523},\"name\":7383,\"isStrLine\":true},{\"startPoint\":{\"x\":-90,\"y\":-523},\"endPoint\":{\"x\":-90,\"y\":-307},\"name\":7384,\"isStrLine\":true},{\"startPoint\":{\"x\":-90,\"y\":-307},\"endPoint\":{\"x\":-251,\"y\":-307},\"name\":7385,\"isStrLine\":true},{\"startPoint\":{\"x\":-251,\"y\":-307},\"endPoint\":{\"x\":-251,\"y\":-545},\"name\":7386,\"isStrLine\":true}],\"entColor\":\"#b3c8ff\",\"borderColor\":\"#7e95cd\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":-170.5,\"yaxis\":-426,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":\"57\",\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":113,\"map\":\"\"},{\"id\":\"997f10a5c937\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-59,\"y\":-522},\"endPoint\":{\"x\":55,\"y\":-538},\"name\":7395,\"isStrLine\":true},{\"startPoint\":{\"x\":55,\"y\":-538},\"endPoint\":{\"x\":55,\"y\":-307},\"name\":7396,\"isStrLine\":true},{\"startPoint\":{\"x\":55,\"y\":-307},\"endPoint\":{\"x\":-59,\"y\":-307},\"name\":7397,\"isStrLine\":true},{\"startPoint\":{\"x\":-59,\"y\":-307},\"endPoint\":{\"x\":-59,\"y\":-522},\"name\":7398,\"isStrLine\":true}],\"entColor\":\"#b3c8ff\",\"borderColor\":\"#7e95cd\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":21.5,\"yaxis\":-426,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":\"56\",\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":78,\"map\":\"\"},{\"id\":\"8c8ef8d679de\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":94,\"y\":-537},\"endPoint\":{\"x\":206,\"y\":-564},\"name\":7407,\"isStrLine\":true},{\"startPoint\":{\"x\":206,\"y\":-564},\"endPoint\":{\"x\":206,\"y\":-307},\"name\":7408,\"isStrLine\":true},{\"startPoint\":{\"x\":206,\"y\":-307},\"endPoint\":{\"x\":92,\"y\":-307},\"name\":7409,\"isStrLine\":true},{\"startPoint\":{\"x\":92,\"y\":-307},\"endPoint\":{\"x\":94,\"y\":-537},\"name\":7410,\"isStrLine\":true}],\"entColor\":\"#b3c8ff\",\"borderColor\":\"#7e95cd\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":172.5,\"yaxis\":-426,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":\"55\",\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":85,\"map\":\"\"},{\"id\":\"309bb785ab0d\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":382,\"y\":-594},\"endPoint\":{\"x\":490,\"y\":-582},\"name\":7419,\"isStrLine\":true},{\"startPoint\":{\"x\":490,\"y\":-582},\"endPoint\":{\"x\":588,\"y\":-494},\"name\":7420,\"isStrLine\":true},{\"startPoint\":{\"x\":588,\"y\":-494},\"endPoint\":{\"x\":526,\"y\":-408},\"name\":7421,\"isStrLine\":true},{\"startPoint\":{\"x\":526,\"y\":-408},\"endPoint\":{\"x\":526,\"y\":-258},\"name\":7422,\"isStrLine\":true},{\"startPoint\":{\"x\":526,\"y\":-258},\"endPoint\":{\"x\":382,\"y\":-258},\"name\":7423,\"isStrLine\":true},{\"startPoint\":{\"x\":382,\"y\":-258},\"endPoint\":{\"x\":382,\"y\":-594},\"name\":7424,\"isStrLine\":true}],\"entColor\":\"#b7b7b7\",\"borderColor\":\"#b7b7b7\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":454,\"yaxis\":-429,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":3,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":158,\"map\":\"\"},{\"id\":\"043387b53565\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":588,\"y\":-494},\"endPoint\":{\"x\":682,\"y\":-420},\"name\":7437,\"isStrLine\":true},{\"startPoint\":{\"x\":682,\"y\":-420},\"endPoint\":{\"x\":682,\"y\":-360},\"name\":7438,\"isStrLine\":true},{\"startPoint\":{\"x\":682,\"y\":-360},\"endPoint\":{\"x\":526,\"y\":-360},\"name\":7439,\"isStrLine\":true},{\"startPoint\":{\"x\":526,\"y\":-360},\"endPoint\":{\"x\":526,\"y\":-408},\"name\":7440,\"isStrLine\":true},{\"startPoint\":{\"x\":526,\"y\":-408},\"endPoint\":{\"x\":588,\"y\":-494},\"name\":7441,\"isStrLine\":true}],\"entColor\":\"#b7b7b7\",\"borderColor\":\"#b7b7b7\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":605,\"yaxis\":-397,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":3,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":46,\"map\":\"\"},{\"id\":\"9e10e2f19af5\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":526,\"y\":-360},\"endPoint\":{\"x\":682,\"y\":-360},\"name\":7452,\"isStrLine\":true},{\"startPoint\":{\"x\":682,\"y\":-360},\"endPoint\":{\"x\":682,\"y\":-258},\"name\":7453,\"isStrLine\":true},{\"startPoint\":{\"x\":682,\"y\":-258},\"endPoint\":{\"x\":526,\"y\":-258},\"name\":7454,\"isStrLine\":true},{\"startPoint\":{\"x\":526,\"y\":-258},\"endPoint\":{\"x\":526,\"y\":-360},\"name\":7455,\"isStrLine\":true}],\"entColor\":\"#b7b7b7\",\"borderColor\":\"#b7b7b7\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":602,\"yaxis\":-303,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":3,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":49,\"map\":\"\"},{\"id\":\"3a70b5185dee\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":382,\"y\":-258},\"endPoint\":{\"x\":682,\"y\":-258},\"name\":7464,\"isStrLine\":true},{\"startPoint\":{\"x\":682,\"y\":-258},\"endPoint\":{\"x\":682,\"y\":-70},\"name\":7465,\"isStrLine\":true},{\"startPoint\":{\"x\":682,\"y\":-70},\"endPoint\":{\"x\":382,\"y\":-70},\"name\":7466,\"isStrLine\":true},{\"startPoint\":{\"x\":382,\"y\":-70},\"endPoint\":{\"x\":382,\"y\":-258},\"name\":7467,\"isStrLine\":true}],\"entColor\":\"#b7b7b7\",\"borderColor\":\"#b7b7b7\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":505,\"yaxis\":-182,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":3,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":174,\"map\":\"\"},{\"id\":\"a92c5d27b38f\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":382,\"y\":-70},\"endPoint\":{\"x\":504,\"y\":-70},\"name\":7476,\"isStrLine\":true},{\"startPoint\":{\"x\":504,\"y\":-70},\"endPoint\":{\"x\":504,\"y\":192},\"name\":7477,\"isStrLine\":true},{\"startPoint\":{\"x\":504,\"y\":192},\"endPoint\":{\"x\":382,\"y\":192},\"name\":7478,\"isStrLine\":true},{\"startPoint\":{\"x\":382,\"y\":192},\"endPoint\":{\"x\":382,\"y\":-70},\"name\":7479,\"isStrLine\":true}],\"entColor\":\"#b7b7b7\",\"borderColor\":\"#b7b7b7\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":417,\"yaxis\":49,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":\"34\",\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":99,\"map\":\"\"},{\"id\":\"e53428677347\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":612,\"y\":22},\"endPoint\":{\"x\":682,\"y\":22},\"name\":7488,\"isStrLine\":true},{\"startPoint\":{\"x\":682,\"y\":22},\"endPoint\":{\"x\":682,\"y\":192},\"name\":7489,\"isStrLine\":true},{\"startPoint\":{\"x\":682,\"y\":192},\"endPoint\":{\"x\":612,\"y\":192},\"name\":7490,\"isStrLine\":true},{\"startPoint\":{\"x\":612,\"y\":192},\"endPoint\":{\"x\":612,\"y\":22},\"name\":7491,\"isStrLine\":true}],\"entColor\":\"#b7b7b7\",\"borderColor\":\"#b7b7b7\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":638,\"yaxis\":93,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":14,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":37,\"map\":\"\"},{\"id\":\"d21782499d6e\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-184,\"y\":392},\"endPoint\":{\"x\":94,\"y\":432},\"name\":7500,\"isStrLine\":true},{\"startPoint\":{\"x\":94,\"y\":432},\"endPoint\":{\"x\":94,\"y\":656},\"name\":7501,\"isStrLine\":true},{\"startPoint\":{\"x\":94,\"y\":656},\"endPoint\":{\"x\":-336,\"y\":636},\"name\":7502,\"isStrLine\":true},{\"startPoint\":{\"x\":-336,\"y\":636},\"endPoint\":{\"x\":-184,\"y\":392},\"name\":7503,\"isStrLine\":false,\"ctrlPoint1\":{\"x\":-292,\"y\":544},\"ctrlPoint2\":{\"x\":-228,\"y\":378}}],\"entColor\":\"#b7b7b7\",\"borderColor\":\"#b7b7b7\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":-45,\"yaxis\":524,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":5,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":275,\"map\":\"\"},{\"id\":\"bc4ea4e9f046\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":94,\"y\":432},\"endPoint\":{\"x\":141,\"y\":434.56363636363636},\"name\":7519,\"isStrLine\":true},{\"startPoint\":{\"x\":141,\"y\":434.56363636363636},\"endPoint\":{\"x\":284,\"y\":278},\"name\":7520,\"isStrLine\":true},{\"startPoint\":{\"x\":284,\"y\":278},\"endPoint\":{\"x\":376,\"y\":362},\"name\":7521,\"isStrLine\":true},{\"startPoint\":{\"x\":376,\"y\":362},\"endPoint\":{\"x\":318,\"y\":540},\"name\":7522,\"isStrLine\":true},{\"startPoint\":{\"x\":318,\"y\":540},\"endPoint\":{\"x\":94,\"y\":656},\"name\":7523,\"isStrLine\":true},{\"startPoint\":{\"x\":94,\"y\":656},\"endPoint\":{\"x\":94,\"y\":432},\"name\":7524,\"isStrLine\":true}],\"entColor\":\"#b7b7b7\",\"borderColor\":\"#b7b7b7\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":163,\"yaxis\":488,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":5,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":183,\"map\":\"\"}],\"path\":{\"nodes\":[{\"id\":0,\"x\":-937,\"y\":-900,\"Proy\":\"graph\",\"list\":[{\"cost\":222,\"id\":1}]},{\"id\":1,\"x\":-940,\"y\":-678,\"Proy\":\"graph\",\"list\":[{\"cost\":222,\"id\":0},{\"cost\":57,\"id\":2},{\"cost\":36,\"id\":17}]},{\"id\":2,\"x\":-997,\"y\":-677,\"Proy\":\"graph\",\"list\":[{\"cost\":57,\"id\":1},{\"cost\":155,\"id\":35}]},{\"id\":3,\"x\":533,\"y\":-682,\"Proy\":\"graph\",\"list\":[{\"cost\":88,\"id\":11},{\"cost\":119,\"id\":24},{\"cost\":82,\"id\":27}]},{\"id\":4,\"x\":-1000,\"y\":690,\"Proy\":\"graph\",\"list\":[{\"cost\":136,\"id\":16},{\"cost\":132,\"id\":42}]},{\"id\":5,\"x\":160,\"y\":693,\"Proy\":\"graph\",\"list\":[{\"cost\":260,\"id\":46},{\"cost\":117,\"id\":47}]},{\"id\":6,\"x\":398,\"y\":530,\"Proy\":\"graph\",\"list\":[{\"cost\":302,\"id\":33},{\"cost\":170,\"id\":47},{\"cost\":82,\"id\":48}]},{\"id\":7,\"x\":773,\"y\":527,\"Proy\":\"graph\",\"list\":[{\"cost\":93,\"id\":8},{\"cost\":145,\"id\":49}]},{\"id\":8,\"x\":855,\"y\":483,\"Proy\":\"graph\",\"list\":[{\"cost\":93,\"id\":7},{\"cost\":76,\"id\":50}]},{\"id\":9,\"x\":863,\"y\":-607,\"Proy\":\"graph\",\"list\":[{\"cost\":180,\"id\":10},{\"cost\":165,\"id\":29}]},{\"id\":10,\"x\":768,\"y\":-760,\"Proy\":\"graph\",\"list\":[{\"cost\":180,\"id\":9},{\"cost\":193,\"id\":11}]},{\"id\":11,\"x\":575,\"y\":-760,\"Proy\":\"graph\",\"list\":[{\"cost\":88,\"id\":3},{\"cost\":193,\"id\":10}]},{\"id\":12,\"x\":-472,\"y\":-679,\"Proy\":\"graph\",\"list\":[{\"cost\":98,\"id\":13},{\"cost\":204,\"id\":19},{\"cost\":121,\"id\":51}]},{\"id\":13,\"x\":-472,\"y\":-777,\"Proy\":\"graph\",\"list\":[{\"cost\":98,\"id\":12}]},{\"id\":14,\"x\":856,\"y\":97,\"Proy\":\"graph\",\"list\":[{\"cost\":129,\"id\":32},{\"cost\":109,\"id\":15},{\"cost\":133,\"id\":26},{\"cost\":143,\"id\":31}]},{\"id\":15,\"x\":965,\"y\":98,\"Proy\":\"graph\",\"list\":[{\"cost\":109,\"id\":14}]},{\"id\":16,\"x\":-864,\"y\":690,\"Proy\":\"graph\",\"list\":[{\"cost\":136,\"id\":4},{\"cost\":198,\"id\":43}]},{\"id\":17,\"x\":-904,\"y\":-679,\"Proy\":\"graph\",\"list\":[{\"cost\":36,\"id\":1},{\"cost\":112,\"id\":18}]},{\"id\":18,\"x\":-792,\"y\":-679,\"Proy\":\"graph\",\"list\":[{\"cost\":112,\"id\":17},{\"cost\":116,\"id\":19}]},{\"id\":19,\"x\":-676,\"y\":-679,\"Proy\":\"graph\",\"list\":[{\"cost\":204,\"id\":12},{\"cost\":116,\"id\":18}]},{\"id\":20,\"x\":-238,\"y\":-680,\"Proy\":\"graph\",\"list\":[{\"cost\":220,\"id\":21},{\"cost\":113,\"id\":51}]},{\"id\":21,\"x\":-18,\"y\":-681,\"Proy\":\"graph\",\"list\":[{\"cost\":220,\"id\":20},{\"cost\":222,\"id\":22}]},{\"id\":22,\"x\":204,\"y\":-682,\"Proy\":\"graph\",\"list\":[{\"cost\":222,\"id\":21},{\"cost\":118,\"id\":23},{\"cost\":95,\"id\":54}]},{\"id\":23,\"x\":322,\"y\":-682,\"Proy\":\"graph\",\"list\":[{\"cost\":118,\"id\":22},{\"cost\":92,\"id\":24}]},{\"id\":24,\"x\":414,\"y\":-682,\"Proy\":\"graph\",\"list\":[{\"cost\":119,\"id\":3},{\"cost\":92,\"id\":23}]},{\"id\":25,\"x\":860,\"y\":-318,\"Proy\":\"graph\",\"list\":[{\"cost\":124,\"id\":29},{\"cost\":282,\"id\":26}]},{\"id\":26,\"x\":858,\"y\":-36,\"Proy\":\"graph\",\"list\":[{\"cost\":133,\"id\":14},{\"cost\":282,\"id\":25}]},{\"id\":27,\"x\":530,\"y\":-600,\"Proy\":\"graph\",\"list\":[{\"cost\":82,\"id\":3},{\"cost\":244,\"id\":28}]},{\"id\":28,\"x\":712,\"y\":-436,\"Proy\":\"graph\",\"list\":[{\"cost\":244,\"id\":27},{\"cost\":149,\"id\":29},{\"cost\":532,\"id\":31}]},{\"id\":29,\"x\":861,\"y\":-442,\"Proy\":\"graph\",\"list\":[{\"cost\":165,\"id\":9},{\"cost\":124,\"id\":25},{\"cost\":149,\"id\":28}]},{\"id\":30,\"x\":714,\"y\":226,\"Proy\":\"graph\",\"list\":[{\"cost\":142,\"id\":32},{\"cost\":130,\"id\":31},{\"cost\":252,\"id\":34}]},{\"id\":31,\"x\":713,\"y\":96,\"Proy\":\"graph\",\"list\":[{\"cost\":143,\"id\":14},{\"cost\":532,\"id\":28},{\"cost\":130,\"id\":30}]},{\"id\":32,\"x\":856,\"y\":226,\"Proy\":\"graph\",\"list\":[{\"cost\":129,\"id\":14},{\"cost\":142,\"id\":30},{\"cost\":181,\"id\":50}]},{\"id\":33,\"x\":396,\"y\":228,\"Proy\":\"graph\",\"list\":[{\"cost\":302,\"id\":6},{\"cost\":66,\"id\":34}]},{\"id\":34,\"x\":462,\"y\":227,\"Proy\":\"graph\",\"list\":[{\"cost\":252,\"id\":30},{\"cost\":66,\"id\":33}]},{\"id\":35,\"x\":-998,\"y\":-522,\"Proy\":\"graph\",\"list\":[{\"cost\":155,\"id\":2},{\"cost\":122,\"id\":36}]},{\"id\":36,\"x\":-998,\"y\":-400,\"Proy\":\"graph\",\"list\":[{\"cost\":122,\"id\":35},{\"cost\":66,\"id\":37}]},{\"id\":37,\"x\":-998,\"y\":-334,\"Proy\":\"graph\",\"list\":[{\"cost\":66,\"id\":36},{\"cost\":222,\"id\":38}]},{\"id\":38,\"x\":-999,\"y\":-112,\"Proy\":\"graph\",\"list\":[{\"cost\":222,\"id\":37},{\"cost\":60,\"id\":39}]},{\"id\":39,\"x\":-999,\"y\":-52,\"Proy\":\"graph\",\"list\":[{\"cost\":60,\"id\":38},{\"cost\":194,\"id\":40}]},{\"id\":40,\"x\":-999,\"y\":142,\"Proy\":\"graph\",\"list\":[{\"cost\":194,\"id\":39},{\"cost\":146,\"id\":41}]},{\"id\":41,\"x\":-1000,\"y\":288,\"Proy\":\"graph\",\"list\":[{\"cost\":146,\"id\":40},{\"cost\":270,\"id\":42}]},{\"id\":42,\"x\":-1000,\"y\":558,\"Proy\":\"graph\",\"list\":[{\"cost\":132,\"id\":4},{\"cost\":270,\"id\":41}]},{\"id\":43,\"x\":-666,\"y\":690,\"Proy\":\"graph\",\"list\":[{\"cost\":198,\"id\":16},{\"cost\":200,\"id\":44}]},{\"id\":44,\"x\":-466,\"y\":691,\"Proy\":\"graph\",\"list\":[{\"cost\":200,\"id\":43},{\"cost\":152,\"id\":45}]},{\"id\":45,\"x\":-314,\"y\":691,\"Proy\":\"graph\",\"list\":[{\"cost\":152,\"id\":44},{\"cost\":214,\"id\":46}]},{\"id\":46,\"x\":-100,\"y\":692,\"Proy\":\"graph\",\"list\":[{\"cost\":260,\"id\":5},{\"cost\":214,\"id\":45}]},{\"id\":47,\"x\":257,\"y\":626,\"Proy\":\"graph\",\"list\":[{\"cost\":117,\"id\":5},{\"cost\":170,\"id\":6}]},{\"id\":48,\"x\":480,\"y\":529,\"Proy\":\"graph\",\"list\":[{\"cost\":82,\"id\":6},{\"cost\":148,\"id\":49}]},{\"id\":49,\"x\":628,\"y\":528,\"Proy\":\"graph\",\"list\":[{\"cost\":145,\"id\":7},{\"cost\":148,\"id\":48}]},{\"id\":50,\"x\":855,\"y\":407,\"Proy\":\"graph\",\"list\":[{\"cost\":76,\"id\":8},{\"cost\":181,\"id\":32}]},{\"id\":51,\"x\":-351,\"y\":-680,\"Proy\":\"graph\",\"list\":[{\"cost\":121,\"id\":12},{\"cost\":113,\"id\":20},{\"cost\":95,\"id\":52}]},{\"id\":52,\"x\":-355,\"y\":-585,\"Proy\":\"graph\",\"list\":[{\"cost\":95,\"id\":51},{\"cost\":176,\"id\":57}]},{\"id\":53,\"x\":-95,\"y\":-542,\"Proy\":\"graph\",\"list\":[{\"cost\":85,\"id\":56},{\"cost\":87,\"id\":57}]},{\"id\":54,\"x\":205,\"y\":-587,\"Proy\":\"graph\",\"list\":[{\"cost\":95,\"id\":22},{\"cost\":74,\"id\":55}]},{\"id\":55,\"x\":131,\"y\":-576,\"Proy\":\"graph\",\"list\":[{\"cost\":74,\"id\":54},{\"cost\":143,\"id\":56}]},{\"id\":56,\"x\":-11,\"y\":-555,\"Proy\":\"graph\",\"list\":[{\"cost\":85,\"id\":53},{\"cost\":143,\"id\":55}]},{\"id\":57,\"x\":-181,\"y\":-557,\"Proy\":\"graph\",\"list\":[{\"cost\":176,\"id\":52},{\"cost\":87,\"id\":53}]}]},\"decos\":[],\"icons\":[],\"stairs\":[{\"no\":\"1\",\"x\":-477,\"y\":-782,\"navCode\":13,\"facCode\":\"dt\",\"title\":\"直梯\",\"site\":0,\"angle\":0,\"state\":true,\"iShow\":true,\"downState\":false,\"upState\":false},{\"no\":\"2\",\"x\":975,\"y\":100,\"navCode\":15,\"facCode\":\"dt\",\"title\":\"直梯\",\"site\":0,\"angle\":0,\"state\":true,\"iShow\":true,\"downState\":false,\"upState\":false}],\"parkArea\":[],\"wallArea\":[],\"svgArea\":[],\"models\":[]},\"code\":\"3xmtwGPYYlUyL9WftNsdd\"},{\"name\":\"L1\",\"mapData\":{\"groupArea\":[],\"floorArea\":{\"id\":\"ca116954e43f\",\"name\":\"floor\",\"hasLines\":[{\"startPoint\":{\"x\":-2475,\"y\":-1878},\"endPoint\":{\"x\":1657,\"y\":-1878},\"name\":11228,\"isStrLine\":true},{\"startPoint\":{\"x\":1657,\"y\":-1878},\"endPoint\":{\"x\":1805,\"y\":-2024},\"name\":11229,\"isStrLine\":false,\"ctrlPoint1\":{\"x\":1777,\"y\":-1878},\"ctrlPoint2\":{\"x\":1812,\"y\":-1916}},{\"startPoint\":{\"x\":1805,\"y\":-2024},\"endPoint\":{\"x\":1805,\"y\":-2481},\"name\":11230,\"isStrLine\":true},{\"startPoint\":{\"x\":1805,\"y\":-2481},\"endPoint\":{\"x\":2316,\"y\":-2477},\"name\":11231,\"isStrLine\":true},{\"startPoint\":{\"x\":2316,\"y\":-2477},\"endPoint\":{\"x\":2316,\"y\":2141},\"name\":11232,\"isStrLine\":true},{\"startPoint\":{\"x\":2316,\"y\":2141},\"endPoint\":{\"x\":-2475,\"y\":2141},\"name\":11233,\"isStrLine\":true},{\"startPoint\":{\"x\":-2475,\"y\":2141},\"endPoint\":{\"x\":-2475,\"y\":-1878},\"name\":11234,\"isStrLine\":true}],\"entColor\":\"#dcdcdc\",\"borderColor\":\"#dcdcdc\",\"toHeight\":80,\"alphaModle\":100,\"site\":0,\"xaxis\":-4.5,\"yaxis\":5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":60385,\"map\":\"\"},\"buildArea\":[{\"id\":\"ae20f07bbb9a\",\"name\":\"area\",\"hasLines\":[{\"startPoint\":{\"x\":-2472,\"y\":-1336},\"endPoint\":{\"x\":-2168,\"y\":-1336},\"name\":11235,\"isStrLine\":true},{\"startPoint\":{\"x\":-2168,\"y\":-1336},\"endPoint\":{\"x\":-2032,\"y\":-1199},\"name\":11236,\"isStrLine\":false,\"ctrlPoint1\":{\"x\":-2092,\"y\":-1339},\"ctrlPoint2\":{\"x\":-2032,\"y\":-1274}},{\"startPoint\":{\"x\":-2032,\"y\":-1199},\"endPoint\":{\"x\":-2032,\"y\":2139},\"name\":11237,\"isStrLine\":true},{\"startPoint\":{\"x\":-2032,\"y\":2139},\"endPoint\":{\"x\":-2472,\"y\":2139},\"name\":11238,\"isStrLine\":true},{\"startPoint\":{\"x\":-2472,\"y\":2139},\"endPoint\":{\"x\":-2472,\"y\":-1336},\"name\":11239,\"isStrLine\":true}],\"entColor\":\"#fafafa\",\"borderColor\":\"#ffffff\",\"toHeight\":1,\"alphaModle\":100,\"site\":0,\"xaxis\":-2255,\"yaxis\":577,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":4707,\"map\":\"\"},{\"id\":\"956fb76845e7\",\"name\":\"area\",\"hasLines\":[{\"startPoint\":{\"x\":-1557,\"y\":1826},\"endPoint\":{\"x\":-1427,\"y\":1711},\"name\":11240,\"isStrLine\":false,\"ctrlPoint1\":{\"x\":-1556,\"y\":1746},\"ctrlPoint2\":{\"x\":-1507,\"y\":1710}},{\"startPoint\":{\"x\":-1427,\"y\":1711},\"endPoint\":{\"x\":1669.8765432098767,\"y\":1711},\"name\":11241,\"isStrLine\":true},{\"startPoint\":{\"x\":1669.8765432098767,\"y\":1711},\"endPoint\":{\"x\":1806,\"y\":1859},\"name\":11242,\"isStrLine\":false,\"ctrlPoint1\":{\"x\":1763,\"y\":1718},\"ctrlPoint2\":{\"x\":1812,\"y\":1757}},{\"startPoint\":{\"x\":1806,\"y\":1859},\"endPoint\":{\"x\":1806,\"y\":2136},\"name\":11243,\"isStrLine\":true},{\"startPoint\":{\"x\":1806,\"y\":2136},\"endPoint\":{\"x\":-1557,\"y\":2136},\"name\":11244,\"isStrLine\":true},{\"startPoint\":{\"x\":-1557,\"y\":2136},\"endPoint\":{\"x\":-1557,\"y\":1826},\"name\":11245,\"isStrLine\":true}],\"entColor\":\"#fafafa\",\"borderColor\":\"#ffffff\",\"toHeight\":1,\"alphaModle\":100,\"site\":0,\"xaxis\":82,\"yaxis\":2092,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":4393,\"map\":\"\"},{\"id\":\"8a69f7b41282\",\"name\":\"area\",\"hasLines\":[{\"startPoint\":{\"x\":-1441,\"y\":-1342},\"endPoint\":{\"x\":1547,\"y\":-1342},\"name\":11246,\"isStrLine\":true},{\"startPoint\":{\"x\":1547,\"y\":-1342},\"endPoint\":{\"x\":1779,\"y\":-1144},\"name\":11247,\"isStrLine\":false,\"ctrlPoint1\":{\"x\":1669,\"y\":-1345},\"ctrlPoint2\":{\"x\":1780,\"y\":-1307}},{\"startPoint\":{\"x\":1779,\"y\":-1144},\"endPoint\":{\"x\":1779,\"y\":1080},\"name\":11248,\"isStrLine\":true},{\"startPoint\":{\"x\":1779,\"y\":1080},\"endPoint\":{\"x\":1658,\"y\":1207},\"name\":11249,\"isStrLine\":false,\"ctrlPoint1\":{\"x\":1783,\"y\":1150},\"ctrlPoint2\":{\"x\":1752,\"y\":1200}},{\"startPoint\":{\"x\":1658,\"y\":1207},\"endPoint\":{\"x\":691,\"y\":1207},\"name\":11250,\"isStrLine\":true},{\"startPoint\":{\"x\":691,\"y\":1207},\"endPoint\":{\"x\":691,\"y\":1100},\"name\":11251,\"isStrLine\":true},{\"startPoint\":{\"x\":691,\"y\":1100},\"endPoint\":{\"x\":173,\"y\":1100},\"name\":11252,\"isStrLine\":true},{\"startPoint\":{\"x\":173,\"y\":1100},\"endPoint\":{\"x\":173,\"y\":1207},\"name\":11253,\"isStrLine\":true},{\"startPoint\":{\"x\":173,\"y\":1207},\"endPoint\":{\"x\":-1183,\"y\":1207},\"name\":11254,\"isStrLine\":true},{\"startPoint\":{\"x\":-1183,\"y\":1207},\"endPoint\":{\"x\":-1183,\"y\":984},\"name\":11255,\"isStrLine\":true},{\"startPoint\":{\"x\":-1183,\"y\":984},\"endPoint\":{\"x\":-1437,\"y\":984},\"name\":11256,\"isStrLine\":true},{\"startPoint\":{\"x\":-1437,\"y\":984},\"endPoint\":{\"x\":-1437,\"y\":1072},\"name\":11257,\"isStrLine\":true},{\"startPoint\":{\"x\":-1437,\"y\":1072},\"endPoint\":{\"x\":-1290,\"y\":1072},\"name\":11258,\"isStrLine\":true},{\"startPoint\":{\"x\":-1290,\"y\":1072},\"endPoint\":{\"x\":-1290,\"y\":1207},\"name\":11259,\"isStrLine\":true},{\"startPoint\":{\"x\":-1290,\"y\":1207},\"endPoint\":{\"x\":-1406,\"y\":1207},\"name\":11260,\"isStrLine\":true},{\"startPoint\":{\"x\":-1406,\"y\":1207},\"endPoint\":{\"x\":-1597,\"y\":1021},\"name\":11261,\"isStrLine\":false,\"ctrlPoint1\":{\"x\":-1532,\"y\":1205},\"ctrlPoint2\":{\"x\":-1606,\"y\":1140}},{\"startPoint\":{\"x\":-1597,\"y\":1021},\"endPoint\":{\"x\":-1597,\"y\":-1185},\"name\":11262,\"isStrLine\":true},{\"startPoint\":{\"x\":-1597,\"y\":-1185},\"endPoint\":{\"x\":-1441,\"y\":-1342},\"name\":11263,\"isStrLine\":false,\"ctrlPoint1\":{\"x\":-1607,\"y\":-1293},\"ctrlPoint2\":{\"x\":-1559,\"y\":-1341}}],\"entColor\":\"#ffffff\",\"borderColor\":\"#dedede\",\"toHeight\":1,\"alphaModle\":100,\"site\":0,\"xaxis\":71.5,\"yaxis\":99,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":26216,\"map\":\"\"},{\"id\":\"73663d68c572\",\"name\":\"area\",\"hasLines\":[{\"startPoint\":{\"x\":34,\"y\":75},\"endPoint\":{\"x\":456.49,\"y\":-136.36},\"name\":11264,\"isStrLine\":true},{\"startPoint\":{\"x\":456.49,\"y\":-136.36},\"endPoint\":{\"x\":484.01,\"y\":-75.2},\"name\":11265,\"isStrLine\":true},{\"startPoint\":{\"x\":484.01,\"y\":-75.2},\"endPoint\":{\"x\":478,\"y\":31},\"name\":11266,\"isStrLine\":true},{\"startPoint\":{\"x\":478,\"y\":31},\"endPoint\":{\"x\":269.09,\"y\":31},\"name\":11267,\"isStrLine\":true},{\"startPoint\":{\"x\":269.09,\"y\":31},\"endPoint\":{\"x\":229,\"y\":69.04},\"name\":11268,\"isStrLine\":false,\"ctrlPoint1\":{\"x\":248,\"y\":33},\"ctrlPoint2\":{\"x\":228,\"y\":42}},{\"startPoint\":{\"x\":229,\"y\":69.04},\"endPoint\":{\"x\":229,\"y\":103.04},\"name\":11269,\"isStrLine\":true},{\"startPoint\":{\"x\":229,\"y\":103.04},\"endPoint\":{\"x\":244,\"y\":141},\"name\":11270,\"isStrLine\":false,\"ctrlPoint1\":{\"x\":229,\"y\":116},\"ctrlPoint2\":{\"x\":235,\"y\":130}},{\"startPoint\":{\"x\":244,\"y\":141},\"endPoint\":{\"x\":387.64,\"y\":280.23},\"name\":11271,\"isStrLine\":true},{\"startPoint\":{\"x\":387.64,\"y\":280.23},\"endPoint\":{\"x\":427,\"y\":261.91},\"name\":11272,\"isStrLine\":false,\"ctrlPoint1\":{\"x\":407.01,\"y\":293.79},\"ctrlPoint2\":{\"x\":424.07,\"y\":282.42}},{\"startPoint\":{\"x\":427,\"y\":261.91},\"endPoint\":{\"x\":435.04,\"y\":55},\"name\":11273,\"isStrLine\":true},{\"startPoint\":{\"x\":435.04,\"y\":55},\"endPoint\":{\"x\":477.04,\"y\":55},\"name\":11274,\"isStrLine\":true},{\"startPoint\":{\"x\":477.04,\"y\":55},\"endPoint\":{\"x\":468,\"y\":286.04},\"name\":11275,\"isStrLine\":true},{\"startPoint\":{\"x\":468,\"y\":286.04},\"endPoint\":{\"x\":440.72,\"y\":368.7},\"name\":11276,\"isStrLine\":false,\"ctrlPoint1\":{\"x\":466,\"y\":312},\"ctrlPoint2\":{\"x\":463,\"y\":339}},{\"startPoint\":{\"x\":440.72,\"y\":368.7},\"endPoint\":{\"x\":314,\"y\":513},\"name\":11277,\"isStrLine\":true},{\"startPoint\":{\"x\":314,\"y\":513},\"endPoint\":{\"x\":34,\"y\":75},\"name\":11278,\"isStrLine\":true}],\"entColor\":\"#b8dc9c\",\"borderColor\":\"#b8dc9c\",\"toHeight\":1,\"alphaModle\":100,\"site\":0,\"xaxis\":295,\"yaxis\":140.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":389,\"map\":\"\"}],\"hollowArea\":[{\"id\":\"3d85a7fe3e6f\",\"name\":\"hollow\",\"hasLines\":[{\"startPoint\":{\"x\":-857,\"y\":-226},\"endPoint\":{\"x\":-719,\"y\":-315},\"name\":11279,\"isStrLine\":true},{\"startPoint\":{\"x\":-719,\"y\":-315},\"endPoint\":{\"x\":-636,\"y\":-315},\"name\":11280,\"isStrLine\":false,\"ctrlPoint1\":{\"x\":-688,\"y\":-342},\"ctrlPoint2\":{\"x\":-665,\"y\":-328}},{\"startPoint\":{\"x\":-636,\"y\":-315},\"endPoint\":{\"x\":-502,\"y\":-244},\"name\":11281,\"isStrLine\":true},{\"startPoint\":{\"x\":-502,\"y\":-244},\"endPoint\":{\"x\":84,\"y\":-244},\"name\":11282,\"isStrLine\":true},{\"startPoint\":{\"x\":84,\"y\":-244},\"endPoint\":{\"x\":340,\"y\":-362},\"name\":11283,\"isStrLine\":true},{\"startPoint\":{\"x\":340,\"y\":-362},\"endPoint\":{\"x\":456,\"y\":-141},\"name\":11284,\"isStrLine\":true},{\"startPoint\":{\"x\":456,\"y\":-141},\"endPoint\":{\"x\":488,\"y\":-72},\"name\":11285,\"isStrLine\":true},{\"startPoint\":{\"x\":488,\"y\":-72},\"endPoint\":{\"x\":472,\"y\":277},\"name\":11286,\"isStrLine\":true},{\"startPoint\":{\"x\":472,\"y\":277},\"endPoint\":{\"x\":442,\"y\":371},\"name\":11287,\"isStrLine\":false,\"ctrlPoint1\":{\"x\":471,\"y\":312},\"ctrlPoint2\":{\"x\":467,\"y\":341}},{\"startPoint\":{\"x\":442,\"y\":371},\"endPoint\":{\"x\":301,\"y\":532},\"name\":11288,\"isStrLine\":true},{\"startPoint\":{\"x\":301,\"y\":532},\"endPoint\":{\"x\":198,\"y\":577},\"name\":11289,\"isStrLine\":false,\"ctrlPoint1\":{\"x\":270,\"y\":572},\"ctrlPoint2\":{\"x\":239,\"y\":577}},{\"startPoint\":{\"x\":198,\"y\":577},\"endPoint\":{\"x\":-182,\"y\":521},\"name\":11290,\"isStrLine\":true},{\"startPoint\":{\"x\":-182,\"y\":521},\"endPoint\":{\"x\":-611,\"y\":682},\"name\":11291,\"isStrLine\":true},{\"startPoint\":{\"x\":-611,\"y\":682},\"endPoint\":{\"x\":-913,\"y\":408},\"name\":11292,\"isStrLine\":true},{\"startPoint\":{\"x\":-913,\"y\":408},\"endPoint\":{\"x\":-839,\"y\":266},\"name\":11293,\"isStrLine\":true},{\"startPoint\":{\"x\":-839,\"y\":266},\"endPoint\":{\"x\":-881,\"y\":-139},\"name\":11294,\"isStrLine\":true},{\"startPoint\":{\"x\":-881,\"y\":-139},\"endPoint\":{\"x\":-857,\"y\":-226},\"name\":11295,\"isStrLine\":false,\"ctrlPoint1\":{\"x\":-887,\"y\":-181},\"ctrlPoint2\":{\"x\":-876,\"y\":-202}}],\"entColor\":\"\",\"borderColor\":\"\",\"toHeight\":30,\"alphaModle\":90,\"site\":0,\"xaxis\":-210.5,\"yaxis\":176.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":0,\"isLabel\":1,\"comeIn\":\"\",\"area\":3403,\"map\":\"\"},{\"id\":\"7cebb42f0bf4\",\"name\":\"hollow\",\"hasLines\":[{\"startPoint\":{\"x\":687,\"y\":423},\"endPoint\":{\"x\":821,\"y\":368},\"name\":11296,\"isStrLine\":true},{\"startPoint\":{\"x\":821,\"y\":368},\"endPoint\":{\"x\":1028,\"y\":368},\"name\":11297,\"isStrLine\":true},{\"startPoint\":{\"x\":1028,\"y\":368},\"endPoint\":{\"x\":1028,\"y\":588},\"name\":11298,\"isStrLine\":true},{\"startPoint\":{\"x\":1028,\"y\":588},\"endPoint\":{\"x\":948,\"y\":653},\"name\":11299,\"isStrLine\":true},{\"startPoint\":{\"x\":948,\"y\":653},\"endPoint\":{\"x\":684,\"y\":653},\"name\":11300,\"isStrLine\":true},{\"startPoint\":{\"x\":684,\"y\":653},\"endPoint\":{\"x\":640,\"y\":597},\"name\":11301,\"isStrLine\":true},{\"startPoint\":{\"x\":640,\"y\":597},\"endPoint\":{\"x\":687,\"y\":423},\"name\":11302,\"isStrLine\":true}],\"entColor\":\"\",\"borderColor\":\"\",\"toHeight\":30,\"alphaModle\":90,\"site\":0,\"xaxis\":834,\"yaxis\":510.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":0,\"isLabel\":1,\"comeIn\":\"\",\"area\":297,\"map\":\"\"},{\"id\":\"bd2c836d5da4\",\"name\":\"hollow\",\"hasLines\":[{\"startPoint\":{\"x\":-1082,\"y\":601},\"endPoint\":{\"x\":-985,\"y\":503},\"name\":11303,\"isStrLine\":true},{\"startPoint\":{\"x\":-985,\"y\":503},\"endPoint\":{\"x\":-926,\"y\":505},\"name\":11304,\"isStrLine\":true},{\"startPoint\":{\"x\":-926,\"y\":505},\"endPoint\":{\"x\":-642,\"y\":778},\"name\":11305,\"isStrLine\":true},{\"startPoint\":{\"x\":-642,\"y\":778},\"endPoint\":{\"x\":-690,\"y\":835},\"name\":11306,\"isStrLine\":true},{\"startPoint\":{\"x\":-690,\"y\":835},\"endPoint\":{\"x\":-968,\"y\":835},\"name\":11307,\"isStrLine\":true},{\"startPoint\":{\"x\":-968,\"y\":835},\"endPoint\":{\"x\":-1082,\"y\":773},\"name\":11308,\"isStrLine\":true},{\"startPoint\":{\"x\":-1082,\"y\":773},\"endPoint\":{\"x\":-1082,\"y\":601},\"name\":11309,\"isStrLine\":true}],\"entColor\":\"\",\"borderColor\":\"\",\"toHeight\":30,\"alphaModle\":90,\"site\":0,\"xaxis\":-863,\"yaxis\":669,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":0,\"isLabel\":1,\"comeIn\":\"\",\"area\":299,\"map\":\"\"},{\"id\":\"2025ca1b2c3b\",\"name\":\"hollow\",\"hasLines\":[{\"startPoint\":{\"x\":-324,\"y\":-661},\"endPoint\":{\"x\":214,\"y\":-661},\"name\":11310,\"isStrLine\":true},{\"startPoint\":{\"x\":214,\"y\":-661},\"endPoint\":{\"x\":214,\"y\":-578},\"name\":11311,\"isStrLine\":true},{\"startPoint\":{\"x\":214,\"y\":-578},\"endPoint\":{\"x\":-13,\"y\":-521},\"name\":11312,\"isStrLine\":true},{\"startPoint\":{\"x\":-13,\"y\":-521},\"endPoint\":{\"x\":-324,\"y\":-558},\"name\":11313,\"isStrLine\":true},{\"startPoint\":{\"x\":-324,\"y\":-558},\"endPoint\":{\"x\":-324,\"y\":-661},\"name\":11314,\"isStrLine\":true}],\"entColor\":\"\",\"borderColor\":\"\",\"toHeight\":30,\"alphaModle\":90,\"site\":0,\"xaxis\":-56.5,\"yaxis\":-591,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":0,\"isLabel\":1,\"comeIn\":\"\",\"area\":195,\"map\":\"\"}],\"shopArea\":[{\"id\":\"b955c1c60ee5\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":784,\"y\":-1187},\"endPoint\":{\"x\":1059,\"y\":-1187},\"name\":11315,\"isStrLine\":true},{\"startPoint\":{\"x\":1059,\"y\":-1187},\"endPoint\":{\"x\":1099,\"y\":-1107},\"name\":11316,\"isStrLine\":false,\"ctrlPoint1\":{\"x\":1104,\"y\":-1186},\"ctrlPoint2\":{\"x\":1123,\"y\":-1160}},{\"startPoint\":{\"x\":1099,\"y\":-1107},\"endPoint\":{\"x\":969,\"y\":-857},\"name\":11317,\"isStrLine\":true},{\"startPoint\":{\"x\":969,\"y\":-857},\"endPoint\":{\"x\":749,\"y\":-714},\"name\":11318,\"isStrLine\":true},{\"startPoint\":{\"x\":749,\"y\":-714},\"endPoint\":{\"x\":722,\"y\":-675},\"name\":11319,\"isStrLine\":true},{\"startPoint\":{\"x\":722,\"y\":-675},\"endPoint\":{\"x\":608,\"y\":-728},\"name\":11320,\"isStrLine\":true},{\"startPoint\":{\"x\":608,\"y\":-728},\"endPoint\":{\"x\":521,\"y\":-728},\"name\":11321,\"isStrLine\":true},{\"startPoint\":{\"x\":521,\"y\":-728},\"endPoint\":{\"x\":521,\"y\":-899},\"name\":11322,\"isStrLine\":true},{\"startPoint\":{\"x\":521,\"y\":-899},\"endPoint\":{\"x\":784,\"y\":-899},\"name\":11323,\"isStrLine\":true},{\"startPoint\":{\"x\":784,\"y\":-899},\"endPoint\":{\"x\":784,\"y\":-1187},\"name\":11324,\"isStrLine\":true}],\"entColor\":\"#f8be8b\",\"borderColor\":\"#cd803c\",\"toHeight\":50,\"alphaModle\":100,\"site\":0,\"xaxis\":810,\"yaxis\":-927.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":17,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":457,\"map\":\"\"},{\"id\":\"94fa49a4ba58\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":521,\"y\":-900},\"endPoint\":{\"x\":521,\"y\":-728},\"name\":11325,\"isStrLine\":true},{\"startPoint\":{\"x\":521,\"y\":-728},\"endPoint\":{\"x\":224,\"y\":-728},\"name\":11326,\"isStrLine\":true},{\"startPoint\":{\"x\":224,\"y\":-728},\"endPoint\":{\"x\":224,\"y\":-900},\"name\":11327,\"isStrLine\":true},{\"startPoint\":{\"x\":224,\"y\":-900},\"endPoint\":{\"x\":521,\"y\":-900},\"name\":11328,\"isStrLine\":true}],\"entColor\":\"#f8be8b\",\"borderColor\":\"#cd803c\",\"toHeight\":50,\"alphaModle\":100,\"site\":0,\"xaxis\":372.5,\"yaxis\":-823.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":15,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":158,\"map\":\"\"},{\"id\":\"499da5421a50\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":456,\"y\":-1185},\"endPoint\":{\"x\":601,\"y\":-1185},\"name\":11329,\"isStrLine\":true},{\"startPoint\":{\"x\":601,\"y\":-1185},\"endPoint\":{\"x\":601,\"y\":-1113},\"name\":11330,\"isStrLine\":true},{\"startPoint\":{\"x\":601,\"y\":-1113},\"endPoint\":{\"x\":692,\"y\":-1113},\"name\":11331,\"isStrLine\":true},{\"startPoint\":{\"x\":692,\"y\":-1113},\"endPoint\":{\"x\":692,\"y\":-1061},\"name\":11332,\"isStrLine\":true},{\"startPoint\":{\"x\":692,\"y\":-1061},\"endPoint\":{\"x\":456,\"y\":-1061},\"name\":11333,\"isStrLine\":true},{\"startPoint\":{\"x\":456,\"y\":-1061},\"endPoint\":{\"x\":456,\"y\":-1185},\"name\":11334,\"isStrLine\":true}],\"entColor\":\"#f8be8b\",\"borderColor\":\"#cd803c\",\"toHeight\":50,\"alphaModle\":100,\"site\":0,\"xaxis\":576,\"yaxis\":-1109,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":58,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":70,\"map\":\"\"},{\"id\":\"6915429cbdf0\",\"name\":\"L1-39\",\"hasLines\":[{\"startPoint\":{\"x\":-52,\"y\":-1186},\"endPoint\":{\"x\":84,\"y\":-1186},\"name\":11335,\"isStrLine\":true},{\"startPoint\":{\"x\":84,\"y\":-1186},\"endPoint\":{\"x\":84,\"y\":-900},\"name\":11336,\"isStrLine\":true},{\"startPoint\":{\"x\":84,\"y\":-900},\"endPoint\":{\"x\":224,\"y\":-900},\"name\":11337,\"isStrLine\":true},{\"startPoint\":{\"x\":224,\"y\":-900},\"endPoint\":{\"x\":224,\"y\":-728},\"name\":11338,\"isStrLine\":true},{\"startPoint\":{\"x\":224,\"y\":-728},\"endPoint\":{\"x\":-52,\"y\":-728},\"name\":11339,\"isStrLine\":true},{\"startPoint\":{\"x\":-52,\"y\":-728},\"endPoint\":{\"x\":-52,\"y\":-1186},\"name\":11340,\"isStrLine\":true}],\"entColor\":\"#f8be8b\",\"borderColor\":\"#cd803c\",\"toHeight\":50,\"alphaModle\":100,\"site\":0,\"xaxis\":69,\"yaxis\":-833,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":52,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":267,\"map\":\"\"},{\"id\":\"77e3ab3ff589\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-52,\"y\":-728},\"endPoint\":{\"x\":-330,\"y\":-730},\"name\":11341,\"isStrLine\":true},{\"startPoint\":{\"x\":-330,\"y\":-730},\"endPoint\":{\"x\":-330,\"y\":-900},\"name\":11342,\"isStrLine\":true},{\"startPoint\":{\"x\":-330,\"y\":-900},\"endPoint\":{\"x\":-52,\"y\":-900},\"name\":11343,\"isStrLine\":true},{\"startPoint\":{\"x\":-52,\"y\":-900},\"endPoint\":{\"x\":-52,\"y\":-728},\"name\":11344,\"isStrLine\":true}],\"entColor\":\"#f8be8b\",\"borderColor\":\"#cd803c\",\"toHeight\":50,\"alphaModle\":100,\"site\":0,\"xaxis\":-191.5,\"yaxis\":-816.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":51,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":147,\"map\":\"\"},{\"id\":\"652fadc2f67b\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-52,\"y\":-900},\"endPoint\":{\"x\":-330,\"y\":-902},\"name\":11345,\"isStrLine\":true},{\"startPoint\":{\"x\":-330,\"y\":-902},\"endPoint\":{\"x\":-330,\"y\":-1186},\"name\":11346,\"isStrLine\":true},{\"startPoint\":{\"x\":-330,\"y\":-1186},\"endPoint\":{\"x\":-52,\"y\":-1186},\"name\":11347,\"isStrLine\":true},{\"startPoint\":{\"x\":-52,\"y\":-1186},\"endPoint\":{\"x\":-52,\"y\":-900},\"name\":11348,\"isStrLine\":true}],\"entColor\":\"#f8be8b\",\"borderColor\":\"#cd803c\",\"toHeight\":50,\"alphaModle\":100,\"site\":0,\"xaxis\":-191.5,\"yaxis\":-988.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":57,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":245,\"map\":\"\"},{\"id\":\"9ee2863f8426\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-630,\"y\":-1184},\"endPoint\":{\"x\":-456,\"y\":-1184},\"name\":11349,\"isStrLine\":true},{\"startPoint\":{\"x\":-456,\"y\":-1184},\"endPoint\":{\"x\":-456,\"y\":-1015},\"name\":11350,\"isStrLine\":true},{\"startPoint\":{\"x\":-456,\"y\":-1015},\"endPoint\":{\"x\":-630,\"y\":-1015},\"name\":11351,\"isStrLine\":true},{\"startPoint\":{\"x\":-630,\"y\":-1015},\"endPoint\":{\"x\":-630,\"y\":-1184},\"name\":11352,\"isStrLine\":true}],\"entColor\":\"#f8be8b\",\"borderColor\":\"#cd803c\",\"toHeight\":50,\"alphaModle\":100,\"site\":0,\"xaxis\":-543,\"yaxis\":-1078.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":56,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":91,\"map\":\"\"},{\"id\":\"b237d19950f9\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-795,\"y\":-904},\"endPoint\":{\"x\":-560,\"y\":-904},\"name\":11353,\"isStrLine\":true},{\"startPoint\":{\"x\":-560,\"y\":-904},\"endPoint\":{\"x\":-560,\"y\":-697},\"name\":11354,\"isStrLine\":true},{\"startPoint\":{\"x\":-560,\"y\":-697},\"endPoint\":{\"x\":-795,\"y\":-697},\"name\":11355,\"isStrLine\":true},{\"startPoint\":{\"x\":-795,\"y\":-697},\"endPoint\":{\"x\":-795,\"y\":-904},\"name\":11356,\"isStrLine\":true}],\"entColor\":\"#f8be8b\",\"borderColor\":\"#cd803c\",\"toHeight\":50,\"alphaModle\":100,\"site\":0,\"xaxis\":-677.5,\"yaxis\":-800.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":38,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":150,\"map\":\"\"},{\"id\":\"01713a6fa30e\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-975,\"y\":-904},\"endPoint\":{\"x\":-795,\"y\":-904},\"name\":11357,\"isStrLine\":true},{\"startPoint\":{\"x\":-795,\"y\":-904},\"endPoint\":{\"x\":-795,\"y\":-697},\"name\":11358,\"isStrLine\":true},{\"startPoint\":{\"x\":-795,\"y\":-697},\"endPoint\":{\"x\":-975,\"y\":-697},\"name\":11359,\"isStrLine\":true},{\"startPoint\":{\"x\":-975,\"y\":-697},\"endPoint\":{\"x\":-975,\"y\":-904},\"name\":11360,\"isStrLine\":true}],\"entColor\":\"#f8be8b\",\"borderColor\":\"#cd803c\",\"toHeight\":50,\"alphaModle\":100,\"site\":0,\"xaxis\":-912.5,\"yaxis\":-800.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":40,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":115,\"map\":\"\"},{\"id\":\"84c896494ed1\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-1202,\"y\":-1188},\"endPoint\":{\"x\":-1015,\"y\":-1188},\"name\":11361,\"isStrLine\":true},{\"startPoint\":{\"x\":-1015,\"y\":-1188},\"endPoint\":{\"x\":-1015,\"y\":-697},\"name\":11362,\"isStrLine\":true},{\"startPoint\":{\"x\":-1015,\"y\":-697},\"endPoint\":{\"x\":-1060,\"y\":-697},\"name\":11363,\"isStrLine\":true},{\"startPoint\":{\"x\":-1060,\"y\":-697},\"endPoint\":{\"x\":-1333,\"y\":-957},\"name\":11364,\"isStrLine\":true},{\"startPoint\":{\"x\":-1333,\"y\":-957},\"endPoint\":{\"x\":-1333,\"y\":-1028},\"name\":11365,\"isStrLine\":false,\"ctrlPoint1\":{\"x\":-1352,\"y\":-977},\"ctrlPoint2\":{\"x\":-1351,\"y\":-1007}},{\"startPoint\":{\"x\":-1333,\"y\":-1028},\"endPoint\":{\"x\":-1202,\"y\":-1188},\"name\":11366,\"isStrLine\":true}],\"entColor\":\"#f8be8A\",\"borderColor\":\"#cd803C\",\"toHeight\":50,\"alphaModle\":100,\"site\":0,\"xaxis\":-1132.5,\"yaxis\":-800.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":\"41\",\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":342,\"map\":\"\"},{\"id\":\"a172d122eeea\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-1589,\"y\":-776},\"endPoint\":{\"x\":-1498,\"y\":-871},\"name\":11367,\"isStrLine\":true},{\"startPoint\":{\"x\":-1498,\"y\":-871},\"endPoint\":{\"x\":-1438,\"y\":-874},\"name\":11368,\"isStrLine\":false,\"ctrlPoint1\":{\"x\":-1480,\"y\":-890},\"ctrlPoint2\":{\"x\":-1454,\"y\":-888}},{\"startPoint\":{\"x\":-1438,\"y\":-874},\"endPoint\":{\"x\":-1219,\"y\":-654},\"name\":11369,\"isStrLine\":true},{\"startPoint\":{\"x\":-1219,\"y\":-654},\"endPoint\":{\"x\":-1589,\"y\":-654},\"name\":11370,\"isStrLine\":true},{\"startPoint\":{\"x\":-1589,\"y\":-654},\"endPoint\":{\"x\":-1589,\"y\":-776},\"name\":11371,\"isStrLine\":true}],\"entColor\":\"#f8be8A\",\"borderColor\":\"#cd803C\",\"toHeight\":50,\"alphaModle\":100,\"site\":0,\"xaxis\":-1404,\"yaxis\":-762.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":41,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":164,\"map\":\"\"},{\"id\":\"0fa7ce63bfd6\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-1589,\"y\":-654},\"endPoint\":{\"x\":-1219,\"y\":-654},\"name\":11372,\"isStrLine\":true},{\"startPoint\":{\"x\":-1219,\"y\":-654},\"endPoint\":{\"x\":-1172,\"y\":-606},\"name\":11373,\"isStrLine\":true},{\"startPoint\":{\"x\":-1172,\"y\":-606},\"endPoint\":{\"x\":-1172,\"y\":-234},\"name\":11374,\"isStrLine\":true},{\"startPoint\":{\"x\":-1172,\"y\":-234},\"endPoint\":{\"x\":-1373,\"y\":-234},\"name\":11375,\"isStrLine\":true},{\"startPoint\":{\"x\":-1373,\"y\":-234},\"endPoint\":{\"x\":-1373,\"y\":-415},\"name\":11376,\"isStrLine\":true},{\"startPoint\":{\"x\":-1373,\"y\":-415},\"endPoint\":{\"x\":-1589,\"y\":-415},\"name\":11377,\"isStrLine\":true},{\"startPoint\":{\"x\":-1589,\"y\":-415},\"endPoint\":{\"x\":-1589,\"y\":-654},\"name\":11378,\"isStrLine\":true}],\"entColor\":\"#f8be8A\",\"borderColor\":\"#cd803C\",\"toHeight\":50,\"alphaModle\":100,\"site\":0,\"xaxis\":-1386,\"yaxis\":-444,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":43,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":416,\"map\":\"\"},{\"id\":\"1989e0c761b5\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-1374,\"y\":-199},\"endPoint\":{\"x\":-1172,\"y\":-199},\"name\":11379,\"isStrLine\":true},{\"startPoint\":{\"x\":-1172,\"y\":-199},\"endPoint\":{\"x\":-1172,\"y\":26},\"name\":11380,\"isStrLine\":true},{\"startPoint\":{\"x\":-1172,\"y\":26},\"endPoint\":{\"x\":-1374,\"y\":26},\"name\":11381,\"isStrLine\":true},{\"startPoint\":{\"x\":-1374,\"y\":26},\"endPoint\":{\"x\":-1374,\"y\":-199},\"name\":11382,\"isStrLine\":true}],\"entColor\":\"#f8be8b\",\"borderColor\":\"#cd803c\",\"toHeight\":50,\"alphaModle\":100,\"site\":0,\"xaxis\":-1264,\"yaxis\":-90,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":44,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":140,\"map\":\"\"},{\"id\":\"3f2b5bd04ec5\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-1374,\"y\":602},\"endPoint\":{\"x\":-1172,\"y\":602},\"name\":11383,\"isStrLine\":true},{\"startPoint\":{\"x\":-1172,\"y\":602},\"endPoint\":{\"x\":-1172,\"y\":868},\"name\":11384,\"isStrLine\":true},{\"startPoint\":{\"x\":-1172,\"y\":868},\"endPoint\":{\"x\":-1374,\"y\":868},\"name\":11385,\"isStrLine\":true},{\"startPoint\":{\"x\":-1374,\"y\":868},\"endPoint\":{\"x\":-1374,\"y\":602},\"name\":11386,\"isStrLine\":true}],\"entColor\":\"#f8be8b\",\"borderColor\":\"#cd803c\",\"toHeight\":50,\"alphaModle\":100,\"site\":0,\"xaxis\":-1273,\"yaxis\":735,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":47,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":166,\"map\":\"\"},{\"id\":\"a4c5dd910d71\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-1374,\"y\":430},\"endPoint\":{\"x\":-1172,\"y\":430},\"name\":11387,\"isStrLine\":true},{\"startPoint\":{\"x\":-1172,\"y\":430},\"endPoint\":{\"x\":-1172,\"y\":602},\"name\":11388,\"isStrLine\":true},{\"startPoint\":{\"x\":-1172,\"y\":602},\"endPoint\":{\"x\":-1374,\"y\":602},\"name\":11389,\"isStrLine\":true},{\"startPoint\":{\"x\":-1374,\"y\":602},\"endPoint\":{\"x\":-1374,\"y\":430},\"name\":11390,\"isStrLine\":true}],\"entColor\":\"#f8be8b\",\"borderColor\":\"#cd803c\",\"toHeight\":50,\"alphaModle\":100,\"site\":0,\"xaxis\":-1273,\"yaxis\":469,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":46,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":107,\"map\":\"\"},{\"id\":\"ce506138af50\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-1374,\"y\":266},\"endPoint\":{\"x\":-1172,\"y\":266},\"name\":11391,\"isStrLine\":true},{\"startPoint\":{\"x\":-1172,\"y\":266},\"endPoint\":{\"x\":-1172,\"y\":430},\"name\":11392,\"isStrLine\":true},{\"startPoint\":{\"x\":-1172,\"y\":430},\"endPoint\":{\"x\":-1374,\"y\":430},\"name\":11393,\"isStrLine\":true},{\"startPoint\":{\"x\":-1374,\"y\":430},\"endPoint\":{\"x\":-1374,\"y\":266},\"name\":11394,\"isStrLine\":true}],\"entColor\":\"#f8be8b\",\"borderColor\":\"#cd803c\",\"toHeight\":50,\"alphaModle\":100,\"site\":0,\"xaxis\":-1273,\"yaxis\":297,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":45,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":102,\"map\":\"\"},{\"id\":\"bc68cf8e668e\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-1049,\"y\":263},\"endPoint\":{\"x\":-842,\"y\":263},\"name\":11395,\"isStrLine\":true},{\"startPoint\":{\"x\":-842,\"y\":263},\"endPoint\":{\"x\":-914,\"y\":406},\"name\":11396,\"isStrLine\":true},{\"startPoint\":{\"x\":-914,\"y\":406},\"endPoint\":{\"x\":-976,\"y\":406},\"name\":11397,\"isStrLine\":true},{\"startPoint\":{\"x\":-976,\"y\":406},\"endPoint\":{\"x\":-1049,\"y\":334},\"name\":11398,\"isStrLine\":true},{\"startPoint\":{\"x\":-1049,\"y\":334},\"endPoint\":{\"x\":-1049,\"y\":263},\"name\":11399,\"isStrLine\":true}],\"entColor\":\"#f8be8b\",\"borderColor\":\"#cd803c\",\"toHeight\":50,\"alphaModle\":100,\"site\":0,\"xaxis\":-955.5,\"yaxis\":334.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":45,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":67,\"map\":\"\"},{\"id\":\"65805af610ce\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-1050,\"y\":-323},\"endPoint\":{\"x\":-952,\"y\":-405},\"name\":11400,\"isStrLine\":true},{\"startPoint\":{\"x\":-952,\"y\":-405},\"endPoint\":{\"x\":-831,\"y\":-247},\"name\":11401,\"isStrLine\":true},{\"startPoint\":{\"x\":-831,\"y\":-247},\"endPoint\":{\"x\":-890,\"y\":-155},\"name\":11402,\"isStrLine\":false,\"ctrlPoint1\":{\"x\":-867,\"y\":-230},\"ctrlPoint2\":{\"x\":-894,\"y\":-207}},{\"startPoint\":{\"x\":-890,\"y\":-155},\"endPoint\":{\"x\":-857,\"y\":117},\"name\":11403,\"isStrLine\":true},{\"startPoint\":{\"x\":-857,\"y\":117},\"endPoint\":{\"x\":-1050,\"y\":117},\"name\":11404,\"isStrLine\":true},{\"startPoint\":{\"x\":-1050,\"y\":117},\"endPoint\":{\"x\":-1050,\"y\":-323},\"name\":11405,\"isStrLine\":true}],\"entColor\":\"#f8be8b\",\"borderColor\":\"#cd803c\",\"toHeight\":50,\"alphaModle\":100,\"site\":0,\"xaxis\":-952,\"yaxis\":-144,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":44,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":262,\"map\":\"\"},{\"id\":\"98c3a0f273ca\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-875,\"y\":-465},\"endPoint\":{\"x\":-763,\"y\":-566},\"name\":11406,\"isStrLine\":true},{\"startPoint\":{\"x\":-763,\"y\":-566},\"endPoint\":{\"x\":-602,\"y\":-539},\"name\":11407,\"isStrLine\":true},{\"startPoint\":{\"x\":-602,\"y\":-539},\"endPoint\":{\"x\":-602,\"y\":-302},\"name\":11408,\"isStrLine\":true},{\"startPoint\":{\"x\":-602,\"y\":-302},\"endPoint\":{\"x\":-657,\"y\":-327},\"name\":11409,\"isStrLine\":true},{\"startPoint\":{\"x\":-657,\"y\":-327},\"endPoint\":{\"x\":-710,\"y\":-324},\"name\":11410,\"isStrLine\":false,\"ctrlPoint1\":{\"x\":-677,\"y\":-336},\"ctrlPoint2\":{\"x\":-692,\"y\":-336}},{\"startPoint\":{\"x\":-710,\"y\":-324},\"endPoint\":{\"x\":-749,\"y\":-298},\"name\":11411,\"isStrLine\":true},{\"startPoint\":{\"x\":-749,\"y\":-298},\"endPoint\":{\"x\":-875,\"y\":-465},\"name\":11412,\"isStrLine\":true}],\"entColor\":\"#f8be8b\",\"borderColor\":\"#cd803c\",\"toHeight\":50,\"alphaModle\":100,\"site\":0,\"xaxis\":-738.5,\"yaxis\":-431.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":39,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":159,\"map\":\"\"},{\"id\":\"a4c59e52a204\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-602,\"y\":-539},\"endPoint\":{\"x\":-408,\"y\":-513},\"name\":11413,\"isStrLine\":true},{\"startPoint\":{\"x\":-408,\"y\":-513},\"endPoint\":{\"x\":-408,\"y\":-248},\"name\":11414,\"isStrLine\":true},{\"startPoint\":{\"x\":-408,\"y\":-248},\"endPoint\":{\"x\":-502,\"y\":-248},\"name\":11415,\"isStrLine\":true},{\"startPoint\":{\"x\":-502,\"y\":-248},\"endPoint\":{\"x\":-602,\"y\":-302},\"name\":11416,\"isStrLine\":true},{\"startPoint\":{\"x\":-602,\"y\":-302},\"endPoint\":{\"x\":-602,\"y\":-539},\"name\":11417,\"isStrLine\":true}],\"entColor\":\"#f8be8b\",\"borderColor\":\"#cd803c\",\"toHeight\":50,\"alphaModle\":100,\"site\":0,\"xaxis\":-505,\"yaxis\":-394,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":37,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":158,\"map\":\"\"},{\"id\":\"e3a50c9873a8\",\"name\":\"L1-11\",\"hasLines\":[{\"startPoint\":{\"x\":-408,\"y\":-513},\"endPoint\":{\"x\":-200,\"y\":-481},\"name\":11418,\"isStrLine\":true},{\"startPoint\":{\"x\":-200,\"y\":-481},\"endPoint\":{\"x\":-200,\"y\":-248},\"name\":11419,\"isStrLine\":true},{\"startPoint\":{\"x\":-200,\"y\":-248},\"endPoint\":{\"x\":-408,\"y\":-248},\"name\":11420,\"isStrLine\":true},{\"startPoint\":{\"x\":-408,\"y\":-248},\"endPoint\":{\"x\":-408,\"y\":-513},\"name\":11421,\"isStrLine\":true}],\"entColor\":\"#f8be8b\",\"borderColor\":\"#cd803c\",\"toHeight\":50,\"alphaModle\":100,\"site\":0,\"xaxis\":-311,\"yaxis\":-394,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":36,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":160,\"map\":\"\"},{\"id\":\"a68f662ecccf\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-200,\"y\":-481},\"endPoint\":{\"x\":-45,\"y\":-459},\"name\":11422,\"isStrLine\":true},{\"startPoint\":{\"x\":-45,\"y\":-459},\"endPoint\":{\"x\":15,\"y\":-466},\"name\":11423,\"isStrLine\":true},{\"startPoint\":{\"x\":15,\"y\":-466},\"endPoint\":{\"x\":15,\"y\":-415},\"name\":11424,\"isStrLine\":true},{\"startPoint\":{\"x\":15,\"y\":-415},\"endPoint\":{\"x\":193,\"y\":-415},\"name\":11425,\"isStrLine\":true},{\"startPoint\":{\"x\":193,\"y\":-415},\"endPoint\":{\"x\":193,\"y\":-298},\"name\":11426,\"isStrLine\":true},{\"startPoint\":{\"x\":193,\"y\":-298},\"endPoint\":{\"x\":84,\"y\":-248},\"name\":11427,\"isStrLine\":true},{\"startPoint\":{\"x\":84,\"y\":-248},\"endPoint\":{\"x\":-200,\"y\":-248},\"name\":11428,\"isStrLine\":true},{\"startPoint\":{\"x\":-200,\"y\":-248},\"endPoint\":{\"x\":-200,\"y\":-481},\"name\":11429,\"isStrLine\":true}],\"entColor\":\"#f8be8b\",\"borderColor\":\"#cd803c\",\"toHeight\":50,\"alphaModle\":100,\"site\":0,\"xaxis\":-103,\"yaxis\":-394,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":35,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":229,\"map\":\"\"},{\"id\":\"e2a9c559e648\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":15,\"y\":-415},\"endPoint\":{\"x\":15,\"y\":-466},\"name\":11430,\"isStrLine\":true},{\"startPoint\":{\"x\":15,\"y\":-466},\"endPoint\":{\"x\":193,\"y\":-508},\"name\":11431,\"isStrLine\":true},{\"startPoint\":{\"x\":193,\"y\":-508},\"endPoint\":{\"x\":193,\"y\":-415},\"name\":11432,\"isStrLine\":true},{\"startPoint\":{\"x\":193,\"y\":-415},\"endPoint\":{\"x\":15,\"y\":-415},\"name\":11433,\"isStrLine\":true}],\"entColor\":\"#f8be8b\",\"borderColor\":\"#cd803c\",\"toHeight\":50,\"alphaModle\":100,\"site\":0,\"xaxis\":108.5,\"yaxis\":-458.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":34,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":40,\"map\":\"\"},{\"id\":\"9592b1636b87\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":288,\"y\":-525},\"endPoint\":{\"x\":335,\"y\":-567},\"name\":11434,\"isStrLine\":true},{\"startPoint\":{\"x\":335,\"y\":-567},\"endPoint\":{\"x\":510,\"y\":-603},\"name\":11435,\"isStrLine\":true},{\"startPoint\":{\"x\":510,\"y\":-603},\"endPoint\":{\"x\":668,\"y\":-543},\"name\":11436,\"isStrLine\":true},{\"startPoint\":{\"x\":668,\"y\":-543},\"endPoint\":{\"x\":648,\"y\":-507},\"name\":11437,\"isStrLine\":true},{\"startPoint\":{\"x\":648,\"y\":-507},\"endPoint\":{\"x\":379,\"y\":-374},\"name\":11438,\"isStrLine\":true},{\"startPoint\":{\"x\":379,\"y\":-374},\"endPoint\":{\"x\":379,\"y\":-484},\"name\":11439,\"isStrLine\":true},{\"startPoint\":{\"x\":379,\"y\":-484},\"endPoint\":{\"x\":288,\"y\":-484},\"name\":11440,\"isStrLine\":true},{\"startPoint\":{\"x\":288,\"y\":-484},\"endPoint\":{\"x\":288,\"y\":-525},\"name\":11441,\"isStrLine\":true}],\"entColor\":\"#f8be8b\",\"borderColor\":\"#cd803c\",\"toHeight\":50,\"alphaModle\":100,\"site\":0,\"xaxis\":478,\"yaxis\":-488.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":33,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":141,\"map\":\"\"},{\"id\":\"2cafe5e1bb7e\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":613,\"y\":-35},\"endPoint\":{\"x\":799,\"y\":-337},\"name\":11442,\"isStrLine\":true},{\"startPoint\":{\"x\":799,\"y\":-337},\"endPoint\":{\"x\":862,\"y\":-365},\"name\":11443,\"isStrLine\":true},{\"startPoint\":{\"x\":862,\"y\":-365},\"endPoint\":{\"x\":920,\"y\":-190},\"name\":11444,\"isStrLine\":true},{\"startPoint\":{\"x\":920,\"y\":-190},\"endPoint\":{\"x\":920,\"y\":-35},\"name\":11445,\"isStrLine\":true},{\"startPoint\":{\"x\":920,\"y\":-35},\"endPoint\":{\"x\":613,\"y\":-35},\"name\":11446,\"isStrLine\":true}],\"entColor\":\"#f8be8b\",\"borderColor\":\"#cd803c\",\"toHeight\":50,\"alphaModle\":100,\"site\":0,\"xaxis\":768.5,\"yaxis\":-200,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":31,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":192,\"map\":\"\"},{\"id\":\"2551b1cd3500\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":613,\"y\":-35},\"endPoint\":{\"x\":920,\"y\":-35},\"name\":11447,\"isStrLine\":true},{\"startPoint\":{\"x\":920,\"y\":-35},\"endPoint\":{\"x\":920,\"y\":124},\"name\":11448,\"isStrLine\":true},{\"startPoint\":{\"x\":920,\"y\":124},\"endPoint\":{\"x\":871,\"y\":290},\"name\":11449,\"isStrLine\":true},{\"startPoint\":{\"x\":871,\"y\":290},\"endPoint\":{\"x\":613,\"y\":290},\"name\":11450,\"isStrLine\":true},{\"startPoint\":{\"x\":613,\"y\":290},\"endPoint\":{\"x\":613,\"y\":-35},\"name\":11451,\"isStrLine\":true}],\"entColor\":\"#f8be8b\",\"borderColor\":\"#cd803c\",\"toHeight\":50,\"alphaModle\":100,\"site\":0,\"xaxis\":767.5,\"yaxis\":127.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":30,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":295,\"map\":\"\"},{\"id\":\"8a5fac36ae37\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":998,\"y\":-420},\"endPoint\":{\"x\":1183,\"y\":-629},\"name\":11452,\"isStrLine\":true},{\"startPoint\":{\"x\":1183,\"y\":-629},\"endPoint\":{\"x\":1463,\"y\":-730},\"name\":11453,\"isStrLine\":true},{\"startPoint\":{\"x\":1463,\"y\":-730},\"endPoint\":{\"x\":1510,\"y\":-703},\"name\":11454,\"isStrLine\":false,\"ctrlPoint1\":{\"x\":1484,\"y\":-737},\"ctrlPoint2\":{\"x\":1507,\"y\":-736}},{\"startPoint\":{\"x\":1510,\"y\":-703},\"endPoint\":{\"x\":1510,\"y\":-498},\"name\":11455,\"isStrLine\":true},{\"startPoint\":{\"x\":1510,\"y\":-498},\"endPoint\":{\"x\":1248,\"y\":-498},\"name\":11456,\"isStrLine\":true},{\"startPoint\":{\"x\":1248,\"y\":-498},\"endPoint\":{\"x\":1248,\"y\":-304},\"name\":11457,\"isStrLine\":true},{\"startPoint\":{\"x\":1248,\"y\":-304},\"endPoint\":{\"x\":1033,\"y\":-304},\"name\":11458,\"isStrLine\":true},{\"startPoint\":{\"x\":1033,\"y\":-304},\"endPoint\":{\"x\":998,\"y\":-420},\"name\":11459,\"isStrLine\":true}],\"entColor\":\"#f8be8b\",\"borderColor\":\"#cd803c\",\"toHeight\":50,\"alphaModle\":100,\"site\":0,\"xaxis\":1254,\"yaxis\":-517,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":59,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":349,\"map\":\"\"},{\"id\":\"fc070cd3da4b\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":1033,\"y\":-304},\"endPoint\":{\"x\":1248,\"y\":-304},\"name\":11460,\"isStrLine\":true},{\"startPoint\":{\"x\":1248,\"y\":-304},\"endPoint\":{\"x\":1248,\"y\":-59},\"name\":11461,\"isStrLine\":true},{\"startPoint\":{\"x\":1248,\"y\":-59},\"endPoint\":{\"x\":1022,\"y\":-59},\"name\":11462,\"isStrLine\":true},{\"startPoint\":{\"x\":1022,\"y\":-59},\"endPoint\":{\"x\":1033,\"y\":-304},\"name\":11463,\"isStrLine\":true}],\"entColor\":\"#f8be8b\",\"borderColor\":\"#cd803c\",\"toHeight\":50,\"alphaModle\":100,\"site\":0,\"xaxis\":1135,\"yaxis\":-181.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":31,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":167,\"map\":\"\"},{\"id\":\"82c54aa14d89\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":1022,\"y\":-59},\"endPoint\":{\"x\":1248,\"y\":-59},\"name\":11464,\"isStrLine\":true},{\"startPoint\":{\"x\":1248,\"y\":-59},\"endPoint\":{\"x\":1248,\"y\":174},\"name\":11465,\"isStrLine\":true},{\"startPoint\":{\"x\":1248,\"y\":174},\"endPoint\":{\"x\":1058,\"y\":174},\"name\":11466,\"isStrLine\":true},{\"startPoint\":{\"x\":1058,\"y\":174},\"endPoint\":{\"x\":1008,\"y\":116},\"name\":11467,\"isStrLine\":true},{\"startPoint\":{\"x\":1008,\"y\":116},\"endPoint\":{\"x\":1022,\"y\":-59},\"name\":11468,\"isStrLine\":true}],\"entColor\":\"#f8be8b\",\"borderColor\":\"#cd803c\",\"toHeight\":50,\"alphaModle\":100,\"site\":0,\"xaxis\":1135,\"yaxis\":63.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":30,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":164,\"map\":\"\"},{\"id\":\"85353e126162\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":1103,\"y\":265},\"endPoint\":{\"x\":1512,\"y\":265},\"name\":11469,\"isStrLine\":true},{\"startPoint\":{\"x\":1512,\"y\":265},\"endPoint\":{\"x\":1512,\"y\":500},\"name\":11470,\"isStrLine\":true},{\"startPoint\":{\"x\":1512,\"y\":500},\"endPoint\":{\"x\":1103,\"y\":500},\"name\":11471,\"isStrLine\":true},{\"startPoint\":{\"x\":1103,\"y\":500},\"endPoint\":{\"x\":1103,\"y\":265},\"name\":11472,\"isStrLine\":true}],\"entColor\":\"#f8be8b\",\"borderColor\":\"#cd803c\",\"toHeight\":50,\"alphaModle\":100,\"site\":0,\"xaxis\":1307.5,\"yaxis\":382.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":29,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":297,\"map\":\"\"},{\"id\":\"87d17a81e816\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":1103,\"y\":500},\"endPoint\":{\"x\":1512,\"y\":500},\"name\":11473,\"isStrLine\":true},{\"startPoint\":{\"x\":1512,\"y\":500},\"endPoint\":{\"x\":1512,\"y\":744},\"name\":11474,\"isStrLine\":true},{\"startPoint\":{\"x\":1512,\"y\":744},\"endPoint\":{\"x\":1394,\"y\":744},\"name\":11475,\"isStrLine\":true},{\"startPoint\":{\"x\":1394,\"y\":744},\"endPoint\":{\"x\":1103,\"y\":620},\"name\":11476,\"isStrLine\":true},{\"startPoint\":{\"x\":1103,\"y\":620},\"endPoint\":{\"x\":1103,\"y\":500},\"name\":11477,\"isStrLine\":true}],\"entColor\":\"#f8be8b\",\"borderColor\":\"#cd803c\",\"toHeight\":50,\"alphaModle\":100,\"site\":0,\"xaxis\":1307.5,\"yaxis\":617.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":28,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":252,\"map\":\"\"},{\"id\":\"a3a6ef5725ef\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":1092,\"y\":744},\"endPoint\":{\"x\":1512,\"y\":962},\"name\":11478,\"isStrLine\":true},{\"startPoint\":{\"x\":1512,\"y\":962},\"endPoint\":{\"x\":1512,\"y\":1131},\"name\":11479,\"isStrLine\":true},{\"startPoint\":{\"x\":1512,\"y\":1131},\"endPoint\":{\"x\":1092,\"y\":1131},\"name\":11480,\"isStrLine\":true},{\"startPoint\":{\"x\":1092,\"y\":1131},\"endPoint\":{\"x\":1092,\"y\":744},\"name\":11481,\"isStrLine\":true}],\"entColor\":\"#f8be8b\",\"borderColor\":\"#cd803c\",\"toHeight\":50,\"alphaModle\":100,\"site\":0,\"xaxis\":1302,\"yaxis\":940.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":27,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":360,\"map\":\"\"},{\"id\":\"d2b13bb69794\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":726,\"y\":711},\"endPoint\":{\"x\":1022,\"y\":711},\"name\":11482,\"isStrLine\":true},{\"startPoint\":{\"x\":1022,\"y\":711},\"endPoint\":{\"x\":1092,\"y\":744},\"name\":11483,\"isStrLine\":true},{\"startPoint\":{\"x\":1092,\"y\":744},\"endPoint\":{\"x\":1092,\"y\":1131},\"name\":11484,\"isStrLine\":true},{\"startPoint\":{\"x\":1092,\"y\":1131},\"endPoint\":{\"x\":862,\"y\":1131},\"name\":11485,\"isStrLine\":true},{\"startPoint\":{\"x\":862,\"y\":1131},\"endPoint\":{\"x\":862,\"y\":877},\"name\":11486,\"isStrLine\":true},{\"startPoint\":{\"x\":862,\"y\":877},\"endPoint\":{\"x\":726,\"y\":877},\"name\":11487,\"isStrLine\":true},{\"startPoint\":{\"x\":726,\"y\":877},\"endPoint\":{\"x\":726,\"y\":711},\"name\":11488,\"isStrLine\":true}],\"entColor\":\"#f8be8b\",\"borderColor\":\"#cd803c\",\"toHeight\":50,\"alphaModle\":100,\"site\":0,\"xaxis\":882,\"yaxis\":940.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":26,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":364,\"map\":\"\"},{\"id\":\"719605d44e13\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":505,\"y\":818},\"endPoint\":{\"x\":648,\"y\":712},\"name\":11489,\"isStrLine\":true},{\"startPoint\":{\"x\":648,\"y\":712},\"endPoint\":{\"x\":689,\"y\":712},\"name\":11490,\"isStrLine\":true},{\"startPoint\":{\"x\":689,\"y\":712},\"endPoint\":{\"x\":689,\"y\":1038},\"name\":11491,\"isStrLine\":true},{\"startPoint\":{\"x\":689,\"y\":1038},\"endPoint\":{\"x\":455,\"y\":1038},\"name\":11492,\"isStrLine\":true},{\"startPoint\":{\"x\":455,\"y\":1038},\"endPoint\":{\"x\":455,\"y\":831},\"name\":11493,\"isStrLine\":true},{\"startPoint\":{\"x\":455,\"y\":831},\"endPoint\":{\"x\":505,\"y\":818},\"name\":11494,\"isStrLine\":true}],\"entColor\":\"#f8be8b\",\"borderColor\":\"#cd803c\",\"toHeight\":50,\"alphaModle\":100,\"site\":0,\"xaxis\":516,\"yaxis\":940.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":5,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":195,\"map\":\"\"},{\"id\":\"3b3eed9785bf\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":455,\"y\":831},\"endPoint\":{\"x\":455,\"y\":1038},\"name\":11495,\"isStrLine\":true},{\"startPoint\":{\"x\":455,\"y\":1038},\"endPoint\":{\"x\":207,\"y\":1038},\"name\":11496,\"isStrLine\":true},{\"startPoint\":{\"x\":207,\"y\":1038},\"endPoint\":{\"x\":207,\"y\":902},\"name\":11497,\"isStrLine\":true},{\"startPoint\":{\"x\":207,\"y\":902},\"endPoint\":{\"x\":455,\"y\":831},\"name\":11498,\"isStrLine\":true}],\"entColor\":\"#f8be8b\",\"borderColor\":\"#cd803c\",\"toHeight\":50,\"alphaModle\":100,\"site\":0,\"xaxis\":331,\"yaxis\":934.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":25,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":131,\"map\":\"\"},{\"id\":\"40c8453c68d8\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":207,\"y\":902},\"endPoint\":{\"x\":207,\"y\":1038},\"name\":11499,\"isStrLine\":true},{\"startPoint\":{\"x\":207,\"y\":1038},\"endPoint\":{\"x\":-7,\"y\":1038},\"name\":11500,\"isStrLine\":true},{\"startPoint\":{\"x\":-7,\"y\":1038},\"endPoint\":{\"x\":-7,\"y\":902},\"name\":11501,\"isStrLine\":true},{\"startPoint\":{\"x\":-7,\"y\":902},\"endPoint\":{\"x\":207,\"y\":902},\"name\":11502,\"isStrLine\":true}],\"entColor\":\"#f8be8b\",\"borderColor\":\"#cd803c\",\"toHeight\":50,\"alphaModle\":100,\"site\":0,\"xaxis\":83,\"yaxis\":934.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":24,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":90,\"map\":\"\"},{\"id\":\"9b55345c1dbf\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-159,\"y\":900},\"endPoint\":{\"x\":-159,\"y\":1203},\"name\":11503,\"isStrLine\":true},{\"startPoint\":{\"x\":-159,\"y\":1203},\"endPoint\":{\"x\":-373,\"y\":1203},\"name\":11504,\"isStrLine\":true},{\"startPoint\":{\"x\":-373,\"y\":1203},\"endPoint\":{\"x\":-373,\"y\":900},\"name\":11505,\"isStrLine\":true},{\"startPoint\":{\"x\":-373,\"y\":900},\"endPoint\":{\"x\":-159,\"y\":900},\"name\":11506,\"isStrLine\":true}],\"entColor\":\"#f8be8b\",\"borderColor\":\"#cd803c\",\"toHeight\":50,\"alphaModle\":100,\"site\":0,\"xaxis\":-272,\"yaxis\":1039,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":23,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":200,\"map\":\"\"},{\"id\":\"032ca6de82b0\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-457,\"y\":899},\"endPoint\":{\"x\":-457,\"y\":1203},\"name\":11507,\"isStrLine\":true},{\"startPoint\":{\"x\":-457,\"y\":1203},\"endPoint\":{\"x\":-671,\"y\":1203},\"name\":11508,\"isStrLine\":true},{\"startPoint\":{\"x\":-671,\"y\":1203},\"endPoint\":{\"x\":-671,\"y\":899},\"name\":11509,\"isStrLine\":true},{\"startPoint\":{\"x\":-671,\"y\":899},\"endPoint\":{\"x\":-457,\"y\":899},\"name\":11510,\"isStrLine\":true}],\"entColor\":\"#f8be8b\",\"borderColor\":\"#cd803c\",\"toHeight\":50,\"alphaModle\":100,\"site\":0,\"xaxis\":-570,\"yaxis\":1039,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":22,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":201,\"map\":\"\"},{\"id\":\"b8c2f6115065\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-671,\"y\":899},\"endPoint\":{\"x\":-671,\"y\":1203},\"name\":11511,\"isStrLine\":true},{\"startPoint\":{\"x\":-671,\"y\":1203},\"endPoint\":{\"x\":-860,\"y\":1203},\"name\":11512,\"isStrLine\":true},{\"startPoint\":{\"x\":-860,\"y\":1203},\"endPoint\":{\"x\":-858,\"y\":899},\"name\":11513,\"isStrLine\":true},{\"startPoint\":{\"x\":-858,\"y\":899},\"endPoint\":{\"x\":-671,\"y\":899},\"name\":11514,\"isStrLine\":true}],\"entColor\":\"#f8be8b\",\"borderColor\":\"#cd803c\",\"toHeight\":50,\"alphaModle\":100,\"site\":0,\"xaxis\":-784,\"yaxis\":1039,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":21,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":176,\"map\":\"\"},{\"id\":\"80d6a071cd0c\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-858,\"y\":899},\"endPoint\":{\"x\":-860,\"y\":1203},\"name\":11515,\"isStrLine\":true},{\"startPoint\":{\"x\":-860,\"y\":1203},\"endPoint\":{\"x\":-1096,\"y\":1203},\"name\":11516,\"isStrLine\":true},{\"startPoint\":{\"x\":-1096,\"y\":1203},\"endPoint\":{\"x\":-1096,\"y\":899},\"name\":11517,\"isStrLine\":true},{\"startPoint\":{\"x\":-1096,\"y\":899},\"endPoint\":{\"x\":-858,\"y\":899},\"name\":11518,\"isStrLine\":true}],\"entColor\":\"#f8be8b\",\"borderColor\":\"#cd803c\",\"toHeight\":50,\"alphaModle\":100,\"site\":0,\"xaxis\":-973,\"yaxis\":1039,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":20,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":222,\"map\":\"\"},{\"id\":\"2c111b3bf889\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-475,\"y\":813},\"endPoint\":{\"x\":-495,\"y\":766},\"name\":11519,\"isStrLine\":true},{\"startPoint\":{\"x\":-495,\"y\":766},\"endPoint\":{\"x\":-222,\"y\":669},\"name\":11520,\"isStrLine\":true},{\"startPoint\":{\"x\":-222,\"y\":669},\"endPoint\":{\"x\":-31,\"y\":669},\"name\":11521,\"isStrLine\":true},{\"startPoint\":{\"x\":-31,\"y\":669},\"endPoint\":{\"x\":-33,\"y\":813},\"name\":11522,\"isStrLine\":true},{\"startPoint\":{\"x\":-33,\"y\":813},\"endPoint\":{\"x\":-475,\"y\":813},\"name\":11523,\"isStrLine\":true}],\"entColor\":\"#f8be8b\",\"borderColor\":\"#cd803c\",\"toHeight\":50,\"alphaModle\":100,\"site\":0,\"xaxis\":-263,\"yaxis\":742,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":23,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":163,\"map\":\"\"},{\"id\":\"62a003e7dc3f\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-33,\"y\":813},\"endPoint\":{\"x\":-31,\"y\":669},\"name\":11524,\"isStrLine\":true},{\"startPoint\":{\"x\":-31,\"y\":669},\"endPoint\":{\"x\":275,\"y\":669},\"name\":11525,\"isStrLine\":true},{\"startPoint\":{\"x\":275,\"y\":669},\"endPoint\":{\"x\":305,\"y\":650},\"name\":11526,\"isStrLine\":true},{\"startPoint\":{\"x\":305,\"y\":650},\"endPoint\":{\"x\":368,\"y\":758},\"name\":11527,\"isStrLine\":true},{\"startPoint\":{\"x\":368,\"y\":758},\"endPoint\":{\"x\":175,\"y\":813},\"name\":11528,\"isStrLine\":true},{\"startPoint\":{\"x\":175,\"y\":813},\"endPoint\":{\"x\":-33,\"y\":813},\"name\":11529,\"isStrLine\":true}],\"entColor\":\"#f8be8b\",\"borderColor\":\"#cd803c\",\"toHeight\":50,\"alphaModle\":100,\"site\":0,\"xaxis\":167.5,\"yaxis\":735,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":4,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":155,\"map\":\"\"},{\"id\":\"3bac6216d3b3\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":305,\"y\":650},\"endPoint\":{\"x\":553,\"y\":379},\"name\":11530,\"isStrLine\":true},{\"startPoint\":{\"x\":553,\"y\":379},\"endPoint\":{\"x\":598,\"y\":410},\"name\":11531,\"isStrLine\":true},{\"startPoint\":{\"x\":598,\"y\":410},\"endPoint\":{\"x\":540,\"y\":627},\"name\":11532,\"isStrLine\":true},{\"startPoint\":{\"x\":540,\"y\":627},\"endPoint\":{\"x\":417,\"y\":745},\"name\":11533,\"isStrLine\":true},{\"startPoint\":{\"x\":417,\"y\":745},\"endPoint\":{\"x\":368,\"y\":758},\"name\":11534,\"isStrLine\":true},{\"startPoint\":{\"x\":368,\"y\":758},\"endPoint\":{\"x\":305,\"y\":650},\"name\":11535,\"isStrLine\":true}],\"entColor\":\"#f8be8b\",\"borderColor\":\"#cd803c\",\"toHeight\":50,\"alphaModle\":100,\"site\":0,\"xaxis\":451.5,\"yaxis\":568.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":6,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":155,\"map\":\"\"}],\"path\":{\"nodes\":[{\"id\":0,\"x\":-1452,\"y\":-1002,\"Proy\":\"graph\",\"list\":[{\"cost\":332,\"id\":41},{\"cost\":260,\"id\":53}]},{\"id\":1,\"x\":-1113,\"y\":-632,\"Proy\":\"graph\",\"list\":[{\"cost\":169,\"id\":41},{\"cost\":232,\"id\":40},{\"cost\":148,\"id\":42}]},{\"id\":2,\"x\":-415,\"y\":-635,\"Proy\":\"graph\",\"list\":[{\"cost\":81,\"id\":11},{\"cost\":104,\"id\":12},{\"cost\":94,\"id\":37}]},{\"id\":3,\"x\":-1112,\"y\":848,\"Proy\":\"graph\",\"list\":[{\"cost\":146,\"id\":20},{\"cost\":134,\"id\":47}]},{\"id\":4,\"x\":195,\"y\":875,\"Proy\":\"graph\",\"list\":[{\"cost\":119,\"id\":24},{\"cost\":141,\"id\":25}]},{\"id\":5,\"x\":508,\"y\":770,\"Proy\":\"graph\",\"list\":[{\"cost\":188,\"id\":25},{\"cost\":122,\"id\":6}]},{\"id\":6,\"x\":583,\"y\":673,\"Proy\":\"graph\",\"list\":[{\"cost\":122,\"id\":5},{\"cost\":332,\"id\":7},{\"cost\":286,\"id\":26}]},{\"id\":7,\"x\":660,\"y\":350,\"Proy\":\"graph\",\"list\":[{\"cost\":332,\"id\":6},{\"cost\":289,\"id\":19}]},{\"id\":8,\"x\":1078,\"y\":348,\"Proy\":\"graph\",\"list\":[{\"cost\":129,\"id\":19},{\"cost\":89,\"id\":29}]},{\"id\":9,\"x\":1065,\"y\":688,\"Proy\":\"graph\",\"list\":[{\"cost\":196,\"id\":26},{\"cost\":284,\"id\":27},{\"cost\":104,\"id\":28}]},{\"id\":10,\"x\":1500,\"y\":878,\"Proy\":\"graph\",\"list\":[{\"cost\":189,\"id\":27}]},{\"id\":11,\"x\":-355,\"y\":-690,\"Proy\":\"graph\",\"list\":[{\"cost\":81,\"id\":2},{\"cost\":156,\"id\":51}]},{\"id\":12,\"x\":-372,\"y\":-540,\"Proy\":\"graph\",\"list\":[{\"cost\":104,\"id\":2},{\"cost\":103,\"id\":36}]},{\"id\":13,\"x\":-17,\"y\":-495,\"Proy\":\"graph\",\"list\":[{\"cost\":87,\"id\":35},{\"cost\":137,\"id\":34}]},{\"id\":14,\"x\":310,\"y\":-577,\"Proy\":\"graph\",\"list\":[{\"cost\":199,\"id\":34},{\"cost\":72,\"id\":16}]},{\"id\":15,\"x\":307,\"y\":-692,\"Proy\":\"graph\",\"list\":[{\"cost\":218,\"id\":52},{\"cost\":43,\"id\":16}]},{\"id\":16,\"x\":308,\"y\":-649,\"Proy\":\"graph\",\"list\":[{\"cost\":72,\"id\":14},{\"cost\":43,\"id\":15},{\"cost\":311,\"id\":32}]},{\"id\":17,\"x\":943,\"y\":-595,\"Proy\":\"graph\",\"list\":[{\"cost\":326,\"id\":32},{\"cost\":288,\"id\":18},{\"cost\":207,\"id\":59}]},{\"id\":18,\"x\":944,\"y\":-307,\"Proy\":\"graph\",\"list\":[{\"cost\":288,\"id\":17},{\"cost\":141,\"id\":31}]},{\"id\":19,\"x\":949,\"y\":348,\"Proy\":\"graph\",\"list\":[{\"cost\":289,\"id\":7},{\"cost\":129,\"id\":8},{\"cost\":129,\"id\":49}]},{\"id\":20,\"x\":-966,\"y\":851,\"Proy\":\"graph\",\"list\":[{\"cost\":146,\"id\":3},{\"cost\":210,\"id\":21}]},{\"id\":21,\"x\":-756,\"y\":855,\"Proy\":\"graph\",\"list\":[{\"cost\":210,\"id\":20},{\"cost\":177,\"id\":22}]},{\"id\":22,\"x\":-579,\"y\":859,\"Proy\":\"graph\",\"list\":[{\"cost\":177,\"id\":21},{\"cost\":328,\"id\":23}]},{\"id\":23,\"x\":-251,\"y\":865,\"Proy\":\"graph\",\"list\":[{\"cost\":328,\"id\":22},{\"cost\":327,\"id\":24}]},{\"id\":24,\"x\":76,\"y\":872,\"Proy\":\"graph\",\"list\":[{\"cost\":119,\"id\":4},{\"cost\":327,\"id\":23}]},{\"id\":25,\"x\":329,\"y\":830,\"Proy\":\"graph\",\"list\":[{\"cost\":141,\"id\":4},{\"cost\":188,\"id\":5}]},{\"id\":26,\"x\":869,\"y\":681,\"Proy\":\"graph\",\"list\":[{\"cost\":286,\"id\":6},{\"cost\":196,\"id\":9}]},{\"id\":27,\"x\":1326,\"y\":802,\"Proy\":\"graph\",\"list\":[{\"cost\":284,\"id\":9},{\"cost\":189,\"id\":10}]},{\"id\":28,\"x\":1068,\"y\":584,\"Proy\":\"graph\",\"list\":[{\"cost\":104,\"id\":9},{\"cost\":147,\"id\":29}]},{\"id\":29,\"x\":1074,\"y\":437,\"Proy\":\"graph\",\"list\":[{\"cost\":89,\"id\":8},{\"cost\":147,\"id\":28}]},{\"id\":30,\"x\":947,\"y\":84,\"Proy\":\"graph\",\"list\":[{\"cost\":135,\"id\":49},{\"cost\":250,\"id\":31}]},{\"id\":31,\"x\":945,\"y\":-166,\"Proy\":\"graph\",\"list\":[{\"cost\":141,\"id\":18},{\"cost\":250,\"id\":30}]},{\"id\":32,\"x\":618,\"y\":-623,\"Proy\":\"graph\",\"list\":[{\"cost\":311,\"id\":16},{\"cost\":326,\"id\":17},{\"cost\":118,\"id\":33}]},{\"id\":33,\"x\":500,\"y\":-627,\"Proy\":\"graph\",\"list\":[{\"cost\":118,\"id\":32}]},{\"id\":34,\"x\":116,\"y\":-529,\"Proy\":\"graph\",\"list\":[{\"cost\":137,\"id\":13},{\"cost\":199,\"id\":14}]},{\"id\":35,\"x\":-104,\"y\":-507,\"Proy\":\"graph\",\"list\":[{\"cost\":87,\"id\":13},{\"cost\":166,\"id\":36}]},{\"id\":36,\"x\":-269,\"y\":-527,\"Proy\":\"graph\",\"list\":[{\"cost\":103,\"id\":12},{\"cost\":166,\"id\":35}]},{\"id\":37,\"x\":-509,\"y\":-635,\"Proy\":\"graph\",\"list\":[{\"cost\":94,\"id\":2},{\"cost\":147,\"id\":38},{\"cost\":207,\"id\":48}]},{\"id\":38,\"x\":-656,\"y\":-634,\"Proy\":\"graph\",\"list\":[{\"cost\":147,\"id\":37},{\"cost\":88,\"id\":39}]},{\"id\":39,\"x\":-744,\"y\":-634,\"Proy\":\"graph\",\"list\":[{\"cost\":88,\"id\":38},{\"cost\":137,\"id\":40}]},{\"id\":40,\"x\":-881,\"y\":-633,\"Proy\":\"graph\",\"list\":[{\"cost\":232,\"id\":1},{\"cost\":137,\"id\":39}]},{\"id\":41,\"x\":-1230,\"y\":-755,\"Proy\":\"graph\",\"list\":[{\"cost\":332,\"id\":0},{\"cost\":169,\"id\":1}]},{\"id\":42,\"x\":-1113,\"y\":-484,\"Proy\":\"graph\",\"list\":[{\"cost\":148,\"id\":1},{\"cost\":125,\"id\":43}]},{\"id\":43,\"x\":-1113,\"y\":-359,\"Proy\":\"graph\",\"list\":[{\"cost\":125,\"id\":42},{\"cost\":273,\"id\":44}]},{\"id\":44,\"x\":-1113,\"y\":-86,\"Proy\":\"graph\",\"list\":[{\"cost\":273,\"id\":43},{\"cost\":440,\"id\":45}]},{\"id\":45,\"x\":-1113,\"y\":354,\"Proy\":\"graph\",\"list\":[{\"cost\":440,\"id\":44},{\"cost\":188,\"id\":46}]},{\"id\":46,\"x\":-1113,\"y\":542,\"Proy\":\"graph\",\"list\":[{\"cost\":188,\"id\":45},{\"cost\":172,\"id\":47}]},{\"id\":47,\"x\":-1113,\"y\":714,\"Proy\":\"graph\",\"list\":[{\"cost\":134,\"id\":3},{\"cost\":172,\"id\":46}]},{\"id\":48,\"x\":-505,\"y\":-842,\"Proy\":\"graph\",\"list\":[{\"cost\":207,\"id\":37}]},{\"id\":49,\"x\":948,\"y\":219,\"Proy\":\"graph\",\"list\":[{\"cost\":129,\"id\":19},{\"cost\":135,\"id\":30},{\"cost\":267,\"id\":50}]},{\"id\":50,\"x\":1215,\"y\":215,\"Proy\":\"graph\",\"list\":[{\"cost\":267,\"id\":49}]},{\"id\":51,\"x\":-199,\"y\":-691,\"Proy\":\"graph\",\"list\":[{\"cost\":156,\"id\":11},{\"cost\":288,\"id\":52}]},{\"id\":52,\"x\":89,\"y\":-692,\"Proy\":\"graph\",\"list\":[{\"cost\":218,\"id\":15},{\"cost\":288,\"id\":51}]},{\"id\":53,\"x\":-1470,\"y\":-1262,\"Proy\":\"graph\",\"list\":[{\"cost\":260,\"id\":0},{\"cost\":939,\"id\":56}]},{\"id\":54,\"x\":1333,\"y\":-1245,\"Proy\":\"graph\",\"list\":[{\"cost\":293,\"id\":55},{\"cost\":806,\"id\":58}]},{\"id\":55,\"x\":1320,\"y\":-952,\"Proy\":\"graph\",\"list\":[{\"cost\":293,\"id\":54},{\"cost\":311,\"id\":59}]},{\"id\":56,\"x\":-531,\"y\":-1257,\"Proy\":\"graph\",\"list\":[{\"cost\":939,\"id\":53},{\"cost\":342,\"id\":57}]},{\"id\":57,\"x\":-189,\"y\":-1255,\"Proy\":\"graph\",\"list\":[{\"cost\":342,\"id\":56},{\"cost\":716,\"id\":58}]},{\"id\":58,\"x\":527,\"y\":-1250,\"Proy\":\"graph\",\"list\":[{\"cost\":806,\"id\":54},{\"cost\":716,\"id\":57}]},{\"id\":59,\"x\":1093,\"y\":-738,\"Proy\":\"graph\",\"list\":[{\"cost\":207,\"id\":17},{\"cost\":311,\"id\":55}]}]},\"decos\":[{\"id\":\"599e04072b59\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":-1590,\"y\":-413},\"endPoint\":{\"x\":-1376,\"y\":-413},\"name\":11536,\"isStrLine\":true},{\"startPoint\":{\"x\":-1376,\"y\":-413},\"endPoint\":{\"x\":-1376,\"y\":-326},\"name\":11537,\"isStrLine\":true},{\"startPoint\":{\"x\":-1376,\"y\":-326},\"endPoint\":{\"x\":-1467,\"y\":-326},\"name\":11538,\"isStrLine\":true},{\"startPoint\":{\"x\":-1467,\"y\":-326},\"endPoint\":{\"x\":-1467,\"y\":-199},\"name\":11539,\"isStrLine\":true},{\"startPoint\":{\"x\":-1467,\"y\":-199},\"endPoint\":{\"x\":-1376,\"y\":-199},\"name\":11540,\"isStrLine\":true},{\"startPoint\":{\"x\":-1376,\"y\":-199},\"endPoint\":{\"x\":-1376,\"y\":868},\"name\":11541,\"isStrLine\":true},{\"startPoint\":{\"x\":-1376,\"y\":868},\"endPoint\":{\"x\":-1590,\"y\":868},\"name\":11542,\"isStrLine\":true},{\"startPoint\":{\"x\":-1590,\"y\":868},\"endPoint\":{\"x\":-1590,\"y\":-413},\"name\":11543,\"isStrLine\":true}],\"entColor\":\"#f5f5f5\",\"borderColor\":\"#c0bfbf\",\"toHeight\":50,\"alphaModle\":100,\"site\":0,\"xaxis\":-1485,\"yaxis\":129.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":810,\"map\":\"\"},{\"id\":\"0ac0059d0e8e\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":1251,\"y\":-495},\"endPoint\":{\"x\":1509,\"y\":-495},\"name\":11544,\"isStrLine\":true},{\"startPoint\":{\"x\":1509,\"y\":-495},\"endPoint\":{\"x\":1509,\"y\":174},\"name\":11545,\"isStrLine\":true},{\"startPoint\":{\"x\":1509,\"y\":174},\"endPoint\":{\"x\":1251,\"y\":174},\"name\":11546,\"isStrLine\":true},{\"startPoint\":{\"x\":1251,\"y\":174},\"endPoint\":{\"x\":1251,\"y\":-495},\"name\":11547,\"isStrLine\":true}],\"entColor\":\"#f5f5f5\",\"borderColor\":\"#c0bfbf\",\"toHeight\":50,\"alphaModle\":100,\"site\":0,\"xaxis\":1380,\"yaxis\":-160.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":533,\"map\":\"\"},{\"id\":\"9388295f0e7b\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":1503,\"y\":-1832},\"endPoint\":{\"x\":1697,\"y\":-1832},\"name\":11548,\"isStrLine\":true},{\"startPoint\":{\"x\":1697,\"y\":-1832},\"endPoint\":{\"x\":1697,\"y\":-1809},\"name\":11549,\"isStrLine\":true},{\"startPoint\":{\"x\":1697,\"y\":-1809},\"endPoint\":{\"x\":1503,\"y\":-1809},\"name\":11550,\"isStrLine\":true},{\"startPoint\":{\"x\":1503,\"y\":-1809},\"endPoint\":{\"x\":1503,\"y\":-1832},\"name\":11551,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":1600,\"yaxis\":-1820.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"c6e89b393a19\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":1503,\"y\":-1777},\"endPoint\":{\"x\":1697,\"y\":-1777},\"name\":11552,\"isStrLine\":true},{\"startPoint\":{\"x\":1697,\"y\":-1777},\"endPoint\":{\"x\":1697,\"y\":-1754},\"name\":11553,\"isStrLine\":true},{\"startPoint\":{\"x\":1697,\"y\":-1754},\"endPoint\":{\"x\":1503,\"y\":-1754},\"name\":11554,\"isStrLine\":true},{\"startPoint\":{\"x\":1503,\"y\":-1754},\"endPoint\":{\"x\":1503,\"y\":-1777},\"name\":11555,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":1600,\"yaxis\":-1765.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"4a25ad09321a\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":1503,\"y\":-1723},\"endPoint\":{\"x\":1697,\"y\":-1723},\"name\":11556,\"isStrLine\":true},{\"startPoint\":{\"x\":1697,\"y\":-1723},\"endPoint\":{\"x\":1697,\"y\":-1700},\"name\":11557,\"isStrLine\":true},{\"startPoint\":{\"x\":1697,\"y\":-1700},\"endPoint\":{\"x\":1503,\"y\":-1700},\"name\":11558,\"isStrLine\":true},{\"startPoint\":{\"x\":1503,\"y\":-1700},\"endPoint\":{\"x\":1503,\"y\":-1723},\"name\":11559,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":1600,\"yaxis\":-1711.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"acf5ff6901dd\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":1503,\"y\":-1671},\"endPoint\":{\"x\":1697,\"y\":-1671},\"name\":11560,\"isStrLine\":true},{\"startPoint\":{\"x\":1697,\"y\":-1671},\"endPoint\":{\"x\":1697,\"y\":-1648},\"name\":11561,\"isStrLine\":true},{\"startPoint\":{\"x\":1697,\"y\":-1648},\"endPoint\":{\"x\":1503,\"y\":-1648},\"name\":11562,\"isStrLine\":true},{\"startPoint\":{\"x\":1503,\"y\":-1648},\"endPoint\":{\"x\":1503,\"y\":-1671},\"name\":11563,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":1600,\"yaxis\":-1659.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"3b4f534299cf\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":1503,\"y\":-1621},\"endPoint\":{\"x\":1697,\"y\":-1621},\"name\":11564,\"isStrLine\":true},{\"startPoint\":{\"x\":1697,\"y\":-1621},\"endPoint\":{\"x\":1697,\"y\":-1598},\"name\":11565,\"isStrLine\":true},{\"startPoint\":{\"x\":1697,\"y\":-1598},\"endPoint\":{\"x\":1503,\"y\":-1598},\"name\":11566,\"isStrLine\":true},{\"startPoint\":{\"x\":1503,\"y\":-1598},\"endPoint\":{\"x\":1503,\"y\":-1621},\"name\":11567,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":1600,\"yaxis\":-1609.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"746b100fbb1c\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":1503,\"y\":-1566},\"endPoint\":{\"x\":1697,\"y\":-1566},\"name\":11568,\"isStrLine\":true},{\"startPoint\":{\"x\":1697,\"y\":-1566},\"endPoint\":{\"x\":1697,\"y\":-1543},\"name\":11569,\"isStrLine\":true},{\"startPoint\":{\"x\":1697,\"y\":-1543},\"endPoint\":{\"x\":1503,\"y\":-1543},\"name\":11570,\"isStrLine\":true},{\"startPoint\":{\"x\":1503,\"y\":-1543},\"endPoint\":{\"x\":1503,\"y\":-1566},\"name\":11571,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":1600,\"yaxis\":-1554.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"6a3738ddc6b2\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":1503,\"y\":-1512},\"endPoint\":{\"x\":1697,\"y\":-1512},\"name\":11572,\"isStrLine\":true},{\"startPoint\":{\"x\":1697,\"y\":-1512},\"endPoint\":{\"x\":1697,\"y\":-1489},\"name\":11573,\"isStrLine\":true},{\"startPoint\":{\"x\":1697,\"y\":-1489},\"endPoint\":{\"x\":1503,\"y\":-1489},\"name\":11574,\"isStrLine\":true},{\"startPoint\":{\"x\":1503,\"y\":-1489},\"endPoint\":{\"x\":1503,\"y\":-1512},\"name\":11575,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":1600,\"yaxis\":-1500.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"89d7450acc95\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":1503,\"y\":-1460},\"endPoint\":{\"x\":1697,\"y\":-1460},\"name\":11576,\"isStrLine\":true},{\"startPoint\":{\"x\":1697,\"y\":-1460},\"endPoint\":{\"x\":1697,\"y\":-1437},\"name\":11577,\"isStrLine\":true},{\"startPoint\":{\"x\":1697,\"y\":-1437},\"endPoint\":{\"x\":1503,\"y\":-1437},\"name\":11578,\"isStrLine\":true},{\"startPoint\":{\"x\":1503,\"y\":-1437},\"endPoint\":{\"x\":1503,\"y\":-1460},\"name\":11579,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":1600,\"yaxis\":-1448.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"928248cf89f1\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":1503,\"y\":-1406},\"endPoint\":{\"x\":1697,\"y\":-1406},\"name\":11580,\"isStrLine\":true},{\"startPoint\":{\"x\":1697,\"y\":-1406},\"endPoint\":{\"x\":1697,\"y\":-1383},\"name\":11581,\"isStrLine\":true},{\"startPoint\":{\"x\":1697,\"y\":-1383},\"endPoint\":{\"x\":1503,\"y\":-1383},\"name\":11582,\"isStrLine\":true},{\"startPoint\":{\"x\":1503,\"y\":-1383},\"endPoint\":{\"x\":1503,\"y\":-1406},\"name\":11583,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":1600,\"yaxis\":-1394.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"a22f919a8427\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":2285.41,\"y\":-2211.49},\"endPoint\":{\"x\":2285.42,\"y\":-2017.48},\"name\":11584,\"isStrLine\":true},{\"startPoint\":{\"x\":2285.42,\"y\":-2017.48},\"endPoint\":{\"x\":2262.41,\"y\":-2017.47},\"name\":11585,\"isStrLine\":true},{\"startPoint\":{\"x\":2262.41,\"y\":-2017.47},\"endPoint\":{\"x\":2262.41,\"y\":-2211.48},\"name\":11586,\"isStrLine\":true},{\"startPoint\":{\"x\":2262.41,\"y\":-2211.48},\"endPoint\":{\"x\":2285.41,\"y\":-2211.49},\"name\":11587,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":2060.5,\"yaxis\":-2328,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"f30c826fbcf8\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":2230.41,\"y\":-2211.48},\"endPoint\":{\"x\":2230.41,\"y\":-2017.49},\"name\":11588,\"isStrLine\":true},{\"startPoint\":{\"x\":2230.41,\"y\":-2017.49},\"endPoint\":{\"x\":2207.41,\"y\":-2017.49},\"name\":11589,\"isStrLine\":true},{\"startPoint\":{\"x\":2207.41,\"y\":-2017.49},\"endPoint\":{\"x\":2207.41,\"y\":-2211.49},\"name\":11590,\"isStrLine\":true},{\"startPoint\":{\"x\":2207.41,\"y\":-2211.49},\"endPoint\":{\"x\":2230.41,\"y\":-2211.48},\"name\":11591,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":2060.5,\"yaxis\":-2273,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"4f704c75be68\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":2176.41,\"y\":-2211.49},\"endPoint\":{\"x\":2176.42,\"y\":-2017.48},\"name\":11592,\"isStrLine\":true},{\"startPoint\":{\"x\":2176.42,\"y\":-2017.48},\"endPoint\":{\"x\":2153.41,\"y\":-2017.48},\"name\":11593,\"isStrLine\":true},{\"startPoint\":{\"x\":2153.41,\"y\":-2017.48},\"endPoint\":{\"x\":2153.41,\"y\":-2211.49},\"name\":11594,\"isStrLine\":true},{\"startPoint\":{\"x\":2153.41,\"y\":-2211.49},\"endPoint\":{\"x\":2176.41,\"y\":-2211.49},\"name\":11595,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":2060.5,\"yaxis\":-2219,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"a8b74d665383\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":2124.42,\"y\":-2211.48},\"endPoint\":{\"x\":2124.41,\"y\":-2017.48},\"name\":11596,\"isStrLine\":true},{\"startPoint\":{\"x\":2124.41,\"y\":-2017.48},\"endPoint\":{\"x\":2101.41,\"y\":-2017.49},\"name\":11597,\"isStrLine\":true},{\"startPoint\":{\"x\":2101.41,\"y\":-2017.49},\"endPoint\":{\"x\":2101.41,\"y\":-2211.48},\"name\":11598,\"isStrLine\":true},{\"startPoint\":{\"x\":2101.41,\"y\":-2211.48},\"endPoint\":{\"x\":2124.42,\"y\":-2211.48},\"name\":11599,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":2060.5,\"yaxis\":-2167,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"5185a9190c8e\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":2074.42,\"y\":-2211.48},\"endPoint\":{\"x\":2074.41,\"y\":-2017.48},\"name\":11600,\"isStrLine\":true},{\"startPoint\":{\"x\":2074.41,\"y\":-2017.48},\"endPoint\":{\"x\":2051.42,\"y\":-2017.47},\"name\":11601,\"isStrLine\":true},{\"startPoint\":{\"x\":2051.42,\"y\":-2017.47},\"endPoint\":{\"x\":2051.42,\"y\":-2211.48},\"name\":11602,\"isStrLine\":true},{\"startPoint\":{\"x\":2051.42,\"y\":-2211.48},\"endPoint\":{\"x\":2074.42,\"y\":-2211.48},\"name\":11603,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":2060.5,\"yaxis\":-2117,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"297f627a8c6e\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":2019.41,\"y\":-2211.49},\"endPoint\":{\"x\":2019.41,\"y\":-2017.49},\"name\":11604,\"isStrLine\":true},{\"startPoint\":{\"x\":2019.41,\"y\":-2017.49},\"endPoint\":{\"x\":1996.41,\"y\":-2017.48},\"name\":11605,\"isStrLine\":true},{\"startPoint\":{\"x\":1996.41,\"y\":-2017.48},\"endPoint\":{\"x\":1996.41,\"y\":-2211.49},\"name\":11606,\"isStrLine\":true},{\"startPoint\":{\"x\":1996.41,\"y\":-2211.49},\"endPoint\":{\"x\":2019.41,\"y\":-2211.49},\"name\":11607,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":2060.5,\"yaxis\":-2062,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"bfe4094201c5\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":1965.41,\"y\":-2211.48},\"endPoint\":{\"x\":1965.42,\"y\":-2017.48},\"name\":11608,\"isStrLine\":true},{\"startPoint\":{\"x\":1965.42,\"y\":-2017.48},\"endPoint\":{\"x\":1942.42,\"y\":-2017.48},\"name\":11609,\"isStrLine\":true},{\"startPoint\":{\"x\":1942.42,\"y\":-2017.48},\"endPoint\":{\"x\":1942.42,\"y\":-2211.48},\"name\":11610,\"isStrLine\":true},{\"startPoint\":{\"x\":1942.42,\"y\":-2211.48},\"endPoint\":{\"x\":1965.41,\"y\":-2211.48},\"name\":11611,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":2060.5,\"yaxis\":-2008,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"ce9ca9616405\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":1913.41,\"y\":-2211.48},\"endPoint\":{\"x\":1913.43,\"y\":-2017.49},\"name\":11612,\"isStrLine\":true},{\"startPoint\":{\"x\":1913.43,\"y\":-2017.49},\"endPoint\":{\"x\":1890.41,\"y\":-2017.49},\"name\":11613,\"isStrLine\":true},{\"startPoint\":{\"x\":1890.41,\"y\":-2017.49},\"endPoint\":{\"x\":1890.41,\"y\":-2211.49},\"name\":11614,\"isStrLine\":true},{\"startPoint\":{\"x\":1890.41,\"y\":-2211.49},\"endPoint\":{\"x\":1913.41,\"y\":-2211.48},\"name\":11615,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":2060.5,\"yaxis\":-1956,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"55297eda7397\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":1859.41,\"y\":-2211.49},\"endPoint\":{\"x\":1859.41,\"y\":-2017.49},\"name\":11616,\"isStrLine\":true},{\"startPoint\":{\"x\":1859.41,\"y\":-2017.49},\"endPoint\":{\"x\":1836.41,\"y\":-2017.48},\"name\":11617,\"isStrLine\":true},{\"startPoint\":{\"x\":1836.41,\"y\":-2017.48},\"endPoint\":{\"x\":1836.41,\"y\":-2211.48},\"name\":11618,\"isStrLine\":true},{\"startPoint\":{\"x\":1836.41,\"y\":-2211.48},\"endPoint\":{\"x\":1859.41,\"y\":-2211.49},\"name\":11619,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":2060.5,\"yaxis\":-1902,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"2d6cadc18fbc\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":2274.41,\"y\":-1180.49},\"endPoint\":{\"x\":2274.42,\"y\":-986.48},\"name\":11620,\"isStrLine\":true},{\"startPoint\":{\"x\":2274.42,\"y\":-986.48},\"endPoint\":{\"x\":2251.41,\"y\":-986.47},\"name\":11621,\"isStrLine\":true},{\"startPoint\":{\"x\":2251.41,\"y\":-986.47},\"endPoint\":{\"x\":2251.41,\"y\":-1180.48},\"name\":11622,\"isStrLine\":true},{\"startPoint\":{\"x\":2251.41,\"y\":-1180.48},\"endPoint\":{\"x\":2274.41,\"y\":-1180.49},\"name\":11623,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":2049.5,\"yaxis\":-1297,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"4cb4f312e685\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":2219.41,\"y\":-1180.48},\"endPoint\":{\"x\":2219.41,\"y\":-986.49},\"name\":11624,\"isStrLine\":true},{\"startPoint\":{\"x\":2219.41,\"y\":-986.49},\"endPoint\":{\"x\":2196.41,\"y\":-986.49},\"name\":11625,\"isStrLine\":true},{\"startPoint\":{\"x\":2196.41,\"y\":-986.49},\"endPoint\":{\"x\":2196.41,\"y\":-1180.49},\"name\":11626,\"isStrLine\":true},{\"startPoint\":{\"x\":2196.41,\"y\":-1180.49},\"endPoint\":{\"x\":2219.41,\"y\":-1180.48},\"name\":11627,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":2049.5,\"yaxis\":-1242,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"89948d51b1db\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":2165.41,\"y\":-1180.49},\"endPoint\":{\"x\":2165.42,\"y\":-986.48},\"name\":11628,\"isStrLine\":true},{\"startPoint\":{\"x\":2165.42,\"y\":-986.48},\"endPoint\":{\"x\":2142.41,\"y\":-986.48},\"name\":11629,\"isStrLine\":true},{\"startPoint\":{\"x\":2142.41,\"y\":-986.48},\"endPoint\":{\"x\":2142.41,\"y\":-1180.49},\"name\":11630,\"isStrLine\":true},{\"startPoint\":{\"x\":2142.41,\"y\":-1180.49},\"endPoint\":{\"x\":2165.41,\"y\":-1180.49},\"name\":11631,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":2049.5,\"yaxis\":-1188,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"431bc972a002\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":2113.42,\"y\":-1180.48},\"endPoint\":{\"x\":2113.41,\"y\":-986.48},\"name\":11632,\"isStrLine\":true},{\"startPoint\":{\"x\":2113.41,\"y\":-986.48},\"endPoint\":{\"x\":2090.41,\"y\":-986.49},\"name\":11633,\"isStrLine\":true},{\"startPoint\":{\"x\":2090.41,\"y\":-986.49},\"endPoint\":{\"x\":2090.41,\"y\":-1180.48},\"name\":11634,\"isStrLine\":true},{\"startPoint\":{\"x\":2090.41,\"y\":-1180.48},\"endPoint\":{\"x\":2113.42,\"y\":-1180.48},\"name\":11635,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":2049.5,\"yaxis\":-1136,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"000bedd06661\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":2063.42,\"y\":-1180.48},\"endPoint\":{\"x\":2063.41,\"y\":-986.48},\"name\":11636,\"isStrLine\":true},{\"startPoint\":{\"x\":2063.41,\"y\":-986.48},\"endPoint\":{\"x\":2040.42,\"y\":-986.47},\"name\":11637,\"isStrLine\":true},{\"startPoint\":{\"x\":2040.42,\"y\":-986.47},\"endPoint\":{\"x\":2040.42,\"y\":-1180.48},\"name\":11638,\"isStrLine\":true},{\"startPoint\":{\"x\":2040.42,\"y\":-1180.48},\"endPoint\":{\"x\":2063.42,\"y\":-1180.48},\"name\":11639,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":2049.5,\"yaxis\":-1086,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"8b19d2523469\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":2008.41,\"y\":-1180.49},\"endPoint\":{\"x\":2008.41,\"y\":-986.49},\"name\":11640,\"isStrLine\":true},{\"startPoint\":{\"x\":2008.41,\"y\":-986.49},\"endPoint\":{\"x\":1985.41,\"y\":-986.48},\"name\":11641,\"isStrLine\":true},{\"startPoint\":{\"x\":1985.41,\"y\":-986.48},\"endPoint\":{\"x\":1985.41,\"y\":-1180.49},\"name\":11642,\"isStrLine\":true},{\"startPoint\":{\"x\":1985.41,\"y\":-1180.49},\"endPoint\":{\"x\":2008.41,\"y\":-1180.49},\"name\":11643,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":2049.5,\"yaxis\":-1031,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"a22052a61c4c\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":1954.41,\"y\":-1180.48},\"endPoint\":{\"x\":1954.42,\"y\":-986.48},\"name\":11644,\"isStrLine\":true},{\"startPoint\":{\"x\":1954.42,\"y\":-986.48},\"endPoint\":{\"x\":1931.42,\"y\":-986.48},\"name\":11645,\"isStrLine\":true},{\"startPoint\":{\"x\":1931.42,\"y\":-986.48},\"endPoint\":{\"x\":1931.42,\"y\":-1180.48},\"name\":11646,\"isStrLine\":true},{\"startPoint\":{\"x\":1931.42,\"y\":-1180.48},\"endPoint\":{\"x\":1954.41,\"y\":-1180.48},\"name\":11647,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":2049.5,\"yaxis\":-977,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"ce3829e4e74c\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":1902.41,\"y\":-1180.48},\"endPoint\":{\"x\":1902.43,\"y\":-986.49},\"name\":11648,\"isStrLine\":true},{\"startPoint\":{\"x\":1902.43,\"y\":-986.49},\"endPoint\":{\"x\":1879.41,\"y\":-986.49},\"name\":11649,\"isStrLine\":true},{\"startPoint\":{\"x\":1879.41,\"y\":-986.49},\"endPoint\":{\"x\":1879.41,\"y\":-1180.49},\"name\":11650,\"isStrLine\":true},{\"startPoint\":{\"x\":1879.41,\"y\":-1180.49},\"endPoint\":{\"x\":1902.41,\"y\":-1180.48},\"name\":11651,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":2049.5,\"yaxis\":-925,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"c281afcbe1b9\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":1848.41,\"y\":-1180.49},\"endPoint\":{\"x\":1848.41,\"y\":-986.49},\"name\":11652,\"isStrLine\":true},{\"startPoint\":{\"x\":1848.41,\"y\":-986.49},\"endPoint\":{\"x\":1825.41,\"y\":-986.48},\"name\":11653,\"isStrLine\":true},{\"startPoint\":{\"x\":1825.41,\"y\":-986.48},\"endPoint\":{\"x\":1825.41,\"y\":-1180.48},\"name\":11654,\"isStrLine\":true},{\"startPoint\":{\"x\":1825.41,\"y\":-1180.48},\"endPoint\":{\"x\":1848.41,\"y\":-1180.49},\"name\":11655,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":2049.5,\"yaxis\":-871,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"4f02b0b27b31\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":-1618.09,\"y\":-1197.98},\"endPoint\":{\"x\":-1618.09,\"y\":-1003.99},\"name\":11656,\"isStrLine\":true},{\"startPoint\":{\"x\":-1618.09,\"y\":-1003.99},\"endPoint\":{\"x\":-1641.09,\"y\":-1003.99},\"name\":11657,\"isStrLine\":true},{\"startPoint\":{\"x\":-1641.09,\"y\":-1003.99},\"endPoint\":{\"x\":-1641.09,\"y\":-1197.99},\"name\":11658,\"isStrLine\":true},{\"startPoint\":{\"x\":-1641.09,\"y\":-1197.99},\"endPoint\":{\"x\":-1618.09,\"y\":-1197.98},\"name\":11659,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":-1788,\"yaxis\":-1259.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"f8ad2752122b\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":-1672.09,\"y\":-1197.99},\"endPoint\":{\"x\":-1672.08,\"y\":-1003.98},\"name\":11660,\"isStrLine\":true},{\"startPoint\":{\"x\":-1672.08,\"y\":-1003.98},\"endPoint\":{\"x\":-1695.09,\"y\":-1003.98},\"name\":11661,\"isStrLine\":true},{\"startPoint\":{\"x\":-1695.09,\"y\":-1003.98},\"endPoint\":{\"x\":-1695.09,\"y\":-1197.99},\"name\":11662,\"isStrLine\":true},{\"startPoint\":{\"x\":-1695.09,\"y\":-1197.99},\"endPoint\":{\"x\":-1672.09,\"y\":-1197.99},\"name\":11663,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":-1788,\"yaxis\":-1205.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"92ed03494d29\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":-1724.08,\"y\":-1197.98},\"endPoint\":{\"x\":-1724.09,\"y\":-1003.98},\"name\":11664,\"isStrLine\":true},{\"startPoint\":{\"x\":-1724.09,\"y\":-1003.98},\"endPoint\":{\"x\":-1747.09,\"y\":-1003.99},\"name\":11665,\"isStrLine\":true},{\"startPoint\":{\"x\":-1747.09,\"y\":-1003.99},\"endPoint\":{\"x\":-1747.09,\"y\":-1197.98},\"name\":11666,\"isStrLine\":true},{\"startPoint\":{\"x\":-1747.09,\"y\":-1197.98},\"endPoint\":{\"x\":-1724.08,\"y\":-1197.98},\"name\":11667,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":-1788,\"yaxis\":-1153.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"27c18cd7c17d\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":-1774.08,\"y\":-1197.98},\"endPoint\":{\"x\":-1774.09,\"y\":-1003.98},\"name\":11668,\"isStrLine\":true},{\"startPoint\":{\"x\":-1774.09,\"y\":-1003.98},\"endPoint\":{\"x\":-1797.08,\"y\":-1003.97},\"name\":11669,\"isStrLine\":true},{\"startPoint\":{\"x\":-1797.08,\"y\":-1003.97},\"endPoint\":{\"x\":-1797.08,\"y\":-1197.98},\"name\":11670,\"isStrLine\":true},{\"startPoint\":{\"x\":-1797.08,\"y\":-1197.98},\"endPoint\":{\"x\":-1774.08,\"y\":-1197.98},\"name\":11671,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":-1788,\"yaxis\":-1103.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"10c2e1719256\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":-1829.09,\"y\":-1197.99},\"endPoint\":{\"x\":-1829.09,\"y\":-1003.99},\"name\":11672,\"isStrLine\":true},{\"startPoint\":{\"x\":-1829.09,\"y\":-1003.99},\"endPoint\":{\"x\":-1852.09,\"y\":-1003.98},\"name\":11673,\"isStrLine\":true},{\"startPoint\":{\"x\":-1852.09,\"y\":-1003.98},\"endPoint\":{\"x\":-1852.09,\"y\":-1197.99},\"name\":11674,\"isStrLine\":true},{\"startPoint\":{\"x\":-1852.09,\"y\":-1197.99},\"endPoint\":{\"x\":-1829.09,\"y\":-1197.99},\"name\":11675,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":-1788,\"yaxis\":-1048.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"62ef0e3aa3b1\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":-1883.09,\"y\":-1197.98},\"endPoint\":{\"x\":-1883.08,\"y\":-1003.98},\"name\":11676,\"isStrLine\":true},{\"startPoint\":{\"x\":-1883.08,\"y\":-1003.98},\"endPoint\":{\"x\":-1906.08,\"y\":-1003.98},\"name\":11677,\"isStrLine\":true},{\"startPoint\":{\"x\":-1906.08,\"y\":-1003.98},\"endPoint\":{\"x\":-1906.08,\"y\":-1197.98},\"name\":11678,\"isStrLine\":true},{\"startPoint\":{\"x\":-1906.08,\"y\":-1197.98},\"endPoint\":{\"x\":-1883.09,\"y\":-1197.98},\"name\":11679,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":-1788,\"yaxis\":-994.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"262cc4654789\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":-1935.09,\"y\":-1197.98},\"endPoint\":{\"x\":-1935.07,\"y\":-1003.99},\"name\":11680,\"isStrLine\":true},{\"startPoint\":{\"x\":-1935.07,\"y\":-1003.99},\"endPoint\":{\"x\":-1958.09,\"y\":-1003.99},\"name\":11681,\"isStrLine\":true},{\"startPoint\":{\"x\":-1958.09,\"y\":-1003.99},\"endPoint\":{\"x\":-1958.09,\"y\":-1197.99},\"name\":11682,\"isStrLine\":true},{\"startPoint\":{\"x\":-1958.09,\"y\":-1197.99},\"endPoint\":{\"x\":-1935.09,\"y\":-1197.98},\"name\":11683,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":-1788,\"yaxis\":-942.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"35500d04696f\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":-1989.09,\"y\":-1197.99},\"endPoint\":{\"x\":-1989.09,\"y\":-1003.99},\"name\":11684,\"isStrLine\":true},{\"startPoint\":{\"x\":-1989.09,\"y\":-1003.99},\"endPoint\":{\"x\":-2012.09,\"y\":-1003.98},\"name\":11685,\"isStrLine\":true},{\"startPoint\":{\"x\":-2012.09,\"y\":-1003.98},\"endPoint\":{\"x\":-2012.09,\"y\":-1197.98},\"name\":11686,\"isStrLine\":true},{\"startPoint\":{\"x\":-2012.09,\"y\":-1197.98},\"endPoint\":{\"x\":-1989.09,\"y\":-1197.99},\"name\":11687,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":-1788,\"yaxis\":-888.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"e96638472c9b\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":-1616.09,\"y\":921.52},\"endPoint\":{\"x\":-1616.09,\"y\":1115.51},\"name\":11688,\"isStrLine\":true},{\"startPoint\":{\"x\":-1616.09,\"y\":1115.51},\"endPoint\":{\"x\":-1639.09,\"y\":1115.51},\"name\":11689,\"isStrLine\":true},{\"startPoint\":{\"x\":-1639.09,\"y\":1115.51},\"endPoint\":{\"x\":-1639.09,\"y\":921.51},\"name\":11690,\"isStrLine\":true},{\"startPoint\":{\"x\":-1639.09,\"y\":921.51},\"endPoint\":{\"x\":-1616.09,\"y\":921.52},\"name\":11691,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":-1786,\"yaxis\":860,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"63dfcb3f7edc\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":-1670.09,\"y\":921.51},\"endPoint\":{\"x\":-1670.08,\"y\":1115.52},\"name\":11692,\"isStrLine\":true},{\"startPoint\":{\"x\":-1670.08,\"y\":1115.52},\"endPoint\":{\"x\":-1693.09,\"y\":1115.52},\"name\":11693,\"isStrLine\":true},{\"startPoint\":{\"x\":-1693.09,\"y\":1115.52},\"endPoint\":{\"x\":-1693.09,\"y\":921.51},\"name\":11694,\"isStrLine\":true},{\"startPoint\":{\"x\":-1693.09,\"y\":921.51},\"endPoint\":{\"x\":-1670.09,\"y\":921.51},\"name\":11695,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":-1786,\"yaxis\":914,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"2bb084bcbfa0\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":-1722.08,\"y\":921.52},\"endPoint\":{\"x\":-1722.09,\"y\":1115.52},\"name\":11696,\"isStrLine\":true},{\"startPoint\":{\"x\":-1722.09,\"y\":1115.52},\"endPoint\":{\"x\":-1745.09,\"y\":1115.51},\"name\":11697,\"isStrLine\":true},{\"startPoint\":{\"x\":-1745.09,\"y\":1115.51},\"endPoint\":{\"x\":-1745.09,\"y\":921.52},\"name\":11698,\"isStrLine\":true},{\"startPoint\":{\"x\":-1745.09,\"y\":921.52},\"endPoint\":{\"x\":-1722.08,\"y\":921.52},\"name\":11699,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":-1786,\"yaxis\":966,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"05d5298030ba\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":-1772.08,\"y\":921.52},\"endPoint\":{\"x\":-1772.09,\"y\":1115.52},\"name\":11700,\"isStrLine\":true},{\"startPoint\":{\"x\":-1772.09,\"y\":1115.52},\"endPoint\":{\"x\":-1795.08,\"y\":1115.53},\"name\":11701,\"isStrLine\":true},{\"startPoint\":{\"x\":-1795.08,\"y\":1115.53},\"endPoint\":{\"x\":-1795.08,\"y\":921.52},\"name\":11702,\"isStrLine\":true},{\"startPoint\":{\"x\":-1795.08,\"y\":921.52},\"endPoint\":{\"x\":-1772.08,\"y\":921.52},\"name\":11703,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":-1786,\"yaxis\":1016,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"9cadfff8589d\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":-1827.09,\"y\":921.51},\"endPoint\":{\"x\":-1827.09,\"y\":1115.51},\"name\":11704,\"isStrLine\":true},{\"startPoint\":{\"x\":-1827.09,\"y\":1115.51},\"endPoint\":{\"x\":-1850.09,\"y\":1115.52},\"name\":11705,\"isStrLine\":true},{\"startPoint\":{\"x\":-1850.09,\"y\":1115.52},\"endPoint\":{\"x\":-1850.09,\"y\":921.51},\"name\":11706,\"isStrLine\":true},{\"startPoint\":{\"x\":-1850.09,\"y\":921.51},\"endPoint\":{\"x\":-1827.09,\"y\":921.51},\"name\":11707,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":-1786,\"yaxis\":1071,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"7a2a38b2c4ed\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":-1881.09,\"y\":921.52},\"endPoint\":{\"x\":-1881.08,\"y\":1115.52},\"name\":11708,\"isStrLine\":true},{\"startPoint\":{\"x\":-1881.08,\"y\":1115.52},\"endPoint\":{\"x\":-1904.08,\"y\":1115.52},\"name\":11709,\"isStrLine\":true},{\"startPoint\":{\"x\":-1904.08,\"y\":1115.52},\"endPoint\":{\"x\":-1904.08,\"y\":921.52},\"name\":11710,\"isStrLine\":true},{\"startPoint\":{\"x\":-1904.08,\"y\":921.52},\"endPoint\":{\"x\":-1881.09,\"y\":921.52},\"name\":11711,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":-1786,\"yaxis\":1125,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"cd96ed0e2e9b\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":-1933.09,\"y\":921.52},\"endPoint\":{\"x\":-1933.07,\"y\":1115.51},\"name\":11712,\"isStrLine\":true},{\"startPoint\":{\"x\":-1933.07,\"y\":1115.51},\"endPoint\":{\"x\":-1956.09,\"y\":1115.51},\"name\":11713,\"isStrLine\":true},{\"startPoint\":{\"x\":-1956.09,\"y\":1115.51},\"endPoint\":{\"x\":-1956.09,\"y\":921.51},\"name\":11714,\"isStrLine\":true},{\"startPoint\":{\"x\":-1956.09,\"y\":921.51},\"endPoint\":{\"x\":-1933.09,\"y\":921.52},\"name\":11715,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":-1786,\"yaxis\":1177,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"c1d3b9d86358\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":-1987.09,\"y\":921.51},\"endPoint\":{\"x\":-1987.09,\"y\":1115.51},\"name\":11716,\"isStrLine\":true},{\"startPoint\":{\"x\":-1987.09,\"y\":1115.51},\"endPoint\":{\"x\":-2010.09,\"y\":1115.52},\"name\":11717,\"isStrLine\":true},{\"startPoint\":{\"x\":-2010.09,\"y\":1115.52},\"endPoint\":{\"x\":-2010.09,\"y\":921.52},\"name\":11718,\"isStrLine\":true},{\"startPoint\":{\"x\":-2010.09,\"y\":921.52},\"endPoint\":{\"x\":-1987.09,\"y\":921.51},\"name\":11719,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":-1786,\"yaxis\":1231,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"14db6294bf07\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":-1816.31,\"y\":-951.88},\"endPoint\":{\"x\":-1816.31,\"y\":-839.69},\"name\":11720,\"isStrLine\":true},{\"startPoint\":{\"x\":-1816.31,\"y\":-839.69},\"endPoint\":{\"x\":-1827.53,\"y\":-839.68},\"name\":11721,\"isStrLine\":true},{\"startPoint\":{\"x\":-1827.53,\"y\":-839.68},\"endPoint\":{\"x\":-1827.53,\"y\":-951.88},\"name\":11722,\"isStrLine\":true},{\"startPoint\":{\"x\":-1827.53,\"y\":-951.88},\"endPoint\":{\"x\":-1816.31,\"y\":-951.88},\"name\":11723,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":-1769.5,\"yaxis\":-1199.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"ea0f91f760a9\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":-1816.31,\"y\":-773.55},\"endPoint\":{\"x\":-1816.31,\"y\":-661.35},\"name\":11724,\"isStrLine\":true},{\"startPoint\":{\"x\":-1816.31,\"y\":-661.35},\"endPoint\":{\"x\":-1827.53,\"y\":-661.34},\"name\":11725,\"isStrLine\":true},{\"startPoint\":{\"x\":-1827.53,\"y\":-661.34},\"endPoint\":{\"x\":-1827.53,\"y\":-773.55},\"name\":11726,\"isStrLine\":true},{\"startPoint\":{\"x\":-1827.53,\"y\":-773.55},\"endPoint\":{\"x\":-1816.31,\"y\":-773.55},\"name\":11727,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":-1769.5,\"yaxis\":-897.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"904e80eb25f3\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":-1816.31,\"y\":-607.62},\"endPoint\":{\"x\":-1816.31,\"y\":-495.43},\"name\":11728,\"isStrLine\":true},{\"startPoint\":{\"x\":-1816.31,\"y\":-495.43},\"endPoint\":{\"x\":-1827.53,\"y\":-495.42},\"name\":11729,\"isStrLine\":true},{\"startPoint\":{\"x\":-1827.53,\"y\":-495.42},\"endPoint\":{\"x\":-1827.53,\"y\":-607.62},\"name\":11730,\"isStrLine\":true},{\"startPoint\":{\"x\":-1827.53,\"y\":-607.62},\"endPoint\":{\"x\":-1816.31,\"y\":-607.62},\"name\":11731,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":-1769.5,\"yaxis\":-616.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"612d95a298fe\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":-1816.31,\"y\":-438.75},\"endPoint\":{\"x\":-1816.31,\"y\":-326.55},\"name\":11732,\"isStrLine\":true},{\"startPoint\":{\"x\":-1816.31,\"y\":-326.55},\"endPoint\":{\"x\":-1827.53,\"y\":-326.54},\"name\":11733,\"isStrLine\":true},{\"startPoint\":{\"x\":-1827.53,\"y\":-326.54},\"endPoint\":{\"x\":-1827.53,\"y\":-438.75},\"name\":11734,\"isStrLine\":true},{\"startPoint\":{\"x\":-1827.53,\"y\":-438.75},\"endPoint\":{\"x\":-1816.31,\"y\":-438.75},\"name\":11735,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":-1769.5,\"yaxis\":-330.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"d76a7101c9bb\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":-1816.31,\"y\":241.63},\"endPoint\":{\"x\":-1816.31,\"y\":353.82},\"name\":11736,\"isStrLine\":true},{\"startPoint\":{\"x\":-1816.31,\"y\":353.82},\"endPoint\":{\"x\":-1827.53,\"y\":353.82},\"name\":11737,\"isStrLine\":true},{\"startPoint\":{\"x\":-1827.53,\"y\":353.82},\"endPoint\":{\"x\":-1827.53,\"y\":241.63},\"name\":11738,\"isStrLine\":true},{\"startPoint\":{\"x\":-1827.53,\"y\":241.63},\"endPoint\":{\"x\":-1816.31,\"y\":241.63},\"name\":11739,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":-1769.5,\"yaxis\":587.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"ada5a6649cc4\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":-1816.31,\"y\":412.87},\"endPoint\":{\"x\":-1816.31,\"y\":525.06},\"name\":11740,\"isStrLine\":true},{\"startPoint\":{\"x\":-1816.31,\"y\":525.06},\"endPoint\":{\"x\":-1827.53,\"y\":525.07},\"name\":11741,\"isStrLine\":true},{\"startPoint\":{\"x\":-1827.53,\"y\":525.07},\"endPoint\":{\"x\":-1827.53,\"y\":412.87},\"name\":11742,\"isStrLine\":true},{\"startPoint\":{\"x\":-1827.53,\"y\":412.87},\"endPoint\":{\"x\":-1816.31,\"y\":412.87},\"name\":11743,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":-1769.5,\"yaxis\":877.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"ee2f707e8feb\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":-1816.31,\"y\":595.63},\"endPoint\":{\"x\":-1816.31,\"y\":707.82},\"name\":11744,\"isStrLine\":true},{\"startPoint\":{\"x\":-1816.31,\"y\":707.82},\"endPoint\":{\"x\":-1827.53,\"y\":707.82},\"name\":11745,\"isStrLine\":true},{\"startPoint\":{\"x\":-1827.53,\"y\":707.82},\"endPoint\":{\"x\":-1827.53,\"y\":595.63},\"name\":11746,\"isStrLine\":true},{\"startPoint\":{\"x\":-1827.53,\"y\":595.63},\"endPoint\":{\"x\":-1816.31,\"y\":595.63},\"name\":11747,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":-1769.5,\"yaxis\":941.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"e2d4c110b574\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":-1816.31,\"y\":766.87},\"endPoint\":{\"x\":-1816.31,\"y\":879.06},\"name\":11748,\"isStrLine\":true},{\"startPoint\":{\"x\":-1816.31,\"y\":879.06},\"endPoint\":{\"x\":-1827.53,\"y\":879.07},\"name\":11749,\"isStrLine\":true},{\"startPoint\":{\"x\":-1827.53,\"y\":879.07},\"endPoint\":{\"x\":-1827.53,\"y\":766.87},\"name\":11750,\"isStrLine\":true},{\"startPoint\":{\"x\":-1827.53,\"y\":766.87},\"endPoint\":{\"x\":-1816.31,\"y\":766.87},\"name\":11751,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":-1769.5,\"yaxis\":1231.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"b25ed269f86e\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":2055.69,\"y\":-926.88},\"endPoint\":{\"x\":2055.69,\"y\":-814.69},\"name\":11752,\"isStrLine\":true},{\"startPoint\":{\"x\":2055.69,\"y\":-814.69},\"endPoint\":{\"x\":2044.47,\"y\":-814.68},\"name\":11753,\"isStrLine\":true},{\"startPoint\":{\"x\":2044.47,\"y\":-814.68},\"endPoint\":{\"x\":2044.47,\"y\":-926.88},\"name\":11754,\"isStrLine\":true},{\"startPoint\":{\"x\":2044.47,\"y\":-926.88},\"endPoint\":{\"x\":2055.69,\"y\":-926.88},\"name\":11755,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":2102.5,\"yaxis\":-1174.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"acddfbc618a6\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":2055.69,\"y\":-748.55},\"endPoint\":{\"x\":2055.69,\"y\":-636.35},\"name\":11756,\"isStrLine\":true},{\"startPoint\":{\"x\":2055.69,\"y\":-636.35},\"endPoint\":{\"x\":2044.47,\"y\":-636.34},\"name\":11757,\"isStrLine\":true},{\"startPoint\":{\"x\":2044.47,\"y\":-636.34},\"endPoint\":{\"x\":2044.47,\"y\":-748.55},\"name\":11758,\"isStrLine\":true},{\"startPoint\":{\"x\":2044.47,\"y\":-748.55},\"endPoint\":{\"x\":2055.69,\"y\":-748.55},\"name\":11759,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":2102.5,\"yaxis\":-872.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"190405df5c6c\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":2055.69,\"y\":-582.62},\"endPoint\":{\"x\":2055.69,\"y\":-470.43},\"name\":11760,\"isStrLine\":true},{\"startPoint\":{\"x\":2055.69,\"y\":-470.43},\"endPoint\":{\"x\":2044.47,\"y\":-470.42},\"name\":11761,\"isStrLine\":true},{\"startPoint\":{\"x\":2044.47,\"y\":-470.42},\"endPoint\":{\"x\":2044.47,\"y\":-582.62},\"name\":11762,\"isStrLine\":true},{\"startPoint\":{\"x\":2044.47,\"y\":-582.62},\"endPoint\":{\"x\":2055.69,\"y\":-582.62},\"name\":11763,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":2102.5,\"yaxis\":-591.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"0a9c171a3de8\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":2055.69,\"y\":-413.75},\"endPoint\":{\"x\":2055.69,\"y\":-301.55},\"name\":11764,\"isStrLine\":true},{\"startPoint\":{\"x\":2055.69,\"y\":-301.55},\"endPoint\":{\"x\":2044.47,\"y\":-301.54},\"name\":11765,\"isStrLine\":true},{\"startPoint\":{\"x\":2044.47,\"y\":-301.54},\"endPoint\":{\"x\":2044.47,\"y\":-413.75},\"name\":11766,\"isStrLine\":true},{\"startPoint\":{\"x\":2044.47,\"y\":-413.75},\"endPoint\":{\"x\":2055.69,\"y\":-413.75},\"name\":11767,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":2102.5,\"yaxis\":-305.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"7bff8089ee39\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":2055.69,\"y\":266.63},\"endPoint\":{\"x\":2055.69,\"y\":378.82},\"name\":11768,\"isStrLine\":true},{\"startPoint\":{\"x\":2055.69,\"y\":378.82},\"endPoint\":{\"x\":2044.47,\"y\":378.82},\"name\":11769,\"isStrLine\":true},{\"startPoint\":{\"x\":2044.47,\"y\":378.82},\"endPoint\":{\"x\":2044.47,\"y\":266.63},\"name\":11770,\"isStrLine\":true},{\"startPoint\":{\"x\":2044.47,\"y\":266.63},\"endPoint\":{\"x\":2055.69,\"y\":266.63},\"name\":11771,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":2102.5,\"yaxis\":612.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"9ecdd9c7f701\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":2055.69,\"y\":437.87},\"endPoint\":{\"x\":2055.69,\"y\":550.06},\"name\":11772,\"isStrLine\":true},{\"startPoint\":{\"x\":2055.69,\"y\":550.06},\"endPoint\":{\"x\":2044.47,\"y\":550.07},\"name\":11773,\"isStrLine\":true},{\"startPoint\":{\"x\":2044.47,\"y\":550.07},\"endPoint\":{\"x\":2044.47,\"y\":437.87},\"name\":11774,\"isStrLine\":true},{\"startPoint\":{\"x\":2044.47,\"y\":437.87},\"endPoint\":{\"x\":2055.69,\"y\":437.87},\"name\":11775,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":2102.5,\"yaxis\":902.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"0e86d721be49\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":2055.69,\"y\":620.63},\"endPoint\":{\"x\":2055.69,\"y\":732.82},\"name\":11776,\"isStrLine\":true},{\"startPoint\":{\"x\":2055.69,\"y\":732.82},\"endPoint\":{\"x\":2044.47,\"y\":732.82},\"name\":11777,\"isStrLine\":true},{\"startPoint\":{\"x\":2044.47,\"y\":732.82},\"endPoint\":{\"x\":2044.47,\"y\":620.63},\"name\":11778,\"isStrLine\":true},{\"startPoint\":{\"x\":2044.47,\"y\":620.63},\"endPoint\":{\"x\":2055.69,\"y\":620.63},\"name\":11779,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":2102.5,\"yaxis\":966.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"0062e2565627\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":2055.69,\"y\":791.87},\"endPoint\":{\"x\":2055.69,\"y\":904.06},\"name\":11780,\"isStrLine\":true},{\"startPoint\":{\"x\":2055.69,\"y\":904.06},\"endPoint\":{\"x\":2044.47,\"y\":904.07},\"name\":11781,\"isStrLine\":true},{\"startPoint\":{\"x\":2044.47,\"y\":904.07},\"endPoint\":{\"x\":2044.47,\"y\":791.87},\"name\":11782,\"isStrLine\":true},{\"startPoint\":{\"x\":2044.47,\"y\":791.87},\"endPoint\":{\"x\":2055.69,\"y\":791.87},\"name\":11783,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":2102.5,\"yaxis\":1256.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"bbe1c0d30e40\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":2276.91,\"y\":959.51},\"endPoint\":{\"x\":2276.92,\"y\":1153.52},\"name\":11784,\"isStrLine\":true},{\"startPoint\":{\"x\":2276.92,\"y\":1153.52},\"endPoint\":{\"x\":2253.91,\"y\":1153.53},\"name\":11785,\"isStrLine\":true},{\"startPoint\":{\"x\":2253.91,\"y\":1153.53},\"endPoint\":{\"x\":2253.91,\"y\":959.52},\"name\":11786,\"isStrLine\":true},{\"startPoint\":{\"x\":2253.91,\"y\":959.52},\"endPoint\":{\"x\":2276.91,\"y\":959.51},\"name\":11787,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":2052,\"yaxis\":843,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"25ef6bfe18f4\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":2221.91,\"y\":959.52},\"endPoint\":{\"x\":2221.91,\"y\":1153.51},\"name\":11788,\"isStrLine\":true},{\"startPoint\":{\"x\":2221.91,\"y\":1153.51},\"endPoint\":{\"x\":2198.91,\"y\":1153.51},\"name\":11789,\"isStrLine\":true},{\"startPoint\":{\"x\":2198.91,\"y\":1153.51},\"endPoint\":{\"x\":2198.91,\"y\":959.51},\"name\":11790,\"isStrLine\":true},{\"startPoint\":{\"x\":2198.91,\"y\":959.51},\"endPoint\":{\"x\":2221.91,\"y\":959.52},\"name\":11791,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":2052,\"yaxis\":898,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"6efba55b17c2\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":2167.91,\"y\":959.51},\"endPoint\":{\"x\":2167.92,\"y\":1153.52},\"name\":11792,\"isStrLine\":true},{\"startPoint\":{\"x\":2167.92,\"y\":1153.52},\"endPoint\":{\"x\":2144.91,\"y\":1153.52},\"name\":11793,\"isStrLine\":true},{\"startPoint\":{\"x\":2144.91,\"y\":1153.52},\"endPoint\":{\"x\":2144.91,\"y\":959.51},\"name\":11794,\"isStrLine\":true},{\"startPoint\":{\"x\":2144.91,\"y\":959.51},\"endPoint\":{\"x\":2167.91,\"y\":959.51},\"name\":11795,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":2052,\"yaxis\":952,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"d1d82fb6da32\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":2115.92,\"y\":959.52},\"endPoint\":{\"x\":2115.91,\"y\":1153.52},\"name\":11796,\"isStrLine\":true},{\"startPoint\":{\"x\":2115.91,\"y\":1153.52},\"endPoint\":{\"x\":2092.91,\"y\":1153.51},\"name\":11797,\"isStrLine\":true},{\"startPoint\":{\"x\":2092.91,\"y\":1153.51},\"endPoint\":{\"x\":2092.91,\"y\":959.52},\"name\":11798,\"isStrLine\":true},{\"startPoint\":{\"x\":2092.91,\"y\":959.52},\"endPoint\":{\"x\":2115.92,\"y\":959.52},\"name\":11799,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":2052,\"yaxis\":1004,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"1e327de847f8\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":2065.92,\"y\":959.52},\"endPoint\":{\"x\":2065.91,\"y\":1153.52},\"name\":11800,\"isStrLine\":true},{\"startPoint\":{\"x\":2065.91,\"y\":1153.52},\"endPoint\":{\"x\":2042.92,\"y\":1153.53},\"name\":11801,\"isStrLine\":true},{\"startPoint\":{\"x\":2042.92,\"y\":1153.53},\"endPoint\":{\"x\":2042.92,\"y\":959.52},\"name\":11802,\"isStrLine\":true},{\"startPoint\":{\"x\":2042.92,\"y\":959.52},\"endPoint\":{\"x\":2065.92,\"y\":959.52},\"name\":11803,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":2052,\"yaxis\":1054,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"3064fc383708\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":2010.91,\"y\":959.51},\"endPoint\":{\"x\":2010.91,\"y\":1153.51},\"name\":11804,\"isStrLine\":true},{\"startPoint\":{\"x\":2010.91,\"y\":1153.51},\"endPoint\":{\"x\":1987.91,\"y\":1153.52},\"name\":11805,\"isStrLine\":true},{\"startPoint\":{\"x\":1987.91,\"y\":1153.52},\"endPoint\":{\"x\":1987.91,\"y\":959.51},\"name\":11806,\"isStrLine\":true},{\"startPoint\":{\"x\":1987.91,\"y\":959.51},\"endPoint\":{\"x\":2010.91,\"y\":959.51},\"name\":11807,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":2052,\"yaxis\":1109,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"dad865f95bbf\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":1956.91,\"y\":959.52},\"endPoint\":{\"x\":1956.92,\"y\":1153.52},\"name\":11808,\"isStrLine\":true},{\"startPoint\":{\"x\":1956.92,\"y\":1153.52},\"endPoint\":{\"x\":1933.92,\"y\":1153.52},\"name\":11809,\"isStrLine\":true},{\"startPoint\":{\"x\":1933.92,\"y\":1153.52},\"endPoint\":{\"x\":1933.92,\"y\":959.52},\"name\":11810,\"isStrLine\":true},{\"startPoint\":{\"x\":1933.92,\"y\":959.52},\"endPoint\":{\"x\":1956.91,\"y\":959.52},\"name\":11811,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":2052,\"yaxis\":1163,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"b93818d6269e\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":1904.91,\"y\":959.52},\"endPoint\":{\"x\":1904.93,\"y\":1153.51},\"name\":11812,\"isStrLine\":true},{\"startPoint\":{\"x\":1904.93,\"y\":1153.51},\"endPoint\":{\"x\":1881.91,\"y\":1153.51},\"name\":11813,\"isStrLine\":true},{\"startPoint\":{\"x\":1881.91,\"y\":1153.51},\"endPoint\":{\"x\":1881.91,\"y\":959.51},\"name\":11814,\"isStrLine\":true},{\"startPoint\":{\"x\":1881.91,\"y\":959.51},\"endPoint\":{\"x\":1904.91,\"y\":959.52},\"name\":11815,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":2052,\"yaxis\":1215,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"2df85cc77b0a\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":1850.91,\"y\":959.51},\"endPoint\":{\"x\":1850.91,\"y\":1153.51},\"name\":11816,\"isStrLine\":true},{\"startPoint\":{\"x\":1850.91,\"y\":1153.51},\"endPoint\":{\"x\":1827.91,\"y\":1153.52},\"name\":11817,\"isStrLine\":true},{\"startPoint\":{\"x\":1827.91,\"y\":1153.52},\"endPoint\":{\"x\":1827.91,\"y\":959.52},\"name\":11818,\"isStrLine\":true},{\"startPoint\":{\"x\":1827.91,\"y\":959.52},\"endPoint\":{\"x\":1850.91,\"y\":959.51},\"name\":11819,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":2052,\"yaxis\":1269,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"28b2ac6516fd\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":-2477,\"y\":-1600},\"endPoint\":{\"x\":1440,\"y\":-1600},\"name\":11820,\"isStrLine\":true},{\"startPoint\":{\"x\":1440,\"y\":-1600},\"endPoint\":{\"x\":1440,\"y\":-1585},\"name\":11821,\"isStrLine\":true},{\"startPoint\":{\"x\":1440,\"y\":-1585},\"endPoint\":{\"x\":-2477,\"y\":-1585},\"name\":11822,\"isStrLine\":true},{\"startPoint\":{\"x\":-2477,\"y\":-1585},\"endPoint\":{\"x\":-2477,\"y\":-1600},\"name\":11823,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":-518.5,\"yaxis\":-1592.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":181,\"map\":\"\"},{\"id\":\"64384acc397b\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":-1457,\"y\":1464},\"endPoint\":{\"x\":1749,\"y\":1464},\"name\":11824,\"isStrLine\":true},{\"startPoint\":{\"x\":1749,\"y\":1464},\"endPoint\":{\"x\":1749,\"y\":1479},\"name\":11825,\"isStrLine\":true},{\"startPoint\":{\"x\":1749,\"y\":1479},\"endPoint\":{\"x\":-1457,\"y\":1479},\"name\":11826,\"isStrLine\":true},{\"startPoint\":{\"x\":-1457,\"y\":1479},\"endPoint\":{\"x\":-1457,\"y\":1464},\"name\":11827,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":146,\"yaxis\":1471.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":148,\"map\":\"\"},{\"id\":\"67be6257c095\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":-1608.59,\"y\":1726.52},\"endPoint\":{\"x\":-1608.59,\"y\":1920.51},\"name\":11828,\"isStrLine\":true},{\"startPoint\":{\"x\":-1608.59,\"y\":1920.51},\"endPoint\":{\"x\":-1631.59,\"y\":1920.51},\"name\":11829,\"isStrLine\":true},{\"startPoint\":{\"x\":-1631.59,\"y\":1920.51},\"endPoint\":{\"x\":-1631.59,\"y\":1726.51},\"name\":11830,\"isStrLine\":true},{\"startPoint\":{\"x\":-1631.59,\"y\":1726.51},\"endPoint\":{\"x\":-1608.59,\"y\":1726.52},\"name\":11831,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":-1778.5,\"yaxis\":1665,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"a674c457d0c2\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":-1662.59,\"y\":1726.51},\"endPoint\":{\"x\":-1662.58,\"y\":1920.52},\"name\":11832,\"isStrLine\":true},{\"startPoint\":{\"x\":-1662.58,\"y\":1920.52},\"endPoint\":{\"x\":-1685.59,\"y\":1920.52},\"name\":11833,\"isStrLine\":true},{\"startPoint\":{\"x\":-1685.59,\"y\":1920.52},\"endPoint\":{\"x\":-1685.59,\"y\":1726.51},\"name\":11834,\"isStrLine\":true},{\"startPoint\":{\"x\":-1685.59,\"y\":1726.51},\"endPoint\":{\"x\":-1662.59,\"y\":1726.51},\"name\":11835,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":-1778.5,\"yaxis\":1719,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"42afa479d771\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":-1714.58,\"y\":1726.52},\"endPoint\":{\"x\":-1714.59,\"y\":1920.52},\"name\":11836,\"isStrLine\":true},{\"startPoint\":{\"x\":-1714.59,\"y\":1920.52},\"endPoint\":{\"x\":-1737.59,\"y\":1920.51},\"name\":11837,\"isStrLine\":true},{\"startPoint\":{\"x\":-1737.59,\"y\":1920.51},\"endPoint\":{\"x\":-1737.59,\"y\":1726.52},\"name\":11838,\"isStrLine\":true},{\"startPoint\":{\"x\":-1737.59,\"y\":1726.52},\"endPoint\":{\"x\":-1714.58,\"y\":1726.52},\"name\":11839,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":-1778.5,\"yaxis\":1771,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"e542623a5403\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":-1764.58,\"y\":1726.52},\"endPoint\":{\"x\":-1764.59,\"y\":1920.52},\"name\":11840,\"isStrLine\":true},{\"startPoint\":{\"x\":-1764.59,\"y\":1920.52},\"endPoint\":{\"x\":-1787.58,\"y\":1920.53},\"name\":11841,\"isStrLine\":true},{\"startPoint\":{\"x\":-1787.58,\"y\":1920.53},\"endPoint\":{\"x\":-1787.58,\"y\":1726.52},\"name\":11842,\"isStrLine\":true},{\"startPoint\":{\"x\":-1787.58,\"y\":1726.52},\"endPoint\":{\"x\":-1764.58,\"y\":1726.52},\"name\":11843,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":-1778.5,\"yaxis\":1821,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"812dbfee4547\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":-1819.59,\"y\":1726.51},\"endPoint\":{\"x\":-1819.59,\"y\":1920.51},\"name\":11844,\"isStrLine\":true},{\"startPoint\":{\"x\":-1819.59,\"y\":1920.51},\"endPoint\":{\"x\":-1842.59,\"y\":1920.52},\"name\":11845,\"isStrLine\":true},{\"startPoint\":{\"x\":-1842.59,\"y\":1920.52},\"endPoint\":{\"x\":-1842.59,\"y\":1726.51},\"name\":11846,\"isStrLine\":true},{\"startPoint\":{\"x\":-1842.59,\"y\":1726.51},\"endPoint\":{\"x\":-1819.59,\"y\":1726.51},\"name\":11847,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":-1778.5,\"yaxis\":1876,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"1af43bd0ef31\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":-1873.59,\"y\":1726.52},\"endPoint\":{\"x\":-1873.58,\"y\":1920.52},\"name\":11848,\"isStrLine\":true},{\"startPoint\":{\"x\":-1873.58,\"y\":1920.52},\"endPoint\":{\"x\":-1896.58,\"y\":1920.52},\"name\":11849,\"isStrLine\":true},{\"startPoint\":{\"x\":-1896.58,\"y\":1920.52},\"endPoint\":{\"x\":-1896.58,\"y\":1726.52},\"name\":11850,\"isStrLine\":true},{\"startPoint\":{\"x\":-1896.58,\"y\":1726.52},\"endPoint\":{\"x\":-1873.59,\"y\":1726.52},\"name\":11851,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":-1778.5,\"yaxis\":1930,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"379f6fe9e165\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":-1925.59,\"y\":1726.52},\"endPoint\":{\"x\":-1925.57,\"y\":1920.51},\"name\":11852,\"isStrLine\":true},{\"startPoint\":{\"x\":-1925.57,\"y\":1920.51},\"endPoint\":{\"x\":-1948.59,\"y\":1920.51},\"name\":11853,\"isStrLine\":true},{\"startPoint\":{\"x\":-1948.59,\"y\":1920.51},\"endPoint\":{\"x\":-1948.59,\"y\":1726.51},\"name\":11854,\"isStrLine\":true},{\"startPoint\":{\"x\":-1948.59,\"y\":1726.51},\"endPoint\":{\"x\":-1925.59,\"y\":1726.52},\"name\":11855,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":-1778.5,\"yaxis\":1982,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"30b051a93c68\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":-1979.59,\"y\":1726.51},\"endPoint\":{\"x\":-1979.59,\"y\":1920.51},\"name\":11856,\"isStrLine\":true},{\"startPoint\":{\"x\":-1979.59,\"y\":1920.51},\"endPoint\":{\"x\":-2002.59,\"y\":1920.52},\"name\":11857,\"isStrLine\":true},{\"startPoint\":{\"x\":-2002.59,\"y\":1920.52},\"endPoint\":{\"x\":-2002.59,\"y\":1726.52},\"name\":11858,\"isStrLine\":true},{\"startPoint\":{\"x\":-2002.59,\"y\":1726.52},\"endPoint\":{\"x\":-1979.59,\"y\":1726.51},\"name\":11859,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":-1778.5,\"yaxis\":2036,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"c8b09d9308ef\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":2284.41,\"y\":1764.51},\"endPoint\":{\"x\":2284.42,\"y\":1958.52},\"name\":11860,\"isStrLine\":true},{\"startPoint\":{\"x\":2284.42,\"y\":1958.52},\"endPoint\":{\"x\":2261.41,\"y\":1958.53},\"name\":11861,\"isStrLine\":true},{\"startPoint\":{\"x\":2261.41,\"y\":1958.53},\"endPoint\":{\"x\":2261.41,\"y\":1764.52},\"name\":11862,\"isStrLine\":true},{\"startPoint\":{\"x\":2261.41,\"y\":1764.52},\"endPoint\":{\"x\":2284.41,\"y\":1764.51},\"name\":11863,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":2059.5,\"yaxis\":1648,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"8985b6697f8d\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":2229.41,\"y\":1764.52},\"endPoint\":{\"x\":2229.41,\"y\":1958.51},\"name\":11864,\"isStrLine\":true},{\"startPoint\":{\"x\":2229.41,\"y\":1958.51},\"endPoint\":{\"x\":2206.41,\"y\":1958.51},\"name\":11865,\"isStrLine\":true},{\"startPoint\":{\"x\":2206.41,\"y\":1958.51},\"endPoint\":{\"x\":2206.41,\"y\":1764.51},\"name\":11866,\"isStrLine\":true},{\"startPoint\":{\"x\":2206.41,\"y\":1764.51},\"endPoint\":{\"x\":2229.41,\"y\":1764.52},\"name\":11867,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":2059.5,\"yaxis\":1703,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"f9be6fd590a6\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":2175.41,\"y\":1764.51},\"endPoint\":{\"x\":2175.42,\"y\":1958.52},\"name\":11868,\"isStrLine\":true},{\"startPoint\":{\"x\":2175.42,\"y\":1958.52},\"endPoint\":{\"x\":2152.41,\"y\":1958.52},\"name\":11869,\"isStrLine\":true},{\"startPoint\":{\"x\":2152.41,\"y\":1958.52},\"endPoint\":{\"x\":2152.41,\"y\":1764.51},\"name\":11870,\"isStrLine\":true},{\"startPoint\":{\"x\":2152.41,\"y\":1764.51},\"endPoint\":{\"x\":2175.41,\"y\":1764.51},\"name\":11871,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":2059.5,\"yaxis\":1757,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"a0bae5b256a6\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":2123.42,\"y\":1764.52},\"endPoint\":{\"x\":2123.41,\"y\":1958.52},\"name\":11872,\"isStrLine\":true},{\"startPoint\":{\"x\":2123.41,\"y\":1958.52},\"endPoint\":{\"x\":2100.41,\"y\":1958.51},\"name\":11873,\"isStrLine\":true},{\"startPoint\":{\"x\":2100.41,\"y\":1958.51},\"endPoint\":{\"x\":2100.41,\"y\":1764.52},\"name\":11874,\"isStrLine\":true},{\"startPoint\":{\"x\":2100.41,\"y\":1764.52},\"endPoint\":{\"x\":2123.42,\"y\":1764.52},\"name\":11875,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":2059.5,\"yaxis\":1809,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"57109b844b4f\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":2073.42,\"y\":1764.52},\"endPoint\":{\"x\":2073.41,\"y\":1958.52},\"name\":11876,\"isStrLine\":true},{\"startPoint\":{\"x\":2073.41,\"y\":1958.52},\"endPoint\":{\"x\":2050.42,\"y\":1958.53},\"name\":11877,\"isStrLine\":true},{\"startPoint\":{\"x\":2050.42,\"y\":1958.53},\"endPoint\":{\"x\":2050.42,\"y\":1764.52},\"name\":11878,\"isStrLine\":true},{\"startPoint\":{\"x\":2050.42,\"y\":1764.52},\"endPoint\":{\"x\":2073.42,\"y\":1764.52},\"name\":11879,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":2059.5,\"yaxis\":1859,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"7253a0f788bb\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":2018.41,\"y\":1764.51},\"endPoint\":{\"x\":2018.41,\"y\":1958.51},\"name\":11880,\"isStrLine\":true},{\"startPoint\":{\"x\":2018.41,\"y\":1958.51},\"endPoint\":{\"x\":1995.41,\"y\":1958.52},\"name\":11881,\"isStrLine\":true},{\"startPoint\":{\"x\":1995.41,\"y\":1958.52},\"endPoint\":{\"x\":1995.41,\"y\":1764.51},\"name\":11882,\"isStrLine\":true},{\"startPoint\":{\"x\":1995.41,\"y\":1764.51},\"endPoint\":{\"x\":2018.41,\"y\":1764.51},\"name\":11883,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":2059.5,\"yaxis\":1914,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"107fc6a4d2c5\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":1964.41,\"y\":1764.52},\"endPoint\":{\"x\":1964.42,\"y\":1958.52},\"name\":11884,\"isStrLine\":true},{\"startPoint\":{\"x\":1964.42,\"y\":1958.52},\"endPoint\":{\"x\":1941.42,\"y\":1958.52},\"name\":11885,\"isStrLine\":true},{\"startPoint\":{\"x\":1941.42,\"y\":1958.52},\"endPoint\":{\"x\":1941.42,\"y\":1764.52},\"name\":11886,\"isStrLine\":true},{\"startPoint\":{\"x\":1941.42,\"y\":1764.52},\"endPoint\":{\"x\":1964.41,\"y\":1764.52},\"name\":11887,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":2059.5,\"yaxis\":1968,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"d2f814ea5d68\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":1912.41,\"y\":1764.52},\"endPoint\":{\"x\":1912.43,\"y\":1958.51},\"name\":11888,\"isStrLine\":true},{\"startPoint\":{\"x\":1912.43,\"y\":1958.51},\"endPoint\":{\"x\":1889.41,\"y\":1958.51},\"name\":11889,\"isStrLine\":true},{\"startPoint\":{\"x\":1889.41,\"y\":1958.51},\"endPoint\":{\"x\":1889.41,\"y\":1764.51},\"name\":11890,\"isStrLine\":true},{\"startPoint\":{\"x\":1889.41,\"y\":1764.51},\"endPoint\":{\"x\":1912.41,\"y\":1764.52},\"name\":11891,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":2059.5,\"yaxis\":2020,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"bdf925ea457e\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":1858.41,\"y\":1764.51},\"endPoint\":{\"x\":1858.41,\"y\":1958.51},\"name\":11892,\"isStrLine\":true},{\"startPoint\":{\"x\":1858.41,\"y\":1958.51},\"endPoint\":{\"x\":1835.41,\"y\":1958.52},\"name\":11893,\"isStrLine\":true},{\"startPoint\":{\"x\":1835.41,\"y\":1958.52},\"endPoint\":{\"x\":1835.41,\"y\":1764.52},\"name\":11894,\"isStrLine\":true},{\"startPoint\":{\"x\":1835.41,\"y\":1764.52},\"endPoint\":{\"x\":1858.41,\"y\":1764.51},\"name\":11895,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":0,\"xaxis\":2059.5,\"yaxis\":2074,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":14,\"map\":\"\"},{\"id\":\"34abcdfd179d\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":31,\"y\":74},\"endPoint\":{\"x\":456,\"y\":-136},\"name\":11896,\"isStrLine\":true},{\"startPoint\":{\"x\":456,\"y\":-136},\"endPoint\":{\"x\":483,\"y\":-76},\"name\":11897,\"isStrLine\":true},{\"startPoint\":{\"x\":483,\"y\":-76},\"endPoint\":{\"x\":468,\"y\":273},\"name\":11898,\"isStrLine\":true},{\"startPoint\":{\"x\":468,\"y\":273},\"endPoint\":{\"x\":451,\"y\":359},\"name\":11899,\"isStrLine\":false,\"ctrlPoint1\":{\"x\":469,\"y\":302},\"ctrlPoint2\":{\"x\":462,\"y\":337}},{\"startPoint\":{\"x\":451,\"y\":359},\"endPoint\":{\"x\":314,\"y\":513},\"name\":11900,\"isStrLine\":true},{\"startPoint\":{\"x\":314,\"y\":513},\"endPoint\":{\"x\":31,\"y\":74},\"name\":11901,\"isStrLine\":true}],\"entColor\":\"#f2f2f2\",\"borderColor\":\"#e3e3e3\",\"toHeight\":100,\"alphaModle\":100,\"site\":-100,\"xaxis\":304,\"yaxis\":91,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":512,\"map\":\"\"},{\"id\":\"d2f264fd45dd\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":315.45,\"y\":-349.22},\"endPoint\":{\"x\":338.61,\"y\":-361.03},\"name\":11902,\"isStrLine\":true},{\"startPoint\":{\"x\":338.61,\"y\":-361.03},\"endPoint\":{\"x\":456,\"y\":-137},\"name\":11903,\"isStrLine\":true},{\"startPoint\":{\"x\":456,\"y\":-137},\"endPoint\":{\"x\":433,\"y\":-124},\"name\":11904,\"isStrLine\":true},{\"startPoint\":{\"x\":433,\"y\":-124},\"endPoint\":{\"x\":315.45,\"y\":-349.22},\"name\":11905,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#c7c7c7\",\"toHeight\":5,\"alphaModle\":100,\"site\":-5,\"xaxis\":389,\"yaxis\":-233.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":20,\"map\":\"\"},{\"id\":\"3e7ef404c788\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":290,\"y\":-338},\"endPoint\":{\"x\":314.61,\"y\":-349.03},\"name\":11906,\"isStrLine\":true},{\"startPoint\":{\"x\":314.61,\"y\":-349.03},\"endPoint\":{\"x\":432,\"y\":-125},\"name\":11907,\"isStrLine\":true},{\"startPoint\":{\"x\":432,\"y\":-125},\"endPoint\":{\"x\":409,\"y\":-112},\"name\":11908,\"isStrLine\":true},{\"startPoint\":{\"x\":409,\"y\":-112},\"endPoint\":{\"x\":290,\"y\":-338},\"name\":11909,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#c7c7c7\",\"toHeight\":5,\"alphaModle\":100,\"site\":-10,\"xaxis\":365,\"yaxis\":-221.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":21,\"map\":\"\"},{\"id\":\"5a82eae399b6\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":203,\"y\":-299},\"endPoint\":{\"x\":266.61,\"y\":-326.03},\"name\":11910,\"isStrLine\":true},{\"startPoint\":{\"x\":266.61,\"y\":-326.03},\"endPoint\":{\"x\":384,\"y\":-102},\"name\":11911,\"isStrLine\":true},{\"startPoint\":{\"x\":384,\"y\":-102},\"endPoint\":{\"x\":324,\"y\":-72},\"name\":11912,\"isStrLine\":true},{\"startPoint\":{\"x\":324,\"y\":-72},\"endPoint\":{\"x\":203,\"y\":-299},\"name\":11913,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#c7c7c7\",\"toHeight\":5,\"alphaModle\":100,\"site\":-20,\"xaxis\":317,\"yaxis\":-198.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":54,\"map\":\"\"},{\"id\":\"dbb6e722d8ed\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":267.45,\"y\":-326.22},\"endPoint\":{\"x\":290.61,\"y\":-338.03},\"name\":11914,\"isStrLine\":true},{\"startPoint\":{\"x\":290.61,\"y\":-338.03},\"endPoint\":{\"x\":408,\"y\":-114},\"name\":11915,\"isStrLine\":true},{\"startPoint\":{\"x\":408,\"y\":-114},\"endPoint\":{\"x\":385,\"y\":-101},\"name\":11916,\"isStrLine\":true},{\"startPoint\":{\"x\":385,\"y\":-101},\"endPoint\":{\"x\":267.45,\"y\":-326.22},\"name\":11917,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#c7c7c7\",\"toHeight\":5,\"alphaModle\":100,\"site\":-15,\"xaxis\":341,\"yaxis\":-210.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":20,\"map\":\"\"},{\"id\":\"ede6be6ae368\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":182.64,\"y\":-285.86},\"endPoint\":{\"x\":205.8,\"y\":-297.67},\"name\":11918,\"isStrLine\":true},{\"startPoint\":{\"x\":205.8,\"y\":-297.67},\"endPoint\":{\"x\":323.19,\"y\":-73.64},\"name\":11919,\"isStrLine\":true},{\"startPoint\":{\"x\":323.19,\"y\":-73.64},\"endPoint\":{\"x\":300.19,\"y\":-60.64},\"name\":11920,\"isStrLine\":true},{\"startPoint\":{\"x\":300.19,\"y\":-60.64},\"endPoint\":{\"x\":182.64,\"y\":-285.86},\"name\":11921,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#c7c7c7\",\"toHeight\":5,\"alphaModle\":100,\"site\":-25,\"xaxis\":256.1428571428567,\"yaxis\":-170.16666666666666,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":20,\"map\":\"\"},{\"id\":\"dbaf37352448\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":157.19,\"y\":-274.64},\"endPoint\":{\"x\":181.8,\"y\":-285.67},\"name\":11922,\"isStrLine\":true},{\"startPoint\":{\"x\":181.8,\"y\":-285.67},\"endPoint\":{\"x\":299.19,\"y\":-61.64},\"name\":11923,\"isStrLine\":true},{\"startPoint\":{\"x\":299.19,\"y\":-61.64},\"endPoint\":{\"x\":276.19,\"y\":-48.64},\"name\":11924,\"isStrLine\":true},{\"startPoint\":{\"x\":276.19,\"y\":-48.64},\"endPoint\":{\"x\":157.19,\"y\":-274.64},\"name\":11925,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#c7c7c7\",\"toHeight\":5,\"alphaModle\":100,\"site\":-30,\"xaxis\":232.14285714285694,\"yaxis\":-158.16666666666666,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":21,\"map\":\"\"},{\"id\":\"36edbd5c5a6a\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":134,\"y\":-263},\"endPoint\":{\"x\":157.8,\"y\":-274.67},\"name\":11926,\"isStrLine\":true},{\"startPoint\":{\"x\":157.8,\"y\":-274.67},\"endPoint\":{\"x\":276.19,\"y\":-48.64},\"name\":11927,\"isStrLine\":true},{\"startPoint\":{\"x\":276.19,\"y\":-48.64},\"endPoint\":{\"x\":252.19,\"y\":-37.64},\"name\":11928,\"isStrLine\":true},{\"startPoint\":{\"x\":252.19,\"y\":-37.64},\"endPoint\":{\"x\":134,\"y\":-263},\"name\":11929,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#c7c7c7\",\"toHeight\":5,\"alphaModle\":100,\"site\":-35,\"xaxis\":208.142857142857,\"yaxis\":-147.16666666666666,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":21,\"map\":\"\"},{\"id\":\"e86dcf721aed\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":83,\"y\":-240},\"endPoint\":{\"x\":134,\"y\":-263},\"name\":11930,\"isStrLine\":true},{\"startPoint\":{\"x\":134,\"y\":-263},\"endPoint\":{\"x\":252.19,\"y\":-37.64},\"name\":11931,\"isStrLine\":true},{\"startPoint\":{\"x\":252.19,\"y\":-37.64},\"endPoint\":{\"x\":202,\"y\":-13},\"name\":11932,\"isStrLine\":true},{\"startPoint\":{\"x\":202,\"y\":-13},\"endPoint\":{\"x\":83,\"y\":-240},\"name\":11933,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#c7c7c7\",\"toHeight\":5,\"alphaModle\":100,\"site\":-40,\"xaxis\":66.142857142857,\"yaxis\":-147.16666666666666,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":44,\"map\":\"\"},{\"id\":\"ed4ddda9ecd0\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":49,\"y\":-240},\"endPoint\":{\"x\":83,\"y\":-240},\"name\":11934,\"isStrLine\":true},{\"startPoint\":{\"x\":83,\"y\":-240},\"endPoint\":{\"x\":202,\"y\":-13},\"name\":11935,\"isStrLine\":true},{\"startPoint\":{\"x\":202,\"y\":-13},\"endPoint\":{\"x\":178,\"y\":0},\"name\":11936,\"isStrLine\":true},{\"startPoint\":{\"x\":178,\"y\":0},\"endPoint\":{\"x\":49,\"y\":-240},\"name\":11937,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#c7c7c7\",\"toHeight\":5,\"alphaModle\":100,\"site\":-45,\"xaxis\":-102.857142857143,\"yaxis\":-147.16666666666666,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":23,\"map\":\"\"},{\"id\":\"ac6ede568005\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":9,\"y\":-240},\"endPoint\":{\"x\":49,\"y\":-240},\"name\":11938,\"isStrLine\":true},{\"startPoint\":{\"x\":49,\"y\":-240},\"endPoint\":{\"x\":178,\"y\":0},\"name\":11939,\"isStrLine\":true},{\"startPoint\":{\"x\":178,\"y\":0},\"endPoint\":{\"x\":148,\"y\":14},\"name\":11940,\"isStrLine\":true},{\"startPoint\":{\"x\":148,\"y\":14},\"endPoint\":{\"x\":9,\"y\":-240},\"name\":11941,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#c7c7c7\",\"toHeight\":5,\"alphaModle\":100,\"site\":-50,\"xaxis\":-255.857142857143,\"yaxis\":-147.16666666666666,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":30,\"map\":\"\"},{\"id\":\"718101a8bf1a\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":-46,\"y\":-240},\"endPoint\":{\"x\":9,\"y\":-240},\"name\":11942,\"isStrLine\":true},{\"startPoint\":{\"x\":9,\"y\":-240},\"endPoint\":{\"x\":148,\"y\":14},\"name\":11943,\"isStrLine\":true},{\"startPoint\":{\"x\":148,\"y\":14},\"endPoint\":{\"x\":108,\"y\":35},\"name\":11944,\"isStrLine\":true},{\"startPoint\":{\"x\":108,\"y\":35},\"endPoint\":{\"x\":-46,\"y\":-240},\"name\":11945,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#c7c7c7\",\"toHeight\":5,\"alphaModle\":100,\"site\":-55,\"xaxis\":-424.857142857143,\"yaxis\":-147.16666666666666,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":44,\"map\":\"\"},{\"id\":\"b4e023964346\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":-878,\"y\":-138},\"endPoint\":{\"x\":-852,\"y\":-228},\"name\":11946,\"isStrLine\":false,\"ctrlPoint1\":{\"x\":-885,\"y\":-180},\"ctrlPoint2\":{\"x\":-877,\"y\":-209}},{\"startPoint\":{\"x\":-852,\"y\":-228},\"endPoint\":{\"x\":-712,\"y\":-319},\"name\":11947,\"isStrLine\":true},{\"startPoint\":{\"x\":-712,\"y\":-319},\"endPoint\":{\"x\":-659,\"y\":-324},\"name\":11948,\"isStrLine\":false,\"ctrlPoint1\":{\"x\":-697,\"y\":-331},\"ctrlPoint2\":{\"x\":-675,\"y\":-333}},{\"startPoint\":{\"x\":-659,\"y\":-324},\"endPoint\":{\"x\":-499,\"y\":-239},\"name\":11949,\"isStrLine\":true},{\"startPoint\":{\"x\":-499,\"y\":-239},\"endPoint\":{\"x\":-46,\"y\":-239},\"name\":11950,\"isStrLine\":true},{\"startPoint\":{\"x\":-46,\"y\":-239},\"endPoint\":{\"x\":108,\"y\":36},\"name\":11951,\"isStrLine\":true},{\"startPoint\":{\"x\":108,\"y\":36},\"endPoint\":{\"x\":397,\"y\":419},\"name\":11952,\"isStrLine\":true},{\"startPoint\":{\"x\":397,\"y\":419},\"endPoint\":{\"x\":294,\"y\":539},\"name\":11953,\"isStrLine\":true},{\"startPoint\":{\"x\":294,\"y\":539},\"endPoint\":{\"x\":198,\"y\":575},\"name\":11954,\"isStrLine\":false,\"ctrlPoint1\":{\"x\":272,\"y\":564},\"ctrlPoint2\":{\"x\":235,\"y\":579}},{\"startPoint\":{\"x\":198,\"y\":575},\"endPoint\":{\"x\":-183,\"y\":518},\"name\":11955,\"isStrLine\":true},{\"startPoint\":{\"x\":-183,\"y\":518},\"endPoint\":{\"x\":-609,\"y\":679},\"name\":11956,\"isStrLine\":true},{\"startPoint\":{\"x\":-609,\"y\":679},\"endPoint\":{\"x\":-908,\"y\":408},\"name\":11957,\"isStrLine\":true},{\"startPoint\":{\"x\":-908,\"y\":408},\"endPoint\":{\"x\":-837,\"y\":265},\"name\":11958,\"isStrLine\":true},{\"startPoint\":{\"x\":-837,\"y\":265},\"endPoint\":{\"x\":-878,\"y\":-138},\"name\":11959,\"isStrLine\":true}],\"entColor\":\"#f2f2f2\",\"borderColor\":\"#ffffff\",\"toHeight\":2,\"alphaModle\":100,\"site\":-65,\"xaxis\":-255.5,\"yaxis\":177.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":2693,\"map\":\"\"},{\"id\":\"ed50f7a878db\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":-99,\"y\":-239},\"endPoint\":{\"x\":-46,\"y\":-239},\"name\":11960,\"isStrLine\":true},{\"startPoint\":{\"x\":-46,\"y\":-239},\"endPoint\":{\"x\":108,\"y\":36},\"name\":11961,\"isStrLine\":true},{\"startPoint\":{\"x\":108,\"y\":36},\"endPoint\":{\"x\":69,\"y\":53},\"name\":11962,\"isStrLine\":true},{\"startPoint\":{\"x\":69,\"y\":53},\"endPoint\":{\"x\":-99,\"y\":-239},\"name\":11963,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#c7c7c7\",\"toHeight\":5,\"alphaModle\":100,\"site\":-60,\"xaxis\":-618.857142857143,\"yaxis\":-147.16666666666666,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":44,\"map\":\"\"},{\"id\":\"c96bfd011928\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":-147,\"y\":-237},\"endPoint\":{\"x\":-99,\"y\":-239},\"name\":11964,\"isStrLine\":true},{\"startPoint\":{\"x\":-99,\"y\":-239},\"endPoint\":{\"x\":69,\"y\":53},\"name\":11965,\"isStrLine\":true},{\"startPoint\":{\"x\":69,\"y\":53},\"endPoint\":{\"x\":31,\"y\":74},\"name\":11966,\"isStrLine\":true},{\"startPoint\":{\"x\":31,\"y\":74},\"endPoint\":{\"x\":-147,\"y\":-237},\"name\":11967,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#c7c7c7\",\"toHeight\":5,\"alphaModle\":100,\"site\":-65,\"xaxis\":-825.857142857143,\"yaxis\":-147.16666666666666,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":46,\"map\":\"\"},{\"id\":\"8fe67851d9c4\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":-609,\"y\":677},\"endPoint\":{\"x\":-907,\"y\":407},\"name\":11968,\"isStrLine\":true},{\"startPoint\":{\"x\":-907,\"y\":407},\"endPoint\":{\"x\":-837,\"y\":267},\"name\":11969,\"isStrLine\":true},{\"startPoint\":{\"x\":-837,\"y\":267},\"endPoint\":{\"x\":-591,\"y\":485.19863013698625},\"name\":11970,\"isStrLine\":true},{\"startPoint\":{\"x\":-591,\"y\":485.19863013698625},\"endPoint\":{\"x\":-480,\"y\":500},\"name\":11971,\"isStrLine\":false,\"ctrlPoint1\":{\"x\":-560,\"y\":514},\"ctrlPoint2\":{\"x\":-513,\"y\":513}},{\"startPoint\":{\"x\":-480,\"y\":500},\"endPoint\":{\"x\":2,\"y\":304},\"name\":11972,\"isStrLine\":true},{\"startPoint\":{\"x\":2,\"y\":304},\"endPoint\":{\"x\":22.547619047619044,\"y\":241},\"name\":11973,\"isStrLine\":false,\"ctrlPoint1\":{\"x\":29,\"y\":288},\"ctrlPoint2\":{\"x\":36,\"y\":263}},{\"startPoint\":{\"x\":22.547619047619044,\"y\":241},\"endPoint\":{\"x\":-47,\"y\":114},\"name\":11974,\"isStrLine\":true},{\"startPoint\":{\"x\":-47,\"y\":114},\"endPoint\":{\"x\":33,\"y\":75},\"name\":11975,\"isStrLine\":true},{\"startPoint\":{\"x\":33,\"y\":75},\"endPoint\":{\"x\":314,\"y\":513},\"name\":11976,\"isStrLine\":true},{\"startPoint\":{\"x\":314,\"y\":513},\"endPoint\":{\"x\":286,\"y\":544},\"name\":11977,\"isStrLine\":true},{\"startPoint\":{\"x\":286,\"y\":544},\"endPoint\":{\"x\":198,\"y\":573},\"name\":11978,\"isStrLine\":false,\"ctrlPoint1\":{\"x\":269,\"y\":564},\"ctrlPoint2\":{\"x\":236,\"y\":576}},{\"startPoint\":{\"x\":198,\"y\":573},\"endPoint\":{\"x\":-183,\"y\":516},\"name\":11979,\"isStrLine\":true},{\"startPoint\":{\"x\":-183,\"y\":516},\"endPoint\":{\"x\":-609,\"y\":677},\"name\":11980,\"isStrLine\":true}],\"entColor\":\"#b8dc9c\",\"borderColor\":\"#b8dc9c\",\"toHeight\":2,\"alphaModle\":100,\"site\":-64,\"xaxis\":-296.5,\"yaxis\":472,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":734,\"map\":\"\"},{\"id\":\"23b148b2e64d\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":605.26,\"y\":1756.11},\"endPoint\":{\"x\":1281.05,\"y\":1756.11},\"name\":11981,\"isStrLine\":true},{\"startPoint\":{\"x\":1281.05,\"y\":1756.11},\"endPoint\":{\"x\":1356.5,\"y\":1841.4},\"name\":11982,\"isStrLine\":false,\"ctrlPoint1\":{\"x\":1349.94,\"y\":1756.11},\"ctrlPoint2\":{\"x\":1359.78,\"y\":1756.11}},{\"startPoint\":{\"x\":1356.5,\"y\":1841.4},\"endPoint\":{\"x\":1356.5,\"y\":2100.56},\"name\":11983,\"isStrLine\":true},{\"startPoint\":{\"x\":1356.5,\"y\":2100.56},\"endPoint\":{\"x\":539.65,\"y\":2100.56},\"name\":11984,\"isStrLine\":true},{\"startPoint\":{\"x\":539.65,\"y\":2100.56},\"endPoint\":{\"x\":539.65,\"y\":1839.43},\"name\":11985,\"isStrLine\":true},{\"startPoint\":{\"x\":539.65,\"y\":1839.43},\"endPoint\":{\"x\":605.26,\"y\":1756.11},\"name\":11986,\"isStrLine\":false,\"ctrlPoint1\":{\"x\":539.65,\"y\":1780.38},\"ctrlPoint2\":{\"x\":539.65,\"y\":1750.85}}],\"entColor\":\"#e3e3e3\",\"borderColor\":\"#e3e3e3\",\"toHeight\":350,\"alphaModle\":55,\"site\":0,\"xaxis\":962.8571428571427,\"yaxis\":1928.3571428571427,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":9,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":2012,\"map\":\"home\"},{\"id\":\"7f65559a77ca\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":-1137.09,\"y\":1789.26},\"endPoint\":{\"x\":-614.16,\"y\":1789.26},\"name\":11987,\"isStrLine\":true},{\"startPoint\":{\"x\":-614.16,\"y\":1789.26},\"endPoint\":{\"x\":-548.55,\"y\":1874.56},\"name\":11988,\"isStrLine\":false,\"ctrlPoint1\":{\"x\":-555.11,\"y\":1789.26},\"ctrlPoint2\":{\"x\":-546.6,\"y\":1812.23}},{\"startPoint\":{\"x\":-548.55,\"y\":1874.56},\"endPoint\":{\"x\":-548.55,\"y\":1972.97},\"name\":11989,\"isStrLine\":true},{\"startPoint\":{\"x\":-548.55,\"y\":1972.97},\"endPoint\":{\"x\":-591.21,\"y\":2066.14},\"name\":11990,\"isStrLine\":false,\"ctrlPoint1\":{\"x\":-548.55,\"y\":2028.74},\"ctrlPoint2\":{\"x\":-548.55,\"y\":2061.55}},{\"startPoint\":{\"x\":-591.21,\"y\":2066.14},\"endPoint\":{\"x\":-1123.96,\"y\":2066.14},\"name\":11991,\"isStrLine\":true},{\"startPoint\":{\"x\":-1123.96,\"y\":2066.14},\"endPoint\":{\"x\":-1201.38,\"y\":1980.84},\"name\":11992,\"isStrLine\":false,\"ctrlPoint1\":{\"x\":-1186.29,\"y\":2066.14},\"ctrlPoint2\":{\"x\":-1201.38,\"y\":2048.43}},{\"startPoint\":{\"x\":-1201.38,\"y\":1980.84},\"endPoint\":{\"x\":-1201.38,\"y\":1881.12},\"name\":11993,\"isStrLine\":true},{\"startPoint\":{\"x\":-1201.38,\"y\":1881.12},\"endPoint\":{\"x\":-1137.09,\"y\":1789.26},\"name\":11994,\"isStrLine\":false,\"ctrlPoint1\":{\"x\":-1201.38,\"y\":1815.51},\"ctrlPoint2\":{\"x\":-1201.38,\"y\":1790.58}}],\"entColor\":\"#e3e3e3\",\"borderColor\":\"#e3e3e3\",\"toHeight\":350,\"alphaModle\":55,\"site\":0,\"xaxis\":-878.2142857142861,\"yaxis\":1927.7142857142862,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":21,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":1278,\"map\":\"home\"},{\"id\":\"b4826488c727\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":122.22,\"y\":1816.71},\"endPoint\":{\"x\":183.23,\"y\":1917.1},\"name\":11995,\"isStrLine\":false,\"ctrlPoint1\":{\"x\":170.1,\"y\":1816.71},\"ctrlPoint2\":{\"x\":184.54,\"y\":1842.94}},{\"startPoint\":{\"x\":183.23,\"y\":1917.1},\"endPoint\":{\"x\":183.23,\"y\":2013.54},\"name\":11996,\"isStrLine\":true},{\"startPoint\":{\"x\":183.23,\"y\":2013.54},\"endPoint\":{\"x\":122.22,\"y\":2110.65},\"name\":11997,\"isStrLine\":false,\"ctrlPoint1\":{\"x\":183.23,\"y\":2095.56},\"ctrlPoint2\":{\"x\":171.42,\"y\":2113.93}},{\"startPoint\":{\"x\":122.22,\"y\":2110.65},\"endPoint\":{\"x\":-163.19,\"y\":2110.65},\"name\":11998,\"isStrLine\":true},{\"startPoint\":{\"x\":-163.19,\"y\":2110.65},\"endPoint\":{\"x\":-163.19,\"y\":1816.71},\"name\":11999,\"isStrLine\":true},{\"startPoint\":{\"x\":-163.19,\"y\":1816.71},\"endPoint\":{\"x\":122.22,\"y\":1816.71},\"name\":12000,\"isStrLine\":true}],\"entColor\":\"#e3e3e3\",\"borderColor\":\"#e3e3e3\",\"toHeight\":350,\"alphaModle\":55,\"site\":0,\"xaxis\":-18.857142857142854,\"yaxis\":1963.714285714286,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":24,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":720,\"map\":\"home\"},{\"id\":\"d41511ce931f\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":-2465,\"y\":-1114},\"endPoint\":{\"x\":-2233,\"y\":-1114},\"name\":12001,\"isStrLine\":true},{\"startPoint\":{\"x\":-2233,\"y\":-1114},\"endPoint\":{\"x\":-2189,\"y\":-1071},\"name\":12002,\"isStrLine\":false,\"ctrlPoint1\":{\"x\":-2204,\"y\":-1115},\"ctrlPoint2\":{\"x\":-2188,\"y\":-1097}},{\"startPoint\":{\"x\":-2189,\"y\":-1071},\"endPoint\":{\"x\":-2189,\"y\":-827},\"name\":12003,\"isStrLine\":true},{\"startPoint\":{\"x\":-2189,\"y\":-827},\"endPoint\":{\"x\":-2233,\"y\":-786},\"name\":12004,\"isStrLine\":false,\"ctrlPoint1\":{\"x\":-2187,\"y\":-797},\"ctrlPoint2\":{\"x\":-2199,\"y\":-786}},{\"startPoint\":{\"x\":-2233,\"y\":-786},\"endPoint\":{\"x\":-2465,\"y\":-786},\"name\":12005,\"isStrLine\":true},{\"startPoint\":{\"x\":-2465,\"y\":-786},\"endPoint\":{\"x\":-2465,\"y\":-1114},\"name\":12006,\"isStrLine\":true}],\"entColor\":\"#dbdbdb\",\"borderColor\":\"#c7c7c7\",\"toHeight\":380,\"alphaModle\":28,\"site\":0,\"xaxis\":-2327,\"yaxis\":-950,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":0,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":278,\"map\":\"home\"},{\"id\":\"e7bd6031ff55\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":-2465,\"y\":-719},\"endPoint\":{\"x\":-2233,\"y\":-719},\"name\":12007,\"isStrLine\":true},{\"startPoint\":{\"x\":-2233,\"y\":-719},\"endPoint\":{\"x\":-2189,\"y\":-676},\"name\":12008,\"isStrLine\":false,\"ctrlPoint1\":{\"x\":-2204,\"y\":-720},\"ctrlPoint2\":{\"x\":-2188,\"y\":-702}},{\"startPoint\":{\"x\":-2189,\"y\":-676},\"endPoint\":{\"x\":-2189,\"y\":-432},\"name\":12009,\"isStrLine\":true},{\"startPoint\":{\"x\":-2189,\"y\":-432},\"endPoint\":{\"x\":-2233,\"y\":-391},\"name\":12010,\"isStrLine\":false,\"ctrlPoint1\":{\"x\":-2187,\"y\":-402},\"ctrlPoint2\":{\"x\":-2199,\"y\":-391}},{\"startPoint\":{\"x\":-2233,\"y\":-391},\"endPoint\":{\"x\":-2465,\"y\":-391},\"name\":12011,\"isStrLine\":true},{\"startPoint\":{\"x\":-2465,\"y\":-391},\"endPoint\":{\"x\":-2465,\"y\":-719},\"name\":12012,\"isStrLine\":true}],\"entColor\":\"#dbdbdb\",\"borderColor\":\"#c7c7c7\",\"toHeight\":380,\"alphaModle\":28,\"site\":0,\"xaxis\":-2327,\"yaxis\":-555,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":0,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":278,\"map\":\"home\"},{\"id\":\"7b56872ae19e\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":-2465,\"y\":-332},\"endPoint\":{\"x\":-2233,\"y\":-332},\"name\":12013,\"isStrLine\":true},{\"startPoint\":{\"x\":-2233,\"y\":-332},\"endPoint\":{\"x\":-2189,\"y\":-289},\"name\":12014,\"isStrLine\":false,\"ctrlPoint1\":{\"x\":-2204,\"y\":-333},\"ctrlPoint2\":{\"x\":-2188,\"y\":-315}},{\"startPoint\":{\"x\":-2189,\"y\":-289},\"endPoint\":{\"x\":-2189,\"y\":-45},\"name\":12015,\"isStrLine\":true},{\"startPoint\":{\"x\":-2189,\"y\":-45},\"endPoint\":{\"x\":-2233,\"y\":-4},\"name\":12016,\"isStrLine\":false,\"ctrlPoint1\":{\"x\":-2187,\"y\":-15},\"ctrlPoint2\":{\"x\":-2199,\"y\":-4}},{\"startPoint\":{\"x\":-2233,\"y\":-4},\"endPoint\":{\"x\":-2465,\"y\":-4},\"name\":12017,\"isStrLine\":true},{\"startPoint\":{\"x\":-2465,\"y\":-4},\"endPoint\":{\"x\":-2465,\"y\":-332},\"name\":12018,\"isStrLine\":true}],\"entColor\":\"#dbdbdb\",\"borderColor\":\"#c7c7c7\",\"toHeight\":380,\"alphaModle\":28,\"site\":0,\"xaxis\":-2327,\"yaxis\":-168,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":0,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":278,\"map\":\"home\"},{\"id\":\"16e8d00c71d4\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":-2462.5,\"y\":1801},\"endPoint\":{\"x\":-2230.5,\"y\":1801},\"name\":12019,\"isStrLine\":true},{\"startPoint\":{\"x\":-2230.5,\"y\":1801},\"endPoint\":{\"x\":-2186.5,\"y\":1844},\"name\":12020,\"isStrLine\":false,\"ctrlPoint1\":{\"x\":-2201.5,\"y\":1800},\"ctrlPoint2\":{\"x\":-2185.5,\"y\":1818}},{\"startPoint\":{\"x\":-2186.5,\"y\":1844},\"endPoint\":{\"x\":-2186.5,\"y\":2088},\"name\":12021,\"isStrLine\":true},{\"startPoint\":{\"x\":-2186.5,\"y\":2088},\"endPoint\":{\"x\":-2230.5,\"y\":2129},\"name\":12022,\"isStrLine\":false,\"ctrlPoint1\":{\"x\":-2184.5,\"y\":2118},\"ctrlPoint2\":{\"x\":-2196.5,\"y\":2129}},{\"startPoint\":{\"x\":-2230.5,\"y\":2129},\"endPoint\":{\"x\":-2462.5,\"y\":2129},\"name\":12023,\"isStrLine\":true},{\"startPoint\":{\"x\":-2462.5,\"y\":2129},\"endPoint\":{\"x\":-2462.5,\"y\":1801},\"name\":12024,\"isStrLine\":true}],\"entColor\":\"#dbdbdb\",\"borderColor\":\"#c7c7c7\",\"toHeight\":380,\"alphaModle\":28,\"site\":0,\"xaxis\":-2324.5,\"yaxis\":1965,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":0,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":278,\"map\":\"home\"}],\"icons\":[],\"stairs\":[{\"no\":\"1\",\"x\":-505,\"y\":-845,\"navCode\":48,\"facCode\":\"dt\",\"title\":\"直梯\",\"site\":0,\"angle\":0,\"state\":true,\"iShow\":true,\"downState\":false,\"upState\":false},{\"no\":\"2\",\"x\":1210,\"y\":213,\"navCode\":50,\"facCode\":\"dt\",\"title\":\"直梯\",\"site\":0,\"angle\":0,\"state\":true,\"iShow\":true,\"downState\":false,\"upState\":false}],\"parkArea\":[],\"wallArea\":[{\"id\":\"6b5c147f772d\",\"name\":\"wall\",\"pathPoints\":[{\"x\":-1291,\"y\":1205},{\"x\":-1291,\"y\":1072},{\"x\":-1440,\"y\":1072},{\"x\":-1440,\"y\":982},{\"x\":-1182,\"y\":982},{\"x\":-1182,\"y\":1192},{\"x\":-1182,\"y\":1207}],\"thick\":1,\"isWall\":true,\"entColor\":\"#ffffff\",\"borderColor\":\"#e0e0e0\",\"toHeight\":30,\"alphaModle\":47,\"site\":0},{\"id\":\"b0af8089fff5\",\"name\":\"wall\",\"pathPoints\":[{\"x\":-1436,\"y\":1028},{\"x\":-1234,\"y\":1028},{\"x\":-1234,\"y\":1202}],\"thick\":2,\"isWall\":true,\"entColor\":\"#ffee38\",\"borderColor\":\"#ffee38\",\"toHeight\":2,\"alphaModle\":100,\"site\":0},{\"id\":\"34fe9e255985\",\"name\":\"wall\",\"pathPoints\":[{\"x\":526,\"y\":1207},{\"x\":174,\"y\":1207},{\"x\":174,\"y\":1100},{\"x\":690,\"y\":1100},{\"x\":690,\"y\":1207}],\"thick\":1,\"isWall\":true,\"entColor\":\"#ffffff\",\"borderColor\":\"#e0e0e0\",\"toHeight\":30,\"alphaModle\":47,\"site\":0},{\"id\":\"7a1856da0232\",\"name\":\"wall\",\"pathPoints\":[{\"x\":175,\"y\":1150},{\"x\":611,\"y\":1150},{\"x\":611,\"y\":1206}],\"thick\":2,\"isWall\":true,\"entColor\":\"#ffee38\",\"borderColor\":\"#ffee38\",\"toHeight\":2,\"alphaModle\":100,\"site\":0},{\"id\":\"fb21fc501514\",\"name\":\"wall\",\"pathPoints\":[{\"x\":-1061,\"y\":-695},{\"x\":-1336,\"y\":-956},{\"x\":-1348,\"y\":-976},{\"x\":-1350,\"y\":-998},{\"x\":-1347,\"y\":-1012},{\"x\":-1339,\"y\":-1025},{\"x\":-1204,\"y\":-1192},{\"x\":1063,\"y\":-1192},{\"x\":1082,\"y\":-1188},{\"x\":1096,\"y\":-1182},{\"x\":1108,\"y\":-1170},{\"x\":1113,\"y\":-1152},{\"x\":1111,\"y\":-1128},{\"x\":1103,\"y\":-1109},{\"x\":972,\"y\":-856}],\"thick\":4,\"isWall\":true,\"entColor\":\"#ffffff\",\"borderColor\":\"#c7c7c7\",\"toHeight\":50,\"alphaModle\":33,\"site\":0},{\"id\":\"8fed33e1142d\",\"name\":\"wall\",\"pathPoints\":[{\"x\":1185,\"y\":-633},{\"x\":1470,\"y\":-735},{\"x\":1488,\"y\":-739},{\"x\":1505,\"y\":-730},{\"x\":1515,\"y\":-713},{\"x\":1515,\"y\":744}],\"thick\":4,\"isWall\":true,\"entColor\":\"#ffffff\",\"borderColor\":\"#c7c7c7\",\"toHeight\":50,\"alphaModle\":33,\"site\":0},{\"id\":\"c801617b9247\",\"name\":\"wall\",\"pathPoints\":[{\"x\":1517,\"y\":962},{\"x\":1517,\"y\":1135},{\"x\":861,\"y\":1135},{\"x\":859,\"y\":1040},{\"x\":-157,\"y\":1040},{\"x\":-157,\"y\":1206},{\"x\":-1103,\"y\":1206},{\"x\":-1103,\"y\":898}],\"thick\":2,\"isWall\":true,\"entColor\":\"#ffffff\",\"borderColor\":\"#cfcfcf\",\"toHeight\":50,\"alphaModle\":34,\"site\":0},{\"id\":\"8569adfdbf95\",\"name\":\"wall\",\"pathPoints\":[{\"x\":-1172,\"y\":871},{\"x\":-1594,\"y\":871},{\"x\":-1594,\"y\":-773},{\"x\":-1497,\"y\":-875},{\"x\":-1486,\"y\":-884},{\"x\":-1470,\"y\":-888},{\"x\":-1454,\"y\":-887},{\"x\":-1441,\"y\":-881},{\"x\":-1170,\"y\":-608}],\"thick\":2,\"isWall\":true,\"entColor\":\"#ffffff\",\"borderColor\":\"#cfcfcf\",\"toHeight\":50,\"alphaModle\":34,\"site\":0},{\"id\":\"2025ca1b2c3b\",\"name\":\"fWall\",\"pathPoints\":[{\"x\":-324,\"y\":-661},{\"x\":214,\"y\":-661},{\"x\":214,\"y\":-578},{\"x\":-13,\"y\":-521},{\"x\":-324,\"y\":-558},{\"x\":-324,\"y\":-661}],\"thick\":2,\"isWall\":true,\"entColor\":\"#e3e3e3\",\"borderColor\":\"#bdbdbd\",\"toHeight\":25,\"alphaModle\":38,\"site\":0},{\"id\":\"7cebb42f0bf4\",\"name\":\"fWall\",\"pathPoints\":[{\"x\":687,\"y\":423},{\"x\":821,\"y\":368},{\"x\":1028,\"y\":368},{\"x\":1028,\"y\":588},{\"x\":948,\"y\":653},{\"x\":684,\"y\":653},{\"x\":640,\"y\":597},{\"x\":687,\"y\":423}],\"thick\":2,\"isWall\":true,\"entColor\":\"#e3e3e3\",\"borderColor\":\"#bdbdbd\",\"toHeight\":25,\"alphaModle\":38,\"site\":0},{\"id\":\"bd2c836d5da4\",\"name\":\"fWall\",\"pathPoints\":[{\"x\":-1082,\"y\":601},{\"x\":-985,\"y\":503},{\"x\":-926,\"y\":505},{\"x\":-642,\"y\":778},{\"x\":-690,\"y\":835},{\"x\":-968,\"y\":835},{\"x\":-1082,\"y\":773},{\"x\":-1082,\"y\":601}],\"thick\":2,\"isWall\":true,\"entColor\":\"#e3e3e3\",\"borderColor\":\"#bdbdbd\",\"toHeight\":25,\"alphaModle\":38,\"site\":0},{\"id\":\"3d85a7fe3e6f\",\"name\":\"hWall\",\"pathPoints\":[{\"x\":-857,\"y\":-226},{\"x\":-719,\"y\":-315},{\"x\":-710,\"y\":-322},{\"x\":-702,\"y\":-327},{\"x\":-693,\"y\":-330},{\"x\":-685,\"y\":-331},{\"x\":-677,\"y\":-330},{\"x\":-669,\"y\":-329},{\"x\":-661,\"y\":-326},{\"x\":-653,\"y\":-323},{\"x\":-645,\"y\":-319},{\"x\":-636,\"y\":-315},{\"x\":-502,\"y\":-244},{\"x\":84,\"y\":-244},{\"x\":339,\"y\":-364}],\"thick\":2,\"isWall\":true,\"entColor\":\"#e3e3e3\",\"borderColor\":\"#c2c2c2\",\"toHeight\":25,\"alphaModle\":34,\"site\":0},{\"id\":\"28611cf5fcd4\",\"name\":\"hWall\",\"pathPoints\":[{\"x\":456,\"y\":-141},{\"x\":488,\"y\":-72},{\"x\":472,\"y\":277},{\"x\":471,\"y\":287},{\"x\":470,\"y\":297},{\"x\":469,\"y\":307},{\"x\":468,\"y\":316},{\"x\":466,\"y\":325},{\"x\":463,\"y\":335},{\"x\":459,\"y\":344},{\"x\":454,\"y\":353},{\"x\":448,\"y\":362},{\"x\":442,\"y\":371},{\"x\":301,\"y\":532},{\"x\":291,\"y\":542},{\"x\":282,\"y\":552},{\"x\":272,\"y\":559},{\"x\":263,\"y\":565},{\"x\":253,\"y\":569},{\"x\":243,\"y\":572},{\"x\":232,\"y\":574},{\"x\":221,\"y\":576},{\"x\":210,\"y\":576},{\"x\":198,\"y\":577},{\"x\":-182,\"y\":521},{\"x\":-611,\"y\":682},{\"x\":-913,\"y\":408},{\"x\":-839,\"y\":266},{\"x\":-881,\"y\":-139},{\"x\":-883,\"y\":-151},{\"x\":-883,\"y\":-162},{\"x\":-883,\"y\":-172},{\"x\":-881,\"y\":-181},{\"x\":-879,\"y\":-190},{\"x\":-876,\"y\":-198},{\"x\":-872,\"y\":-205},{\"x\":-868,\"y\":-212},{\"x\":-863,\"y\":-219},{\"x\":-857,\"y\":-226}],\"thick\":2,\"isWall\":true,\"entColor\":\"#e3e3e3\",\"borderColor\":\"#c2c2c2\",\"toHeight\":25,\"alphaModle\":34,\"site\":0}],\"svgArea\":[{\"height\":\"44.938\",\"width\":\"183.75\",\"data\":\"\\n \\n \\n \\n \\n\\n\",\"scale\":\"3\",\"angle\":0,\"angleY\":0,\"angleZ\":0,\"toHeight\":2,\"site\":0,\"entColor\":\"#aeaeae\",\"alphaModle\":100,\"name\":\"\",\"id\":0,\"type\":\"svg\",\"xaxis\":-371,\"yaxis\":-1742},{\"height\":\"201.75\",\"width\":\"44.656\",\"data\":\"\\n \\n \\n \\n \\n\\n\",\"scale\":2.3,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"toHeight\":2,\"site\":0,\"entColor\":\"#aeaeae\",\"alphaModle\":100,\"name\":\"\",\"id\":0,\"type\":\"svg\",\"xaxis\":-1828,\"yaxis\":-39},{\"height\":\"202.093\",\"width\":\"45.312\",\"data\":\"\\n \\n \\n \\n \\n\\n\",\"scale\":2.3,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"toHeight\":2,\"site\":0,\"entColor\":\"#aeaeae\",\"alphaModle\":100,\"name\":\"\",\"id\":0,\"type\":\"svg\",\"xaxis\":2043,\"yaxis\":-24}],\"models\":[{\"name\":\"lan1\",\"x\":582,\"y\":1210,\"type\":\"chechanglangan\",\"w\":148,\"h\":53,\"scale\":1,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"site\":0},{\"name\":\"lan2\",\"x\":-1242,\"y\":1185,\"type\":\"chechanglangan\",\"w\":148,\"h\":53,\"scale\":1,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"site\":0},{\"name\":\"car1\",\"x\":1050,\"y\":1281,\"type\":\"qiche8\",\"w\":45,\"h\":95,\"scale\":\"1\",\"angle\":90,\"angleY\":0,\"angleZ\":0,\"site\":0},{\"name\":\"\",\"x\":-468,\"y\":-52,\"type\":\"penquan2\",\"w\":140,\"h\":140,\"scale\":1,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"site\":-65},{\"name\":\"car4\",\"x\":-1383,\"y\":-1467,\"type\":\"qiche2\",\"w\":43,\"h\":100,\"scale\":\"1.5\",\"angle\":-90,\"angleY\":0,\"angleZ\":0,\"site\":0},{\"name\":\"car3\",\"x\":1318,\"y\":-1741,\"type\":\"qiche8\",\"w\":45,\"h\":95,\"scale\":1.5,\"angle\":90,\"angleY\":0,\"angleZ\":0,\"site\":0},{\"name\":\"car2\",\"x\":-929,\"y\":1299,\"type\":\"qiche9\",\"w\":46,\"h\":94,\"scale\":\"1\",\"angle\":90,\"angleY\":0,\"angleZ\":0,\"site\":0}]},\"code\":\"cwgojwijT_qG0f7DVhWpu\"},{\"name\":\"L2\",\"mapData\":{\"groupArea\":[],\"floorArea\":{\"id\":\"1f0a4e112f7e\",\"name\":\"floor\",\"hasLines\":[{\"startPoint\":{\"x\":-1074,\"y\":-1179},\"endPoint\":{\"x\":995,\"y\":-1255},\"name\":2058019,\"isStrLine\":true},{\"startPoint\":{\"x\":995,\"y\":-1255},\"endPoint\":{\"x\":1397,\"y\":-851},\"name\":2058020,\"isStrLine\":true},{\"startPoint\":{\"x\":1397,\"y\":-851},\"endPoint\":{\"x\":1397,\"y\":968},\"name\":2058021,\"isStrLine\":true},{\"startPoint\":{\"x\":1397,\"y\":968},\"endPoint\":{\"x\":-19,\"y\":968},\"name\":2058022,\"isStrLine\":true},{\"startPoint\":{\"x\":-19,\"y\":968},\"endPoint\":{\"x\":-19,\"y\":1167},\"name\":2058023,\"isStrLine\":true},{\"startPoint\":{\"x\":-19,\"y\":1167},\"endPoint\":{\"x\":-708,\"y\":1167},\"name\":2058024,\"isStrLine\":true},{\"startPoint\":{\"x\":-708,\"y\":1167},\"endPoint\":{\"x\":-708,\"y\":1275},\"name\":2058025,\"isStrLine\":true},{\"startPoint\":{\"x\":-708,\"y\":1275},\"endPoint\":{\"x\":-1365,\"y\":1275},\"name\":2058026,\"isStrLine\":true},{\"startPoint\":{\"x\":-1365,\"y\":1275},\"endPoint\":{\"x\":-1365,\"y\":-856},\"name\":2058027,\"isStrLine\":true},{\"startPoint\":{\"x\":-1365,\"y\":-856},\"endPoint\":{\"x\":-1074,\"y\":-1179},\"name\":2058028,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#d1d1d1\",\"toHeight\":15,\"alphaModle\":100,\"site\":0,\"xaxis\":16,\"yaxis\":10,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":0,\"isLabel\":1,\"comeIn\":\"\",\"area\":19289,\"map\":\"\"},\"buildArea\":[],\"hollowArea\":[{\"id\":\"c23d11c6f16b\",\"name\":\"hollow\",\"hasLines\":[{\"startPoint\":{\"x\":-934,\"y\":-506},\"endPoint\":{\"x\":-934,\"y\":-709},\"name\":2058029,\"isStrLine\":true},{\"startPoint\":{\"x\":-934,\"y\":-709},\"endPoint\":{\"x\":-889,\"y\":-761},\"name\":2058030,\"isStrLine\":true},{\"startPoint\":{\"x\":-889,\"y\":-761},\"endPoint\":{\"x\":-606,\"y\":-761},\"name\":2058031,\"isStrLine\":true},{\"startPoint\":{\"x\":-606,\"y\":-761},\"endPoint\":{\"x\":-606,\"y\":-714},\"name\":2058032,\"isStrLine\":true},{\"startPoint\":{\"x\":-606,\"y\":-714},\"endPoint\":{\"x\":-852,\"y\":-506},\"name\":2058033,\"isStrLine\":true},{\"startPoint\":{\"x\":-852,\"y\":-506},\"endPoint\":{\"x\":-934,\"y\":-506},\"name\":2058034,\"isStrLine\":true}],\"entColor\":\"\",\"borderColor\":\"\",\"toHeight\":30,\"alphaModle\":90,\"site\":0,\"xaxis\":-770,\"yaxis\":-633.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":0,\"isLabel\":1,\"comeIn\":\"\",\"area\":176,\"map\":\"\"},{\"id\":\"6d8b4f311957\",\"name\":\"hollow\",\"hasLines\":[{\"startPoint\":{\"x\":-252,\"y\":-763},\"endPoint\":{\"x\":228,\"y\":-763},\"name\":2058035,\"isStrLine\":true},{\"startPoint\":{\"x\":228,\"y\":-763},\"endPoint\":{\"x\":228,\"y\":-696},\"name\":2058036,\"isStrLine\":true},{\"startPoint\":{\"x\":228,\"y\":-696},\"endPoint\":{\"x\":19,\"y\":-646},\"name\":2058037,\"isStrLine\":true},{\"startPoint\":{\"x\":19,\"y\":-646},\"endPoint\":{\"x\":-252,\"y\":-683},\"name\":2058038,\"isStrLine\":true},{\"startPoint\":{\"x\":-252,\"y\":-683},\"endPoint\":{\"x\":-252,\"y\":-763},\"name\":2058039,\"isStrLine\":true}],\"entColor\":\"\",\"borderColor\":\"\",\"toHeight\":30,\"alphaModle\":90,\"site\":0,\"xaxis\":-12,\"yaxis\":-723,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":0,\"isLabel\":1,\"comeIn\":\"\",\"area\":142,\"map\":\"\"},{\"id\":\"cefea621062f\",\"name\":\"hollow\",\"hasLines\":[{\"startPoint\":{\"x\":-934,\"y\":320},\"endPoint\":{\"x\":-811,\"y\":320},\"name\":2058040,\"isStrLine\":true},{\"startPoint\":{\"x\":-811,\"y\":320},\"endPoint\":{\"x\":-540,\"y\":574},\"name\":2058041,\"isStrLine\":true},{\"startPoint\":{\"x\":-540,\"y\":574},\"endPoint\":{\"x\":-583,\"y\":622},\"name\":2058042,\"isStrLine\":true},{\"startPoint\":{\"x\":-583,\"y\":622},\"endPoint\":{\"x\":-844,\"y\":622},\"name\":2058043,\"isStrLine\":true},{\"startPoint\":{\"x\":-844,\"y\":622},\"endPoint\":{\"x\":-934,\"y\":622},\"name\":2058044,\"isStrLine\":true},{\"startPoint\":{\"x\":-934,\"y\":622},\"endPoint\":{\"x\":-934,\"y\":320},\"name\":2058045,\"isStrLine\":true}],\"entColor\":\"\",\"borderColor\":\"\",\"toHeight\":30,\"alphaModle\":90,\"site\":0,\"xaxis\":-865.5,\"yaxis\":447.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":0,\"isLabel\":1,\"comeIn\":\"\",\"area\":258,\"map\":\"\"},{\"id\":\"b70e499eeedd\",\"name\":\"hollow\",\"hasLines\":[{\"startPoint\":{\"x\":674,\"y\":201},\"endPoint\":{\"x\":887,\"y\":201},\"name\":2058046,\"isStrLine\":true},{\"startPoint\":{\"x\":887,\"y\":201},\"endPoint\":{\"x\":969,\"y\":267},\"name\":2058047,\"isStrLine\":true},{\"startPoint\":{\"x\":969,\"y\":267},\"endPoint\":{\"x\":969,\"y\":412},\"name\":2058048,\"isStrLine\":true},{\"startPoint\":{\"x\":969,\"y\":412},\"endPoint\":{\"x\":880,\"y\":529},\"name\":2058049,\"isStrLine\":true},{\"startPoint\":{\"x\":880,\"y\":529},\"endPoint\":{\"x\":603,\"y\":529},\"name\":2058050,\"isStrLine\":true},{\"startPoint\":{\"x\":603,\"y\":529},\"endPoint\":{\"x\":603,\"y\":303},\"name\":2058051,\"isStrLine\":true},{\"startPoint\":{\"x\":603,\"y\":303},\"endPoint\":{\"x\":674,\"y\":201},\"name\":2058052,\"isStrLine\":true}],\"entColor\":\"\",\"borderColor\":\"\",\"toHeight\":30,\"alphaModle\":90,\"site\":0,\"xaxis\":762.5,\"yaxis\":306.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":0,\"isLabel\":1,\"comeIn\":\"\",\"area\":335,\"map\":\"\"},{\"id\":\"23c427449588\",\"name\":\"hollow\",\"hasLines\":[{\"startPoint\":{\"x\":-741,\"y\":-318},\"endPoint\":{\"x\":-600,\"y\":-428},\"name\":2058053,\"isStrLine\":true},{\"startPoint\":{\"x\":-600,\"y\":-428},\"endPoint\":{\"x\":-513,\"y\":-437},\"name\":2058054,\"isStrLine\":false,\"ctrlPoint1\":{\"x\":-576,\"y\":-449},\"ctrlPoint2\":{\"x\":-541,\"y\":-447}},{\"startPoint\":{\"x\":-513,\"y\":-437},\"endPoint\":{\"x\":-191,\"y\":-349},\"name\":2058055,\"isStrLine\":true},{\"startPoint\":{\"x\":-191,\"y\":-349},\"endPoint\":{\"x\":130,\"y\":-344},\"name\":2058056,\"isStrLine\":true},{\"startPoint\":{\"x\":130,\"y\":-344},\"endPoint\":{\"x\":256,\"y\":-393},\"name\":2058057,\"isStrLine\":true},{\"startPoint\":{\"x\":256,\"y\":-393},\"endPoint\":{\"x\":553,\"y\":102},\"name\":2058058,\"isStrLine\":false,\"ctrlPoint1\":{\"x\":442,\"y\":-292},\"ctrlPoint2\":{\"x\":533,\"y\":-91}},{\"startPoint\":{\"x\":553,\"y\":102},\"endPoint\":{\"x\":528,\"y\":168},\"name\":2058059,\"isStrLine\":false,\"ctrlPoint1\":{\"x\":555,\"y\":130},\"ctrlPoint2\":{\"x\":543,\"y\":155}},{\"startPoint\":{\"x\":528,\"y\":168},\"endPoint\":{\"x\":303,\"y\":385},\"name\":2058060,\"isStrLine\":true},{\"startPoint\":{\"x\":303,\"y\":385},\"endPoint\":{\"x\":224,\"y\":409},\"name\":2058061,\"isStrLine\":false,\"ctrlPoint1\":{\"x\":286,\"y\":400},\"ctrlPoint2\":{\"x\":266,\"y\":417}},{\"startPoint\":{\"x\":224,\"y\":409},\"endPoint\":{\"x\":-84,\"y\":355},\"name\":2058062,\"isStrLine\":true},{\"startPoint\":{\"x\":-84,\"y\":355},\"endPoint\":{\"x\":-159,\"y\":355},\"name\":2058063,\"isStrLine\":false,\"ctrlPoint1\":{\"x\":-108,\"y\":349},\"ctrlPoint2\":{\"x\":-134,\"y\":344}},{\"startPoint\":{\"x\":-159,\"y\":355},\"endPoint\":{\"x\":-499,\"y\":489},\"name\":2058064,\"isStrLine\":true},{\"startPoint\":{\"x\":-499,\"y\":489},\"endPoint\":{\"x\":-798,\"y\":224},\"name\":2058065,\"isStrLine\":true},{\"startPoint\":{\"x\":-798,\"y\":224},\"endPoint\":{\"x\":-717,\"y\":47},\"name\":2058066,\"isStrLine\":true},{\"startPoint\":{\"x\":-717,\"y\":47},\"endPoint\":{\"x\":-742,\"y\":-46},\"name\":2058067,\"isStrLine\":true},{\"startPoint\":{\"x\":-742,\"y\":-46},\"endPoint\":{\"x\":-741,\"y\":-318},\"name\":2058068,\"isStrLine\":true}],\"entColor\":\"\",\"borderColor\":\"\",\"toHeight\":30,\"alphaModle\":90,\"site\":0,\"xaxis\":-124.5,\"yaxis\":26,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":0,\"isLabel\":1,\"comeIn\":\"\",\"area\":2861,\"map\":\"\"},{\"id\":\"b598c0f53fa7\",\"name\":\"hollow\",\"hasLines\":[{\"startPoint\":{\"x\":346,\"y\":-495},\"endPoint\":{\"x\":594,\"y\":-623},\"name\":2058069,\"isStrLine\":true},{\"startPoint\":{\"x\":594,\"y\":-623},\"endPoint\":{\"x\":720,\"y\":-495},\"name\":2058070,\"isStrLine\":true},{\"startPoint\":{\"x\":720,\"y\":-495},\"endPoint\":{\"x\":598,\"y\":-218},\"name\":2058071,\"isStrLine\":true},{\"startPoint\":{\"x\":598,\"y\":-218},\"endPoint\":{\"x\":346,\"y\":-495},\"name\":2058072,\"isStrLine\":false,\"ctrlPoint1\":{\"x\":508,\"y\":-255},\"ctrlPoint2\":{\"x\":376,\"y\":-365}}],\"entColor\":\"\",\"borderColor\":\"\",\"toHeight\":30,\"alphaModle\":90,\"site\":0,\"xaxis\":533,\"yaxis\":-420.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":0,\"isLabel\":1,\"comeIn\":\"\",\"area\":266,\"map\":\"\"}],\"shopArea\":[{\"id\":\"b6d478a1593f\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-1360,\"y\":-853.62},\"endPoint\":{\"x\":-1072.54,\"y\":-1176.01},\"name\":2058073,\"isStrLine\":true},{\"startPoint\":{\"x\":-1072.54,\"y\":-1176.01},\"endPoint\":{\"x\":-772,\"y\":-1185.97},\"name\":2058074,\"isStrLine\":true},{\"startPoint\":{\"x\":-772,\"y\":-1185.97},\"endPoint\":{\"x\":-772,\"y\":-838},\"name\":2058075,\"isStrLine\":true},{\"startPoint\":{\"x\":-772,\"y\":-838},\"endPoint\":{\"x\":-919.46,\"y\":-838},\"name\":2058076,\"isStrLine\":true},{\"startPoint\":{\"x\":-919.46,\"y\":-838},\"endPoint\":{\"x\":-1023.46,\"y\":-718},\"name\":2058077,\"isStrLine\":true},{\"startPoint\":{\"x\":-1023.46,\"y\":-718},\"endPoint\":{\"x\":-1360,\"y\":-718},\"name\":2058078,\"isStrLine\":true},{\"startPoint\":{\"x\":-1360,\"y\":-718},\"endPoint\":{\"x\":-1360,\"y\":-853.62},\"name\":2058079,\"isStrLine\":true}],\"entColor\":\"#bddaf4\",\"borderColor\":\"#8eadc7\",\"toHeight\":40,\"alphaModle\":100,\"site\":0,\"xaxis\":-1064.5,\"yaxis\":-950.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":\"3\",\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":625,\"map\":\"\"},{\"id\":\"608e2482605c\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-673.99,\"y\":-1189.04},\"endPoint\":{\"x\":-257,\"y\":-1204.96},\"name\":2058080,\"isStrLine\":true},{\"startPoint\":{\"x\":-257,\"y\":-1204.96},\"endPoint\":{\"x\":-257,\"y\":-999},\"name\":2058081,\"isStrLine\":true},{\"startPoint\":{\"x\":-257,\"y\":-999},\"endPoint\":{\"x\":-478,\"y\":-999},\"name\":2058082,\"isStrLine\":true},{\"startPoint\":{\"x\":-478,\"y\":-999},\"endPoint\":{\"x\":-478,\"y\":-838},\"name\":2058083,\"isStrLine\":true},{\"startPoint\":{\"x\":-478,\"y\":-838},\"endPoint\":{\"x\":-672.01,\"y\":-838},\"name\":2058084,\"isStrLine\":true},{\"startPoint\":{\"x\":-672.01,\"y\":-838},\"endPoint\":{\"x\":-673.99,\"y\":-1189.04},\"name\":2058085,\"isStrLine\":true}],\"entColor\":\"#bddaf4\",\"borderColor\":\"#8eadc7\",\"toHeight\":40,\"alphaModle\":100,\"site\":0,\"xaxis\":-464,\"yaxis\":-1006,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":\"21\",\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":356,\"map\":\"\"},{\"id\":\"930177557560\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-16,\"y\":-1212.03},\"endPoint\":{\"x\":160,\"y\":-1217.97},\"name\":2058086,\"isStrLine\":true},{\"startPoint\":{\"x\":160,\"y\":-1217.97},\"endPoint\":{\"x\":160,\"y\":-839},\"name\":2058087,\"isStrLine\":true},{\"startPoint\":{\"x\":160,\"y\":-839},\"endPoint\":{\"x\":-16,\"y\":-839},\"name\":2058088,\"isStrLine\":true},{\"startPoint\":{\"x\":-16,\"y\":-839},\"endPoint\":{\"x\":-16,\"y\":-1212.03},\"name\":2058089,\"isStrLine\":true}],\"entColor\":\"#bddaf4\",\"borderColor\":\"#8eadc7\",\"toHeight\":40,\"alphaModle\":100,\"site\":0,\"xaxis\":70,\"yaxis\":-1029,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":\"24\",\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":208,\"map\":\"\"},{\"id\":\"201da294172a\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":162,\"y\":-1218.02},\"endPoint\":{\"x\":360,\"y\":-1221.98},\"name\":2058090,\"isStrLine\":true},{\"startPoint\":{\"x\":360,\"y\":-1221.98},\"endPoint\":{\"x\":360,\"y\":-839},\"name\":2058091,\"isStrLine\":true},{\"startPoint\":{\"x\":360,\"y\":-839},\"endPoint\":{\"x\":162,\"y\":-839},\"name\":2058092,\"isStrLine\":true},{\"startPoint\":{\"x\":162,\"y\":-839},\"endPoint\":{\"x\":162,\"y\":-1218.02},\"name\":2058093,\"isStrLine\":true}],\"entColor\":\"#bddaf4\",\"borderColor\":\"#8eadc7\",\"toHeight\":40,\"alphaModle\":100,\"site\":0,\"xaxis\":235,\"yaxis\":-970,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":\"23\",\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":236,\"map\":\"\"},{\"id\":\"50b57bb0de1e\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":362,\"y\":-1222.04},\"endPoint\":{\"x\":992.6,\"y\":-1245.98},\"name\":2058094,\"isStrLine\":true},{\"startPoint\":{\"x\":992.6,\"y\":-1245.98},\"endPoint\":{\"x\":1388,\"y\":-844.59},\"name\":2058095,\"isStrLine\":true},{\"startPoint\":{\"x\":1388,\"y\":-844.59},\"endPoint\":{\"x\":1388,\"y\":-356},\"name\":2058096,\"isStrLine\":true},{\"startPoint\":{\"x\":1388,\"y\":-356},\"endPoint\":{\"x\":666.53,\"y\":-356},\"name\":2058097,\"isStrLine\":true},{\"startPoint\":{\"x\":666.53,\"y\":-356},\"endPoint\":{\"x\":728.19,\"y\":-497.22},\"name\":2058098,\"isStrLine\":true},{\"startPoint\":{\"x\":728.19,\"y\":-497.22},\"endPoint\":{\"x\":595.2,\"y\":-631.22},\"name\":2058099,\"isStrLine\":true},{\"startPoint\":{\"x\":595.2,\"y\":-631.22},\"endPoint\":{\"x\":383.89,\"y\":-523.58},\"name\":2058100,\"isStrLine\":true},{\"startPoint\":{\"x\":383.89,\"y\":-523.58},\"endPoint\":{\"x\":362,\"y\":-838.03},\"name\":2058101,\"isStrLine\":true},{\"startPoint\":{\"x\":362,\"y\":-838.03},\"endPoint\":{\"x\":362,\"y\":-1222.04},\"name\":2058102,\"isStrLine\":true}],\"entColor\":\"#bddaf4\",\"borderColor\":\"#8eadc7\",\"toHeight\":40,\"alphaModle\":100,\"site\":0,\"xaxis\":903,\"yaxis\":-771,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":18,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":2323,\"map\":\"\"},{\"id\":\"379357c6ac43\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":665.65,\"y\":-354},\"endPoint\":{\"x\":875,\"y\":-354},\"name\":2058103,\"isStrLine\":true},{\"startPoint\":{\"x\":875,\"y\":-354},\"endPoint\":{\"x\":875,\"y\":-188},\"name\":2058104,\"isStrLine\":true},{\"startPoint\":{\"x\":875,\"y\":-188},\"endPoint\":{\"x\":590.55,\"y\":-188},\"name\":2058105,\"isStrLine\":true},{\"startPoint\":{\"x\":590.55,\"y\":-188},\"endPoint\":{\"x\":665.65,\"y\":-354},\"name\":2058106,\"isStrLine\":true}],\"entColor\":\"#bddaf4\",\"borderColor\":\"#8eadc7\",\"toHeight\":40,\"alphaModle\":100,\"site\":0,\"xaxis\":734,\"yaxis\":-271,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":16,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":129,\"map\":\"\"},{\"id\":\"48d5821ae270\",\"name\":\"L2-38\",\"hasLines\":[{\"startPoint\":{\"x\":590.13,\"y\":-186},\"endPoint\":{\"x\":875,\"y\":-186},\"name\":2058107,\"isStrLine\":true},{\"startPoint\":{\"x\":875,\"y\":-186},\"endPoint\":{\"x\":875,\"y\":-43},\"name\":2058108,\"isStrLine\":true},{\"startPoint\":{\"x\":875,\"y\":-43},\"endPoint\":{\"x\":607.88,\"y\":-43},\"name\":2058109,\"isStrLine\":true},{\"startPoint\":{\"x\":607.88,\"y\":-43},\"endPoint\":{\"x\":590.13,\"y\":-186},\"name\":2058110,\"isStrLine\":true}],\"entColor\":\"#bddaf4\",\"borderColor\":\"#8eadc7\",\"toHeight\":40,\"alphaModle\":100,\"site\":0,\"xaxis\":734,\"yaxis\":-103,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":44,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":124,\"map\":\"\"},{\"id\":\"a076fbd9ea92\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":608.13,\"y\":-41},\"endPoint\":{\"x\":875,\"y\":-41},\"name\":2058111,\"isStrLine\":true},{\"startPoint\":{\"x\":875,\"y\":-41},\"endPoint\":{\"x\":875,\"y\":121},\"name\":2058112,\"isStrLine\":true},{\"startPoint\":{\"x\":875,\"y\":121},\"endPoint\":{\"x\":627.89,\"y\":121},\"name\":2058113,\"isStrLine\":true},{\"startPoint\":{\"x\":627.89,\"y\":121},\"endPoint\":{\"x\":608.13,\"y\":-41},\"name\":2058114,\"isStrLine\":true}],\"entColor\":\"#bddaf4\",\"borderColor\":\"#8eadc7\",\"toHeight\":40,\"alphaModle\":100,\"site\":0,\"xaxis\":734,\"yaxis\":42,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":17,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":131,\"map\":\"\"},{\"id\":\"ec86359e2cd1\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":958,\"y\":-354},\"endPoint\":{\"x\":1167,\"y\":-354},\"name\":2058115,\"isStrLine\":true},{\"startPoint\":{\"x\":1167,\"y\":-354},\"endPoint\":{\"x\":1167,\"y\":-188},\"name\":2058116,\"isStrLine\":true},{\"startPoint\":{\"x\":1167,\"y\":-188},\"endPoint\":{\"x\":958,\"y\":-188},\"name\":2058117,\"isStrLine\":true},{\"startPoint\":{\"x\":958,\"y\":-188},\"endPoint\":{\"x\":958,\"y\":-354},\"name\":2058118,\"isStrLine\":true}],\"entColor\":\"#bddaf4\",\"borderColor\":\"#8eadc7\",\"toHeight\":40,\"alphaModle\":100,\"site\":0,\"xaxis\":1026,\"yaxis\":-271,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":16,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":109,\"map\":\"\"},{\"id\":\"8e31a80a770c\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":958,\"y\":-186},\"endPoint\":{\"x\":1167,\"y\":-186},\"name\":2058119,\"isStrLine\":true},{\"startPoint\":{\"x\":1167,\"y\":-186},\"endPoint\":{\"x\":1167,\"y\":-20},\"name\":2058120,\"isStrLine\":true},{\"startPoint\":{\"x\":1167,\"y\":-20},\"endPoint\":{\"x\":958,\"y\":-20},\"name\":2058121,\"isStrLine\":true},{\"startPoint\":{\"x\":958,\"y\":-20},\"endPoint\":{\"x\":958,\"y\":-186},\"name\":2058122,\"isStrLine\":true}],\"entColor\":\"#bddaf4\",\"borderColor\":\"#8eadc7\",\"toHeight\":40,\"alphaModle\":100,\"site\":0,\"xaxis\":1026,\"yaxis\":-103,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":44,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":109,\"map\":\"\"},{\"id\":\"a17e09bf39c3\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":1025,\"y\":107},\"endPoint\":{\"x\":1190,\"y\":107},\"name\":2058123,\"isStrLine\":true},{\"startPoint\":{\"x\":1190,\"y\":107},\"endPoint\":{\"x\":1190,\"y\":272},\"name\":2058124,\"isStrLine\":true},{\"startPoint\":{\"x\":1190,\"y\":272},\"endPoint\":{\"x\":1025,\"y\":272},\"name\":2058125,\"isStrLine\":true},{\"startPoint\":{\"x\":1025,\"y\":272},\"endPoint\":{\"x\":1025,\"y\":107},\"name\":2058126,\"isStrLine\":true}],\"entColor\":\"#bddaf4\",\"borderColor\":\"#8eadc7\",\"toHeight\":40,\"alphaModle\":100,\"site\":0,\"xaxis\":1098,\"yaxis\":208,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":13,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":86,\"map\":\"\"},{\"id\":\"18df7bbf8834\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":1192,\"y\":107},\"endPoint\":{\"x\":1389,\"y\":107},\"name\":2058127,\"isStrLine\":true},{\"startPoint\":{\"x\":1389,\"y\":107},\"endPoint\":{\"x\":1389,\"y\":962},\"name\":2058128,\"isStrLine\":true},{\"startPoint\":{\"x\":1389,\"y\":962},\"endPoint\":{\"x\":904,\"y\":962},\"name\":2058129,\"isStrLine\":true},{\"startPoint\":{\"x\":904,\"y\":962},\"endPoint\":{\"x\":904,\"y\":607.32},\"name\":2058130,\"isStrLine\":true},{\"startPoint\":{\"x\":904,\"y\":607.32},\"endPoint\":{\"x\":1025,\"y\":437.32},\"name\":2058131,\"isStrLine\":true},{\"startPoint\":{\"x\":1025,\"y\":437.32},\"endPoint\":{\"x\":1025,\"y\":274},\"name\":2058132,\"isStrLine\":true},{\"startPoint\":{\"x\":1025,\"y\":274},\"endPoint\":{\"x\":1192,\"y\":274},\"name\":2058133,\"isStrLine\":true},{\"startPoint\":{\"x\":1192,\"y\":274},\"endPoint\":{\"x\":1192,\"y\":107},\"name\":2058134,\"isStrLine\":true}],\"entColor\":\"#bddaf4\",\"borderColor\":\"#8eadc7\",\"toHeight\":40,\"alphaModle\":100,\"site\":0,\"xaxis\":1198,\"yaxis\":500,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":9,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":1047,\"map\":\"\"},{\"id\":\"957a66c78938\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":701,\"y\":594},\"endPoint\":{\"x\":840,\"y\":594},\"name\":2058135,\"isStrLine\":true},{\"startPoint\":{\"x\":840,\"y\":594},\"endPoint\":{\"x\":840,\"y\":827},\"name\":2058136,\"isStrLine\":true},{\"startPoint\":{\"x\":840,\"y\":827},\"endPoint\":{\"x\":701,\"y\":827},\"name\":2058137,\"isStrLine\":true},{\"startPoint\":{\"x\":701,\"y\":827},\"endPoint\":{\"x\":701,\"y\":594},\"name\":2058138,\"isStrLine\":true}],\"entColor\":\"#bddaf4\",\"borderColor\":\"#8eadc7\",\"toHeight\":40,\"alphaModle\":100,\"site\":0,\"xaxis\":770.5,\"yaxis\":710.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":41,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":102,\"map\":\"\"},{\"id\":\"61ca7636a619\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":605.14,\"y\":594},\"endPoint\":{\"x\":664,\"y\":594},\"name\":2058139,\"isStrLine\":true},{\"startPoint\":{\"x\":664,\"y\":594},\"endPoint\":{\"x\":664,\"y\":827},\"name\":2058140,\"isStrLine\":true},{\"startPoint\":{\"x\":664,\"y\":827},\"endPoint\":{\"x\":496,\"y\":827},\"name\":2058141,\"isStrLine\":true},{\"startPoint\":{\"x\":496,\"y\":827},\"endPoint\":{\"x\":496,\"y\":624.76},\"name\":2058142,\"isStrLine\":true},{\"startPoint\":{\"x\":496,\"y\":624.76},\"endPoint\":{\"x\":605.14,\"y\":594},\"name\":2058143,\"isStrLine\":true}],\"entColor\":\"#bddaf4\",\"borderColor\":\"#8eadc7\",\"toHeight\":40,\"alphaModle\":100,\"site\":0,\"xaxis\":629.5,\"yaxis\":710.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":40,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":118,\"map\":\"\"},{\"id\":\"66ed0a62776a\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":494,\"y\":625.26},\"endPoint\":{\"x\":494,\"y\":827.01},\"name\":2058144,\"isStrLine\":true},{\"startPoint\":{\"x\":494,\"y\":827.01},\"endPoint\":{\"x\":347,\"y\":828.99},\"name\":2058145,\"isStrLine\":true},{\"startPoint\":{\"x\":347,\"y\":828.99},\"endPoint\":{\"x\":347,\"y\":659.79},\"name\":2058146,\"isStrLine\":true},{\"startPoint\":{\"x\":347,\"y\":659.79},\"endPoint\":{\"x\":494,\"y\":625.26},\"name\":2058147,\"isStrLine\":true}],\"entColor\":\"#bddaf4\",\"borderColor\":\"#8eadc7\",\"toHeight\":40,\"alphaModle\":100,\"site\":0,\"xaxis\":459.5,\"yaxis\":710.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":39,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":86,\"map\":\"\"},{\"id\":\"f6e4f6204fc8\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":345,\"y\":660.32},\"endPoint\":{\"x\":345,\"y\":829},\"name\":2058148,\"isStrLine\":true},{\"startPoint\":{\"x\":345,\"y\":829},\"endPoint\":{\"x\":175,\"y\":829},\"name\":2058149,\"isStrLine\":true},{\"startPoint\":{\"x\":175,\"y\":829},\"endPoint\":{\"x\":175,\"y\":707.76},\"name\":2058150,\"isStrLine\":true},{\"startPoint\":{\"x\":175,\"y\":707.76},\"endPoint\":{\"x\":345,\"y\":660.32},\"name\":2058151,\"isStrLine\":true}],\"entColor\":\"#bddaf4\",\"borderColor\":\"#8eadc7\",\"toHeight\":40,\"alphaModle\":100,\"site\":0,\"xaxis\":310.5,\"yaxis\":710.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":38,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":78,\"map\":\"\"},{\"id\":\"6d824f3b1f33\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-358,\"y\":698},\"endPoint\":{\"x\":-142,\"y\":698},\"name\":2058152,\"isStrLine\":true},{\"startPoint\":{\"x\":-142,\"y\":698},\"endPoint\":{\"x\":-142,\"y\":940},\"name\":2058153,\"isStrLine\":true},{\"startPoint\":{\"x\":-142,\"y\":940},\"endPoint\":{\"x\":-358,\"y\":940},\"name\":2058154,\"isStrLine\":true},{\"startPoint\":{\"x\":-358,\"y\":940},\"endPoint\":{\"x\":-358,\"y\":698},\"name\":2058155,\"isStrLine\":true}],\"entColor\":\"#bddaf4\",\"borderColor\":\"#8eadc7\",\"toHeight\":40,\"alphaModle\":100,\"site\":0,\"xaxis\":-221,\"yaxis\":824.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":36,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":164,\"map\":\"\"},{\"id\":\"8dd475514f7c\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-573,\"y\":698},\"endPoint\":{\"x\":-360,\"y\":698},\"name\":2058156,\"isStrLine\":true},{\"startPoint\":{\"x\":-360,\"y\":698},\"endPoint\":{\"x\":-360,\"y\":1162},\"name\":2058157,\"isStrLine\":true},{\"startPoint\":{\"x\":-360,\"y\":1162},\"endPoint\":{\"x\":-573,\"y\":1162},\"name\":2058158,\"isStrLine\":true},{\"startPoint\":{\"x\":-573,\"y\":1162},\"endPoint\":{\"x\":-573,\"y\":698},\"name\":2058159,\"isStrLine\":true}],\"entColor\":\"#bddaf4\",\"borderColor\":\"#8eadc7\",\"toHeight\":40,\"alphaModle\":100,\"site\":0,\"xaxis\":-462.5,\"yaxis\":929,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":35,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":309,\"map\":\"\"},{\"id\":\"b5d5ae9e8f29\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-575,\"y\":698},\"endPoint\":{\"x\":-575,\"y\":1162},\"name\":2058160,\"isStrLine\":true},{\"startPoint\":{\"x\":-575,\"y\":1162},\"endPoint\":{\"x\":-713,\"y\":1162},\"name\":2058161,\"isStrLine\":true},{\"startPoint\":{\"x\":-713,\"y\":1162},\"endPoint\":{\"x\":-713,\"y\":1270},\"name\":2058162,\"isStrLine\":true},{\"startPoint\":{\"x\":-713,\"y\":1270},\"endPoint\":{\"x\":-1360,\"y\":1270},\"name\":2058163,\"isStrLine\":true},{\"startPoint\":{\"x\":-1360,\"y\":1270},\"endPoint\":{\"x\":-1359,\"y\":698},\"name\":2058164,\"isStrLine\":true},{\"startPoint\":{\"x\":-1359,\"y\":698},\"endPoint\":{\"x\":-575,\"y\":698},\"name\":2058165,\"isStrLine\":true}],\"entColor\":\"#bddaf4\",\"borderColor\":\"#8eadc7\",\"toHeight\":40,\"alphaModle\":100,\"site\":0,\"xaxis\":-677.5,\"yaxis\":929,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":34,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":1347,\"map\":\"\"},{\"id\":\"07dbf87ec9ca\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-1359,\"y\":528},\"endPoint\":{\"x\":-1013,\"y\":528},\"name\":2058166,\"isStrLine\":true},{\"startPoint\":{\"x\":-1013,\"y\":528},\"endPoint\":{\"x\":-1013,\"y\":696},\"name\":2058167,\"isStrLine\":true},{\"startPoint\":{\"x\":-1013,\"y\":696},\"endPoint\":{\"x\":-1359,\"y\":696},\"name\":2058168,\"isStrLine\":true},{\"startPoint\":{\"x\":-1359,\"y\":696},\"endPoint\":{\"x\":-1359,\"y\":528},\"name\":2058169,\"isStrLine\":true}],\"entColor\":\"#bddaf4\",\"borderColor\":\"#8eadc7\",\"toHeight\":40,\"alphaModle\":100,\"site\":0,\"xaxis\":-1186,\"yaxis\":630,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":5,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":183,\"map\":\"\"},{\"id\":\"545c678f81aa\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-1359,\"y\":381},\"endPoint\":{\"x\":-1013,\"y\":381},\"name\":2058170,\"isStrLine\":true},{\"startPoint\":{\"x\":-1013,\"y\":381},\"endPoint\":{\"x\":-1013,\"y\":526},\"name\":2058171,\"isStrLine\":true},{\"startPoint\":{\"x\":-1013,\"y\":526},\"endPoint\":{\"x\":-1359,\"y\":526},\"name\":2058172,\"isStrLine\":true},{\"startPoint\":{\"x\":-1359,\"y\":526},\"endPoint\":{\"x\":-1359,\"y\":381},\"name\":2058173,\"isStrLine\":true}],\"entColor\":\"#bddaf4\",\"borderColor\":\"#8eadc7\",\"toHeight\":40,\"alphaModle\":100,\"site\":0,\"xaxis\":-1186,\"yaxis\":460,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":32,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":158,\"map\":\"\"},{\"id\":\"93c74f6f2e91\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-1361,\"y\":107},\"endPoint\":{\"x\":-1015,\"y\":107},\"name\":2058174,\"isStrLine\":true},{\"startPoint\":{\"x\":-1015,\"y\":107},\"endPoint\":{\"x\":-1015,\"y\":293},\"name\":2058175,\"isStrLine\":true},{\"startPoint\":{\"x\":-1015,\"y\":293},\"endPoint\":{\"x\":-1361,\"y\":293},\"name\":2058176,\"isStrLine\":true},{\"startPoint\":{\"x\":-1361,\"y\":293},\"endPoint\":{\"x\":-1361,\"y\":107},\"name\":2058177,\"isStrLine\":true}],\"entColor\":\"#bddaf4\",\"borderColor\":\"#8eadc7\",\"toHeight\":40,\"alphaModle\":100,\"site\":0,\"xaxis\":-1188,\"yaxis\":227,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":31,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":202,\"map\":\"\"},{\"id\":\"d15fbd67a037\",\"name\":\"L2-13\",\"hasLines\":[{\"startPoint\":{\"x\":-1171,\"y\":-373},\"endPoint\":{\"x\":-1024,\"y\":-373},\"name\":2058178,\"isStrLine\":true},{\"startPoint\":{\"x\":-1024,\"y\":-373},\"endPoint\":{\"x\":-1024,\"y\":-43},\"name\":2058179,\"isStrLine\":true},{\"startPoint\":{\"x\":-1024,\"y\":-43},\"endPoint\":{\"x\":-1171,\"y\":-43},\"name\":2058180,\"isStrLine\":true},{\"startPoint\":{\"x\":-1171,\"y\":-43},\"endPoint\":{\"x\":-1171,\"y\":-373},\"name\":2058181,\"isStrLine\":true}],\"entColor\":\"#bddaf4\",\"borderColor\":\"#8eadc7\",\"toHeight\":40,\"alphaModle\":100,\"site\":0,\"xaxis\":-1090.5,\"yaxis\":-161.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":28,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":153,\"map\":\"\"},{\"id\":\"c5a5eee0328b\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-1171,\"y\":-716},\"endPoint\":{\"x\":-1024,\"y\":-716},\"name\":2058182,\"isStrLine\":true},{\"startPoint\":{\"x\":-1024,\"y\":-716},\"endPoint\":{\"x\":-1024,\"y\":-375},\"name\":2058183,\"isStrLine\":true},{\"startPoint\":{\"x\":-1024,\"y\":-375},\"endPoint\":{\"x\":-1171,\"y\":-375},\"name\":2058184,\"isStrLine\":true},{\"startPoint\":{\"x\":-1171,\"y\":-375},\"endPoint\":{\"x\":-1171,\"y\":-716},\"name\":2058185,\"isStrLine\":true}],\"entColor\":\"#bddaf4\",\"borderColor\":\"#8eadc7\",\"toHeight\":40,\"alphaModle\":100,\"site\":0,\"xaxis\":-1097,\"yaxis\":-521,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":26,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":158,\"map\":\"\"},{\"id\":\"5e30127b423c\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-920,\"y\":-357.46},\"endPoint\":{\"x\":-771.24,\"y\":-453.66},\"name\":2058186,\"isStrLine\":true},{\"startPoint\":{\"x\":-771.24,\"y\":-453.66},\"endPoint\":{\"x\":-697.37,\"y\":-356.15},\"name\":2058187,\"isStrLine\":true},{\"startPoint\":{\"x\":-697.37,\"y\":-356.15},\"endPoint\":{\"x\":-744,\"y\":-316.46},\"name\":2058188,\"isStrLine\":true},{\"startPoint\":{\"x\":-744,\"y\":-316.46},\"endPoint\":{\"x\":-744,\"y\":-223},\"name\":2058189,\"isStrLine\":true},{\"startPoint\":{\"x\":-744,\"y\":-223},\"endPoint\":{\"x\":-920,\"y\":-223},\"name\":2058190,\"isStrLine\":true},{\"startPoint\":{\"x\":-920,\"y\":-223},\"endPoint\":{\"x\":-920,\"y\":-357.46},\"name\":2058191,\"isStrLine\":true}],\"entColor\":\"#bddaf4\",\"borderColor\":\"#8eadc7\",\"toHeight\":40,\"alphaModle\":100,\"site\":0,\"xaxis\":-832,\"yaxis\":-290,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":27,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":111,\"map\":\"\"},{\"id\":\"3087d8af6b85\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-920,\"y\":-221},\"endPoint\":{\"x\":-744,\"y\":-221},\"name\":2058192,\"isStrLine\":true},{\"startPoint\":{\"x\":-744,\"y\":-221},\"endPoint\":{\"x\":-744,\"y\":-46},\"name\":2058193,\"isStrLine\":true},{\"startPoint\":{\"x\":-744,\"y\":-46},\"endPoint\":{\"x\":-920,\"y\":-46},\"name\":2058194,\"isStrLine\":true},{\"startPoint\":{\"x\":-920,\"y\":-46},\"endPoint\":{\"x\":-920,\"y\":-221},\"name\":2058195,\"isStrLine\":true}],\"entColor\":\"#bddaf4\",\"borderColor\":\"#8eadc7\",\"toHeight\":40,\"alphaModle\":100,\"site\":0,\"xaxis\":-832,\"yaxis\":-57,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":29,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":97,\"map\":\"\"},{\"id\":\"9b849819720d\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-920,\"y\":-44},\"endPoint\":{\"x\":-743.78,\"y\":-44},\"name\":2058196,\"isStrLine\":true},{\"startPoint\":{\"x\":-743.78,\"y\":-44},\"endPoint\":{\"x\":-721.05,\"y\":47.9},\"name\":2058197,\"isStrLine\":true},{\"startPoint\":{\"x\":-721.05,\"y\":47.9},\"endPoint\":{\"x\":-801.64,\"y\":223},\"name\":2058198,\"isStrLine\":true},{\"startPoint\":{\"x\":-801.64,\"y\":223},\"endPoint\":{\"x\":-920,\"y\":223},\"name\":2058199,\"isStrLine\":true},{\"startPoint\":{\"x\":-920,\"y\":223},\"endPoint\":{\"x\":-920,\"y\":-44},\"name\":2058200,\"isStrLine\":true}],\"entColor\":\"#bddaf4\",\"borderColor\":\"#8eadc7\",\"toHeight\":40,\"alphaModle\":100,\"site\":0,\"xaxis\":-832,\"yaxis\":120,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":30,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":142,\"map\":\"\"},{\"id\":\"6fa0831a73c2\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-683.67,\"y\":-515.86},\"endPoint\":{\"x\":-533.68,\"y\":-653.93},\"name\":2058201,\"isStrLine\":true},{\"startPoint\":{\"x\":-533.68,\"y\":-653.93},\"endPoint\":{\"x\":-416,\"y\":-634.15},\"name\":2058202,\"isStrLine\":true},{\"startPoint\":{\"x\":-416,\"y\":-634.15},\"endPoint\":{\"x\":-416,\"y\":-415.28},\"name\":2058203,\"isStrLine\":true},{\"startPoint\":{\"x\":-416,\"y\":-415.28},\"endPoint\":{\"x\":-528.7,\"y\":-442.96},\"name\":2058204,\"isStrLine\":true},{\"startPoint\":{\"x\":-528.7,\"y\":-442.96},\"endPoint\":{\"x\":-582.46,\"y\":-442.9},\"name\":2058205,\"isStrLine\":false,\"ctrlPoint1\":{\"x\":-549.89,\"y\":-451.03},\"ctrlPoint2\":{\"x\":-564.23,\"y\":-448.98}},{\"startPoint\":{\"x\":-582.46,\"y\":-442.9},\"endPoint\":{\"x\":-614.77,\"y\":-419.4},\"name\":2058206,\"isStrLine\":true},{\"startPoint\":{\"x\":-614.77,\"y\":-419.4},\"endPoint\":{\"x\":-683.67,\"y\":-515.86},\"name\":2058207,\"isStrLine\":true}],\"entColor\":\"#bddaf4\",\"borderColor\":\"#8eadc7\",\"toHeight\":40,\"alphaModle\":100,\"site\":0,\"xaxis\":-547.5,\"yaxis\":-540.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":20,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":142,\"map\":\"\"},{\"id\":\"b128ac0beef5\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-414,\"y\":-414.76},\"endPoint\":{\"x\":-414,\"y\":-633.84},\"name\":2058208,\"isStrLine\":true},{\"startPoint\":{\"x\":-414,\"y\":-633.84},\"endPoint\":{\"x\":-261,\"y\":-611.14},\"name\":2058209,\"isStrLine\":true},{\"startPoint\":{\"x\":-261,\"y\":-611.14},\"endPoint\":{\"x\":-261,\"y\":-371.32},\"name\":2058210,\"isStrLine\":true},{\"startPoint\":{\"x\":-261,\"y\":-371.32},\"endPoint\":{\"x\":-414,\"y\":-414.76},\"name\":2058211,\"isStrLine\":true}],\"entColor\":\"#bddaf4\",\"borderColor\":\"#8eadc7\",\"toHeight\":40,\"alphaModle\":100,\"site\":0,\"xaxis\":-337.5,\"yaxis\":-521.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":\"47\",\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":111,\"map\":\"\"},{\"id\":\"10c8a8d00052\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-259,\"y\":-370.76},\"endPoint\":{\"x\":-259,\"y\":-610.85},\"name\":2058212,\"isStrLine\":true},{\"startPoint\":{\"x\":-259,\"y\":-610.85},\"endPoint\":{\"x\":-88,\"y\":-586.13},\"name\":2058213,\"isStrLine\":true},{\"startPoint\":{\"x\":-88,\"y\":-586.13},\"endPoint\":{\"x\":-88,\"y\":-352},\"name\":2058214,\"isStrLine\":true},{\"startPoint\":{\"x\":-88,\"y\":-352},\"endPoint\":{\"x\":-190.86,\"y\":-352},\"name\":2058215,\"isStrLine\":true},{\"startPoint\":{\"x\":-190.86,\"y\":-352},\"endPoint\":{\"x\":-259,\"y\":-370.76},\"name\":2058216,\"isStrLine\":true}],\"entColor\":\"#bddaf4\",\"borderColor\":\"#8eadc7\",\"toHeight\":40,\"alphaModle\":100,\"site\":0,\"xaxis\":-182.5,\"yaxis\":-521.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":\"46\",\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":131,\"map\":\"\"},{\"id\":\"d66ebf639afc\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":30,\"y\":-574.22},\"endPoint\":{\"x\":372.09,\"y\":-661.73},\"name\":2058217,\"isStrLine\":true},{\"startPoint\":{\"x\":372.09,\"y\":-661.73},\"endPoint\":{\"x\":381.96,\"y\":-522.58},\"name\":2058218,\"isStrLine\":true},{\"startPoint\":{\"x\":381.96,\"y\":-522.58},\"endPoint\":{\"x\":133.59,\"y\":-389.91},\"name\":2058219,\"isStrLine\":true},{\"startPoint\":{\"x\":133.59,\"y\":-389.91},\"endPoint\":{\"x\":29,\"y\":-449},\"name\":2058220,\"isStrLine\":false,\"ctrlPoint1\":{\"x\":88.05,\"y\":-373.08},\"ctrlPoint2\":{\"x\":30,\"y\":-400.63}},{\"startPoint\":{\"x\":29,\"y\":-449},\"endPoint\":{\"x\":30,\"y\":-574.22},\"name\":2058221,\"isStrLine\":true}],\"entColor\":\"#bddaf4\",\"borderColor\":\"#8eadc7\",\"toHeight\":40,\"alphaModle\":100,\"site\":0,\"xaxis\":202.5,\"yaxis\":-526,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":\"45\",\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":197,\"map\":\"\"},{\"id\":\"5afca8777b11\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-407.7,\"y\":552.55},\"endPoint\":{\"x\":-271.6,\"y\":496.51},\"name\":2058222,\"isStrLine\":true},{\"startPoint\":{\"x\":-271.6,\"y\":496.51},\"endPoint\":{\"x\":-311.59,\"y\":420.53},\"name\":2058223,\"isStrLine\":true},{\"startPoint\":{\"x\":-311.59,\"y\":420.53},\"endPoint\":{\"x\":-166.61,\"y\":364.92},\"name\":2058224,\"isStrLine\":true},{\"startPoint\":{\"x\":-166.61,\"y\":364.92},\"endPoint\":{\"x\":-93.23,\"y\":358.97},\"name\":2058225,\"isStrLine\":false,\"ctrlPoint1\":{\"x\":-145.73,\"y\":354.98},\"ctrlPoint2\":{\"x\":-117.09,\"y\":352.01}},{\"startPoint\":{\"x\":-93.23,\"y\":358.97},\"endPoint\":{\"x\":219.8,\"y\":414.98},\"name\":2058226,\"isStrLine\":true},{\"startPoint\":{\"x\":219.8,\"y\":414.98},\"endPoint\":{\"x\":301.63,\"y\":395.79},\"name\":2058227,\"isStrLine\":false,\"ctrlPoint1\":{\"x\":251.08,\"y\":422.04},\"ctrlPoint2\":{\"x\":274.45,\"y\":412.9}},{\"startPoint\":{\"x\":301.63,\"y\":395.79},\"endPoint\":{\"x\":379.12,\"y\":319.29},\"name\":2058228,\"isStrLine\":true},{\"startPoint\":{\"x\":379.12,\"y\":319.29},\"endPoint\":{\"x\":470,\"y\":381.53},\"name\":2058229,\"isStrLine\":true},{\"startPoint\":{\"x\":470,\"y\":381.53},\"endPoint\":{\"x\":471,\"y\":495.98},\"name\":2058230,\"isStrLine\":true},{\"startPoint\":{\"x\":471,\"y\":495.98},\"endPoint\":{\"x\":442.66,\"y\":545.06},\"name\":2058231,\"isStrLine\":false,\"ctrlPoint1\":{\"x\":470.01,\"y\":517.78},\"ctrlPoint2\":{\"x\":462.23,\"y\":536.25}},{\"startPoint\":{\"x\":442.66,\"y\":545.06},\"endPoint\":{\"x\":189.86,\"y\":615},\"name\":2058232,\"isStrLine\":true},{\"startPoint\":{\"x\":189.86,\"y\":615},\"endPoint\":{\"x\":-382.33,\"y\":615},\"name\":2058233,\"isStrLine\":true},{\"startPoint\":{\"x\":-382.33,\"y\":615},\"endPoint\":{\"x\":-407.7,\"y\":552.55},\"name\":2058234,\"isStrLine\":true}],\"entColor\":\"#bddaf4\",\"borderColor\":\"#8eadc7\",\"toHeight\":40,\"alphaModle\":100,\"site\":0,\"xaxis\":34,\"yaxis\":492.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":37,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":554,\"map\":\"\"},{\"id\":\"780bdc8c55c2\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-255,\"y\":-997},\"endPoint\":{\"x\":-64,\"y\":-997},\"name\":2058235,\"isStrLine\":true},{\"startPoint\":{\"x\":-64,\"y\":-997},\"endPoint\":{\"x\":-64,\"y\":-841},\"name\":2058236,\"isStrLine\":true},{\"startPoint\":{\"x\":-64,\"y\":-841},\"endPoint\":{\"x\":-255,\"y\":-841},\"name\":2058237,\"isStrLine\":true},{\"startPoint\":{\"x\":-255,\"y\":-841},\"endPoint\":{\"x\":-255,\"y\":-997},\"name\":2058238,\"isStrLine\":true}],\"entColor\":\"#bddaf4\",\"borderColor\":\"#8eadc7\",\"toHeight\":40,\"alphaModle\":100,\"site\":0,\"xaxis\":-162,\"yaxis\":-882.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":\"25\",\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":94,\"map\":\"\"}],\"path\":{\"nodes\":[{\"id\":0,\"x\":-722,\"y\":-1177,\"Proy\":\"graph\",\"list\":[{\"cost\":382,\"id\":1}]},{\"id\":1,\"x\":-717,\"y\":-795,\"Proy\":\"graph\",\"list\":[{\"cost\":382,\"id\":0},{\"cost\":168,\"id\":3},{\"cost\":172,\"id\":21}]},{\"id\":2,\"x\":313,\"y\":-807,\"Proy\":\"graph\",\"list\":[{\"cost\":132,\"id\":18},{\"cost\":85,\"id\":23}]},{\"id\":3,\"x\":-885,\"y\":-792,\"Proy\":\"graph\",\"list\":[{\"cost\":168,\"id\":1},{\"cost\":128,\"id\":4}]},{\"id\":4,\"x\":-965,\"y\":-692,\"Proy\":\"graph\",\"list\":[{\"cost\":128,\"id\":3},{\"cost\":178,\"id\":26}]},{\"id\":5,\"x\":-960,\"y\":653,\"Proy\":\"graph\",\"list\":[{\"cost\":81,\"id\":33},{\"cost\":234,\"id\":34}]},{\"id\":6,\"x\":180,\"y\":660,\"Proy\":\"graph\",\"list\":[{\"cost\":211,\"id\":37},{\"cost\":66,\"id\":38}]},{\"id\":7,\"x\":536,\"y\":568,\"Proy\":\"graph\",\"list\":[{\"cost\":285,\"id\":11},{\"cost\":146,\"id\":39},{\"cost\":80,\"id\":40}]},{\"id\":8,\"x\":888,\"y\":570,\"Proy\":\"graph\",\"list\":[{\"cost\":180,\"id\":9},{\"cost\":129,\"id\":41}]},{\"id\":9,\"x\":1000,\"y\":428,\"Proy\":\"graph\",\"list\":[{\"cost\":180,\"id\":8},{\"cost\":254,\"id\":13}]},{\"id\":10,\"x\":999,\"y\":66,\"Proy\":\"graph\",\"list\":[{\"cost\":108,\"id\":13},{\"cost\":79,\"id\":17},{\"cost\":91,\"id\":42}]},{\"id\":11,\"x\":535,\"y\":283,\"Proy\":\"graph\",\"list\":[{\"cost\":285,\"id\":7},{\"cost\":127,\"id\":12}]},{\"id\":12,\"x\":608,\"y\":178,\"Proy\":\"graph\",\"list\":[{\"cost\":127,\"id\":11},{\"cost\":313,\"id\":15}]},{\"id\":13,\"x\":998,\"y\":174,\"Proy\":\"graph\",\"list\":[{\"cost\":254,\"id\":9},{\"cost\":108,\"id\":10},{\"cost\":77,\"id\":15}]},{\"id\":14,\"x\":1358,\"y\":63,\"Proy\":\"graph\",\"list\":[{\"cost\":93,\"id\":43}]},{\"id\":15,\"x\":921,\"y\":174,\"Proy\":\"graph\",\"list\":[{\"cost\":313,\"id\":12},{\"cost\":77,\"id\":13},{\"cost\":107,\"id\":17}]},{\"id\":16,\"x\":920,\"y\":-285,\"Proy\":\"graph\",\"list\":[{\"cost\":194,\"id\":44}]},{\"id\":17,\"x\":920,\"y\":67,\"Proy\":\"graph\",\"list\":[{\"cost\":79,\"id\":10},{\"cost\":107,\"id\":15},{\"cost\":158,\"id\":44}]},{\"id\":18,\"x\":315,\"y\":-675,\"Proy\":\"graph\",\"list\":[{\"cost\":132,\"id\":2},{\"cost\":118,\"id\":45}]},{\"id\":19,\"x\":40,\"y\":-597,\"Proy\":\"graph\",\"list\":[{\"cost\":167,\"id\":45},{\"cost\":183,\"id\":46}]},{\"id\":20,\"x\":-548,\"y\":-690,\"Proy\":\"graph\",\"list\":[{\"cost\":108,\"id\":21},{\"cost\":507,\"id\":22},{\"cost\":209,\"id\":47}]},{\"id\":21,\"x\":-545,\"y\":-798,\"Proy\":\"graph\",\"list\":[{\"cost\":172,\"id\":1},{\"cost\":108,\"id\":20},{\"cost\":201,\"id\":48}]},{\"id\":22,\"x\":-964,\"y\":-399,\"Proy\":\"graph\",\"list\":[{\"cost\":507,\"id\":20},{\"cost\":115,\"id\":26},{\"cost\":123,\"id\":27}]},{\"id\":23,\"x\":228,\"y\":-807,\"Proy\":\"graph\",\"list\":[{\"cost\":85,\"id\":2},{\"cost\":135,\"id\":24}]},{\"id\":24,\"x\":93,\"y\":-805,\"Proy\":\"graph\",\"list\":[{\"cost\":135,\"id\":23},{\"cost\":250,\"id\":25}]},{\"id\":25,\"x\":-157,\"y\":-802,\"Proy\":\"graph\",\"list\":[{\"cost\":250,\"id\":24},{\"cost\":187,\"id\":48}]},{\"id\":26,\"x\":-965,\"y\":-514,\"Proy\":\"graph\",\"list\":[{\"cost\":178,\"id\":4},{\"cost\":115,\"id\":22}]},{\"id\":27,\"x\":-964,\"y\":-276,\"Proy\":\"graph\",\"list\":[{\"cost\":123,\"id\":22},{\"cost\":88,\"id\":28}]},{\"id\":28,\"x\":-964,\"y\":-188,\"Proy\":\"graph\",\"list\":[{\"cost\":88,\"id\":27},{\"cost\":70,\"id\":29}]},{\"id\":29,\"x\":-963,\"y\":-118,\"Proy\":\"graph\",\"list\":[{\"cost\":70,\"id\":28},{\"cost\":190,\"id\":30}]},{\"id\":30,\"x\":-963,\"y\":72,\"Proy\":\"graph\",\"list\":[{\"cost\":190,\"id\":29},{\"cost\":127,\"id\":31}]},{\"id\":31,\"x\":-962,\"y\":199,\"Proy\":\"graph\",\"list\":[{\"cost\":127,\"id\":30},{\"cost\":243,\"id\":32}]},{\"id\":32,\"x\":-961,\"y\":442,\"Proy\":\"graph\",\"list\":[{\"cost\":243,\"id\":31},{\"cost\":130,\"id\":33}]},{\"id\":33,\"x\":-961,\"y\":572,\"Proy\":\"graph\",\"list\":[{\"cost\":81,\"id\":5},{\"cost\":130,\"id\":32}]},{\"id\":34,\"x\":-726,\"y\":654,\"Proy\":\"graph\",\"list\":[{\"cost\":234,\"id\":5},{\"cost\":242,\"id\":35}]},{\"id\":35,\"x\":-484,\"y\":655,\"Proy\":\"graph\",\"list\":[{\"cost\":242,\"id\":34},{\"cost\":215,\"id\":36}]},{\"id\":36,\"x\":-269,\"y\":657,\"Proy\":\"graph\",\"list\":[{\"cost\":215,\"id\":35},{\"cost\":238,\"id\":37}]},{\"id\":37,\"x\":-31,\"y\":658,\"Proy\":\"graph\",\"list\":[{\"cost\":211,\"id\":6},{\"cost\":238,\"id\":36}]},{\"id\":38,\"x\":244,\"y\":643,\"Proy\":\"graph\",\"list\":[{\"cost\":66,\"id\":6},{\"cost\":154,\"id\":39}]},{\"id\":39,\"x\":394,\"y\":604,\"Proy\":\"graph\",\"list\":[{\"cost\":146,\"id\":7},{\"cost\":154,\"id\":38}]},{\"id\":40,\"x\":616,\"y\":568,\"Proy\":\"graph\",\"list\":[{\"cost\":80,\"id\":7},{\"cost\":143,\"id\":41}]},{\"id\":41,\"x\":759,\"y\":569,\"Proy\":\"graph\",\"list\":[{\"cost\":129,\"id\":8},{\"cost\":143,\"id\":40}]},{\"id\":42,\"x\":1090,\"y\":65,\"Proy\":\"graph\",\"list\":[{\"cost\":91,\"id\":10},{\"cost\":175,\"id\":43},{\"cost\":55,\"id\":50}]},{\"id\":43,\"x\":1265,\"y\":64,\"Proy\":\"graph\",\"list\":[{\"cost\":93,\"id\":14},{\"cost\":175,\"id\":42}]},{\"id\":44,\"x\":920,\"y\":-91,\"Proy\":\"graph\",\"list\":[{\"cost\":194,\"id\":16},{\"cost\":158,\"id\":17}]},{\"id\":45,\"x\":201,\"y\":-643,\"Proy\":\"graph\",\"list\":[{\"cost\":118,\"id\":18},{\"cost\":167,\"id\":19}]},{\"id\":46,\"x\":-141,\"y\":-626,\"Proy\":\"graph\",\"list\":[{\"cost\":183,\"id\":19},{\"cost\":202,\"id\":47}]},{\"id\":47,\"x\":-341,\"y\":-658,\"Proy\":\"graph\",\"list\":[{\"cost\":209,\"id\":20},{\"cost\":202,\"id\":46},{\"cost\":143,\"id\":48}]},{\"id\":48,\"x\":-344,\"y\":-801,\"Proy\":\"graph\",\"list\":[{\"cost\":201,\"id\":21},{\"cost\":187,\"id\":25},{\"cost\":143,\"id\":47},{\"cost\":136,\"id\":49}]},{\"id\":49,\"x\":-345,\"y\":-937,\"Proy\":\"graph\",\"list\":[{\"cost\":136,\"id\":48}]},{\"id\":50,\"x\":1090,\"y\":10,\"Proy\":\"graph\",\"list\":[{\"cost\":55,\"id\":42}]}]},\"decos\":[{\"id\":\"ef0d9f355699\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":-1362,\"y\":-714},\"endPoint\":{\"x\":-1175,\"y\":-714},\"name\":2059560,\"isStrLine\":true},{\"startPoint\":{\"x\":-1175,\"y\":-714},\"endPoint\":{\"x\":-1175,\"y\":104},\"name\":2059561,\"isStrLine\":true},{\"startPoint\":{\"x\":-1175,\"y\":104},\"endPoint\":{\"x\":-1362,\"y\":104},\"name\":2059562,\"isStrLine\":true},{\"startPoint\":{\"x\":-1362,\"y\":104},\"endPoint\":{\"x\":-1362,\"y\":-714},\"name\":2059563,\"isStrLine\":true}],\"entColor\":\"#f0f0f0\",\"borderColor\":\"#d9d9d9\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":-1266,\"yaxis\":-305,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":472,\"map\":\"\"},{\"id\":\"5c9f99ffb98a\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":-359,\"y\":941},\"endPoint\":{\"x\":-141,\"y\":941},\"name\":2059564,\"isStrLine\":true},{\"startPoint\":{\"x\":-141,\"y\":941},\"endPoint\":{\"x\":-141,\"y\":697},\"name\":2059565,\"isStrLine\":true},{\"startPoint\":{\"x\":-141,\"y\":697},\"endPoint\":{\"x\":95,\"y\":697},\"name\":2059566,\"isStrLine\":true},{\"startPoint\":{\"x\":95,\"y\":697},\"endPoint\":{\"x\":95,\"y\":868},\"name\":2059567,\"isStrLine\":true},{\"startPoint\":{\"x\":95,\"y\":868},\"endPoint\":{\"x\":322,\"y\":868},\"name\":2059568,\"isStrLine\":true},{\"startPoint\":{\"x\":322,\"y\":868},\"endPoint\":{\"x\":322,\"y\":964},\"name\":2059569,\"isStrLine\":true},{\"startPoint\":{\"x\":322,\"y\":964},\"endPoint\":{\"x\":-23,\"y\":966},\"name\":2059570,\"isStrLine\":true},{\"startPoint\":{\"x\":-23,\"y\":966},\"endPoint\":{\"x\":-23,\"y\":1166},\"name\":2059571,\"isStrLine\":true},{\"startPoint\":{\"x\":-23,\"y\":1166},\"endPoint\":{\"x\":-357,\"y\":1166},\"name\":2059572,\"isStrLine\":true},{\"startPoint\":{\"x\":-357,\"y\":1166},\"endPoint\":{\"x\":-359,\"y\":941},\"name\":2059573,\"isStrLine\":true}],\"entColor\":\"#f0f0f0\",\"borderColor\":\"#d9d9d9\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":-17.5,\"yaxis\":1025,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":487,\"map\":\"\"},{\"id\":\"963526e4078f\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":445,\"y\":964},\"endPoint\":{\"x\":445,\"y\":865},\"name\":2059574,\"isStrLine\":true},{\"startPoint\":{\"x\":445,\"y\":865},\"endPoint\":{\"x\":900,\"y\":865},\"name\":2059575,\"isStrLine\":true},{\"startPoint\":{\"x\":900,\"y\":865},\"endPoint\":{\"x\":900,\"y\":964},\"name\":2059576,\"isStrLine\":true},{\"startPoint\":{\"x\":900,\"y\":964},\"endPoint\":{\"x\":445,\"y\":964},\"name\":2059577,\"isStrLine\":true}],\"entColor\":\"#f0f0f0\",\"borderColor\":\"#d9d9d9\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":727,\"yaxis\":923,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":139,\"map\":\"\"}],\"icons\":[],\"stairs\":[{\"no\":\"1\",\"x\":-347,\"y\":-932,\"navCode\":49,\"facCode\":\"dt\",\"title\":\"直梯\",\"site\":0,\"angle\":0,\"state\":true,\"iShow\":true,\"downState\":false,\"upState\":false},{\"no\":\"2\",\"x\":1093,\"y\":10,\"navCode\":50,\"facCode\":\"dt\",\"title\":\"直梯\",\"site\":0,\"angle\":0,\"state\":true,\"iShow\":true,\"downState\":false,\"upState\":false}],\"parkArea\":[],\"wallArea\":[{\"id\":\"c23d11c6f16b\",\"name\":\"fWall\",\"pathPoints\":[{\"x\":-934,\"y\":-506},{\"x\":-934,\"y\":-709},{\"x\":-889,\"y\":-761},{\"x\":-606,\"y\":-761},{\"x\":-606,\"y\":-714},{\"x\":-852,\"y\":-506},{\"x\":-934,\"y\":-506}],\"thick\":3,\"isWall\":true,\"entColor\":\"#999999\",\"borderColor\":\"#e0e0e0\",\"toHeight\":30,\"alphaModle\":12,\"site\":0},{\"id\":\"6d8b4f311957\",\"name\":\"fWall\",\"pathPoints\":[{\"x\":-252,\"y\":-763},{\"x\":228,\"y\":-763},{\"x\":228,\"y\":-696},{\"x\":19,\"y\":-646},{\"x\":-252,\"y\":-683},{\"x\":-252,\"y\":-763}],\"thick\":3,\"isWall\":true,\"entColor\":\"#999999\",\"borderColor\":\"#e0e0e0\",\"toHeight\":30,\"alphaModle\":12,\"site\":0},{\"id\":\"cefea621062f\",\"name\":\"fWall\",\"pathPoints\":[{\"x\":-934,\"y\":320},{\"x\":-811,\"y\":320},{\"x\":-540,\"y\":574},{\"x\":-583,\"y\":622},{\"x\":-934,\"y\":622},{\"x\":-934,\"y\":320}],\"thick\":3,\"isWall\":true,\"entColor\":\"#999999\",\"borderColor\":\"#e0e0e0\",\"toHeight\":30,\"alphaModle\":12,\"site\":0},{\"id\":\"23c427449588\",\"name\":\"fWall\",\"pathPoints\":[{\"x\":-741,\"y\":-318},{\"x\":-600,\"y\":-428},{\"x\":-593,\"y\":-434},{\"x\":-585,\"y\":-438},{\"x\":-576,\"y\":-442},{\"x\":-568,\"y\":-444},{\"x\":-558,\"y\":-445},{\"x\":-549,\"y\":-445},{\"x\":-540,\"y\":-444},{\"x\":-531,\"y\":-442},{\"x\":-522,\"y\":-440},{\"x\":-513,\"y\":-437},{\"x\":-191,\"y\":-349},{\"x\":130,\"y\":-344},{\"x\":256,\"y\":-393},{\"x\":308,\"y\":-360},{\"x\":356,\"y\":-322},{\"x\":398,\"y\":-279},{\"x\":435,\"y\":-231},{\"x\":466,\"y\":-180},{\"x\":493,\"y\":-127},{\"x\":515,\"y\":-71},{\"x\":532,\"y\":-14},{\"x\":544,\"y\":43},{\"x\":553,\"y\":101},{\"x\":553,\"y\":110},{\"x\":552,\"y\":118},{\"x\":551,\"y\":126},{\"x\":549,\"y\":133},{\"x\":546,\"y\":140},{\"x\":543,\"y\":147},{\"x\":540,\"y\":153},{\"x\":536,\"y\":158},{\"x\":532,\"y\":163},{\"x\":528,\"y\":168},{\"x\":303,\"y\":385},{\"x\":297,\"y\":389},{\"x\":292,\"y\":394},{\"x\":286,\"y\":398},{\"x\":279,\"y\":402},{\"x\":272,\"y\":405},{\"x\":265,\"y\":408},{\"x\":256,\"y\":410},{\"x\":246,\"y\":411},{\"x\":235,\"y\":410},{\"x\":224,\"y\":409},{\"x\":-84,\"y\":355},{\"x\":-92,\"y\":353},{\"x\":-99,\"y\":351},{\"x\":-107,\"y\":350},{\"x\":-114,\"y\":349},{\"x\":-122,\"y\":348},{\"x\":-129,\"y\":348},{\"x\":-137,\"y\":349},{\"x\":-144,\"y\":350},{\"x\":-152,\"y\":352},{\"x\":-159,\"y\":355},{\"x\":-499,\"y\":489},{\"x\":-798,\"y\":224},{\"x\":-717,\"y\":47},{\"x\":-742,\"y\":-46},{\"x\":-741,\"y\":-318}],\"thick\":3,\"isWall\":true,\"entColor\":\"#999999\",\"borderColor\":\"#e0e0e0\",\"toHeight\":30,\"alphaModle\":12,\"site\":0},{\"id\":\"b598c0f53fa7\",\"name\":\"fWall\",\"pathPoints\":[{\"x\":346,\"y\":-495},{\"x\":594,\"y\":-623},{\"x\":720,\"y\":-495},{\"x\":598,\"y\":-218},{\"x\":569,\"y\":-232},{\"x\":540,\"y\":-249},{\"x\":509,\"y\":-270},{\"x\":479,\"y\":-295},{\"x\":449,\"y\":-322},{\"x\":421,\"y\":-352},{\"x\":396,\"y\":-385},{\"x\":375,\"y\":-420},{\"x\":357,\"y\":-457},{\"x\":346,\"y\":-495}],\"thick\":3,\"isWall\":true,\"entColor\":\"#999999\",\"borderColor\":\"#e0e0e0\",\"toHeight\":30,\"alphaModle\":12,\"site\":0},{\"id\":\"b70e499eeedd\",\"name\":\"fWall\",\"pathPoints\":[{\"x\":674,\"y\":201},{\"x\":887,\"y\":201},{\"x\":969,\"y\":267},{\"x\":969,\"y\":412},{\"x\":880,\"y\":529},{\"x\":603,\"y\":529},{\"x\":603,\"y\":303},{\"x\":674,\"y\":201}],\"thick\":3,\"isWall\":true,\"entColor\":\"#999999\",\"borderColor\":\"#e0e0e0\",\"toHeight\":30,\"alphaModle\":12,\"site\":0},{\"id\":\"1f0a4e112f7e\",\"name\":\"fWall\",\"pathPoints\":[{\"x\":-1074,\"y\":-1179},{\"x\":995,\"y\":-1255},{\"x\":1397,\"y\":-851},{\"x\":1397,\"y\":968},{\"x\":-19,\"y\":968},{\"x\":-19,\"y\":1167},{\"x\":-708,\"y\":1167},{\"x\":-708,\"y\":1275},{\"x\":-1365,\"y\":1275},{\"x\":-1365,\"y\":-856},{\"x\":-1074,\"y\":-1179}],\"thick\":3,\"isWall\":true,\"entColor\":\"#f0f0f0\",\"borderColor\":\"#c4c4c4\",\"toHeight\":40,\"alphaModle\":100,\"site\":0}],\"svgArea\":[],\"models\":[]},\"code\":\"KfRjq3d6ICYrXyaYFjAJU\"},{\"name\":\"L3\",\"mapData\":{\"groupArea\":[],\"floorArea\":{\"id\":\"1f0a4e112f7e\",\"name\":\"floor\",\"hasLines\":[{\"startPoint\":{\"x\":-1074,\"y\":-1179},\"endPoint\":{\"x\":995,\"y\":-1255},\"name\":2542575,\"isStrLine\":true},{\"startPoint\":{\"x\":995,\"y\":-1255},\"endPoint\":{\"x\":1397,\"y\":-851},\"name\":2542576,\"isStrLine\":true},{\"startPoint\":{\"x\":1397,\"y\":-851},\"endPoint\":{\"x\":1397,\"y\":968},\"name\":2542577,\"isStrLine\":true},{\"startPoint\":{\"x\":1397,\"y\":968},\"endPoint\":{\"x\":-19,\"y\":968},\"name\":2542578,\"isStrLine\":true},{\"startPoint\":{\"x\":-19,\"y\":968},\"endPoint\":{\"x\":-19,\"y\":1167},\"name\":2542579,\"isStrLine\":true},{\"startPoint\":{\"x\":-19,\"y\":1167},\"endPoint\":{\"x\":-710,\"y\":1167},\"name\":2542580,\"isStrLine\":true},{\"startPoint\":{\"x\":-710,\"y\":1167},\"endPoint\":{\"x\":-710,\"y\":1275},\"name\":2542581,\"isStrLine\":true},{\"startPoint\":{\"x\":-710,\"y\":1275},\"endPoint\":{\"x\":-1365,\"y\":1275},\"name\":2542582,\"isStrLine\":true},{\"startPoint\":{\"x\":-1365,\"y\":1275},\"endPoint\":{\"x\":-1365,\"y\":-856},\"name\":2542583,\"isStrLine\":true},{\"startPoint\":{\"x\":-1365,\"y\":-856},\"endPoint\":{\"x\":-1074,\"y\":-1179},\"name\":2542584,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#ffffff\",\"toHeight\":5,\"alphaModle\":90,\"site\":0,\"xaxis\":16,\"yaxis\":10,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":0,\"isLabel\":1,\"comeIn\":\"\",\"area\":19289,\"map\":\"\"},\"buildArea\":[],\"hollowArea\":[{\"id\":\"c23d11c6f16b\",\"name\":\"hollow\",\"hasLines\":[{\"startPoint\":{\"x\":-936,\"y\":-516},\"endPoint\":{\"x\":-936,\"y\":-719},\"name\":2542585,\"isStrLine\":true},{\"startPoint\":{\"x\":-936,\"y\":-719},\"endPoint\":{\"x\":-891,\"y\":-771},\"name\":2542586,\"isStrLine\":true},{\"startPoint\":{\"x\":-891,\"y\":-771},\"endPoint\":{\"x\":-608,\"y\":-771},\"name\":2542587,\"isStrLine\":true},{\"startPoint\":{\"x\":-608,\"y\":-771},\"endPoint\":{\"x\":-608,\"y\":-724},\"name\":2542588,\"isStrLine\":true},{\"startPoint\":{\"x\":-608,\"y\":-724},\"endPoint\":{\"x\":-854,\"y\":-516},\"name\":2542589,\"isStrLine\":true},{\"startPoint\":{\"x\":-854,\"y\":-516},\"endPoint\":{\"x\":-936,\"y\":-516},\"name\":2542590,\"isStrLine\":true}],\"entColor\":\"\",\"borderColor\":\"\",\"toHeight\":30,\"alphaModle\":90,\"site\":0,\"xaxis\":-772,\"yaxis\":-643.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":0,\"isLabel\":1,\"comeIn\":\"\",\"area\":176,\"map\":\"\"},{\"id\":\"6d8b4f311957\",\"name\":\"hollow\",\"hasLines\":[{\"startPoint\":{\"x\":-264,\"y\":-771},\"endPoint\":{\"x\":216,\"y\":-771},\"name\":2542591,\"isStrLine\":true},{\"startPoint\":{\"x\":216,\"y\":-771},\"endPoint\":{\"x\":216,\"y\":-704},\"name\":2542592,\"isStrLine\":true},{\"startPoint\":{\"x\":216,\"y\":-704},\"endPoint\":{\"x\":7,\"y\":-654},\"name\":2542593,\"isStrLine\":true},{\"startPoint\":{\"x\":7,\"y\":-654},\"endPoint\":{\"x\":-264,\"y\":-691},\"name\":2542594,\"isStrLine\":true},{\"startPoint\":{\"x\":-264,\"y\":-691},\"endPoint\":{\"x\":-264,\"y\":-771},\"name\":2542595,\"isStrLine\":true}],\"entColor\":\"\",\"borderColor\":\"\",\"toHeight\":30,\"alphaModle\":90,\"site\":0,\"xaxis\":-24,\"yaxis\":-731,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":0,\"isLabel\":1,\"comeIn\":\"\",\"area\":142,\"map\":\"\"},{\"id\":\"cefea621062f\",\"name\":\"hollow\",\"hasLines\":[{\"startPoint\":{\"x\":-934,\"y\":320},\"endPoint\":{\"x\":-811,\"y\":320},\"name\":2542596,\"isStrLine\":true},{\"startPoint\":{\"x\":-811,\"y\":320},\"endPoint\":{\"x\":-540,\"y\":574},\"name\":2542597,\"isStrLine\":true},{\"startPoint\":{\"x\":-540,\"y\":574},\"endPoint\":{\"x\":-583,\"y\":622},\"name\":2542598,\"isStrLine\":true},{\"startPoint\":{\"x\":-583,\"y\":622},\"endPoint\":{\"x\":-934,\"y\":622},\"name\":2542599,\"isStrLine\":true},{\"startPoint\":{\"x\":-934,\"y\":622},\"endPoint\":{\"x\":-934,\"y\":320},\"name\":2542600,\"isStrLine\":true}],\"entColor\":\"\",\"borderColor\":\"\",\"toHeight\":30,\"alphaModle\":90,\"site\":0,\"xaxis\":-865.5,\"yaxis\":447.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":0,\"isLabel\":1,\"comeIn\":\"\",\"area\":258,\"map\":\"\"},{\"id\":\"b70e499eeedd\",\"name\":\"hollow\",\"hasLines\":[{\"startPoint\":{\"x\":674,\"y\":201},\"endPoint\":{\"x\":887,\"y\":201},\"name\":2542601,\"isStrLine\":true},{\"startPoint\":{\"x\":887,\"y\":201},\"endPoint\":{\"x\":969,\"y\":267},\"name\":2542602,\"isStrLine\":true},{\"startPoint\":{\"x\":969,\"y\":267},\"endPoint\":{\"x\":969,\"y\":412},\"name\":2542603,\"isStrLine\":true},{\"startPoint\":{\"x\":969,\"y\":412},\"endPoint\":{\"x\":880,\"y\":529},\"name\":2542604,\"isStrLine\":true},{\"startPoint\":{\"x\":880,\"y\":529},\"endPoint\":{\"x\":603,\"y\":529},\"name\":2542605,\"isStrLine\":true},{\"startPoint\":{\"x\":603,\"y\":529},\"endPoint\":{\"x\":603,\"y\":304},\"name\":2542606,\"isStrLine\":true},{\"startPoint\":{\"x\":603,\"y\":304},\"endPoint\":{\"x\":674,\"y\":201},\"name\":2542607,\"isStrLine\":true}],\"entColor\":\"\",\"borderColor\":\"\",\"toHeight\":30,\"alphaModle\":90,\"site\":0,\"xaxis\":762.5,\"yaxis\":306.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":0,\"isLabel\":1,\"comeIn\":\"\",\"area\":335,\"map\":\"\"},{\"id\":\"23c427449588\",\"name\":\"hollow\",\"hasLines\":[{\"startPoint\":{\"x\":-765,\"y\":-390},\"endPoint\":{\"x\":-629,\"y\":-502},\"name\":2542608,\"isStrLine\":true},{\"startPoint\":{\"x\":-629,\"y\":-502},\"endPoint\":{\"x\":-527,\"y\":-513},\"name\":2542609,\"isStrLine\":false,\"ctrlPoint1\":{\"x\":-597,\"y\":-528},\"ctrlPoint2\":{\"x\":-560,\"y\":-521}},{\"startPoint\":{\"x\":-527,\"y\":-513},\"endPoint\":{\"x\":175,\"y\":-418},\"name\":2542610,\"isStrLine\":true},{\"startPoint\":{\"x\":175,\"y\":-418},\"endPoint\":{\"x\":540,\"y\":-603},\"name\":2542611,\"isStrLine\":true},{\"startPoint\":{\"x\":540,\"y\":-603},\"endPoint\":{\"x\":618,\"y\":-600},\"name\":2542612,\"isStrLine\":false,\"ctrlPoint1\":{\"x\":570,\"y\":-619},\"ctrlPoint2\":{\"x\":593,\"y\":-621}},{\"startPoint\":{\"x\":618,\"y\":-600},\"endPoint\":{\"x\":707,\"y\":-502},\"name\":2542613,\"isStrLine\":true},{\"startPoint\":{\"x\":707,\"y\":-502},\"endPoint\":{\"x\":706,\"y\":-447},\"name\":2542614,\"isStrLine\":false,\"ctrlPoint1\":{\"x\":719,\"y\":-488},\"ctrlPoint2\":{\"x\":722,\"y\":-469}},{\"startPoint\":{\"x\":706,\"y\":-447},\"endPoint\":{\"x\":582.7085714285714,\"y\":-215},\"name\":2542615,\"isStrLine\":true},{\"startPoint\":{\"x\":582.7085714285714,\"y\":-215},\"endPoint\":{\"x\":582.71,\"y\":116},\"name\":2542616,\"isStrLine\":true},{\"startPoint\":{\"x\":582.71,\"y\":116},\"endPoint\":{\"x\":346,\"y\":407},\"name\":2542617,\"isStrLine\":true},{\"startPoint\":{\"x\":346,\"y\":407},\"endPoint\":{\"x\":-557,\"y\":407},\"name\":2542618,\"isStrLine\":true},{\"startPoint\":{\"x\":-557,\"y\":407},\"endPoint\":{\"x\":-765,\"y\":228},\"name\":2542619,\"isStrLine\":true},{\"startPoint\":{\"x\":-765,\"y\":228},\"endPoint\":{\"x\":-765,\"y\":-390},\"name\":2542620,\"isStrLine\":true}],\"entColor\":\"\",\"borderColor\":\"\",\"toHeight\":30,\"alphaModle\":90,\"site\":0,\"xaxis\":-129.50000000000014,\"yaxis\":-27.333333333333236,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":0,\"isLabel\":1,\"comeIn\":\"\",\"area\":3635,\"map\":\"\"}],\"shopArea\":[{\"id\":\"89d980263e5e\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-1362,\"y\":-857.62},\"endPoint\":{\"x\":-1076.54,\"y\":-1176.01},\"name\":2542621,\"isStrLine\":true},{\"startPoint\":{\"x\":-1076.54,\"y\":-1176.01},\"endPoint\":{\"x\":-779,\"y\":-1185.97},\"name\":2542622,\"isStrLine\":true},{\"startPoint\":{\"x\":-779,\"y\":-1185.97},\"endPoint\":{\"x\":-779,\"y\":-842},\"name\":2542623,\"isStrLine\":true},{\"startPoint\":{\"x\":-779,\"y\":-842},\"endPoint\":{\"x\":-888.41,\"y\":-842},\"name\":2542624,\"isStrLine\":true},{\"startPoint\":{\"x\":-888.41,\"y\":-842},\"endPoint\":{\"x\":-1013.41,\"y\":-719},\"name\":2542625,\"isStrLine\":true},{\"startPoint\":{\"x\":-1013.41,\"y\":-719},\"endPoint\":{\"x\":-1362,\"y\":-718},\"name\":2542626,\"isStrLine\":true},{\"startPoint\":{\"x\":-1362,\"y\":-718},\"endPoint\":{\"x\":-1362,\"y\":-857.62},\"name\":2542627,\"isStrLine\":true}],\"entColor\":\"#d6daf7\",\"borderColor\":\"#aeb3d5\",\"toHeight\":40,\"alphaModle\":100,\"site\":0,\"xaxis\":-1089.5,\"yaxis\":-974.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":15,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":628,\"map\":\"\"},{\"id\":\"2ed37436b7f7\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-679,\"y\":-1190.04},\"endPoint\":{\"x\":-468.01,\"y\":-1197.96},\"name\":2542628,\"isStrLine\":true},{\"startPoint\":{\"x\":-468.01,\"y\":-1197.96},\"endPoint\":{\"x\":-469.99,\"y\":-842},\"name\":2542629,\"isStrLine\":true},{\"startPoint\":{\"x\":-469.99,\"y\":-842},\"endPoint\":{\"x\":-679,\"y\":-842},\"name\":2542630,\"isStrLine\":true},{\"startPoint\":{\"x\":-679,\"y\":-842},\"endPoint\":{\"x\":-679,\"y\":-1190.04},\"name\":2542631,\"isStrLine\":true}],\"entColor\":\"#d6daf7\",\"borderColor\":\"#aeb3d5\",\"toHeight\":40,\"alphaModle\":100,\"site\":0,\"xaxis\":-575,\"yaxis\":-1025,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":16,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":232,\"map\":\"\"},{\"id\":\"6eea8071a168\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-259,\"y\":-916},\"endPoint\":{\"x\":-12,\"y\":-916},\"name\":2542632,\"isStrLine\":true},{\"startPoint\":{\"x\":-12,\"y\":-916},\"endPoint\":{\"x\":-12,\"y\":-843},\"name\":2542633,\"isStrLine\":true},{\"startPoint\":{\"x\":-12,\"y\":-843},\"endPoint\":{\"x\":-259,\"y\":-843},\"name\":2542634,\"isStrLine\":true},{\"startPoint\":{\"x\":-259,\"y\":-843},\"endPoint\":{\"x\":-259,\"y\":-916},\"name\":2542635,\"isStrLine\":true}],\"entColor\":\"#d6daf7\",\"borderColor\":\"#aeb3d5\",\"toHeight\":40,\"alphaModle\":100,\"site\":0,\"xaxis\":-162,\"yaxis\":-878.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":22,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":56,\"map\":\"\"},{\"id\":\"309ea05b0312\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-11,\"y\":-1214.04},\"endPoint\":{\"x\":154,\"y\":-1219.96},\"name\":2542636,\"isStrLine\":true},{\"startPoint\":{\"x\":154,\"y\":-1219.96},\"endPoint\":{\"x\":154,\"y\":-843},\"name\":2542637,\"isStrLine\":true},{\"startPoint\":{\"x\":154,\"y\":-843},\"endPoint\":{\"x\":-11,\"y\":-843},\"name\":2542638,\"isStrLine\":true},{\"startPoint\":{\"x\":-11,\"y\":-843},\"endPoint\":{\"x\":-11,\"y\":-1214.04},\"name\":2542639,\"isStrLine\":true}],\"entColor\":\"#d6daf7\",\"borderColor\":\"#aeb3d5\",\"toHeight\":40,\"alphaModle\":100,\"site\":0,\"xaxis\":72,\"yaxis\":-1026.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":23,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":194,\"map\":\"\"},{\"id\":\"9521b4ef3ad1\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":189,\"y\":-1221.04},\"endPoint\":{\"x\":342,\"y\":-1227.95},\"name\":2542640,\"isStrLine\":true},{\"startPoint\":{\"x\":342,\"y\":-1227.95},\"endPoint\":{\"x\":342,\"y\":-844},\"name\":2542641,\"isStrLine\":true},{\"startPoint\":{\"x\":342,\"y\":-844},\"endPoint\":{\"x\":189,\"y\":-844},\"name\":2542642,\"isStrLine\":true},{\"startPoint\":{\"x\":189,\"y\":-844},\"endPoint\":{\"x\":189,\"y\":-1221.04},\"name\":2542643,\"isStrLine\":true}],\"entColor\":\"#d6daf7\",\"borderColor\":\"#aeb3d5\",\"toHeight\":40,\"alphaModle\":100,\"site\":0,\"xaxis\":263,\"yaxis\":-1013,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":24,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":183,\"map\":\"\"},{\"id\":\"e55d929891e9\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":344,\"y\":-1228.03},\"endPoint\":{\"x\":489,\"y\":-1232.97},\"name\":2542644,\"isStrLine\":true},{\"startPoint\":{\"x\":489,\"y\":-1232.97},\"endPoint\":{\"x\":489,\"y\":-830.1},\"name\":2542645,\"isStrLine\":true},{\"startPoint\":{\"x\":489,\"y\":-830.1},\"endPoint\":{\"x\":344,\"y\":-843.91},\"name\":2542646,\"isStrLine\":true},{\"startPoint\":{\"x\":344,\"y\":-843.91},\"endPoint\":{\"x\":344,\"y\":-1228.03},\"name\":2542647,\"isStrLine\":true}],\"entColor\":\"#d6daf7\",\"borderColor\":\"#aeb3d5\",\"toHeight\":40,\"alphaModle\":100,\"site\":0,\"xaxis\":399,\"yaxis\":-879.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":25,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":179,\"map\":\"\"},{\"id\":\"47dd0d894fe9\",\"name\":\"L3-25/26b\",\"hasLines\":[{\"startPoint\":{\"x\":491,\"y\":-830.95},\"endPoint\":{\"x\":491,\"y\":-1233.04},\"name\":2542648,\"isStrLine\":true},{\"startPoint\":{\"x\":491,\"y\":-1233.04},\"endPoint\":{\"x\":990.6,\"y\":-1250.98},\"name\":2542649,\"isStrLine\":true},{\"startPoint\":{\"x\":990.6,\"y\":-1250.98},\"endPoint\":{\"x\":1330.56,\"y\":-910.03},\"name\":2542650,\"isStrLine\":true},{\"startPoint\":{\"x\":1330.56,\"y\":-910.03},\"endPoint\":{\"x\":1051.88,\"y\":-653.25},\"name\":2542651,\"isStrLine\":true},{\"startPoint\":{\"x\":1051.88,\"y\":-653.25},\"endPoint\":{\"x\":792.31,\"y\":-813.98},\"name\":2542652,\"isStrLine\":true},{\"startPoint\":{\"x\":792.31,\"y\":-813.98},\"endPoint\":{\"x\":491,\"y\":-830.95},\"name\":2542653,\"isStrLine\":true}],\"entColor\":\"#d6daf7\",\"borderColor\":\"#aeb3d5\",\"toHeight\":40,\"alphaModle\":100,\"site\":0,\"xaxis\":911,\"yaxis\":-949.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":3,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":1031,\"map\":\"\"},{\"id\":\"32c894cfb50c\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":1052.97,\"y\":-651.54},\"endPoint\":{\"x\":1331.97,\"y\":-908.61},\"name\":2542654,\"isStrLine\":true},{\"startPoint\":{\"x\":1331.97,\"y\":-908.61},\"endPoint\":{\"x\":1391,\"y\":-849.59},\"name\":2542655,\"isStrLine\":true},{\"startPoint\":{\"x\":1391,\"y\":-849.59},\"endPoint\":{\"x\":1391,\"y\":-290},\"name\":2542656,\"isStrLine\":true},{\"startPoint\":{\"x\":1391,\"y\":-290},\"endPoint\":{\"x\":1032.06,\"y\":-290},\"name\":2542657,\"isStrLine\":true},{\"startPoint\":{\"x\":1032.06,\"y\":-290},\"endPoint\":{\"x\":1052.97,\"y\":-651.54},\"name\":2542658,\"isStrLine\":true}],\"entColor\":\"#d6daf7\",\"borderColor\":\"#aeb3d5\",\"toHeight\":40,\"alphaModle\":100,\"site\":0,\"xaxis\":1209.5,\"yaxis\":-599.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":5,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":546,\"map\":\"\"},{\"id\":\"2d01446ccd82\",\"name\":\"L3-12\",\"hasLines\":[{\"startPoint\":{\"x\":1030,\"y\":-213},\"endPoint\":{\"x\":1390,\"y\":-213},\"name\":2542659,\"isStrLine\":true},{\"startPoint\":{\"x\":1390,\"y\":-213},\"endPoint\":{\"x\":1390,\"y\":-24},\"name\":2542660,\"isStrLine\":true},{\"startPoint\":{\"x\":1390,\"y\":-24},\"endPoint\":{\"x\":1030,\"y\":-24},\"name\":2542661,\"isStrLine\":true},{\"startPoint\":{\"x\":1030,\"y\":-24},\"endPoint\":{\"x\":1030,\"y\":-213},\"name\":2542662,\"isStrLine\":true}],\"entColor\":\"#d6daf7\",\"borderColor\":\"#aeb3d5\",\"toHeight\":40,\"alphaModle\":100,\"site\":0,\"xaxis\":1100.5,\"yaxis\":-136,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":26,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":213,\"map\":\"\"},{\"id\":\"a145b93eb3ea\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":1030,\"y\":94},\"endPoint\":{\"x\":1392,\"y\":94},\"name\":2542663,\"isStrLine\":true},{\"startPoint\":{\"x\":1392,\"y\":94},\"endPoint\":{\"x\":1392,\"y\":962},\"name\":2542664,\"isStrLine\":true},{\"startPoint\":{\"x\":1392,\"y\":962},\"endPoint\":{\"x\":1045,\"y\":962},\"name\":2542665,\"isStrLine\":true},{\"startPoint\":{\"x\":1045,\"y\":962},\"endPoint\":{\"x\":1045,\"y\":661},\"name\":2542666,\"isStrLine\":true},{\"startPoint\":{\"x\":1045,\"y\":661},\"endPoint\":{\"x\":899,\"y\":661},\"name\":2542667,\"isStrLine\":true},{\"startPoint\":{\"x\":899,\"y\":661},\"endPoint\":{\"x\":899,\"y\":585},\"name\":2542668,\"isStrLine\":true},{\"startPoint\":{\"x\":899,\"y\":585},\"endPoint\":{\"x\":939.56,\"y\":585},\"name\":2542669,\"isStrLine\":true},{\"startPoint\":{\"x\":939.56,\"y\":585},\"endPoint\":{\"x\":1030,\"y\":438.28},\"name\":2542670,\"isStrLine\":true},{\"startPoint\":{\"x\":1030,\"y\":438.28},\"endPoint\":{\"x\":1030,\"y\":94},\"name\":2542671,\"isStrLine\":true}],\"entColor\":\"#d6daf7\",\"borderColor\":\"#aeb3d5\",\"toHeight\":40,\"alphaModle\":100,\"site\":0,\"xaxis\":1211,\"yaxis\":377.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":10,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":1015,\"map\":\"\"},{\"id\":\"0f396204462e\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":693,\"y\":586},\"endPoint\":{\"x\":816,\"y\":586},\"name\":2542672,\"isStrLine\":true},{\"startPoint\":{\"x\":816,\"y\":586},\"endPoint\":{\"x\":816,\"y\":670},\"name\":2542673,\"isStrLine\":true},{\"startPoint\":{\"x\":816,\"y\":670},\"endPoint\":{\"x\":693,\"y\":670},\"name\":2542674,\"isStrLine\":true},{\"startPoint\":{\"x\":693,\"y\":670},\"endPoint\":{\"x\":693,\"y\":586},\"name\":2542675,\"isStrLine\":true}],\"entColor\":\"#d6daf7\",\"borderColor\":\"#aeb3d5\",\"toHeight\":40,\"alphaModle\":100,\"site\":0,\"xaxis\":754.5,\"yaxis\":628,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":27,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":33,\"map\":\"\"},{\"id\":\"ce7a8d363f4e\",\"name\":\"L3-6/7/8\",\"hasLines\":[{\"startPoint\":{\"x\":137,\"y\":686},\"endPoint\":{\"x\":211,\"y\":686},\"name\":2542676,\"isStrLine\":true},{\"startPoint\":{\"x\":211,\"y\":686},\"endPoint\":{\"x\":481.18,\"y\":589},\"name\":2542677,\"isStrLine\":true},{\"startPoint\":{\"x\":481.18,\"y\":589},\"endPoint\":{\"x\":659,\"y\":589},\"name\":2542678,\"isStrLine\":true},{\"startPoint\":{\"x\":659,\"y\":589},\"endPoint\":{\"x\":659,\"y\":821},\"name\":2542679,\"isStrLine\":true},{\"startPoint\":{\"x\":659,\"y\":821},\"endPoint\":{\"x\":137,\"y\":821},\"name\":2542680,\"isStrLine\":true},{\"startPoint\":{\"x\":137,\"y\":821},\"endPoint\":{\"x\":137,\"y\":686},\"name\":2542681,\"isStrLine\":true}],\"entColor\":\"#d6daf7\",\"borderColor\":\"#aeb3d5\",\"toHeight\":40,\"alphaModle\":100,\"site\":0,\"xaxis\":407,\"yaxis\":702,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":28,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":311,\"map\":\"\"},{\"id\":\"0188809bc289\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-306,\"y\":410},\"endPoint\":{\"x\":-13,\"y\":410},\"name\":2542682,\"isStrLine\":true},{\"startPoint\":{\"x\":-13,\"y\":410},\"endPoint\":{\"x\":-13,\"y\":602},\"name\":2542683,\"isStrLine\":true},{\"startPoint\":{\"x\":-13,\"y\":602},\"endPoint\":{\"x\":-306,\"y\":602},\"name\":2542684,\"isStrLine\":true},{\"startPoint\":{\"x\":-306,\"y\":602},\"endPoint\":{\"x\":-306,\"y\":410},\"name\":2542685,\"isStrLine\":true}],\"entColor\":\"#d6daf7\",\"borderColor\":\"#aeb3d5\",\"toHeight\":40,\"alphaModle\":100,\"site\":0,\"xaxis\":-156,\"yaxis\":480,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":30,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":177,\"map\":\"\"},{\"id\":\"646ce23d5729\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-11,\"y\":602},\"endPoint\":{\"x\":-11,\"y\":410},\"name\":2542686,\"isStrLine\":true},{\"startPoint\":{\"x\":-11,\"y\":410},\"endPoint\":{\"x\":344.48,\"y\":410},\"name\":2542687,\"isStrLine\":true},{\"startPoint\":{\"x\":344.48,\"y\":410},\"endPoint\":{\"x\":400.93,\"y\":340.66},\"name\":2542688,\"isStrLine\":true},{\"startPoint\":{\"x\":400.93,\"y\":340.66},\"endPoint\":{\"x\":456,\"y\":420.31},\"name\":2542689,\"isStrLine\":true},{\"startPoint\":{\"x\":456,\"y\":420.31},\"endPoint\":{\"x\":456,\"y\":492.3},\"name\":2542690,\"isStrLine\":true},{\"startPoint\":{\"x\":456,\"y\":492.3},\"endPoint\":{\"x\":158.82,\"y\":602},\"name\":2542691,\"isStrLine\":true},{\"startPoint\":{\"x\":158.82,\"y\":602},\"endPoint\":{\"x\":-11,\"y\":602},\"name\":2542692,\"isStrLine\":true}],\"entColor\":\"#d6daf7\",\"borderColor\":\"#aeb3d5\",\"toHeight\":40,\"alphaModle\":100,\"site\":0,\"xaxis\":222,\"yaxis\":469,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":28,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":241,\"map\":\"\"},{\"id\":\"0ea74da4c669\",\"name\":\"L3-44\",\"hasLines\":[{\"startPoint\":{\"x\":-1141,\"y\":-717},\"endPoint\":{\"x\":-1014,\"y\":-717},\"name\":2542693,\"isStrLine\":true},{\"startPoint\":{\"x\":-1014,\"y\":-717},\"endPoint\":{\"x\":-1014,\"y\":-502},\"name\":2542694,\"isStrLine\":true},{\"startPoint\":{\"x\":-1014,\"y\":-502},\"endPoint\":{\"x\":-1141,\"y\":-502},\"name\":2542695,\"isStrLine\":true},{\"startPoint\":{\"x\":-1141,\"y\":-502},\"endPoint\":{\"x\":-1141,\"y\":-717},\"name\":2542696,\"isStrLine\":true}],\"entColor\":\"#d6daf7\",\"borderColor\":\"#aeb3d5\",\"toHeight\":40,\"alphaModle\":100,\"site\":0,\"xaxis\":-1076,\"yaxis\":-598.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":\"51\",\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":86,\"map\":\"\"},{\"id\":\"1434527238d7\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-1141,\"y\":-427},\"endPoint\":{\"x\":-1016,\"y\":-427},\"name\":2542697,\"isStrLine\":true},{\"startPoint\":{\"x\":-1016,\"y\":-427},\"endPoint\":{\"x\":-1016,\"y\":-232},\"name\":2542698,\"isStrLine\":true},{\"startPoint\":{\"x\":-1016,\"y\":-232},\"endPoint\":{\"x\":-1141,\"y\":-232},\"name\":2542699,\"isStrLine\":true},{\"startPoint\":{\"x\":-1141,\"y\":-232},\"endPoint\":{\"x\":-1141,\"y\":-427},\"name\":2542700,\"isStrLine\":true}],\"entColor\":\"#d6daf7\",\"borderColor\":\"#aeb3d5\",\"toHeight\":40,\"alphaModle\":100,\"site\":0,\"xaxis\":-1072.5,\"yaxis\":-330,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":18,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":77,\"map\":\"\"},{\"id\":\"036b885fccf0\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-1141,\"y\":-230},\"endPoint\":{\"x\":-1016,\"y\":-230},\"name\":2542701,\"isStrLine\":true},{\"startPoint\":{\"x\":-1016,\"y\":-230},\"endPoint\":{\"x\":-1016,\"y\":32},\"name\":2542702,\"isStrLine\":true},{\"startPoint\":{\"x\":-1016,\"y\":32},\"endPoint\":{\"x\":-1141,\"y\":32},\"name\":2542703,\"isStrLine\":true},{\"startPoint\":{\"x\":-1141,\"y\":32},\"endPoint\":{\"x\":-1141,\"y\":-230},\"name\":2542704,\"isStrLine\":true}],\"entColor\":\"#d6daf7\",\"borderColor\":\"#aeb3d5\",\"toHeight\":40,\"alphaModle\":100,\"site\":0,\"xaxis\":-1072.5,\"yaxis\":-132,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":45,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":103,\"map\":\"\"},{\"id\":\"96bb6d681f25\",\"name\":\"L3-09\",\"hasLines\":[{\"startPoint\":{\"x\":-1360,\"y\":35},\"endPoint\":{\"x\":-1015,\"y\":35},\"name\":2542705,\"isStrLine\":true},{\"startPoint\":{\"x\":-1015,\"y\":35},\"endPoint\":{\"x\":-1015,\"y\":285},\"name\":2542706,\"isStrLine\":true},{\"startPoint\":{\"x\":-1015,\"y\":285},\"endPoint\":{\"x\":-1360,\"y\":285},\"name\":2542707,\"isStrLine\":true},{\"startPoint\":{\"x\":-1360,\"y\":285},\"endPoint\":{\"x\":-1360,\"y\":35},\"name\":2542708,\"isStrLine\":true}],\"entColor\":\"#d6daf7\",\"borderColor\":\"#aeb3d5\",\"toHeight\":40,\"alphaModle\":100,\"site\":0,\"xaxis\":-1187,\"yaxis\":160,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":43,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":270,\"map\":\"\"},{\"id\":\"03069664ae56\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-889.38,\"y\":-392},\"endPoint\":{\"x\":-770,\"y\":-392},\"name\":2542709,\"isStrLine\":true},{\"startPoint\":{\"x\":-770,\"y\":-392},\"endPoint\":{\"x\":-770,\"y\":-52},\"name\":2542710,\"isStrLine\":true},{\"startPoint\":{\"x\":-770,\"y\":-52},\"endPoint\":{\"x\":-917.07,\"y\":-52},\"name\":2542711,\"isStrLine\":true},{\"startPoint\":{\"x\":-917.07,\"y\":-52},\"endPoint\":{\"x\":-934.98,\"y\":-301.8},\"name\":2542712,\"isStrLine\":true},{\"startPoint\":{\"x\":-934.98,\"y\":-301.8},\"endPoint\":{\"x\":-889.38,\"y\":-392},\"name\":2542713,\"isStrLine\":true}],\"entColor\":\"#d6daf7\",\"borderColor\":\"#aeb3d5\",\"toHeight\":40,\"alphaModle\":100,\"site\":0,\"xaxis\":-852.5,\"yaxis\":-222,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":\"46\",\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":163,\"map\":\"\"},{\"id\":\"63b3d539fef8\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-917,\"y\":-49.01},\"endPoint\":{\"x\":-770,\"y\":-49.99},\"name\":2542714,\"isStrLine\":true},{\"startPoint\":{\"x\":-770,\"y\":-49.99},\"endPoint\":{\"x\":-770,\"y\":223.22},\"name\":2542715,\"isStrLine\":true},{\"startPoint\":{\"x\":-770,\"y\":223.22},\"endPoint\":{\"x\":-917,\"y\":40.9},\"name\":2542716,\"isStrLine\":false,\"ctrlPoint1\":{\"x\":-835.37,\"y\":183.21},\"ctrlPoint2\":{\"x\":-902.08,\"y\":114.51}},{\"startPoint\":{\"x\":-917,\"y\":40.9},\"endPoint\":{\"x\":-917,\"y\":-49.01},\"name\":2542717,\"isStrLine\":true}],\"entColor\":\"#d6daf7\",\"borderColor\":\"#aeb3d5\",\"toHeight\":40,\"alphaModle\":100,\"site\":0,\"xaxis\":-843.5,\"yaxis\":89,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":\"44\",\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":96,\"map\":\"\"},{\"id\":\"93dbcfe61be5\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-888.26,\"y\":-394},\"endPoint\":{\"x\":-583,\"y\":-650.85},\"name\":2542718,\"isStrLine\":true},{\"startPoint\":{\"x\":-583,\"y\":-650.85},\"endPoint\":{\"x\":-583,\"y\":-525.73},\"name\":2542719,\"isStrLine\":true},{\"startPoint\":{\"x\":-583,\"y\":-525.73},\"endPoint\":{\"x\":-619.48,\"y\":-513.89},\"name\":2542720,\"isStrLine\":true},{\"startPoint\":{\"x\":-619.48,\"y\":-513.89},\"endPoint\":{\"x\":-769.35,\"y\":-394},\"name\":2542721,\"isStrLine\":true},{\"startPoint\":{\"x\":-769.35,\"y\":-394},\"endPoint\":{\"x\":-888.26,\"y\":-394},\"name\":2542722,\"isStrLine\":true}],\"entColor\":\"#d6daf7\",\"borderColor\":\"#aeb3d5\",\"toHeight\":40,\"alphaModle\":100,\"site\":0,\"xaxis\":-736.5,\"yaxis\":-523,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":\"47\",\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":82,\"map\":\"\"},{\"id\":\"e9e2e1980bb7\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-581,\"y\":-525.88},\"endPoint\":{\"x\":-581,\"y\":-652.45},\"name\":2542723,\"isStrLine\":true},{\"startPoint\":{\"x\":-581,\"y\":-652.45},\"endPoint\":{\"x\":-553.76,\"y\":-669.96},\"name\":2542724,\"isStrLine\":true},{\"startPoint\":{\"x\":-553.76,\"y\":-669.96},\"endPoint\":{\"x\":-425,\"y\":-654.12},\"name\":2542725,\"isStrLine\":true},{\"startPoint\":{\"x\":-425,\"y\":-654.12},\"endPoint\":{\"x\":-425,\"y\":-505.14},\"name\":2542726,\"isStrLine\":true},{\"startPoint\":{\"x\":-425,\"y\":-505.14},\"endPoint\":{\"x\":-581,\"y\":-525.88},\"name\":2542727,\"isStrLine\":true}],\"entColor\":\"#d6daf7\",\"borderColor\":\"#aeb3d5\",\"toHeight\":40,\"alphaModle\":100,\"site\":0,\"xaxis\":-503,\"yaxis\":-589,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":\"37\",\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":72,\"map\":\"\"},{\"id\":\"12f1428297eb\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-423,\"y\":-504.87},\"endPoint\":{\"x\":-423,\"y\":-653.84},\"name\":2542728,\"isStrLine\":true},{\"startPoint\":{\"x\":-423,\"y\":-653.84},\"endPoint\":{\"x\":-279,\"y\":-632.14},\"name\":2542729,\"isStrLine\":true},{\"startPoint\":{\"x\":-279,\"y\":-632.14},\"endPoint\":{\"x\":-279,\"y\":-484.15},\"name\":2542730,\"isStrLine\":true},{\"startPoint\":{\"x\":-279,\"y\":-484.15},\"endPoint\":{\"x\":-423,\"y\":-504.87},\"name\":2542731,\"isStrLine\":true}],\"entColor\":\"#d6daf7\",\"borderColor\":\"#aeb3d5\",\"toHeight\":40,\"alphaModle\":100,\"site\":0,\"xaxis\":-352,\"yaxis\":-569,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":\"38\",\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":68,\"map\":\"\"},{\"id\":\"e103a8520e02\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-278.99,\"y\":-484.87},\"endPoint\":{\"x\":-277.02,\"y\":-631.86},\"name\":2542732,\"isStrLine\":true},{\"startPoint\":{\"x\":-277.02,\"y\":-631.86},\"endPoint\":{\"x\":24,\"y\":-591.13},\"name\":2542733,\"isStrLine\":true},{\"startPoint\":{\"x\":24,\"y\":-591.13},\"endPoint\":{\"x\":24,\"y\":-444.14},\"name\":2542734,\"isStrLine\":true},{\"startPoint\":{\"x\":24,\"y\":-444.14},\"endPoint\":{\"x\":-278.99,\"y\":-484.87},\"name\":2542735,\"isStrLine\":true}],\"entColor\":\"#d6daf7\",\"borderColor\":\"#aeb3d5\",\"toHeight\":40,\"alphaModle\":100,\"site\":0,\"xaxis\":-127.5,\"yaxis\":-538,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":\"39\",\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":140,\"map\":\"\"},{\"id\":\"da48095397f0\",\"name\":\"L3-29\",\"hasLines\":[{\"startPoint\":{\"x\":42,\"y\":-443.86},\"endPoint\":{\"x\":42,\"y\":-588.25},\"name\":2542736,\"isStrLine\":true},{\"startPoint\":{\"x\":42,\"y\":-588.25},\"endPoint\":{\"x\":356,\"y\":-677.68},\"name\":2542737,\"isStrLine\":true},{\"startPoint\":{\"x\":356,\"y\":-677.68},\"endPoint\":{\"x\":356,\"y\":-595},\"name\":2542738,\"isStrLine\":true},{\"startPoint\":{\"x\":356,\"y\":-595},\"endPoint\":{\"x\":274,\"y\":-595},\"name\":2542739,\"isStrLine\":true},{\"startPoint\":{\"x\":274,\"y\":-595},\"endPoint\":{\"x\":274,\"y\":-473.63},\"name\":2542740,\"isStrLine\":true},{\"startPoint\":{\"x\":274,\"y\":-473.63},\"endPoint\":{\"x\":171.84,\"y\":-424.04},\"name\":2542741,\"isStrLine\":true},{\"startPoint\":{\"x\":171.84,\"y\":-424.04},\"endPoint\":{\"x\":42,\"y\":-443.86},\"name\":2542742,\"isStrLine\":true}],\"entColor\":\"#d6daf7\",\"borderColor\":\"#aeb3d5\",\"toHeight\":40,\"alphaModle\":100,\"site\":0,\"xaxis\":160,\"yaxis\":-502,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":40,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":151,\"map\":\"\"},{\"id\":\"9875a57d0020\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":275.01,\"y\":-475.62},\"endPoint\":{\"x\":275.99,\"y\":-593},\"name\":2542743,\"isStrLine\":true},{\"startPoint\":{\"x\":275.99,\"y\":-593},\"endPoint\":{\"x\":358,\"y\":-593},\"name\":2542744,\"isStrLine\":true},{\"startPoint\":{\"x\":358,\"y\":-593},\"endPoint\":{\"x\":358,\"y\":-678.16},\"name\":2542745,\"isStrLine\":true},{\"startPoint\":{\"x\":358,\"y\":-678.16},\"endPoint\":{\"x\":495,\"y\":-702.8},\"name\":2542746,\"isStrLine\":true},{\"startPoint\":{\"x\":495,\"y\":-702.8},\"endPoint\":{\"x\":495,\"y\":-585.62},\"name\":2542747,\"isStrLine\":true},{\"startPoint\":{\"x\":495,\"y\":-585.62},\"endPoint\":{\"x\":275.01,\"y\":-475.62},\"name\":2542748,\"isStrLine\":true}],\"entColor\":\"#d6daf7\",\"borderColor\":\"#aeb3d5\",\"toHeight\":40,\"alphaModle\":100,\"site\":0,\"xaxis\":385,\"yaxis\":-589,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":25,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":86,\"map\":\"\"},{\"id\":\"df61366f1e7c\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":497,\"y\":-586.62},\"endPoint\":{\"x\":497,\"y\":-703.15},\"name\":2542749,\"isStrLine\":true},{\"startPoint\":{\"x\":497,\"y\":-703.15},\"endPoint\":{\"x\":633.99,\"y\":-725.98},\"name\":2542750,\"isStrLine\":true},{\"startPoint\":{\"x\":633.99,\"y\":-725.98},\"endPoint\":{\"x\":778.33,\"y\":-698.11},\"name\":2542751,\"isStrLine\":true},{\"startPoint\":{\"x\":778.33,\"y\":-698.11},\"endPoint\":{\"x\":802.76,\"y\":-649.24},\"name\":2542752,\"isStrLine\":true},{\"startPoint\":{\"x\":802.76,\"y\":-649.24},\"endPoint\":{\"x\":678.07,\"y\":-539.39},\"name\":2542753,\"isStrLine\":true},{\"startPoint\":{\"x\":678.07,\"y\":-539.39},\"endPoint\":{\"x\":614.69,\"y\":-607.73},\"name\":2542754,\"isStrLine\":true},{\"startPoint\":{\"x\":614.69,\"y\":-607.73},\"endPoint\":{\"x\":557.66,\"y\":-616.95},\"name\":2542755,\"isStrLine\":false,\"ctrlPoint1\":{\"x\":596.32,\"y\":-623.04},\"ctrlPoint2\":{\"x\":574.84,\"y\":-620.99}},{\"startPoint\":{\"x\":557.66,\"y\":-616.95},\"endPoint\":{\"x\":497,\"y\":-586.62},\"name\":2542756,\"isStrLine\":true}],\"entColor\":\"#d6daf7\",\"borderColor\":\"#aeb3d5\",\"toHeight\":40,\"alphaModle\":100,\"site\":0,\"xaxis\":650,\"yaxis\":-636,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":41,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":111,\"map\":\"\"},{\"id\":\"62caac3a4a1d\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":679.43,\"y\":-537.92},\"endPoint\":{\"x\":803.66,\"y\":-647.37},\"name\":2542757,\"isStrLine\":true},{\"startPoint\":{\"x\":803.66,\"y\":-647.37},\"endPoint\":{\"x\":932.98,\"y\":-369.83},\"name\":2542758,\"isStrLine\":true},{\"startPoint\":{\"x\":932.98,\"y\":-369.83},\"endPoint\":{\"x\":916.1,\"y\":-215},\"name\":2542759,\"isStrLine\":true},{\"startPoint\":{\"x\":916.1,\"y\":-215},\"endPoint\":{\"x\":585.66,\"y\":-215},\"name\":2542760,\"isStrLine\":true},{\"startPoint\":{\"x\":585.66,\"y\":-215},\"endPoint\":{\"x\":711.88,\"y\":-453.53},\"name\":2542761,\"isStrLine\":true},{\"startPoint\":{\"x\":711.88,\"y\":-453.53},\"endPoint\":{\"x\":710.76,\"y\":-503.65},\"name\":2542762,\"isStrLine\":false,\"ctrlPoint1\":{\"x\":721.98,\"y\":-472.72},\"ctrlPoint2\":{\"x\":723.02,\"y\":-488.32}},{\"startPoint\":{\"x\":710.76,\"y\":-503.65},\"endPoint\":{\"x\":679.43,\"y\":-537.92},\"name\":2542763,\"isStrLine\":true}],\"entColor\":\"#d6daf7\",\"borderColor\":\"#aeb3d5\",\"toHeight\":40,\"alphaModle\":100,\"site\":0,\"xaxis\":760,\"yaxis\":-431.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":42,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":277,\"map\":\"\"},{\"id\":\"4d1d0084e38e\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":585,\"y\":-213},\"endPoint\":{\"x\":916,\"y\":-213},\"name\":2542764,\"isStrLine\":true},{\"startPoint\":{\"x\":916,\"y\":-213},\"endPoint\":{\"x\":916,\"y\":111},\"name\":2542765,\"isStrLine\":true},{\"startPoint\":{\"x\":916,\"y\":111},\"endPoint\":{\"x\":585,\"y\":111},\"name\":2542766,\"isStrLine\":true},{\"startPoint\":{\"x\":585,\"y\":111},\"endPoint\":{\"x\":585,\"y\":-213},\"name\":2542767,\"isStrLine\":true}],\"entColor\":\"#d6daf7\",\"borderColor\":\"#aeb3d5\",\"toHeight\":40,\"alphaModle\":100,\"site\":0,\"xaxis\":757.5,\"yaxis\":-51,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":49,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":335,\"map\":\"\"},{\"id\":\"0018dfd2b814\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-358,\"y\":686},\"endPoint\":{\"x\":-140,\"y\":686},\"name\":2542768,\"isStrLine\":true},{\"startPoint\":{\"x\":-140,\"y\":686},\"endPoint\":{\"x\":-140,\"y\":943},\"name\":2542769,\"isStrLine\":true},{\"startPoint\":{\"x\":-140,\"y\":943},\"endPoint\":{\"x\":-358,\"y\":943},\"name\":2542770,\"isStrLine\":true},{\"startPoint\":{\"x\":-358,\"y\":943},\"endPoint\":{\"x\":-358,\"y\":686},\"name\":2542771,\"isStrLine\":true}],\"entColor\":\"#d6daf7\",\"borderColor\":\"#aeb3d5\",\"toHeight\":40,\"alphaModle\":100,\"site\":0,\"xaxis\":-234,\"yaxis\":819,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":31,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":176,\"map\":\"\"},{\"id\":\"3b4bcbdbf58a\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-568,\"y\":686},\"endPoint\":{\"x\":-360,\"y\":686},\"name\":2542772,\"isStrLine\":true},{\"startPoint\":{\"x\":-360,\"y\":686},\"endPoint\":{\"x\":-360,\"y\":1162},\"name\":2542773,\"isStrLine\":true},{\"startPoint\":{\"x\":-360,\"y\":1162},\"endPoint\":{\"x\":-568,\"y\":1162},\"name\":2542774,\"isStrLine\":true},{\"startPoint\":{\"x\":-568,\"y\":1162},\"endPoint\":{\"x\":-568,\"y\":686},\"name\":2542775,\"isStrLine\":true}],\"entColor\":\"#d6daf7\",\"borderColor\":\"#aeb3d5\",\"toHeight\":40,\"alphaModle\":100,\"site\":0,\"xaxis\":-464,\"yaxis\":924,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":\"32\",\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":310,\"map\":\"\"},{\"id\":\"092cce257da5\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-714,\"y\":686},\"endPoint\":{\"x\":-570,\"y\":686},\"name\":2542776,\"isStrLine\":true},{\"startPoint\":{\"x\":-570,\"y\":686},\"endPoint\":{\"x\":-570,\"y\":1162},\"name\":2542777,\"isStrLine\":true},{\"startPoint\":{\"x\":-570,\"y\":1162},\"endPoint\":{\"x\":-714,\"y\":1162},\"name\":2542778,\"isStrLine\":true},{\"startPoint\":{\"x\":-714,\"y\":1162},\"endPoint\":{\"x\":-714,\"y\":686},\"name\":2542779,\"isStrLine\":true}],\"entColor\":\"#d6daf7\",\"borderColor\":\"#aeb3d5\",\"toHeight\":40,\"alphaModle\":100,\"site\":0,\"xaxis\":-639,\"yaxis\":1003,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":\"33\",\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":215,\"map\":\"\"},{\"id\":\"0d4df858496a\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-1362,\"y\":686},\"endPoint\":{\"x\":-716,\"y\":686},\"name\":2542780,\"isStrLine\":true},{\"startPoint\":{\"x\":-716,\"y\":686},\"endPoint\":{\"x\":-716,\"y\":1269},\"name\":2542781,\"isStrLine\":true},{\"startPoint\":{\"x\":-716,\"y\":1269},\"endPoint\":{\"x\":-1362,\"y\":1269},\"name\":2542782,\"isStrLine\":true},{\"startPoint\":{\"x\":-1362,\"y\":1269},\"endPoint\":{\"x\":-1362,\"y\":686},\"name\":2542783,\"isStrLine\":true}],\"entColor\":\"#d6daf7\",\"borderColor\":\"#aeb3d5\",\"toHeight\":40,\"alphaModle\":100,\"site\":0,\"xaxis\":-1085,\"yaxis\":996,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":13,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":1170,\"map\":\"\"},{\"id\":\"f48704dd8eb7\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-1362,\"y\":519},\"endPoint\":{\"x\":-1020,\"y\":519},\"name\":2542784,\"isStrLine\":true},{\"startPoint\":{\"x\":-1020,\"y\":519},\"endPoint\":{\"x\":-1020,\"y\":684},\"name\":2542785,\"isStrLine\":true},{\"startPoint\":{\"x\":-1020,\"y\":684},\"endPoint\":{\"x\":-1362,\"y\":684},\"name\":2542786,\"isStrLine\":true},{\"startPoint\":{\"x\":-1362,\"y\":684},\"endPoint\":{\"x\":-1362,\"y\":519},\"name\":2542787,\"isStrLine\":true}],\"entColor\":\"#d6daf7\",\"borderColor\":\"#aeb3d5\",\"toHeight\":40,\"alphaModle\":100,\"site\":0,\"xaxis\":-1188.5,\"yaxis\":602.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":36,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":177,\"map\":\"\"},{\"id\":\"faa329b1f553\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":-1362,\"y\":360},\"endPoint\":{\"x\":-1019.01,\"y\":360},\"name\":2542788,\"isStrLine\":true},{\"startPoint\":{\"x\":-1019.01,\"y\":360},\"endPoint\":{\"x\":-1019.99,\"y\":517},\"name\":2542789,\"isStrLine\":true},{\"startPoint\":{\"x\":-1019.99,\"y\":517},\"endPoint\":{\"x\":-1362,\"y\":517},\"name\":2542790,\"isStrLine\":true},{\"startPoint\":{\"x\":-1362,\"y\":517},\"endPoint\":{\"x\":-1362,\"y\":360},\"name\":2542791,\"isStrLine\":true}],\"entColor\":\"#d6daf7\",\"borderColor\":\"#aeb3d5\",\"toHeight\":40,\"alphaModle\":100,\"site\":0,\"xaxis\":-1188.5,\"yaxis\":435.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":35,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":169,\"map\":\"\"}],\"path\":{\"nodes\":[{\"id\":0,\"x\":-745,\"y\":-1162,\"Proy\":\"graph\",\"list\":[{\"cost\":357,\"id\":1}]},{\"id\":1,\"x\":-746,\"y\":-805,\"Proy\":\"graph\",\"list\":[{\"cost\":357,\"id\":0},{\"cost\":134,\"id\":15},{\"cost\":206,\"id\":16}]},{\"id\":2,\"x\":327,\"y\":-789,\"Proy\":\"graph\",\"list\":[{\"cost\":71,\"id\":20},{\"cost\":103,\"id\":24},{\"cost\":103,\"id\":25}]},{\"id\":3,\"x\":780,\"y\":-782,\"Proy\":\"graph\",\"list\":[{\"cost\":177,\"id\":41},{\"cost\":309,\"id\":42}]},{\"id\":4,\"x\":978,\"y\":-393,\"Proy\":\"graph\",\"list\":[{\"cost\":289,\"id\":26},{\"cost\":127,\"id\":42}]},{\"id\":5,\"x\":970,\"y\":170,\"Proy\":\"graph\",\"list\":[{\"cost\":362,\"id\":6},{\"cost\":94,\"id\":9},{\"cost\":136,\"id\":49}]},{\"id\":6,\"x\":608,\"y\":172,\"Proy\":\"graph\",\"list\":[{\"cost\":362,\"id\":5},{\"cost\":149,\"id\":7}]},{\"id\":7,\"x\":540,\"y\":305,\"Proy\":\"graph\",\"list\":[{\"cost\":149,\"id\":6},{\"cost\":241,\"id\":8}]},{\"id\":8,\"x\":543,\"y\":546,\"Proy\":\"graph\",\"list\":[{\"cost\":241,\"id\":7},{\"cost\":201,\"id\":27},{\"cost\":212,\"id\":28}]},{\"id\":9,\"x\":998,\"y\":260,\"Proy\":\"graph\",\"list\":[{\"cost\":94,\"id\":5},{\"cost\":163,\"id\":10}]},{\"id\":10,\"x\":998,\"y\":423,\"Proy\":\"graph\",\"list\":[{\"cost\":163,\"id\":9},{\"cost\":150,\"id\":11}]},{\"id\":11,\"x\":923,\"y\":553,\"Proy\":\"graph\",\"list\":[{\"cost\":150,\"id\":10},{\"cost\":179,\"id\":27}]},{\"id\":12,\"x\":148,\"y\":650,\"Proy\":\"graph\",\"list\":[{\"cost\":195,\"id\":28},{\"cost\":181,\"id\":29}]},{\"id\":13,\"x\":-985,\"y\":658,\"Proy\":\"graph\",\"list\":[{\"cost\":162,\"id\":34},{\"cost\":76,\"id\":36}]},{\"id\":14,\"x\":-985,\"y\":-695,\"Proy\":\"graph\",\"list\":[{\"cost\":153,\"id\":15},{\"cost\":94,\"id\":51}]},{\"id\":15,\"x\":-880,\"y\":-807,\"Proy\":\"graph\",\"list\":[{\"cost\":134,\"id\":1},{\"cost\":153,\"id\":14}]},{\"id\":16,\"x\":-540,\"y\":-802,\"Proy\":\"graph\",\"list\":[{\"cost\":206,\"id\":1},{\"cost\":86,\"id\":17},{\"cost\":198,\"id\":21}]},{\"id\":17,\"x\":-540,\"y\":-716,\"Proy\":\"graph\",\"list\":[{\"cost\":86,\"id\":16},{\"cost\":77,\"id\":37},{\"cost\":246,\"id\":47}]},{\"id\":18,\"x\":-985,\"y\":-366,\"Proy\":\"graph\",\"list\":[{\"cost\":135,\"id\":46},{\"cost\":319,\"id\":47},{\"cost\":235,\"id\":51}]},{\"id\":19,\"x\":5,\"y\":-622,\"Proy\":\"graph\",\"list\":[{\"cost\":188,\"id\":39},{\"cost\":160,\"id\":40}]},{\"id\":20,\"x\":328,\"y\":-718,\"Proy\":\"graph\",\"list\":[{\"cost\":71,\"id\":2},{\"cost\":176,\"id\":40}]},{\"id\":21,\"x\":-342,\"y\":-799,\"Proy\":\"graph\",\"list\":[{\"cost\":198,\"id\":16},{\"cost\":224,\"id\":22},{\"cost\":117,\"id\":38},{\"cost\":81,\"id\":48}]},{\"id\":22,\"x\":-118,\"y\":-796,\"Proy\":\"graph\",\"list\":[{\"cost\":224,\"id\":21},{\"cost\":185,\"id\":23}]},{\"id\":23,\"x\":67,\"y\":-793,\"Proy\":\"graph\",\"list\":[{\"cost\":185,\"id\":22},{\"cost\":157,\"id\":24}]},{\"id\":24,\"x\":224,\"y\":-791,\"Proy\":\"graph\",\"list\":[{\"cost\":103,\"id\":2},{\"cost\":157,\"id\":23}]},{\"id\":25,\"x\":430,\"y\":-788,\"Proy\":\"graph\",\"list\":[{\"cost\":103,\"id\":2},{\"cost\":173,\"id\":41}]},{\"id\":26,\"x\":973,\"y\":-104,\"Proy\":\"graph\",\"list\":[{\"cost\":289,\"id\":4},{\"cost\":138,\"id\":49}]},{\"id\":27,\"x\":744,\"y\":549,\"Proy\":\"graph\",\"list\":[{\"cost\":201,\"id\":8},{\"cost\":179,\"id\":11}]},{\"id\":28,\"x\":337,\"y\":600,\"Proy\":\"graph\",\"list\":[{\"cost\":212,\"id\":8},{\"cost\":195,\"id\":12}]},{\"id\":29,\"x\":-33,\"y\":651,\"Proy\":\"graph\",\"list\":[{\"cost\":181,\"id\":12},{\"cost\":118,\"id\":30}]},{\"id\":30,\"x\":-151,\"y\":652,\"Proy\":\"graph\",\"list\":[{\"cost\":118,\"id\":29},{\"cost\":82,\"id\":31}]},{\"id\":31,\"x\":-233,\"y\":652,\"Proy\":\"graph\",\"list\":[{\"cost\":82,\"id\":30},{\"cost\":230,\"id\":32}]},{\"id\":32,\"x\":-463,\"y\":654,\"Proy\":\"graph\",\"list\":[{\"cost\":230,\"id\":31},{\"cost\":168,\"id\":33}]},{\"id\":33,\"x\":-631,\"y\":655,\"Proy\":\"graph\",\"list\":[{\"cost\":168,\"id\":32},{\"cost\":192,\"id\":34}]},{\"id\":34,\"x\":-823,\"y\":656,\"Proy\":\"graph\",\"list\":[{\"cost\":162,\"id\":13},{\"cost\":192,\"id\":33}]},{\"id\":35,\"x\":-985,\"y\":434,\"Proy\":\"graph\",\"list\":[{\"cost\":148,\"id\":36},{\"cost\":257,\"id\":43}]},{\"id\":36,\"x\":-985,\"y\":582,\"Proy\":\"graph\",\"list\":[{\"cost\":76,\"id\":13},{\"cost\":148,\"id\":35}]},{\"id\":37,\"x\":-464,\"y\":-703,\"Proy\":\"graph\",\"list\":[{\"cost\":77,\"id\":17},{\"cost\":124,\"id\":38}]},{\"id\":38,\"x\":-341,\"y\":-682,\"Proy\":\"graph\",\"list\":[{\"cost\":117,\"id\":21},{\"cost\":124,\"id\":37},{\"cost\":162,\"id\":39}]},{\"id\":39,\"x\":-181,\"y\":-655,\"Proy\":\"graph\",\"list\":[{\"cost\":188,\"id\":19},{\"cost\":162,\"id\":38}]},{\"id\":40,\"x\":159,\"y\":-668,\"Proy\":\"graph\",\"list\":[{\"cost\":160,\"id\":19},{\"cost\":176,\"id\":20}]},{\"id\":41,\"x\":603,\"y\":-785,\"Proy\":\"graph\",\"list\":[{\"cost\":177,\"id\":3},{\"cost\":173,\"id\":25}]},{\"id\":42,\"x\":920,\"y\":-506,\"Proy\":\"graph\",\"list\":[{\"cost\":309,\"id\":3},{\"cost\":127,\"id\":4}]},{\"id\":43,\"x\":-985,\"y\":177,\"Proy\":\"graph\",\"list\":[{\"cost\":257,\"id\":35},{\"cost\":133,\"id\":44}]},{\"id\":44,\"x\":-985,\"y\":44,\"Proy\":\"graph\",\"list\":[{\"cost\":133,\"id\":43},{\"cost\":155,\"id\":45}]},{\"id\":45,\"x\":-985,\"y\":-111,\"Proy\":\"graph\",\"list\":[{\"cost\":155,\"id\":44},{\"cost\":120,\"id\":46}]},{\"id\":46,\"x\":-985,\"y\":-231,\"Proy\":\"graph\",\"list\":[{\"cost\":135,\"id\":18},{\"cost\":120,\"id\":45}]},{\"id\":47,\"x\":-734,\"y\":-564,\"Proy\":\"graph\",\"list\":[{\"cost\":246,\"id\":17},{\"cost\":319,\"id\":18}]},{\"id\":48,\"x\":-342,\"y\":-880,\"Proy\":\"graph\",\"list\":[{\"cost\":81,\"id\":21}]},{\"id\":49,\"x\":971,\"y\":34,\"Proy\":\"graph\",\"list\":[{\"cost\":136,\"id\":5},{\"cost\":138,\"id\":26},{\"cost\":149,\"id\":50}]},{\"id\":50,\"x\":1120,\"y\":33,\"Proy\":\"graph\",\"list\":[{\"cost\":149,\"id\":49}]},{\"id\":51,\"x\":-985,\"y\":-601,\"Proy\":\"graph\",\"list\":[{\"cost\":94,\"id\":14},{\"cost\":235,\"id\":18}]}]},\"decos\":[{\"id\":\"ef0d9f355699\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":-1363,\"y\":-717},\"endPoint\":{\"x\":-1145,\"y\":-717},\"name\":2543708,\"isStrLine\":true},{\"startPoint\":{\"x\":-1145,\"y\":-717},\"endPoint\":{\"x\":-1145,\"y\":33},\"name\":2543709,\"isStrLine\":true},{\"startPoint\":{\"x\":-1145,\"y\":33},\"endPoint\":{\"x\":-1362,\"y\":33},\"name\":2543710,\"isStrLine\":true},{\"startPoint\":{\"x\":-1362,\"y\":33},\"endPoint\":{\"x\":-1363,\"y\":-717},\"name\":2543711,\"isStrLine\":true}],\"entColor\":\"#f0f0f0\",\"borderColor\":\"#d9d9d9\",\"toHeight\":40,\"alphaModle\":100,\"site\":0,\"xaxis\":-1266,\"yaxis\":-305,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":503,\"map\":\"\"},{\"id\":\"5c9f99ffb98a\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":-358,\"y\":943},\"endPoint\":{\"x\":-140,\"y\":943},\"name\":2543712,\"isStrLine\":true},{\"startPoint\":{\"x\":-140,\"y\":943},\"endPoint\":{\"x\":-140,\"y\":686},\"name\":2543713,\"isStrLine\":true},{\"startPoint\":{\"x\":-140,\"y\":686},\"endPoint\":{\"x\":83,\"y\":686},\"name\":2543714,\"isStrLine\":true},{\"startPoint\":{\"x\":83,\"y\":686},\"endPoint\":{\"x\":83,\"y\":884},\"name\":2543715,\"isStrLine\":true},{\"startPoint\":{\"x\":83,\"y\":884},\"endPoint\":{\"x\":322,\"y\":884},\"name\":2543716,\"isStrLine\":true},{\"startPoint\":{\"x\":322,\"y\":884},\"endPoint\":{\"x\":322,\"y\":964},\"name\":2543717,\"isStrLine\":true},{\"startPoint\":{\"x\":322,\"y\":964},\"endPoint\":{\"x\":-23,\"y\":966},\"name\":2543718,\"isStrLine\":true},{\"startPoint\":{\"x\":-23,\"y\":966},\"endPoint\":{\"x\":-23,\"y\":1166},\"name\":2543719,\"isStrLine\":true},{\"startPoint\":{\"x\":-23,\"y\":1166},\"endPoint\":{\"x\":-358,\"y\":1166},\"name\":2543720,\"isStrLine\":true},{\"startPoint\":{\"x\":-358,\"y\":1166},\"endPoint\":{\"x\":-358,\"y\":943},\"name\":2543721,\"isStrLine\":true}],\"entColor\":\"#f0f0f0\",\"borderColor\":\"#d9d9d9\",\"toHeight\":40,\"alphaModle\":100,\"site\":0,\"xaxis\":-17.5,\"yaxis\":1025,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":474,\"map\":\"\"},{\"id\":\"963526e4078f\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":554,\"y\":964},\"endPoint\":{\"x\":554,\"y\":882},\"name\":2543722,\"isStrLine\":true},{\"startPoint\":{\"x\":554,\"y\":882},\"endPoint\":{\"x\":694,\"y\":882},\"name\":2543723,\"isStrLine\":true},{\"startPoint\":{\"x\":694,\"y\":882},\"endPoint\":{\"x\":694,\"y\":724},\"name\":2543724,\"isStrLine\":true},{\"startPoint\":{\"x\":694,\"y\":724},\"endPoint\":{\"x\":899,\"y\":724},\"name\":2543725,\"isStrLine\":true},{\"startPoint\":{\"x\":899,\"y\":724},\"endPoint\":{\"x\":899,\"y\":665},\"name\":2543726,\"isStrLine\":true},{\"startPoint\":{\"x\":899,\"y\":665},\"endPoint\":{\"x\":1042,\"y\":665},\"name\":2543727,\"isStrLine\":true},{\"startPoint\":{\"x\":1042,\"y\":665},\"endPoint\":{\"x\":1042,\"y\":964},\"name\":2543728,\"isStrLine\":true},{\"startPoint\":{\"x\":1042,\"y\":964},\"endPoint\":{\"x\":554,\"y\":964},\"name\":2543729,\"isStrLine\":true}],\"entColor\":\"#f0f0f0\",\"borderColor\":\"#d9d9d9\",\"toHeight\":40,\"alphaModle\":100,\"site\":0,\"xaxis\":727,\"yaxis\":923,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":319,\"map\":\"\"},{\"id\":\"483c128a5a93\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":-467,\"y\":-1199},\"endPoint\":{\"x\":-13,\"y\":-1215},\"name\":2543730,\"isStrLine\":true},{\"startPoint\":{\"x\":-13,\"y\":-1215},\"endPoint\":{\"x\":-13,\"y\":-918},\"name\":2543731,\"isStrLine\":true},{\"startPoint\":{\"x\":-13,\"y\":-918},\"endPoint\":{\"x\":-467,\"y\":-918},\"name\":2543732,\"isStrLine\":true},{\"startPoint\":{\"x\":-467,\"y\":-918},\"endPoint\":{\"x\":-467,\"y\":-1199},\"name\":2543733,\"isStrLine\":true}],\"entColor\":\"#f0f0f0\",\"borderColor\":\"#d9d9d9\",\"toHeight\":40,\"alphaModle\":100,\"site\":0,\"xaxis\":-241.5,\"yaxis\":-1059,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":405,\"map\":\"\"}],\"icons\":[],\"stairs\":[{\"no\":\"1\",\"x\":-342,\"y\":-882,\"navCode\":48,\"facCode\":\"dt\",\"title\":\"直梯\",\"site\":0,\"angle\":0,\"state\":true,\"iShow\":true,\"downState\":false,\"upState\":false},{\"no\":\"2\",\"x\":1123,\"y\":33,\"navCode\":50,\"facCode\":\"dt\",\"title\":\"直梯\",\"site\":0,\"angle\":0,\"state\":true,\"iShow\":true,\"downState\":false,\"upState\":false}],\"parkArea\":[],\"wallArea\":[{\"id\":\"1f0a4e112f7e\",\"name\":\"fWall\",\"pathPoints\":[{\"x\":-1074,\"y\":-1179},{\"x\":995,\"y\":-1255},{\"x\":1397,\"y\":-851},{\"x\":1397,\"y\":968},{\"x\":-19,\"y\":968},{\"x\":-19,\"y\":1167},{\"x\":-710,\"y\":1167},{\"x\":-710,\"y\":1275},{\"x\":-1365,\"y\":1275},{\"x\":-1365,\"y\":-856},{\"x\":-1074,\"y\":-1179}],\"thick\":3,\"isWall\":true,\"entColor\":\"#f0f0f0\",\"borderColor\":\"#c4c4c4\",\"toHeight\":40,\"alphaModle\":100,\"site\":0},{\"id\":\"c23d11c6f16b\",\"name\":\"fWall\",\"pathPoints\":[{\"x\":-936,\"y\":-516},{\"x\":-936,\"y\":-719},{\"x\":-891,\"y\":-771},{\"x\":-608,\"y\":-771},{\"x\":-608,\"y\":-724},{\"x\":-854,\"y\":-516},{\"x\":-936,\"y\":-516}],\"thick\":3,\"isWall\":true,\"entColor\":\"#999999\",\"borderColor\":\"#e0e0e0\",\"toHeight\":30,\"alphaModle\":10,\"site\":0},{\"id\":\"6d8b4f311957\",\"name\":\"fWall\",\"pathPoints\":[{\"x\":-264,\"y\":-771},{\"x\":216,\"y\":-771},{\"x\":216,\"y\":-704},{\"x\":7,\"y\":-654},{\"x\":-264,\"y\":-691},{\"x\":-264,\"y\":-771}],\"thick\":3,\"isWall\":true,\"entColor\":\"#999999\",\"borderColor\":\"#e0e0e0\",\"toHeight\":30,\"alphaModle\":10,\"site\":0},{\"id\":\"cefea621062f\",\"name\":\"fWall\",\"pathPoints\":[{\"x\":-934,\"y\":320},{\"x\":-811,\"y\":320},{\"x\":-540,\"y\":574},{\"x\":-583,\"y\":622},{\"x\":-934,\"y\":622},{\"x\":-934,\"y\":320}],\"thick\":3,\"isWall\":true,\"entColor\":\"#999999\",\"borderColor\":\"#e0e0e0\",\"toHeight\":30,\"alphaModle\":10,\"site\":0},{\"id\":\"b70e499eeedd\",\"name\":\"fWall\",\"pathPoints\":[{\"x\":674,\"y\":201},{\"x\":887,\"y\":201},{\"x\":969,\"y\":267},{\"x\":969,\"y\":412},{\"x\":880,\"y\":529},{\"x\":603,\"y\":529},{\"x\":603,\"y\":304},{\"x\":674,\"y\":201}],\"thick\":3,\"isWall\":true,\"entColor\":\"#999999\",\"borderColor\":\"#e0e0e0\",\"toHeight\":30,\"alphaModle\":10,\"site\":0},{\"id\":\"23c427449588\",\"name\":\"hWall\",\"pathPoints\":[{\"x\":-765,\"y\":-390},{\"x\":-629,\"y\":-502},{\"x\":-620,\"y\":-509},{\"x\":-610,\"y\":-514},{\"x\":-600,\"y\":-518},{\"x\":-589,\"y\":-520},{\"x\":-579,\"y\":-521},{\"x\":-568,\"y\":-521},{\"x\":-558,\"y\":-520},{\"x\":-548,\"y\":-518},{\"x\":-538,\"y\":-516},{\"x\":-527,\"y\":-513},{\"x\":175,\"y\":-418},{\"x\":540,\"y\":-603},{\"x\":548,\"y\":-608},{\"x\":557,\"y\":-611},{\"x\":565,\"y\":-614},{\"x\":573,\"y\":-615},{\"x\":580,\"y\":-616},{\"x\":588,\"y\":-615},{\"x\":595,\"y\":-613},{\"x\":603,\"y\":-610},{\"x\":610,\"y\":-606},{\"x\":618,\"y\":-600},{\"x\":707,\"y\":-502},{\"x\":710,\"y\":-498},{\"x\":713,\"y\":-494},{\"x\":715,\"y\":-489},{\"x\":716,\"y\":-483},{\"x\":717,\"y\":-478},{\"x\":716,\"y\":-472},{\"x\":715,\"y\":-466},{\"x\":713,\"y\":-460},{\"x\":710,\"y\":-454},{\"x\":706,\"y\":-447},{\"x\":582,\"y\":-215},{\"x\":582,\"y\":116},{\"x\":346,\"y\":407},{\"x\":-557,\"y\":407},{\"x\":-765,\"y\":228},{\"x\":-765,\"y\":-390}],\"thick\":3,\"isWall\":true,\"entColor\":\"#999999\",\"borderColor\":\"#e0e0e0\",\"toHeight\":30,\"alphaModle\":10,\"site\":0}],\"svgArea\":[],\"models\":[]},\"code\":\"Ek_MaiuKLPjakB1uB0uQV\"},{\"name\":\"L4\",\"mapData\":{\"groupArea\":[],\"floorArea\":{\"id\":\"700d39957b30\",\"name\":\"floor\",\"hasLines\":[{\"startPoint\":{\"x\":-1392,\"y\":-889},\"endPoint\":{\"x\":-1093,\"y\":-1182},\"name\":1709035,\"isStrLine\":true},{\"startPoint\":{\"x\":-1093,\"y\":-1182},\"endPoint\":{\"x\":1018,\"y\":-1267},\"name\":1709036,\"isStrLine\":true},{\"startPoint\":{\"x\":1018,\"y\":-1267},\"endPoint\":{\"x\":1403,\"y\":-841},\"name\":1709037,\"isStrLine\":true},{\"startPoint\":{\"x\":1403,\"y\":-841},\"endPoint\":{\"x\":1403,\"y\":958},\"name\":1709038,\"isStrLine\":true},{\"startPoint\":{\"x\":1403,\"y\":958},\"endPoint\":{\"x\":-30,\"y\":958},\"name\":1709039,\"isStrLine\":true},{\"startPoint\":{\"x\":-30,\"y\":958},\"endPoint\":{\"x\":-30,\"y\":1168},\"name\":1709040,\"isStrLine\":true},{\"startPoint\":{\"x\":-30,\"y\":1168},\"endPoint\":{\"x\":-717,\"y\":1168},\"name\":1709041,\"isStrLine\":true},{\"startPoint\":{\"x\":-717,\"y\":1168},\"endPoint\":{\"x\":-717,\"y\":1269},\"name\":1709042,\"isStrLine\":true},{\"startPoint\":{\"x\":-717,\"y\":1269},\"endPoint\":{\"x\":-1392,\"y\":1269},\"name\":1709043,\"isStrLine\":true},{\"startPoint\":{\"x\":-1392,\"y\":1269},\"endPoint\":{\"x\":-1392,\"y\":-889},\"name\":1709044,\"isStrLine\":true}],\"entColor\":\"#ffffff\",\"borderColor\":\"#cacac9\",\"toHeight\":5,\"alphaModle\":90,\"site\":0,\"xaxis\":5.5,\"yaxis\":1,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":0,\"isLabel\":1,\"comeIn\":\"\",\"area\":19544,\"map\":\"\"},\"buildArea\":[],\"hollowArea\":[{\"id\":\"57e2a63730d0\",\"name\":\"hollow\",\"hasLines\":[{\"startPoint\":{\"x\":-776,\"y\":-378},\"endPoint\":{\"x\":-663,\"y\":-487},\"name\":1709045,\"isStrLine\":true},{\"startPoint\":{\"x\":-663,\"y\":-487},\"endPoint\":{\"x\":-562,\"y\":-515},\"name\":1709046,\"isStrLine\":false,\"ctrlPoint1\":{\"x\":-638,\"y\":-509},\"ctrlPoint2\":{\"x\":-609,\"y\":-524}},{\"startPoint\":{\"x\":-562,\"y\":-515},\"endPoint\":{\"x\":100,\"y\":-433},\"name\":1709047,\"isStrLine\":true},{\"startPoint\":{\"x\":100,\"y\":-433},\"endPoint\":{\"x\":234,\"y\":-457},\"name\":1709048,\"isStrLine\":false,\"ctrlPoint1\":{\"x\":146,\"y\":-428},\"ctrlPoint2\":{\"x\":183,\"y\":-429}},{\"startPoint\":{\"x\":234,\"y\":-457},\"endPoint\":{\"x\":560,\"y\":-614},\"name\":1709049,\"isStrLine\":true},{\"startPoint\":{\"x\":560,\"y\":-614},\"endPoint\":{\"x\":634,\"y\":-610},\"name\":1709050,\"isStrLine\":false,\"ctrlPoint1\":{\"x\":580,\"y\":-626},\"ctrlPoint2\":{\"x\":608,\"y\":-630}},{\"startPoint\":{\"x\":634,\"y\":-610},\"endPoint\":{\"x\":719,\"y\":-512},\"name\":1709051,\"isStrLine\":true},{\"startPoint\":{\"x\":719,\"y\":-512},\"endPoint\":{\"x\":713,\"y\":-423},\"name\":1709052,\"isStrLine\":false,\"ctrlPoint1\":{\"x\":738,\"y\":-482},\"ctrlPoint2\":{\"x\":734,\"y\":-461}},{\"startPoint\":{\"x\":713,\"y\":-423},\"endPoint\":{\"x\":644,\"y\":-271},\"name\":1709053,\"isStrLine\":true},{\"startPoint\":{\"x\":644,\"y\":-271},\"endPoint\":{\"x\":644,\"y\":57},\"name\":1709054,\"isStrLine\":true},{\"startPoint\":{\"x\":644,\"y\":57},\"endPoint\":{\"x\":327,\"y\":474},\"name\":1709055,\"isStrLine\":true},{\"startPoint\":{\"x\":327,\"y\":474},\"endPoint\":{\"x\":-476,\"y\":474},\"name\":1709056,\"isStrLine\":true},{\"startPoint\":{\"x\":-476,\"y\":474},\"endPoint\":{\"x\":-776,\"y\":197},\"name\":1709057,\"isStrLine\":true},{\"startPoint\":{\"x\":-776,\"y\":197},\"endPoint\":{\"x\":-776,\"y\":-378},\"name\":1709058,\"isStrLine\":true}],\"entColor\":\"\",\"borderColor\":\"\",\"toHeight\":30,\"alphaModle\":90,\"site\":0,\"xaxis\":-34.5,\"yaxis\":-70,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":0,\"isLabel\":1,\"comeIn\":\"\",\"area\":3952,\"map\":\"\"},{\"id\":\"0342d50a0f3d\",\"name\":\"hollow\",\"hasLines\":[{\"startPoint\":{\"x\":750,\"y\":269},\"endPoint\":{\"x\":875,\"y\":269},\"name\":1709059,\"isStrLine\":true},{\"startPoint\":{\"x\":875,\"y\":269},\"endPoint\":{\"x\":875,\"y\":517},\"name\":1709060,\"isStrLine\":true},{\"startPoint\":{\"x\":875,\"y\":517},\"endPoint\":{\"x\":750,\"y\":517},\"name\":1709061,\"isStrLine\":true},{\"startPoint\":{\"x\":750,\"y\":517},\"endPoint\":{\"x\":750,\"y\":269},\"name\":1709062,\"isStrLine\":true}],\"entColor\":\"\",\"borderColor\":\"\",\"toHeight\":30,\"alphaModle\":90,\"site\":0,\"xaxis\":812.5,\"yaxis\":384.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":0,\"isLabel\":1,\"comeIn\":\"\",\"area\":96,\"map\":\"\"}],\"shopArea\":[{\"id\":\"ef86b2ef9241\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":639,\"y\":-914},\"endPoint\":{\"x\":639,\"y\":-1248},\"name\":1709063,\"isStrLine\":true},{\"startPoint\":{\"x\":639,\"y\":-1248},\"endPoint\":{\"x\":739,\"y\":-1252},\"name\":1709064,\"isStrLine\":true},{\"startPoint\":{\"x\":739,\"y\":-1252},\"endPoint\":{\"x\":739,\"y\":-1052},\"name\":1709065,\"isStrLine\":true},{\"startPoint\":{\"x\":739,\"y\":-1052},\"endPoint\":{\"x\":810,\"y\":-1052},\"name\":1709066,\"isStrLine\":true},{\"startPoint\":{\"x\":810,\"y\":-1052},\"endPoint\":{\"x\":810,\"y\":-914},\"name\":1709067,\"isStrLine\":true},{\"startPoint\":{\"x\":810,\"y\":-914},\"endPoint\":{\"x\":639,\"y\":-914},\"name\":1709068,\"isStrLine\":true}],\"entColor\":\"#baedff\",\"borderColor\":\"#baedff\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":725.5,\"yaxis\":-1082,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":\"10\",\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":134,\"map\":\"\"},{\"id\":\"bd04a68913ee\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":846,\"y\":-915.68},\"endPoint\":{\"x\":846,\"y\":-1051},\"name\":1709069,\"isStrLine\":true},{\"startPoint\":{\"x\":846,\"y\":-1051},\"endPoint\":{\"x\":901,\"y\":-1051},\"name\":1709070,\"isStrLine\":true},{\"startPoint\":{\"x\":901,\"y\":-1051},\"endPoint\":{\"x\":901,\"y\":-1258.04},\"name\":1709071,\"isStrLine\":true},{\"startPoint\":{\"x\":901,\"y\":-1258.04},\"endPoint\":{\"x\":1016.57,\"y\":-1262.98},\"name\":1709072,\"isStrLine\":true},{\"startPoint\":{\"x\":1016.57,\"y\":-1262.98},\"endPoint\":{\"x\":1340.59,\"y\":-904.07},\"name\":1709073,\"isStrLine\":true},{\"startPoint\":{\"x\":1340.59,\"y\":-904.07},\"endPoint\":{\"x\":1052.42,\"y\":-639.75},\"name\":1709074,\"isStrLine\":true},{\"startPoint\":{\"x\":1052.42,\"y\":-639.75},\"endPoint\":{\"x\":968.78,\"y\":-867.77},\"name\":1709075,\"isStrLine\":true},{\"startPoint\":{\"x\":968.78,\"y\":-867.77},\"endPoint\":{\"x\":846,\"y\":-915.68},\"name\":1709076,\"isStrLine\":true}],\"entColor\":\"#baedff\",\"borderColor\":\"#baedff\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":1093.5,\"yaxis\":-951,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":\"2\",\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":498,\"map\":\"\"},{\"id\":\"fd3195814279\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":1052.42,\"y\":-639.75},\"endPoint\":{\"x\":1340.59,\"y\":-904.07},\"name\":1709077,\"isStrLine\":true},{\"startPoint\":{\"x\":1340.59,\"y\":-904.07},\"endPoint\":{\"x\":1400,\"y\":-841},\"name\":1709078,\"isStrLine\":true},{\"startPoint\":{\"x\":1400,\"y\":-841},\"endPoint\":{\"x\":1400,\"y\":-287},\"name\":1709079,\"isStrLine\":true},{\"startPoint\":{\"x\":1400,\"y\":-287},\"endPoint\":{\"x\":1053,\"y\":-289},\"name\":1709080,\"isStrLine\":true},{\"startPoint\":{\"x\":1053,\"y\":-289},\"endPoint\":{\"x\":1053,\"y\":-501.94},\"name\":1709081,\"isStrLine\":true},{\"startPoint\":{\"x\":1053,\"y\":-501.94},\"endPoint\":{\"x\":1052.42,\"y\":-639.75},\"name\":1709082,\"isStrLine\":true}],\"entColor\":\"#baedff\",\"borderColor\":\"#baedff\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":1213,\"yaxis\":-596,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":\"8\",\"style\":0,\"isLabel\":1,\"comeIn\":\"\",\"area\":537,\"map\":\"\"},{\"id\":\"e27eaca3db1b\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":1022,\"y\":-215},\"endPoint\":{\"x\":1177,\"y\":-215},\"name\":1709083,\"isStrLine\":true},{\"startPoint\":{\"x\":1177,\"y\":-215},\"endPoint\":{\"x\":1177,\"y\":-49},\"name\":1709084,\"isStrLine\":true},{\"startPoint\":{\"x\":1177,\"y\":-49},\"endPoint\":{\"x\":1022,\"y\":-49},\"name\":1709085,\"isStrLine\":true},{\"startPoint\":{\"x\":1022,\"y\":-49},\"endPoint\":{\"x\":1022,\"y\":-215},\"name\":1709086,\"isStrLine\":true}],\"entColor\":\"#baedff\",\"borderColor\":\"#baedff\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":1099.5,\"yaxis\":-132,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":\"7\",\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":79,\"map\":\"\"},{\"id\":\"2b532952e703\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":1024,\"y\":88},\"endPoint\":{\"x\":1400,\"y\":88},\"name\":1709087,\"isStrLine\":true},{\"startPoint\":{\"x\":1400,\"y\":88},\"endPoint\":{\"x\":1400,\"y\":269},\"name\":1709088,\"isStrLine\":true},{\"startPoint\":{\"x\":1400,\"y\":269},\"endPoint\":{\"x\":1024,\"y\":269},\"name\":1709089,\"isStrLine\":true},{\"startPoint\":{\"x\":1024,\"y\":269},\"endPoint\":{\"x\":1024,\"y\":88},\"name\":1709090,\"isStrLine\":true}],\"entColor\":\"#baedff\",\"borderColor\":\"#baedff\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":1212,\"yaxis\":177.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":\"4\",\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":210,\"map\":\"\"},{\"id\":\"e7eaa6163cb6\",\"name\":\"L4-19\",\"hasLines\":[{\"startPoint\":{\"x\":877,\"y\":269},\"endPoint\":{\"x\":1400,\"y\":269},\"name\":1709091,\"isStrLine\":true},{\"startPoint\":{\"x\":1400,\"y\":269},\"endPoint\":{\"x\":1400,\"y\":663},\"name\":1709092,\"isStrLine\":true},{\"startPoint\":{\"x\":1400,\"y\":663},\"endPoint\":{\"x\":877,\"y\":663},\"name\":1709093,\"isStrLine\":true},{\"startPoint\":{\"x\":877,\"y\":663},\"endPoint\":{\"x\":877,\"y\":269},\"name\":1709094,\"isStrLine\":true}],\"entColor\":\"#baedff\",\"borderColor\":\"#baedff\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":1212,\"yaxis\":358.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":\"-14\",\"style\":0,\"isLabel\":1,\"comeIn\":\"\",\"area\":642,\"map\":\"\"},{\"id\":\"38d384768269\",\"name\":\"L4-18\",\"hasLines\":[{\"startPoint\":{\"x\":648,\"y\":-596.37},\"endPoint\":{\"x\":648,\"y\":-829},\"name\":1709095,\"isStrLine\":true},{\"startPoint\":{\"x\":648,\"y\":-829},\"endPoint\":{\"x\":798,\"y\":-829},\"name\":1709096,\"isStrLine\":true},{\"startPoint\":{\"x\":798,\"y\":-829},\"endPoint\":{\"x\":895,\"y\":-790},\"name\":1709097,\"isStrLine\":true},{\"startPoint\":{\"x\":895,\"y\":-790},\"endPoint\":{\"x\":956.06,\"y\":-636},\"name\":1709098,\"isStrLine\":true},{\"startPoint\":{\"x\":956.06,\"y\":-636},\"endPoint\":{\"x\":956.06,\"y\":-505},\"name\":1709099,\"isStrLine\":true},{\"startPoint\":{\"x\":956.06,\"y\":-505},\"endPoint\":{\"x\":727.46,\"y\":-505},\"name\":1709100,\"isStrLine\":true},{\"startPoint\":{\"x\":727.46,\"y\":-505},\"endPoint\":{\"x\":648,\"y\":-596.37},\"name\":1709101,\"isStrLine\":true}],\"entColor\":\"#baedff\",\"borderColor\":\"#baedff\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":803.5,\"yaxis\":-667,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":9,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":269,\"map\":\"\"},{\"id\":\"586265246c4a\",\"name\":\"L4-7\",\"hasLines\":[{\"startPoint\":{\"x\":727.46,\"y\":-505},\"endPoint\":{\"x\":956.06,\"y\":-505},\"name\":1709102,\"isStrLine\":true},{\"startPoint\":{\"x\":956.06,\"y\":-505},\"endPoint\":{\"x\":956.06,\"y\":-355},\"name\":1709103,\"isStrLine\":true},{\"startPoint\":{\"x\":956.06,\"y\":-355},\"endPoint\":{\"x\":685.57,\"y\":-355},\"name\":1709104,\"isStrLine\":true},{\"startPoint\":{\"x\":685.57,\"y\":-355},\"endPoint\":{\"x\":728.92,\"y\":-448.61},\"name\":1709105,\"isStrLine\":true},{\"startPoint\":{\"x\":728.92,\"y\":-448.61},\"endPoint\":{\"x\":727.46,\"y\":-505},\"name\":1709106,\"isStrLine\":false,\"ctrlPoint1\":{\"x\":736.02,\"y\":-466.86},\"ctrlPoint2\":{\"x\":733.98,\"y\":-486.22}}],\"entColor\":\"#baedff\",\"borderColor\":\"#baedff\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":825.5,\"yaxis\":-429,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":8,\"style\":0,\"isLabel\":1,\"comeIn\":\"\",\"area\":111,\"map\":\"\"},{\"id\":\"37a7b0447d55\",\"name\":\"shop\",\"hasLines\":[{\"startPoint\":{\"x\":685.57,\"y\":-355},\"endPoint\":{\"x\":956.06,\"y\":-355},\"name\":1709107,\"isStrLine\":true},{\"startPoint\":{\"x\":956.06,\"y\":-355},\"endPoint\":{\"x\":956.06,\"y\":149},\"name\":1709108,\"isStrLine\":true},{\"startPoint\":{\"x\":956.06,\"y\":149},\"endPoint\":{\"x\":747.39,\"y\":149},\"name\":1709109,\"isStrLine\":true},{\"startPoint\":{\"x\":747.39,\"y\":149},\"endPoint\":{\"x\":647,\"y\":56.56},\"name\":1709110,\"isStrLine\":true},{\"startPoint\":{\"x\":647,\"y\":56.56},\"endPoint\":{\"x\":645,\"y\":-270.77},\"name\":1709111,\"isStrLine\":true},{\"startPoint\":{\"x\":645,\"y\":-270.77},\"endPoint\":{\"x\":685.57,\"y\":-355},\"name\":1709112,\"isStrLine\":true}],\"entColor\":\"#baedff\",\"borderColor\":\"#baedff\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":800.5,\"yaxis\":-102,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":\"7\",\"style\":0,\"isLabel\":1,\"comeIn\":\"\",\"area\":463,\"map\":\"\"}],\"path\":{\"nodes\":[{\"id\":0,\"x\":-1072,\"y\":-872,\"Proy\":\"graph\",\"list\":[{\"cost\":1142,\"id\":11}]},{\"id\":1,\"x\":830,\"y\":-877,\"Proy\":\"graph\",\"list\":[{\"cost\":108,\"id\":2},{\"cost\":116,\"id\":10}]},{\"id\":2,\"x\":925,\"y\":-825,\"Proy\":\"graph\",\"list\":[{\"cost\":108,\"id\":1},{\"cost\":80,\"id\":9}]},{\"id\":3,\"x\":988,\"y\":-655,\"Proy\":\"graph\",\"list\":[{\"cost\":231,\"id\":8},{\"cost\":100,\"id\":9}]},{\"id\":4,\"x\":990,\"y\":232,\"Proy\":\"graph\",\"list\":[{\"cost\":193,\"id\":5},{\"cost\":177,\"id\":12}]},{\"id\":5,\"x\":991,\"y\":39,\"Proy\":\"graph\",\"list\":[{\"cost\":193,\"id\":4},{\"cost\":157,\"id\":6},{\"cost\":153,\"id\":7}]},{\"id\":6,\"x\":1148,\"y\":35,\"Proy\":\"graph\",\"list\":[{\"cost\":157,\"id\":5}]},{\"id\":7,\"x\":991,\"y\":-114,\"Proy\":\"graph\",\"list\":[{\"cost\":153,\"id\":5},{\"cost\":310,\"id\":8}]},{\"id\":8,\"x\":989,\"y\":-424,\"Proy\":\"graph\",\"list\":[{\"cost\":231,\"id\":3},{\"cost\":310,\"id\":7}]},{\"id\":9,\"x\":953,\"y\":-749,\"Proy\":\"graph\",\"list\":[{\"cost\":80,\"id\":2},{\"cost\":100,\"id\":3}]},{\"id\":10,\"x\":714,\"y\":-877,\"Proy\":\"graph\",\"list\":[{\"cost\":116,\"id\":1},{\"cost\":644,\"id\":11}]},{\"id\":11,\"x\":70,\"y\":-876,\"Proy\":\"graph\",\"list\":[{\"cost\":1142,\"id\":0},{\"cost\":644,\"id\":10}]},{\"id\":12,\"x\":813,\"y\":228,\"Proy\":\"graph\",\"list\":[{\"cost\":177,\"id\":4}]}]},\"decos\":[{\"id\":\"7b40e825437d\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":639,\"y\":-1248},\"endPoint\":{\"x\":639,\"y\":-914},\"name\":1709916,\"isStrLine\":true},{\"startPoint\":{\"x\":639,\"y\":-914},\"endPoint\":{\"x\":-1118,\"y\":-914},\"name\":1709917,\"isStrLine\":true},{\"startPoint\":{\"x\":-1118,\"y\":-914},\"endPoint\":{\"x\":-1118,\"y\":-376},\"name\":1709918,\"isStrLine\":true},{\"startPoint\":{\"x\":-1118,\"y\":-376},\"endPoint\":{\"x\":-779,\"y\":-378},\"name\":1709919,\"isStrLine\":true},{\"startPoint\":{\"x\":-779,\"y\":-378},\"endPoint\":{\"x\":-780,\"y\":198},\"name\":1709920,\"isStrLine\":true},{\"startPoint\":{\"x\":-780,\"y\":198},\"endPoint\":{\"x\":-476,\"y\":477},\"name\":1709921,\"isStrLine\":true},{\"startPoint\":{\"x\":-476,\"y\":477},\"endPoint\":{\"x\":328,\"y\":477},\"name\":1709922,\"isStrLine\":true},{\"startPoint\":{\"x\":328,\"y\":477},\"endPoint\":{\"x\":647,\"y\":56.56},\"name\":1709923,\"isStrLine\":true},{\"startPoint\":{\"x\":647,\"y\":56.56},\"endPoint\":{\"x\":747.39,\"y\":149},\"name\":1709924,\"isStrLine\":true},{\"startPoint\":{\"x\":747.39,\"y\":149},\"endPoint\":{\"x\":748,\"y\":520},\"name\":1709925,\"isStrLine\":true},{\"startPoint\":{\"x\":748,\"y\":520},\"endPoint\":{\"x\":874,\"y\":520},\"name\":1709926,\"isStrLine\":true},{\"startPoint\":{\"x\":874,\"y\":520},\"endPoint\":{\"x\":874,\"y\":666},\"name\":1709927,\"isStrLine\":true},{\"startPoint\":{\"x\":874,\"y\":666},\"endPoint\":{\"x\":1400,\"y\":666},\"name\":1709928,\"isStrLine\":true},{\"startPoint\":{\"x\":1400,\"y\":666},\"endPoint\":{\"x\":1400,\"y\":955},\"name\":1709929,\"isStrLine\":true},{\"startPoint\":{\"x\":1400,\"y\":955},\"endPoint\":{\"x\":-33,\"y\":955},\"name\":1709930,\"isStrLine\":true},{\"startPoint\":{\"x\":-33,\"y\":955},\"endPoint\":{\"x\":-33,\"y\":1165},\"name\":1709931,\"isStrLine\":true},{\"startPoint\":{\"x\":-33,\"y\":1165},\"endPoint\":{\"x\":-720,\"y\":1165},\"name\":1709932,\"isStrLine\":true},{\"startPoint\":{\"x\":-720,\"y\":1165},\"endPoint\":{\"x\":-720,\"y\":1266},\"name\":1709933,\"isStrLine\":true},{\"startPoint\":{\"x\":-720,\"y\":1266},\"endPoint\":{\"x\":-1387,\"y\":1266},\"name\":1709934,\"isStrLine\":true},{\"startPoint\":{\"x\":-1387,\"y\":1266},\"endPoint\":{\"x\":-1387,\"y\":-886},\"name\":1709935,\"isStrLine\":true},{\"startPoint\":{\"x\":-1387,\"y\":-886},\"endPoint\":{\"x\":-1092,\"y\":-1178},\"name\":1709936,\"isStrLine\":true},{\"startPoint\":{\"x\":-1092,\"y\":-1178},\"endPoint\":{\"x\":639,\"y\":-1248},\"name\":1709937,\"isStrLine\":true}],\"entColor\":\"#f2f2f2\",\"borderColor\":\"#e3e3e3\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":6.5,\"yaxis\":9,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":9079,\"map\":\"\"},{\"id\":\"9877f9b8d9c3\",\"name\":\"deco\",\"hasLines\":[{\"startPoint\":{\"x\":1177,\"y\":-287},\"endPoint\":{\"x\":1400,\"y\":-287},\"name\":1709938,\"isStrLine\":true},{\"startPoint\":{\"x\":1400,\"y\":-287},\"endPoint\":{\"x\":1400,\"y\":86},\"name\":1709939,\"isStrLine\":true},{\"startPoint\":{\"x\":1400,\"y\":86},\"endPoint\":{\"x\":1177,\"y\":86},\"name\":1709940,\"isStrLine\":true},{\"startPoint\":{\"x\":1177,\"y\":86},\"endPoint\":{\"x\":1177,\"y\":-287},\"name\":1709941,\"isStrLine\":true}],\"entColor\":\"#f0f0f0\",\"borderColor\":\"#d9d9d9\",\"toHeight\":30,\"alphaModle\":100,\"site\":0,\"xaxis\":1282,\"yaxis\":-99.5,\"angle\":0,\"angleY\":0,\"angleZ\":0,\"scale\":1,\"gid\":\"\",\"hollArea\":[],\"shopNav\":-1,\"style\":1,\"isLabel\":1,\"comeIn\":\"\",\"area\":257,\"map\":\"\"}],\"icons\":[],\"stairs\":[{\"no\":\"2\",\"x\":1138,\"y\":35,\"navCode\":6,\"facCode\":\"dt\",\"title\":\"直梯\",\"site\":0,\"angle\":0,\"state\":true,\"iShow\":true,\"downState\":false,\"upState\":false}],\"parkArea\":[],\"wallArea\":[{\"id\":\"57e2a63730d0\",\"name\":\"hWall\",\"pathPoints\":[{\"x\":-776,\"y\":-378},{\"x\":-663,\"y\":-487},{\"x\":-656,\"y\":-494},{\"x\":-648,\"y\":-500},{\"x\":-640,\"y\":-505},{\"x\":-631,\"y\":-509},{\"x\":-621,\"y\":-513},{\"x\":-611,\"y\":-516},{\"x\":-600,\"y\":-518},{\"x\":-589,\"y\":-518},{\"x\":-576,\"y\":-517},{\"x\":-562,\"y\":-515},{\"x\":100,\"y\":-433},{\"x\":113,\"y\":-432},{\"x\":126,\"y\":-431},{\"x\":139,\"y\":-431},{\"x\":152,\"y\":-432},{\"x\":165,\"y\":-433},{\"x\":178,\"y\":-436},{\"x\":191,\"y\":-439},{\"x\":204,\"y\":-444},{\"x\":219,\"y\":-450},{\"x\":233,\"y\":-457},{\"x\":560,\"y\":-614},{\"x\":566,\"y\":-618},{\"x\":572,\"y\":-621},{\"x\":579,\"y\":-623},{\"x\":587,\"y\":-624},{\"x\":594,\"y\":-624},{\"x\":602,\"y\":-624},{\"x\":610,\"y\":-622},{\"x\":618,\"y\":-620},{\"x\":626,\"y\":-616},{\"x\":634,\"y\":-610},{\"x\":719,\"y\":-512},{\"x\":724,\"y\":-504},{\"x\":727,\"y\":-495},{\"x\":730,\"y\":-487},{\"x\":731,\"y\":-479},{\"x\":731,\"y\":-471},{\"x\":729,\"y\":-463},{\"x\":727,\"y\":-454},{\"x\":723,\"y\":-444},{\"x\":718,\"y\":-434},{\"x\":713,\"y\":-424},{\"x\":644,\"y\":-271},{\"x\":644,\"y\":57},{\"x\":327,\"y\":474},{\"x\":-476,\"y\":474},{\"x\":-776,\"y\":197},{\"x\":-776,\"y\":-378}],\"thick\":3,\"isWall\":true,\"entColor\":\"#f0f0f0\",\"borderColor\":\"#c4c4c4\",\"toHeight\":30,\"alphaModle\":20,\"site\":0},{\"id\":\"0342d50a0f3d\",\"name\":\"hWall\",\"pathPoints\":[{\"x\":875,\"y\":269},{\"x\":875,\"y\":517},{\"x\":750,\"y\":517},{\"x\":750,\"y\":269}],\"thick\":3,\"isWall\":true,\"entColor\":\"#f0f0f0\",\"borderColor\":\"#c4c4c4\",\"toHeight\":30,\"alphaModle\":20,\"site\":0},{\"id\":\"fd3195814279\",\"name\":\"shopWall\",\"pathPoints\":[{\"x\":1340,\"y\":-905},{\"x\":1052,\"y\":-640}],\"thick\":4,\"isWall\":true,\"entColor\":\"#FFFFFF\",\"borderColor\":\"#FFFFFF\",\"toHeight\":31,\"alphaModle\":100,\"site\":0},{\"id\":\"586265246c4a\",\"name\":\"shopWall\",\"pathPoints\":[{\"x\":956,\"y\":-505},{\"x\":727,\"y\":-505}],\"thick\":4,\"isWall\":true,\"entColor\":\"#FFFFFF\",\"borderColor\":\"#FFFFFF\",\"toHeight\":31,\"alphaModle\":100,\"site\":0},{\"id\":\"37a7b0447d55\",\"name\":\"shopWall\",\"pathPoints\":[{\"x\":956,\"y\":-355},{\"x\":685,\"y\":-355}],\"thick\":4,\"isWall\":true,\"entColor\":\"#FFFFFF\",\"borderColor\":\"#FFFFFF\",\"toHeight\":31,\"alphaModle\":100,\"site\":0},{\"id\":\"e7eaa6163cb6\",\"name\":\"shopWall\",\"pathPoints\":[{\"x\":1400,\"y\":269},{\"x\":1024,\"y\":269}],\"thick\":4,\"isWall\":true,\"entColor\":\"#FFFFFF\",\"borderColor\":\"#FFFFFF\",\"toHeight\":31,\"alphaModle\":100,\"site\":0},{\"id\":\"700d39957b30\",\"name\":\"fWall\",\"pathPoints\":[{\"x\":-1392,\"y\":-889},{\"x\":-1093,\"y\":-1182},{\"x\":1018,\"y\":-1267},{\"x\":1403,\"y\":-841},{\"x\":1403,\"y\":958},{\"x\":-30,\"y\":958},{\"x\":-30,\"y\":1168},{\"x\":-717,\"y\":1168},{\"x\":-717,\"y\":1269},{\"x\":-1392,\"y\":1269},{\"x\":-1392,\"y\":-889}],\"thick\":3,\"isWall\":true,\"entColor\":\"#f0f0f0\",\"borderColor\":\"#c4c4c4\",\"toHeight\":30,\"alphaModle\":100,\"site\":0}],\"svgArea\":[],\"models\":[]},\"code\":\"AnbWM8WtRnNx34DGySB5C\"}],\"code\":\"gDQKBSW9Poutfp1gDkOeb\"}]","createTime":"2023-11-06 08:50:46","updateTime":"2023-11-29 13:29:40"}} \ No newline at end of file diff --git a/public/static/offline/JSON/getMapInfo.json b/public/static/offline/JSON/getMapInfo.json deleted file mode 100644 index a428931..0000000 --- a/public/static/offline/JSON/getMapInfo.json +++ /dev/null @@ -1,702 +0,0 @@ -{ - "code": 200, - "msg": "操作成功", - "data": { - "shopList": [ - { - "projectCode": "project-o99mwit8jby-qb_xrffk2a", - "isSpecial": 0, - "isPass": 1, - "industryCode": "", - "industryFatherCode": "IgA6IPVu8efV_Nj6BglZO", - "industryFatherName": "生活配套", - "industryFatherNameEn": "", - "industryFatherNameJa": "", - "industryFatherNameOl": "", - "shopCode": "Zm0a2Gp2y2zG-tyu9R6ym", - "shopName": "佬克拉", - "shopNameEn": "", - "shopNameJa": "", - "shopNameOl": "", - "alias": "", - "logoCode": "qentCamtghXztYY2UxcSK", - "logoUrl": "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/qentCamtghXztYY2UxcSK.png", - "industryUrl": "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/HrR0FjrdJkKLFATk6L43J.png", - "building": "苏州金地广场", - "floor": "L3", - "houseNumber": "L3-44", - "intro": "Brand Introduction\n佬克拉男士理容馆专注男士理发是一家集纯正男士理发 文身\n潮牌 美酒音乐 派对 为一体的专属男人的社交场所 提供轻松\n愉悦的理发氛围 考究的工具 细节的处理 传递出我们的工作\n态度 除了理发本身更注重跟客户的关系 诚实 健康 快乐 大胆 \n全心全意提供一个专属男士的生活俱乐部\n老克拉,或称“老克勒”,指的是老上海那些阅历较深,收入较\n高,消费前卫,在文化休闲方式上独领潮流的都市男性族群。\n这些人大多出身于名门世家,受过当时的“洋 化”教育,目睹或\n亲历了十里洋场上灯红酒绿、光怪陆离的生活方式。“老”并不\n是指年纪老,而是经验丰富、久经历练的意思。", - "introEn": "", - "introJa": "", - "introOl": "", - "regionCode": "", - "businessHours": "10:00-22:00", - "contact": "13149439287", - "gender": 3, - "minAge": 1, - "maxAge": 100, - "thirdKouCode": "", - "thirdMeiCode": "", - "thirdZhiCode": "", - "isNewShop": 0, - "xaxis": "[-1076, 40, -598.5]", - "yaxis": "51", - "navXaxis": "-985", - "navYaxis": "-601", - "doorMaterialList": [ - "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/0KfCv_37Jej5W4giUTHEH.png", - "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/K5gyV1Je46hInTQrLcTew.png" - ], - "foodMaterialList": [], - "spelling": "lao ke la ", - "initials": "LKL", - "borderColor": "", - "formatColor": "", - "buildingCode": "gDQKBSW9Poutfp1gDkOeb", - "buildingOrder": 0, - "floorCode": "Ek_MaiuKLPjakB1uB0uQV", - "floorOrder": 6, - "star": 0, - "tagList": [] - }, - { - "projectCode": "project-o99mwit8jby-qb_xrffk2a", - "isSpecial": 0, - "isPass": 1, - "industryCode": "7axYKdEizHB19jjdVDkk_", - "industryName": "甜品饮品类", - "industryNameEn": "", - "industryNameJa": "", - "industryNameOl": "", - "industryFatherCode": "xJ9TDqzwZeOxh3XKuF4CY", - "industryFatherName": "餐饮", - "industryFatherNameEn": "", - "industryFatherNameJa": "", - "industryFatherNameOl": "", - "shopCode": "IuE3EV6ZXgbl7WFs65u4R", - "shopName": "马伍旺", - "shopNameEn": "", - "shopNameJa": "", - "shopNameOl": "", - "alias": "", - "logoCode": "1tC1SylXjnX9RY9CpcFoc", - "logoUrl": "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/1tC1SylXjnX9RY9CpcFoc.png", - "industryUrl": "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/I3-tfHkflBawkBiEdnBFE.png", - "building": "苏州金地广场", - "floor": "B1", - "houseNumber": "B1-24a", - "intro": "年轻人的80s复古回潮工厂风饮料铺\n馬伍旺饮料厂以年代记忆为切入点,基于特定的时代风格,运用国营工厂的文化标签和视觉表现,注入现代工作生活的美好寓意,顺应了行业的复古潮流,满足了消费者的年代情怀。\n作为南京川菜长期头部商家——馬伍旺的衍生品牌,馬伍旺饮料厂积极运用品牌+产品+内容的矩阵效应,各门店开业之初,便一举登顶大众点评南京全市及各区饮品店热门榜TOP1。\n\n馬伍旺饮料厂设计灵感源于中国人的底层审美,运用创新与融合,再现70-80年代计划经济工风,大胆撞色,戳中年轻人的审美情趣,别具一格,市面上独此一家。\n馬伍旺饮料厂以江浙沪口味为基础研发产品,坚持使用真奶好茶,创造原生爆款消费者一口就能喝出区别,好的原材料才能有好的味觉持续性。 \n\n馬伍旺深入洞察年轻人的喜好和特性,不仅好喝,而且耐看。用视觉吸引客人,用口味留住客人,用内涵获得支持。\n\nSlogan:真奶好茶 国货正品 质量保证 加速实现饮料自由", - "introEn": "", - "introJa": "", - "introOl": "", - "regionCode": "", - "businessHours": "10:00-22:00", - "contact": "", - "gender": 3, - "minAge": 1, - "maxAge": 100, - "thirdKouCode": "", - "thirdMeiCode": "", - "thirdZhiCode": "", - "isNewShop": 0, - "xaxis": "[-890, 30, -267]", - "yaxis": "21", - "navXaxis": "-449", - "navYaxis": "-226", - "doorMaterialList": [ - "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/2Of7OpFJoBwKV9a2tW-IB.png", - "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/2OKmCBomT-ftWqHCcAa7Y.png", - "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/CbouQ7GQgMEhZYIO0FH1m.png" - ], - "foodMaterialList": [ - "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/1h2l47U6swpyI26s3VbQh.png" - ], - "spelling": "ma wu wang ", - "initials": "MWW", - "borderColor": "", - "formatColor": "#F46F85", - "buildingCode": "gDQKBSW9Poutfp1gDkOeb", - "buildingOrder": 0, - "floorCode": "bXx1U0xdFI0d6B0NueY8r", - "floorOrder": 2, - "star": 0, - "tagList": [] - }, - { - "projectCode": "project-o99mwit8jby-qb_xrffk2a", - "isSpecial": 0, - "isPass": 1, - "industryCode": "7axYKdEizHB19jjdVDkk_", - "industryName": "甜品饮品类", - "industryNameEn": "", - "industryNameJa": "", - "industryNameOl": "", - "industryFatherCode": "xJ9TDqzwZeOxh3XKuF4CY", - "industryFatherName": "餐饮", - "industryFatherNameEn": "", - "industryFatherNameJa": "", - "industryFatherNameOl": "", - "shopCode": "BKDvK95c8BCsWPCCUEFbp", - "shopName": "奈雪的茶", - "shopNameEn": "NAIXUE", - "shopNameJa": "", - "shopNameOl": "", - "alias": "", - "logoCode": "7X-h9Z8vhoXBqSUiDlqiW", - "logoUrl": "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/7X-h9Z8vhoXBqSUiDlqiW.png", - "industryUrl": "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/I3-tfHkflBawkBiEdnBFE.png", - "building": "苏州金地广场", - "floor": "LG", - "houseNumber": "LG-18", - "intro": "奈雪的茶,新茶饮赛道开创者,创立于2015年,领创推出“茶饮+软欧包”双品类模式。聚焦以茶为核心的现代生活方式,奈雪已形成“现制茶饮”、“奈雪茗茶”及“瓶装饮料”三大业务版块,成功打造“霸气玉油柑”、“鸭屎香宝藏茶”、“龙井奶茶”等多款行业爆品。\n2021年6月30日,奈雪的茶正式在港交所挂牌上市。目前,奈雪的茶已覆盖全国近100个城市,门店数量超过1200家。\n秉承“美好自有力量”的理念,奈雪的茶以成为“受顾客喜爱的全球性茶饮品牌”为使命,致力于成为茶文化走向世界的创新者和推动者。", - "introEn": "", - "introJa": "", - "introOl": "", - "regionCode": "", - "businessHours": "10:00-22:00", - "contact": "", - "gender": 3, - "minAge": 1, - "maxAge": 100, - "thirdKouCode": "", - "thirdMeiCode": "", - "thirdZhiCode": "", - "isNewShop": 0, - "xaxis": "[-880, 30, 870]", - "yaxis": "16", - "navXaxis": "-864", - "navYaxis": "690", - "doorMaterialList": [], - "foodMaterialList": [], - "spelling": "nai xue de cha ", - "initials": "NXDC", - "borderColor": "", - "formatColor": "#F46F85", - "buildingCode": "gDQKBSW9Poutfp1gDkOeb", - "buildingOrder": 0, - "floorCode": "3xmtwGPYYlUyL9WftNsdd", - "floorOrder": 3, - "star": 0, - "tagList": [] - }, - { - "projectCode": "project-o99mwit8jby-qb_xrffk2a", - "isSpecial": 0, - "isPass": 1, - "industryCode": "7axYKdEizHB19jjdVDkk_", - "industryName": "甜品饮品类", - "industryNameEn": "", - "industryNameJa": "", - "industryNameOl": "", - "industryFatherCode": "xJ9TDqzwZeOxh3XKuF4CY", - "industryFatherName": "餐饮", - "industryFatherNameEn": "", - "industryFatherNameJa": "", - "industryFatherNameOl": "", - "shopCode": "6yU8mbIO6u5FwlF83AHhl", - "shopName": "柠檬森林", - "shopNameEn": "", - "shopNameJa": "", - "shopNameOl": "", - "alias": "", - "logoCode": "HLyocAxVDBDsZRqjIpL4K", - "logoUrl": "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/HLyocAxVDBDsZRqjIpL4K.png", - "industryUrl": "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/I3-tfHkflBawkBiEdnBFE.png", - "building": "苏州金地广场", - "floor": "B1", - "houseNumber": "B1-24b", - "intro": "柠檬森林2021年成立于苏州,执着新鲜的茶饮口感,追逐新奇的味蕾体验,崇尚新潮的生活态度,致力于研创柠檬茶的全新制作方式。\n全新推出可以喝的『鸡鸭鱼肉』系列,柠檬森林开市啦!\n\n原创鸡笼香单枞茶底,茶香清悠,入口绵柔,清新韵味缓缓释放。\n经典鸭屎香单枞茶底,银花香气,醇厚劲爽,余韵悠长,回甘上头。\n尝新东方美人茶,果蜜香气丰腴,滋味清透活泼,鲜爽甜润。\n焙火造就高香肉桂,入口醇厚,回味似有乳香,甘润爽快。\n4款茶底,可纯茶呈现,可制成酸爽柠檬茶,可搭配轻乳和香柠轻奶霜,可搭配香柠轻奶油和小饼干。柠檬森林菜篮子,鸡鸭鱼肉都好喝!", - "introEn": "", - "introJa": "", - "introOl": "", - "regionCode": "", - "businessHours": "10:00-22:00", - "contact": "", - "gender": 3, - "minAge": 1, - "maxAge": 100, - "thirdKouCode": "", - "thirdMeiCode": "", - "thirdZhiCode": "", - "isNewShop": 0, - "xaxis": "[-941, 30, 490.5]", - "yaxis": "15", - "navXaxis": "-485", - "navYaxis": "480", - "doorMaterialList": [], - "foodMaterialList": [], - "spelling": "ning meng sen lin ", - "initials": "NMSL", - "borderColor": "", - "formatColor": "#F46F85", - "buildingCode": "gDQKBSW9Poutfp1gDkOeb", - "buildingOrder": 0, - "floorCode": "bXx1U0xdFI0d6B0NueY8r", - "floorOrder": 2, - "star": 0, - "tagList": [] - }, - { - "projectCode": "project-o99mwit8jby-qb_xrffk2a", - "isSpecial": 0, - "isPass": 1, - "industryCode": "", - "industryFatherCode": "iAuVTeLLzJZ6aXlgK1x7I", - "industryFatherName": "休闲娱乐", - "industryFatherNameEn": "", - "industryFatherNameJa": "", - "industryFatherNameOl": "", - "shopCode": "lqF15INUravcfL7Avk-Pd", - "shopName": "跳动方块", - "shopNameEn": "", - "shopNameJa": "", - "shopNameOl": "", - "alias": "", - "logoCode": "nRwugprLg6T2MHtPouHkY", - "logoUrl": "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/nRwugprLg6T2MHtPouHkY.png", - "building": "苏州金地广场", - "floor": "L3", - "houseNumber": "L3-29", - "intro": "沉浸式体感运动项目游戏 ,室内全新游戏模式:国内兴起的超火爆的线下娱乐游戏。跳动方块游戏是通过不同的灯光变化规则设置,实现双人/多人组队闯关或对抗的游戏模式,在趣味性/互动性上有非常多的玩法,还有一定的运动锻炼作用,是一种全新的年轻人线下聚会游戏体验方式。\n “跳一下瘦20斤” 新型社交运动方式,打造不一样的运动新体验。全都需要团队配合以及肢体触发才能通关,过程中非常考验反应力、浸式体感运动,协调力和协作性,是绿色、健度、运动的体感游\n 随着对技术、产品理解的深入,跳动方块的物联网芯片、游戏设计、商业模型等方面更加成熟。这是一款以亲子运动、年轻势力为主流消费群体,不分年龄、不分城市的新式科技感运动游戏设备。\n 跳动方块始终坚持以活力、潮流、有趣为核心,打造科技运动新风向标,将意想意创公司十年以来的技术基础融会贯通,打造新运动,新生活。革新室内娱乐方式,让体育运动更有趣!", - "introEn": "", - "introJa": "", - "introOl": "", - "regionCode": "", - "businessHours": "10:00-22:00", - "contact": "", - "gender": 3, - "minAge": 1, - "maxAge": 100, - "thirdKouCode": "", - "thirdMeiCode": "", - "thirdZhiCode": "", - "isNewShop": 0, - "xaxis": "[160, 40, -502]", - "yaxis": "40", - "navXaxis": "159", - "navYaxis": "-668", - "doorMaterialList": [], - "foodMaterialList": [], - "spelling": "tiao dong fang kuai ", - "initials": "TDFK", - "borderColor": "", - "formatColor": "", - "buildingCode": "gDQKBSW9Poutfp1gDkOeb", - "buildingOrder": 0, - "floorCode": "Ek_MaiuKLPjakB1uB0uQV", - "floorOrder": 6, - "star": 0, - "tagList": [] - }, - { - "projectCode": "project-o99mwit8jby-qb_xrffk2a", - "isSpecial": 0, - "isPass": 1, - "industryCode": "jriAJU9--9QWS4UJY97FY", - "industryName": "异国餐饮", - "industryNameEn": "", - "industryNameJa": "", - "industryNameOl": "", - "industryFatherCode": "xJ9TDqzwZeOxh3XKuF4CY", - "industryFatherName": "餐饮", - "industryFatherNameEn": "", - "industryFatherNameJa": "", - "industryFatherNameOl": "", - "shopCode": "HJIpv7HTM9A1WyB8llz53", - "shopName": "哥哥的夜深夜食堂", - "shopNameEn": "", - "shopNameJa": "", - "shopNameOl": "", - "alias": "", - "logoCode": "Io-Xl44rmTy6ShVVSOymd", - "logoUrl": "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/Io-Xl44rmTy6ShVVSOymd.png", - "industryUrl": "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/I3-tfHkflBawkBiEdnBFE.png", - "building": "苏州金地广场", - "floor": "L4", - "houseNumber": "L4-7", - "intro": "哥哥心语:希望每一个到来的客人都能在“哥哥の深夜食堂”遇见关于美食的幸福。不但满足您的胃,更能温暖您的心。\n一家风格以“寿司”和“碳烤”为主的居酒屋,是一家用心的【深夜食堂】。\n 取名“哥哥”是觉得这是一个亲切的称呼,在寂静的深夜特别能给人温暖。\n 带着掌心温度的寿司:我们花时间比较了所有日本产的电饭煲,最终从日本駝来了虎牌。很多人误以为寿司就是生冷的,许多店铺也会为客人提供冰鲜的寿司,殊不知,带有师傅掌心温度的寿司才是最适合品尝的。\n 盐烤:相比世面上的居酒屋,店里的碳烤以盐烤为主,较为有特色;\n 大到食材,小到酱汁,对我们来说,没有一件是小事,没有一件事不值得用心完成。\n “ 哥哥の深夜食堂”只想做一家认真的,用心的小店;温暖所有的不完美!", - "introEn": "", - "introJa": "", - "introOl": "", - "regionCode": "", - "businessHours": "10:00-22:00", - "contact": "", - "gender": 3, - "minAge": 1, - "maxAge": 100, - "thirdKouCode": "", - "thirdMeiCode": "", - "thirdZhiCode": "", - "isNewShop": 0, - "xaxis": "[825.5, 30, -429]", - "yaxis": "8", - "navXaxis": "989", - "navYaxis": "-424", - "doorMaterialList": [], - "foodMaterialList": [], - "spelling": "ge ge de ye shen ye shi tang ", - "initials": "GGDYSYST", - "borderColor": "", - "formatColor": "#F46F85", - "buildingCode": "gDQKBSW9Poutfp1gDkOeb", - "buildingOrder": 0, - "floorCode": "AnbWM8WtRnNx34DGySB5C", - "floorOrder": 7, - "star": 0, - "tagList": [] - }, - { - "projectCode": "project-o99mwit8jby-qb_xrffk2a", - "isSpecial": 0, - "isPass": 1, - "industryCode": "9YILgbC34ICSaMxlY9DtI", - "industryName": "中餐", - "industryNameEn": "", - "industryNameJa": "", - "industryNameOl": "", - "industryFatherCode": "xJ9TDqzwZeOxh3XKuF4CY", - "industryFatherName": "餐饮", - "industryFatherNameEn": "", - "industryFatherNameJa": "", - "industryFatherNameOl": "", - "shopCode": "K2cg1Om-AI2A6w35N07Yd", - "shopName": "兰湘子", - "shopNameEn": "lanxiangzi", - "shopNameJa": "", - "shopNameOl": "", - "alias": "", - "logoCode": "0ZCN4jLpZGh3NfHQTNA21", - "logoUrl": "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/0ZCN4jLpZGh3NfHQTNA21.png", - "industryUrl": "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/I3-tfHkflBawkBiEdnBFE.png", - "building": "苏州金地广场", - "floor": "L3", - "houseNumber": "L3-6/7/8", - "intro": "想要吃一餐好饭却又担心时间不够?\n\n兰湘子 · 湘菜小炒,\n专为解决更多白领一族的美食体验和用餐效率问题;\n上菜快,吃得爽,湘菜热销榜;\n兰湘子产品由著名湘菜大师张小春先生主理出品;\n是首个入驻skp的湘菜品牌,也是湘菜小炒品类引领者;2022年大众点评必吃榜上榜品牌;\n全国14省,200+直营门店。", - "introEn": "", - "introJa": "", - "introOl": "", - "regionCode": "", - "businessHours": "10:00-22:00", - "contact": "", - "gender": 3, - "minAge": 1, - "maxAge": 100, - "thirdKouCode": "", - "thirdMeiCode": "", - "thirdZhiCode": "", - "isNewShop": 0, - "xaxis": "[407, 40, 702]", - "yaxis": "28", - "navXaxis": "337", - "navYaxis": "600", - "doorMaterialList": [ - "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/hb4D__B5anhDZ48VB5KMl.png", - "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/nl9BxnyfeTgQa9JeDrS3i.png", - "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/ErMNXULl31yfzZnTqSlfp.png" - ], - "foodMaterialList": [ - "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/dsrlg87RAsWFTsyB28UKC.png" - ], - "spelling": "lan xiang zi ", - "initials": "LXZ", - "borderColor": "", - "formatColor": "#F46F85", - "buildingCode": "gDQKBSW9Poutfp1gDkOeb", - "buildingOrder": 0, - "floorCode": "Ek_MaiuKLPjakB1uB0uQV", - "floorOrder": 6, - "star": 0, - "tagList": [] - }, - { - "projectCode": "project-o99mwit8jby-qb_xrffk2a", - "isSpecial": 0, - "isPass": 1, - "industryCode": "", - "industryFatherCode": "X8f1sfGl0gfa_QwVcMy86", - "industryFatherName": "零售", - "industryFatherNameEn": "", - "industryFatherNameJa": "", - "industryFatherNameOl": "", - "shopCode": "3zZ9xUruHS1BeutRzuuFZ", - "shopName": "漫库", - "shopNameEn": "", - "shopNameJa": "", - "shopNameOl": "", - "alias": "", - "logoCode": "nYoCUJlnBAt3NTeSoXAFY", - "logoUrl": "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/nYoCUJlnBAt3NTeSoXAFY.png", - "industryUrl": "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/ML7yzGtexT_-LAh-bmnqr.png", - "building": "苏州金地广场", - "floor": "B1", - "houseNumber": "B1-1b", - "intro": "漫库是国内全新的二次元品牌,成立于2019年12月,致力于为用户提供优质的二次元图书和正版授权的IP衍生品,拥有优秀的商务团队、产品设计团队和营销团队。针对全国二次元年轻用户,通过网络宣传,贩售与漫展,商场快闪店,实体店相结合的经营模式,打通线下与线上渠道,带给用户沉浸式的二次元体验。致力于为用户提供优质的正版授权IP衍生品(即谷子),拥有优秀的商务团队、产品设计团队和营销团队。针对全国00后的二次元年轻用户,MANCOOL漫库旗下自媒体矩阵覆盖微博、微信公众号、抖音、小红书、loft等近2000万的平台流量。短视频、活动策划的形式玩转营销;并在微信,抖音,QQ群聚集粉丝,搭建500万+的私域流量池,对用户进行深度营销。", - "introEn": "", - "introJa": "", - "introOl": "", - "regionCode": "", - "businessHours": "10:00-22:00", - "contact": "", - "gender": 3, - "minAge": 1, - "maxAge": 100, - "thirdKouCode": "", - "thirdMeiCode": "", - "thirdZhiCode": "", - "isNewShop": 0, - "xaxis": "[1140, 30, -858.5]", - "yaxis": "14", - "navXaxis": "1005", - "navYaxis": "-930", - "doorMaterialList": [], - "foodMaterialList": [], - "spelling": "man ku ", - "initials": "MK", - "borderColor": "", - "formatColor": "", - "buildingCode": "gDQKBSW9Poutfp1gDkOeb", - "buildingOrder": 0, - "floorCode": "bXx1U0xdFI0d6B0NueY8r", - "floorOrder": 2, - "star": 0, - "tagList": [] - }, - { - "projectCode": "project-o99mwit8jby-qb_xrffk2a", - "isSpecial": 0, - "isPass": 1, - "industryCode": "7axYKdEizHB19jjdVDkk_", - "industryName": "甜品饮品类", - "industryNameEn": "", - "industryNameJa": "", - "industryNameOl": "", - "industryFatherCode": "xJ9TDqzwZeOxh3XKuF4CY", - "industryFatherName": "餐饮", - "industryFatherNameEn": "", - "industryFatherNameJa": "", - "industryFatherNameOl": "", - "shopCode": "JWVv0Q2gyl4T72Od66G7I", - "shopName": "酸奶罐罐", - "shopNameEn": "", - "shopNameJa": "", - "shopNameOl": "", - "alias": "", - "logoCode": "ZP5hVVHWWxFYe8ap8NsBg", - "logoUrl": "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/ZP5hVVHWWxFYe8ap8NsBg.png", - "industryUrl": "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/I3-tfHkflBawkBiEdnBFE.png", - "building": "苏州金地广场", - "floor": "B1", - "houseNumber": "B1-43b", - "intro": "酸奶罐罐是桂桂茶(原桂源铺)集团旗下的年轻酸奶饮品品牌,主打水果芝士酸奶,品牌整体风格年轻、时尚、有活力。以易拉罐形式进行包装,满足高颜值、强锁鲜与易传播的特性。产品以7种俄式乳酸菌发酵而成的酸奶为主,添加安佳进口芝士、0卡糖,再搭配不同鲜果制作而成,罐罐有芝士,罐罐有惊喜!\n传递积极向上、鼓励彼此阳光生活的态度与文化是酸奶罐罐的品牌理念。\n酸奶罐罐共有3个产品类别,分别是芝士酸奶系列、创意酸奶系列和天然色系列,其中小蓝罐现做芝士酸奶即是主打产品。\n芝士酸奶系列,香浓顺滑的芝士酸奶搭配鲜果、坚果等精选食材,让这一罐的美味达到了每一口都惊艳的地步。\n创意酸奶系列,打破传统酸奶口味,精心挑选和芝士酸奶能完美融合的食材,经历上万次的实验和搭配,制作出创意不凡、口味新颖的高颜值饮品。\n天然色系列,在芝士酸奶中加入了食物的天然本色,每一款超乎您的想象!\n这一次,我们打破了大家对日常酸奶的刻板印象,用突破性技术把酸奶装进易拉罐,锁住美味,在品尝现做芝士酸奶的瞬间,您的味觉感官一定会得到释放和满足!", - "introEn": "", - "introJa": "", - "introOl": "", - "regionCode": "", - "businessHours": "10:00-22:00", - "contact": "", - "gender": 3, - "minAge": 1, - "maxAge": 100, - "thirdKouCode": "", - "thirdMeiCode": "", - "thirdZhiCode": "", - "isNewShop": 0, - "xaxis": "[865, 30, 369]", - "yaxis": "4", - "navXaxis": "725", - "navYaxis": "341", - "doorMaterialList": [], - "foodMaterialList": [], - "spelling": "suan nai guan guan ", - "initials": "SNGG", - "borderColor": "", - "formatColor": "#F46F85", - "buildingCode": "gDQKBSW9Poutfp1gDkOeb", - "buildingOrder": 0, - "floorCode": "bXx1U0xdFI0d6B0NueY8r", - "floorOrder": 2, - "star": 0, - "tagList": [] - }, - { - "projectCode": "project-o99mwit8jby-qb_xrffk2a", - "isSpecial": 0, - "isPass": 1, - "industryCode": "7axYKdEizHB19jjdVDkk_", - "industryName": "甜品饮品类", - "industryNameEn": "", - "industryNameJa": "", - "industryNameOl": "", - "industryFatherCode": "xJ9TDqzwZeOxh3XKuF4CY", - "industryFatherName": "餐饮", - "industryFatherNameEn": "", - "industryFatherNameJa": "", - "industryFatherNameOl": "", - "shopCode": "PzJtTKXrlcKjsR6a60NXk", - "shopName": "霸王茶姬", - "shopNameEn": "", - "shopNameJa": "", - "shopNameOl": "", - "alias": "", - "logoCode": "MQhcm4As4nAbDjug2eakZ", - "logoUrl": "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/MQhcm4As4nAbDjug2eakZ.png", - "industryUrl": "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/I3-tfHkflBawkBiEdnBFE.png", - "building": "苏州金地广场", - "floor": "B1", - "houseNumber": "B1-34", - "intro": "霸王茶姬来自世界茶叶故乡云南的新中式国风茶饮品牌,原叶鲜奶茶,喝出真茶味,健康好茶,喝霸王茶姬", - "introEn": "", - "introJa": "", - "introOl": "", - "regionCode": "", - "businessHours": "10:00-22:00", - "contact": "", - "gender": 3, - "minAge": 1, - "maxAge": 100, - "thirdKouCode": "", - "thirdMeiCode": "", - "thirdZhiCode": "", - "isNewShop": 0, - "xaxis": "[-106, 30, 554]", - "yaxis": "42", - "navXaxis": "-91", - "navYaxis": "434", - "doorMaterialList": [], - "foodMaterialList": [], - "spelling": "ba wang cha ji ", - "initials": "BWCJ", - "borderColor": "", - "formatColor": "#F46F85", - "buildingCode": "gDQKBSW9Poutfp1gDkOeb", - "buildingOrder": 0, - "floorCode": "bXx1U0xdFI0d6B0NueY8r", - "floorOrder": 2, - "star": 0, - "tagList": [] - }, - { - "projectCode": "project-o99mwit8jby-qb_xrffk2a", - "isSpecial": 0, - "isPass": 1, - "industryCode": "V_BVkmNqO0IdYZsBnU_0R", - "industryName": "自助/烧烤", - "industryNameEn": "", - "industryNameJa": "", - "industryNameOl": "", - "industryFatherCode": "xJ9TDqzwZeOxh3XKuF4CY", - "industryFatherName": "餐饮", - "industryFatherNameEn": "", - "industryFatherNameJa": "", - "industryFatherNameOl": "", - "shopCode": "la-k9y5UAXns_iHoRpFvH", - "shopName": "九月海", - "shopNameEn": "", - "shopNameJa": "", - "shopNameOl": "", - "alias": "", - "logoCode": "jzP2Ps3HRgo72QIHr9T3D", - "logoUrl": "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/jzP2Ps3HRgo72QIHr9T3D.png", - "industryUrl": "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/I3-tfHkflBawkBiEdnBFE.png", - "building": "苏州金地广场", - "floor": "L3", - "houseNumber": "L3-25/26b", - "intro": "九月海海鲜自助餐厅团队不但囊括了长期霸榜美团、大众点评等平台海鲜人气榜NO.ONE、堪称海鲜连锁的巨匠大咖,还邀请了国家级特级厨师,前国家乒乓球训练基地总厨师长,国内数一数二的美食制造者加入。九月海海鲜自助餐厅以“烹健康食材、享大海致味”为初心而成立的自助海鲜品牌,品牌的目的就是实现海鲜平民化。\n九月海海鲜自助餐厅会让消费者亲眼看见生猛异常、活蹦乱跳的海鲜自由烹饪,只有以“高端的食材、简单的烹饪”保留海鲜最原始的鲜味,才能满足都市人日益挑剔的味蕾。以“生猛鲜活、原始美味”著称的“九月海”,获得了消费者一致好评。\n九月海海鲜自助餐厅励志于为普罗大众带去健康的饮食理念、海味十足的味蕾定格,追求极致“海之味”的坚定信念,从东海之滨全球首店展开新的启程、势必创建全国连锁餐饮品牌矩阵。", - "introEn": "", - "introJa": "", - "introOl": "", - "regionCode": "", - "businessHours": "10:00-22:00", - "contact": "17605931045", - "gender": 3, - "minAge": 1, - "maxAge": 100, - "thirdKouCode": "", - "thirdMeiCode": "", - "thirdZhiCode": "", - "isNewShop": 0, - "xaxis": "[911, 40, -949.5]", - "yaxis": "3", - "navXaxis": "780", - "navYaxis": "-782", - "doorMaterialList": [], - "foodMaterialList": [], - "spelling": "jiu yue hai ", - "initials": "JYH", - "borderColor": "", - "formatColor": "#F46F85", - "buildingCode": "gDQKBSW9Poutfp1gDkOeb", - "buildingOrder": 0, - "floorCode": "Ek_MaiuKLPjakB1uB0uQV", - "floorOrder": 6, - "star": 0, - "tagList": [] - } - ], - "buildingList": [ - { - "building": "苏州金地广场", - "buildingCode": "gDQKBSW9Poutfp1gDkOeb", - "buildingOrder": 0, - "floorList": [ - { - "floor": "L4", - "floorCode": "AnbWM8WtRnNx34DGySB5C", - "floorOrder": 7, - "floorMapUrl": "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231121/VA3SMuQnU1pHyAA0fCyQz.jpg", - "floorMapCode": "VA3SMuQnU1pHyAA0fCyQz" - }, - { - "floor": "L3", - "floorCode": "Ek_MaiuKLPjakB1uB0uQV", - "floorOrder": 6, - "floorMapUrl": "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231121/XI5XhIDj2GGakBX39H7t_.jpg", - "floorMapCode": "XI5XhIDj2GGakBX39H7t_" - }, - { - "floor": "L2", - "floorCode": "KfRjq3d6ICYrXyaYFjAJU", - "floorOrder": 5, - "floorMapUrl": "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231121/LC66mHHGyK-Ioh3qJF2iy.jpg", - "floorMapCode": "LC66mHHGyK-Ioh3qJF2iy" - }, - { - "floor": "L1", - "floorCode": "cwgojwijT_qG0f7DVhWpu", - "floorOrder": 4, - "floorMapUrl": "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231109/iflVDYELQkpaWRuNZpD-r.jpg", - "floorMapCode": "iflVDYELQkpaWRuNZpD-r" - }, - { - "floor": "LG", - "floorCode": "3xmtwGPYYlUyL9WftNsdd", - "floorOrder": 3, - "floorMapUrl": "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231121/vye9kG9VLPLcIGtgEi4yD.jpg", - "floorMapCode": "vye9kG9VLPLcIGtgEi4yD" - }, - { - "floor": "B1", - "floorCode": "bXx1U0xdFI0d6B0NueY8r", - "floorOrder": 2, - "floorMapUrl": "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231121/LWrBVa3MQjGcJmp5Km1id.jpg", - "floorMapCode": "LWrBVa3MQjGcJmp5Km1id" - }, - { - "floor": "B2", - "floorCode": "qVfcECIRfX14egPA7U4yE", - "floorOrder": 1, - "floorMapUrl": "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231121/WlyP80H4NOitKjkBy2bU-.jpg", - "floorMapCode": "WlyP80H4NOitKjkBy2bU-" - }, - { - "floor": "B3", - "floorCode": "eAx9XqfXkPtK3RgXXdpzL", - "floorOrder": 0, - "floorMapUrl": "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231121/IS9oPSgtcGbcWTSJ6kc9T.jpg", - "floorMapCode": "IS9oPSgtcGbcWTSJ6kc9T" - } - ] - } - ] - } -} diff --git a/public/static/offline/JSON/getMemberActivities.json b/public/static/offline/JSON/getMemberActivities.json deleted file mode 100644 index 2b5a0dd..0000000 --- a/public/static/offline/JSON/getMemberActivities.json +++ /dev/null @@ -1 +0,0 @@ -{"code":200,"msg":"操作成功","data":[{"id":878,"entryCode":"G4t_2TQOVCXbdNa-eEoDv","title":"会员活动一","content":{"title":"会员活动一","titleEn":"","content":"","contentEn":"","fileUrl":["/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/A8yAGcs7Ac_bYFA7rUn34.jpg"],"startDate":"2023-11-22","endDate":"2023-11-25","address":"","addressEn":"","shopCode":"","point":""}},{"id":879,"entryCode":"Tpr2xjfUqbvUnIdiV58Zn","title":"会员活动二","content":{"title":"2024年秋季系列Miss Dior 花漾系列香水惊喜上线,9折会员惊喜购商场金卡会员享受折上折!","titleEn":"In the autumn of 2024, Miss Dior Floral Series perfume will be launched with a surprise, and members will enjoy a 10% discount when purchasing gold cards in the shopping mall!","content":"欧时力(香港)集团全权代理意大利品牌欧时力(OCHIRLY),并组建欧时力(中国)有限公司,全权负责OCHIRLY在大中华区的品牌经营。欧时力自1999年进入中国市场以来,欧时力以前所未有的速度在中国市场发展壮大。在短短的两、三年间,迅速于中国60多个一、二类主要消费城市的160余家加盟店以及专柜年销售额达到2.5亿。销售业绩评效均名列前茅,整体业绩不断上扬!在女装市场享有一定的知名度和美誉度。欧时力(香港)集团全权代理意大利品牌欧时力(OCHIRLY),并组建欧时力(中国)有限公司,全权负责OCHIRLY在大中华区的品牌经营。欧时力自1999年进入中国市场以来,欧时力以前所未有的速度在中国市场发展壮大。在短短的两、三年间,迅速于中国60多个一、二类主要消费城市的160余家加盟店以及专柜年销售额达到2.5亿在短短的两、三年间,迅速于中国60多个一、二类主要消费城市的160余家加盟店以及专柜年销售额达到2.5亿在短短的两、三年间,迅速于中欧时力(香港)集团全权代理意大利品牌欧时力(OCHIRLY),并组建欧时力(中国)有限公司,全权负责OCHIRLY在大中华区的品牌经营。欧时力自1999年进入中国市场以来,欧时力以前所未有的速度在中国市场发展壮大。在短短的两、三年间,迅速于中国60多个一、二类主要消费城市的160余家加盟店以及专柜年销售额达到2.5亿。销售业绩评效均名列前茅,整体业绩不断上扬!在女装市场享有一定的知名度和美誉度。欧时力(香港)集团全权代理意大利品牌欧时力(OCHIRLY),并组建欧时力(中国)有限公司,全权负责OCHIRLY在大中华区的品牌经营。欧时力自1999年进入中国市场以来,欧时力以前所未有的速度在中国市场发展壮大。在短短的两、三年间,迅速于中国60多个一、二类主要消费城市的160余家加盟店以及专柜年销售额达到2.5亿在短短的两、三年间,迅速于中国60多个一、二类主要消费城市的160余家加盟店以及专柜年销售额达到2.5亿在短短的两、三年间。","contentEn":"Oushili (Hong Kong) Group fully represents the Italian brand OCHIRLY and establishes OCHIRLY (China) Co., Ltd., fully responsible for OCHIRLY's brand management in Greater China. Since entering the Chinese market in 1999, Oushili has developed and grown at an unprecedented speed in the Chinese market. In just two to three years, the annual sales of over 160 franchise stores and counters in over 60 major consumer cities in China reached 250 million. Sales performance evaluation is among the top, and overall performance continues to improve! Has a certain level of popularity and reputation in the women's clothing market. Oushili (Hong Kong) Group fully represents the Italian brand OCHIRLY and establishes OCHIRLY (China) Co., Ltd., fully responsible for OCHIRLY's brand management in Greater China. Since entering the Chinese market in 1999, Oushili has developed and grown at an unprecedented speed in the Chinese market. In just two or three years, it quickly reached 250 million yuan in annual sales of over 160 franchise stores and counters in over 60 primary and secondary consumer cities in China. In just two or three years, it quickly reached 250 million yuan in annual sales of over 160 franchise stores and counters in over 60 primary and secondary consumer cities in China. In just two or three years, it quickly fully represented the Italian brand OCHIRLY under the China Europe Shili (Hong Kong) Group, And establish Oushili (China) Co., Ltd., fully responsible for the brand management of OCHIRLY in Greater China. Since entering the Chinese market in 1999, Oushili has developed and grown at an unprecedented speed in the Chinese market. In just two to three years, the annual sales of over 160 franchise stores and counters in over 60 major consumer cities in China reached 250 million. Sales performance evaluation is among the top, and overall performance continues to improve! Has a certain level of popularity and reputation in the women's clothing market. Oushili (Hong Kong) Group fully represents the Italian brand OCHIRLY and establishes OCHIRLY (China) Co., Ltd., fully responsible for OCHIRLY's brand management in Greater China. Since entering the Chinese market in 1999, Oushili has developed and grown at an unprecedented speed in the Chinese market. In just two or three years, the annual sales of over 160 franchise stores and counters in over 60 major consumer cities in China reached 250 million yuan. In just two or three years, the annual sales of over 160 franchise stores and counters in over 60 major consumer cities in China reached 250 million yuan.","fileUrl":["/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/b8Uob5yC1OP2bN09j92if.png"],"startDate":"2023-11-22","endDate":"2023-11-30","address":" 这是一个会员活动地址这是一个会员活动地址","addressEn":"This is a membership activity address","shopCode":"","point":""}},{"id":880,"entryCode":"7Sz-i82gkqoVlMOJyJ3pD","title":"会员活动三","content":{"title":"会员活动三","titleEn":"","content":"梳妆打扮梳妆打扮","contentEn":"","fileUrl":["/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/cSu_mlt-zgYe2je2vtza5.png"],"startDate":"2023-11-22","endDate":"2023-11-26","address":"","addressEn":"","shopCode":"","point":""}}]} \ No newline at end of file diff --git a/public/static/offline/JSON/getMemberBenefits.json b/public/static/offline/JSON/getMemberBenefits.json deleted file mode 100644 index 10cb09e..0000000 --- a/public/static/offline/JSON/getMemberBenefits.json +++ /dev/null @@ -1 +0,0 @@ -{"code":200,"msg":"操作成功","data":[{"id":875,"entryCode":"W4wt3xv4k6GGATS0lTjIS","title":"会员权益","content":{"title":"会员权益说明","titleEn":"Member Benefits Description","content":"星巴克会员是星巴克公司推出的一个会员计划,旨在为喜欢在星巴克消费的顾客提供更多的优惠和特别服务。星巴克会员计划是免费的,任何人都可以通过星巴克官方网站或者移动应用程序加入。 通过成为星巴克会员,您可以享受以下优惠: 星巴克星礼卡:星巴克会员可以通过星巴克移动应用程序购买和管理星巴克星礼卡,同时也可以获得更多的星礼卡奖励。 积分奖励:星巴克会员可以通过消费获得积分,并且可以将积分兑换成免费的咖啡和食品。 免费的生日饮料:在会员生日当天,星巴克会员可以获得一杯免费的咖啡或茶饮。 优先订购新品:星巴克会员可以提前订购新品,并且可以获得更多的新品信息和特别优惠。 其他会员专享优惠:星巴克会员可以获得更多的会员专享优惠,例如优惠券和特别活动等。 总之,星巴克会员计划是一个非常实用和有用的计划,可以为星巴克的忠实消费者提供更多的优惠和特别服务。如果你经常在星巴克消费,那么加入星巴克会员计划是一个非常不错的选择。","contentEn":"ters in over 60 major consumer cities in China reached 250 million yuan. The sales performance evaluation is among the top, and the overall performance is constantly improving! Enjoy a certain level of popularity and reputation in the women's clothing market. Oushili (Hong Kong) Group fully represents the Italian brand OCHIRLY and establishes Oushili (China) Co., Ltd., fully responsible for OCHIRLY's brand management in Greater China. Since Oushili entered the Chinese market in 1999, Oushili has grown and grown at an unprecedented speed in the Chinese market. In just two or three years, it quickly reached 250 million yuan in annual sales of over 160 franchise stores and counters in more than 60 primary and secondary consumer cities in China. In just two or three years, it quickly reached 250 million yuan in annual sales of over 160 franchise stores and counters in more than 60 primary and secondary consumer cities in China. In just two or three years, it quickly became the sole agent of the Italian brand OCHIRLY for the China Europe Shili (Hong Kong) Group, And establish Oushili (China) Co., Ltd., fully responsible for OCHIRLY's brand management in Greater China. Since Oushili entered the Chinese market in 1999, Oushili has grown and grown at an unprecedented speed in the Chinese market. In just two or three years, the annual sales of over 160 franchise stores and counters in over 60 major consumer cities in China reached 250 million yuan. The sales performance evaluation is among the top, and the overall performance is constantly improving! Enjoy a certain level of popularity and reputation in the women's clothing market. Oushili (Hong Kong) Group fully represents the Italian brand OCHIRLY and establishes Oushili (China) Co., Ltd., fully responsible for OCHIRLY's brand management in Greater C","fileUrl":["/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/V9SeLCUSONtMC47-rgg2P.jpg","/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/EF37Hf915FXPqUFQVLFPl.png","/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/nnOfJ-nOOTw9XZvGuYepq.png"]}}]} \ No newline at end of file diff --git a/public/static/offline/JSON/getMemberBenefitsQr.json b/public/static/offline/JSON/getMemberBenefitsQr.json deleted file mode 100644 index 8f0d61e..0000000 --- a/public/static/offline/JSON/getMemberBenefitsQr.json +++ /dev/null @@ -1 +0,0 @@ -{"code":200,"msg":"操作成功","data":[{"id":876,"entryCode":"UAruQ5GPKRPY4DmlGC5P0","title":"权益公众号二维码","content":{"title":"这是一个会员权益二维码","titleEn":"This is a membership benefit QR code","fileUrl":["/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/zfuEWsE7ESBKV-GuBdMUo.png"]}},{"id":877,"entryCode":"bBR48d7k6-tmqG76UM-4r","title":"app二维码","content":{"title":"app二维码","titleEn":"","fileUrl":["/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/e0VdPdyrwTA8X--sm7St0.png"]}}]} \ No newline at end of file diff --git a/public/static/offline/JSON/getMenuList.json b/public/static/offline/JSON/getMenuList.json deleted file mode 100644 index 1924244..0000000 --- a/public/static/offline/JSON/getMenuList.json +++ /dev/null @@ -1 +0,0 @@ -{"code":200,"msg":"操作成功","data":[{"id":227,"moduleName":"首页","moduleCode":"VK75wNddyFPAVJ3LgoPnY","routePath":"/","sort":1,"moduleDescription":"Index","moduleDisplay":1,"projectCode":"project-o99mwit8jby-qb_xrffk2a","isDelete":0},{"id":228,"moduleName":"地图","moduleCode":"2PKv98_yC109F2LSytWuA","routePath":"/guide","sort":2,"moduleNameEn":"MAP","moduleDescription":"Guide","moduleDisplay":1,"projectCode":"project-o99mwit8jby-qb_xrffk2a","isDelete":0},{"id":229,"moduleName":"品牌","moduleCode":"Zu5KmKg-fbxQPQVb-1YuL","routePath":"/brand","sort":3,"moduleNameEn":"BRAND","moduleDescription":"Brand","moduleDisplay":1,"projectCode":"project-o99mwit8jby-qb_xrffk2a","isDelete":0},{"id":230,"moduleName":"美食","moduleCode":"34mBgSwKLPfL5jNUg23f3","routePath":"/foods","sort":4,"moduleNameEn":"FOOD","moduleDescription":"Foods","moduleDisplay":1,"projectCode":"project-o99mwit8jby-qb_xrffk2a","isDelete":0},{"id":231,"moduleName":"活动","moduleCode":"hfT6vqUfQIVN6BTqMsGgd","routePath":"/activity","sort":5,"moduleNameEn":"ACTIVITY","moduleDescription":"Activity","moduleDisplay":1,"projectCode":"project-o99mwit8jby-qb_xrffk2a","isDelete":0},{"id":232,"moduleName":"会员","moduleCode":"obignoE7QUoRcO6R_Rx1e","moduleLogo":"/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/4tGwnAXN3DwndvpdzSSwq.png","routePath":"/member","sort":6,"moduleNameEn":"MEMBER","moduleDescription":"Member","moduleDisplay":1,"projectCode":"project-o99mwit8jby-qb_xrffk2a","isDelete":0},{"id":233,"moduleName":"泊车","moduleCode":"PrGWpDcfASphlGYZLy7As","moduleLogo":"/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/okVJnNAQrFcckTKDl_3Nw.png","routePath":"/parking","sort":7,"moduleNameEn":"PARKING","moduleDescription":"Parking","moduleDisplay":1,"projectCode":"project-o99mwit8jby-qb_xrffk2a","isDelete":0},{"id":234,"moduleName":"服务","moduleCode":"xlAe4MDolJdCOiiw6MOY9","moduleLogo":"/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/c7vvQX02wt4so8zIgsGqh.png","routePath":"/service","sort":8,"moduleNameEn":"SERVICE","moduleDescription":"Service","moduleDisplay":1,"projectCode":"project-o99mwit8jby-qb_xrffk2a","isDelete":0}]} \ No newline at end of file diff --git a/public/static/offline/JSON/getParkingInfo.json b/public/static/offline/JSON/getParkingInfo.json deleted file mode 100644 index 3464ea3..0000000 --- a/public/static/offline/JSON/getParkingInfo.json +++ /dev/null @@ -1 +0,0 @@ -{"code":200,"msg":"操作成功","data":[{"id":869,"entryCode":"nctaCLeEH43IosCwEbMG4","title":"停车场介绍","content":{"fileUrl":["/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/tvcJKI-CgMOznWUOAUOPK.png","/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/bGBR0nNu8cmSW2uWq8p0p.png","/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/Y_vc5T3sOowRtKzPfKxd6.png","/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/Gh8SGrJ2eeUHJxUxcPHoE.png","/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/F0hmRmcoSxadN0A3hsK00.png","/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/plwdvxVKOtEfO7vtIXrRC.png","/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/zyR1YybHvfk5N9cwgrrUg.png","/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/A36aD59URwli_QFFrkF0O.png","/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/N8FpaAwJhAYHwwRKTO1cz.png","/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/wDL-SLXj9lbHwvttHG4s-.png"],"qrTitle":"扫码缴费","qrTitleEn":"Scan code to pay","qrUrl":["/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/6k8KmemD79Vz9nVjA5qCV.png"]}}]} \ No newline at end of file diff --git a/public/static/offline/JSON/getProjectUsedIconList.json b/public/static/offline/JSON/getProjectUsedIconList.json deleted file mode 100644 index 762c65a..0000000 --- a/public/static/offline/JSON/getProjectUsedIconList.json +++ /dev/null @@ -1 +0,0 @@ -{"code":200,"msg":"操作成功","data":[{"code":"9zJ-ivQmbOq8IWnmcOj4-","name":"直梯","nameEn":"","customFacilityName":"","customFacilityNameEn":"","customFacilityNameOl":"","abbreviation":"dt","node":"5","objCode":"5","filePath":"https://test-598d.1000my.com/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/82rC9DxmkPxbDfpNb5-CO.png","navFilePath":"/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/82rC9DxmkPxbDfpNb5-CO.png"},{"code":"-RUO-d2dBbSCbCnM9HYfv","name":"扶梯","nameEn":"","customFacilityName":"","customFacilityNameEn":"","customFacilityNameOl":"","abbreviation":"ft","node":"0","objCode":"0","filePath":"https://test-598d.1000my.com/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/J4bKlJ_NUkcNrV2DifKLv.png","navFilePath":"/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/J4bKlJ_NUkcNrV2DifKLv.png"},{"code":"WtRlLjCnxV0EBxySQ1wW0","name":"出入门","nameEn":"","customFacilityName":"","customFacilityNameEn":"","customFacilityNameOl":"","abbreviation":"door","node":"39","objCode":"39","filePath":"https://test-598d.1000my.com/convert/Files/d4cef981-bd89-42ec-a80c-558d5ecd89fd/door.png","navFilePath":"/convert/Files/d4cef981-bd89-42ec-a80c-558d5ecd89fd/door.png"},{"code":"_jw1E6or2zh23BkC1hYgR","name":"洗手间","nameEn":"","customFacilityName":"","customFacilityNameEn":"","customFacilityNameOl":"","abbreviation":"xsj","node":"4","objCode":"4","filePath":"https://test-598d.1000my.com/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/1rIqKb-yOyMoXt8mD4-jz.png","navFilePath":"/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/1rIqKb-yOyMoXt8mD4-jz.png"},{"code":"gKu1VchCK5hJ1-JZqs_z0","name":"无障碍卫生间","nameEn":"","customFacilityName":"","customFacilityNameEn":"","customFacilityNameOl":"","abbreviation":"cjr","node":"10","objCode":"10","filePath":"https://test-598d.1000my.com/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/-vTAzDb7svNbpPg6MCsGe.png","navFilePath":"/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/-vTAzDb7svNbpPg6MCsGe.png"},{"code":"XGS5tldDkVVvRXlZYDKVG","name":"母婴室","nameEn":"","customFacilityName":"","customFacilityNameEn":"","customFacilityNameOl":"","abbreviation":"mys","node":"3","objCode":"3","filePath":"https://test-598d.1000my.com/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/vzjlunIvV261P6rjorfk_.png","navFilePath":"/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/vzjlunIvV261P6rjorfk_.png"},{"code":"gfrN-6pOy8DJpQdQsmuJ6","name":"服务台","nameEn":"","customFacilityName":"","customFacilityNameEn":"","customFacilityNameOl":"","abbreviation":"fwt","node":"7","objCode":"7","filePath":"https://test-598d.1000my.com/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/kY6CMZdTOOYlmzI3he81k.png","navFilePath":"/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/kY6CMZdTOOYlmzI3he81k.png"}]} \ No newline at end of file diff --git a/public/static/offline/JSON/getRecommendTab.json b/public/static/offline/JSON/getRecommendTab.json deleted file mode 100644 index 3c13d8a..0000000 --- a/public/static/offline/JSON/getRecommendTab.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "code": 200, - "msg": "操作成功", - "data": [ - { - "id": 881, - "entryCode": "dR5MltAn47XHNzEAk-QFc", - "title": "好吃的", - "content": { - "title": "好吃的", - "titleEn": "Delicious", - "icon": [ - "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/l41_KV3V2kVkqEpIoJWuT.png" - ], - "type": "foods", - "subTitle": "

这里有超多

不容错过的特色美食

", - "subTitleEn": "

There are so many here

A must-have specialty food

" - } - }, - { - "id": 882, - "entryCode": "m2OyVzqGS69tz8uxipkKZ", - "title": "值得买", - "content": { - "title": "值得买", - "titleEn": "", - "icon": [ - "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/XOo4ugjShQHzO-gpfW1iv.png" - ], - "type": "shopping", - "subTitle": "

精心为您整理的

种草好物

", - "subTitleEn": "" - } - }, - { - "id": 883, - "entryCode": "f5Qlv--jbQMlNEvPA8bjl", - "title": "好玩的", - "content": { - "title": "好玩的", - "titleEn": "", - "icon": [ - "/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/LbQ08IAQOUe4No9oZsRLp.png" - ], - "type": "playing", - "subTitle": "", - "subTitleEn": "" - } - } - ] -} diff --git a/public/static/offline/JSON/getRecommendTabOfList.json b/public/static/offline/JSON/getRecommendTabOfList.json deleted file mode 100644 index 80ba376..0000000 --- a/public/static/offline/JSON/getRecommendTabOfList.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "code": 200, - "msg": "操作成功", - "data": [] -} \ No newline at end of file diff --git a/public/static/offline/JSON/getShopActivities.json b/public/static/offline/JSON/getShopActivities.json deleted file mode 100644 index 7ad2788..0000000 --- a/public/static/offline/JSON/getShopActivities.json +++ /dev/null @@ -1 +0,0 @@ -{"code":200,"msg":"操作成功","data":[{"id":873,"entryCode":"LM4TsPEclWNZrPruxjqiF","title":"店铺活动一","content":{"title":"2024年秋季系列Miss Dior 花漾系列香水惊喜上线","titleEn":"Fall 2024 Miss Dior Floral Series perfume Surprise Launch","content":"欧时力(香港)集团全权代理意大利品牌欧时力(OCHIRLY),并组建欧时力(中国)有限公司,全权负责OCHIRLY在大中华区的品牌经营。欧时力自1999年进入中国市场以来,欧时力以前所未有的速度在中国市场发展壮大。在短短的两、三年间,迅速于中国60多个一、二类主要消费城市的160余家加盟店以及专柜年销售额达到2.5亿。销售业绩评效均名列前茅,整体业绩不断上扬!在女装市场享有一定的知名度和美誉度。欧时力(香港)集团全权代理意大利品牌欧时力(OCHIRLY),并组建欧时力(中国)有限公司,全权负责OCHIRLY在大中华区的品牌经营。欧时力自1999年进入中国市场以来,欧时力以前所未有的速度在中国市场发展壮大。在短短的两、三年间,迅速于中国60多个一、二类主要消费城市的160余家加盟店以及专柜年销售额达到2.5亿在短短的两、三年间,迅速于中国60多个一、二类主要消费城市的160余家加盟店以及专柜年销售额达到2.5亿在短短的两、三年间,迅速于中欧时力(香港)集团全权代理意大利品牌欧时力(OCHIRLY),并组建欧时力(中国","contentEn":"Oushili (Hong Kong) Group fully represents the Italian brand OCHIRLY and establishes OCHIRLY (China) Co., Ltd., fully responsible for OCHIRLY's brand management in Greater China. Since entering the Chinese market in 1999, Oushili has developed and grown at an unprecedented speed in the Chinese market. In just two to three years, the annual sales of over 160 franchise stores and counters in over 60 major consumer cities in China reached 250 million. Sales performance evaluation is among the top, and overall performance continues to improve! Has a certain level of popularity and reputation in the women's clothing market. Oushili (Hong Kong) Group fully represents the Italian brand OCHIRLY and establishes OCHIRLY (China) Co., Ltd., fully responsible for OCHIRLY's brand management in Greater China. Since entering the Chinese market in 1999, Oushili has developed and grown at an unprecedented speed in the Chinese market. In just two or three years, it quickly reached 250 million yuan in annual sales of over 160 franchise stores and counters in over 60 primary and secondary consumer cities in China. In just two or three years, it quickly reached 250 million yuan in annual sales of over 160 franchise stores and counters in over 60 primary and secondary consumer cities in China. In just two or three years, it quickly fully represented the Italian brand OCHIRLY under the China Europe Shili (Hong Kong) Group, And establish Oushili (China)","fileUrl":["/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/sOaykHVfY47pbL80MEv4Q.jpg"],"startDate":"2023-11-22","endDate":"2025-11-29","address":"","addressEn":"","shopCode":"BKDvK95c8BCsWPCCUEFbp","point":""}},{"id":874,"entryCode":"klvhX-ELzV8qJzpPvq2kL","title":"店铺活动二","content":{"title":"点位-L2-17","titleEn":"","content":"","contentEn":"","fileUrl":["/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/kx2j-bqI6kldoWI2suOn9.jpg"],"startDate":"2023-11-22","endDate":"2024-11-30","address":"啊手动阀手动阀","addressEn":"","shopCode":"","point":"0_5_17"}}]} \ No newline at end of file diff --git a/public/static/offline/JSON/getSpecialIndustry.json b/public/static/offline/JSON/getSpecialIndustry.json deleted file mode 100644 index 63a029b..0000000 --- a/public/static/offline/JSON/getSpecialIndustry.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "code": 200, - "msg": "操作成功", - "data": [ - { - "id": 897, - "entryCode": "L76mmDvOiY6TRRW9ENuaI", - "title": "业态", - "content": { - "industryCode": "xJ9TDqzwZeOxh3XKuF4CY" - } - } - ] -} \ No newline at end of file diff --git a/public/static/offline/JSON/getWeather.json b/public/static/offline/JSON/getWeather.json index f082ee3..cd66719 100644 --- a/public/static/offline/JSON/getWeather.json +++ b/public/static/offline/JSON/getWeather.json @@ -1 +1,26 @@ -{"code":200,"msg":"操作成功","data":{"area":"苏州","o3":"41","city":"苏州","windPower":"2级","aqi_pm25":"70","pm10":"70","co":"1","quality":"良","no2":"42","temperatureHigh":"19","update_time":"1701207063","temperatureNow":"11.7","temperatureLow":"7","so2":"10","weather":"多云转阴","aqi":"94","humidity":"73%","windDirection":"东南风","prov":"江苏","pm":"127"}} \ No newline at end of file +{ + "code": 200, + "msg": "操作成功", + "data": { + "area": "苏州", + "o3": "41", + "city": "苏州", + "windPower": "2级", + "aqi_pm25": "70", + "pm10": "70", + "co": "1", + "quality": "良", + "no2": "42", + "temperatureHigh": "19", + "update_time": "1701207063", + "temperatureNow": "11.7", + "temperatureLow": "7", + "so2": "10", + "weather": "多云转阴", + "aqi": "94", + "humidity": "73%", + "windDirection": "东南风", + "prov": "江苏", + "pm": "127" + } +} diff --git a/public/static/offline/convert/Files/03f408da-6e69-4177-aa6a-077edf93d317/ht.png b/public/static/offline/convert/Files/03f408da-6e69-4177-aa6a-077edf93d317/ht.png deleted file mode 100644 index 76f1b5a..0000000 Binary files a/public/static/offline/convert/Files/03f408da-6e69-4177-aa6a-077edf93d317/ht.png and /dev/null differ diff --git a/public/static/offline/convert/Files/03fdc19d-3496-496f-8c69-3a9672968a6b/dyj.png b/public/static/offline/convert/Files/03fdc19d-3496-496f-8c69-3a9672968a6b/dyj.png deleted file mode 100644 index fc0ad80..0000000 Binary files a/public/static/offline/convert/Files/03fdc19d-3496-496f-8c69-3a9672968a6b/dyj.png and /dev/null differ diff --git a/public/static/offline/convert/Files/09394353-368f-4353-a1d1-150a4453adec/xmb.png b/public/static/offline/convert/Files/09394353-368f-4353-a1d1-150a4453adec/xmb.png deleted file mode 100644 index 8da1d52..0000000 Binary files a/public/static/offline/convert/Files/09394353-368f-4353-a1d1-150a4453adec/xmb.png and /dev/null differ diff --git a/public/static/offline/convert/Files/0c783f8d-0efb-4916-9835-d7dd244f8126/lt.png b/public/static/offline/convert/Files/0c783f8d-0efb-4916-9835-d7dd244f8126/lt.png deleted file mode 100644 index c5b2867..0000000 Binary files a/public/static/offline/convert/Files/0c783f8d-0efb-4916-9835-d7dd244f8126/lt.png and /dev/null differ diff --git a/public/static/offline/convert/Files/0fa61260-48ff-48c3-89fb-38761b875370/thg.png b/public/static/offline/convert/Files/0fa61260-48ff-48c3-89fb-38761b875370/thg.png deleted file mode 100644 index 69d2331..0000000 Binary files a/public/static/offline/convert/Files/0fa61260-48ff-48c3-89fb-38761b875370/thg.png and /dev/null differ diff --git a/public/static/offline/convert/Files/0fc49d32-a9df-4f5d-8f44-7c80cccc8b36/etxsj.png b/public/static/offline/convert/Files/0fc49d32-a9df-4f5d-8f44-7c80cccc8b36/etxsj.png deleted file mode 100644 index 6dd4737..0000000 Binary files a/public/static/offline/convert/Files/0fc49d32-a9df-4f5d-8f44-7c80cccc8b36/etxsj.png and /dev/null differ diff --git a/public/static/offline/convert/Files/11b18ede-5ae5-4553-ab30-db56d8f0fd9e/jcfw.png b/public/static/offline/convert/Files/11b18ede-5ae5-4553-ab30-db56d8f0fd9e/jcfw.png deleted file mode 100644 index ac86f2a..0000000 Binary files a/public/static/offline/convert/Files/11b18ede-5ae5-4553-ab30-db56d8f0fd9e/jcfw.png and /dev/null differ diff --git a/public/static/offline/convert/Files/178a12ae-ecbc-4c6b-94f1-7739b054d092/饮水处03x.png b/public/static/offline/convert/Files/178a12ae-ecbc-4c6b-94f1-7739b054d092/饮水处03x.png deleted file mode 100644 index 6d1ad20..0000000 Binary files a/public/static/offline/convert/Files/178a12ae-ecbc-4c6b-94f1-7739b054d092/饮水处03x.png and /dev/null differ diff --git a/public/static/offline/convert/Files/1d97cca7-0506-4244-802f-945061e8ee9e/dit.png b/public/static/offline/convert/Files/1d97cca7-0506-4244-802f-945061e8ee9e/dit.png deleted file mode 100644 index c55df7e..0000000 Binary files a/public/static/offline/convert/Files/1d97cca7-0506-4244-802f-945061e8ee9e/dit.png and /dev/null differ diff --git a/public/static/offline/convert/Files/1e6b78b0-12e9-468c-afea-a645b268838e/upft.png b/public/static/offline/convert/Files/1e6b78b0-12e9-468c-afea-a645b268838e/upft.png deleted file mode 100644 index 545e193..0000000 Binary files a/public/static/offline/convert/Files/1e6b78b0-12e9-468c-afea-a645b268838e/upft.png and /dev/null differ diff --git a/public/static/offline/convert/Files/21994710-651e-4eb1-921b-89e36b27c155/自动饮料贩卖机03x.png b/public/static/offline/convert/Files/21994710-651e-4eb1-921b-89e36b27c155/自动饮料贩卖机03x.png deleted file mode 100644 index 9bad199..0000000 Binary files a/public/static/offline/convert/Files/21994710-651e-4eb1-921b-89e36b27c155/自动饮料贩卖机03x.png and /dev/null differ diff --git a/public/static/offline/convert/Files/293e3458-9588-46be-954b-f081b669dc52/fwt.png b/public/static/offline/convert/Files/293e3458-9588-46be-954b-f081b669dc52/fwt.png deleted file mode 100644 index 9da6f71..0000000 Binary files a/public/static/offline/convert/Files/293e3458-9588-46be-954b-f081b669dc52/fwt.png and /dev/null differ diff --git a/public/static/offline/convert/Files/3014c88a-ac82-46c2-9be6-80d07ec3418c/gjj.png b/public/static/offline/convert/Files/3014c88a-ac82-46c2-9be6-80d07ec3418c/gjj.png deleted file mode 100644 index 20c162d..0000000 Binary files a/public/static/offline/convert/Files/3014c88a-ac82-46c2-9be6-80d07ec3418c/gjj.png and /dev/null differ diff --git a/public/static/offline/convert/Files/312834c8-e6f1-4fdd-80b6-1d9739dacd3a/yszj.png b/public/static/offline/convert/Files/312834c8-e6f1-4fdd-80b6-1d9739dacd3a/yszj.png deleted file mode 100644 index 36b17fa..0000000 Binary files a/public/static/offline/convert/Files/312834c8-e6f1-4fdd-80b6-1d9739dacd3a/yszj.png and /dev/null differ diff --git a/public/static/offline/convert/Files/34546a84-4f75-4c4e-9c1d-bddacda2b835/atm.png b/public/static/offline/convert/Files/34546a84-4f75-4c4e-9c1d-bddacda2b835/atm.png deleted file mode 100644 index 88ed171..0000000 Binary files a/public/static/offline/convert/Files/34546a84-4f75-4c4e-9c1d-bddacda2b835/atm.png and /dev/null differ diff --git a/public/static/offline/convert/Files/37966034-0bf4-40e3-b89c-f358241081f9/人工挂号收费处03x.png b/public/static/offline/convert/Files/37966034-0bf4-40e3-b89c-f358241081f9/人工挂号收费处03x.png deleted file mode 100644 index c4a51a1..0000000 Binary files a/public/static/offline/convert/Files/37966034-0bf4-40e3-b89c-f358241081f9/人工挂号收费处03x.png and /dev/null differ diff --git a/public/static/offline/convert/Files/3a67dfdb-e83d-4f03-8832-c3e85e6ad207/出入院处03x.png b/public/static/offline/convert/Files/3a67dfdb-e83d-4f03-8832-c3e85e6ad207/出入院处03x.png deleted file mode 100644 index 9702866..0000000 Binary files a/public/static/offline/convert/Files/3a67dfdb-e83d-4f03-8832-c3e85e6ad207/出入院处03x.png and /dev/null differ diff --git a/public/static/offline/convert/Files/3c7e1817-78ad-4f93-ba47-563087cd95fa/门诊综合接待室03x.png b/public/static/offline/convert/Files/3c7e1817-78ad-4f93-ba47-563087cd95fa/门诊综合接待室03x.png deleted file mode 100644 index 5b0e1ab..0000000 Binary files a/public/static/offline/convert/Files/3c7e1817-78ad-4f93-ba47-563087cd95fa/门诊综合接待室03x.png and /dev/null differ diff --git a/public/static/offline/convert/Files/43fc9055-59f0-449f-b018-ba397fbeff4f/td.png b/public/static/offline/convert/Files/43fc9055-59f0-449f-b018-ba397fbeff4f/td.png deleted file mode 100644 index c5b2867..0000000 Binary files a/public/static/offline/convert/Files/43fc9055-59f0-449f-b018-ba397fbeff4f/td.png and /dev/null differ diff --git a/public/static/offline/convert/Files/4c3a82e9-c239-4699-82c1-4072b9896861/门急诊药房03x.png b/public/static/offline/convert/Files/4c3a82e9-c239-4699-82c1-4072b9896861/门急诊药房03x.png deleted file mode 100644 index f406152..0000000 Binary files a/public/static/offline/convert/Files/4c3a82e9-c239-4699-82c1-4072b9896861/门急诊药房03x.png and /dev/null differ diff --git a/public/static/offline/convert/Files/4fa4d5f6-7c16-44a0-bf05-d256d1a15e0d/cjc.png b/public/static/offline/convert/Files/4fa4d5f6-7c16-44a0-bf05-d256d1a15e0d/cjc.png deleted file mode 100644 index c58f693..0000000 Binary files a/public/static/offline/convert/Files/4fa4d5f6-7c16-44a0-bf05-d256d1a15e0d/cjc.png and /dev/null differ diff --git a/public/static/offline/convert/Files/54166ee6-01a1-4581-98ef-d4aee35bda03/tcjf.png b/public/static/offline/convert/Files/54166ee6-01a1-4581-98ef-d4aee35bda03/tcjf.png deleted file mode 100644 index 3f44424..0000000 Binary files a/public/static/offline/convert/Files/54166ee6-01a1-4581-98ef-d4aee35bda03/tcjf.png and /dev/null differ diff --git a/public/static/offline/convert/Files/58017bc7-4d0d-41eb-80ff-f7f1d664d1ef/xsjv.png b/public/static/offline/convert/Files/58017bc7-4d0d-41eb-80ff-f7f1d664d1ef/xsjv.png deleted file mode 100644 index ed604f6..0000000 Binary files a/public/static/offline/convert/Files/58017bc7-4d0d-41eb-80ff-f7f1d664d1ef/xsjv.png and /dev/null differ diff --git a/public/static/offline/convert/Files/5d7c8ae0-43ac-42d5-baf0-9fd9b59d8a30/婴儿车租赁.png b/public/static/offline/convert/Files/5d7c8ae0-43ac-42d5-baf0-9fd9b59d8a30/婴儿车租赁.png deleted file mode 100644 index cc31895..0000000 Binary files a/public/static/offline/convert/Files/5d7c8ae0-43ac-42d5-baf0-9fd9b59d8a30/婴儿车租赁.png and /dev/null differ diff --git a/public/static/offline/convert/Files/69308499-6003-480d-bfdf-1561618512e1/mtl.png b/public/static/offline/convert/Files/69308499-6003-480d-bfdf-1561618512e1/mtl.png deleted file mode 100644 index 438813e..0000000 Binary files a/public/static/offline/convert/Files/69308499-6003-480d-bfdf-1561618512e1/mtl.png and /dev/null differ diff --git a/public/static/offline/convert/Files/6b66fe65-ca0f-457e-af46-8398ea57a29d/jtn.png b/public/static/offline/convert/Files/6b66fe65-ca0f-457e-af46-8398ea57a29d/jtn.png deleted file mode 100644 index b9ba273..0000000 Binary files a/public/static/offline/convert/Files/6b66fe65-ca0f-457e-af46-8398ea57a29d/jtn.png and /dev/null differ diff --git a/public/static/offline/convert/Files/868f7f00-6821-4b0d-8a5c-7c4c74b8afc3/xys.png b/public/static/offline/convert/Files/868f7f00-6821-4b0d-8a5c-7c4c74b8afc3/xys.png deleted file mode 100644 index 53743f3..0000000 Binary files a/public/static/offline/convert/Files/868f7f00-6821-4b0d-8a5c-7c4c74b8afc3/xys.png and /dev/null differ diff --git a/public/static/offline/convert/Files/86b0e9ab-57bd-40b9-97c0-f1b6f1d0efd4/dt.png b/public/static/offline/convert/Files/86b0e9ab-57bd-40b9-97c0-f1b6f1d0efd4/dt.png deleted file mode 100644 index 9abda87..0000000 Binary files a/public/static/offline/convert/Files/86b0e9ab-57bd-40b9-97c0-f1b6f1d0efd4/dt.png and /dev/null differ diff --git a/public/static/offline/convert/Files/8830e71a-1867-486e-bd1d-a13151bb2016/sjxsn.png b/public/static/offline/convert/Files/8830e71a-1867-486e-bd1d-a13151bb2016/sjxsn.png deleted file mode 100644 index 8011570..0000000 Binary files a/public/static/offline/convert/Files/8830e71a-1867-486e-bd1d-a13151bb2016/sjxsn.png and /dev/null differ diff --git a/public/static/offline/convert/Files/8c564bba-04d5-4768-9cfa-a12a5d4a2f99/xsj.png b/public/static/offline/convert/Files/8c564bba-04d5-4768-9cfa-a12a5d4a2f99/xsj.png deleted file mode 100644 index 664696a..0000000 Binary files a/public/static/offline/convert/Files/8c564bba-04d5-4768-9cfa-a12a5d4a2f99/xsj.png and /dev/null differ diff --git a/public/static/offline/convert/Files/8efbc3a5-5da5-4254-a1d0-a71e8fdc36bc/便民服务中心03x.png b/public/static/offline/convert/Files/8efbc3a5-5da5-4254-a1d0-a71e8fdc36bc/便民服务中心03x.png deleted file mode 100644 index abcd71e..0000000 Binary files a/public/static/offline/convert/Files/8efbc3a5-5da5-4254-a1d0-a71e8fdc36bc/便民服务中心03x.png and /dev/null differ diff --git a/public/static/offline/convert/Files/9bd282ae-5bc5-4ceb-83bf-b8745a7ef170/vip.png b/public/static/offline/convert/Files/9bd282ae-5bc5-4ceb-83bf-b8745a7ef170/vip.png deleted file mode 100644 index efa1463..0000000 Binary files a/public/static/offline/convert/Files/9bd282ae-5bc5-4ceb-83bf-b8745a7ef170/vip.png and /dev/null differ diff --git a/public/static/offline/convert/Files/a66ada30-27c4-41ee-9bac-a4537b924da7/共享轮椅03x.png b/public/static/offline/convert/Files/a66ada30-27c4-41ee-9bac-a4537b924da7/共享轮椅03x.png deleted file mode 100644 index 8c601f8..0000000 Binary files a/public/static/offline/convert/Files/a66ada30-27c4-41ee-9bac-a4537b924da7/共享轮椅03x.png and /dev/null differ diff --git a/public/static/offline/convert/Files/a6c9f188-8e3d-43c6-8b80-91d911bf2f1b/哺乳室.png b/public/static/offline/convert/Files/a6c9f188-8e3d-43c6-8b80-91d911bf2f1b/哺乳室.png deleted file mode 100644 index e6eaf07..0000000 Binary files a/public/static/offline/convert/Files/a6c9f188-8e3d-43c6-8b80-91d911bf2f1b/哺乳室.png and /dev/null differ diff --git a/public/static/offline/convert/Files/a962ca1e-7680-4fef-8189-e9adc19cac6e/actfac.png b/public/static/offline/convert/Files/a962ca1e-7680-4fef-8189-e9adc19cac6e/actfac.png deleted file mode 100644 index 3ebdf49..0000000 Binary files a/public/static/offline/convert/Files/a962ca1e-7680-4fef-8189-e9adc19cac6e/actfac.png and /dev/null differ diff --git a/public/static/offline/convert/Files/abc22b61-3d10-42c2-a5c1-182c21da9147/cjr.png b/public/static/offline/convert/Files/abc22b61-3d10-42c2-a5c1-182c21da9147/cjr.png deleted file mode 100644 index 31c9a8a..0000000 Binary files a/public/static/offline/convert/Files/abc22b61-3d10-42c2-a5c1-182c21da9147/cjr.png and /dev/null differ diff --git a/public/static/offline/convert/Files/b02c72c8-72bb-4b0c-81b3-9049d0fa04cc/jtv.png b/public/static/offline/convert/Files/b02c72c8-72bb-4b0c-81b3-9049d0fa04cc/jtv.png deleted file mode 100644 index d4dcac7..0000000 Binary files a/public/static/offline/convert/Files/b02c72c8-72bb-4b0c-81b3-9049d0fa04cc/jtv.png and /dev/null differ diff --git a/public/static/offline/convert/Files/b5b395f4-330c-4ffa-8a47-f7e42cf3b1d3/bsl.png b/public/static/offline/convert/Files/b5b395f4-330c-4ffa-8a47-f7e42cf3b1d3/bsl.png deleted file mode 100644 index 7592f09..0000000 Binary files a/public/static/offline/convert/Files/b5b395f4-330c-4ffa-8a47-f7e42cf3b1d3/bsl.png and /dev/null differ diff --git a/public/static/offline/convert/Files/b7494658-ad4c-41f5-894a-35f3f69f9f45/sjcd.png b/public/static/offline/convert/Files/b7494658-ad4c-41f5-894a-35f3f69f9f45/sjcd.png deleted file mode 100644 index b371265..0000000 Binary files a/public/static/offline/convert/Files/b7494658-ad4c-41f5-894a-35f3f69f9f45/sjcd.png and /dev/null differ diff --git a/public/static/offline/convert/Files/b972ebe1-90ec-41a4-98ff-bd762bddec13/xsjn.png b/public/static/offline/convert/Files/b972ebe1-90ec-41a4-98ff-bd762bddec13/xsjn.png deleted file mode 100644 index f9eec7f..0000000 Binary files a/public/static/offline/convert/Files/b972ebe1-90ec-41a4-98ff-bd762bddec13/xsjn.png and /dev/null differ diff --git a/public/static/offline/convert/Files/b973bae9-0bb3-4c2a-9835-0a68a8c3b801/超市03x.png b/public/static/offline/convert/Files/b973bae9-0bb3-4c2a-9835-0a68a8c3b801/超市03x.png deleted file mode 100644 index 06e4ffc..0000000 Binary files a/public/static/offline/convert/Files/b973bae9-0bb3-4c2a-9835-0a68a8c3b801/超市03x.png and /dev/null differ diff --git a/public/static/offline/convert/Files/baa44f29-d385-4397-90bf-629f59429d19/tthy.png b/public/static/offline/convert/Files/baa44f29-d385-4397-90bf-629f59429d19/tthy.png deleted file mode 100644 index 009d950..0000000 Binary files a/public/static/offline/convert/Files/baa44f29-d385-4397-90bf-629f59429d19/tthy.png and /dev/null differ diff --git a/public/static/offline/convert/Files/d09728be-f307-4204-903a-2611a6771609/jtxsj.png b/public/static/offline/convert/Files/d09728be-f307-4204-903a-2611a6771609/jtxsj.png deleted file mode 100644 index 52efcb8..0000000 Binary files a/public/static/offline/convert/Files/d09728be-f307-4204-903a-2611a6771609/jtxsj.png and /dev/null differ diff --git a/public/static/offline/convert/Files/d25cb11f-a69c-4455-96ab-69b1bcce8d1f/ysp.png b/public/static/offline/convert/Files/d25cb11f-a69c-4455-96ab-69b1bcce8d1f/ysp.png deleted file mode 100644 index 77ee54b..0000000 Binary files a/public/static/offline/convert/Files/d25cb11f-a69c-4455-96ab-69b1bcce8d1f/ysp.png and /dev/null differ diff --git a/public/static/offline/convert/Files/d4cef981-bd89-42ec-a80c-558d5ecd89fd/door.png b/public/static/offline/convert/Files/d4cef981-bd89-42ec-a80c-558d5ecd89fd/door.png deleted file mode 100644 index b64e9ea..0000000 Binary files a/public/static/offline/convert/Files/d4cef981-bd89-42ec-a80c-558d5ecd89fd/door.png and /dev/null differ diff --git a/public/static/offline/convert/Files/d59afb00-3674-43ea-8d73-d9ef173c6336/sjxsv.png b/public/static/offline/convert/Files/d59afb00-3674-43ea-8d73-d9ef173c6336/sjxsv.png deleted file mode 100644 index 79f1ede..0000000 Binary files a/public/static/offline/convert/Files/d59afb00-3674-43ea-8d73-d9ef173c6336/sjxsv.png and /dev/null differ diff --git a/public/static/offline/convert/Files/db17b7bd-1634-41ca-9f0b-403641c854ce/bc.png b/public/static/offline/convert/Files/db17b7bd-1634-41ca-9f0b-403641c854ce/bc.png deleted file mode 100644 index 5e90bde..0000000 Binary files a/public/static/offline/convert/Files/db17b7bd-1634-41ca-9f0b-403641c854ce/bc.png and /dev/null differ diff --git a/public/static/offline/convert/Files/dda5ef9e-9cef-4dc1-a5da-7b959e96eb50/downft.png b/public/static/offline/convert/Files/dda5ef9e-9cef-4dc1-a5da-7b959e96eb50/downft.png deleted file mode 100644 index 5130f4b..0000000 Binary files a/public/static/offline/convert/Files/dda5ef9e-9cef-4dc1-a5da-7b959e96eb50/downft.png and /dev/null differ diff --git a/public/static/offline/convert/Files/dff3996a-646a-4fc1-9202-914898490fb2/czc.png b/public/static/offline/convert/Files/dff3996a-646a-4fc1-9202-914898490fb2/czc.png deleted file mode 100644 index f6b1269..0000000 Binary files a/public/static/offline/convert/Files/dff3996a-646a-4fc1-9202-914898490fb2/czc.png and /dev/null differ diff --git a/public/static/offline/convert/Files/e3f79caa-ee52-4cf1-99c9-dba571bc7a83/专家预约处03x.png b/public/static/offline/convert/Files/e3f79caa-ee52-4cf1-99c9-dba571bc7a83/专家预约处03x.png deleted file mode 100644 index 85ebc21..0000000 Binary files a/public/static/offline/convert/Files/e3f79caa-ee52-4cf1-99c9-dba571bc7a83/专家预约处03x.png and /dev/null differ diff --git a/public/static/offline/convert/Files/e42ea976-1acc-45fa-b00e-203213f5f5b6/mys.png b/public/static/offline/convert/Files/e42ea976-1acc-45fa-b00e-203213f5f5b6/mys.png deleted file mode 100644 index b5a4b50..0000000 Binary files a/public/static/offline/convert/Files/e42ea976-1acc-45fa-b00e-203213f5f5b6/mys.png and /dev/null differ diff --git a/public/static/offline/convert/Files/e86fd1ad-81e8-429d-88c6-f99f782a1fc5/pq.png b/public/static/offline/convert/Files/e86fd1ad-81e8-429d-88c6-f99f782a1fc5/pq.png deleted file mode 100644 index 30827c9..0000000 Binary files a/public/static/offline/convert/Files/e86fd1ad-81e8-429d-88c6-f99f782a1fc5/pq.png and /dev/null differ diff --git a/public/static/offline/convert/Files/e8a9ffc0-0b81-46d9-ada6-05cf2fee677a/syt1.png b/public/static/offline/convert/Files/e8a9ffc0-0b81-46d9-ada6-05cf2fee677a/syt1.png deleted file mode 100644 index 5e8d723..0000000 Binary files a/public/static/offline/convert/Files/e8a9ffc0-0b81-46d9-ada6-05cf2fee677a/syt1.png and /dev/null differ diff --git a/public/static/offline/convert/Files/e98363ce-1d89-49c4-91ac-9729ca11a8e5/xxq.png b/public/static/offline/convert/Files/e98363ce-1d89-49c4-91ac-9729ca11a8e5/xxq.png deleted file mode 100644 index b33fa08..0000000 Binary files a/public/static/offline/convert/Files/e98363ce-1d89-49c4-91ac-9729ca11a8e5/xxq.png and /dev/null differ diff --git a/public/static/offline/convert/Files/ea940bd0-5607-4171-8f2b-93f8506afa0a/wxc.png b/public/static/offline/convert/Files/ea940bd0-5607-4171-8f2b-93f8506afa0a/wxc.png deleted file mode 100644 index 7e61c59..0000000 Binary files a/public/static/offline/convert/Files/ea940bd0-5607-4171-8f2b-93f8506afa0a/wxc.png and /dev/null differ diff --git a/public/static/offline/convert/Files/eae1e601-fe13-4cc9-87c2-ac5ef518e353/医保窗口03x.png b/public/static/offline/convert/Files/eae1e601-fe13-4cc9-87c2-ac5ef518e353/医保窗口03x.png deleted file mode 100644 index e148247..0000000 Binary files a/public/static/offline/convert/Files/eae1e601-fe13-4cc9-87c2-ac5ef518e353/医保窗口03x.png and /dev/null differ diff --git a/public/static/offline/convert/Files/f4fe843e-63d9-460c-8cb0-c8fdf5c06c71/tcc.png b/public/static/offline/convert/Files/f4fe843e-63d9-460c-8cb0-c8fdf5c06c71/tcc.png deleted file mode 100644 index d3928cc..0000000 Binary files a/public/static/offline/convert/Files/f4fe843e-63d9-460c-8cb0-c8fdf5c06c71/tcc.png and /dev/null differ diff --git a/public/static/offline/convert/Files/f833d3d4-278a-4a44-b468-27dbe095c7d6/ksgj.png b/public/static/offline/convert/Files/f833d3d4-278a-4a44-b468-27dbe095c7d6/ksgj.png deleted file mode 100644 index 2bda83f..0000000 Binary files a/public/static/offline/convert/Files/f833d3d4-278a-4a44-b468-27dbe095c7d6/ksgj.png and /dev/null differ diff --git a/public/static/offline/convert/Files/f91a9c8f-f397-4994-a066-cce3438540b8/预检台03x.png b/public/static/offline/convert/Files/f91a9c8f-f397-4994-a066-cce3438540b8/预检台03x.png deleted file mode 100644 index b946b52..0000000 Binary files a/public/static/offline/convert/Files/f91a9c8f-f397-4994-a066-cce3438540b8/预检台03x.png and /dev/null differ diff --git a/public/static/offline/convert/Files/fbcf56fd-385a-43b2-88bc-022eab1192b1/zzfw.png b/public/static/offline/convert/Files/fbcf56fd-385a-43b2-88bc-022eab1192b1/zzfw.png deleted file mode 100644 index b86e3e0..0000000 Binary files a/public/static/offline/convert/Files/fbcf56fd-385a-43b2-88bc-022eab1192b1/zzfw.png and /dev/null differ diff --git a/public/static/offline/convert/Files/ff5514af-a743-4823-a246-43de4b8d362f/ft.png b/public/static/offline/convert/Files/ff5514af-a743-4823-a246-43de4b8d362f/ft.png deleted file mode 100644 index e7eac8b..0000000 Binary files a/public/static/offline/convert/Files/ff5514af-a743-4823-a246-43de4b8d362f/ft.png and /dev/null differ diff --git a/public/static/offline/convert/Files/ffe6bc05-7bc7-45d5-a979-88ed3c0d18ba/dgnxsj.png b/public/static/offline/convert/Files/ffe6bc05-7bc7-45d5-a979-88ed3c0d18ba/dgnxsj.png deleted file mode 100644 index ab6c6ec..0000000 Binary files a/public/static/offline/convert/Files/ffe6bc05-7bc7-45d5-a979-88ed3c0d18ba/dgnxsj.png and /dev/null differ diff --git a/public/static/offline/iotFile/2023/04/06/28jlok6XqiblRqpTyShWk.png b/public/static/offline/iotFile/2023/04/06/28jlok6XqiblRqpTyShWk.png deleted file mode 100644 index 516df51..0000000 Binary files a/public/static/offline/iotFile/2023/04/06/28jlok6XqiblRqpTyShWk.png and /dev/null differ diff --git a/public/static/offline/iotFile/2023/04/06/3_Q635rTW2Ydl0Eeg7MJr.png b/public/static/offline/iotFile/2023/04/06/3_Q635rTW2Ydl0Eeg7MJr.png deleted file mode 100644 index e9d16a8..0000000 Binary files a/public/static/offline/iotFile/2023/04/06/3_Q635rTW2Ydl0Eeg7MJr.png and /dev/null differ diff --git a/public/static/offline/iotFile/2023/04/06/5CYODhtY43yA6ViGG3CIb.png b/public/static/offline/iotFile/2023/04/06/5CYODhtY43yA6ViGG3CIb.png deleted file mode 100644 index fd9f37f..0000000 Binary files a/public/static/offline/iotFile/2023/04/06/5CYODhtY43yA6ViGG3CIb.png and /dev/null differ diff --git a/public/static/offline/iotFile/2023/04/06/5DoJeYIsZRYHi3pd35hSm.png b/public/static/offline/iotFile/2023/04/06/5DoJeYIsZRYHi3pd35hSm.png deleted file mode 100644 index 2edbd07..0000000 Binary files a/public/static/offline/iotFile/2023/04/06/5DoJeYIsZRYHi3pd35hSm.png and /dev/null differ diff --git a/public/static/offline/iotFile/2023/04/06/6di5Y_hk_fQIc6GFIKtQE.png b/public/static/offline/iotFile/2023/04/06/6di5Y_hk_fQIc6GFIKtQE.png deleted file mode 100644 index 1328408..0000000 Binary files a/public/static/offline/iotFile/2023/04/06/6di5Y_hk_fQIc6GFIKtQE.png and /dev/null differ diff --git a/public/static/offline/iotFile/2023/04/06/9kfKB-pS3hKGs5f42bHTu.png b/public/static/offline/iotFile/2023/04/06/9kfKB-pS3hKGs5f42bHTu.png deleted file mode 100644 index 83ed066..0000000 Binary files a/public/static/offline/iotFile/2023/04/06/9kfKB-pS3hKGs5f42bHTu.png and /dev/null differ diff --git a/public/static/offline/iotFile/2023/04/06/CoiXQHCiX-T96j1GJ3NlW.png b/public/static/offline/iotFile/2023/04/06/CoiXQHCiX-T96j1GJ3NlW.png deleted file mode 100644 index 0c75099..0000000 Binary files a/public/static/offline/iotFile/2023/04/06/CoiXQHCiX-T96j1GJ3NlW.png and /dev/null differ diff --git a/public/static/offline/iotFile/2023/04/06/CxCFvcTBatGmrP1_LX4KC.png b/public/static/offline/iotFile/2023/04/06/CxCFvcTBatGmrP1_LX4KC.png deleted file mode 100644 index 2edbd07..0000000 Binary files a/public/static/offline/iotFile/2023/04/06/CxCFvcTBatGmrP1_LX4KC.png and /dev/null differ diff --git a/public/static/offline/iotFile/2023/04/06/KWNLR5Xso1cg9LTzoMLMB.png b/public/static/offline/iotFile/2023/04/06/KWNLR5Xso1cg9LTzoMLMB.png deleted file mode 100644 index 7c02210..0000000 Binary files a/public/static/offline/iotFile/2023/04/06/KWNLR5Xso1cg9LTzoMLMB.png and /dev/null differ diff --git a/public/static/offline/iotFile/2023/04/06/O_eBmYmAcWUYKl0v8uKug.png b/public/static/offline/iotFile/2023/04/06/O_eBmYmAcWUYKl0v8uKug.png deleted file mode 100644 index 63f7c59..0000000 Binary files a/public/static/offline/iotFile/2023/04/06/O_eBmYmAcWUYKl0v8uKug.png and /dev/null differ diff --git a/public/static/offline/iotFile/2023/04/06/Pde_0Knxe-aFBWd3mPU3L.png b/public/static/offline/iotFile/2023/04/06/Pde_0Knxe-aFBWd3mPU3L.png deleted file mode 100644 index 3136909..0000000 Binary files a/public/static/offline/iotFile/2023/04/06/Pde_0Knxe-aFBWd3mPU3L.png and /dev/null differ diff --git a/public/static/offline/iotFile/2023/04/06/QIqgA14XRIjxgE7EShM_j.png b/public/static/offline/iotFile/2023/04/06/QIqgA14XRIjxgE7EShM_j.png deleted file mode 100644 index d3554f1..0000000 Binary files a/public/static/offline/iotFile/2023/04/06/QIqgA14XRIjxgE7EShM_j.png and /dev/null differ diff --git a/public/static/offline/iotFile/2023/04/06/UT1Tph77BjGNIHVa7j-y7.png b/public/static/offline/iotFile/2023/04/06/UT1Tph77BjGNIHVa7j-y7.png deleted file mode 100644 index dd1cd93..0000000 Binary files a/public/static/offline/iotFile/2023/04/06/UT1Tph77BjGNIHVa7j-y7.png and /dev/null differ diff --git a/public/static/offline/iotFile/2023/04/06/Z0Lr0AXm_SUTWQRCc-Rux.png b/public/static/offline/iotFile/2023/04/06/Z0Lr0AXm_SUTWQRCc-Rux.png deleted file mode 100644 index af1ff15..0000000 Binary files a/public/static/offline/iotFile/2023/04/06/Z0Lr0AXm_SUTWQRCc-Rux.png and /dev/null differ diff --git a/public/static/offline/iotFile/2023/04/06/dYfeIFhNWIS_1ZnbAn4mI.png b/public/static/offline/iotFile/2023/04/06/dYfeIFhNWIS_1ZnbAn4mI.png deleted file mode 100644 index d811000..0000000 Binary files a/public/static/offline/iotFile/2023/04/06/dYfeIFhNWIS_1ZnbAn4mI.png and /dev/null differ diff --git a/public/static/offline/iotFile/2023/04/06/hvHSWC6Nin2s559N3WSu1.png b/public/static/offline/iotFile/2023/04/06/hvHSWC6Nin2s559N3WSu1.png deleted file mode 100644 index 5b224cf..0000000 Binary files a/public/static/offline/iotFile/2023/04/06/hvHSWC6Nin2s559N3WSu1.png and /dev/null differ diff --git a/public/static/offline/iotFile/2023/04/06/iuKwi5wWCIjcy63RSD9XO.png b/public/static/offline/iotFile/2023/04/06/iuKwi5wWCIjcy63RSD9XO.png deleted file mode 100644 index 12a19ac..0000000 Binary files a/public/static/offline/iotFile/2023/04/06/iuKwi5wWCIjcy63RSD9XO.png and /dev/null differ diff --git a/public/static/offline/iotFile/2023/04/06/ivI59Pt2zXOemGmZMRAAc.png b/public/static/offline/iotFile/2023/04/06/ivI59Pt2zXOemGmZMRAAc.png deleted file mode 100644 index 9f033a9..0000000 Binary files a/public/static/offline/iotFile/2023/04/06/ivI59Pt2zXOemGmZMRAAc.png and /dev/null differ diff --git a/public/static/offline/iotFile/2023/04/06/l01oi4txtOj9kPYGgOoBu.png b/public/static/offline/iotFile/2023/04/06/l01oi4txtOj9kPYGgOoBu.png deleted file mode 100644 index f273e37..0000000 Binary files a/public/static/offline/iotFile/2023/04/06/l01oi4txtOj9kPYGgOoBu.png and /dev/null differ diff --git a/public/static/offline/iotFile/2023/04/06/oAd0WhOCppiF_-tooOEw-.png b/public/static/offline/iotFile/2023/04/06/oAd0WhOCppiF_-tooOEw-.png deleted file mode 100644 index d3554f1..0000000 Binary files a/public/static/offline/iotFile/2023/04/06/oAd0WhOCppiF_-tooOEw-.png and /dev/null differ diff --git a/public/static/offline/iotFile/2023/04/06/phA6aAREtI9NHzRUULDhK.png b/public/static/offline/iotFile/2023/04/06/phA6aAREtI9NHzRUULDhK.png deleted file mode 100644 index 7c02210..0000000 Binary files a/public/static/offline/iotFile/2023/04/06/phA6aAREtI9NHzRUULDhK.png and /dev/null differ diff --git a/public/static/offline/iotFile/2023/04/06/slHLCWlsqKXYbL0GUrRJO.png b/public/static/offline/iotFile/2023/04/06/slHLCWlsqKXYbL0GUrRJO.png deleted file mode 100644 index dc4fd75..0000000 Binary files a/public/static/offline/iotFile/2023/04/06/slHLCWlsqKXYbL0GUrRJO.png and /dev/null differ diff --git a/public/static/offline/iotFile/2023/04/06/wKlOZkPyUeDtplQ9M63ek.png b/public/static/offline/iotFile/2023/04/06/wKlOZkPyUeDtplQ9M63ek.png deleted file mode 100644 index 76788db..0000000 Binary files a/public/static/offline/iotFile/2023/04/06/wKlOZkPyUeDtplQ9M63ek.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-200/20230724/TEuVXk7GIp1J8Li_tgR6A.png b/public/static/offline/iotFile/project-200/20230724/TEuVXk7GIp1J8Li_tgR6A.png deleted file mode 100644 index dc4fd75..0000000 Binary files a/public/static/offline/iotFile/project-200/20230724/TEuVXk7GIp1J8Li_tgR6A.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/2sO2w3mvNEhIqHH-ooWsP.jpg b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/2sO2w3mvNEhIqHH-ooWsP.jpg deleted file mode 100644 index 49bea74..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/2sO2w3mvNEhIqHH-ooWsP.jpg and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/3V8BP8srpC6NU4NR3ZrRL.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/3V8BP8srpC6NU4NR3ZrRL.png deleted file mode 100644 index 81d4753..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/3V8BP8srpC6NU4NR3ZrRL.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/4tGwnAXN3DwndvpdzSSwq.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/4tGwnAXN3DwndvpdzSSwq.png deleted file mode 100644 index 92db0ea..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/4tGwnAXN3DwndvpdzSSwq.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/6BktHfpGKb573yGJl38Hu.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/6BktHfpGKb573yGJl38Hu.png deleted file mode 100644 index 573c7a6..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/6BktHfpGKb573yGJl38Hu.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/6lwLDg_KOPiQtQuf9bL42.jpg b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/6lwLDg_KOPiQtQuf9bL42.jpg deleted file mode 100644 index 9c88d19..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/6lwLDg_KOPiQtQuf9bL42.jpg and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/7SQ_Y54hpu5TSY_fMT37X.jpg b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/7SQ_Y54hpu5TSY_fMT37X.jpg deleted file mode 100644 index f887035..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/7SQ_Y54hpu5TSY_fMT37X.jpg and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/AcEsbdko4VzClx_Z646U6.jpg b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/AcEsbdko4VzClx_Z646U6.jpg deleted file mode 100644 index e1f5800..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/AcEsbdko4VzClx_Z646U6.jpg and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/F_hlQt9wZwqqxZh4oISnj.jpg b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/F_hlQt9wZwqqxZh4oISnj.jpg deleted file mode 100644 index a704f67..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/F_hlQt9wZwqqxZh4oISnj.jpg and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/HFqu5Zl2uxMH7aLyjhmQP.jpg b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/HFqu5Zl2uxMH7aLyjhmQP.jpg deleted file mode 100644 index c211a19..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/HFqu5Zl2uxMH7aLyjhmQP.jpg and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/H_NgrjmyvOaz7Q8w-cVeM.jpg b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/H_NgrjmyvOaz7Q8w-cVeM.jpg deleted file mode 100644 index b380947..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/H_NgrjmyvOaz7Q8w-cVeM.jpg and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/HrR0FjrdJkKLFATk6L43J.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/HrR0FjrdJkKLFATk6L43J.png deleted file mode 100644 index 4e3e3e6..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/HrR0FjrdJkKLFATk6L43J.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/I3-tfHkflBawkBiEdnBFE.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/I3-tfHkflBawkBiEdnBFE.png deleted file mode 100644 index f15b08f..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/I3-tfHkflBawkBiEdnBFE.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/ML7yzGtexT_-LAh-bmnqr.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/ML7yzGtexT_-LAh-bmnqr.png deleted file mode 100644 index 9e1f31d..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/ML7yzGtexT_-LAh-bmnqr.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/MiUz_cUpirbNutKTVDxPT.jpg b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/MiUz_cUpirbNutKTVDxPT.jpg deleted file mode 100644 index c3b2aa6..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/MiUz_cUpirbNutKTVDxPT.jpg and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/O3gSPvvd1fYNAaHya7rp7.jpg b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/O3gSPvvd1fYNAaHya7rp7.jpg deleted file mode 100644 index 24f363a..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/O3gSPvvd1fYNAaHya7rp7.jpg and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/QaBBJfqUywqjmmJB2zfVv.jpg b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/QaBBJfqUywqjmmJB2zfVv.jpg deleted file mode 100644 index 440e362..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/QaBBJfqUywqjmmJB2zfVv.jpg and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/TnhG7TsI6TtG3gwhpD8I9.jpg b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/TnhG7TsI6TtG3gwhpD8I9.jpg deleted file mode 100644 index 10f7135..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/TnhG7TsI6TtG3gwhpD8I9.jpg and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/WBGaSMcNLUICpKFSqRYzQ.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/WBGaSMcNLUICpKFSqRYzQ.png deleted file mode 100644 index 0a68fad..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/WBGaSMcNLUICpKFSqRYzQ.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/WTivTeFKP_8rnXFQXgUaO.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/WTivTeFKP_8rnXFQXgUaO.png deleted file mode 100644 index 42ac0b3..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/WTivTeFKP_8rnXFQXgUaO.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/_fZmiYBlJo-0OsRwDPYpO.jpg b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/_fZmiYBlJo-0OsRwDPYpO.jpg deleted file mode 100644 index 3d1d507..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/_fZmiYBlJo-0OsRwDPYpO.jpg and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/c7vvQX02wt4so8zIgsGqh.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/c7vvQX02wt4so8zIgsGqh.png deleted file mode 100644 index 1d7f138..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/c7vvQX02wt4so8zIgsGqh.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/f31v2fp2ZvhDRQHoRcZsu.jpg b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/f31v2fp2ZvhDRQHoRcZsu.jpg deleted file mode 100644 index 6c34db6..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/f31v2fp2ZvhDRQHoRcZsu.jpg and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/jwUXL7nU0MOn-QeDKJ1uH.jpg b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/jwUXL7nU0MOn-QeDKJ1uH.jpg deleted file mode 100644 index 958f688..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/jwUXL7nU0MOn-QeDKJ1uH.jpg and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/kx2j-bqI6kldoWI2suOn9.jpg b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/kx2j-bqI6kldoWI2suOn9.jpg deleted file mode 100644 index 04ccec6..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/kx2j-bqI6kldoWI2suOn9.jpg and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/l3-iHtnRkVG6nyVYu9Aeb.jpg b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/l3-iHtnRkVG6nyVYu9Aeb.jpg deleted file mode 100644 index 8e86a9f..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/l3-iHtnRkVG6nyVYu9Aeb.jpg and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/mD9B_jJjWfO84mqOAbBlH.jpg b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/mD9B_jJjWfO84mqOAbBlH.jpg deleted file mode 100644 index f1315be..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/mD9B_jJjWfO84mqOAbBlH.jpg and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/nQIlBK04HxjOyq9LKF0Ps.jpg b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/nQIlBK04HxjOyq9LKF0Ps.jpg deleted file mode 100644 index 35c5cda..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/nQIlBK04HxjOyq9LKF0Ps.jpg and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/nZiHAa2rNglfQV5pMvgCX.jpg b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/nZiHAa2rNglfQV5pMvgCX.jpg deleted file mode 100644 index c211a19..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/nZiHAa2rNglfQV5pMvgCX.jpg and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/ndHN6fXYA1U4Ok9UO2jLC.jpg b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/ndHN6fXYA1U4Ok9UO2jLC.jpg deleted file mode 100644 index 436bb3f..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/ndHN6fXYA1U4Ok9UO2jLC.jpg and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/okVJnNAQrFcckTKDl_3Nw.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/okVJnNAQrFcckTKDl_3Nw.png deleted file mode 100644 index 8e3e7c7..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/okVJnNAQrFcckTKDl_3Nw.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/rUqUUn9PuSahflt1W_fLy.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/rUqUUn9PuSahflt1W_fLy.png deleted file mode 100644 index 884549b..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/rUqUUn9PuSahflt1W_fLy.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/sOaykHVfY47pbL80MEv4Q.jpg b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/sOaykHVfY47pbL80MEv4Q.jpg deleted file mode 100644 index 32a5273..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231122/sOaykHVfY47pbL80MEv4Q.jpg and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231123/0rdCusma0QkRw1atL58Rz.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231123/0rdCusma0QkRw1atL58Rz.png deleted file mode 100644 index a568e28..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231123/0rdCusma0QkRw1atL58Rz.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231123/2_kYmkyr26bhLPTJ12OrP.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231123/2_kYmkyr26bhLPTJ12OrP.png deleted file mode 100644 index 87d65da..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231123/2_kYmkyr26bhLPTJ12OrP.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231123/4w5jX57o8QwufDCmrjGN9.jpg b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231123/4w5jX57o8QwufDCmrjGN9.jpg deleted file mode 100644 index 9993178..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231123/4w5jX57o8QwufDCmrjGN9.jpg and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231123/E8WA2-y-vkgVjcVMnxAMu.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231123/E8WA2-y-vkgVjcVMnxAMu.png deleted file mode 100644 index ef6fbcb..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231123/E8WA2-y-vkgVjcVMnxAMu.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231123/N6Sxhi05RI80q8PNhaMQk.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231123/N6Sxhi05RI80q8PNhaMQk.png deleted file mode 100644 index 0ed1852..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231123/N6Sxhi05RI80q8PNhaMQk.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231123/Rno-uMiacRlIiTz3fcpmE.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231123/Rno-uMiacRlIiTz3fcpmE.png deleted file mode 100644 index e6363b7..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231123/Rno-uMiacRlIiTz3fcpmE.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231123/Us0Gme2dmnbAQE4hNzvzB.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231123/Us0Gme2dmnbAQE4hNzvzB.png deleted file mode 100644 index 37e9fef..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231123/Us0Gme2dmnbAQE4hNzvzB.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231123/_Rfl1Sm0RDz7znVBtCCr9.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231123/_Rfl1Sm0RDz7znVBtCCr9.png deleted file mode 100644 index 28b2fad..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231123/_Rfl1Sm0RDz7znVBtCCr9.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231123/b4ak0iVEE1VBuheGWGFHP.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231123/b4ak0iVEE1VBuheGWGFHP.png deleted file mode 100644 index 2ed369d..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231123/b4ak0iVEE1VBuheGWGFHP.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231123/cZ1gsBGI1wzWmvyKSYG6h.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231123/cZ1gsBGI1wzWmvyKSYG6h.png deleted file mode 100644 index 377b463..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231123/cZ1gsBGI1wzWmvyKSYG6h.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231123/clKIo01Y8Wnz4tQq0V7_h.jpg b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231123/clKIo01Y8Wnz4tQq0V7_h.jpg deleted file mode 100644 index 9ad1783..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231123/clKIo01Y8Wnz4tQq0V7_h.jpg and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/-AvkjB6v-XBD_tYXbtcrR.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/-AvkjB6v-XBD_tYXbtcrR.png deleted file mode 100644 index 8f181f5..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/-AvkjB6v-XBD_tYXbtcrR.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/-iHrrg0zCe5ZJL5Za84da.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/-iHrrg0zCe5ZJL5Za84da.png deleted file mode 100644 index 270125e..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/-iHrrg0zCe5ZJL5Za84da.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/-vTAzDb7svNbpPg6MCsGe.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/-vTAzDb7svNbpPg6MCsGe.png deleted file mode 100644 index 6cb44c3..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/-vTAzDb7svNbpPg6MCsGe.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/-ziLgFXzwFNeGDA2R29zG.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/-ziLgFXzwFNeGDA2R29zG.png deleted file mode 100644 index 4e1e67a..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/-ziLgFXzwFNeGDA2R29zG.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/0D6lGWvisbMiv2WmFhWQJ.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/0D6lGWvisbMiv2WmFhWQJ.png deleted file mode 100644 index 6f17e49..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/0D6lGWvisbMiv2WmFhWQJ.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/1rIqKb-yOyMoXt8mD4-jz.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/1rIqKb-yOyMoXt8mD4-jz.png deleted file mode 100644 index 9b4d0f7..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/1rIqKb-yOyMoXt8mD4-jz.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/21C-Cqqit5xG_2IHl8RBx.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/21C-Cqqit5xG_2IHl8RBx.png deleted file mode 100644 index 7b169b1..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/21C-Cqqit5xG_2IHl8RBx.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/3HjdkOreLPXhVdCfOjUkH.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/3HjdkOreLPXhVdCfOjUkH.png deleted file mode 100644 index 2244d41..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/3HjdkOreLPXhVdCfOjUkH.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/6k8KmemD79Vz9nVjA5qCV.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/6k8KmemD79Vz9nVjA5qCV.png deleted file mode 100644 index c68f5e8..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/6k8KmemD79Vz9nVjA5qCV.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/73VK7_AzDJEBce3OCgP6l.jpg b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/73VK7_AzDJEBce3OCgP6l.jpg deleted file mode 100644 index 031318d..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/73VK7_AzDJEBce3OCgP6l.jpg and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/7i49NPozNPOisVJq-wi42.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/7i49NPozNPOisVJq-wi42.png deleted file mode 100644 index 9be99b9..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/7i49NPozNPOisVJq-wi42.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/82rC9DxmkPxbDfpNb5-CO.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/82rC9DxmkPxbDfpNb5-CO.png deleted file mode 100644 index 5bb8005..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/82rC9DxmkPxbDfpNb5-CO.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/A36aD59URwli_QFFrkF0O.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/A36aD59URwli_QFFrkF0O.png deleted file mode 100644 index 377b463..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/A36aD59URwli_QFFrkF0O.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/A8yAGcs7Ac_bYFA7rUn34.jpg b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/A8yAGcs7Ac_bYFA7rUn34.jpg deleted file mode 100644 index b35a60c..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/A8yAGcs7Ac_bYFA7rUn34.jpg and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/BPvpMWAbVyE3vVS1PVDf7.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/BPvpMWAbVyE3vVS1PVDf7.png deleted file mode 100644 index b7a7542..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/BPvpMWAbVyE3vVS1PVDf7.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/Bv7ThwRE939DGA04Lx3Yc.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/Bv7ThwRE939DGA04Lx3Yc.png deleted file mode 100644 index 1a8460a..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/Bv7ThwRE939DGA04Lx3Yc.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/EF37Hf915FXPqUFQVLFPl.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/EF37Hf915FXPqUFQVLFPl.png deleted file mode 100644 index 32535ad..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/EF37Hf915FXPqUFQVLFPl.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/F0hmRmcoSxadN0A3hsK00.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/F0hmRmcoSxadN0A3hsK00.png deleted file mode 100644 index 8aded4a..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/F0hmRmcoSxadN0A3hsK00.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/FDOzTnKQzhGQeEv4KX3dQ.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/FDOzTnKQzhGQeEv4KX3dQ.png deleted file mode 100644 index a387376..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/FDOzTnKQzhGQeEv4KX3dQ.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/Gh8SGrJ2eeUHJxUxcPHoE.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/Gh8SGrJ2eeUHJxUxcPHoE.png deleted file mode 100644 index a029bd6..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/Gh8SGrJ2eeUHJxUxcPHoE.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/HS5Xlis4Je69iY8A1g95x.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/HS5Xlis4Je69iY8A1g95x.png deleted file mode 100644 index 94ad121..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/HS5Xlis4Je69iY8A1g95x.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/J4bKlJ_NUkcNrV2DifKLv.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/J4bKlJ_NUkcNrV2DifKLv.png deleted file mode 100644 index 0061c89..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/J4bKlJ_NUkcNrV2DifKLv.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/LbQ08IAQOUe4No9oZsRLp.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/LbQ08IAQOUe4No9oZsRLp.png deleted file mode 100644 index daf0de6..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/LbQ08IAQOUe4No9oZsRLp.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/N8FpaAwJhAYHwwRKTO1cz.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/N8FpaAwJhAYHwwRKTO1cz.png deleted file mode 100644 index af65d5a..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/N8FpaAwJhAYHwwRKTO1cz.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/QWPkYzUy-4wIxPz53O4pL.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/QWPkYzUy-4wIxPz53O4pL.png deleted file mode 100644 index a0f9735..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/QWPkYzUy-4wIxPz53O4pL.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/UG2L7ERstUm1K9LR2Bqtp.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/UG2L7ERstUm1K9LR2Bqtp.png deleted file mode 100644 index 58776d8..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/UG2L7ERstUm1K9LR2Bqtp.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/V9SeLCUSONtMC47-rgg2P.jpg b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/V9SeLCUSONtMC47-rgg2P.jpg deleted file mode 100644 index b35a60c..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/V9SeLCUSONtMC47-rgg2P.jpg and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/VJbsZjrgosYObOUf2N_I8.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/VJbsZjrgosYObOUf2N_I8.png deleted file mode 100644 index 1ba9055..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/VJbsZjrgosYObOUf2N_I8.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/Vc_YonzMklU2z1SeMpaDo.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/Vc_YonzMklU2z1SeMpaDo.png deleted file mode 100644 index 0aeef24..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/Vc_YonzMklU2z1SeMpaDo.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/WJqP_RhlJVvtJQpCbsEY1.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/WJqP_RhlJVvtJQpCbsEY1.png deleted file mode 100644 index 617b26d..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/WJqP_RhlJVvtJQpCbsEY1.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/XOo4ugjShQHzO-gpfW1iv.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/XOo4ugjShQHzO-gpfW1iv.png deleted file mode 100644 index b58343f..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/XOo4ugjShQHzO-gpfW1iv.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/XhK6KiZu7d_wbetrcFqPp.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/XhK6KiZu7d_wbetrcFqPp.png deleted file mode 100644 index b5413eb..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/XhK6KiZu7d_wbetrcFqPp.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/XzDkEDOH72HpXC6QFhWVM.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/XzDkEDOH72HpXC6QFhWVM.png deleted file mode 100644 index 933d418..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/XzDkEDOH72HpXC6QFhWVM.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/Y_vc5T3sOowRtKzPfKxd6.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/Y_vc5T3sOowRtKzPfKxd6.png deleted file mode 100644 index f8369cf..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/Y_vc5T3sOowRtKzPfKxd6.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/ZGDvlk7A9z9wDpxptK3CQ.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/ZGDvlk7A9z9wDpxptK3CQ.png deleted file mode 100644 index fdf0a5b..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/ZGDvlk7A9z9wDpxptK3CQ.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/Zw-nPEm0c84fKMlnF9P1o.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/Zw-nPEm0c84fKMlnF9P1o.png deleted file mode 100644 index 0ed1852..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/Zw-nPEm0c84fKMlnF9P1o.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/b7CoQt-BxfGKTA-1oHJb5.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/b7CoQt-BxfGKTA-1oHJb5.png deleted file mode 100644 index 035583a..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/b7CoQt-BxfGKTA-1oHJb5.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/b8Uob5yC1OP2bN09j92if.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/b8Uob5yC1OP2bN09j92if.png deleted file mode 100644 index fe8af0c..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/b8Uob5yC1OP2bN09j92if.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/bGBR0nNu8cmSW2uWq8p0p.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/bGBR0nNu8cmSW2uWq8p0p.png deleted file mode 100644 index 28b2fad..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/bGBR0nNu8cmSW2uWq8p0p.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/bHH4iY4va3InUzP3TpWWV.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/bHH4iY4va3InUzP3TpWWV.png deleted file mode 100644 index 4e3e3e6..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/bHH4iY4va3InUzP3TpWWV.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/c06lD_C2qecO3__uyrlRV.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/c06lD_C2qecO3__uyrlRV.png deleted file mode 100644 index 0ed1852..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/c06lD_C2qecO3__uyrlRV.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/cSu_mlt-zgYe2je2vtza5.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/cSu_mlt-zgYe2je2vtza5.png deleted file mode 100644 index 32535ad..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/cSu_mlt-zgYe2je2vtza5.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/deNrU-alwWTd-xFxT7G-w.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/deNrU-alwWTd-xFxT7G-w.png deleted file mode 100644 index 1a8460a..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/deNrU-alwWTd-xFxT7G-w.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/dqJ4Dn44xG32XYAjjylgU.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/dqJ4Dn44xG32XYAjjylgU.png deleted file mode 100644 index 306d3cc..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/dqJ4Dn44xG32XYAjjylgU.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/dvg06iLz0CMyvHQwBLdrr.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/dvg06iLz0CMyvHQwBLdrr.png deleted file mode 100644 index e55baec..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/dvg06iLz0CMyvHQwBLdrr.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/e0VdPdyrwTA8X--sm7St0.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/e0VdPdyrwTA8X--sm7St0.png deleted file mode 100644 index c68f5e8..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/e0VdPdyrwTA8X--sm7St0.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/ewBWS02wBat48ZKtFADCj.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/ewBWS02wBat48ZKtFADCj.png deleted file mode 100644 index 6f17e49..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/ewBWS02wBat48ZKtFADCj.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/fn2-IUrUJ1IVQ8oz-pvva.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/fn2-IUrUJ1IVQ8oz-pvva.png deleted file mode 100644 index 83c7091..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/fn2-IUrUJ1IVQ8oz-pvva.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/iLD7xEDGWO0qHtA-ZgImD.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/iLD7xEDGWO0qHtA-ZgImD.png deleted file mode 100644 index 48833f4..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/iLD7xEDGWO0qHtA-ZgImD.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/ifw9yuMO3OJBuZjL1EEfs.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/ifw9yuMO3OJBuZjL1EEfs.png deleted file mode 100644 index 3e178eb..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/ifw9yuMO3OJBuZjL1EEfs.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/j4PG1vrmD_iqHGHOsOokU.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/j4PG1vrmD_iqHGHOsOokU.png deleted file mode 100644 index f5beca1..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/j4PG1vrmD_iqHGHOsOokU.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/jEiffuQLP4KfPU5Cx9Ye5.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/jEiffuQLP4KfPU5Cx9Ye5.png deleted file mode 100644 index 0833d8a..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/jEiffuQLP4KfPU5Cx9Ye5.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/kY6CMZdTOOYlmzI3he81k.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/kY6CMZdTOOYlmzI3he81k.png deleted file mode 100644 index 0521d36..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/kY6CMZdTOOYlmzI3he81k.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/l41_KV3V2kVkqEpIoJWuT.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/l41_KV3V2kVkqEpIoJWuT.png deleted file mode 100644 index 975a25c..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/l41_KV3V2kVkqEpIoJWuT.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/lYQQj3RaBo0I4IK0bD7Qs.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/lYQQj3RaBo0I4IK0bD7Qs.png deleted file mode 100644 index 4570771..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/lYQQj3RaBo0I4IK0bD7Qs.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/nnOfJ-nOOTw9XZvGuYepq.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/nnOfJ-nOOTw9XZvGuYepq.png deleted file mode 100644 index fe8af0c..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/nnOfJ-nOOTw9XZvGuYepq.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/nnhjUsjAj2f1Odm4118BJ.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/nnhjUsjAj2f1Odm4118BJ.png deleted file mode 100644 index 9ea4ac5..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/nnhjUsjAj2f1Odm4118BJ.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/plwdvxVKOtEfO7vtIXrRC.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/plwdvxVKOtEfO7vtIXrRC.png deleted file mode 100644 index 42ac0b3..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/plwdvxVKOtEfO7vtIXrRC.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/qbkPtEM1lVateAdMFuCEO.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/qbkPtEM1lVateAdMFuCEO.png deleted file mode 100644 index 9f9ee67..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/qbkPtEM1lVateAdMFuCEO.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/t3Y9lM_MODfWu-eFkCz5y.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/t3Y9lM_MODfWu-eFkCz5y.png deleted file mode 100644 index 9e1f31d..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/t3Y9lM_MODfWu-eFkCz5y.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/tFPPMQwtEetcBeaU6uFND.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/tFPPMQwtEetcBeaU6uFND.png deleted file mode 100644 index 617b26d..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/tFPPMQwtEetcBeaU6uFND.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/tq5QzTY8ovU24wlj9Wyav.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/tq5QzTY8ovU24wlj9Wyav.png deleted file mode 100644 index 92aceb5..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/tq5QzTY8ovU24wlj9Wyav.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/tvcJKI-CgMOznWUOAUOPK.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/tvcJKI-CgMOznWUOAUOPK.png deleted file mode 100644 index 0a68fad..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/tvcJKI-CgMOznWUOAUOPK.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/vzjlunIvV261P6rjorfk_.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/vzjlunIvV261P6rjorfk_.png deleted file mode 100644 index 2a2991c..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/vzjlunIvV261P6rjorfk_.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/wDL-SLXj9lbHwvttHG4s-.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/wDL-SLXj9lbHwvttHG4s-.png deleted file mode 100644 index 8bbeb96..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/wDL-SLXj9lbHwvttHG4s-.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/wbJgsL1VMqyFZgmUXgKc_.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/wbJgsL1VMqyFZgmUXgKc_.png deleted file mode 100644 index be81037..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/wbJgsL1VMqyFZgmUXgKc_.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/wibow8C8cXW3ED0OFjKHk.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/wibow8C8cXW3ED0OFjKHk.png deleted file mode 100644 index b3d2fe4..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/wibow8C8cXW3ED0OFjKHk.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/wrLsMX65SwHd8GIseny-6.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/wrLsMX65SwHd8GIseny-6.png deleted file mode 100644 index 035583a..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/wrLsMX65SwHd8GIseny-6.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/zfuEWsE7ESBKV-GuBdMUo.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/zfuEWsE7ESBKV-GuBdMUo.png deleted file mode 100644 index c68f5e8..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/zfuEWsE7ESBKV-GuBdMUo.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/zyR1YybHvfk5N9cwgrrUg.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/zyR1YybHvfk5N9cwgrrUg.png deleted file mode 100644 index d70180c..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231128/zyR1YybHvfk5N9cwgrrUg.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/0KfCv_37Jej5W4giUTHEH.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/0KfCv_37Jej5W4giUTHEH.png deleted file mode 100644 index 617b26d..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/0KfCv_37Jej5W4giUTHEH.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/0ZCN4jLpZGh3NfHQTNA21.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/0ZCN4jLpZGh3NfHQTNA21.png deleted file mode 100644 index a33ecae..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/0ZCN4jLpZGh3NfHQTNA21.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/1h2l47U6swpyI26s3VbQh.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/1h2l47U6swpyI26s3VbQh.png deleted file mode 100644 index 573c7a6..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/1h2l47U6swpyI26s3VbQh.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/1tC1SylXjnX9RY9CpcFoc.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/1tC1SylXjnX9RY9CpcFoc.png deleted file mode 100644 index a7bc376..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/1tC1SylXjnX9RY9CpcFoc.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/2OKmCBomT-ftWqHCcAa7Y.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/2OKmCBomT-ftWqHCcAa7Y.png deleted file mode 100644 index 0ed1852..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/2OKmCBomT-ftWqHCcAa7Y.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/2Of7OpFJoBwKV9a2tW-IB.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/2Of7OpFJoBwKV9a2tW-IB.png deleted file mode 100644 index 1d750f4..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/2Of7OpFJoBwKV9a2tW-IB.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/7X-h9Z8vhoXBqSUiDlqiW.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/7X-h9Z8vhoXBqSUiDlqiW.png deleted file mode 100644 index 7b169b1..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/7X-h9Z8vhoXBqSUiDlqiW.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/CbouQ7GQgMEhZYIO0FH1m.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/CbouQ7GQgMEhZYIO0FH1m.png deleted file mode 100644 index 94ad121..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/CbouQ7GQgMEhZYIO0FH1m.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/ErMNXULl31yfzZnTqSlfp.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/ErMNXULl31yfzZnTqSlfp.png deleted file mode 100644 index 94ad121..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/ErMNXULl31yfzZnTqSlfp.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/HLyocAxVDBDsZRqjIpL4K.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/HLyocAxVDBDsZRqjIpL4K.png deleted file mode 100644 index 9be99b9..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/HLyocAxVDBDsZRqjIpL4K.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/Io-Xl44rmTy6ShVVSOymd.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/Io-Xl44rmTy6ShVVSOymd.png deleted file mode 100644 index b88d53f..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/Io-Xl44rmTy6ShVVSOymd.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/K5gyV1Je46hInTQrLcTew.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/K5gyV1Je46hInTQrLcTew.png deleted file mode 100644 index 2244d41..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/K5gyV1Je46hInTQrLcTew.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/MQhcm4As4nAbDjug2eakZ.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/MQhcm4As4nAbDjug2eakZ.png deleted file mode 100644 index 9b22e1e..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/MQhcm4As4nAbDjug2eakZ.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/ZP5hVVHWWxFYe8ap8NsBg.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/ZP5hVVHWWxFYe8ap8NsBg.png deleted file mode 100644 index a07d4e0..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/ZP5hVVHWWxFYe8ap8NsBg.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/dsrlg87RAsWFTsyB28UKC.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/dsrlg87RAsWFTsyB28UKC.png deleted file mode 100644 index 1ec4ba8..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/dsrlg87RAsWFTsyB28UKC.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/hb4D__B5anhDZ48VB5KMl.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/hb4D__B5anhDZ48VB5KMl.png deleted file mode 100644 index a568e28..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/hb4D__B5anhDZ48VB5KMl.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/jzP2Ps3HRgo72QIHr9T3D.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/jzP2Ps3HRgo72QIHr9T3D.png deleted file mode 100644 index 58776d8..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/jzP2Ps3HRgo72QIHr9T3D.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/nRwugprLg6T2MHtPouHkY.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/nRwugprLg6T2MHtPouHkY.png deleted file mode 100644 index 3e178eb..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/nRwugprLg6T2MHtPouHkY.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/nYoCUJlnBAt3NTeSoXAFY.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/nYoCUJlnBAt3NTeSoXAFY.png deleted file mode 100644 index e55baec..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/nYoCUJlnBAt3NTeSoXAFY.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/nl9BxnyfeTgQa9JeDrS3i.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/nl9BxnyfeTgQa9JeDrS3i.png deleted file mode 100644 index 0ed1852..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/nl9BxnyfeTgQa9JeDrS3i.png and /dev/null differ diff --git a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/qentCamtghXztYY2UxcSK.png b/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/qentCamtghXztYY2UxcSK.png deleted file mode 100644 index fdf0a5b..0000000 Binary files a/public/static/offline/iotFile/project-o99mwit8jby-qb_xrffk2a/20231129/qentCamtghXztYY2UxcSK.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/business/activity.png b/public/static/offline/qianmugo/themes/business/activity.png deleted file mode 100644 index d802f28..0000000 Binary files a/public/static/offline/qianmugo/themes/business/activity.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/business/back.png b/public/static/offline/qianmugo/themes/business/back.png deleted file mode 100644 index 57de606..0000000 Binary files a/public/static/offline/qianmugo/themes/business/back.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/business/billboardHeaderBgH.png b/public/static/offline/qianmugo/themes/business/billboardHeaderBgH.png deleted file mode 100644 index 1f1e97e..0000000 Binary files a/public/static/offline/qianmugo/themes/business/billboardHeaderBgH.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/business/billboardHeaderBgV.png b/public/static/offline/qianmugo/themes/business/billboardHeaderBgV.png deleted file mode 100644 index 6d74afc..0000000 Binary files a/public/static/offline/qianmugo/themes/business/billboardHeaderBgV.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/business/billboardLoc.png b/public/static/offline/qianmugo/themes/business/billboardLoc.png deleted file mode 100644 index eb3e38c..0000000 Binary files a/public/static/offline/qianmugo/themes/business/billboardLoc.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/business/brandQrcodeClose.png b/public/static/offline/qianmugo/themes/business/brandQrcodeClose.png deleted file mode 100644 index cec0bf8..0000000 Binary files a/public/static/offline/qianmugo/themes/business/brandQrcodeClose.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/business/delete.png b/public/static/offline/qianmugo/themes/business/delete.png deleted file mode 100644 index 29e2910..0000000 Binary files a/public/static/offline/qianmugo/themes/business/delete.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/business/grid.png b/public/static/offline/qianmugo/themes/business/grid.png deleted file mode 100644 index c70a4f1..0000000 Binary files a/public/static/offline/qianmugo/themes/business/grid.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/business/gridActive.png b/public/static/offline/qianmugo/themes/business/gridActive.png deleted file mode 100644 index 748ed4a..0000000 Binary files a/public/static/offline/qianmugo/themes/business/gridActive.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/business/keyboard.png b/public/static/offline/qianmugo/themes/business/keyboard.png deleted file mode 100644 index 246d306..0000000 Binary files a/public/static/offline/qianmugo/themes/business/keyboard.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/business/keyboard_active.png b/public/static/offline/qianmugo/themes/business/keyboard_active.png deleted file mode 100644 index e7682f9..0000000 Binary files a/public/static/offline/qianmugo/themes/business/keyboard_active.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/business/loc.png b/public/static/offline/qianmugo/themes/business/loc.png deleted file mode 100644 index 2c6910d..0000000 Binary files a/public/static/offline/qianmugo/themes/business/loc.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/business/mall.png b/public/static/offline/qianmugo/themes/business/mall.png deleted file mode 100644 index 41133c8..0000000 Binary files a/public/static/offline/qianmugo/themes/business/mall.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/business/member.png b/public/static/offline/qianmugo/themes/business/member.png deleted file mode 100644 index 8ed90e5..0000000 Binary files a/public/static/offline/qianmugo/themes/business/member.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/business/movie.png b/public/static/offline/qianmugo/themes/business/movie.png deleted file mode 100644 index e8b3e2b..0000000 Binary files a/public/static/offline/qianmugo/themes/business/movie.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/business/parking.png b/public/static/offline/qianmugo/themes/business/parking.png deleted file mode 100644 index 985c416..0000000 Binary files a/public/static/offline/qianmugo/themes/business/parking.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/business/recBg.png b/public/static/offline/qianmugo/themes/business/recBg.png deleted file mode 100644 index a9fa4c7..0000000 Binary files a/public/static/offline/qianmugo/themes/business/recBg.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/business/row.png b/public/static/offline/qianmugo/themes/business/row.png deleted file mode 100644 index 520977b..0000000 Binary files a/public/static/offline/qianmugo/themes/business/row.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/business/rowActive.png b/public/static/offline/qianmugo/themes/business/rowActive.png deleted file mode 100644 index a707357..0000000 Binary files a/public/static/offline/qianmugo/themes/business/rowActive.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/business/searchClear.png b/public/static/offline/qianmugo/themes/business/searchClear.png deleted file mode 100644 index 840894a..0000000 Binary files a/public/static/offline/qianmugo/themes/business/searchClear.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/business/searchClose.png b/public/static/offline/qianmugo/themes/business/searchClose.png deleted file mode 100644 index 101bbb3..0000000 Binary files a/public/static/offline/qianmugo/themes/business/searchClose.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/business/searchIcon.png b/public/static/offline/qianmugo/themes/business/searchIcon.png deleted file mode 100644 index 6189260..0000000 Binary files a/public/static/offline/qianmugo/themes/business/searchIcon.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/business/write.png b/public/static/offline/qianmugo/themes/business/write.png deleted file mode 100644 index d92af07..0000000 Binary files a/public/static/offline/qianmugo/themes/business/write.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/business/write_active.png b/public/static/offline/qianmugo/themes/business/write_active.png deleted file mode 100644 index 079706f..0000000 Binary files a/public/static/offline/qianmugo/themes/business/write_active.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/dark/activity.png b/public/static/offline/qianmugo/themes/dark/activity.png deleted file mode 100644 index 630dbd8..0000000 Binary files a/public/static/offline/qianmugo/themes/dark/activity.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/dark/back.png b/public/static/offline/qianmugo/themes/dark/back.png deleted file mode 100644 index f806a01..0000000 Binary files a/public/static/offline/qianmugo/themes/dark/back.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/dark/billboardHeaderBgH.png b/public/static/offline/qianmugo/themes/dark/billboardHeaderBgH.png deleted file mode 100644 index 5c7ac77..0000000 Binary files a/public/static/offline/qianmugo/themes/dark/billboardHeaderBgH.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/dark/billboardHeaderBgV.png b/public/static/offline/qianmugo/themes/dark/billboardHeaderBgV.png deleted file mode 100644 index 4c0d5d6..0000000 Binary files a/public/static/offline/qianmugo/themes/dark/billboardHeaderBgV.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/dark/billboardLoc.png b/public/static/offline/qianmugo/themes/dark/billboardLoc.png deleted file mode 100644 index e49cd28..0000000 Binary files a/public/static/offline/qianmugo/themes/dark/billboardLoc.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/dark/brandQrcodeClose.png b/public/static/offline/qianmugo/themes/dark/brandQrcodeClose.png deleted file mode 100644 index a083229..0000000 Binary files a/public/static/offline/qianmugo/themes/dark/brandQrcodeClose.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/dark/delete.png b/public/static/offline/qianmugo/themes/dark/delete.png deleted file mode 100644 index 48e2b0a..0000000 Binary files a/public/static/offline/qianmugo/themes/dark/delete.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/dark/grid.png b/public/static/offline/qianmugo/themes/dark/grid.png deleted file mode 100644 index 5d63797..0000000 Binary files a/public/static/offline/qianmugo/themes/dark/grid.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/dark/gridActive.png b/public/static/offline/qianmugo/themes/dark/gridActive.png deleted file mode 100644 index 43f92fe..0000000 Binary files a/public/static/offline/qianmugo/themes/dark/gridActive.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/dark/keyboard.png b/public/static/offline/qianmugo/themes/dark/keyboard.png deleted file mode 100644 index cdef44c..0000000 Binary files a/public/static/offline/qianmugo/themes/dark/keyboard.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/dark/keyboard_active.png b/public/static/offline/qianmugo/themes/dark/keyboard_active.png deleted file mode 100644 index e7682f9..0000000 Binary files a/public/static/offline/qianmugo/themes/dark/keyboard_active.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/dark/loc.png b/public/static/offline/qianmugo/themes/dark/loc.png deleted file mode 100644 index e49cd28..0000000 Binary files a/public/static/offline/qianmugo/themes/dark/loc.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/dark/mall.png b/public/static/offline/qianmugo/themes/dark/mall.png deleted file mode 100644 index fdceb41..0000000 Binary files a/public/static/offline/qianmugo/themes/dark/mall.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/dark/member.png b/public/static/offline/qianmugo/themes/dark/member.png deleted file mode 100644 index ce09aef..0000000 Binary files a/public/static/offline/qianmugo/themes/dark/member.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/dark/movie.png b/public/static/offline/qianmugo/themes/dark/movie.png deleted file mode 100644 index ee3aaea..0000000 Binary files a/public/static/offline/qianmugo/themes/dark/movie.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/dark/parking.png b/public/static/offline/qianmugo/themes/dark/parking.png deleted file mode 100644 index f1ad95d..0000000 Binary files a/public/static/offline/qianmugo/themes/dark/parking.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/dark/recBg.png b/public/static/offline/qianmugo/themes/dark/recBg.png deleted file mode 100644 index 2dfec70..0000000 Binary files a/public/static/offline/qianmugo/themes/dark/recBg.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/dark/row.png b/public/static/offline/qianmugo/themes/dark/row.png deleted file mode 100644 index 2f389d5..0000000 Binary files a/public/static/offline/qianmugo/themes/dark/row.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/dark/rowActive.png b/public/static/offline/qianmugo/themes/dark/rowActive.png deleted file mode 100644 index 008fec9..0000000 Binary files a/public/static/offline/qianmugo/themes/dark/rowActive.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/dark/searchClear.png b/public/static/offline/qianmugo/themes/dark/searchClear.png deleted file mode 100644 index 840894a..0000000 Binary files a/public/static/offline/qianmugo/themes/dark/searchClear.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/dark/searchClose.png b/public/static/offline/qianmugo/themes/dark/searchClose.png deleted file mode 100644 index 101bbb3..0000000 Binary files a/public/static/offline/qianmugo/themes/dark/searchClose.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/dark/searchIcon.png b/public/static/offline/qianmugo/themes/dark/searchIcon.png deleted file mode 100644 index f0ada33..0000000 Binary files a/public/static/offline/qianmugo/themes/dark/searchIcon.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/dark/write.png b/public/static/offline/qianmugo/themes/dark/write.png deleted file mode 100644 index 2aa798e..0000000 Binary files a/public/static/offline/qianmugo/themes/dark/write.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/dark/write_active.png b/public/static/offline/qianmugo/themes/dark/write_active.png deleted file mode 100644 index 079706f..0000000 Binary files a/public/static/offline/qianmugo/themes/dark/write_active.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/fashion/activity.png b/public/static/offline/qianmugo/themes/fashion/activity.png deleted file mode 100644 index 8dee597..0000000 Binary files a/public/static/offline/qianmugo/themes/fashion/activity.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/fashion/back.png b/public/static/offline/qianmugo/themes/fashion/back.png deleted file mode 100644 index 752253f..0000000 Binary files a/public/static/offline/qianmugo/themes/fashion/back.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/fashion/billboardHeaderBgH.png b/public/static/offline/qianmugo/themes/fashion/billboardHeaderBgH.png deleted file mode 100644 index fa4ba42..0000000 Binary files a/public/static/offline/qianmugo/themes/fashion/billboardHeaderBgH.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/fashion/billboardHeaderBgV.png b/public/static/offline/qianmugo/themes/fashion/billboardHeaderBgV.png deleted file mode 100644 index 89264e5..0000000 Binary files a/public/static/offline/qianmugo/themes/fashion/billboardHeaderBgV.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/fashion/billboardLoc.png b/public/static/offline/qianmugo/themes/fashion/billboardLoc.png deleted file mode 100644 index e49cd28..0000000 Binary files a/public/static/offline/qianmugo/themes/fashion/billboardLoc.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/fashion/brandQrcodeClose.png b/public/static/offline/qianmugo/themes/fashion/brandQrcodeClose.png deleted file mode 100644 index c765160..0000000 Binary files a/public/static/offline/qianmugo/themes/fashion/brandQrcodeClose.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/fashion/delete.png b/public/static/offline/qianmugo/themes/fashion/delete.png deleted file mode 100644 index 29e2910..0000000 Binary files a/public/static/offline/qianmugo/themes/fashion/delete.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/fashion/grid.png b/public/static/offline/qianmugo/themes/fashion/grid.png deleted file mode 100644 index 098b5cf..0000000 Binary files a/public/static/offline/qianmugo/themes/fashion/grid.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/fashion/gridActive.png b/public/static/offline/qianmugo/themes/fashion/gridActive.png deleted file mode 100644 index 368f960..0000000 Binary files a/public/static/offline/qianmugo/themes/fashion/gridActive.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/fashion/keyboard.png b/public/static/offline/qianmugo/themes/fashion/keyboard.png deleted file mode 100644 index 246d306..0000000 Binary files a/public/static/offline/qianmugo/themes/fashion/keyboard.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/fashion/keyboard_active.png b/public/static/offline/qianmugo/themes/fashion/keyboard_active.png deleted file mode 100644 index e7682f9..0000000 Binary files a/public/static/offline/qianmugo/themes/fashion/keyboard_active.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/fashion/loc.png b/public/static/offline/qianmugo/themes/fashion/loc.png deleted file mode 100644 index eb3e38c..0000000 Binary files a/public/static/offline/qianmugo/themes/fashion/loc.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/fashion/mall.png b/public/static/offline/qianmugo/themes/fashion/mall.png deleted file mode 100644 index a04e370..0000000 Binary files a/public/static/offline/qianmugo/themes/fashion/mall.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/fashion/member.png b/public/static/offline/qianmugo/themes/fashion/member.png deleted file mode 100644 index 7cbb322..0000000 Binary files a/public/static/offline/qianmugo/themes/fashion/member.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/fashion/movie.png b/public/static/offline/qianmugo/themes/fashion/movie.png deleted file mode 100644 index 96a5979..0000000 Binary files a/public/static/offline/qianmugo/themes/fashion/movie.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/fashion/parking.png b/public/static/offline/qianmugo/themes/fashion/parking.png deleted file mode 100644 index d16e690..0000000 Binary files a/public/static/offline/qianmugo/themes/fashion/parking.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/fashion/recBg.png b/public/static/offline/qianmugo/themes/fashion/recBg.png deleted file mode 100644 index 2dfec70..0000000 Binary files a/public/static/offline/qianmugo/themes/fashion/recBg.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/fashion/row.png b/public/static/offline/qianmugo/themes/fashion/row.png deleted file mode 100644 index e310d9d..0000000 Binary files a/public/static/offline/qianmugo/themes/fashion/row.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/fashion/rowActive.png b/public/static/offline/qianmugo/themes/fashion/rowActive.png deleted file mode 100644 index a9a6359..0000000 Binary files a/public/static/offline/qianmugo/themes/fashion/rowActive.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/fashion/searchClear.png b/public/static/offline/qianmugo/themes/fashion/searchClear.png deleted file mode 100644 index 44fa019..0000000 Binary files a/public/static/offline/qianmugo/themes/fashion/searchClear.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/fashion/searchClose.png b/public/static/offline/qianmugo/themes/fashion/searchClose.png deleted file mode 100644 index a24127f..0000000 Binary files a/public/static/offline/qianmugo/themes/fashion/searchClose.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/fashion/searchIcon.png b/public/static/offline/qianmugo/themes/fashion/searchIcon.png deleted file mode 100644 index f0ada33..0000000 Binary files a/public/static/offline/qianmugo/themes/fashion/searchIcon.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/fashion/write.png b/public/static/offline/qianmugo/themes/fashion/write.png deleted file mode 100644 index d92af07..0000000 Binary files a/public/static/offline/qianmugo/themes/fashion/write.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/fashion/write_active.png b/public/static/offline/qianmugo/themes/fashion/write_active.png deleted file mode 100644 index 079706f..0000000 Binary files a/public/static/offline/qianmugo/themes/fashion/write_active.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/highend/activity.png b/public/static/offline/qianmugo/themes/highend/activity.png deleted file mode 100644 index d44d216..0000000 Binary files a/public/static/offline/qianmugo/themes/highend/activity.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/highend/back.png b/public/static/offline/qianmugo/themes/highend/back.png deleted file mode 100644 index e6e36fb..0000000 Binary files a/public/static/offline/qianmugo/themes/highend/back.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/highend/backgroundImg.png b/public/static/offline/qianmugo/themes/highend/backgroundImg.png deleted file mode 100644 index e6118eb..0000000 Binary files a/public/static/offline/qianmugo/themes/highend/backgroundImg.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/highend/billboardHeaderBgH.png b/public/static/offline/qianmugo/themes/highend/billboardHeaderBgH.png deleted file mode 100644 index 0e87dd0..0000000 Binary files a/public/static/offline/qianmugo/themes/highend/billboardHeaderBgH.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/highend/billboardHeaderBgV.png b/public/static/offline/qianmugo/themes/highend/billboardHeaderBgV.png deleted file mode 100644 index cc7a80d..0000000 Binary files a/public/static/offline/qianmugo/themes/highend/billboardHeaderBgV.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/highend/billboardLoc.png b/public/static/offline/qianmugo/themes/highend/billboardLoc.png deleted file mode 100644 index e49cd28..0000000 Binary files a/public/static/offline/qianmugo/themes/highend/billboardLoc.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/highend/brandQrcodeClose.png b/public/static/offline/qianmugo/themes/highend/brandQrcodeClose.png deleted file mode 100644 index 310d3e8..0000000 Binary files a/public/static/offline/qianmugo/themes/highend/brandQrcodeClose.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/highend/delete.png b/public/static/offline/qianmugo/themes/highend/delete.png deleted file mode 100644 index 29e2910..0000000 Binary files a/public/static/offline/qianmugo/themes/highend/delete.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/highend/grid.png b/public/static/offline/qianmugo/themes/highend/grid.png deleted file mode 100644 index 0f077e1..0000000 Binary files a/public/static/offline/qianmugo/themes/highend/grid.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/highend/gridActive.png b/public/static/offline/qianmugo/themes/highend/gridActive.png deleted file mode 100644 index 91c99ce..0000000 Binary files a/public/static/offline/qianmugo/themes/highend/gridActive.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/highend/keyboard.png b/public/static/offline/qianmugo/themes/highend/keyboard.png deleted file mode 100644 index 246d306..0000000 Binary files a/public/static/offline/qianmugo/themes/highend/keyboard.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/highend/keyboard_active.png b/public/static/offline/qianmugo/themes/highend/keyboard_active.png deleted file mode 100644 index e7682f9..0000000 Binary files a/public/static/offline/qianmugo/themes/highend/keyboard_active.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/highend/loc.png b/public/static/offline/qianmugo/themes/highend/loc.png deleted file mode 100644 index eb3e38c..0000000 Binary files a/public/static/offline/qianmugo/themes/highend/loc.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/highend/mall.png b/public/static/offline/qianmugo/themes/highend/mall.png deleted file mode 100644 index 2428b8b..0000000 Binary files a/public/static/offline/qianmugo/themes/highend/mall.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/highend/member.png b/public/static/offline/qianmugo/themes/highend/member.png deleted file mode 100644 index 812e7a2..0000000 Binary files a/public/static/offline/qianmugo/themes/highend/member.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/highend/movie.png b/public/static/offline/qianmugo/themes/highend/movie.png deleted file mode 100644 index 0c99ac0..0000000 Binary files a/public/static/offline/qianmugo/themes/highend/movie.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/highend/parking.png b/public/static/offline/qianmugo/themes/highend/parking.png deleted file mode 100644 index 74a60fe..0000000 Binary files a/public/static/offline/qianmugo/themes/highend/parking.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/highend/recBg.png b/public/static/offline/qianmugo/themes/highend/recBg.png deleted file mode 100644 index 2dfec70..0000000 Binary files a/public/static/offline/qianmugo/themes/highend/recBg.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/highend/row.png b/public/static/offline/qianmugo/themes/highend/row.png deleted file mode 100644 index 49d6f20..0000000 Binary files a/public/static/offline/qianmugo/themes/highend/row.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/highend/rowActive.png b/public/static/offline/qianmugo/themes/highend/rowActive.png deleted file mode 100644 index 866e7b8..0000000 Binary files a/public/static/offline/qianmugo/themes/highend/rowActive.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/highend/searchClear.png b/public/static/offline/qianmugo/themes/highend/searchClear.png deleted file mode 100644 index ed947a6..0000000 Binary files a/public/static/offline/qianmugo/themes/highend/searchClear.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/highend/searchClose.png b/public/static/offline/qianmugo/themes/highend/searchClose.png deleted file mode 100644 index c10f99b..0000000 Binary files a/public/static/offline/qianmugo/themes/highend/searchClose.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/highend/searchIcon.png b/public/static/offline/qianmugo/themes/highend/searchIcon.png deleted file mode 100644 index bc77a56..0000000 Binary files a/public/static/offline/qianmugo/themes/highend/searchIcon.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/highend/write.png b/public/static/offline/qianmugo/themes/highend/write.png deleted file mode 100644 index d92af07..0000000 Binary files a/public/static/offline/qianmugo/themes/highend/write.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/highend/write_active.png b/public/static/offline/qianmugo/themes/highend/write_active.png deleted file mode 100644 index 079706f..0000000 Binary files a/public/static/offline/qianmugo/themes/highend/write_active.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/luxury/activity.png b/public/static/offline/qianmugo/themes/luxury/activity.png deleted file mode 100644 index d44d216..0000000 Binary files a/public/static/offline/qianmugo/themes/luxury/activity.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/luxury/back.png b/public/static/offline/qianmugo/themes/luxury/back.png deleted file mode 100644 index bef6a88..0000000 Binary files a/public/static/offline/qianmugo/themes/luxury/back.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/luxury/backgroundImg.png b/public/static/offline/qianmugo/themes/luxury/backgroundImg.png deleted file mode 100644 index 73b3005..0000000 Binary files a/public/static/offline/qianmugo/themes/luxury/backgroundImg.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/luxury/billboardBackgroundImg.png b/public/static/offline/qianmugo/themes/luxury/billboardBackgroundImg.png deleted file mode 100644 index 73b3005..0000000 Binary files a/public/static/offline/qianmugo/themes/luxury/billboardBackgroundImg.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/luxury/billboardHeaderBgH.png b/public/static/offline/qianmugo/themes/luxury/billboardHeaderBgH.png deleted file mode 100644 index 0e87dd0..0000000 Binary files a/public/static/offline/qianmugo/themes/luxury/billboardHeaderBgH.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/luxury/billboardHeaderBgV.png b/public/static/offline/qianmugo/themes/luxury/billboardHeaderBgV.png deleted file mode 100644 index 660e896..0000000 Binary files a/public/static/offline/qianmugo/themes/luxury/billboardHeaderBgV.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/luxury/billboardLoc.png b/public/static/offline/qianmugo/themes/luxury/billboardLoc.png deleted file mode 100644 index eb3e38c..0000000 Binary files a/public/static/offline/qianmugo/themes/luxury/billboardLoc.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/luxury/brandQrcodeClose.png b/public/static/offline/qianmugo/themes/luxury/brandQrcodeClose.png deleted file mode 100644 index ef2cd1c..0000000 Binary files a/public/static/offline/qianmugo/themes/luxury/brandQrcodeClose.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/luxury/delete.png b/public/static/offline/qianmugo/themes/luxury/delete.png deleted file mode 100644 index 29e2910..0000000 Binary files a/public/static/offline/qianmugo/themes/luxury/delete.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/luxury/grid.png b/public/static/offline/qianmugo/themes/luxury/grid.png deleted file mode 100644 index 098b5cf..0000000 Binary files a/public/static/offline/qianmugo/themes/luxury/grid.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/luxury/gridActive.png b/public/static/offline/qianmugo/themes/luxury/gridActive.png deleted file mode 100644 index 368f960..0000000 Binary files a/public/static/offline/qianmugo/themes/luxury/gridActive.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/luxury/keyboard.png b/public/static/offline/qianmugo/themes/luxury/keyboard.png deleted file mode 100644 index 246d306..0000000 Binary files a/public/static/offline/qianmugo/themes/luxury/keyboard.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/luxury/keyboard_active.png b/public/static/offline/qianmugo/themes/luxury/keyboard_active.png deleted file mode 100644 index e7682f9..0000000 Binary files a/public/static/offline/qianmugo/themes/luxury/keyboard_active.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/luxury/loc.png b/public/static/offline/qianmugo/themes/luxury/loc.png deleted file mode 100644 index 2c6910d..0000000 Binary files a/public/static/offline/qianmugo/themes/luxury/loc.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/luxury/mall.png b/public/static/offline/qianmugo/themes/luxury/mall.png deleted file mode 100644 index 2428b8b..0000000 Binary files a/public/static/offline/qianmugo/themes/luxury/mall.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/luxury/member.png b/public/static/offline/qianmugo/themes/luxury/member.png deleted file mode 100644 index 3ce4775..0000000 Binary files a/public/static/offline/qianmugo/themes/luxury/member.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/luxury/movie.png b/public/static/offline/qianmugo/themes/luxury/movie.png deleted file mode 100644 index 9d2ca56..0000000 Binary files a/public/static/offline/qianmugo/themes/luxury/movie.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/luxury/parking.png b/public/static/offline/qianmugo/themes/luxury/parking.png deleted file mode 100644 index 28005a9..0000000 Binary files a/public/static/offline/qianmugo/themes/luxury/parking.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/luxury/recBg.png b/public/static/offline/qianmugo/themes/luxury/recBg.png deleted file mode 100644 index 2dfec70..0000000 Binary files a/public/static/offline/qianmugo/themes/luxury/recBg.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/luxury/row.png b/public/static/offline/qianmugo/themes/luxury/row.png deleted file mode 100644 index e310d9d..0000000 Binary files a/public/static/offline/qianmugo/themes/luxury/row.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/luxury/rowActive.png b/public/static/offline/qianmugo/themes/luxury/rowActive.png deleted file mode 100644 index a9a6359..0000000 Binary files a/public/static/offline/qianmugo/themes/luxury/rowActive.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/luxury/searchClear.png b/public/static/offline/qianmugo/themes/luxury/searchClear.png deleted file mode 100644 index 840894a..0000000 Binary files a/public/static/offline/qianmugo/themes/luxury/searchClear.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/luxury/searchClose.png b/public/static/offline/qianmugo/themes/luxury/searchClose.png deleted file mode 100644 index 6858c98..0000000 Binary files a/public/static/offline/qianmugo/themes/luxury/searchClose.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/luxury/searchIcon.png b/public/static/offline/qianmugo/themes/luxury/searchIcon.png deleted file mode 100644 index 277cae7..0000000 Binary files a/public/static/offline/qianmugo/themes/luxury/searchIcon.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/luxury/write.png b/public/static/offline/qianmugo/themes/luxury/write.png deleted file mode 100644 index d92af07..0000000 Binary files a/public/static/offline/qianmugo/themes/luxury/write.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/luxury/write_active.png b/public/static/offline/qianmugo/themes/luxury/write_active.png deleted file mode 100644 index 079706f..0000000 Binary files a/public/static/offline/qianmugo/themes/luxury/write_active.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/main/activity.png b/public/static/offline/qianmugo/themes/main/activity.png deleted file mode 100644 index ee3005e..0000000 Binary files a/public/static/offline/qianmugo/themes/main/activity.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/main/back.png b/public/static/offline/qianmugo/themes/main/back.png deleted file mode 100644 index f806a01..0000000 Binary files a/public/static/offline/qianmugo/themes/main/back.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/main/billboardHeaderBgH.png b/public/static/offline/qianmugo/themes/main/billboardHeaderBgH.png deleted file mode 100644 index cdc42bc..0000000 Binary files a/public/static/offline/qianmugo/themes/main/billboardHeaderBgH.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/main/billboardHeaderBgV.png b/public/static/offline/qianmugo/themes/main/billboardHeaderBgV.png deleted file mode 100644 index 4c0d5d6..0000000 Binary files a/public/static/offline/qianmugo/themes/main/billboardHeaderBgV.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/main/billboardLoc.png b/public/static/offline/qianmugo/themes/main/billboardLoc.png deleted file mode 100644 index eb3e38c..0000000 Binary files a/public/static/offline/qianmugo/themes/main/billboardLoc.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/main/brandQrcodeClose.png b/public/static/offline/qianmugo/themes/main/brandQrcodeClose.png deleted file mode 100644 index c765160..0000000 Binary files a/public/static/offline/qianmugo/themes/main/brandQrcodeClose.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/main/delete.png b/public/static/offline/qianmugo/themes/main/delete.png deleted file mode 100644 index 29e2910..0000000 Binary files a/public/static/offline/qianmugo/themes/main/delete.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/main/grid.png b/public/static/offline/qianmugo/themes/main/grid.png deleted file mode 100644 index 098b5cf..0000000 Binary files a/public/static/offline/qianmugo/themes/main/grid.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/main/gridActive.png b/public/static/offline/qianmugo/themes/main/gridActive.png deleted file mode 100644 index 368f960..0000000 Binary files a/public/static/offline/qianmugo/themes/main/gridActive.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/main/keyboard.png b/public/static/offline/qianmugo/themes/main/keyboard.png deleted file mode 100644 index 246d306..0000000 Binary files a/public/static/offline/qianmugo/themes/main/keyboard.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/main/keyboard_active.png b/public/static/offline/qianmugo/themes/main/keyboard_active.png deleted file mode 100644 index e7682f9..0000000 Binary files a/public/static/offline/qianmugo/themes/main/keyboard_active.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/main/loc.png b/public/static/offline/qianmugo/themes/main/loc.png deleted file mode 100644 index eb3e38c..0000000 Binary files a/public/static/offline/qianmugo/themes/main/loc.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/main/mall.png b/public/static/offline/qianmugo/themes/main/mall.png deleted file mode 100644 index 3f19d0e..0000000 Binary files a/public/static/offline/qianmugo/themes/main/mall.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/main/member.png b/public/static/offline/qianmugo/themes/main/member.png deleted file mode 100644 index aae0b53..0000000 Binary files a/public/static/offline/qianmugo/themes/main/member.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/main/movie.png b/public/static/offline/qianmugo/themes/main/movie.png deleted file mode 100644 index fa44f4d..0000000 Binary files a/public/static/offline/qianmugo/themes/main/movie.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/main/parking.png b/public/static/offline/qianmugo/themes/main/parking.png deleted file mode 100644 index 600e41b..0000000 Binary files a/public/static/offline/qianmugo/themes/main/parking.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/main/recBg.png b/public/static/offline/qianmugo/themes/main/recBg.png deleted file mode 100644 index 2dfec70..0000000 Binary files a/public/static/offline/qianmugo/themes/main/recBg.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/main/row.png b/public/static/offline/qianmugo/themes/main/row.png deleted file mode 100644 index e310d9d..0000000 Binary files a/public/static/offline/qianmugo/themes/main/row.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/main/rowActive.png b/public/static/offline/qianmugo/themes/main/rowActive.png deleted file mode 100644 index a9a6359..0000000 Binary files a/public/static/offline/qianmugo/themes/main/rowActive.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/main/searchClear.png b/public/static/offline/qianmugo/themes/main/searchClear.png deleted file mode 100644 index 840894a..0000000 Binary files a/public/static/offline/qianmugo/themes/main/searchClear.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/main/searchClose.png b/public/static/offline/qianmugo/themes/main/searchClose.png deleted file mode 100644 index 101bbb3..0000000 Binary files a/public/static/offline/qianmugo/themes/main/searchClose.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/main/searchIcon.png b/public/static/offline/qianmugo/themes/main/searchIcon.png deleted file mode 100644 index f0ada33..0000000 Binary files a/public/static/offline/qianmugo/themes/main/searchIcon.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/main/write.png b/public/static/offline/qianmugo/themes/main/write.png deleted file mode 100644 index d92af07..0000000 Binary files a/public/static/offline/qianmugo/themes/main/write.png and /dev/null differ diff --git a/public/static/offline/qianmugo/themes/main/write_active.png b/public/static/offline/qianmugo/themes/main/write_active.png deleted file mode 100644 index 079706f..0000000 Binary files a/public/static/offline/qianmugo/themes/main/write_active.png and /dev/null differ diff --git a/public/static/qm/MainMap_QM.js b/public/static/qm/MainMap_QM.js deleted file mode 100644 index e0c1477..0000000 --- a/public/static/qm/MainMap_QM.js +++ /dev/null @@ -1,8159 +0,0 @@ -var Map_QM, - renderFrame = -1, - renderCount = 0, - pathCameraState, - mapState = "mall", - iconState = "3d", - heatmapInstance, - isShowElement = true, - isJUZ = false, - allJU = true, - hasLine = false, - startRotate = false, - intTimer, - shopTime, - allTime, - language = "zh"; -//basePath 基础路径 graphPath最佳路径 ftPath 扶梯路径 dtPath 电梯路径 - -var typeObj = [ - { ft: 0, type: 0, code: "ft", name: "扶梯" }, - { upft: 1, type: 1, code: "upft", name: "上扶梯" }, - { downft: 2, type: 2, code: "downft", name: "下扶梯" }, - { mys: 3, type: 3, code: "mys", name: "母婴室" }, - { xsj: 4, type: 4, code: "xsj", name: "洗手间" }, - { dt: 5, type: 5, code: "dt", name: "直梯" }, - { hxkj: 6, type: 6, code: "hxkj", name: "焕醒空间" }, - { fwt: 7, type: 7, code: "fwt", name: "服务台" }, - { tcc: 8, type: 8, code: "tcc", name: "停车场" }, - { hhkj: 9, type: 9, code: "hhkj", name: "焕活空间" }, - { cjr: 10, type: 10, code: "cjr", name: "无障碍洗手间" }, - { xys: 11, type: 11, code: "xys", name: "吸烟室" }, - { upft: 12, type: 12, code: "upft", name: "上扶梯" }, - { downft: 13, type: 13, code: "downft", name: "下扶梯" }, - { dkbc: 14, type: 14, code: "dkbc", name: "代客泊车" }, - { tczj: 15, type: 15, code: "tczj", name: "童车租借" }, - { ysc: 16, type: 16, code: "ysc", name: "饮水处" }, - { ztg: 17, type: 17, code: "ztg", name: "L1自提柜" }, - { thg: 18, type: 18, code: "thg", name: "B1自提柜" }, - { cwysd: 19, type: 19, code: "cwysd", name: "宠物饮水点" }, - { td: 20, type: 20, code: "td", name: "人行通道" }, - { dit: 21, type: 21, code: "dit", name: "地铁" }, - { czc: 22, type: 22, code: "czc", name: "出租车" }, - { atm: 23, type: 23, code: "atm", name: "ATM" }, - { jcfw: 24, type: 24, code: "jcfw", name: "寄存服务" }, - { sjcd: 25, type: 25, code: "sjcd", name: "手机充电" }, - { bc: 26, type: 26, code: "bc", name: "泊车" }, - { cjc: 27, type: 27, code: "cjc", name: "裁剪处" }, - { jtn: 28, type: 28, code: "jtn", name: "家庭洗手间(男)" }, - { jtv: 29, type: 29, code: "jtv", name: "家庭洗手间(女)" }, - { ksgj: 30, type: 30, code: "ksgj", name: "公交" }, - { sjxsn: 31, type: 31, code: "sjxsn", name: "无障碍洗手间男" }, - { sjxsv: 32, type: 32, code: "sjxsv", name: "无障碍洗手间女" }, - { tcjf: 33, type: 33, code: "tcjf", name: "停车缴费" }, - { vip: 34, type: 34, code: "vip", name: "VIP" }, - { xsjn: 35, type: 35, code: "xsjn", name: "男洗手间" }, - { xsjv: 36, type: 36, code: "xsjv", name: "女洗手间" }, - { yszj: 37, type: 37, code: "yszj", name: "雨伞租借" }, - { dyj: 38, type: 38, code: "dyj", name: "打印机" }, - { door: 39, type: 39, code: "door", name: "出入口" }, - { pq: 40, type: 40, code: "pq", name: "喷泉" }, - { d1k: 41, type: 41, code: "d1k", name: "1号出入口" }, - { d2k: 42, type: 42, code: "d2k", name: "2号出入口" }, - { d3k: 43, type: 43, code: "d3k", name: "3号出入口" }, - { d4k: 44, type: 44, code: "d4k", name: "4号出入口" }, - { mjzyf: 45, type: 45, code: "mjzyf", name: "门急诊药房" }, - { cryc: 46, type: 46, code: "cryc", name: "出入院处" }, - { rggh: 47, type: 47, code: "rggh", name: "人工挂号收费处" }, - { zzyl: 48, type: 48, code: "zzyl", name: "自动饮料贩卖机" }, - { gxly: 49, type: 49, code: "gxly", name: "共享轮椅" }, - { ysp: 50, type: 50, code: "ysp", name: "艺术品" }, - { B1up: 51, type: 51, code: "B1up", name: "" }, - { B1down: 52, type: 52, code: "B1down", name: "" }, - { B2up: 53, type: 53, code: "B2up", name: "" }, - { B2down: 54, type: 54, code: "B2down", name: "" }, - { B3up: 55, type: 55, code: "B3up", name: "" }, - { B3down: 56, type: 56, code: "B3down", name: "" }, - { xcgc: 57, type: 57, code: "xcgc", name: "下沉广场" }, - { tthy: 58, type: 58, code: "tthy", name: "天台花园" }, - { ybck: 59, type: 59, code: "ybck", name: "医保窗口" }, - { zzfw: 60, type: 60, code: "zzfw", name: "自助服务" }, - { gjj: 61, type: 61, code: "gjj", name: "工具间" }, - { syt1: 62, type: 62, code: "syt1", name: "mall收银台" }, - { gwc: 63, type: 63, code: "gwc", name: "购物车" }, - { ht: 64, type: 64, code: "ht", name: "花坛" }, - { jrc: 65, type: 65, code: "jrc", name: "自助加热" }, - { qbc: 66, type: 66, code: "qbc", name: "自助取冰" }, - { zxc: 67, type: 67, code: "zxc", name: "自行车停放" }, - { jws: 68, type: 68, code: "jws", name: "警务室" }, - { etxsj: 69, type: 69, code: "etxsj", name: "儿童洗手间" }, - { vip_xxq: 70, type: 70, code: "vip_xxq", name: "vip休息区" }, - { ab: 71, type: 71, code: "ab", name: "安保" }, - { abjks: 72, type: 72, code: "abjks", name: "安保监控室" }, - { bys: 73, type: 73, code: "bys", name: "播音室" }, - { cpgys: 74, type: 74, code: "cpgys", name: "裁判更衣室" }, - { gzyld: 75, type: 75, code: "gzyld", name: "观众医疗点" }, - { hqgys: 76, type: 76, code: "hqgys", name: "后勤更衣室" }, - { jjs: 77, type: 77, code: "jjs", name: "急救室" }, - { jw: 78, type: 78, code: "jw", name: "警卫" }, - { ksj: 79, type: 79, code: "ksj", name: "开水间" }, - { kt: 80, type: 80, code: "kt", name: "看台" }, - { qzgysn: 81, type: 81, code: "qzgysn", name: "亲自更衣(男)" }, - { rsggys: 82, type: 82, code: "rsggys", name: "热身馆更衣室" }, - { swzl: 83, type: 83, code: "swzl", name: "失物招领" }, - { tsgbs1: 84, type: 84, code: "tsgbs1", name: "特殊贵宾室1" }, - { tsgbs2: 85, type: 85, code: "tsgbs2", name: "特殊贵宾室2" }, - { tsgbs3: 86, type: 86, code: "tsgbs3", name: "特殊贵宾室3" }, - { wxc: 87, type: 87, code: "wxc", name: "闻讯处" }, - { lt: 88, type: 88, code: "lt", name: "楼梯" }, - { yhs: 89, type: 89, code: "yhs", name: "医护室" }, - { yls: 90, type: 90, code: "yls", name: "医疗室" }, - { ylz: 91, type: 91, code: "ylz", name: "医疗站" }, - { ydygys: 92, type: 92, code: "ydygys", name: "运动员更衣室" }, - { ydygysn: 93, type: 93, code: "ydygysn", name: "运动员男更衣室" }, - { ydygysv: 94, type: 94, code: "ydygysv", name: "运动员女更衣室" }, - { zls: 95, type: 95, code: "zls", name: "诊疗室" }, - { zys: 96, type: 96, code: "zys", name: "直饮水" }, - { zas: 97, type: 97, code: "zas", name: "治安室" }, - { xxq: 98, type: 98, code: "xxq", name: "休息区" }, - { jtxsj: 99, type: 99, code: "jtxsj", name: "家庭洗手间" }, - { hzs: 100, type: 100, code: "hzs", name: "化妆室" }, - { brs: 101, type: 101, code: "brs", name: "哺乳室" }, - { mtl: 102, type: 102, code: "mtl", name: "摩天轮" }, - { dgnxsj: 103, type: 103, code: "dgnxsj", name: "多功能洗手间" }, - { wxbxsj: 104, type: 104, code: "wxbxsj", name: "无性别洗手间" }, - { sjzx: 105, type: 105, code: "sjzx", name: "设计中心" }, - { dxp: 106, type: 106, code: "dxp", name: "导向牌" }, - { gydh: 107, type: 107, code: "gydh", name: "公用电话" }, - { sgq: 108, type: 108, code: "sgq", name: "石拱桥" }, - { wxw: 109, type: 109, code: "wxw", name: "无线网" }, - { xmb: 110, type: 110, code: "xmb", name: "小卖部" }, - { zyzfwz: 111, type: 111, code: "zyzfwz", name: "志愿者服务站" }, - { ykzx: 112, type: 112, code: "ykzx", name: "服务中心" }, - { zjyy: 113, type: 113, code: "zjyy", name: "专家预约处" }, - { yjt: 114, type: 114, code: "yjt", name: "预检台" }, - { mzjd: 115, type: 115, code: "mzjd", name: "门诊综合接待室" }, - { hd: 116, type: 116, code: "hd", name: "活动点" }, - { bsl: 117, type: 117, code: "bsl", name: "白石龙" }, - { xzl: 118, type: 118, code: "xzl", name: "写字楼" }, - { axzj: 119, type: 119, code: "axzj", name: "爱心租借" }, - { cdz: 120, type: 120, code: "cdz", name: "充电桩" }, - { hjcq: 121, type: 121, code: "hjcq", name: "黑金车区" }, - { yjjj: 122, type: 122, code: "yjjj", name: "宜家家居" }, -]; - -var QMUtil = function () { - this.shopServerInfo = "./static/offline/JSON/QueryShopList.json"; - this.mapServerInfo = "./static/offline/JSON/GetMapInfo.json"; - this.beforPath = "./"; //https://qianmu-iot.1000my.com/QMAPSDK/ - this.tomUrl = "https://qianmu-iot.1000my.com"; - this.options = { - playSpeed: 8, //动画播放速度 - speedMult: 1, //动画播放倍数 - collision: true, //是否支持名称的碰撞检测 - modelIcon: true, //是否使用模型 true 模型 false 图标 - otherPath: [], //人为干预的路线 [{f:"0_5_10",s:"1_5_47",d:500},{f:"1_5_47",s:"0_5_10",d:500}]; - bSpace: 3000, - fSpace: 500, //双叠层状态下楼层的间距 - maxDis: 700, - minDis: 100, - shadow: true, //是否显示阴影 - navColor: 0xee6a50, //途径店铺颜色 - aRadius: 2, //圆角半径 大于2 则店铺box显示圆角 - iconName: false, //图标名称是否显示 - mapScale: 18, //地图比例尺 - pathColor: "#6e95fe", // - pathColor2: "#6e7dfe", //'rgb(110,125,254)' - pathBgColor: "#a9b5d3", //'rgb(169,181,211)' - pathBgColor2: "#bdc0cb", //'rgb(189, 192, 203)', - pathStyle: "3D", - shopStyle: "shopName", //设置box显示名称shopName或编号shopNum - inArea: true, //点击后是否聚焦到店铺 - boxShop: [], //设置box上显示的文字(过滤指),可点击触发onlyShop - deviceAng: false, //地图初始化方向是否使用设备角度 - northShow: false, //指南针显示 - facSize: 20, //设施大小 - }; - this.lightOptions = { - d_col: "#ffffff", - d_int: 0.2, - s_col: "#fffffa", - g_col: "#ffffff", - a_int: 0.85, - }; - this.m_zoom = 1.2; //2D地图缩放大小 - this._clock = new THREE.Clock(); - this._indexPathFloor = 0; // 遍历途径数据 - this.changeDist = { inner: 300, outner: 900 }; - /** - * isPathState 寻路状态 - */ - this.pathStateObj = { - isPathState: false, - isPathPlay: true, - basePath: "", - graphPath: "", - ftPath: "", - dtPath: "", - facAllArr: [], - forShopArr: {}, - elevator: null, - straight: null, - elevatorDown: null, - seldtFacNo: { type: "", no: "" }, - }; - this.timeObj = { collTime: -1, pathTime: -1 }; - this.sceneGap = { cameraX: 0, cameraY: 220, cameraZ: 220, x: 0, y: 0, z: 0, scale: 0.08 }; //改变地图位置,大小 - this.isMorePath = false; //多节点寻路模式 - this.selectBuild = 0; - this.selectFloor = 0; - this.deviceObj = {}; //angle --- 设备旋转角度 node ---- 设备导航点位 floor --- 设备楼层 - this.startObj = {}; // 导航起点; - this.overObj = {}; //导航结束点 - this.buildHeight = 5; - this.shopHeight = 30; //店铺高度 控制店铺相关的其它第三方组件高度 - //添加平铺logo {floor:5, logoUrl:"./static/img/ss.png", imgW:395, imgH:376, xaxis:1550, yaxis:-860, site:30} - this.logos = []; - /** - * 外立面 - * Map_QM.util.initModelArr=[{url:"./static/img/out/yong.glb",type:"out", scale:1, rot:{x:0,y:0,z:0}, site:{x:0,y:0,z:0}, colorModel:"gama" }]; - */ - this.initModelArr = []; // - /** - * 一直显示不隐藏, 在楼层内显示 - * {floor:6, url:"static/img/out/skp.glb", list:[{size:{x:12.5,y:12.5,z:12.5}, rot:{x:1.5708,y:0,z:0}, site:{x:0,y:0,z:0}}]} - */ - this.modelArr = []; - this.modelStr = [ - //种树 - {key: "tree", url: "static/img/model/tree.gltf", colorModel: "line", rot: { x: 1.5708, y: 0, z: 0 }, size: { x: 1, y: 1, z: 1 }, load: false }, - {key: "tree2", url: "static/img/model/tree2.glb", colorModel: "gama", rot: { x: 1.5708, y: 0, z: 0 }, size: { x: 20, y: 20, z: 20 }, load: false }, - {key: "tree3", url: "static/img/model/tree3.glb", colorModel: "gama", rot: { x: 1.5708, y: 0, z: 0 }, size: { x: 20, y: 20, z: 20 }, load: false }, - {key: "grass", url: "static/img/model/grass.glb", colorModel: "gama", rot: { x: 1.5708, y: 0, z: 0 }, size: { x: 20, y: 20, z: 20 }, load: false }, - {key: "flower1", url: "static/img/model/flower1.glb", colorModel: "gama", rot: { x: 1.5708, y: 0, z: 0 }, size: { x: 20, y: 20, z: 20 },load: false}, - {key: "flower2", url: "static/img/model/flower2.glb", colorModel: "gama", rot: { x: 1.5708, y: 0, z: 0 }, size: { x: 20, y: 20, z: 20 }, load: false }, - - {key: "huatan1", url: "static/img/model/huatan1.glb", colorModel: "gama", rot: { x: 1.5708, y: 0, z: 0 }, size: { x: 20, y: 20, z: 20 }, load: false }, - {key: "huatan2", url: "static/img/model/huatan2.glb", colorModel: "gama", rot: { x: 1.5708, y: 0, z: 0 }, size: { x: 20, y: 20, z: 20 }, load: false }, - {key: "penquan2", url: "static/img/model/penquan2.glb", colorModel: "gama", rot: { x: 1.5708, y: 0, z: 0 }, size: { x: 20, y: 20, z: 20 }, load: false }, - {key: "qiche1", url: "static/img/model/qiche1.glb", colorModel: "gama", rot: { x: 1.5708, y: 0, z: 0 }, size: { x: 20, y: 20, z: 20 }, load: false }, - {key: "qiche2", url: "static/img/model/qiche2.glb", colorModel: "gama", rot: { x: 1.5708, y: 0, z: 0 }, size: { x: 20, y: 20, z: 20 }, load: false }, - {key: "qiche3", url: "static/img/model/qiche3.glb", colorModel: "gama", rot: { x: 1.5708, y: 0, z: 0 }, size: { x: 20, y: 20, z: 20 }, load: false }, - {key: "qiche4", url: "static/img/model/qiche4.glb", colorModel: "gama", rot: { x: 1.5708, y: 0, z: 0 }, size: { x: 20, y: 20, z: 20 }, load: false }, - {key: "qiche5", url: "static/img/model/qiche5.glb", colorModel: "gama", rot: { x: 1.5708, y: 0, z: 0 }, size: { x: 20, y: 20, z: 20 }, load: false }, - {key: "qiche6", url: "static/img/model/qiche6.glb", colorModel: "gama", rot: { x: 1.5708, y: 0, z: 0 }, size: { x: 20, y: 20, z: 20 }, load: false }, - {key: "qiche7", url: "static/img/model/qiche7.glb", colorModel: "gama", rot: { x: 1.5708, y: 0, z: 0 }, size: { x: 20, y: 20, z: 20 }, load: false }, - {key: "qiche8", url: "static/img/model/qiche8.glb", colorModel: "gama", rot: { x: 1.5708, y: 0, z: 0 }, size: { x: 20, y: 20, z: 20 }, load: false }, - {key: "qiche9", url: "static/img/model/qiche9.glb", colorModel: "gama", rot: { x: 1.5708, y: 0, z: 0 }, size: { x: 20, y: 20, z: 20 }, load: false }, - {key: "jt_up", url: "static/img/model/jt_up.glb", colorModel: "gama", rot: { x: 1.5708, y: 0, z: 0 }, size: { x: 20, y: 20, z: 20 }, load: false }, - {key: "jt_left", url: "static/img/model/jt_left.glb", colorModel: "gama", rot: { x: 1.5708, y: 0, z: 0 }, size: { x: 20, y: 20, z: 20 }, load: false }, - {key: "jt_left_up", url: "static/img/model/jt_left_up.glb", colorModel: "gama", rot: { x: 1.5708, y: 0, z: 0 }, size: { x: 20, y: 20, z: 20 }, load: false }, - {key: "jt_right", url: "static/img/model/jt_right.glb", colorModel: "gama", rot: { x: 1.5708, y: 0, z: 0 }, size: { x: 20, y: 20, z: 20 }, load: false }, - {key: "jt_right_up", url: "static/img/model/jt_right_up.glb", colorModel: "gama", rot: { x: 1.5708, y: 0, z: 0 }, size: { x: 20, y: 20, z: 20 }, load: false }, - {key: "jt_turn", url: "static/img/model/jt_turn.glb", colorModel: "gama", rot: { x: 1.5708, y: 0, z: 0 }, size: { x: 20, y: 20, z: 20 }, load: false }, - {key: "ludeng", url: "static/img/model/ludeng.glb", colorModel: "gama", rot: { x: 1.5708, y: 0, z: 0 }, size: { x: 20, y: 20, z: 20 }, load: false }, - {key: "taiyangsan", url: "static/img/model/taiyangsan.glb", colorModel: "gama", rot: { x: 1.5708, y: 0, z: 0 }, size: { x: 20, y: 20, z: 20 }, load: false }, - {key: "honglvdeng", url: "static/img/model/honglvdeng.glb", colorModel: "gama", rot: { x: 1.5708, y: 0, z: 0 }, size: { x: 20, y: 20, z: 20 }, load: false }, - {key: "park_paly", url: "static/img/model/park_paly.glb", colorModel: "gama", rot: { x: 1.5708, y: 0, z: 0 }, size: { x: 80, y: 80, z: 80 }, load: false }, - {key: "chongdianzhuang", url: "static/img/model/chongdianzhuang.glb", colorModel: "gama", rot: { x: 1.5708, y: 0, z: 0 }, size: { x: 20, y: 20, z: 20 }, load: false }, - {key: "IDS_H", url: "static/img/model/IDS_H.glb", colorModel: "gama", rot: { x: 1.5708, y: 0, z: 0 }, size: { x: 20, y: 20, z: 20 }, load: false }, - {key: "IDS_V", url: "static/img/model/IDS_V.glb", colorModel: "gama", rot: { x: 1.5708, y: 0, z: 0 }, size: { x: 20, y: 20, z: 20 }, load: false }, - {key: "officeTV", url: "static/img/model/officeTV.glb", colorModel: "gama", rot: { x: 1.5708, y: 0, z: 0 }, size: { x: 20, y: 20, z: 20 }, load: false }, - {key: "xiaofangshuan", url: "static/img/model/xiaofangshuan.glb", colorModel: "gama", rot: { x: 1.5708, y: 0, z: 0 }, size: { x: 20, y: 20, z: 20 }, load: false }, - {key: "tingchechang", url: "static/img/model/tingchechang.glb", colorModel: "gama", rot: { x: 1.5708, y: 0, z: 0 }, size: { x: 20, y: 20, z: 20 }, load: false }, - {key: "chechanglangan", url: "static/img/model/chechanglangan.glb", colorModel: "gama", rot: { x: 1.5708, y: 0, z: 0 }, size: { x: 20, y: 20, z: 20 }, load: false }, - {key: "bangongyi", url: "static/img/model/bangongyi.glb", colorModel: "gama", rot: { x: 1.5708, y: 0, z: 0 }, size: { x: 20, y: 20, z: 20 }, load: false }, - {key: "lvzhi", url: "static/img/model/lvzhi.glb", colorModel: "gama", rot: { x: 1.5708, y: 0, z: 0 }, size: { x: 20, y: 20, z: 20 }, load: false }, - {key: "ren1", url: "static/img/model/ren1.glb", colorModel: "gama", rot: { x: 1.5708, y: 0, z: 0 }, size: { x: 20, y: 20, z: 20 }, load: false }, - {key: "ren2", url: "static/img/model/ren2.glb", colorModel: "gama", rot: { x: 1.5708, y: 0, z: 0 }, size: { x: 20, y: 20, z: 20 }, load: false }, - {key: "ren3", url: "static/img/model/ren3.glb", colorModel: "gama", rot: { x: 1.5708, y: 0, z: 0 }, size: { x: 20, y: 20, z: 20 }, load: false }, - {key: "ren4", url: "static/img/model/ren4.glb", colorModel: "gama", rot: { x: 1.5708, y: 0, z: 0 }, size: { x: 20, y: 20, z: 20 }, load: false }, - {key: "ren5", url: "static/img/model/ren5.glb", colorModel: "gama", rot: { x: 1.5708, y: 0, z: 0 }, size: { x: 20, y: 20, z: 20 }, load: false }, - {key: "ren6", url: "static/img/model/ren6.glb", colorModel: "gama", rot: { x: 1.5708, y: 0, z: 0 }, size: { x: 20, y: 20, z: 20 }, load: false }, - {key: "table", url: "static/img/model/table.glb", colorModel: "gama", rot: { x: 1.5708, y: 0, z: 0 }, size: { x: 20, y: 20, z: 20 }, load: false }, - {key: "yizi1", url: "static/img/model/yizi1.glb", colorModel: "gama", rot: { x: 1.5708, y: 0, z: 0 }, size: { x: 20, y: 20, z: 20 }, load: false }, - {key: "gjz1", url: "static/img/model/gjz1.glb", colorModel: "gama", rot: { x: 1.5708, y: 0, z: 0 }, size: { x: 20, y: 20, z: 20 }, load: false }, - ]; - this.fbxModels = []; //精灵模型 - /** - * 模型弹窗 - * { htmlUrl: "

进入商场

", x: 55, y: 12, z: 3, show:"zh", type: "out" } - */ - this.tipArr = []; //模型标签 periphery - /** - * 室内地图标签 - * Map_QM.util.labelIconArr([{floor:0,title:'', click:false, site:{x:0,y:1870,z:10},data:{type:"labelIcon",id:"1",show:"cn"}}]); - */ - this.labelIconArr = []; - this.spriteMaterialArr = []; - this.lineBasicMaterialArr = []; - this.meshMaterialArr = []; - this.parkMaterialArr = []; - this.shopData = []; //店铺数据 - this.iconUrl = []; - this.allMap = []; - /*** ------------------------------------------------ 参数 API START ------------------------------------------------- */ - this.exportImg = function () { - let tempSrc = Map_QM.renderer.domElement.toDataURL("image/png"); - let a = document.createElement("a"); - a.href = tempSrc; - a.setAttribute("download", "floor.png"); - a.click(); - }; - /** - * @api {方法} changePlaySpeed(speedMult) 改变导航速度倍数 - * @apiGroup 地图导航 - * @apiDescription 改变导航播放速度倍数 - * @apiVersion 4.0.0 - * - * @apiParam {int} speedMult 播放速度倍数(默认 1) - * - * @apiSampleRequest off - * - * @apiParamExample 请求示例 - * - * Map_QM.util.changePlaySpeed() - * - */ - this.changePlaySpeed = function (speedMult = 1) { - Map_QM.util.options.speedMult = speedMult; - }; - /*** ----------------------------------------------- 参数 API END ----------------------------------------------- **** */ - this.Point = function (x = 0, y = 0) { - this.x = x; - this.y = y; - }; - this.WallLine = function (start, end) { - this.start = start; //起始点位 - this.end = end; //结束点位 - this.leftParLine; //左侧平行线段 - this.rightParLine; //右侧平行线段 - this.leftPoint; //左侧平行线交点 - this.rightPoint; //右侧平行线交点 - }; - - this.assignUVs = function (geometry) { - geometry.computeBoundingBox(); - let max = geometry.boundingBox.max, - min = geometry.boundingBox.min; - let offset = new THREE.Vector2(0 - min.x, 0 - min.y); - let range = new THREE.Vector2(max.x - min.x, max.y - min.y); - let addX = 1, - addY = 1; - range.x / range.y < 1 - ? (addX = range.x / range.y) - : (addY = range.y / range.x); - geometry.faceVertexUvs[0] = []; - - for (let face of geometry.faces) { - let v1 = geometry.vertices[face.a], - v2 = geometry.vertices[face.b], - v3 = geometry.vertices[face.c]; - if (face.normal.z == 0) { - //侧面 - if (range.x / range.y >= 1) { - let repY = range.y / 256 >= 2 ? 256 : range.y; - face.materialIndex = Math.abs(face.normal.x) < 0.7 ? 2 : 1; - geometry.faceVertexUvs[0].push( - face.materialIndex == 1 - ? [ - new THREE.Vector2((v1.y + offset.y) / repY, v1.z / 512), - new THREE.Vector2((v2.y + offset.y) / repY, v2.z / 512), - new THREE.Vector2((v3.y + offset.y) / repY, v3.z / 512), - ] - : [ - new THREE.Vector2((v1.x + offset.x) / range.x, v1.z / 64), - new THREE.Vector2((v2.x + offset.x) / range.x, v2.z / 64), - new THREE.Vector2((v3.x + offset.x) / range.x, v3.z / 64), - ] - ); - } else { - face.materialIndex = Math.abs(face.normal.x) < 0.7 ? 1 : 2; - geometry.faceVertexUvs[0].push( - face.materialIndex == 1 - ? [ - new THREE.Vector2((v1.x + offset.x) / range.x, v1.z / 512), - new THREE.Vector2((v2.x + offset.x) / range.x, v2.z / 512), - new THREE.Vector2((v3.x + offset.x) / range.x, v3.z / 512), - ] - : [ - new THREE.Vector2((v1.y + offset.y) / range.y, v1.z / 64), - new THREE.Vector2((v2.y + offset.y) / range.y, v2.z / 64), - new THREE.Vector2((v3.y + offset.y) / range.y, v3.z / 64), - ] - ); - } - } else { - //顶面和底面 - face.materialIndex = 0; - geometry.faceVertexUvs[0].push([ - new THREE.Vector2( - ((v1.x + offset.x) / range.x) * addX, - ((v1.y + offset.y) / range.y) * addY - ), - new THREE.Vector2( - ((v2.x + offset.x) / range.x) * addX, - ((v2.y + offset.y) / range.y) * addY - ), - new THREE.Vector2( - ((v3.x + offset.x) / range.x) * addX, - ((v3.y + offset.y) / range.y) * addY - ), - ]); - } - } - geometry.uvsNeedUpdate = true; - }; - this.packUv = function (geometry) { - geometry.computeBoundingBox(); - let max = geometry.boundingBox.max, - min = geometry.boundingBox.min; - let offset = new THREE.Vector2(0 - min.x, 0 - min.y); - let range = new THREE.Vector2(max.x - min.x, max.y - min.y); - geometry.faceVertexUvs[0] = []; - let allReag = 0; - for (let i = 0; i < geometry.faces.length; i += 2) { - let v1 = geometry.vertices[geometry.faces[i].a], - v2 = geometry.vertices[geometry.faces[i].b]; - if (geometry.faces[i].normal.z == 0) { - //侧面 - if (Math.abs(geometry.faces[i].normal.x) < 0.7) { - //左右 - allReag += Math.abs(v2.x - v1.x); - } else { - allReag += Math.abs(v2.y - v1.y); - } - } - } - for (let face of geometry.faces) { - let v1 = geometry.vertices[face.a], - v2 = geometry.vertices[face.b], - v3 = geometry.vertices[face.c]; - if (face.normal.z == 0) { - //侧面 - face.materialIndex = 1; - if (Math.abs(face.normal.x) < 0.7) { - //前后 - geometry.faceVertexUvs[0].push([ - new THREE.Vector2((v1.x + offset.x) / allReag, v1.z / 512), - new THREE.Vector2((v2.x + offset.x) / allReag, v2.z / 512), - new THREE.Vector2((v3.x + offset.x) / allReag, v3.z / 512), - ]); - } else { - geometry.faceVertexUvs[0].push([ - new THREE.Vector2((v1.y + offset.y) / allReag, v1.z / 512), - new THREE.Vector2((v2.y + offset.y) / allReag, v2.z / 512), - new THREE.Vector2((v3.y + offset.y) / allReag, v3.z / 512), - ]); - } - } else { - //顶面和底面 - face.materialIndex = 0; - geometry.faceVertexUvs[0].push([ - new THREE.Vector2( - (v1.x + offset.x) / range.x, - (v1.y + offset.y) / range.y - ), - new THREE.Vector2( - (v2.x + offset.x) / range.x, - (v2.y + offset.y) / range.y - ), - new THREE.Vector2( - (v3.x + offset.x) / range.x, - (v3.y + offset.y) / range.y - ), - ]); - } - } - }; - /** - * 检测点是否在多边形区域内 - */ - this.checkBoundary = function (p, ptPolygon) { - // 判断边界方法 - let nCount = ptPolygon.length; - let nCross = 0; - for (let i = 0; i < nCount; i++) { - let p1 = ptPolygon[i]; //当前节点 - let p2 = ptPolygon[(i + 1) % nCount]; //下一个节点 - // 求解 y=p.y 与 p1p2 的交点 - if (p1.y == p2.y) - // p1p2 与 y=p0.y平行 - continue; - if (p.y < Math.min(p1.y, p2.y)) - // 交点在p1p2延长线上 - continue; - if (p.y >= Math.max(p1.y, p2.y)) - // 交点在p1p2延长线上 - continue; - // 从P发射一条水平射线 求交点的 X 坐标 ------原理: ((p2.y-p1.y)/(p2.x-p1.x))=((y-p1.y)/(x-p1.x)) - //直线k值相等 交点y=p.y - let x = ((p.y - p1.y) * (p2.x - p1.x)) / (p2.y - p1.y) + p1.x; - if (x > p.x) nCross++; // 只统计单边交点 - } - // 单边交点为偶数,点在多边形之外 --- - return nCross % 2 == 1; - }; - this.requestNoJM = function (params) { - params.method = params.method || "GET"; - let xmlhttp = new XMLHttpRequest(); - xmlhttp.onreadystatechange = function () { - if (xmlhttp.readyState === 4 && xmlhttp.status === 200) { - let jsonObject; - try { - jsonObject = JSON.parse(xmlhttp.responseText); - } catch (e) { - window.captureException && window.captureException(e); - params.fail(); - return; - } - params.success(jsonObject); - } - if ( - xmlhttp.readyState === 4 && - (xmlhttp.status === 404 || xmlhttp.status === 405) - ) { - params.fail(); - } - }; - xmlhttp.onerror = function () { - params.fail(); - }; - xmlhttp.open(params.method, params.url, true); - //xmlhttp.setRequestHeader("Access-Control-Allow-Origin", "*"); - xmlhttp.setRequestHeader("Content-type", "application/json"); - xmlhttp.send(params.data); - }; - //解密 - this.decrypt = function (word, keyStr) { - keyStr = keyStr ? keyStr : "cqmyg#hdhxt!saas"; - var key = CryptoJS.enc.Utf8.parse(keyStr); //Latin1 w8m31+Yy/Nw6thPsMpO5fg== - var decrypt = CryptoJS.AES.decrypt(word, key, { - mode: CryptoJS.mode.ECB, - padding: CryptoJS.pad.Pkcs7, - }); - return CryptoJS.enc.Utf8.stringify(decrypt).toString(); - }; - this.timeStamp = function () { - return parseInt(new Date().getTime() / 1000); - }; - - this.readTextFile = function (file, callback) { - let rawFile = new XMLHttpRequest(); - rawFile.overrideMimeType("application/json"); - rawFile.open("GET", file, true); - rawFile.onreadystatechange = function () { - if (rawFile.readyState === 4 && rawFile.status == 200) { - try { - let jsonObject = JSON.parse(rawFile.response); - callback(jsonObject); - } catch (e) { - window.captureException && window.captureException(e); - } - } - }; - rawFile.onerror = function () { - callback(null); - }; - rawFile.send(null); - }; - /**碰撞检测 - * 传入A中心点和A的宽、高 - * B的中心点和B的宽、高 - */ - this.isCollision = function (A, B) { - return (Math.abs(A.x - B.x) < A.width+B.width && Math.abs(A.y - B.y) < A.height+B.height); - }; - this.isSpriteToPro = function (spriteA) { - let vct = new THREE.Vector3( - spriteA.userData.x, - -1 * spriteA.userData.y, - 30 - ); - vct.applyMatrix4( - Map_QM.mapArr[Map_QM.util.selectBuild][Map_QM.util.selectFloor].allObj - .matrix - ); - vct.applyMatrix4(Map_QM.sceneGap.matrix); - let standVecA = vct.project(Map_QM.camera); - return { - x: Math.round(((standVecA.x + 1) * Map_QM.w) / 2), - y: Math.round(((standVecA.y + 1) * Map_QM.h) / 2), - width: spriteA.userData.width, - height: spriteA.userData.height, - }; - }; - - this.changeParkToString = function (area) { - let areaArr = []; - for (let i = 0; i < area.hasLines.length; i++) { - let line = area.hasLines[i]; - let array = []; - array.push( - line.startPoint.x, - line.startPoint.y, - line.endPoint.x, - line.endPoint.y - ); - areaArr.push(array); - } - return areaArr; - }; - this.changeAreaToString = function (area) { - let areaArr = []; - for (let i = 0; i < area.hasLines.length; i++) { - let line = area.hasLines[i]; - let array = []; - if (line.isStrLine) { - array.push( - line.startPoint.x, - line.startPoint.y, - line.endPoint.x, - line.endPoint.y - ); - } else { - array.push( - line.startPoint.x, - line.startPoint.y, - line.ctrlPoint1.x, - line.ctrlPoint1.y, - line.ctrlPoint2.x, - line.ctrlPoint2.y, - line.endPoint.x, - line.endPoint.y - ); - } - areaArr.push(array); - } - return areaArr; - }; - this.changeWallToString = function (area) { - let areaArr = []; - let points = Map_QM.util.getWallPoints(area.pathPoints, area.thick); - for (let i = 0; i < points.length; i++) { - let array = []; - let pend = i == points.length - 1 ? points[0] : points[i + 1]; - array.push(points[i].x, points[i].y, pend.x, pend.y); - areaArr.push(array); - } - return areaArr; - }; - - this.QM_Line_Father = function ( - sPoint, - ePoint, - ctrlPoint1, - ctrlPoint2, - isStrLine - ) { - this.startPoint = sPoint; //起始点 - this.endPoint = ePoint; //结束点 - this.ctrlPoint1 = ctrlPoint1; - this.ctrlPoint2 = ctrlPoint2; - this.isStrLine = isStrLine; //是否是直线 - }; - //根据配置参数转换店铺圆角 - this.changeShopLinesToString = function (area) { - let areaStr = []; - let lines = []; - for (let m = 0; m < area.hasLines.length; m++) { - let sPoint, ePoint, cPoint1, cPoint2; - sPoint = new Map_QM.util.Point( - area.hasLines[m].startPoint.x, - area.hasLines[m].startPoint.y - ); - ePoint = new Map_QM.util.Point( - area.hasLines[m].endPoint.x, - area.hasLines[m].endPoint.y - ); - if (area.hasLines[m].isStrLine) { - cPoint1 = null; - cPoint2 = null; - } else { - cPoint1 = new Map_QM.util.Point( - area.hasLines[m].ctrlPoint1.x, - area.hasLines[m].ctrlPoint1.y - ); - cPoint2 = new Map_QM.util.Point( - area.hasLines[m].ctrlPoint2.x, - area.hasLines[m].ctrlPoint2.y - ); - } - let line = new Map_QM.util.QM_Line_Father( - sPoint, - ePoint, - cPoint1, - cPoint2, - area.hasLines[m].isStrLine - ); - lines.push(line); - } - - for (let i = 0; i < lines.length; i++) { - let line0 = lines[i]; - let line1 = i < lines.length - 1 ? lines[i + 1] : lines[0]; - if (Map_QM.util.options.aRadius > 2) { - if (line0.isStrLine &&line1.isStrLine &&Math.abs(line0.endPoint.x - line0.startPoint.x) + Math.abs(line0.endPoint.y - line0.startPoint.y) > parseInt(Map_QM.util.options.aRadius) * 2) { - let x1 = line0.endPoint.x; - let y1 = line0.endPoint.y; - let x2 = line0.startPoint.x; - let y2 = line0.startPoint.y; - let x3 = line1.endPoint.x; - let y3 = line1.endPoint.y; - if (Math.abs((x3 - x1) / (x2 - x1) - (y3 - y1) / (y2 - y1)) < 0.1) { - let yArr = []; - yArr.push(line0.startPoint.x,line0.startPoint.y, line0.endPoint.x, line0.endPoint.y); - areaStr.push(yArr); - continue; - } - - let result = Map_QM.util.getIncircleByLines(x1,y1,x2,y2,x3,y3,Map_QM.util.options.aRadius); - let bezierResult = Map_QM.util.getBezier(result.center.x,result.center.y, result.tangencyPoints[0].x, result.tangencyPoints[0].y, result.tangencyPoints[1].x, result.tangencyPoints[1].y, x1, y1, Map_QM.util.options.aRadius); - - if (i > 0) { - let ctrlPoint1, - ctrlPoint2, - array = []; - ctrlPoint1 = ctrlPoint2 = new Map_QM.util.Point(((bezierResult[0].x - line0.startPoint.x) / 2 + line0.startPoint.x) >>0, ((bezierResult[0].y - line0.startPoint.y) / 2 +line0.startPoint.y) >> 0); //控制点 - array.push( - line0.startPoint.x, - line0.startPoint.y, - ctrlPoint1.x, - ctrlPoint1.y, - ctrlPoint2.x, - ctrlPoint2.y, - bezierResult[0].x, - bezierResult[0].y - ); - areaStr.push(array); - } else { - lines[0].endPoint.x = bezierResult[0].x; - lines[0].endPoint.y = bezierResult[0].y; - } - let arr = []; - arr.push( - bezierResult[0].x, - bezierResult[0].y, - bezierResult[1].x, - bezierResult[1].y, - bezierResult[2].x, - bezierResult[2].y, - bezierResult[3].x, - bezierResult[3].y - ); - areaStr.push(arr); - line1.startPoint.x = bezierResult[3].x; - line1.startPoint.y = bezierResult[3].y; - } else { - ///////////////////////////// - if (i != 0) { - let pArr = []; - if (line0.isStrLine) { - pArr.push( - line0.startPoint.x, - line0.startPoint.y, - line0.endPoint.x, - line0.endPoint.y - ); - } else { - pArr.push( - line0.startPoint.x, - line0.startPoint.y, - line0.ctrlPoint1.x, - line0.ctrlPoint1.y, - line0.ctrlPoint2.x, - line0.ctrlPoint2.y, - line0.endPoint.x, - line0.endPoint.y - ); - } - areaStr.push(pArr); - } - } - if (i == lines.length - 1) { - let ocPoint1, - ocPoint2, - oArr = []; - if (line1.isStrLine) { - oArr.push( - line1.startPoint.x, - line1.startPoint.y, - line1.endPoint.x, - line1.endPoint.y - ); - } else { - ocPoint1 = new Map_QM.util.Point(line1.ctrlPoint1.x,line1.ctrlPoint1.y); - ocPoint2 = new Map_QM.util.Point(line1.ctrlPoint2.x,line1.ctrlPoint2.y); - oArr.push( - line1.startPoint.x, - line1.startPoint.y, - ocPoint1.x, - ocPoint1.y, - ocPoint2.x, - ocPoint2.y, - line1.endPoint.x, - line1.endPoint.y - ); - } - areaStr.push(oArr); - } - } else { - let yArr = []; - if (line0.isStrLine) { - yArr.push(line0.startPoint.x, line0.startPoint.y, line0.endPoint.x,line0.endPoint.y); - } else { - yArr.push( - line0.startPoint.x,line0.startPoint.y, - line0.ctrlPoint1.x,line0.ctrlPoint1.y, - line0.ctrlPoint2.x, line0.ctrlPoint2.y, - line0.endPoint.x, line0.endPoint.y - ); - } - areaStr.push(yArr); - } - } - return areaStr; - }; - - //根据圆心、两个切点、切点相交线顶点和半径 计算三次贝塞尔曲线的控制点 - this.getBezier = function (x1, y1, x2, y2, x3, y3, x4, y4, radius) { - //切线向量A - var vectorAx = x2 - x1; - var vectorAy = y2 - y1; - //切线向量B - var vectorBx = x3 - x1; - var vectorBy = y3 - y1; - - //计算切点和圆形组成相交线的夹角 - var angle = Math.acos( - (vectorAx * vectorBx + vectorAy * vectorBy) / - (Math.sqrt(vectorAx * vectorAx + vectorAy * vectorAy) * - Math.sqrt(vectorBx * vectorBx + vectorBy * vectorBy)) - ); - //计算切点到控制点的距离 - var tempDistence = (4 / 3) * radius * Math.tan(angle / 4); - return [ - { - x: x2, - y: y2, - }, - Map_QM.util.getPointFromLine(x2, y2, x4, y4, tempDistence), - Map_QM.util.getPointFromLine(x3, y3, x4, y4, tempDistence), - { - x: x3, - y: y3, - }, - ]; - }; - //根据半径计算两条线段相切圆的圆心和切点坐标 - this.getIncircleByLines = function (x1, y1, x2, y2, x3, y3, radius) { - //向量夹角 - let angle = Map_QM.util.getVectorAngle(x2 - x1, y2 - y1, x3 - x1, y3 - y1); - angle = (angle > 180 ? 360 - angle : angle) / 2; - //根据夹角计算侧边切点相对于顶点距离 - let distance = radius / Math.tan((Math.PI * angle) / 180); - //计算侧边相切点具体坐标 - let tangencyPoints = [ - Map_QM.util.getPointFromLine(x1, y1, x2, y2, distance), - Map_QM.util.getPointFromLine(x1, y1, x3, y3, distance), - ]; - - let centerX, centerY; - let areaSize = (x2 - x1) * (y3 - y1) - (y2 - y1) * (x3 - x1); - //计算圆心坐标 - if (areaSize < 0) { - centerX = - (tangencyPoints[0].x * (1 / Math.tan((Math.PI * angle) / 180)) + - tangencyPoints[0].y -y1) /(1 / Math.tan((Math.PI * angle) / 180)); - centerY = (tangencyPoints[0].y * (1 / Math.tan((Math.PI * angle) / 180)) + x1 - tangencyPoints[0].x) /(1 / Math.tan((Math.PI * angle) / 180)); - } else { - centerX = (tangencyPoints[1].x * (1 / Math.tan((Math.PI * angle) / 180)) +tangencyPoints[1].y -y1) / (1 / Math.tan((Math.PI * angle) / 180)); - centerY = (tangencyPoints[1].y * (1 / Math.tan((Math.PI * angle) / 180)) + x1 -tangencyPoints[1].x) /(1 / Math.tan((Math.PI * angle) / 180)); - } - return { - center: { - x: centerX, - y: centerY, - }, - tangencyPoints: tangencyPoints, - angle: (Math.PI * angle) / 90, - }; - }; - - //根据距离计算线段上某一点的具体坐标 - this.getPointFromLine = function (startX, startY, endX, endY, distance) { - if (startX == endX) - return { - x: startX, - y: startY < endY ? startY + distance : startY - distance, - }; - - let k = ((startY - endY) * 1.0) / (startX - endX); - let b = startY - k * startX; - let A = Math.pow(k, 2) + 1; - let B = 2 * ((b - startY) * k - startX); - let C = - Math.pow(b - startY, 2) + Math.pow(startX, 2) - Math.pow(distance, 2); - let x1 = (-B + Math.sqrt(Math.pow(B, 2) - 4 * A * C)) / (2 * A); - let x2 = (-B - Math.sqrt(Math.pow(B, 2) - 4 * A * C)) / (2 * A); - let x = 0; - - if (x1 == x2) x = x1; - else if ((startX <= x1 && x1 <= endX) || (endX <= x1 && x1 <= startX)) - x = x1; - else if ((startX <= x2 && x2 <= endX) || (endX <= x2 && x2 <= startX)) - x = x2; - - let y = k * x + b; - return { - x: x, - y: y, - }; - }; - - //计算两个向量之间的夹角 - this.getVectorAngle = function (x1, y1, x2, y2) { - let epsilon = 1.0e-6; - let dist, dot, degree, angle; - dist = Math.sqrt(x1 * x1 + y1 * y1); - x1 /= dist; - y1 /= dist; - dist = Math.sqrt(x2 * x2 + y2 * y2); - x2 /= dist; - y2 /= dist; - dot = x1 * x2 + y1 * y2; - if (Math.abs(dot - 1.0) <= epsilon) angle = 0; - else if (Math.abs(dot + 1.0) <= epsilon) angle = Math.PI; - else { - angle = Math.acos(dot); - let cross = x1 * y2 - x2 * y1; - if (cross < 0) angle = 2 * Math.PI - angle; - } - degree = (angle * 180) / Math.PI; - return degree; - }; - //检测区域是否在区域内 true (area2包含area) - this.checkAreaInArea = function (area, area2) { - if (!area2.hasLines || !area.hasLines) { - return false; - } - let ptPolygon = []; - for (let i = 0; i < area2.hasLines.length; i++) { - let line = area2.hasLines[i]; - let pArr; - if (line.isStrLine) { - pArr = Map_QM.util.getPointArrOnLine(line.startPoint, line.endPoint); - } else { - pArr = Map_QM.util.getPointArr(line.startPoint, line.ctrlPoint1,line.ctrlPoint2,line.endPoint,0.1); - } - ptPolygon.push(...pArr); - } - for (let f = 0; f < area.hasLines.length; f++) { - let line2 = area.hasLines[f]; - let sPoint = Map_QM.util.checkBoundary(new Map_QM.util.Point(line2.startPoint.x, line2.startPoint.y),ptPolygon); - let ePoint = Map_QM.util.checkBoundary(new Map_QM.util.Point(line2.endPoint.x, line2.endPoint.y),ptPolygon); - if (!sPoint || !ePoint) { - return false; - } - } - return true; - }; - - /** - * 返回取得点的数组 - * s1--起点 s2 --终点 s3,s4 --控制点 - */ - this.getPointArr = function (s1, s3, s4, s2, sp = 0.01) { - let pArr = []; - let sz = [s1, s3, s4, s2]; - let p; - for (let j = 0; j < 1; j += sp) { - p = Map_QM.util.P_BEZ(j, sz); - pArr.push(p); - } - return pArr; - }; - - this.P_BEZ = function (t, sz) { - //n次 - let x_p = 0; - let y_p = 0; - let n = sz.length; - for (let i = 0; i < sz.length; i++) { - let son = Map_QM.util.jie_cheng(n - 1); - let mother = Map_QM.util.jie_cheng(i) * Map_QM.util.jie_cheng(n - 1 - i); - let b = (son / mother) * Math.pow(t, i) * Math.pow(1 - t, n - 1 - i); - x_p += sz[i].x * b; - y_p += sz[i].y * b; - } - - x_p = Number(x_p * 1000) / 1000; - y_p = Number(y_p * 1000) / 1000; - return new Map_QM.util.Point(x_p, y_p); - }; - - this.jie_cheng = function (i) { - //阶乘 - let n = 1; - for (let j = 1; j <= i; j++) { - n *= j; - } - return n; - }; - - /** - * 获取线段上的所有点 - */ - this.getPointArrOnLine = function (s1, s2) { - let points = []; - if (s1.x == s2.x) { - let vy = s1.y < s2.y ? 1 : -1; - for (let m = 1; m < Math.abs(s1.y - s2.y); m++) { - let y0 = s1.y + m * vy; - let x0 = s1.x; - points.push(new Map_QM.util.Point(x0, y0)); - } - return points; - } - let k = (s1.y - s2.y) / (s1.x - s2.x); // 坐标直线斜率k - let b = s1.y - k * s1.x; // 坐标直线b - if (Math.abs(s1.x - s2.x) > Math.abs(s1.y - s2.y)) { - let vx = s1.x < s2.x ? 1 : -1; - for (let i = 1; i < Math.abs(s1.x - s2.x); i++) { - let x0 = s1.x + i * vx; - let y0 = k * x0 + b; - points.push(new Map_QM.util.Point(x0, y0)); - } - } else { - let vy = s1.y < s2.y ? 1 : -1; - for (let n = 1; n < Math.abs(s1.y - s2.y); n++) { - let y0 = s1.y + n * vy; - let x0 = (y0 - b) / k; - points.push(new Map_QM.util.Point(x0, y0)); - } - } - return points; - }; - - //转换公共设施type值 - this.getFacType = function (str) { - for (let i = 0; i < typeObj.length; i++) { - if (typeObj[i].code && typeObj[i].code == str) { - return typeObj[i].type; - } - } - }; - this.getFacName = function (str) { - for (let i = 0; i < typeObj.length; i++) { - if (typeObj[i].code && typeObj[i].code == str) { - return typeObj[i].name; - } - } - }; - //店铺排序 - this.sortShopByFloor = function (a, b) { - return a.floorOrder < b.floorOrder ? -1 : 1; - }; - this.sortNode = function (a, b) { - return a.id - b.id; - }; - //////////////////////////////////////////////////////////////////////////////////////////// - this.getWallPoints = function (points, wallWidth) { - if (points.length < 2) { - return new Array(); - } - //构建线段列表 - let lines = new Array(); - for (let index = 0; index < points.length - 1; index++) { - let startPoint = points[index]; - let endPoint = points[index + 1]; - let line = Map_QM.util.getParallelLine(startPoint, endPoint, wallWidth); - lines.push(line); - } - //生成线段对应的左右两侧平行线 - for (let index = 0; index < lines.length - 1; index++) { - let start = lines[index]; - let end = lines[index + 1]; - if ( - start.leftParLine != null && - start.rightParLine != null && - end.leftParLine != null && - end.rightParLine != null - ) { - start.leftPoint = Map_QM.util.getIntersectionByLines( - start.leftParLine, - end.leftParLine - ); - start.rightPoint = Map_QM.util.getIntersectionByLines( - start.rightParLine, - end.rightParLine - ); - } - } - //循环线段列表 获取墙体所有点位 顺序为 左侧起始点->左侧所有交点->左侧结束点->右侧结束点->右侧所有交点->右侧起始点 - let leftPointList = new Array(); - let rightPointList = new Array(); - for (let index = 0; index < lines.length; index++) { - //第一条线段 记录左右两侧平行线的起点坐标 - if (index == 0) { - leftPointList.push(lines[index].leftParLine.start); - rightPointList.push(lines[index].rightParLine.start); - } - //最后一条线段 记录左右两侧平行线的终点坐标 - if (index == lines.length - 1) { - leftPointList.push(lines[index].leftParLine.end); - rightPointList.push(lines[index].rightParLine.end); - } else { - //记录线段左右平行线交点坐标 - if ( - !isNaN(lines[index].leftPoint.x) || - !isNaN(lines[index].leftPoint.y) || - !isNaN(lines[index].rightPoint.x) || - !isNaN(lines[index].rightPoint.y) - ) { - leftPointList.push(lines[index].leftPoint); - rightPointList.push(lines[index].rightPoint); - } - } - } - rightPointList.reverse(); - return leftPointList.concat(rightPointList); - }; - //生成线段左右两侧的平行线 - this.getParallelLine = function (start, end, wallWidth) { - let line = new Map_QM.util.WallLine(start, end); - //计算当前线段的斜率 - let gradient = (start.y - end.y) / (start.x - end.x); - //计算垂直线的斜率 - let perGradient = -1 / gradient; - //获取垂直线上左右两侧 与当前点位相距一定距离的两个定点 - let startResult = Map_QM.util.getParallelPoints( perGradient, start, wallWidth); - let endResult = Map_QM.util.getParallelPoints(perGradient, end, wallWidth); - let x1 = startResult[0].x; - let y1 = startResult[0].y; - let x2 = endResult[0].x; - let y2 = endResult[0].y; - let x3 = end.x; - let y3 = end.y; - let x4 = startResult[1].x; - let y4 = startResult[1].y; - let x5 = endResult[1].x; - let y5 = endResult[1].y; - let s = (x1 - x3) * (y2 - y3) - (y1 - y3) * (x2 - x3); - //判断点位位于线段的左侧还是右侧 - if (s >= 0) { - line.leftParLine = new Map_QM.util.WallLine(new Map_QM.util.Point(x1, y1), new Map_QM.util.Point(x2, y2)); - line.rightParLine = new Map_QM.util.WallLine(new Map_QM.util.Point(x4, y4), new Map_QM.util.Point(x5, y5)); - } else { - line.leftParLine = new Map_QM.util.WallLine(new Map_QM.util.Point(x4, y4), new Map_QM.util.Point(x5, y5)); - line.rightParLine = new Map_QM.util.WallLine(new Map_QM.util.Point(x1, y1), new Map_QM.util.Point(x2, y2)); - } - return line; - }; - // 生成线段起始 和 结束 点位 对应的 两条 与线段垂直的直线 并记录坐标 - this.getParallelPoints = function (gradient, point, wallWidth) { - let x, y; - //斜率为无穷大时 计算不了垂直线 指定点位 - if (gradient == Number.NEGATIVE_INFINITY || gradient == Number.POSITIVE_INFINITY) { - x = point.x; - y = point.y + 5; - } else { - //不是横线时 根据斜率计算点位 - x = point.x + 5; - y = gradient * (x - point.x) + point.y; - } - - return Map_QM.util.pointXY( - point, - new Map_QM.util.Point(x, y), - wallWidth / 2 - ); - }; - // 获取点位在直线上的坐标 - this.pointXY = function (curPoint, nextPoint, length) { - let result = new Array(); - //x值相等 说明是竖线 只需增减y轴坐标 - if (curPoint.x == nextPoint.x) { - result.push(new Map_QM.util.Point(curPoint.x, curPoint.y + length)); - result.push(new Map_QM.util.Point(curPoint.x, curPoint.y - length)); - return result; - } - //根据 斜率 和 距离 计算出对应的两个点位 - let k = (curPoint.y - nextPoint.y) / (curPoint.x - nextPoint.x); - let b = curPoint.y - k * curPoint.x; - let A = Math.pow(k, 2) + 1; - let B = 2 * ((b - curPoint.y) * k - curPoint.x); - let C = - Math.pow(b - curPoint.y, 2) + - Math.pow(curPoint.x, 2) - - Math.pow(length, 2); - let x1 = (-B + Math.sqrt(Math.pow(B, 2) - 4 * A * C)) / (2 * A); - let x2 = (-B - Math.sqrt(Math.pow(B, 2) - 4 * A * C)) / (2 * A); - - result.push(new Map_QM.util.Point(x1, k * x1 + b)); - result.push(new Map_QM.util.Point(x2, k * x2 + b)); - return result; - }; - //计算两条直线的相交点 - this.getIntersectionByLines = function (line1, line2) { - //直线斜率 - let gradient1 = - (line1.end.y - line1.start.y) / (line1.end.x - line1.start.x); - let gradient2 = - (line2.end.y - line2.start.y) / (line2.end.x - line2.start.x); - //斜率差值小于一定范围 表示两条线近似平行 因为交点太远 可能超出屏幕 直接取线段中点为交点 - if (Math.abs(gradient1 - gradient2) < 0.1) - return new Map_QM.util.Point(line1.end.x, line1.end.y); - let x1 = line1.start.x; - let y1 = line1.start.y; - let x2 = line1.end.x; - let y2 = line1.end.y; - let x3 = line2.start.x; - let y3 = line2.start.y; - let x4 = line2.end.x; - let y4 = line2.end.y; - - //计算交点坐标 - let x = - ((x1 - x2) * (x3 * y4 - x4 * y3) - (x3 - x4) * (x1 * y2 - x2 * y1)) / - ((x3 - x4) * (y1 - y2) - (x1 - x2) * (y3 - y4)); - let y = - ((y1 - y2) * (x3 * y4 - x4 * y3) - (x1 * y2 - x2 * y1) * (y3 - y4)) / - ((y1 - y2) * (x3 - x4) - (x1 - x2) * (y3 - y4)); - return new Map_QM.util.Point(x, y); - }; - /** - * 根据色值获取材质 - */ - this.getMeshMaterial = function (color, alphaModle = 0.9) { - let meshMaterial; - for (let k = 0; k < Map_QM.util.meshMaterialArr.length; k++) { - let color2 = new THREE.Color(color); - if ( - Map_QM.util.meshMaterialArr[k].color && - Map_QM.util.meshMaterialArr[k].color.equals(color2) && - Map_QM.util.meshMaterialArr[k].opacity == alphaModle - ) { - meshMaterial = Map_QM.util.meshMaterialArr[k]; - } - } - if (!meshMaterial) { - meshMaterial = new THREE.MeshPhongMaterial({ - color: color, - emissive: 0x000000, - specular: 0x000000, - transparent: true, - side: THREE.DoubleSide, - opacity: alphaModle, - }); - Map_QM.util.meshMaterialArr.push(meshMaterial); - } - return meshMaterial; - }; - this.rotateYZ = function (geometry, ry, rz) { - let center = new THREE.Vector3(); - geometry.computeBoundingBox(); - geometry.boundingBox.getCenter(center); - let x = center.x; - let y = center.y; - let z = center.z; - geometry.center(); - geometry.rotateY(ry); - geometry.rotateX(rz); - geometry.translate(x, y, z); - }; - //用于生成uuid - this.guid = function () { - function S4() { - return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1); - } - return S4() + S4() + S4(); - }; - - this.getTextMesh = function (text, position) { - const sprite = new SpriteText(text, 32, "#000000"); - sprite.padding = 2; - sprite.fontSize = 32; - sprite.strokeWidth = 2; - sprite.renderOrder = 100; - sprite.fontWeight = "500"; - sprite.material.transparent = true; - sprite.material.alphaTest = 0.1; - sprite.material.sizeAttenuation = false; - sprite.position.set(position.x, position.y, position.z + 24); - return sprite; - }; -}; -//////////////////////////////-------------------------------------------配置 UtilFun -/** - * 地图主类,入口 初始化设备点位 - */ -var MainMap_QM = function (callBack, options) { - this.util = new QMUtil(); - this.callBackLoadOver = callBack; - this.ele = document.getElementById(options.containerId || "mapContainer"); - this.w = parseInt(this.ele.clientWidth) || parseInt(window.getComputedStyle(this.ele, null).getPropertyValue("width")); - this.h = parseInt(this.ele.clientHeight) ||parseInt(window.getComputedStyle(this.ele, null).getPropertyValue("height")); - this.backObj = { code: 200, msg: "加载成功", data: [] }; - this.scene = new THREE.Scene(); - this.scene.name = "scene"; - this.scene.fog = new THREE.Fog(0xe5e5e5,this.util.options.maxDis,this.util.options.maxDis + 500); - this.aspect = this.w / this.h; - this.cameraPerspective = new THREE.PerspectiveCamera(45,this.aspect,10,10000); - this.cameraPerspective.position.set(this.util.sceneGap.cameraX,this.util.sceneGap.cameraY,this.util.sceneGap.cameraZ); //x 水平 y 垂直旋转 z 展示大小 - this.cameraPerspective.lookAt(new THREE.Vector3(0, 0, 0)); - this.camera = this.cameraPerspective; - // - this.renderer = new THREE.WebGLRenderer({ antialias: true, alpha: true }); // preserveDrawingBuffer 是否可以截图 - //this.renderer.outputEncoding = THREE.sRGBEncoding; - this.renderer.setSize(this.w, this.h); - this.renderer.setPixelRatio(window.devicePixelRatio); - this.renderer.shadowMap.enabled = this.util.options.shadow; - // 阴影类型 - this.renderer.shadowMap.type = THREE.PCFSoftShadowMap; - this.ele.appendChild(this.renderer.domElement); - - this.labelRenderer = new THREE.CSS2DRenderer(); - //弹窗的偏移百分比 或者像素 - this.labelRenderer.setSize(this.w, this.h, options.perc_H || "-50%"); - this.labelRenderer.domElement.style.position = "absolute"; - this.labelRenderer.domElement.style.top = 0; - this.ele.appendChild(this.labelRenderer.domElement); - - let light = new THREE.AmbientLight(0xffffff, 0.4); - light.name = "light"; - this.scene.add(light); - this.hemiLight = new THREE.HemisphereLight(this.util.lightOptions.s_col,this.util.lightOptions.g_col,this.util.lightOptions.a_int); - this.hemiLight.name = "light"; - this.hemiLight.position.set(0, 1, 0); - this.scene.add(this.hemiLight); - - this.shawLight = new THREE.DirectionalLight(this.util.lightOptions.d_col,this.util.lightOptions.d_int); - this.shawLight.name = "light"; - this.shawLight.position.set(280, 400, -300); - this.shawLight.castShadow = this.util.options.shadow; //阴影 - this.shawLight.shadow.camera.top = 200; - this.shawLight.shadow.camera.bottom = -200; - this.shawLight.shadow.camera.right = 200; - this.shawLight.shadow.camera.left = -200; - this.shawLight.shadow.camera.far = 800; - this.shawLight.shadow.camera.near = 100; - this.shawLight.shadow.bias = -0.001; - this.shawLight.shadow.darkness = 0.3; - this.shawLight.shadow.mapSize.set(2048, 2048); - this.scene.add(this.shawLight); - - this.controls = new THREE.OrbitControls(this.camera, this.ele); - this.controls.minZoom = 0.8; - this.controls.maxZoom = 2; - //设置相机距离原点的最远距离 - this.controls.minDistance = this.util.options.minDis; - //设置相机距离原点的最远距离 - this.controls.maxDistance = this.util.options.maxDis; - this.controls.minPolarAngle = 0; // 0是为了兼容2D模式 - this.controls.maxPolarAngle = Math.PI / 2 - 0.2; // radians - - const sykVShader = `varying vec3 vWorldPosition; - void main() { - vec4 worldPosition = modelMatrix * vec4( position, 1.0 ); - vWorldPosition = worldPosition.xyz; - gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 ); - }`; - const skyFShader = `uniform vec3 topColor; - uniform vec3 bottomColor; - uniform float offset; - uniform float exponent; - varying vec3 vWorldPosition; - void main() { - float h = normalize( vWorldPosition + offset ).y; - float alpha = h > 0.0 ? 1.0 : 0.0; - gl_FragColor = vec4( mix( bottomColor, topColor, max( pow( max( h , 0.0), exponent ), 0.0 ) ), alpha ); - }`; - const uniforms = { - topColor: { value: new THREE.Color(0x3385ff) }, - bottomColor: { value: new THREE.Color(0xe6e6e6) }, - offset: { value: 30 }, - exponent: { value: 0.6 }, - }; - const skyGeo = new THREE.SphereGeometry(this.util.options.maxDis * 2, 16, 16); - const skyMat = new THREE.ShaderMaterial({ - uniforms: uniforms, - vertexShader: sykVShader, - fragmentShader: skyFShader, - side: THREE.BackSide, - transparent: true, - }); - - const sky = new THREE.Mesh(skyGeo, skyMat); - sky.name = "light"; - this.scene.add(sky); - - this.ele.addEventListener("touchmove", this.mouseMove); - this.ele.addEventListener("touchend", this.mouseUp); - this.ele.addEventListener("click", this.onMouseClickBox); //地图点击 - document.addEventListener("resize", this.changeDocmentResize); //窗口变化 - this.mapArr = []; - this.spriteList = []; - this.selectShop; - this.selectEle = null; //当前使用的电梯 - this.overShop; //终点店铺 - this.shape = new THREE.Shape(); - this.shape.moveTo(-10, -10); - this.shape.lineTo(10, -10); - this.shape.lineTo(10, 10); - this.shape.lineTo(-10, 10); - this.dtLineGroup = new THREE.Group(); - this.dtLineGroup.name = "dtLine"; - - if (document.getElementById("moveFloorBG")) { - document.getElementById("moveFloorBG").style.zIndex = 500; - this.moveFloorbg = new THREE.CSS2DObject( - document.getElementById("moveFloorBG") - ); - this.moveFloorbg.userData.isShow = false; - } - this.mixers = []; - this.man_3d = null; - this.man_2d = null; - this.guide = null; - this.devModel = null; - this.sceneGap = new THREE.Group(); - this.outModelGap = new THREE.Group(); //全局外立面模型 - this.scene.add(this.outModelGap); - this.peripheryGap = new THREE.Group(); //周边模型 - this.scene.add(this.peripheryGap); - this.outObject = new THREE.Object3D(); - this.outObject.userData.type = "moveFloor"; - this.perObject = new THREE.Object3D(); - this.perObject.userData.type = "moveFloor"; - this.buildObj = new THREE.Group(); - this.qiModel = null; //起点 - this.qiIcon = null; //起点Icon - this.endIcon = null; //终点Icon - this.endModel = null; - this.forShopArr = []; //途径数据 - this.getInstance(options); - if (this.util.options.northShow) { - this.util.img = document.createElement("img"); - this.util.img.src = "./static/img/noth.png"; - this.util.img.classList.add("north"); - this.ele.appendChild(this.util.img); - } -}; -MainMap_QM.prototype = { - resetModel: function () { - if (mapState == "mall") { - Map_QM.buildObj.visible = true; - Map_QM.controls.reset(); - startRotate = false; - Map_QM.controls.setDistance(Map_QM.util.changeDist.inner - 25); - } else if (mapState == "out") { - Map_QM.controls.reset(); - Map_QM.controls.setDistance(Map_QM.util.changeDist.inner + 30); - Map_QM.outModelGap.rotateY(-1 * Map_QM.outModelGap.rotation.y); - startRotate = true; - } else { - Map_QM.controls.reset(); - Map_QM.controls.setDistance(Map_QM.util.changeDist.outner + 25); - startRotate = false; - } - Map_QM.controls.update(); - renderCount = 0; - }, - //隐藏活动标签(万象定制) - mouseMove: function () { - Map_QM.CSSObject && Map_QM.CSSObject.traverse((obj) => { - if (obj.userData.type == "tip") { - obj.element.style.visibility = "hidden"; - } - }); - }, - //显示活动标签(万象定制) - mouseUp: function () { - Map_QM.CSSObject && Map_QM.CSSObject.traverse((obj) => { - if (obj.userData.type == "tip") { - obj.element.style.visibility = parseInt(obj.userData.floor) == Map_QM.util.selectFloor ? "visible": "hidden"; - } - }); - }, - - /** - * @api {方法} getPointByNode() 获取导航点位的坐标 - * @apiGroup 地图交互 - * @apiDescription 获取导航点位的坐标 - * @apiVersion 4.0.0 - * @apiParam {String} str 导航点位 - * - * @apiSampleRequest off - * @apiParamExample {String} 请求示例 - * - * Map_QM.getPointByNode("0_0_1"); - */ - getPointByNode: function (str) { - let nodes = str.split("_"); - if (nodes.length > 2 && !isNaN(parseInt(nodes[2])) && parseInt(nodes[2])>=0) { - Map_QM.util.allMap[nodes[0]].buildArr[nodes[1]].mapData.path.nodes.sort(Map_QM.util.sortNode); - return Map_QM.util.allMap[nodes[0]].buildArr[nodes[1]].mapData.path.nodes[nodes[2]]; - }else{ - return {x:-5000,y:-5000,msg:"未打点"}; - } - }, - getInstance: function (options) { - this.util.startObj.build = this.util.deviceObj.build = parseInt(options.build) || 0; - this.util.startObj.node = this.util.deviceObj.node = parseInt(options.navPoint) || 1; - this.util.deviceObj.angle = parseInt(options.angle) || 0; - this.util.selectBuild = this.util.deviceObj.build; - let _space = this; - if (options.mallCode) { - let tim = this.util.timeStamp(); - this.util.requestNoJM({ - method: "GET", - url: options.url + "/api/info/v1/web/getUploadUrl", - success: (res) => { - let resText = res.data; - if (typeof resText === "string" &&resText.search("https://") === -1) { - resText = JSON.parse(_space.util.decrypt(res.data)); - } - _space.tomUrl = resText; - this.util.requestNoJM({ - method: "GET", - url: _space.tomUrl + "/ar/" + options.mallCode +"/config.json?a=" +tim, - success: (res) => { - _space.util.shopServerInfo = res.shopUrl; - _space.util.mapServerInfo = res.mapUrl; - _space.initLoadMapFile(options); - }, - fail: () => { - _space.backObj.code = 404; - _space.backObj.msg = "地图数据获取失败"; - _space.callBackLoadOver(_space.backObj); - _space.callBackLoadOver = null; - }, - }); - }, - fail: () => { - this.util.requestNoJM({ - method: "GET", - url: _space.tomUrl +"/ar/" +options.mallCode +"/config.json?a=" +tim, - success: (res) => { - _space.util.shopServerInfo = res.shopUrl; - _space.util.mapServerInfo = res.mapUrl; - _space.initLoadMapFile(options); - }, - fail: () => { - _space.backObj.code = 404; - _space.backObj.msg = "地图数据获取失败"; - _space.callBackLoadOver(_space.backObj); - _space.callBackLoadOver = null; - }, - }); - }, - }); - } else { - if (options.mapData) { - try { - _space.util.allMap = JSON.parse(options.mapData.mapData); - console.log("地图数据更新时间: " + options.mapData.updateTime); - } catch (e) { - window.captureException && window.captureException(e); - console.log(e); - _space.backObj.code = 404; - _space.backObj.msg = "地图数据JSON格式错误"; - _space.callBackLoadOver(_space.backObj); - return; - } - _space.util.shopData = options.shopData; - _space.initOptions(options); - } else { - _space.initLoadMapFile(options); - } - } - }, - - initLoadMapFile: function (options) { - let _space = this; - _space.util.readTextFile(_space.util.mapServerInfo, function (res) { - if (res) { - try { - if (Array.isArray(res.data)) { - for (let map of res.data) { - _space.util.allMap = JSON.parse(map.mapData); - } - } else { - _space.util.allMap = JSON.parse(res.data.mapData); - console.log("地图数据更新时间: " + res.data.updateTime); - } - } catch (e) { - window.captureException && window.captureException(e); - console.log(e); - _space.backObj.code = 404; - _space.backObj.msg = "地图数据JSON格式错误"; - _space.callBackLoadOver(_space.backObj); - _space.callBackLoadOver = null; - return; - } - _space.util.readTextFile(_space.util.shopServerInfo, function (res) { - _space.util.shopData = []; - if (res) { - console.log("shopData: ",res.data); - res.data.forEach((item) => { - for (let shop of item) { - _space.util.shopData.push(...shop.shopList); - } - }); - } - _space.initOptions(options); - }); - } else { - _space.backObj.code = 404; - _space.backObj.msg = "地图数据JSON格式错误"; - _space.callBackLoadOver(_space.backObj); - _space.callBackLoadOver = null; - return; - } - }); - }, - - initOptions: function (options) { - //初始化参数 - if (this.util.allMap[this.util.selectBuild].playSpeed) { - this.util.allMap[this.util.selectBuild].hasOwnProperty("scale") && (this.util.options.mapScale = parseInt(this.util.allMap[this.util.selectBuild].scale)); - this.util.allMap[this.util.selectBuild].hasOwnProperty("playSpeed") && (this.util.options.playSpeed = parseInt( this.util.allMap[this.util.selectBuild].playSpeed)); - this.util.allMap[this.util.selectBuild].hasOwnProperty("collision") && (this.util.options.collision = this.util.allMap[this.util.selectBuild].collision); - this.util.allMap[this.util.selectBuild].hasOwnProperty("navColor") && (this.util.options.navColor = this.util.allMap[this.util.selectBuild].navColor); - this.util.allMap[this.util.selectBuild].hasOwnProperty("aRadius") && (this.util.options.aRadius = parseInt( this.util.allMap[this.util.selectBuild].aRadius)); - this.util.allMap[this.util.selectBuild].hasOwnProperty("boxShop") && (this.util.options.boxShop = this.util.allMap[this.util.selectBuild].boxShop.split(",")); - this.util.allMap[this.util.selectBuild].hasOwnProperty("shopStyle") && (this.util.options.shopStyle = this.util.allMap[this.util.selectBuild].shopStyle); - this.util.allMap[this.util.selectBuild].hasOwnProperty("modelIcon") && (this.util.options.modelIcon = this.util.allMap[this.util.selectBuild].modelIcon); - this.util.allMap[this.util.selectBuild].hasOwnProperty("facSize") && (this.util.options.facSize = this.util.allMap[this.util.selectBuild].facSize); - this.util.allMap[this.util.selectBuild].hasOwnProperty("m_scale") && (this.util.sceneGap.scale = this.util.allMap[this.util.selectBuild].m_scale); - //根据地图大小同步修改字体大小 - spriteScale = 0.2-(this.util.sceneGap.scale-0.08); - - if (this.util.allMap[this.util.selectBuild].hasOwnProperty("m_shadow")) { - this.util.options.shadow = this.util.allMap[this.util.selectBuild].m_shadow; - } - - this.hemiLight.color = new THREE.Color(this.util.allMap[this.util.selectBuild].s_col || "#fffff0"); - this.hemiLight.groundColor = new THREE.Color(this.util.allMap[this.util.selectBuild].g_col || "#ffffff"); - this.hemiLight.intensity = this.util.allMap[this.util.selectBuild].a_int || 0.6; - this.shawLight.color = new THREE.Color( this.util.allMap[this.util.selectBuild].d_col || "#ffffff"); - this.shawLight.intensity = this.util.allMap[this.util.selectBuild].d_int || 0.3; - - if (this.util.allMap[this.util.selectBuild].c_site && this.util.allMap[this.util.selectBuild].c_site.split(",")) { - this.util.sceneGap.cameraX = parseInt(this.util.allMap[this.util.selectBuild].c_site.split(",")[0]) || this.util.sceneGap.cameraX; - this.util.sceneGap.cameraY = parseInt(this.util.allMap[this.util.selectBuild].c_site.split(",")[1]) || this.util.sceneGap.cameraY; - this.util.sceneGap.cameraZ = parseInt(this.util.allMap[this.util.selectBuild].c_site.split(",")[2]) || this.util.sceneGap.cameraZ; - } - if (this.util.allMap[this.util.selectBuild].m_site && this.util.allMap[this.util.selectBuild].m_site.split(",")) { - this.util.sceneGap.x = parseInt(this.util.allMap[this.util.selectBuild].m_site.split(",")[0]) || this.util.sceneGap.x; - this.util.sceneGap.y = parseInt(this.util.allMap[this.util.selectBuild].m_site.split(",")[1]) || this.util.sceneGap.y; - this.util.sceneGap.z = parseInt(this.util.allMap[this.util.selectBuild].m_site.split(",")[2]) || this.util.sceneGap.z; - } - if (this.util.allMap[this.util.selectBuild].m_zoom) { - this.util.m_zoom = this.util.allMap[this.util.selectBuild].m_zoom; - } - } - let { playSpeed, collision, modelIcon, shopStyle, shadow, otherPath, navColor, iconUrl, iconName, inArea, pathColor, pathStyle} = options; - - this.util.options.playSpeed = playSpeed != undefined ? playSpeed : this.util.options.playSpeed; - this.util.options.collision = collision != undefined ? collision : this.util.options.collision; - this.util.options.modelIcon = modelIcon != undefined ? modelIcon : this.util.options.modelIcon; - this.util.options.shadow = shadow != undefined ? shadow : this.util.options.shadow; - this.util.options.shopStyle = shopStyle != undefined ? shopStyle : this.util.options.shopStyle; - this.util.options.otherPath = otherPath != undefined ? otherPath : this.util.options.otherPath; - this.util.options.navColor = navColor != undefined ? navColor : this.util.options.navColor; - this.util.options.iconName = iconName != undefined ? iconName : this.util.options.iconName; - this.util.options.inArea = inArea != undefined ? inArea : this.util.options.inArea; - this.util.options.pathColor = pathColor != undefined ? pathColor : this.util.options.pathColor; - this.util.options.pathStyle = pathStyle != undefined ? pathStyle : this.util.options.pathStyle; - this.util.iconUrl = iconUrl != undefined ? iconUrl : []; - this.renderer.shadowMap.enabled = this.util.options.shadow; - this.shawLight.castShadow = this.util.options.shadow; //阴影 - - if (!isNaN(Number(options.floor))) { - this.util.startObj.floor = this.util.deviceObj.floor = parseInt(options.floor) || 0; - } else { - if (Array.isArray(this.util.allMap)) { - for (var iii = 0; iii < this.util.allMap[this.util.startObj.build].buildArr.length; iii++) { - if (this.util.allMap[this.util.startObj.build].buildArr[iii].name == options.floor) { - this.util.startObj.floor = this.util.deviceObj.floor = this.util.allMap[this.util.startObj.build].buildArr[iii].order; - break; - } - } - } - } - // - for (let k = 0; k < this.util.allMap.length; k++) { - for (let kk = 0; kk < this.util.allMap[k].buildArr.length; kk++) { - let floor = this.util.allMap[k].buildArr[kk].mapData; - if (floor.models) { - for (let t = 0; t < floor.models.length; t++) { - for (let i = 0; i < this.util.modelStr.length; i++) { - if (floor.models[t].type == this.util.modelStr[i].key) { - this.util.modelStr[i].load = true; - break; - } - } - } - } - } - } - - try { - this.initOutModel(); - } catch (e) { - window.captureException && window.captureException(e); - this.callBackLoadOver({ code: 404, msg: "地图数据解析失败" }); - this.callBackLoadOver = null; - } - }, - //加载全局模型 - initOutModel: function () { - let _this = this; - if (this.util.initModelArr && this.util.initModelArr.length > 0) { - for (let i = 0; i < _this.util.initModelArr.length; i++) { - let loader = new THREE.GLTFLoader(); - loader.load( _this.util.beforPath + _this.util.initModelArr[i].url, - function (collada) { - collada.scene.scale.x = collada.scene.scale.y =collada.scene.scale.z = _this.util.initModelArr[i].scale; - collada.scene.position.set( _this.util.initModelArr[i].site.x, _this.util.initModelArr[i].site.y,_this.util.initModelArr[i].site.z); - collada.scene.rotation.set((_this.util.initModelArr[i].rot.x * Math.PI) / 180, (_this.util.initModelArr[i].rot.y * Math.PI) / 180,(_this.util.initModelArr[i].rot.z * Math.PI) / 180); - collada.scene.userData.type = _this.util.initModelArr[i].type; - for (let k = 0; k < collada.animations.length; k++) { - let mixer = new THREE.AnimationMixer(collada.scene); - mixer.clipAction(collada.animations[k]).play(); - _this.mixers.push(mixer); - } - ////////////////////////////////////////////// - collada.scene.traverse(function (child) { - if (child.type === "Mesh") { - child.castShadow = _this.util.options.shadow; - child.receiveShadow = _this.util.options.shadow; - child.userData.opacity = child.material.opacity; - if (child.material.map) { - child.material.map.encoding = THREE.LinearEncoding; //贴图需要转换成 线性编码 - } - } - }); - collada.scene.name = "model"; //删除其它元素时过滤 - if (_this.util.initModelArr[i].type == "out") { - _this.outModelGap.add(collada.scene); - } else if (_this.util.initModelArr[i].type == "periphery") { - _this.peripheryGap.add(collada.scene); - } - } - ); - if (i == _this.util.initModelArr.length - 1) { - for (let u = 0; u < _this.util.tipArr.length; u++) { - let prite = document.createElement("div"); - prite.style.zIndex = _this.util.tipArr[u].zIndex || 20; - prite.innerHTML = _this.util.tipArr[u].htmlUrl; - if (!_this.util.tipArr[u].click) { - prite.style.pointerEvents = "none"; - } - let pointLabel2 = new THREE.CSS2DObject(prite); - pointLabel2.position.set(_this.util.tipArr[u].x, _this.util.tipArr[u].z, _this.util.tipArr[u].y); - pointLabel2.userData.type = "2d_IP"; - pointLabel2.userData.show = _this.util.tipArr[u].show; - pointLabel2.userData.name = _this.util.tipArr[u].name || ""; - if (pointLabel2.userData.show == language) { - pointLabel2.element.style.visibility = "visible"; - } else { - pointLabel2.element.style.visibility = "hidden"; - } - if (_this.util.tipArr[u].type == "out") { - _this.outObject.add(pointLabel2); - } else if (_this.util.tipArr[u].type == "periphery") { - _this.perObject.add(pointLabel2); - } - } - _this.initBuild(); - } - } - } else { - _this.util.changeDist.inner = _this.util.options.maxDis; - _this.initBuild(); - } - }, - changePerTag: function (str) { - if (mapState == "periphery") { - Map_QM.perObject.traverse(function (child) { - if (child.userData && child.userData.show) { - if (child.userData.show.includes(str)) { - child.element.style.visibility = "visible"; - } else { - child.element.style.visibility = "hidden"; - } - } - }); - Map_QM.peripheryGap.children[0].traverse(function (obj) { - if (obj.name == "road") { - obj.traverse(function (child) { - if (child.type === "Mesh" && child.name.search("road_") != -1) { - child.visible = false; - } - }); - } - }); - } - }, - initBuild: function () { - this.util.pathStateObj.elevator = null; - this.util.pathStateObj.straight = null; - this.util.pathStateObj.elevatorDown = null; - let loader2 = new THREE.GLTFLoader(); - let _this = this; - loader2.load(this.util.beforPath + "static/img/zhong.glb", - function (collada2) { - collada2.scene.scale.x = collada2.scene.scale.y = collada2.scene.scale.z = 100; - collada2.scene.applyMatrix4(_this.sceneGap.matrix); - collada2.scene.renderOrder = 200; - collada2.scene.traverse(function (child) { - if (child.type === "Mesh") { - child.castShadow = _this.util.options.shadow; - child.receiveShadow = _this.util.options.shadow; - child.userData.opacity = child.material.opacity; - if (child.material.map) { - child.material.map.encoding = THREE.LinearEncoding; //贴图需要转换成 线性编码 - } - } - }); - collada2.scene.name = "Z-model"; - for (let k = 0; k < collada2.animations.length; k++) { - let mixer = new THREE.AnimationMixer(collada2.scene); - mixer.clipAction(collada2.animations[k]).play(); - Map_QM.mixers.push(mixer); - } - _this.endModel = collada2.scene; - _this.scene.add(collada2.scene); - _this.endModel.visible = false; - } - ); - - let spriteMap = new THREE.TextureLoader().load( - _this.util.beforPath + "static/img/Z.png" - ); - let spriteMaterial = new THREE.SpriteMaterial({ - //sizeAttenuation: false 禁止跟随鼠标缩放 - map: spriteMap, - depthTest: true, - transparent: true, - alphaTest: 0.5, - }); - _this.endIcon = new MySprite_QM(spriteMaterial); - _this.endIcon.scale.set(100, 120, 1); - _this.endIcon.center = new THREE.Vector2(0.5, 0); - _this.endIcon.position.set(0, 55, 0); - _this.endIcon.applyMatrix4(_this.sceneGap.matrix); - _this.endIcon.renderOrder = 300; - _this.endIcon.visible = false; - _this.endIcon.name = "Z-model"; - _this.scene.add(_this.endIcon); - if (_this.util.options.modelIcon) { - let loader = new THREE.GLTFLoader(); - loader.load(_this.util.beforPath + "static/img/elevator.gltf", - function (collada) { - collada.scene.scale.x = collada.scene.scale.y = collada.scene.scale.z = _this.util.options.facSize || 20; - collada.scene.rotation.x = (-90 * Math.PI) / -180; - collada.scene.renderOrder = 300; - _this.util.pathStateObj.elevator = collada.scene; - - new THREE.GLTFLoader().load(_this.util.beforPath + "static/img/elevatorDown.gltf", - function (collada) { - collada.scene.scale.x = collada.scene.scale.y = collada.scene.scale.z = _this.util.options.facSize || 20; - collada.scene.rotation.x = (-90 * Math.PI) / -180; - collada.scene.renderOrder = 300; - _this.util.pathStateObj.elevatorDown = collada.scene; - - new THREE.GLTFLoader().load(_this.util.beforPath + "static/img/dt.gltf", - function (collada) { - collada.scene.scale.x = collada.scene.scale.y = collada.scene.scale.z = _this.util.options.facSize || 20; - collada.scene.rotation.x = (-90 * Math.PI) / -180; - collada.scene.renderOrder = 300; - _this.util.pathStateObj.straight = collada.scene; - _this.index = 0; - _this.initTreeModel(); - } - ); - } - ); - } - ); - } else { - _this.index = 0; - _this.initTreeModel(); - } - }, - loaderOver: function () { - this.sceneGap = new THREE.Group(); - this.sceneGap.scale.set(this.util.sceneGap.scale, this.util.sceneGap.scale, this.util.sceneGap.scale); - this.scene.add(this.sceneGap); - this.buildObj = new THREE.Group(); - this.sceneGap.add(this.buildObj); - this.CSSObject = new THREE.Object3D(); - if (this.moveFloorbg) { - this.moveFloorbg.userData.type = "moveFloor"; - this.CSSObject.add(this.moveFloorbg); - } - this.CSSObject.add(this.outObject); - this.CSSObject.add(this.perObject); - this.buildObj.add(this.CSSObject); - this.buildObj.add(this.dtLineGroup); - this.initGuide(); - if (!this.util.options.deviceAng) { - this.cameraPerspective.position.set(this.util.sceneGap.cameraX, this.util.sceneGap.cameraY, this.util.sceneGap.cameraZ ); - this.cameraPerspective.updateProjectionMatrix(); //必须update - this.controls.target.set(this.util.sceneGap.x, this.util.sceneGap.y, this.util.sceneGap.z); - } - let pathData = this.util.allMap[parseInt(this.util.deviceObj.build)].buildArr[parseInt(this.util.deviceObj.floor)].mapData.path; - pathData && pathData.nodes.sort(this.util.sortNode); - if (parseInt(this.util.deviceObj.node) != -1) { - if (pathData &&pathData.nodes.length > parseInt(this.util.deviceObj.node)) { - this.util.deviceObj.xaxis = pathData.nodes[parseInt(this.util.deviceObj.node)].x; - this.util.deviceObj.yaxis = pathData.nodes[parseInt(this.util.deviceObj.node)].y; - } - } - this.util.pathStateObj.facAllArr = []; - this.mapArr.length = 0; - this.util.pathStateObj.basePath = "{"; - for (let bd = 0; bd < this.util.allMap.length; bd++) { - for (let i = 0; i < this.util.allMap[bd].buildArr.length; i++) { - this.convertPath(bd, i); - } - } - if (this.util.pathStateObj.basePath.length > 1) { - this.util.pathStateObj.basePath = this.util.pathStateObj.basePath.substr(0,this.util.pathStateObj.basePath.length - 1); - } - this.util.pathStateObj.basePath += "}"; - let bjP = JSON.parse(this.util.pathStateObj.basePath); - if (this.util.options.otherPath) { - //如果多楼栋需要配置楼栋之间通行路径 - for (let item of this.util.options.otherPath) { - bjP[item.f][item.s] = item.d; - bjP[item.s][item.f] = item.d; - } - } - //初始化基础路径; - let jcStr = JSON.stringify(bjP); - let graphPathObj = JSON.parse(jcStr); - let ftPathObj = JSON.parse(jcStr); - let dtPathObj = JSON.parse(jcStr); - let basePathObj = JSON.parse(jcStr); - try { - for (let j = 0; j < this.util.pathStateObj.facAllArr.length; j++) { - for (let k = 0; k < this.util.pathStateObj.facAllArr[j].length; k++) { - let facP =this.util.pathStateObj.facAllArr[j][k].buildOrder +"_" + this.util.pathStateObj.facAllArr[j][k].floorOrder +"_" +this.util.pathStateObj.facAllArr[j][k].navCode; - for (let h = 0; h < this.util.pathStateObj.facAllArr[j].length; h++) { - if (h != k && this.util.pathStateObj.facAllArr[j][k].buildOrder ==this.util.pathStateObj.facAllArr[j][h].buildOrder) { - let nP =this.util.pathStateObj.facAllArr[j][h].buildOrder +"_" +this.util.pathStateObj.facAllArr[j][h].floorOrder +"_" + this.util.pathStateObj.facAllArr[j][h].navCode; - if (this.util.pathStateObj.facAllArr[j][h].facCode == "dt") { - ftPathObj[facP][nP] =200000 +2000 * Math.abs(parseInt(this.util.pathStateObj.facAllArr[j][h].floorOrder)-parseInt(this.util.pathStateObj.facAllArr[j][k].floorOrder)); - if (this.util.pathStateObj.seldtFacNo.type == "dt" &&this.util.pathStateObj.facAllArr[j][k].no == this.util.pathStateObj.seldtFacNo.no) { - graphPathObj[facP][nP] =2000 +300 *Math.abs(parseInt( this.util.pathStateObj.facAllArr[j][h].floorOrder) - parseInt(this.util.pathStateObj.facAllArr[j][k].floorOrder)); - } else { - graphPathObj[facP][nP] =5000 +600 * Math.abs(parseInt(this.util.pathStateObj.facAllArr[j][h].floorOrder) -parseInt(this.util.pathStateObj.facAllArr[j][k].floorOrder)); - } - dtPathObj[facP][nP] = 5000 +800 *Math.abs(parseInt(this.util.pathStateObj.facAllArr[j][h].floorOrder)-parseInt(this.util.pathStateObj.facAllArr[j][k].floorOrder)); - basePathObj[facP][nP] = 600 +200 * Math.abs(parseInt(this.util.pathStateObj.facAllArr[j][h].floorOrder) - parseInt(this.util.pathStateObj.facAllArr[j][k].floorOrder )); - } else if ( - this.util.pathStateObj.facAllArr[j][h].facCode == "td" - ) { - graphPathObj[facP][nP] =4000 +800 * Math.abs( parseInt( this.util.pathStateObj.facAllArr[j][h].floorOrder) - parseInt(this.util.pathStateObj.facAllArr[j][k].floorOrder)); - ftPathObj[facP][nP] = 4000 +800 * Math.abs(parseInt(this.util.pathStateObj.facAllArr[j][h].floorOrder) -parseInt(this.util.pathStateObj.facAllArr[j][k].floorOrder )); - dtPathObj[facP][nP] = 4000 + 800 * Math.abs(parseInt(this.util.pathStateObj.facAllArr[j][h].floorOrder) - parseInt(this.util.pathStateObj.facAllArr[j][k].floorOrder)); - basePathObj[facP][nP] = 800 *Math.abs(parseInt(this.util.pathStateObj.facAllArr[j][h].floorOrder) -parseInt( this.util.pathStateObj.facAllArr[j][k].floorOrder )); - } else { - dtPathObj[facP][nP] =200000 +2000 * Math.abs(parseInt( this.util.pathStateObj.facAllArr[j][h].floorOrder) - parseInt(this.util.pathStateObj.facAllArr[j][k].floorOrder) ); - if (this.util.pathStateObj.seldtFacNo.type == "ft" &&this.util.pathStateObj.seldtFacNo.no.search(this.util.pathStateObj.facAllArr[j][k].no + ",") != -1) { - graphPathObj[facP][nP] = 2000 + 300 *Math.abs( parseInt(this.util.pathStateObj.facAllArr[j][h].floorOrder) -parseInt(this.util.pathStateObj.facAllArr[j][k].floorOrder)); - } else { - graphPathObj[facP][nP] = 5000 +600 * Math.abs( parseInt(this.util.pathStateObj.facAllArr[j][h].floorOrder) -parseInt(this.util.pathStateObj.facAllArr[j][k].floorOrder) ); - } - ftPathObj[facP][nP] = 5000 + 800 * Math.abs(parseInt(this.util.pathStateObj.facAllArr[j][h].floorOrder) -parseInt(this.util.pathStateObj.facAllArr[j][k].floorOrder)); - basePathObj[facP][nP] = 100 + 400 *Math.abs(parseInt(this.util.pathStateObj.facAllArr[j][h].floorOrder)-parseInt(this.util.pathStateObj.facAllArr[j][k].floorOrder)); - } - } - } - } - } - } catch (e) { - window.captureException && window.captureException(e); - console.log("交通设施点位问题: " + e); - } - - this.util.pathStateObj.graphPath = graphPathObj; - this.util.pathStateObj.ftPath = ftPathObj; - this.util.pathStateObj.dtPath = dtPathObj; - this.util.pathStateObj.basePath = basePathObj; - var fIndex = 0, bIndex = 0; - this.mapArr[bIndex] = []; - this.spriteList[bIndex] = []; - intTimer = setInterval(() => { - if (!Map_QM.util.allMap[bIndex].buildArr[fIndex]) { - clearInterval(intTimer); - this.initFloor(); - return; - } - if (!this.spriteList[bIndex]) { - this.spriteList[bIndex] = []; - } - this.spriteList[bIndex].push([]); - let floor = new FloorMap_QM(bIndex, fIndex, Map_QM.util.allMap[bIndex].buildArr[fIndex].name ); - floor.floorName = Map_QM.util.allMap[bIndex].buildArr[fIndex].name; - floor.initDraw(); - floor.allObj.position.set(bIndex * Map_QM.util.options.bSpace, 0, 0); - if (fIndex != parseInt(Map_QM.util.deviceObj.floor)) { - floor.allObj.visible = false; - } - this.buildObj.add(floor.allObj); - this.mapArr[bIndex].push(floor); - fIndex++; - if (fIndex >= Map_QM.util.allMap[bIndex].buildArr.length) { - if (bIndex == Map_QM.util.allMap.length - 1) { - clearInterval(intTimer); - let pathData = Map_QM.util.allMap[parseInt(Map_QM.util.deviceObj.build)].buildArr[parseInt(Map_QM.util.deviceObj.floor)].mapData.path; - if (Map_QM.util.deviceObj.xaxis) { - Map_QM.mapArr[parseInt(Map_QM.util.deviceObj.build)][parseInt(Map_QM.util.deviceObj.floor)].setStartSite(Map_QM.util.deviceObj.xaxis,Map_QM.util.deviceObj.yaxis, parseInt(Map_QM.util.shopHeight) + 20); - } else { - if (parseInt(Map_QM.util.deviceObj.node) != -1) { - pathData && pathData.nodes.sort(Map_QM.util.sortNode); - if (pathData &&!Map_QM.util.deviceObj.xaxis && pathData.nodes.length > parseInt(Map_QM.util.deviceObj.node) && parseInt(Map_QM.util.deviceObj.node) >= 0) { - Map_QM.util.deviceObj.xaxis = pathData.nodes[parseInt(Map_QM.util.deviceObj.node)].x; - Map_QM.util.deviceObj.yaxis = pathData.nodes[parseInt(Map_QM.util.deviceObj.node)].y; - } else { - console.warn("初始化点位失败"); - } - Map_QM.mapArr[parseInt(Map_QM.util.deviceObj.build)][parseInt(Map_QM.util.deviceObj.floor)].setStartSite(Map_QM.util.deviceObj.xaxis,Map_QM.util.deviceObj.yaxis,parseInt(Map_QM.util.shopHeight) + 20); - } - } - this.initFloor(); - } else { - bIndex++; - fIndex = 0; - this.mapArr[bIndex] = []; - } - } - }, 0); - }, - beforeDestroy: function () { - if (this.scene) { - this.controls && this.controls.dispose(); - this.renderer.renderLists && this.renderer.renderLists.dispose(); - this.renderer.dispose && this.renderer.dispose(); - this.renderer.forceContextLoss(); - let gl = this.renderer.domElement.getContext('webgl'); - gl && gl.getExtension('WEBGL_lose_context').loseContext(); - this.util.pathStateObj.basePath = null; - this.ele.removeEventListener("touchmove", this.mouseMove); - this.ele.removeEventListener("click", this.onMouseClickBox); //地图点击 - this.ele.removeEventListener("touchend", this.mouseUp); - this.controls.removeEventListener("change", this.controlsChock); - document.removeEventListener("resize", this.changeDocmentResize); //窗口变化 - this.remove_child(this.sceneGap); - this.scene.remove(this.sceneGap); - while (this.ele.firstChild) { - this.ele.firstChild.remove(); - } - this.renderer.domElement = null; - this.renderer.content = null; - this.renderer = null; - this.scene.clear(); - this.scene = null; - this.camera = null; - this.controls = null; - this.util.spriteMaterialArr = []; - this.util.lineBasicMaterialArr = []; - this.util.meshMaterialArr = []; - this.util.parkMaterialArr = []; - this.util.shopData = []; //店铺数据 - this.util.iconUrl = []; - this.util.allMap = []; - this.util = null; - Map_QM = null; - } - }, - /** - * @api {方法} changeLanguage() 切换中英文 - * @apiGroup 地图交互 - * @apiDescription 切换中英文 zh en - * @apiVersion 1.0.0 - * @apiParam {String} str 显示语言 - * - * @apiSampleRequest off - * - * @apiParamExample {String} 请求示例 - * - * Map_QM.changeLanguage("en"); - * - */ - changeLanguage: function (lang = "zh") { - language = lang; - for (let t = 0; t < Map_QM.mapArr.length; t++) { - for (let i = 0; i < Map_QM.mapArr[t].length; i++) { - Map_QM.mapArr[t][i].showTagObj.traverse((obj) => { - if (obj.element) { - obj.element.style.opacity = obj.userData.show != lang ? 0 : 1; - } - }); - } - } - for (let t = 0; t < Map_QM.mapArr.length; t++) { - for (let i = 0; i < Map_QM.mapArr[t].length; i++) { - let childs = Map_QM.spriteList[t][i]; - childs.forEach((item) => { - item.text = lang == "en" ? (item.userData.nameEn||item.userData.name) : item.userData.name; - }); - } - } - Map_QM.outObject.traverse((obj) => { - if (obj.element && mapState == "out") { - obj.element.style.visibility = obj.userData.show == lang ? "visible" : "hidden"; - } - }); - Map_QM.perObject.traverse((obj) => { - if (obj.element && mapState == "periphery") { - obj.element.style.visibility = obj.userData.show == lang ? "visible" : "hidden"; - } - }); - Map_QM.controlsChock(); - }, - initTreeModel: function () { - if (this.index < this.util.modelStr.length - 1) { - if (this.util.modelStr[this.index].load) { - this.gltfLoad(this.util.beforPath + this.util.modelStr[this.index].url); - } else { - this.index++; - this.initTreeModel(); - } - } else { - if (this.util.allMap && this.util.allMap.length > 0) { - this.loaderOver(); - } - } - }, - gltfLoad: function (url) { - let sopce = this; - new THREE.GLTFLoader().load(url, function (object) { - //加载路径fbx文件 - object.scene.traverse(function (child) { - if (child.type === "Mesh") { - child.castShadow = sopce.util.options.shadow; - child.receiveShadow = sopce.util.options.shadow; - if (child.material.map) { - child.material.map.encoding = THREE.LinearEncoding; //贴图需要转换成 线性编码 - } - if (sopce.util.modelStr[sopce.index].colorModel === "gama") { - child.material.color.convertGammaToLinear(0.6); - } - } - }); - object.scene.children[0].scale.set( - sopce.util.modelStr[sopce.index].size.x, - sopce.util.modelStr[sopce.index].size.y, - sopce.util.modelStr[sopce.index].size.z - ); - sopce.util.fbxModels.push({key: sopce.util.modelStr[sopce.index].key,obj: object, operation: sopce.util.modelStr[sopce.index],}); - if (sopce.index < sopce.util.modelStr.length - 1) { - sopce.index++; - sopce.initTreeModel(); - } else { - if (sopce.util.allMap && sopce.util.allMap.length > 0) { - sopce.loaderOver(); - } - } - }); - }, - initGuide: function () { - let _this = this; - new THREE.GLTFLoader().load( - this.util.beforPath + "static/img/runman.gltf", - function (obj) { - obj.scene.scale.x = obj.scene.scale.y =obj.scene.scale.z = _this.util.options.facSize || 20; - obj.scene.children[0].children[1].children[0].material.color = new THREE.Color(0xfe9219); - _this.sceneGap.add(obj.scene); - obj.scene.traverse(function (child) { - if (child.type === "SkinnedMesh") { - child.material.map && (child.material.map.encoding = THREE.LinearEncoding); //贴图需要转换成 线性编码 - } - }); - obj.scene.visible = false; - obj.scene.children[0].rotation.x = Math.PI / 2; - obj.scene.children[0].rotation.y = Math.PI; - // obj作为参数创建一个混合器,解析播放obj及其子对象包含的动画数据 - let mixer = new THREE.AnimationMixer(obj.scene); - let AnimationAction = mixer.clipAction(obj.animations[0]); - AnimationAction.timeScale = 2; - AnimationAction.play(); - _this.mixers.push(mixer); - _this.man_3d = obj.scene; - _this.guide = _this.man_3d; - } - ); - - new THREE.GLTFLoader().load( - this.util.beforPath + "static/img/guide.glb", - function (obj) { - obj.scene.scale.x =obj.scene.scale.y = obj.scene.scale.z = _this.util.options.facSize * 5 || 100; - obj.scene.visible = false; - obj.scene.children[0].rotation.x = Math.PI / 2; - obj.scene.traverse(function (child) { - if (child.type === "Mesh") { - child.castShadow = _this.util.options.shadow; - child.receiveShadow = _this.util.options.shadow; - child.userData.opacity = child.material.opacity; - if (child.material.map) { - child.material.map.encoding = THREE.LinearEncoding; //贴图需要转换成 线性编码 - } - } - }); - for (let k = 0; k < obj.animations.length; k++) { - let mixer = new THREE.AnimationMixer(obj.scene); - mixer.clipAction(obj.animations[k]).play(); - _this.mixers.push(mixer); - } - _this.man_2d = obj.scene; - _this.man_2d.renderOrder = 160; - _this.sceneGap.add(_this.man_2d); - } - ); - }, - initFloor: function () { - this.controls.saveState(); - this.changeBuild(this.util.deviceObj.build, this.util.deviceObj.floor); - //初始化方向为第一人称方向 - this.util.options.deviceAng && this.rotationAngle(this.util.deviceObj.angle); - this.startRender(); - - setTimeout(() => { - Map_QM.controls.addEventListener("change", Map_QM.controlsChock); //控制器变化 - Map_QM.util.fbxModels = []; - let boundBox = new THREE.Box3(); - boundBox.setFromObject(Map_QM.sceneGap); - if (isNaN(boundBox.min.x) || isNaN(boundBox.min.y)) { - Map_QM.controls.minPan = new THREE.Vector3(Map_QM.w / -8,0,Map_QM.h / -8); - Map_QM.controls.maxPan = new THREE.Vector3(Map_QM.w / 8, 0,Map_QM.h / 8); - } else { - boundBox.min.x < -400 && (boundBox.min.x = boundBox.min.z); - boundBox.max.x > 400 && (boundBox.max.x = boundBox.max.z); - boundBox.min.z < -400 && (boundBox.min.z = boundBox.min.x); - boundBox.max.z > 400 && (boundBox.max.z = boundBox.max.x); - Map_QM.controls.minPan = boundBox.min; - Map_QM.controls.maxPan = boundBox.max; - } - console.log("Number of Triangles :", Map_QM.renderer.info.render.triangles); - if (Map_QM.util.initModelArr.length > 0) { - Map_QM.toOutModel(); - setTimeout(() => { - Map_QM.toOutModelInner(); - }, 1000); - } - }, 200); - }, - calcFov: function (d, w, r) { - let f; - let vertical = w; - if (r < 1) { - vertical = vertical / r; - } - f = Math.atan(vertical / d / 2) * 2 * (180 / Math.PI); - return f; - }, - /** - * 解析路径 - */ - convertPath: function (buildOrder, floorOrder) { - let mapDataA = this.util.allMap[buildOrder].buildArr[floorOrder].mapData; - let pathData = mapDataA.path; - if (!pathData) { - return; - } - if (pathData.nodes.length > 0) { - pathData.nodes.sort(this.util.sortNode); - for (let i = 0; i < pathData.nodes.length; i++) { - let a = pathData.nodes[i].id; - this.util.pathStateObj.basePath += '"' + buildOrder + "_" + floorOrder + "_" + a + '":{'; - for (let n = 0; n < pathData.nodes[i]["list"].length; n++) { - let b; - if (pathData.nodes[i]["list"][n].id ||pathData.nodes[i]["list"][n].id == "0") { - b = pathData.nodes[i]["list"][n].id; - } else { - b = a == pathData.nodes[i]["list"][n].selfNode.id ? pathData.nodes[i]["list"][n].nextNode.id : pathData.nodes[i]["list"][n].selfNode.id; - } - this.util.pathStateObj.basePath +='"'+buildOrder+"_" +floorOrder +"_" +b +'":'+pathData.nodes[i]["list"][n].cost +","; - } - if (pathData.nodes[i]["list"].length > 0) { - this.util.pathStateObj.basePath = this.util.pathStateObj.basePath.substr(0,this.util.pathStateObj.basePath.length - 1); - } - this.util.pathStateObj.basePath += "},"; - } - } - let mindt = 10000, minupft = -1, mindownft = -1, seldtNo, seldownftNo, selupftNo; - - if (buildOrder == this.util.deviceObj.build &&floorOrder == this.util.deviceObj.floor &&parseInt(this.util.deviceObj.node) >= 0) { - if (pathData &&!this.util.deviceObj.xaxis &&pathData.nodes.length > parseInt(this.util.deviceObj.node) && parseInt(this.util.deviceObj.node) > 0 ) { - this.util.deviceObj.xaxis = pathData.nodes[parseInt(this.util.deviceObj.node)].x; - this.util.deviceObj.yaxis = pathData.nodes[parseInt(this.util.deviceObj.node)].y; - } - //获取本楼层最近的电梯 - for (let n = 0; n < mapDataA.stairs.length; n++) { - if ( mapDataA.stairs[n].state && mapDataA.stairs[n].no != "" && parseInt(mapDataA.stairs[n].navCode) > 0 ) { - let ms = Math.abs( parseInt(mapDataA.stairs[n].x) - parseInt(this.util.deviceObj.xaxis) ) + Math.abs( parseInt(mapDataA.stairs[n].y) - parseInt(this.util.deviceObj.yaxis) ); - if ( mindt > ms && (mapDataA.stairs[n].facCode == "ft" || - mapDataA.stairs[n].facCode == "upft" || - mapDataA.stairs[n].facCode == "downft" || - mapDataA.stairs[n].facCode == "dt") - ) { - mindt = ms; - let fac = mapDataA.stairs[n].facCode == "dt" ? "dt" : "ft"; - this.util.pathStateObj.seldtFacNo.type = fac; - if (mapDataA.stairs[n].facCode == "dt") { - seldtNo = mapDataA.stairs[n].no; - } - } - } - } - if (this.util.pathStateObj.seldtFacNo.type == "dt") { - this.util.pathStateObj.seldtFacNo.no = seldtNo; - } else { - for (let t = 0; t < this.util.allMap[buildOrder].buildArr.length; t++) { - let mapData = this.util.allMap[buildOrder].buildArr[t].mapData; - minupft = 100000; - mindownft = 100000; - selupftNo = ""; - seldownftNo = ""; - for (let h = 0; h < mapData.stairs.length; h++) { - if (mapData.stairs[h].state && mapData.stairs[h].no != "" && parseInt(mapData.stairs[h].navCode) > 0) { - let ms = Math.abs(parseInt(mapData.stairs[h].x) - parseInt(this.util.deviceObj.xaxis)) + - Math.abs(parseInt(mapData.stairs[h].y) - parseInt(this.util.deviceObj.yaxis)); - if (mapData.stairs[h].facCode == "upft" || mapData.stairs[h].downState) { - //上扶 - if (minupft > ms) { - minupft = ms; - selupftNo = mapData.stairs[h].no; - } - } else if (mapData.stairs[h].facCode == "downft" || mapData.stairs[h].upState) { - if (mindownft > ms) { - mindownft = ms; - seldownftNo = mapData.stairs[h].no; - } - } - } - } - //扶梯距离最小 - selupftNo != "" && (this.util.pathStateObj.seldtFacNo.no += selupftNo + ","); - seldownftNo != "" && (this.util.pathStateObj.seldtFacNo.no += seldownftNo + ","); - } - } - //console.log(this.util.pathStateObj.seldtFacNo); - } - - let noHas; - for (let j = 0; j < mapDataA.stairs.length; j++) { - if ( parseInt(mapDataA.stairs[j].navCode) > 0 && mapDataA.stairs[j].state) { - //排除禁用的设施 - noHas = true; - for (let k = 0; k < this.util.pathStateObj.facAllArr.length; k++) { - //Map_QM.util.pathStateObj.facAllArr 记录遍历结果 - if (this.util.pathStateObj.facAllArr[k][0].no != "" && - this.util.pathStateObj.facAllArr[k][0].navCode != "" && - parseInt(this.util.pathStateObj.facAllArr[k][0].navCode) > 0 && - this.util.pathStateObj.facAllArr[k][0].no == mapDataA.stairs[j].no - ) { - if (this.util.pathStateObj.facAllArr[k][0].facCode == mapDataA.stairs[j].facCode || - (this.util.pathStateObj.facAllArr[k][0].facCode.search("ft") != -1 && mapDataA.stairs[j].facCode.search("ft") != -1) - ) { - noHas = false; - mapDataA.stairs[j].floorOrder = floorOrder; - mapDataA.stairs[j].buildOrder = buildOrder; - this.util.pathStateObj.facAllArr[k].push(mapDataA.stairs[j]); - } - } - } - if (noHas) { - mapDataA.stairs[j].buildOrder = buildOrder; - mapDataA.stairs[j].floorOrder = floorOrder; - let array = [mapDataA.stairs[j]]; - this.util.pathStateObj.facAllArr.push(array); - } - } - } - }, - /** - * @api {方法} changeMapState("3d") 地图状态切换 - * @apiGroup 地图显示 - * @apiDescription 地图展示状态切换 - * @apiVersion 4.0.0 - * @apiParam {string} state 地图状态 - * - * @apiSampleRequest off - * - * @apiParamExample {String} 请求示例 - * - * Map_QM.changeMapState("2d"); - * - */ - changeMapState: function (state) { - if (state === "3d") { - Map_QM.shawLight.castShadow = Map_QM.util.options.shadow; - Map_QM.controls.maxPolarAngle = Math.PI / 2 - 0.2; - Map_QM.changeIconState(state); - } else { - Map_QM.shawLight.castShadow = false; - Map_QM.controls.maxPolarAngle = 0; - Map_QM.changeIconState(state); - } - Map_QM.controls.reset(); - Map_QM.util.options.deviceAng && Map_QM.rotationAngle(Map_QM.util.deviceObj.angle); - }, - - changeIconState: function (state, fIndex = -1) { - iconState = state; - fIndex = fIndex === -1 ? Map_QM.util.selectFloor : fIndex; - try{ - for (let i = 0; i < Map_QM.mapArr[Map_QM.util.selectBuild].length; i++) { - if (i == fIndex && Map_QM.buildObj.visible) { - Map_QM.mapArr[Map_QM.util.selectBuild][i].serObj.traverse((obj) => { - if (obj.userData && obj.userData.use) { - if (obj.userData.use != "all" && obj.userData.use != state) { - obj.visible = false; - obj.element && (obj.element.style.display = "none"); - } else { - obj.visible = true; - obj.element && (obj.element.style.display = ""); - } - } - }); - Map_QM.mapArr[Map_QM.util.selectBuild][i].allObj.traverse((item) => { - if (item.isMesh && item.userData.type) { - item.scale.z = iconState == "2d" ? 0.3 : 1; - } - }); - } - } - }catch(e){ - window.captureException && window.captureException(e); - console.log(e); - } - if (Map_QM.qiModel) { - Map_QM.qiModel.visible = state == "3d" ? true : false; - } - if (Map_QM.devModel) { - Map_QM.devModel.visible = state == "2d" && !Map_QM.util.pathStateObj.isPathState ? true : false; - } - if (Map_QM.qiIcon) { - Map_QM.qiIcon.visible = state == "2d" && Map_QM.util.pathStateObj.isPathState ? true : false; - } - }, - - /** - * @api {方法} changeBuild(buildOrder,floorOrder) 楼栋切换 - * @apiGroup 地图交互 - * @apiDescription 楼栋切换 传入楼栋编号,楼层编号 - * @apiVersion 4.0.0 - * @apiParam {int} buildOrder 传入楼栋编号(默认 0) - * @apiParam {int} floorOrder 传入楼栋编号(默认 0) - * - * @apiSampleRequest off - * - * @apiParamExample {int, int} 请求示例 - * - * Map_QM.changeBuild(0, 0); - * - */ - changeBuild: function (buildOrder = 0, floorOrder = 0) { - Map_QM.changeMapModel("3D"); - Map_QM.resetFloorState(); - Map_QM.controls.reset(); - Map_QM.util.options.deviceAng && Map_QM.rotationAngle(Map_QM.util.deviceObj.angle); - Map_QM.clearFloor(Map_QM.util.selectFloor); - this.changeBuildInner(buildOrder, floorOrder); - }, - - changeBuildInner: function (build = -1, fIndex = -1) { - fIndex = fIndex == -1 ? parseInt(Map_QM.util.deviceObj.floor) : fIndex; - build = build == -1 ? parseInt(Map_QM.util.deviceObj.build) : build; - Map_QM.util.selectBuild = build; - Map_QM.buildObj.position.x = -1 * build * Map_QM.util.options.bSpace; - Map_QM.changeFloorInner(build, fIndex); //结束后切换楼层 - renderCount = 0; - }, - - resetFloorState: function () { - TweenMax.killAll(true); - Map_QM.util.pathStateObj.isPathState = false; - Map_QM.controls.maxDistance = Map_QM.util.options.maxDis; - clearTimeout(Map_QM.util.timeObj.collTime); - Map_QM.controls.enabled = true; - Map_QM.controls.enableRotate = true; - Map_QM.controls.minAzimuthAngle = -Infinity; - Map_QM.controls.maxAzimuthAngle = Infinity; - Map_QM.util.pathStateObj.forShopArr = { direction: "", wayList: [] }; - if (Map_QM.guide && Map_QM.guide.visible) { - Map_QM.guide.visible = false; - } - if (Map_QM.endModel && Map_QM.endModel.visible) { - Map_QM.endModel.visible = false; - } - }, - /** - * @api {方法} showFloor(floorOrder) 通过楼层编号切换楼层 - * @apiGroup 地图交互 - * @apiDescription 楼层切换,传入楼层编号,编号从下到上排序,最下面是0 - * @apiVersion 4.0.0 - * - * @apiParam {int} floorOrder 楼层编号 - * - * @apiSampleRequest off - * - * @apiParamExample {int} 请求示例 - * - * Map_QM.showFloor(1); - * - */ - showFloor: function (fIndex = -1, callBack = undefined) { - if (!Map_QM.buildObj.visible) { - return; - } - Map_QM.util.isMorePath = false; - Map_QM.util.pathStateObj.isPathState = false; - Map_QM.changeStartPoint(); - isShowElement = true; - allJU = true; - Map_QM.changeMapModel("3D"); - Map_QM.resetFloorState(); - Map_QM.controls.reset(); - if (Map_QM.util.initModelArr.length > 0) { - Map_QM.controls.setDistance(Map_QM.util.changeDist.inner - 25); - Map_QM.controls.update(); - } - Map_QM.util.options.deviceAng && Map_QM.rotationAngle(Map_QM.util.deviceObj.angle); - Map_QM.clearFloor(fIndex); - Map_QM.elementDestroy("all"); - if (fIndex != -1) { - Map_QM.changeFloorInner(-1, fIndex, callBack); - } - }, - /** - * @api {方法} bindingShop(mesh,shop,isBinding) 绑定或解绑店铺 - * @apiGroup 地图交互 - * @apiDescription 给3D对象绑定数据 - * @apiVersion 4.0.0 - * - * @apiParam {Object3D} mesh 3D对象 - * @apiParam {Object} shop 要绑定的数据对象(houseNumber是必需属性)。解绑可以不传 - * @apiParam {Boolean} isBinding 默认true。 true是绑定,false是解绑 - * - * @apiSampleRequest off - * @apiParamExample 请求示例 - * - * Map_QM.bindingShop(mesh, {shopName:"shop",houseNumber:"L101",color:"", ...},true); - */ - bindingShop: function (mesh, shop, isBinding = true) { - if (!isBinding || (shop && shop.houseNumber)) { - for (let i = 0; i < Map_QM.util.allMap.length; i) { - for (let j = 0; j < Map_QM.util.allMap[i].buildArr.length; j++) { - let shopArea = Map_QM.util.allMap[i].buildArr[j].mapData.shopArea; - for (let k = 0; k < shopArea.length; k++) { - if (shopArea[k].id === mesh.userData.id) { - if (isBinding) { - shopArea[k].name = shop.houseNumber; //修改地图原始数据的box名称 - mesh.userData.shopData = shop; - mesh.name = shop.houseNumber; - if (shop.color) { - // 替换材质 - mesh.userData.initMaterial = mesh.material; - let meshMat = new THREE.MeshPhongMaterial({ - color: shop.color, - transparent: true, - opacity: mesh.material.opacity, - side: THREE.DoubleSide, - depthTest: true, - }); - Map_QM.util.meshMaterialArr.push(meshMat); - mesh.material = meshMat; - } - //添加名称标签 - let shopSpr = Map_QM.util.getTextMesh( - shop.shopName, - new THREE.Vector3( - mesh.xaxis >> 0, - (-1 * mesh.yaxis) >> 0, - mesh.zaxis - ) - ); - mesh.add(shopSpr); - Map_QM.spriteList[mesh.userData.build][ - mesh.userData.floor - ].push(shopSpr); - shopSpr.name = shop.houseNumber; - shopSpr.userData.mapShow = false; //是否永久显示 - shopSpr.userData.formatCode = ""; - shopSpr.userData.isShow = true; - shopSpr.userData.nameEn = shop.shopNameEn || shop.shopName; - shopSpr.userData.name = shop.shopName; - Map_QM.updateRender(); - Map_QM.collLabel(); - } else { - shopArea[k].name = "shop"; - mesh.userData.shopData = {}; - if (mesh.userData.initMaterial) { - mesh.material = mesh.userData.initMaterial; - } - //删除文本标签 - let labObj = - Map_QM.spriteList[mesh.userData.build][mesh.userData.floor]; - for (let j = 0; j < labObj.length; j++) { - if (labObj[j].name == mesh.name) { - labObj[j].removeFromParent(); - break; - } - } - } - return; - } - } - } - } - } - }, - /** - * @api {方法} queryAllMapData() 获取地图原始数据 - * @apiGroup 地图数据 - * @apiDescription 获取地图接口数据 - * @apiVersion 4.0.1 - * - * @apiSampleRequest off - * @apiParamExample {String} 请求示例 - * - * Map_QM.queryAllMapData(); - */ - queryAllMapData: function () { - return JSON.stringify({ - mallCode: Map_QM.util.mallCode, - MapInfo: Map_QM.util.allMap, - key: "Aeditor", - }); - }, - /** - * @api {方法} changeFloorByName(floorOrder) 通过楼层名称切换楼层 - * @apiGroup 地图交互 - * @apiDescription 楼层切换,传入楼层名称, - * @apiVersion 4.0.0 - * - * @apiParam {String} floorName 楼层名称 - * - * @apiSampleRequest off - * @apiParamExample {String} 请求示例 - * - * Map_QM.changeFloorByName("L1"); - */ - changeFloorByName: function (floorName) { - let floors = Map_QM.mapArr[Map_QM.util.selectBuild]; - for (let i = 0; i < floors.length; i++) { - if (floors[i].floorName == floorName) { - Map_QM.showFloor(floors[i].floorOrder); - return; - } - } - }, - /** - * @api {方法} changeFloorByCode(floorCode) 通过楼层code切换楼层 - * @apiGroup 地图交互 - * @apiDescription 楼层切换,传入楼层code, - * @apiVersion 4.0.0 - * - * @apiParam {String} floorCode 楼层code - * - * @apiSampleRequest off - * @apiParamExample {String} 请求示例 - * - * Map_QM.changeFloorByCode("Ek_MaiuKLPjakB1uB0uQV"); - */ - changeFloorByCode: function (floorCode) { - for (let kk = 0; kk < Map_QM.util.allMap.length; kk++) { - for (var iii = 0; iii < Map_QM.util.allMap[kk].buildArr.length; iii++) { - if (Map_QM.util.allMap[kk].buildArr[iii].code == floorCode) { - Map_QM.changeBuild(kk, iii); - return; - } - } - } - }, - changeFloorInner: function (build = -1,fIndex = -1,callBack = undefined) { - fIndex = fIndex != -1 ? fIndex : Map_QM.util.deviceObj.floor; - build = build != -1 ? build : Map_QM.util.deviceObj.build; - for (let t = 0; t < Map_QM.mapArr.length; t++) { - for (let i = 0; i < Map_QM.mapArr[t].length; i++) { - Map_QM.mapArr[t][i].allObj.visible = t == build ? true : false; - Map_QM.mapArr[t][i].CSSObj.traverse((obj) => { - obj.element && (obj.element.style.display = "none"); - }); - } - } - if (Map_QM.mapArr[build] && Map_QM.mapArr[build][fIndex]) { - Map_QM.mapArr[build][fIndex].allObj.visible = true; - } else { - return; - } - for (let i = 0; i < Map_QM.mapArr[build].length; i++) { - if (i == fIndex) { - Map_QM.mapArr[build][i].allObj.visible = true; - Map_QM.mapArr[build][i].CSSObj.traverse((obj) => { - obj.element && obj.userData.isShow && obj.userData.type == "icon" && (obj.element.style.display = ""); - }); - Map_QM.changeIconState(iconState, fIndex); - } else { - Map_QM.mapArr[build][i].allObj.visible = false; - } - if (i == Map_QM.mapArr[build].length - 1) { - if (build == Map_QM.util.selectBuild && fIndex == Map_QM.util.selectFloor ) { - if (callBack) callBack(); - Map_QM.timeOutInit(); - } else { - Map_QM.util.selectBuild = build; - Map_QM.util.selectFloor = fIndex; - if (Map_QM.util.options.shadow) { - TweenMax.fromTo( Map_QM.mapArr[Map_QM.util.selectBuild][Map_QM.util.selectFloor].allObj.position, - 0.2, - { z: Map_QM.util.options.fSpace }, - { z: 0, ease: Cubic.easeIn, - onComplete: function () { - Map_QM.timeOutInit(); - if (callBack) callBack(); - }, - } - ); - } else { - Map_QM.mapArr[Map_QM.util.selectBuild][Map_QM.util.selectFloor].allObj.position.z = 0; - Map_QM.timeOutInit(); - if (callBack) callBack(); - } - } - } - } - }, - /** - * @api {方法} onShowMeDir() 我的方向 - * @apiGroup 地图显示 - * @apiDescription 我的方向 - * @apiVersion 4.0.0 - * - * @apiSampleRequest off - * - * @apiParamExample 请求示例 - * - * Map_QM.onShowMeDir(); - * - */ - onShowMeDir: function () { - if (this.util.selectBuild != this.util.deviceObj.build || this.util.selectFloor != this.util.deviceObj.floor) { - this.changeFloorInner(this.util.deviceObj.build, this.util.deviceObj.floor); - } - this.onInnerMeDir(); - }, - onInnerMeDir: function () { - TweenMax.killAll(true); - this.changeMapModel("2D"); - Map_QM.controls.reset(); - clearTimeout(shopTime); - isJUZ = false; - Map_QM.controls.minPolarAngle = 0; - if (Map_QM.util.deviceObj.xaxis || Map_QM.util.deviceObj.yaxis) { - Map_QM.mapToPoint(Map_QM.util.deviceObj.xaxis, Map_QM.util.deviceObj.yaxis, 0 ); - } else { - Map_QM.mapToPoint(0, 0, 0); - } - Map_QM.rotationAngle(Map_QM.util.deviceObj.angle); - Map_QM.controls.enableRotate = false; - Map_QM.controls.setDistance(150); //放大 - Map_QM.updateRender(); - Map_QM.collLabel(); - }, - changeMapModel: function (model) { - if (model == "2D") { - Map_QM.changeIconState("2d"); - Map_QM.controls.maxPolarAngle = 0; - Map_QM.camera.updateProjectionMatrix(); - Map_QM.shawLight.castShadow = false; - } else { - Map_QM.changeIconState("3d"); - Map_QM.controls.maxPolarAngle = Math.PI / 2 - 0.02; - Map_QM.camera.updateProjectionMatrix(); - Map_QM.shawLight.castShadow = Map_QM.util.options.shadow; - } - Map_QM.updateRender(); - }, - /** - * @api {方法} toOutModel() 显示外立面模型 - * @apiGroup 地图显示 - * @apiDescription 显示外立面模型 - * @apiVersion 4.0.0 - * - * @apiSampleRequest off - * @apiParamExample {String} 请求示例 - * - * Map_QM.toOutModel(); - */ - toOutModel: function () { - TweenMax.killAll(true); - Map_QM.controls.setDistance(Map_QM.util.changeDist.inner + 25); - Map_QM.controls.update(); - Map_QM.disPlayEvent(); - renderCount = 0; - Map_QM.resetModel(); - }, - toOutModelInner: function () { - TweenMax.killAll(true); - Map_QM.emitChangeMap("out"); - Map_QM.hideFloor(); - Map_QM.buildObj.visible = false; - TweenMax.to(Map_QM.peripheryGap.scale, 0.3, { - y: 0.01, - ease: Quad.easeIn, - onComplete: function () { - Map_QM.hideObjecrGap(Map_QM.peripheryGap, false); //隐藏外立面 - Map_QM.hideObjecrGap(Map_QM.perObject, false); - }, - }); - if (!Map_QM.outModelGap.visible) { - Map_QM.hideObjecrGap(Map_QM.outModelGap, true); - Map_QM.hideObjecrGap(Map_QM.outObject, true); - TweenMax.to(Map_QM.outModelGap.scale, 0.6, { - y: 1, - ease: Quad.easeIn, - onComplete: function () { }, - }); - } else { - mapState = "out"; - } - Map_QM.rotateAngle(70); - startRotate = true; - }, - hideFloor: function () { - Map_QM.changeMapModel("3D"); - Map_QM.resetFloorState(); - Map_QM.clearFloor(); - Map_QM.hideInnerFloorElement(); - }, - /** - * @api {方法} toPeriphery() 显示周边模型 - * @apiGroup 地图显示 - * @apiDescription 显示周边模型 - * @apiVersion 4.0.0 - * - * @apiSampleRequest off - * @apiParamExample {String} 请求示例 - * - * Map_QM.toPeriphery(); - */ - toPeriphery: function () { - TweenMax.killAll(true); - Map_QM.controls.setDistance(Map_QM.util.changeDist.outner + 25); - Map_QM.controls.update(); - Map_QM.disPlayEvent(); - renderCount = 0; - }, - - toPeripheryInner: function () { - TweenMax.killAll(true); - Map_QM.emitChangeMap("periphery"); - startRotate = false; - Map_QM.outModelGap.rotateY(-1 * Map_QM.outModelGap.rotation.y); - Map_QM.hideFloor(); - TweenMax.to(Map_QM.outModelGap.scale, 0.3, { - y: 0.01, - ease: Quad.easeIn, - onComplete: function () { - Map_QM.buildObj.visible = false; - Map_QM.hideObjecrGap(Map_QM.outModelGap, false); //隐藏外立面 - Map_QM.hideObjecrGap(Map_QM.outObject, false); - }, - }); - if (!Map_QM.peripheryGap.visible) { - Map_QM.hideObjecrGap(Map_QM.peripheryGap, true); - TweenMax.to(Map_QM.peripheryGap.scale, 0.6, { - y: 1, - ease: Quad.easeIn, - onComplete: function () { - Map_QM.changePerTag("mark"); - }, - }); - } else { - mapState = "periphery"; - } - Map_QM.rotateAngle(45); - }, - /** - * @api {方法} hideInnerFloorElement() 隐藏室内楼层元素 - * @apiGroup 地图显示 - * @apiDescription 隐藏室内楼层元素 - * @apiVersion 4.0.0 - * - * @apiSampleRequest off - * @apiParamExample 请求示例 - * - * Map_QM.hideInnerFloorElement(); - */ - hideInnerFloorElement: function () { - isShowElement = false; - for (let t = 0; t < Map_QM.mapArr.length; t++) { - for (let i = 0; i < Map_QM.mapArr[t].length; i++) { - Map_QM.mapArr[t][i].CSSObj.traverse((obj) => { - obj.element && (obj.element.style.display = "none"); - if (obj.children && obj.children.length > 0) { - obj.traverse((item) => { - item.element && (item.element.style.display = "none"); - }); - } - }); - } - } - }, - - /** - * @api {方法} toMall() 显示室内模型 - * @apiGroup 地图显示 - * @apiDescription 显示室内模型 - * @apiVersion 4.0.0 - * - * @apiSampleRequest off - * @apiParamExample {String} 请求示例 - * - * Map_QM.toMall(); - */ - toMall: function () { - Map_QM.controls.setDistance(Map_QM.util.changeDist.inner - 25); - Map_QM.controls.update(); - Map_QM.disPlayEvent(); - renderCount = 0; - }, - toMallInner: function () { - isShowElement = true; - TweenMax.killAll(true); - Map_QM.emitChangeMap("mall"); - startRotate = false; - Map_QM.outModelGap.rotateY(-1 * Map_QM.outModelGap.rotation.y); - if (Map_QM.outModelGap.visible) { - TweenMax.to(Map_QM.outModelGap.scale, 0.5, { - y: 0.01, - ease: Quad.easeIn, - onComplete: function () { - Map_QM.buildObj.visible = true; - Map_QM.hideObjecrGap(Map_QM.outModelGap, false); //隐藏外立面 - Map_QM.hideObjecrGap(Map_QM.outObject, false); - Map_QM.onShowDeviceSite(); - }, - }); - } else { - if (Map_QM.peripheryGap.visible) { - TweenMax.to(Map_QM.peripheryGap.scale, 0.5, { - y: 0.01, - ease: Quad.easeIn, - onComplete: function () { - Map_QM.hideObjecrGap(Map_QM.peripheryGap, false); //隐藏外立面 - Map_QM.hideObjecrGap(Map_QM.perObject, false); - Map_QM.buildObj.visible = true; - Map_QM.onShowDeviceSite(); - }, - }); - } else { - Map_QM.buildObj.visible = true; - Map_QM.onShowDeviceSite(); - } - } - }, - //设置地图状态为室内状态 - setMall: function () { - isShowElement = true; - TweenMax.killAll(true); - Map_QM.emitChangeMap("mall"); - startRotate = false; - Map_QM.outModelGap.rotateY(-1 * Map_QM.outModelGap.rotation.y); - Map_QM.hideObjecrGap(Map_QM.outModelGap, false); //隐藏外立面 - Map_QM.hideObjecrGap(Map_QM.outObject, false); - Map_QM.hideObjecrGap(Map_QM.peripheryGap, false); //隐藏外立面 - Map_QM.hideObjecrGap(Map_QM.perObject, false); - Map_QM.buildObj.visible = true; - Map_QM.onShowDeviceSite(); - renderCount = 0; - }, - - emitChangeMap: function (state) { - if (mapState != state) { - mapState = state; - Map_QM.dispatchEvent({ - type: "mapShowChange", - data: mapState, - }); - } - }, - hideObjecrGap: function (gap, isShow) { - gap.visible = isShow; - gap.traverse((obj) => { - if (obj.userData && obj.userData.type == "2d_IP") { - if (obj.element) { - if (isShow) { - obj.element.style.visibility = - obj.userData.show == language ? "visible" : "hidden"; - } else { - obj.element.style.visibility = "hidden"; - } - } - } - }); - }, - /** - * @api {方法} onShowLocalSite(0) 局部显示放大 - * @apiGroup 地图显示 - * @apiDescription 局部显示放大 point 传入放大目标点,zoom放大级别 1-5 - * @apiVersion 4.0.0 - * @apiParam {Object} point 放大的地图位置 - * @apiParam {int} zoom 放大倍数(默认 1) - * - * @apiSampleRequest off - * - * @apiParamExample {Object} 请求示例 - * - * Map_QM.onShowLocalSite({x:0,y:0},1); - * - */ - onShowLocalSite: function (centerPoint, juZ = true) { - Map_QM.controls.reset(); - if (Map_QM.util.initModelArr.length > 0 && Map_QM.util.changeDist.inner > Map_QM.util.options.minDis) { - Map_QM.controls.maxDistance = Map_QM.util.changeDist.inner; - } - Map_QM.mapToPoint(centerPoint.x, centerPoint.y, 0); - if (!juZ) { - allJU = false; - } - isJUZ = juZ; - Map_QM.updateRender(); - Map_QM.collLabel(); - }, - /** - * @api {方法} mapToPoint() 镜头聚焦特定点 - * @apiGroup 地图显示 - * @apiDescription 镜头聚焦特定点 - * @apiVersion 4.0.0 - * @apiParam {int} x x坐标 - * @apiParam {int} y y坐标 - * @apiParam {int} z z坐标 - * - * @apiSampleRequest off - * - * @apiParamExample {Object} 请求示例 - * - * Map_QM.mapToPoint(0,0,1); - * - */ - mapToPoint: function (mapX, mapY, mapZ) { - let tag0 = Map_QM.controls.target; - let pos0 = Map_QM.controls.object.position; - let vct = new THREE.Vector3(mapX, -1 * mapY, mapZ); - vct.applyMatrix4(Map_QM.mapArr[Map_QM.util.selectBuild][Map_QM.util.selectFloor].allObj.matrix); - vct.applyMatrix4(Map_QM.sceneGap.matrix); - Map_QM.controls.target = new THREE.Vector3(vct.x, vct.y, vct.z); - Map_QM.controls.object.position.set(pos0.x + (vct.x - tag0.x), pos0.y + (vct.y - tag0.y), pos0.z + (vct.z - tag0.z)); - return vct; - }, - /** - * @api {方法} onShowDeviceSite() 地图方向复位 - * @apiGroup 地图显示 - * @apiDescription 地图方向复位 - * @apiVersion 4.0.0 - * - * @apiSampleRequest off - * - * @apiParamExample 请求示例 - * - * Map_QM.onShowDeviceSite(); - * - */ - onShowDeviceSite: function () { - this.showFloor(this.util.deviceObj.floor); - }, - /** - * 在2D 状态下平移镜头 - */ - moveCameraBy2D: function (obj) { - if (pathCameraState == "2D") { - Map_QM.controls.minAzimuthAngle = (Map_QM.util.deviceObj.angle * Math.PI) / -180; - Map_QM.controls.maxAzimuthAngle = (Map_QM.util.deviceObj.angle * Math.PI) / -180; - Map_QM.mapToPoint(obj.x, obj.y, 0); - Map_QM.controls.update(); - } - }, - /** - * 方向复位 - */ - resetMeDir: function () { - this.changeMapState("3d"); - this.controls.minAzimuthAngle = -Infinity; - this.controls.maxAzimuthAngle = Infinity; - this.shawLight.castShadow = this.util.options.shadow; - this.controls.reset(); - this.util.options.deviceAng && - this.rotationAngle(this.util.deviceObj.angle); - }, - /** - * @api {方法} changePathDir(pathState) 切换导航方向 - * @apiGroup 地图交互 - * @apiDescription 切换导航方向 - * @apiVersion 4.0.0 - * - * @apiParam {String} pathState 地图导航方向(默认 3D) - * - * @apiSampleRequest off - * - * @apiParamExample 请求示例 - * - * Map_QM.changePathDir("2D"); - * - */ - changePathDir: function (pathState = "3D") { - if (Map_QM.util.pathStateObj.isPathState) { - //导航状态 - let initVis = false; - if (Map_QM.endModel && Map_QM.endIcon) { - initVis = pathCameraState == "2D" ? Map_QM.endIcon.visible : Map_QM.endModel.visible; - } - pathCameraState = pathState; - if (Map_QM.endModel && Map_QM.endIcon) { - Map_QM.endModel.visible = pathCameraState == "2D" ? false : initVis; - Map_QM.endIcon.visible = pathCameraState == "2D" ? initVis : false; - } - Map_QM.reSetGuide(); - Map_QM.pathRePlay(); - } - }, - reSetGuide: function () { - if (pathCameraState == "2D") { - //2D导航 - Map_QM.onShowMeDir(); - Map_QM.guide.visible = false; - let pos = Map_QM.guide.position; - Map_QM.guide = Map_QM.man_2d; - Map_QM.guide.position.x = pos.x; - Map_QM.guide.position.y = pos.y; - Map_QM.guide.visible = true; - Map_QM.controls.enabled = false; - } else { - Map_QM.resetMeDir(); - Map_QM.controls.enabled = true; - Map_QM.controls.enableRotate = true; - Map_QM.guide.visible = false; - let pos = Map_QM.guide.position; - Map_QM.guide = Map_QM.man_3d; - Map_QM.guide.position.x = pos.x; - Map_QM.guide.position.y = pos.y; - Map_QM.guide.visible = true; - } - }, - /** - * @api {方法} queryObject3DByShopNum(ipName) 获取3D对象 - * @apiGroup 地图交互 - * @apiDescription 获取3D对象 - * @apiVersion 4.0.0 - * @apiParam {string} ipName POI名称 - * - * @apiSampleRequest off - * - * @apiParamExample 请求示例 - * - * Map_QM.queryObject3DByShopNum("L1001"); - * - */ - queryObject3DByShopNum: function (ipName) { - for (let b = 0; b < Map_QM.mapArr.length; b++) { - for (let i = 0; i < Map_QM.mapArr[b].length; i++) { - let shopArr = Map_QM.mapArr[b][i].shopObj.children; - for (let k = 0; k < shopArr.length; k++) { - if (shopArr[k].name == ipName) { - return shopArr[k]; - } - } - } - } - return null; - }, - /** - * @api {方法} parseSelectShop() 设置选中店铺弹跳 - * @apiGroup 地图交互 - * @apiDescription 设置选中店铺弹跳 - * @apiVersion 4.0.0 - * - * @apiParam {object3D} selObject 传入3D对象 - * - * @apiSampleRequest off - * - * @apiParamExample 请求示例 - * - * Map_QM.parseSelectShop(object); - * - */ - parseSelectShop: function (selObject) { - if (selObject) { - Map_QM.selectShop = selObject; - TweenMax.to(Map_QM.selectShop.scale, 0.5, { - z: 3, repeat: 4, yoyo: true, ease: Cubic.easeIn, - onComplete: function () { - if (Map_QM.selectShop) { - TweenMax.to(Map_QM.selectShop.scale, 0.5, { z: 1 }); - } - }, - }); - if (Map_QM.util.options.inArea && iconState == "3d") { - Map_QM.onShowLocalSite(new Map_QM.util.Point(Map_QM.selectShop.xaxis, Map_QM.selectShop.yaxis)); - } - } - }, - /** - * @api {方法} cancelSelectShop() 取消店铺弹跳 - * @apiGroup 地图交互 - * @apiDescription 取消店铺弹跳效果 - * @apiVersion 4.0.0 - * - * @apiSampleRequest off - * - * @apiParamExample 请求示例 - * - * Map_QM.cancelSelectShop(); - * - */ - cancelSelectShop: function () { - TweenMax.killAll(true); - if (Map_QM.selectShop) { - Map_QM.selectShop.scale.z = 1; - } - }, - /** - * @api {方法} changeStateShopPro(isShow) 店铺促销标签 - * @apiGroup 地图交互 - * @apiDescription 店铺促销标签展示/隐藏 - * @apiVersion 4.0.0 - * - * @apiParam {boolean} isShow 店铺促销标签是否显示(默认 false) - * - * @apiSampleRequest off - * - * @apiParamExample {boolean} 请求示例 - * - * Map_QM.changeStateShopPro(true); - * - */ - changeStateShopPro: function (isShow = false) { - if (Map_QM.mapArr[Map_QM.util.selectBuild]) { - Map_QM.mapArr[Map_QM.util.selectBuild][Map_QM.util.selectFloor].tagObj.traverse((obj) => { - obj.element && (obj.element.style.display = isShow ? "block" : "none"); - }); - } - }, - /** - * @api {方法} changeShowTagObjState(isShow) 自定义标签 - * @apiGroup 地图交互 - * @apiDescription 自定义标签展示/隐藏 - * @apiVersion 4.0.0 - * - * @apiParam {boolean} isShow 自定义标签是否显示(默认 false) - * - * @apiSampleRequest off - * - * @apiParamExample {boolean} 请求示例 - * - * Map_QM.changeShowTagObjState(true); - * - */ - changeShowTagObjState: function (isShow = false) { - Map_QM.mapArr[Map_QM.util.selectBuild][Map_QM.util.selectFloor].showTagObj.traverse((obj) => { - obj.visible = isShow; - }); - }, - - /** - * @api {方法} queryShopList() 获取店铺列表信息 - * @apiGroup 地图数据 - * @apiDescription 店铺列表 - * @apiVersion 4.0.0 - * - * @apiSampleRequest off - * - * @apiParamExample 请求示例 - * - * Map_QM.queryShopList() - * - */ - queryShopList: function () { - return JSON.parse(JSON.stringify(Map_QM.util.shopData)); - }, - /** - * @api {方法} drawCurveLine(startShop,endShop,color) 绘制引导线 - * @apiGroup 地图交互 - * @apiDescription 绘制引导线 - * @apiVersion 4.0.0 - * - * @apiParam {string/Array} startShop 起始店铺编号或编号数组 - * @apiParam {string/Array} endShop 终点店铺编号或编号数组 - * @apiParam {string} color 绘制颜色 (默认 "#0099ff") - * - * @apiSampleRequest off - * - * @apiParamExample 请求示例 - * //绘制一到多 - * Map_QM.drawCurveLine("L125",["L117","L127","L130"],"#2246d8") - * //绘制多到一 - * Map_QM.drawCurveLine(["L117","L127","L130"],"L125","#66ffff") - * - */ - drawCurveLine: function (startShop, endShop, color = "#3969f7") { - let sp, ep, cp1, cp2; - hasLine = true; - if (Array.isArray(startShop) && Array.isArray(endShop)) { - return { msg: "只能有一个数组" }; - } - if (Array.isArray(startShop)) { - //如果是数组 - endShop = Map_QM.shopNumToNavPoint({ houseNumber: endShop }, "shop"); - for (let i = 0; i < startShop.length; i++) { - startShop[i] = Map_QM.shopNumToNavPoint( - { houseNumber: startShop[i] }, - "shop" - ); - sp = new THREE.Vector3( - startShop[i].xaxis, - -1 * startShop[i].yaxis, - Map_QM.util.shopHeight - ); - ep = new THREE.Vector3( - endShop.xaxis, - -1 * endShop.yaxis, - Map_QM.util.shopHeight - ); - let s = Math.sqrt( - (endShop.xaxis - startShop[i].xaxis) * - (endShop.xaxis - startShop[i].xaxis) + - (endShop.yaxis - startShop[i].yaxis) * - (endShop.yaxis - startShop[i].yaxis) - ); - cp1 = new THREE.Vector3( - startShop[i].xaxis + (endShop.xaxis - startShop[i].xaxis) / 3, - -1 * startShop[i].yaxis - (endShop.yaxis - startShop[i].yaxis) / 3, - Map_QM.util.shopHeight + s / 5 - ); - cp2 = new THREE.Vector3( - endShop.xaxis, - -1 * endShop.yaxis, - Map_QM.util.shopHeight + s / 3 - ); - Map_QM.mapArr[Map_QM.util.selectBuild][ - Map_QM.util.selectFloor - ].lineObj.add(Map_QM.drawToLine(sp, ep, s / 10, color, cp1, cp2)); - } - } else { - startShop = Map_QM.shopNumToNavPoint({ houseNumber: startShop }, "shop"); - if (Array.isArray(endShop)) { - //如果是数组 - for (let i = 0; i < endShop.length; i++) { - endShop[i] = Map_QM.shopNumToNavPoint({ houseNumber: endShop[i] }, "shop"); - sp = new THREE.Vector3(startShop.xaxis, -1 * startShop.yaxis, Map_QM.util.shopHeight); - ep = new THREE.Vector3( endShop[i].xaxis, -1 * endShop[i].yaxis, Map_QM.util.shopHeight); - let s = Math.sqrt((endShop[i].xaxis - startShop.xaxis) *(endShop[i].xaxis - startShop.xaxis) +(endShop[i].yaxis - startShop.yaxis) *(endShop[i].yaxis - startShop.yaxis)); - cp1 = new THREE.Vector3(startShop.xaxis+(endShop[i].xaxis-startShop.xaxis)/3, -1*startShop.yaxis-(endShop[i].yaxis-startShop.yaxis)/3, Map_QM.util.shopHeight+s/5); - cp2 = new THREE.Vector3(endShop[i].xaxis, -1*endShop[i].yaxis, Map_QM.util.shopHeight+s/3); - Map_QM.mapArr[Map_QM.util.selectBuild][Map_QM.util.selectFloor].lineObj.add(Map_QM.drawToLine(sp, ep, s / 10, color, cp1, cp2)); - } - } else { - endShop = Map_QM.shopNumToNavPoint({ houseNumber: endShop }, "shop"); - sp = new THREE.Vector3(startShop.xaxis,-1 * startShop.yaxis, Map_QM.util.shopHeight); - ep = new THREE.Vector3( endShop.xaxis, -1 * endShop.yaxis, Map_QM.util.shopHeight); - let s = Math.sqrt((endShop.xaxis - startShop.xaxis) *(endShop.xaxis - startShop.xaxis) +(endShop.yaxis-startShop.yaxis) *(endShop.yaxis - startShop.yaxis)); - cp1 = new THREE.Vector3(startShop.xaxis+(endShop.xaxis - startShop.xaxis)/3, -1*startShop.yaxis-(endShop.yaxis-startShop.yaxis)/3, Map_QM.util.shopHeight+s/5); - cp2 = new THREE.Vector3(endShop.xaxis, -1*endShop.yaxis, Map_QM.util.shopHeight + s/3 ); - Map_QM.mapArr[Map_QM.util.selectBuild][Map_QM.util.selectFloor].lineObj.add(Map_QM.drawToLine(sp, ep, s / 10, color, cp1, cp2)); - } - } - }, - - drawToLine: function (startPoint, endPoint, dash = 50, color = 0x2269dd, ctrlPoint1 = null, ctrlPoint2 = null) { - let curve = new THREE.CubicBezierCurve3(startPoint,ctrlPoint1,ctrlPoint2,endPoint); - let points = curve.getPoints(dash); - let colorChange = []; - for (let i = 1; i < 7; i += 2) { - colorChange.push(parseInt("0x" + color.slice(i, i + 2)) / 255); - } - let flyLine = createFlyCurve(points, new THREE.Vector3(colorChange[0], colorChange[1], colorChange[2]), false); - flyLine.userData.type = "toLine"; - return flyLine; - }, - /** - * @api {方法} drawColumnar(source,property) 绘制柱状图 - * @apiGroup 地图交互 - * @apiDescription 绘制柱状图 - * @apiVersion 4.0.0 - * - * @apiParam source 起始店铺编号或编号数组 - * @apiParam property 控制参数对象 - * - * @apiSampleRequest off - * - * @apiParamExample 请求示例 - * //绘制多个 - * Map_QM.drawColumnar(["L117","L127","L130"],{"height":200,"width":20,"color":"#2246d8"}) - * //绘制单个 - * Map_QM.drawColumnar("L125",{"height":200,"width":20,"color":"#2246d8"}) - */ - drawColumnar: function (source, property) { - if (Array.isArray(source)) { - if (source.length == 0) { - return { msg: "不能解析空数组" }; - } - for (let i = 0; i < source.length; i++) { - Map_QM.drawOnlyColumer(source[i], property); - } - } else { - Map_QM.drawOnlyColumer(source, property); - } - }, - drawOnlyColumer: function (houseNumber, property) { - if (houseNumber.trim() != "" && property) { - let endShop = Map_QM.shopNumToNavPoint({ houseNumber: houseNumber }, "shop"); - let geometry = new THREE.BoxGeometry( - property.width * 2, - property.width * 2, - property.width * 2 - ); - let c = new THREE.Color(property.color); - let material; - let color2 = new THREE.Color(property.color); - for (let k = 0; k < Map_QM.util.meshMaterialArr.length; k++) { - if (Map_QM.util.meshMaterialArr[k].color && Map_QM.util.meshMaterialArr[k].color.equals(color2) && Map_QM.util.meshMaterialArr[k].isShaderMaterial) { - material = Map_QM.util.meshMaterialArr[k]; - } - } - if (!material) { - material = new THREE.ShaderMaterial({ - uniforms: { - targetColor: { value: new THREE.Vector3(c.r, c.g, c.b) }, - height: { value: property.height / 5 }, - }, - transparent: true, - //depthTest:false, - vertexShader: [ - "varying vec3 modelPos;", - "void main() {", - " modelPos = position;", - " gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );", - "}", - ].join("\n"), - fragmentShader: [ - "uniform vec3 targetColor;", - "uniform float height;", - "varying vec3 modelPos;", - "void main() {", - " gl_FragColor = vec4(targetColor.xyz,(0.9 - modelPos.y/height)*(0.9 - modelPos.y/height));", - "}", - ].join("\n"), - }); - Map_QM.util.meshMaterialArr.push(material); - } - - let mesh = new THREE.Mesh(geometry, material); - mesh.position.set(endShop.xaxis, -1 * endShop.yaxis, property.height); - mesh.rotation.x = Math.PI / -2; - mesh.scale.setY(property.height / property.width); - let cubeEdges = new THREE.EdgesGeometry(geometry, 60); - mesh.add(new THREE.LineSegments(cubeEdges, material)); - mesh.userData.type = "columer"; - Map_QM.mapArr[Map_QM.util.selectBuild][Map_QM.util.selectFloor].lineObj.add(mesh); - } - }, - - /** - * @api {方法} removeDrawEle(type) 删除绘制元素 - * @apiGroup 地图交互 - * @apiDescription 删除绘制元素 - * @apiVersion 4.0.0 - * - * @apiParam type 传入删除的类型(默认 all) toLine--引导线 columer--柱状样式 all---所有 - * - * @apiSampleRequest off - * - * @apiParamExample 请求示例 - * - * Map_QM.removeDrawEle("toLine") - * - */ - removeDrawEle: function (type = "all") { - if (type == "all" || type == "toLine") { - hasLine = false; - } - for (let i = 0; i < Map_QM.mapArr.length; i++) { - for (let k = 0; k < Map_QM.mapArr[i].length; k++) { - let lineObj = Map_QM.mapArr[i][k].lineObj; - for (let j = lineObj.children.length - 1; j >= 0; j--) { - if (type == "all" || lineObj.children[j].userData.type == type) { - lineObj.remove(lineObj.children[j]); - } - } - } - } - }, - - setHeatMapData: function () { - let points = []; - let max = 0; - let childRen = Map_QM.mapArr[Map_QM.util.selectBuild][Map_QM.util.selectFloor].shopObj.children; - for (let i = 0; i < childRen.length; i++) { - let val = Math.random() * 100; - max = Math.max(max, val); - var point = { - x: parseInt(childRen[i].xaxis), - y: parseInt(childRen[i].yaxis), - value: val, - }; - points.push(point); - } - // 准备 heatmap 的数据 - const data = {max: max, data: points,}; - Map_QM.heatMap(data); - Map_QM.hideInnerFloorElement(); - }, - /** - * @api {方法} heatMap(data) 热力图 - * @apiGroup 地图交互 - * @apiDescription 绘制热力图 - * @apiVersion 4.0.0 - * - * @apiParam {object} data 热力图的绘制数据 - * - * @apiSampleRequest off - * - * @apiParamExample 请求示例 - * - * Map_QM.heatMap({max: 100, data: [{x:0,y:0,value:50},...]}) - */ - heatMap: function (data) { - let heatMap = document.getElementById("heatmap"); - Map_QM.removeHeatMap(); - heatMap.style.pointerEvents = "none"; - let mapW = Map_QM.util.allMap[Map_QM.util.selectBuild].mapW || 5000; - let mapH = Map_QM.util.allMap[Map_QM.util.selectBuild].mapH || 5000; - heatMap.style.width = mapW + "px"; - heatMap.style.height = mapH + "px"; - - if (!heatmapInstance) { - heatmapInstance = h337.create({ - container: heatMap, - gradient: { - 1.0: "#f00", - 0.9: "#e2fa00", - 0.6: "#33f900", - 0.3: "#0349df", - 0.0: "#0f00ff", - }, - radius: 120, - maxOpacity: 1, - minOpacity: 0, - }); - } - if (data.data && data.data.length > 0) { - data.data.map((item) => { - item.x += mapW / 2; - item.y += mapH / 2; - }); - } - heatmapInstance.setData(data); - // 获取 heatmap - let texture = new THREE.Texture(heatmapInstance._renderer.canvas); - const material = new THREE.MeshLambertMaterial({ - map: texture, - transparent: true, - opacity: 1, - }); - - let mesh = new THREE.Mesh(new THREE.PlaneGeometry(mapW, mapH, 10),material); - Map_QM.mapArr[Map_QM.util.selectBuild][Map_QM.util.selectFloor].otherObj.add(mesh); - mesh.renderOrder = 800; - mesh.position.set(0, 0, 60); - // 更新图片 - if (texture) { - texture.needsUpdate = true; - } - }, - /** - * @api {方法} removeHeatMap() 清除外加图层 - * @apiGroup 地图交互 - * @apiDescription 清除外加图层 - * @apiVersion 4.0.0 - * - * @apiSampleRequest off - * - * @apiParamExample 请求示例 - * - * Map_QM.removeHeatMap() - */ - removeHeatMap: function () { - for (let i = 0; i < Map_QM.mapArr.length; i++) { - for (let j = 0; j < Map_QM.mapArr[i].length; j++) { - Map_QM.remove_child(Map_QM.mapArr[i][j].otherObj); - } - } - }, - - /** - * @api {方法} rotationAngle(angle) 改变水平角度 - * @apiGroup 地图显示 - * @apiDescription 改变地图水平角度 angle>-180 && angle<180 逆时针旋转 - * @apiVersion 4.0.0 - * - * @apiParam {int} angle 旋转角度 - * - * @apiSampleRequest off - * - * @apiParamExample {int} 请求示例 - * - * Map_QM.rotationAngle(90); - * - */ - rotationAngle: function (angle) { - Map_QM.controls.setRotateHorizontal(Map_QM.controls.getRotateHorizontal()); - Map_QM.controls.setRotateHorizontal((angle / 180) * Math.PI); - }, - /** - * @api {方法} rotateAngle(angle) 改变垂直角度 - * @apiGroup 地图显示 - * @apiDescription 改变地图垂直角度 angle>-90 && angle<90 - * @apiVersion 4.0.0 - * - * @apiParam {int} angle 旋转角度 - * - * @apiSampleRequest off - * - * @apiParamExample {int} 请求示例 - * - * Map_QM.rotateAngle(-45); - * - */ - rotateAngle: function (angle) { - let r0 = Map_QM.controls.getRotate(); - Map_QM.controls.rotate(r0); - Map_QM.controls.rotate((angle / -180) * Math.PI); - }, - /** - * @api {方法} setCameraDist(cDist) 调整地图大小 - * @apiGroup 地图显示 - * @apiDescription 调整地图大小(值越小地图越大) Map_QM.util.options.minDis ~ Map_QM.util.options.maxDis - * @apiVersion 4.0.0 - * - * @apiParam {int} cDist 摄像头距离 - * - * @apiSampleRequest off - * - * @apiParamExample {int} 请求示例 - * - * Map_QM.setCameraDist(150); - * - */ - setCameraDist: function (cDist) { - if (Map_QM.util.options.minDis < parseInt(cDist) && parseInt(cDist) < Map_QM.util.options.maxDis) { - let oldObj = { dis: Map_QM.controls.getDistance() }; - TweenMax.killAll(true); - TweenMax.to(oldObj, 0.5, { - dis: cDist, - onUpdate: function () { - Map_QM.controls.setDistance(oldObj.dis); - Map_QM.controlsChock(); - }, - }); - } - }, - /** - * @api {方法} startRender() 启动地图渲染 - * @apiGroup 地图显示 - * @apiDescription 启动地图渲染 与 cancelRender 配合使用可节约资源 - * @apiVersion 4.0.0 - * - * @apiSampleRequest off - * @apiParamExample 请求示例 - * - * Map_QM.startRender(); - * - */ - startRender: function () { - Map_QM.cancelRender(); - let T = Map_QM.util._clock.getDelta(); - Map_QM.controls.update(); - Map_QM.renderer.render(Map_QM.scene, Map_QM.camera); - Map_QM.labelRenderer.render(Map_QM.scene, Map_QM.camera); - if (renderCount < 3) { - if (Map_QM.mapArr[Map_QM.util.selectBuild] && Map_QM.mapArr[Map_QM.util.selectBuild][Map_QM.util.selectFloor]) { - Map_QM.labelRenderer.renderObject(Map_QM.mapArr[Map_QM.util.selectBuild][Map_QM.util.selectFloor].CSSObj,Map_QM.camera); - } - renderCount++; - } - Map_QM.CSSObject && Map_QM.labelRenderer.renderObject(Map_QM.CSSObject, Map_QM.camera); - for (let item of Map_QM.mixers) { - item.update(T); - } - if (hasLine) { - const elapsed = Map_QM.util._clock.getElapsedTime(); - uniforms.u_time.value = elapsed; - } - if (startRotate) { - let y0 = Map_QM.outModelGap.rotation.y; - Map_QM.outModelGap.rotateY(0.002); - let ay = Map_QM.outModelGap.rotation.y - y0; //>0 + - let ang = -1 * Map_QM.outModelGap.rotation.y; - if (ay > 0) { - if (Map_QM.outModelGap.rotation.y > 0) { - ang = Map_QM.outModelGap.rotation.y - Math.PI; - } else { - ang = Map_QM.outModelGap.rotation.y + Math.PI; - } - } - ang -= Map_QM.controls.getRotateHorizontal() - Math.PI; - ang = ang > Math.PI ? ang - 2 * Math.PI : ang; - ang = ang < -1 * Math.PI ? ang + 2 * Math.PI : ang; - if (Map_QM.util.options.northShow) { - Map_QM.util.img.style.transform = "rotate(" + ((Math.PI - ang) * 180) / Math.PI + "deg)"; - } - } else if (Map_QM.util.options.northShow) { - let a = Map_QM.controls.getRotateHorizontal(); - if (Map_QM.outModelGap.visible) { - Map_QM.util.img.style.transform = "rotate(" +((Math.PI - (Map_QM.outModelGap.rotation.y - a)) * 180) / Math.PI +"deg)"; - } else { - Map_QM.util.img.style.transform = "rotate(" + (a * 180) / Math.PI + "deg)"; - } - } - renderFrame = requestAnimationFrame(Map_QM.startRender); - }, - /** - * @api {方法} cancelRender() 取消地图渲染 - * @apiGroup 地图显示 - * @apiDescription 取消地图渲染 与 startRender 配合使用可节约资源 - * @apiVersion 4.0.0 - * - * @apiSampleRequest off - * - * @apiParamExample 请求示例 - * - * Map_QM.cancelRender(); - * - */ - cancelRender: function () { - window.cancelAnimationFrame(renderFrame); - renderFrame = -1; - }, - - /** - * @api {方法} addElementLabel() 地图html标签 - * @apiGroup 地图交互 - * @apiDescription 地图显示Html标签,返回3d标签对象 - * @apiVersion 4.0.0 - * - * @apiParam {Element} divObj div对象 - * @apiParam {int} x 显示X坐标 - * @apiParam {int} y 显示Y坐标 - * @apiParam {int} z 显示高度坐标(默认 50) - * @apiParam {String} type docment元素自定义标识(默认 "shopInfo") - * @apiSampleRequest off - * - * @apiParamExample {String} 请求示例 - * Map_QM.addElementLabel(divObj,x,y); - */ - addElementLabel: function (divObj, x, y, z = 50, type = "shopInfo") { - divObj.style.opacity = 0; - let shopInfo = new THREE.CSS2DObject(divObj); - shopInfo.position.set(x, -1 * y, z); - shopInfo.applyMatrix4( - Map_QM.mapArr[Map_QM.util.selectBuild][Map_QM.util.selectFloor].allObj.matrix - ); - shopInfo.userData.type = type; - shopInfo.userData.isShow = false; - shopInfo.userData.floor = parseInt(Map_QM.util.selectFloor); - Map_QM.CSSObject.add(shopInfo); - TweenMax.to(divObj.style, 0.2, { opacity: 1, delay: 0.1 }); - return shopInfo; - }, - - /** - * @api {方法} updateElementPosition() 修改标签位置 - * @apiGroup 地图交互 - * @apiDescription 修改标签位置 - * @apiVersion 4.0.0 - * @apiParam {Object} obj 对象 - * @apiParam {int} x 新的X坐标 - * @apiParam {int} y 新的Y坐标 - * - * @apiSampleRequest off - * - * @apiParamExample {Object} 请求示例 - * - * Map_QM.updateElementPosition(obj,x,y); - * - */ - updateElementPosition: function (obj, x, y) { - if (obj.hasOwnProperty("position")) { - let h = obj.position.z; - obj.position.set(x, -1 * y, h); - obj.applyMatrix4(Map_QM.mapArr[Map_QM.util.selectBuild][Map_QM.util.selectFloor].allObj.matrix); - } - }, - /** - * @api {方法} elementDestroy(type) 销毁地图标签 - * @apiGroup 地图交互 - * @apiDescription 销毁地图上的html标签 - * @apiVersion 4.0.0 - * @apiParam {String} type docment元素自定义标识(默认 "shopInfo") - * - * @apiSampleRequest off - * - * @apiParamExample {Object} 请求示例 - * - * Map_QM.elementDestroy(); - * - */ - elementDestroy: function (type = "shopInfo", isRemove = false) { - if (!Map_QM.CSSObject) { - return; - } - for (let i = Map_QM.CSSObject.children.length - 1; i >= 0; i--) { - if (Map_QM.CSSObject.children[i].userData.type != "moveFloor") { - if (type == "all") { - Map_QM.CSSObject.children[i].element.style.visibility = "hidden"; - } else { - if ( - Map_QM.CSSObject.children[i].userData && - Map_QM.CSSObject.children[i].userData.type == type - ) { - let node = Map_QM.CSSObject.children[i]; - node.element.style.visibility = "hidden"; - if (isRemove && node.element.parentNode) { - node.element.parentNode.removeChild(node.element); - } - Map_QM.CSSObject.remove(node); - } - } - } - } - }, - /** - * @api {方法} addElementByNode() 显示地图活动标签 - * @apiGroup 地图交互 - * @apiDescription 地图显示活动标签,返回3d标签对象 - * @apiVersion 4.0.0 - * - * @apiParam {Element} divObj div对象 - * @apiParam {int} node 显示导航点位 - * @apiParam {String} type docment元素自定义标识(默认 "tip") - * @apiSampleRequest off - * - * @apiParamExample {String} 请求示例 - * Map_QM.addElementByNode(divObj,node,type); - */ - addElementByNode: function (divObj, node, type = "tip") { - let pathData = - Map_QM.util.allMap[Map_QM.util.selectBuild].buildArr[parseInt(Map_QM.util.selectFloor)].mapData.path; - if (!pathData || !divObj) { - return; - } - if (pathData.nodes.length > 0) { - pathData.nodes.sort(Map_QM.util.sortNode); - } else { - return; - } - divObj.style.visibility = "visible"; - divObj.style.opacity = "0"; - let shopInfo = new THREE.CSS2DObject(divObj); - shopInfo.position.set( - pathData.nodes[parseInt(node)].x, - -1 * pathData.nodes[parseInt(node)].y, - 60 - ); - shopInfo.applyMatrix4( - Map_QM.mapArr[Map_QM.util.selectBuild][parseInt(Map_QM.util.selectFloor)] - .allObj.matrix - ); - shopInfo.userData.type = type; - shopInfo.userData.isShow = false; - shopInfo.userData.floor = parseInt(Map_QM.util.selectFloor); - Map_QM.CSSObject.add(shopInfo); - TweenMax.to(divObj.style, 0.2, { opacity: 1, delay: 0.2 }); - return shopInfo; - }, - - /** - * @api {方法} changeShowShopName() 修改店铺显示名称 - * @apiGroup 地图显示 - * @apiDescription 通过店铺编号修改店铺显示名称 - * @apiVersion 4.0.0 - * @apiParam {Array} houseNumber 店铺编号 - * @apiParam {Array} nameStr 字符串 - * @apiSampleRequest off - * - * @apiParamExample {String} 请求示例 - * Map_QM.changeShowShopName(["L104"],['肯德基']) - */ - changeShowShopName: function (shopNums, elements) { - if (shopNums.length === elements.length) { - let labObj = - Map_QM.spriteList[Map_QM.util.selectBuild][Map_QM.util.selectFloor]; - for (let i = 0; i < shopNums.length; i++) { - for (let j = 0; j < labObj.length; j++) { - if (labObj[j].name == shopNums[i]) { - labObj[j].text = elements[i]; - break; - } - } - } - } - }, - - /** - * @api {方法} showAreaAnimate() 区域定位 - * @apiGroup 地图显示 - * @apiDescription 通过区域名称凸显区域 - * @apiVersion 4.0.0 - * @apiParam {String} aName 区域名称,不传则复位 - * @apiSampleRequest off - * - * @apiParamExample {String} 请求示例 - * Map_QM.showAreaAnimate("A"); - */ - showAreaAnimate: function (aName = "") { - //在我的方向状态,恢复 - Map_QM.changeMapModel("3D"); - Map_QM.resetFloorState(); - Map_QM.controls.reset(); - Map_QM.util.options.deviceAng && Map_QM.rotationAngle(Map_QM.util.deviceObj.angle); - TweenMax.killAll(true); - if (!aName) { - isJUZ = false; - allJU = true; - return; - } - Map_QM.mapArr[Map_QM.util.selectBuild][Map_QM.util.selectFloor].allObj.traverse((obj) => { - if (obj.userData && obj.userData.type == "build") { - if (obj.name == aName) { - Map_QM.onShowLocalSite({ x: obj.userData.xaxis, y: obj.userData.yaxis }, false); - } - } - }); - }, - - /** - * @api {方法} unionShop() 店铺合并 - * @apiGroup 地图显示 - * @apiDescription 通过店铺编号合并店铺 合铺 - * @apiVersion 4.0.0 - * @apiParam {Array} shops 店铺编号数组 - * @apiParam {Object} data 新的店铺数据(默认 空数据) - * @apiSampleRequest off - * - * @apiParamExample {String} 请求示例 - * Map_QM.unionShop(["L105","L106","L107","L108"],{name:"新店",houseNumber:"L104-L108",color:"#F4A460"}) - */ - unionShop: function ( - shops, - data = { name: "", houseNumber: "shop", color: "#F4A460" } - ) { - let shopObj = [], - xAll = 0, - yAll = 0; - if (Array.isArray(shops) && shops.length > 1) { - //删除店铺box - let shopArea = - Map_QM.mapArr[Map_QM.util.selectBuild][Map_QM.util.selectFloor].shopObj - .children; - for (let i = 0; i < shops.length; i++) { - for (let k = 0; k < shopArea.length; k++) { - if (shopArea[k].name == shops[i]) { - xAll += shopArea[k].xaxis; - yAll += shopArea[k].yaxis; - shopObj.push(shopArea[k]); - Map_QM.mapArr[Map_QM.util.selectBuild][ - Map_QM.util.selectFloor - ].shopObj.remove(shopArea[k]); - break; - } - } - } - //删除文本标签 - let labObj = - Map_QM.spriteList[Map_QM.util.selectBuild][Map_QM.util.selectFloor]; - for (let i = 0; i < shops.length; i++) { - for (let j = 0; j < labObj.length; j++) { - if (labObj[j].name == shops[i]) { - Map_QM.spriteList[Map_QM.util.selectBuild][ - Map_QM.util.selectFloor - ].splice(j, 1); - break; - } - } - } - let point = { - x: xAll / shopObj.length, - y: yAll / shopObj.length, - }; - let baseShop; - for (let l = 0; l < shopObj.length; l++) { - if (l == 0) { - baseShop = new ThreeBSP(shopObj[0]); - } else { - baseShop = baseShop.union(new ThreeBSP(shopObj[l])); - } - } - //ThreeBSP对象转化为网格模型对象 - let mesh = baseShop.toMesh(); - mesh.userData = data; - mesh.userData.shopData = { formatColor: data.color }; - mesh.userData.xaxis = point.x >> 0; - mesh.userData.yaxis = point.y >> 0; - mesh.userData.houseNumber = data.houseNumber; - mesh.userData.entColor = data.color; - mesh.userData.type = "shop"; - if (data.name) { - mesh.name = data.name; - let shopSpr = Map_QM.util.getTextMesh( - data.name, - new THREE.Vector3(point.x >> 0, (-1 * point.y) >> 0, 30) - ); - mesh.add(shopSpr); - Map_QM.spriteList[Map_QM.util.selectBuild][ - Map_QM.util.selectFloor - ].push(shopSpr); - shopSpr.name = data.houseNumber || ""; - shopSpr.userData.mapShow = false; //是否永久显示 - shopSpr.userData.formatCode = ""; - shopSpr.userData.isShow = true; - shopSpr.userData.nameEn = data.nameEn || data.name; - shopSpr.userData.name = data.name; - } - mesh.material = new THREE.MeshPhongMaterial({ - color: data.color || 0xf4a460, - transparent: true, - opacity: 0.9, - side: THREE.DoubleSide, - depthTest: true, - }); - Map_QM.mapArr[Map_QM.util.selectBuild][ - Map_QM.util.selectFloor - ].allObj.add(mesh); - } - renderCount = 0; - }, - - //////////////////////////////////////////////////////////////////////////////// - - /** - * @param {Object} e - * 地图BOX点击 - */ - onMouseClickBox: function (event) { - startRotate = false; - let mouse = new THREE.Vector2(); - mouse.x = (event.offsetX / Map_QM.w) * 2 - 1; - mouse.y = -(event.offsetY / Map_QM.h) * 2 + 1; - Map_QM.onCallTouchORMouse(mouse); - }, - onCallTouchORMouse: function (mouse) { - if ((!Map_QM.mapArr[Map_QM.util.selectBuild] &&!Map_QM.mapArr[Map_QM.util.selectBuild][Map_QM.util.selectFloor]) || !Map_QM.buildObj.visible || Map_QM.util.pathStateObj.isPathState) { - return; - } - let raycaster = new THREE.Raycaster(); - raycaster.setFromCamera(mouse, Map_QM.camera); - let intersects = raycaster.intersectObjects(Map_QM.mapArr[Map_QM.util.selectBuild][Map_QM.util.selectFloor].allObj.children, true); - let clickShop = false, - clickOnly = false, - onlyData = null; - for (let i = 0; i < intersects.length; i++) { - //店铺BOX点击 - if (intersects[i].object.userData && intersects[i].object.userData.type == "shop") { - if (intersects[i].object.name != "") { - if (Map_QM.endModel && Map_QM.endModel.visible) { - Map_QM.endModel.visible = false; - } - clickShop = true; - Map_QM.mapArr[Map_QM.util.selectBuild][Map_QM.util.selectFloor].findPath.clearPath(); - Map_QM.setSelectShopMat(intersects[i].object); - break; - } else { - //空店铺有编号 - if (intersects[i].object.userData.houseNumber && intersects[i].object.userData.houseNumber != "shop") { - clickOnly = true; - onlyData = intersects[i].object.userData; - } - } - } - } - - /** - * @api {事件} shop 点击已绑定品牌的店铺 - * @apiGroup 地图事件 - * @apiDescription 用户点击店铺后触发自定义事件 - * @apiVersion 4.0.0 - * @apiSampleRequest off - * - * @apiParamExample 请求示例 - * Map_QM.addEventListener("shop",onClickShop,false); - */ - if (clickShop && Map_QM.selectShop && Map_QM.selectShop.userData) { - if (Map_QM.selectShop.userData.shopData.hasOwnProperty("houseNumber")) { - Map_QM.dispatchEvent({ - type: "shop", - data: Map_QM.selectShop.userData, - }); - } else { - /** - * @api {事件} onlyShop 点击未绑定品牌的店铺 - * @apiGroup 地图事件 - * @apiDescription 用户点击空店铺后触发自定义事件 - * @apiVersion 4.0.0 - * @apiSampleRequest off - * - * @apiParamExample 请求示例 - * Map_QM.addEventListener("onlyShop",onClickShop,false); - */ - Map_QM.dispatchEvent({ - type: "onlyShop", - data: Map_QM.selectShop.userData, - }); - } - } else { - if (clickOnly) { - Map_QM.dispatchEvent({ - type: "onlyShop", - data: onlyData, - }); - } else { - Map_QM.dispatchEvent({ - type: "shop", - data: null, - }); - } - } - }, - /** - * @api {方法} setSelectShopMatByName(houseNumber) 设置box 选中 - * @apiGroup 地图交互 - * @apiDescription 地图box 选中 - * @apiVersion 4.0.0 - * @apiParam {String} houseNumber POI编号 - * - * @apiSampleRequest off - * - * @apiParamExample {String} 请求示例 - * - * Map_QM.setSelectShopMatByName("L101"); - * - */ - setSelectShopMatByName: function (ipName) { - for (let i = 0; i < Map_QM.mapArr[Map_QM.util.selectBuild].length; i++) { - let shopArr = Map_QM.mapArr[Map_QM.util.selectBuild][i].shopObj.children; - for (let k = 0; k < shopArr.length; k++) { - if (shopArr[k].name == ipName) { - Map_QM.setSelectShopMat(shopArr[k]); - break; - } - } - } - }, - //改变选中店铺box - setSelectShopMat: function (selObject) { - TweenMax.killAll(true); - if (Map_QM.selectShop) { - Map_QM.selectShop.scale.z = 1; - } - Map_QM.parseSelectShop(selObject); - }, - updateRender: function () { - Map_QM.controls.update(); - Map_QM.renderer.render(Map_QM.scene, Map_QM.camera); - Map_QM.labelRenderer.render(Map_QM.scene, Map_QM.camera); - - Map_QM.labelRenderer.renderObject( - Map_QM.mapArr[Map_QM.util.selectBuild][Map_QM.util.selectFloor].CSSObj, - Map_QM.camera - ); - }, - /** - * 初始化后调用 - */ - timeOutInit: function () { - Map_QM.updateRender(); - Map_QM.collLabel(); - renderCount = 0; - if (Map_QM.callBackLoadOver) { - let floorData = []; - for (let i = 0; i < Map_QM.util.allMap.length; i++) { - let build = []; - for (let j = 0; j < Map_QM.util.allMap[i].buildArr.length; j++) { - if (Map_QM.util.allMap[i].buildArr[j]) { - build.push({ - order: Map_QM.util.allMap[i].buildArr[j].order, - name: Map_QM.util.allMap[i].buildArr[j].name, - }); - } - } - floorData.push(build); - } - if (Map_QM.backObj) { - Map_QM.controls.enabled = true; - Map_QM.backObj.data = floorData; - } - Map_QM.callBackLoadOver(Map_QM.backObj); //初始化完成后回调 - Map_QM.callBackLoadOver = null; - Map_QM.backObj = null; - } - Map_QM.dispatchEvent({ - type: "changeFloorOver", - data: Map_QM.selectFloor, - }); - }, - - autoChangeEleAngle: function () { - if (Map_QM.mapArr[Map_QM.util.selectBuild]) { - for (let m = 0; m < Map_QM.mapArr[Map_QM.util.selectBuild].length; m++) { - if (Map_QM.mapArr[Map_QM.util.selectBuild][m].allObj.visible) { - let svgChilds = Map_QM.mapArr[Map_QM.util.selectBuild][m].svgObj.children; - let rat = Map_QM.controls.getRotateHorizontal(); - svgChilds.forEach((item) => { - if (Math.abs(item.rotation.x) < 0.5) { - if ( - rat - item.userData.rot > 1.7 || - rat - item.userData.rot < -1.7 - ) { - item.rotation.z = - item.userData.rot < 0 - ? item.userData.rot + 3.1415926 - : item.userData.rot - 3.1415926; - } else { - item.rotation.z = item.userData.rot; - } - } - }); - let logoChilds = Map_QM.mapArr[Map_QM.util.selectBuild][m].shopObj.children; - logoChilds.forEach((item) => { - if (item.children.length > 0) { - item.children.forEach((obj) => { - if (obj.userData.type == "logo") { - if ( - rat - obj.userData.rot > 1.7 || - rat - obj.userData.rot < -1.7 - ) { - obj.rotation.z = - obj.userData.rot < 0 - ? obj.userData.rot + 3.1415926 - : obj.userData.rot - 3.1415926; - } else { - obj.rotation.z = obj.userData.rot; - } - } - }); - } - }); - } - } - } - }, - disPlayEvent: function () { - renderCount = 0; - let distance = Map_QM.controls.getDistance(); - if ( - distance > Map_QM.util.changeDist.outner + 20 && - mapState != "periphery" - ) { - Map_QM.toPeripheryInner(); - } else if ( - distance > Map_QM.util.changeDist.inner + 20 && - distance < Map_QM.util.changeDist.outner - 20 && - mapState != "out" - ) { - Map_QM.toOutModelInner(); - } else if ( - distance < Map_QM.util.changeDist.inner - 20 && - mapState != "mall" - ) { - Map_QM.toMallInner(); - } - }, - /** - * 碰撞检测 - * @param {Object} 传入检测楼层下标 - */ - controlsChock: function () { - Map_QM.autoChangeEleAngle(); - renderCount = 0; - /** - * @api {事件} MapAngleChange 地图的方向改变 - * @apiGroup 地图事件 - * @apiDescription 用户操作地图时触发 - * @apiVersion 4.0.0 - * @apiSampleRequest off - * - * @apiParamExample 请求示例 - * Map_QM.addEventListener("MapAngleChange",onMapAngleChange,false); - */ - Map_QM.dispatchEvent({ - type: "MapAngleChange", - data: { - hAngle: Map_QM.controls.getRotateHorizontal(), - vAngle: Map_QM.controls.getRotate(), - }, - }); - - if (Map_QM.util.options.inArea && isJUZ && allJU) { - clearTimeout(shopTime); - shopTime = setTimeout(() => { - clearTimeout(shopTime); - isJUZ = false; - Map_QM.controls.reset(); - Map_QM.util.options.deviceAng && Map_QM.rotationAngle(Map_QM.util.deviceObj.angle); - }, 10000); - } - }, - - //内部碰撞检测 - collLabel: function () { - if (!Map_QM || !isShowElement || !Map_QM.util.options.collision) { - //sprite 没有碰撞 - return; - } - if(window.requestIdleCallback){ - requestIdleCallback(Map_QM.runTaskQueue, { timeout: 300 }); - }else{ - clearTimeout(allTime); - allTime = setTimeout(() => { - clearTimeout(allTime); - Map_QM.runTaskQueue(); - }, 300); - } - }, - runTaskQueue: function (){ - if (Map_QM.mapArr[Map_QM.util.selectBuild] && Map_QM.buildObj.visible && Map_QM.mapArr[Map_QM.util.selectBuild][Map_QM.util.selectFloor]) { - if (Map_QM.mapArr[Map_QM.util.selectBuild][Map_QM.util.selectFloor].allObj.visible && - (!Map_QM.buildObj.userData.hasOwnProperty("visible") || Map_QM.buildObj.userData.visible) ) { - let childs = Map_QM.spriteList[Map_QM.util.selectBuild][Map_QM.util.selectFloor]; - childs.forEach((item) => { - let vector = new THREE.Vector3(); - vector.setFromMatrixPosition(item.matrixWorld); - vector.project(Map_QM.camera); - vector.x = (vector.x * Map_QM.w)/2 + Map_QM.w / 2; - vector.y = -((vector.y * Map_QM.h)/2) + Map_QM.h / 2; - item.userData.x = vector.x; - item.userData.y = vector.y; - let target = new THREE.Vector3(); - item.getWorldScale(target); - item.visible = true; - }); - let len = childs.length; - for(let i=0; i 1) { - this.forShopArr.push({build: Map_QM.util.startObj.build,floor: Map_QM.util.startObj.floor,PathPoint: [],}); - let pathData; - for (let j = 0; j < PathPoint.length; j++) { - let array = PathPoint[j].split("_"); - pathData = Map_QM.util.allMap[parseInt(array[0])].buildArr[parseInt(array[1])].mapData.path; - pathData.nodes.sort(Map_QM.util.sortNumber); - if (parseInt(array[1]) == this.forShopArr[index].floor) { - //同层 - this.forShopArr[index].PathPoint.push(pathData.nodes[parseInt(array[2])]); - } else { - this.forShopArr.push({ - build: parseInt(array[0]), - floor: parseInt(array[1]), - PathPoint: [], - }); - index++; - this.forShopArr[index].PathPoint.push(pathData.nodes[parseInt(array[2])]); - } - } - } else { - this.forShopArr.length = 0; - } - if (this.forShopArr.length > 0) { - //--------------------------计算方向 - direction.code = 200; - if (countType == "12") { - //16方向 - Map_QM.countSixteenArrow(); - } else { - Map_QM.countStartAndEndDire(); - } - } - console.log(this.forShopArr); - if (this.forShopArr.length > 1) { - let facType; - if (this.forShopArr[0].floor > this.forShopArr[1].floor) { - //下 - if ( - Math.abs( - parseInt(this.forShopArr[0].floor) - - parseInt(this.forShopArr[1].floor) - ) < 3 - ) { - //扶梯 - facType = Map_QM.util.getFacType("downft"); - } else { - facType = Map_QM.util.getFacType("dt"); - } - } else { - if ( - Math.abs( - parseInt(this.forShopArr[0].floor) - - parseInt(this.forShopArr[1].floor) - ) < 3 - ) { - //扶梯 - facType = Map_QM.util.getFacType("upft"); - } else { - facType = Map_QM.util.getFacType("dt"); - } - } - facType = facType + ""; - if (facType.length === 1) { - direction.dir = "600" + facType; - } else if (facType.length === 2) { - direction.dir = "60" + facType; - } else if (facType.length === 3) { - direction.dir = "6" + facType; - } - } - return direction; - }, - /** - * 计算十六方向箭头 - */ - countSixteenArrow: function () { - if (this.forShopArr[0].PathPoint.length > 1) { - let keyPoints = [], - ishas = false, - allCount = 0; - for (let i = 1; i < this.forShopArr[0].PathPoint.length; i++) { - let s = Math.sqrt(Math.pow(this.forShopArr[0].PathPoint[i].x - this.forShopArr[0].PathPoint[i - 1].x,2) + - Math.pow(this.forShopArr[0].PathPoint[i].y -this.forShopArr[0].PathPoint[i - 1].y,2)); - if (s < 20) { - continue; - } - ishas = false; - let dirObj = { - angleName: Map_QM.getPathAngle(this.forShopArr[0].PathPoint[i - 1],this.forShopArr[0].PathPoint[i]), - count: s, - }; - allCount += s; - if (keyPoints.length > 0 &&keyPoints[keyPoints.length - 1].angleName == dirObj.angleName) { - keyPoints[keyPoints.length - 1].count += s; - ishas = true; - } - if (!ishas) { - keyPoints.push(dirObj); - } - } - if (allCount < 150) { - //总长度< 150 按8方向 - Map_QM.countStartAndEndDire(); - return; - } - if (keyPoints.length == 1) { - direction.dir = Map_QM.getDirByName(keyPoints[0].angleName); - return; - } - if (keyPoints.length == 0) { - //没有路径,按方向计算 - direction.code = 404; - return; - } - let upCount = 0, - rightFrontCount = 0, - rightCount = 0, - leftFrontCount = 0; - for (let item of keyPoints) { - if (item.angleName == "up") { - upCount += item.count; - } else if (item.angleName == "down") { - upCount -= item.count; - } else if (item.angleName == "right") { - rightCount += item.count; - } else if (item.angleName == "left") { - rightCount -= item.count; - } else if (item.angleName == "rightFront") { - rightFrontCount += item.count; - } else if (item.angleName == "rightRear") { - leftFrontCount -= item.count; - } else if (item.angleName == "leftFront") { - leftFrontCount += item.count; - } else if (item.angleName == "leftRear") { - rightFrontCount -= item.count; - } - } - console.log(keyPoints); - //斜方向忽略 - let dir1 = ""; - let bjCount = Math.max(150, allCount / 10); - let onlyDir = ""; - for (let item of keyPoints) { - if ( - item.angleName != "rightFront" && - item.angleName != "leftFront" && - item.angleName != "rightRear" && - item.angleName != "leftRear" - ) { - onlyDir = - dir1.length > 0 - ? dir1.substring(dir1.length - 1, dir1.length) - : dir1; - if ( - item.angleName == "down" && - (item.count > bjCount || upCount < -1 * bjCount) - ) { - if (onlyDir != "D") { - dir1 += "D"; - } - } else if ( - item.angleName == "up" && - (item.count > bjCount || upCount > bjCount) - ) { - if (onlyDir != "T") { - dir1 += "T"; - } - } else if ( - item.angleName == "right" && - (item.count > bjCount || rightCount > bjCount) - ) { - if (onlyDir != "R") { - dir1 += "R"; - } - } else if ( - item.angleName == "left" && - (item.count > bjCount || rightCount < -1 * bjCount) - ) { - if (onlyDir != "L") { - dir1 += "L"; - } - } - } - } - //console.log(dir1) - if (dir1.length > 2) dir1 = dir1.substring(0, 2); //两个以上方向 - direction.dir = Map_QM.getDirByName(dir1); - if (!direction.dir) Map_QM.countStartAndEndDire(); - } else { - //没有路径,按方向计算 - direction.code = 404; - } - }, - - getDirByName: function (dir) { - switch (dir) { - default: - return ""; - case "T": - return "1201"; - case "R": - return "1202"; - case "D": - return "1203"; - case "L": - return "1204"; - case "TL": - return "1205"; - case "TR": - return "1206"; - case "RT": - return "1207"; - case "RD": - return "1208"; - case "DL": - return "1209"; - case "DR": - return "1210"; - case "LT": - return "1211"; - case "LD": - return "1212"; - case "up": - return "1201"; - case "rightFront": - return "8002"; - case "right": - return "1202"; - case "rightRear": - return "8004"; - case "down": - return "1203"; - case "leftRear": - return "8006"; - case "left": - return "1204"; - case "leftFront": - return "8008"; - } - }, - - /** - * 计算八方向坐标 - */ - countStartAndEndDire: function () { - let sPoint = new Map_QM.util.Point( - this.forShopArr[0].PathPoint[0].x, - this.forShopArr[0].PathPoint[0].y - ); //本层起始点坐标 - let ePoint = new Map_QM.util.Point( - this.forShopArr[0].PathPoint[this.forShopArr[0].PathPoint.length - 1].x, - this.forShopArr[0].PathPoint[this.forShopArr[0].PathPoint.length - 1].y - ); //本层结束点坐标 - switch (Map_QM.getPathAngle(sPoint, ePoint)) { - default: - direction.dir = "8001"; - case "up": - direction.dir = "8001"; - break; - case "rightFront": - direction.dir = "8002"; - break; - case "right": - direction.dir = "8003"; - break; - case "rightRear": - direction.dir = "8004"; - break; - case "down": - direction.dir = "8005"; - break; - case "leftRear": - direction.dir = "8006"; - break; - case "left": - direction.dir = "8007"; - break; - case "leftFront": - direction.dir = "8008"; - break; - } - }, - - getPathAngle: function (sPoint, ePoint) { - let x = Math.abs(sPoint.x - ePoint.x); - let y = Math.abs(sPoint.y - ePoint.y); - let tan = x / y; - let radina = Math.atan(tan); //用反三角函数求弧度 - let angle = Math.floor(180 / (Math.PI / radina)) || 0; //将弧度转换成角度 - - if (ePoint.x > sPoint.x && ePoint.y > sPoint.y) { - // 右下方 - angle = 180 - angle; - } - if (ePoint.x == sPoint.x && ePoint.y > sPoint.y) { - // 正下方 - angle = 180; - } - if (ePoint.x < sPoint.x && ePoint.y > sPoint.y) { - //左下方 - angle = angle - 180; - } - if (ePoint.x < sPoint.x && ePoint.y == sPoint.y) { - //左方 - angle = -90; - } - if (ePoint.x < sPoint.x && ePoint.y < sPoint.y) { - // 左上方 - angle = -1 * angle; - } - if (ePoint.x == sPoint.x && ePoint.y < sPoint.y) { - //上方 - angle = 0; - } - if (ePoint.x > sPoint.x && ePoint.y < sPoint.y) { - //右上方 - angle = angle; - } - if (ePoint.x > sPoint.x && ePoint.y == sPoint.y) { - //point在x轴正方向上 - angle = 90; - } - angle -= Map_QM.util.deviceObj.angle; - angle = angle > 180 ? angle - 360 : angle; - angle = angle < -180 ? angle + 360 : angle; - - if (angle > -22 && angle <= 22) { - //前 - return "up"; - } else if (angle > 22 && angle <= 67) { - //右前 - return "rightFront"; - } else if (angle > 67 && angle <= 112) { - //右 - return "right"; - } else if (angle > 112 && angle <= 158) { - //右后 - return "rightRear"; - } else if (angle > 158 || angle <= -158) { - //后 - return "down"; - } else if (angle > -158 && angle <= -112) { - //左后 - return "leftRear"; - } else if (angle > -112 && angle <= -67) { - //左 - return "left"; - } else { - //左前 - return "leftFront"; - } - }, - /** - * @api {方法} pathIcon({type:"xsj"}) 获取最近设施 - * @apiGroup 地图导航 - * @apiDescription 获取离当前楼层最近的设施 - * @apiVersion 4.0.0 - * @apiParam {JSON} type 设施缩写 - * - * @apiSampleRequest off - * - * @apiParamExample {String} 请求示例 - * - * Map_QM.pathIcon({type:"xsj"}); - * - * @apiSuccessExample 返回示例 - * { - * "floor": 楼层编号, "node": 设施导航点,"typeCode":设施编号 - * } - * - */ - pathIcon: function (iconType) { - let selIcon; // - let minS = -1; - if ( - !Map_QM.util.startObj.build && - parseInt(Map_QM.util.startObj.build) != 0 - ) { - Map_QM.util.startObj.build = parseInt(Map_QM.util.deviceObj.build); - } - try { - let startNade = Map_QM.util.startObj.build +"_" +Map_QM.util.startObj.floor +"_" +Map_QM.util.startObj.node; - const costAll = dijkstra.single_source_shortest_paths( Map_QM.util.pathStateObj.basePath,startNade,startNade).costs; - if (costAll) { - for (let i = 0;i < Map_QM.mapArr[parseInt(Map_QM.util.deviceObj.build)].length;i++) { - let sers =Map_QM.mapArr[parseInt(Map_QM.util.deviceObj.build)][i].serObj.children; //服务图标 - for (let n = 0; n < sers.length; n++) { - if (sers[n].userData.facCode == iconType.type ||((iconType.type == "xsjn" || iconType.type == "xsjv") && sers[n].userData.facCode == "xsj")) { - let toNade =sers[n].userData.buildOrder +"_" +sers[n].userData.floorOrder +"_" +sers[n].userData.navCode; - if (!selIcon) { - minS = costAll[toNade]; - if (minS) { - selIcon = sers[n]; - } - } else { - let s1 = costAll[toNade]; - if (s1 && s1 < minS) { - minS = s1; - selIcon = sers[n]; - } - } - } - } - } - - if (selIcon) { - return { - build: parseInt(Map_QM.util.deviceObj.build), - floor: selIcon.userData.floorOrder, - site: { x: selIcon.position.x, y: selIcon.position.y }, - node: selIcon.userData.navCode, - no: selIcon.userData.no, - typeCode: Map_QM.util.getFacType(iconType.type), - }; - } else { - // 当前楼栋没有 - for (let b = 0; b < Map_QM.mapArr.length; b++) { - if (b != parseInt(Map_QM.util.deviceObj.build)) { - for (let i = 0; i < Map_QM.mapArr[b].length; i++) { - let sers = Map_QM.mapArr[b][i].serObj.children; //服务图标 - for (let n = 0; n < sers.length; n++) { - if (sers[n].userData.facCode == iconType.type) { - let toNade =b +"_" +sers[n].userData.floorOrder +"_" +sers[n].userData.navCode; - if (!selIcon) { - minS = costAll[toNade]; - if (minS) { - selIcon = sers[n]; - selIcon.build = b; - } - } else { - let s1 = costAll[toNade]; - if (s1 && s1 < minS) { - minS = s1; - selIcon = sers[n]; - selIcon.build = b; - } - } - } - } - } - } - } - if (selIcon) { - return { - build: selIcon.userData.buildOrder, - floor: selIcon.userData.floorOrder, - node: selIcon.userData.navCode, - site: { x: selIcon.position.x, y: selIcon.position.y }, - no: selIcon.userData.no, - typeCode: Map_QM.util.getFacType(iconType.type), - }; - } - } - } - } catch (e) { - window.captureException && window.captureException(e); - console.log(e); - } - }, - /** - * @api {方法} pathByStartAndOver(startObj,toObj,callBackFun) 地图路径规划 - * @apiGroup 地图导航 - * @apiDescription 根据传入的起、终点;直接导航 - * @apiVersion 4.0.0 - * @apiParam {String} startObj.houseNumber 店铺编号/车位编号 - * @apiParam {String} startObj.type "shop"/"park" - * - * @apiParam {String} toObj.houseNumber 店铺编号/车位编号 - * @apiParam {String} toObj.type "shop"/"park" - * - * @apiParam {Function} callBackFun 回调函数 - * - * @apiSampleRequest off - * - * @apiParamExample {String} 请求示例 - * - * Map_QM.pathByStartAndOver({"houseNumber":"L102","type":"shop"},{"houseNumber":"L204","type":"shop"}); - * - */ - pathByStartAndOver: function (startObj, toObj, callBackFun) { - try { - Map_QM.util.startObj = this.shopNumToNavPoint(startObj, startObj.type); - let overObj = this.shopNumToNavPoint(toObj, toObj.type); - this.pathNode(overObj, callBackFun); - } catch (e) { - window.captureException && window.captureException(e); - return "传入点位无法导航"; - } - }, - - /** - * @api {方法} changeStartPoint() 设置起始点位 - * @apiGroup 地图导航 - * @apiDescription 设置起始点位 - * @apiVersion 4.0.0 - * @apiParam {int} build 起点楼栋编号 - * @apiParam {int} floor 起点楼层编号 - * @apiParam {String} node 起点编号 - * @apiParam {int} angle 起点角度 - * - * @apiSampleRequest off - * - * @apiParamExample {String} 请求示例 - * - * Map_QM.changeStartPoint({"build":0, "floor":3, "node":"20", "angle":0}); - * - */ - changeStartPoint: function (toObj) { - this.clearFloor(); - if (this.mapArr) { - for (let i = 0;i < this.mapArr[parseInt(this.util.startObj.build)].length;i++) { - for (let len =this.mapArr[parseInt(this.util.startObj.build)][i].allObj.children.length - 1;len >= 0;len--) { - let obj =this.mapArr[parseInt(this.util.startObj.build)][i].allObj.children[len]; - if (obj.userData.type == "start") { - this.mapArr[parseInt(this.util.startObj.build)][i].allObj.remove(obj); - } - } - } - } - this.util.startObj = {}; - if (toObj && toObj.node) { - let pathData =this.util.allMap[parseInt(toObj.build)].buildArr[parseInt(toObj.floor)].mapData.path; - this.util.startObj.xaxis = pathData.nodes[parseInt(toObj.node)].x; - this.util.startObj.yaxis = pathData.nodes[parseInt(toObj.node)].y; - this.util.startObj.build = parseInt(toObj.build); - this.util.startObj.floor = parseInt(toObj.floor); - this.util.startObj.node = toObj.node; - this.util.startObj.angle = toObj.angle || 0; - } else { - this.util.startObj.xaxis = this.util.deviceObj.xaxis; - this.util.startObj.yaxis = this.util.deviceObj.yaxis; - this.util.startObj.build = parseInt(this.util.deviceObj.build); - this.util.startObj.floor = parseInt(this.util.deviceObj.floor); - this.util.startObj.node = this.util.deviceObj.node; - this.util.startObj.angle = this.util.deviceObj.angle; - this.util.startObj.xaxis = this.util.deviceObj.xaxis; - this.util.startObj.yaxis = this.util.deviceObj.yaxis; - } - this.mapArr[parseInt(this.util.startObj.build)][parseInt(this.util.startObj.floor)].setStartSite( - this.util.startObj.xaxis, - this.util.startObj.yaxis, - parseInt(this.util.shopHeight) + 20 - ); - }, - - /** - * @api {方法} changeMapIPState(ipName,color) 改变POI颜色 - * @apiGroup 地图交互 - * @apiDescription 改变POI 颜色 - * @apiVersion 4.0.0 - * @apiParam {string} ipName POI名称 - * @apiParam {string} color 颜色字符串 - * - * @apiSampleRequest off - * - * @apiParamExample 请求示例 - * - * Map_QM.changeMapIPState("L1001","#ffff00"); - * - */ - changeMapIPState: function (ipName, color) { - // #775544 #AD8164 - for (let i = 0; i < this.mapArr[this.util.selectBuild].length; i++) { - let shopArr = this.mapArr[this.util.selectBuild][i].shopObj.children; - for (let k = 0; k < shopArr.length; k++) { - if (shopArr[k].name == ipName ||(shopArr[k].userData && shopArr[k].userData.houseNumber == ipName)) { - shopArr[k].userData.initMaterial = shopArr[k].material; - shopArr[k].material = this.util.getMeshMaterial(color || 0xeab16e); - break; - } - } - } - }, - /** - * @api {方法} resetMapIPState(ipName) 恢复POI颜色 - * @apiGroup 地图交互 - * @apiDescription 恢复POI初始颜色 - * @apiVersion 4.0.0 - * @apiParam {string} ipName POI名称 - * - * @apiSampleRequest off - * - * @apiParamExample 请求示例 - * - * Map_QM.resetMapIPState("L101"); - * - */ - resetMapIPState: function (ipName) { - for (let i = 0; i < this.mapArr[this.util.selectBuild].length; i++) { - let shopArr = this.mapArr[this.util.selectBuild][i].shopObj.children; - for (let k = 0; k < shopArr.length; k++) { - if (shopArr[k].name == ipName) { - shopArr[k].material = shopArr[k].userData.initMaterial; - break; - } - } - } - }, - - /** - * @api {方法} getMapIPData(ipName) 获取POI 基础数据 - * @apiGroup 地图交互 - * @apiDescription 获取POI 基础数据 - * @apiVersion 4.0.0 - * @apiParam {string} ipName POI名称 - * - * @apiSampleRequest off - * - * @apiParamExample 请求示例 - * - * Map_QM.getMapIPData("L1001"); - * - * @apiSuccessExample 返回示例 - * { - * houseNumber:店铺编号, shopName:店铺名 node:导航点, floor:楼层编号, xaxis:中心点X坐标, yaxis:中心点Y坐标, borderColor:边框色, entColor:填充色 - * } - */ - getMapIPData: function (ipName) { - for (let i = 0; i < Map_QM.mapArr[Map_QM.util.selectBuild].length; i++) { - let shopArr = Map_QM.mapArr[Map_QM.util.selectBuild][i].shopObj.children; - for (let k = 0; k < shopArr.length; k++) { - if (shopArr[k].name == ipName ||(shopArr[k].userData && shopArr[k].userData.houseNumber == ipName)) { - return shopArr[k].userData; - } - } - } - }, - - /** - * @api {方法} pathNode() 地图模拟导航 - * @apiGroup 地图导航 - * @apiDescription 地图路径模拟导航 - * @apiVersion 4.0.0 - * @apiParam {int} floor 楼层编号 - * @apiParam {string} node 路径点位编号 - * @apiParam {function} callBackFun 回调方法 - * - * @apiSampleRequest off - * - * @apiParamExample 请求示例 - * - * Map_QM.pathNode({build:0, floor:2,node:"53"},callBackFun); - * - */ - pathNode: function (toObj, callBackFun) { - Map_QM.util.isMorePath = false; - if (!toObj) { - return { direction: "", wayList: [] }; - } - pathCameraState = Map_QM.util.options.pathStyle; - Map_QM.reSetGuide(); - Map_QM.onShowDeviceSite(); - Map_QM.selectShop = null; - Map_QM.util.pathStateObj.isPathState = true; - Map_QM.elementDestroy("all"); - if ( - Map_QM.util.initModelArr && - Map_QM.util.initModelArr.length > 0 && - Map_QM.util.changeDist.inner > Map_QM.util.options.minDis - ) { - Map_QM.controls.maxDistance = Map_QM.util.changeDist.inner; - } - if (!Map_QM.util.startObj.xaxis && !Map_QM.util.startObj.yaxis) { - Map_QM.changeStartPoint(null); - } - Map_QM.util.overObj = null; - Map_QM.util.overObj = { - build: toObj.build || 0, - floor: toObj.floor, - node: toObj.node, - houseNumber: toObj.houseNumber, - comeIn: toObj.comeIn || "", - }; - if (Map_QM.util.overObj.node != "") { - Map_QM.cancelRender(); - this.onFindPathModel(); - if (callBackFun) { - Map_QM.parseForShopArr(); - const data = JSON.parse( - JSON.stringify(Map_QM.util.pathStateObj.forShopArr) - ); - callBackFun(data); - } - Map_QM.startRender(); - } - }, - - /** - * @api {方法} pathShopList() 指定路径导航 - * @apiGroup 地图导航 - * @apiDescription 根据传入的店铺编号列表绘制导航路径 - * @apiVersion 4.0.0 - * @apiParam {Array} shopList 路径的店铺编号数组 - * @apiParam {Function} callBackFun 回调函数 - * - * @apiSampleRequest off - * - * @apiParamExample 请求示例 - * - * Map_QM.pathShopList(["L1-1","L1-5","L1-8","L1-10","LA-13"],()=>{}); - * - */ - pathShopList: function (shopList, callBackFun) { - if (!shopList || shopList.length < 2) { - return { direction: "", wayList: [] }; - } - let pathList = shopList.map(Map_QM.getPathNodeByHousenumber); - Map_QM.pathList(pathList, callBackFun); - }, - /** - * 获取导航点 - */ - getPathNodeByHousenumber: function (houseNumber) { - for (let h = 0; h < Map_QM.mapArr.length; h++) { - for (let i = 0; i < Map_QM.mapArr[h].length; i++) { - let shopArr = Map_QM.mapArr[h][i].shopObj.children; - for (let k = 0; k < shopArr.length; k++) { - if ( - shopArr[k].name == houseNumber && - parseInt(shopArr[k].node) >= 0 - ) { - return { - build: h, - floor: i, - path: h + "_" + i + "_" + shopArr[k].node, - node: shopArr[k].node, - }; - } - } - } - } - }, - getPathNodeByNode: function (nodeObj) { - let build = nodeObj.buildOrder || 0; - let floor = nodeObj.floorOrder || 0; - let node = parseInt(nodeObj.node); - if (isNaN(node)) { - return null; - } else { - return { - build: build, - floor: floor, - path: build + "_" + floor + "_" + node, - node: node, - }; - } - }, - /** - * @api {方法} pathShopList() 指定路径导航 - * @apiGroup 地图导航 - * @apiDescription 根据传入的店铺编号列表绘制导航路径 - * @apiVersion 4.0.0 - * @apiParam {Array} shopList 路径的店铺编号数组 - * @apiParam {Function} callBackFun 回调函数 - * - * @apiSampleRequest off - * - * @apiParamExample 请求示例 - * [{buildOrder:0,floorOrder:0,node:8},{buildOrder:0,floorOrder:0,node:13},{buildOrder:0,floorOrder:0,node:16},{buildOrder:0,floorOrder:0,node:20}],()=>{} - */ - pathNodeList: function (nodeList, callBackFun, isShowNo = true) { - Map_QM.elementDestroy("map_no", true); - if (!nodeList || nodeList.length < 2) { - return { direction: "", wayList: [] }; - } - Map_QM.selectShop = null; - Map_QM.util.pathStateObj.isPathState = true; - let pathList = nodeList.map(Map_QM.getPathNodeByNode); - Map_QM.pathList(pathList, callBackFun, isShowNo); - }, - pathList: function (pathList, callBackFun, isShowNo = false) { - Map_QM.util.isMorePath = true; - Map_QM.clearFloor(Map_QM.util.selectFloor || -1); - pathCameraState = Map_QM.util.options.pathStyle; - Map_QM.selectShop = null; - Map_QM.util.pathStateObj.isPathState = true; - Map_QM.cancelRender(); - let startNode, - endNode, - isFrist = true, - PathPoint = []; - try { - let index = 0, - findIndex = 0, - pathNodes = []; - pathList.forEach((item, inx) => { - if (isShowNo) { - //显示序号 - let pathN =Map_QM.util.allMap[parseInt(item.build)].buildArr[parseInt(item.floor)].mapData.path.nodes; - pathN.sort(Map_QM.util.sortNode); - let labelDiv = document.createElement("div"); - labelDiv.className = "map_no"; - labelDiv.innerText = inx + 1; - let img = document.createElement("img"); - img.src = "../static/img/arrowBlack.svg"; - labelDiv.appendChild(img); - let shopLabel = new THREE.CSS2DObject(labelDiv); - shopLabel.position.set(pathN[parseInt(item.node)].x,-1 * pathN[parseInt(item.node)].y,30); - shopLabel.applyMatrix4(Map_QM.mapArr[parseInt(item.build)][parseInt(item.floor)].allObj.matrix); - shopLabel.userData.type = "map_no"; - shopLabel.userData.index = inx; - shopLabel.userData.mapShow = true; - shopLabel.userData.isShow = false; //切换楼层默认不显示,且不参与碰撞检测 - Map_QM.CSSObject.add(shopLabel); - } - - if (startNode && startNode.path) { - endNode = item; - if (endNode && endNode.path) { - let iNodes = - Map_QM.util.allMap[parseInt(endNode.build)].buildArr[parseInt(endNode.floor)].mapData.path.nodes; - iNodes.sort(Map_QM.util.sortNode); - Map_QM.util.overObj.build = endNode.build; - Map_QM.util.overObj.floor = endNode.floor; - Map_QM.util.overObj.node = endNode.node; - Map_QM.util.overObj.xaxis = iNodes[parseInt(endNode.node)].x; - Map_QM.util.overObj.yaxis = iNodes[parseInt(endNode.node)].y; - Map_QM.util.overObj.angle = 0; - let pathNode = dijkstra.find_path(Map_QM.util.pathStateObj.graphPath,startNode.path,endNode.path).nodes; - if (pathNode.length > 1) { - let pathData; - for (let j = 0; j < pathNode.length; j++) { - let array = pathNode[j].split("_"); - if (j == 0 && isFrist) { - pathNodes.push({build: parseInt(array[0]),floor: parseInt(array[1]),pathNode: []}); - } - pathData = Map_QM.util.allMap[parseInt(array[0])].buildArr[parseInt(array[1])].mapData.path; - pathData.nodes.sort(Map_QM.util.sortNode); - if (array[0] == pathNodes[index].build) { - if (array[1] == pathNodes[index].floor) { - if (!pathNodes[index].pathNode[findIndex]) { - pathNodes[index].pathNode[findIndex] = []; - } - pathNodes[index].pathNode[findIndex].push(pathData.nodes[parseInt(array[2])]); - } else { - if (j > 0) { - pathNodes[index].Facilities = this.getFacilIcon(pathNode[j - 1].split("_"),parseInt(array[0])); - } else { - pathNodes[index].Facilities = null; - } - pathNodes.push({build: parseInt(array[0]),floor: parseInt(array[1]),pathNode: [],}); - index++; - findIndex = 0; - if (!pathNodes[index].pathNode[findIndex]) { - pathNodes[index].pathNode[findIndex] = []; - } - pathNodes[index].pathNode[findIndex].push(pathData.nodes[parseInt(array[2])]); - } - } else { - pathNodes.push({ build: parseInt(array[0]),floor: parseInt(array[1]),pathNode: []}); - index++; - findIndex = 0; - if (!pathNodes[index].pathNode[findIndex]) { - pathNodes[index].pathNode[findIndex] = []; - } - pathNodes[index].pathNode[findIndex].push( - pathData.nodes[parseInt(array[2])] - ); - } - } - } - if (isFrist) { - isFrist = false; - } else { - pathNode.shift(); - } - PathPoint.push(...pathNode); - startNode = endNode; - findIndex++; - } - } else { - startNode = item; - Map_QM.changeStartPoint({ - build: startNode.build, - floor: startNode.floor, - node: startNode.node, - angle: 0, - }); - } - }); - } catch (e) { - window.captureException && window.captureException(e); - console.log(e); - return; - } - Map_QM.forShopArr.length = 0; - Map_QM.util._indexPathFloor = 0; - Map_QM.util.pathStateObj.isPathPlay = true; - Map_QM.forShopListPath(PathPoint); //传入所有导航点 - if (callBackFun) { - Map_QM.parseForShopArr(); - const data = JSON.parse( - JSON.stringify(Map_QM.util.pathStateObj.forShopArr) - ); - callBackFun(data); - } - Map_QM.startRender(); - pathNodeList = null; - }, - - forShopListPath: function (PathPoint) { - let index = 0; - this.forShopArr = []; - if (PathPoint.length > 1) { - let pathData; - for (let j = 0; j < PathPoint.length; j++) { - let array = PathPoint[j].split("_"); - if (j == 0) { - this.forShopArr.push({ - build: parseInt(array[0]), - floor: parseInt(array[1]), - PathPoint: [], - }); - } - pathData = Map_QM.util.allMap[parseInt(array[0])].buildArr[parseInt(array[1])].mapData.path; - pathData.nodes.sort(Map_QM.util.sortNode); - if (array[0] == this.forShopArr[index].build) { - if (array[1] == this.forShopArr[index].floor) { - this.forShopArr[index].PathPoint.push(pathData.nodes[parseInt(array[2])]); - } else { - if (j > 0) { - this.forShopArr[index].Facilities = this.getFacilIcon(PathPoint[j - 1].split("_"),parseInt(array[0])); - } else { - this.forShopArr[index].Facilities = null; - } - this.forShopArr.push({build: parseInt(array[0]),floor: parseInt(array[1]),PathPoint: []}); - index++; - this.forShopArr[index].PathPoint.push(pathData.nodes[parseInt(array[2])]); - } - } else { - this.forShopArr.push({ build: parseInt(array[0]), floor: parseInt(array[1]), PathPoint: []}); - index++; - this.forShopArr[index].PathPoint.push(pathData.nodes[parseInt(array[2])]); - } - } - if (Map_QM.forShopArr.length > 0) { - // "floor" PathPoint Direction (Facilities) - for (let m = 0; m < Map_QM.forShopArr.length; m++) { - //查找经过店铺 - Map_QM.forShopArr[m].wayShop = Map_QM.foreignShop( - Map_QM.forShopArr[m].PathPoint, - Map_QM.forShopArr[m].build, - Map_QM.forShopArr[m].floor, - m - ); - if (Map_QM.util.overObj.build == Map_QM.forShopArr[m].build &&Map_QM.util.overObj.floor == Map_QM.forShopArr[m].floor) { - let len = Map_QM.forShopArr[m].wayShop.length; - if (Map_QM.forShopArr[m].wayShop[len - 1] && Map_QM.forShopArr[m].wayShop[len - 1].shop.yaxis == Map_QM.util.overObj.node) { - Map_QM.forShopArr[m].wayShop.pop(); - } - } - } - } else { - console.error("无可行路径"); - return; - } - this.onFindPathToObj(); - } - pathNodeList = null; - }, - - parseForShopArr: function () { - Map_QM.util.pathStateObj.forShopArr = { direction: "", wayList: [] }; - Map_QM.forShopArr.forEach((item, index) => { - if (item.hasOwnProperty("Direction")) { - Map_QM.util.pathStateObj.forShopArr.direction = item.Direction; - Map_QM.util.pathStateObj.forShopArr.directionEn = item.DirectionEn; - } - if (item.hasOwnProperty("wayShop") && item.wayShop) { - for (let i = 0; i < item.wayShop.length; i++) { - let enTlite = item.wayShop[i].shop.shopNameEn == "" ? item.wayShop[i].shop.shopName : item.wayShop[i].shop.shopNameEn; - Map_QM.util.pathStateObj.forShopArr.wayList.push({ - isAddPrefix: false, - shopName: "经过 " + item.wayShop[i].shop.shopName || item.wayShop[i].shop.name, - shopNameEn: "PASS " + enTlite, - logoPath: item.wayShop[i].shop.logoPath || item.wayShop[i].shop.logoUrl, - shopCode: item.wayShop[i].shop.shopCode, - houseNumber: item.wayShop[i].shop.houseNumber, - }); - } - } - if (item.hasOwnProperty("Facilities") && item.Facilities) { - //设施 - Map_QM.util.pathStateObj.forShopArr.wayList.push({ - isAddPrefix: true, - shopName: "乘坐 " + item.Facilities.userData.title +"到 " + Map_QM.mapArr[parseInt(Map_QM.forShopArr[index + 1].build)][parseInt(Map_QM.forShopArr[index + 1].floor)].floorName, - shopNameEn:"BY " +item.Facilities.userData.title +"TO " + Map_QM.mapArr[parseInt(Map_QM.forShopArr[index + 1].build)][parseInt(Map_QM.forShopArr[index + 1].floor)].floorName, - logoPath: item.Facilities.imgUrl, - shopCode: ((Math.random() * 0x1234567) | 0).toString(16).substring(0), - houseNumber:item.Facilities.userData.facCode + item.Facilities.userData.no, - }); - } - }); - }, - /** - * @api {方法} getGapByPathNode() 获取实际距离 - * @apiGroup 地图导航 - * @apiDescription 通过点位获取距离 - * @apiVersion 4.0.0 - * @apiParam {int} floor 楼层编号 - * @apiParam {string} node 路径点位编号 - * - * @apiSampleRequest off - * - * @apiParamExample 请求示例 - * - * Map_QM.getGapByPathNode({floor:2,node:"53"}); - * - * @apiSuccessExample {Object} dist 距离米数 time 步行时间 - * { - * dis:200,time:4 - * } - */ - getGapByPathNode: function (toObj) { - let startNade = Map_QM.util.deviceObj.build +"_" + Map_QM.util.deviceObj.floor + "_" + Map_QM.util.deviceObj.node; - let toNade = toObj.build + "_" + toObj.floor + "_" + toObj.node; - let path = { cost: -1 }, - minTime = 1; - try { - path = dijkstra.find_path( Map_QM.util.pathStateObj.basePath,startNade,toNade); - minTime = parseInt(path.cost / Map_QM.util.options.mapScale / 50) < 0.5? 0.5 : parseInt(path.cost / Map_QM.util.options.mapScale / 50); - console.log(`距离目的地 ${parseInt(path.cost / Map_QM.util.options.mapScale)} 米,预计${minTime} 分钟`); // 21 是比例尺 - } catch (e) { - window.captureException && window.captureException(e); - console.log(e); - } - return { - dis: parseInt(path.cost / Map_QM.util.options.mapScale), - time: minTime, - }; - }, - /** - * @api {方法} pathPark() 获取车位点位 - * @apiGroup 地图数据 - * @apiDescription 获取车位导航点 - * @apiVersion 4.0.0 - * @apiParam {String} houseNumber 车位编号 - * - * @apiSampleRequest off - * - * @apiParamExample 请求示例 - * - * Map_QM.pathPark({houseNumber:"B1002"}); - * - * @apiSuccessExample 返回示例 - * { - * houseNumber: 车位编号, node: 导航点, floor: 楼层编号, xaxis: 中心点X坐标, yaxis: 中心点Y坐标 - * } - */ - pathPark: function (toObj) { - return this.shopNumToNavPoint(toObj, "park"); - }, - - /** - * @api {方法} pathShopByName() 获取店铺点位 - * @apiGroup 地图数据 - * @apiDescription 通过店铺名称获取点位 - * @apiVersion 4.0.0 - * @apiParam {String} shopName 店铺名称 - * - * @apiSampleRequest off - * - * @apiParamExample 请求示例 - * - * Map_QM.pathShopByName("金拱门"); - * - * @apiSuccessExample 返回示例 - * { - * houseNumber: 店铺编号, node: 导航点, floor: 楼层编号, xaxis: 中心点X坐标, yaxis: 中心点Y坐标, comeIn:店铺多门点 - * } - */ - pathShopByName: function (shopName) { - for (let item of Map_QM.util.shopData) { - if (item.name === shopName) { - let toObj = { houseNumber: item.houseNumber, node: item.yaxis }; - for (let h = 0; h < Map_QM.util.allMap.length; h++) { - let sArr = Map_QM.util.allMap[h].buildArr; - for (let i = 0; i < sArr.length; i++) { - let shops = Map_QM.util.allMap[h].buildArr[i].mapData.shopArea; - for (let k = 0; k < shops.length; k++) { - if (shops[k].name == toObj.houseNumber) { - toObj.floor = i; - toObj.build = h; - toObj.node = shops[k].shopNav; - toObj.xaxis = shops[k].xaxis; - toObj.yaxis = shops[k].yaxis; - if (shops[k].comeIn) { - toObj.comeIn = shops[k].comeIn; - } - return toObj; - } - } - } - } - return toObj; - } - } - }, - /** - * @api {方法} changeBoxStateByFormat() 切换box显示状态 - * @apiGroup 地图交互 - * @apiDescription 根据业态切换box显示状态 - * @apiVersion 4.0.0 - * @apiParam {String} formatCode 业态Id - * @apiParam {Boolean} isShow 是否显示 - * - * @apiSampleRequest off - * - * @apiParamExample {Object} 请求示例 - * - * Map_QM.changeBoxStateByFormat("X8f1sfGl0gfa_QwVcMy86",false); - * - */ - changeBoxStateByFormat: function (formatCode, isShow) { - for (let h = 0; h < Map_QM.mapArr.length; h++) { - for (let i = 0; i < Map_QM.mapArr[h].length; i++) { - let shopArr = Map_QM.mapArr[h][i].shopObj.children; - for (let k = 0; k < shopArr.length; k++) { - if ( - shopArr[k].userData && - shopArr[k].userData.formatCode == formatCode - ) { - shopArr[k].visible = isShow; - } - } - } - } - Map_QM.updateRender(); - Map_QM.collLabel(); - }, - /** - * @api {方法} changeBoxStateByName() 切换box显示状态 - * @apiGroup 地图交互 - * @apiDescription 根据名称切换box显示状态 - * @apiVersion 4.0.0 - * @apiParam {String} houseNumber box名称 - * @apiParam {Boolean} isShow 是否显示 - * - * @apiSampleRequest off - * - * @apiParamExample {Object} 请求示例 - * - * Map_QM.changeBoxStateByName("L101", true); - * - */ - changeBoxStateByName: function (houseNumber, isShow) { - for (let h = 0; h < Map_QM.mapArr.length; h++) { - for (let i = 0; i < Map_QM.mapArr[h].length; i++) { - let shopArr = Map_QM.mapArr[h][i].shopObj.children; - for (let k = 0; k < shopArr.length; k++) { - if (shopArr[k].name == houseNumber) { - shopArr[k].visible = isShow; - } - } - } - } - Map_QM.updateRender(); - Map_QM.collLabel(); - }, - /** - * @api {方法} shopNumToNavPoint() 获取导航点位 - * @apiGroup 地图导航 - * @apiDescription 通过店铺编号或车位获取导航点位 - * @apiVersion 4.0.0 - * @apiParam {Object} object build,floor,houseNumber 楼栋编号,楼层编号,店铺或车位编号 - * @apiParam {String} type 店铺或车位标识 "shop" "park" - * - * @apiSampleRequest off - * - * @apiSuccessExample 返回示例 - * { - * houseNumber: 店铺编号, node: 导航点, floor: 楼层编号, xaxis: 中心点X坐标, yaxis: 中心点Y坐标, comeIn:店铺多门点 - * } - */ - shopNumToNavPoint: function (obj, type) { - let shopArr; - let reObj = { - build: Map_QM.util.selectBuild, - node: "", - xaxis: "", - yaxis: "", - floor: "", - comeIn: "", - }; - for (let h = 0; h < Map_QM.util.allMap.length; h++) { - let sArr = Map_QM.util.allMap[h].buildArr; - for (let i = 0; i < sArr.length; i++) { - if (type == "shop") { - shopArr = sArr[i].mapData.shopArea; - } else if (type == "park") { - shopArr = sArr[i].mapData.parkArea; - } - for (let k = 0; k < shopArr.length; k++) { - if (shopArr[k].name == obj.houseNumber) { - reObj.floor = i; - reObj.build = h; - reObj.xaxis = shopArr[k].xaxis; - reObj.yaxis = shopArr[k].yaxis; - reObj.node = shopArr[k].shopNav; - reObj.houseNumber = obj.houseNumber; - if (shopArr[k].comeIn) { - reObj.comeIn = shopArr[k].comeIn; - } - return reObj; - } - } - } - } - }, - /** - * 模拟导航获取路线 - */ - onFindPathModel: function (usePath = null) { - Map_QM.forShopArr.length = 0; - Map_QM.util._indexPathFloor = 0; - Map_QM.util.pathStateObj.isPathPlay = true; - if (isNaN(parseInt(Map_QM.util.startObj.node)) ||parseInt(Map_QM.util.startObj.node) == -1) { - return; - } - try { - if (!Map_QM.util.startObj.xaxis) { - let pathData = Map_QM.util.allMap[parseInt(Map_QM.util.startObj.build)].buildArr[parseInt(Map_QM.util.startObj.floor)].mapData.path; - Map_QM.util.startObj.xaxis = pathData.nodes[parseInt(Map_QM.util.startObj.node)].x; - Map_QM.util.startObj.yaxis = pathData.nodes[parseInt(Map_QM.util.startObj.node)].y; - } - if (!usePath) { - usePath = Map_QM.util.pathStateObj.graphPath; - } - if (Map_QM.util.overObj.comeIn) { - const costall = dijkstra.single_source_shortest_paths( Map_QM.util.pathStateObj.graphPath, startNade,startNade).costs; - if (costall) { - let inArray = Map_QM.util.overObj.comeIn.split(","); - Map_QM.util.overObj.node = Map_QM.getMinCostByArray( Map_QM.util.overObj.floor,inArray, costall); - } - } - let startNade = - Map_QM.util.startObj.build + "_" + Map_QM.util.startObj.floor + "_" + Map_QM.util.startObj.node; - let toNade = Map_QM.util.overObj.build + "_" + Map_QM.util.overObj.floor + "_" + Map_QM.util.overObj.node; - let path = dijkstra.find_path(usePath, startNade, toNade); - Map_QM.forShopPath(path.nodes); - } catch (e) { - window.captureException && window.captureException(e); - console.log(e); - return; - } - }, - forShopPath: function (PathPoint) { - let Dir = "向前出发", - index = 0; - let DirEn = "to forward"; - this.forShopArr = []; - if (PathPoint.length > 1) { - this.forShopArr.push({ - build: Map_QM.util.startObj.build, - floor: Map_QM.util.startObj.floor, - PathPoint: [], - }); - let pathData; - for (let j = 0; j < PathPoint.length; j++) { - let array = PathPoint[j].split("_"); - pathData = Map_QM.util.allMap[parseInt(array[0])].buildArr[parseInt(array[1])].mapData.path; - if (array[0] == this.forShopArr[index].build) { - if (array[1] == this.forShopArr[index].floor) { - this.forShopArr[index].PathPoint.push(pathData.nodes[parseInt(array[2])]); - } else { - if (j > 0) { - this.forShopArr[index].Facilities = this.getFacilIcon( PathPoint[j - 1].split("_"),parseInt(array[0])); - } else { - this.forShopArr[index].Facilities = null; - } - this.forShopArr.push({ - build: parseInt(array[0]), - floor: parseInt(array[1]), - PathPoint: [] - }); - index++; - this.forShopArr[index].PathPoint.push(pathData.nodes[parseInt(array[2])]); - } - } else { - this.forShopArr.push({ - build: parseInt(array[0]), - floor: parseInt(array[1]), - PathPoint: [] - }); - index++; - this.forShopArr[index].PathPoint.push(pathData.nodes[parseInt(array[2])]); - } - } - let dy = 0, - dx = 0, - ang = 0; - if (this.forShopArr[0].PathPoint.length > 1) { - if (this.forShopArr[0].PathPoint.length == 2) { - dy = this.forShopArr[0].PathPoint[1].y - this.forShopArr[0].PathPoint[0].y; - dx = this.forShopArr[0].PathPoint[1].x - this.forShopArr[0].PathPoint[0].x; - } else { - dy = this.forShopArr[0].PathPoint[2].y - this.forShopArr[0].PathPoint[1].y; - dx = this.forShopArr[0].PathPoint[2].x -this.forShopArr[0].PathPoint[1].x; - } - ang = (Math.atan2(dy, dx) * 180) / Math.PI - Map_QM.util.deviceObj.angle; - ang = ang > 180 ? ang - 360 : ang; - ang = ang < -180 ? ang + 360 : ang; - - if (ang < -50 && ang >= -130) { - Dir = "向前出发"; - DirEn = "to forward"; - } else if (ang >= -50 && ang < 50) { - Dir = "向右出发"; - DirEn = "to right"; - } else if (ang >= 50 && ang < 130) { - Dir = "向后出发"; - DirEn = "to back"; - } else { - Dir = "向左出发"; - DirEn = "to left"; - } - } - let pLen = Map_QM.forShopArr[Map_QM.forShopArr.length - 1].PathPoint.length; - Map_QM.util.overObj.xaxis = Map_QM.forShopArr[Map_QM.forShopArr.length - 1].PathPoint[pLen - 1].x; - Map_QM.util.overObj.yaxis = Map_QM.forShopArr[Map_QM.forShopArr.length - 1].PathPoint[pLen - 1].y; - - if (Map_QM.forShopArr.length > 0) { - // "floor" PathPoint Direction (Facilities) - Map_QM.forShopArr[0].Direction = Dir; - Map_QM.forShopArr[0].DirectionEn = DirEn; - - for (let m = 0; m < Map_QM.forShopArr.length; m++) { - //查找经过店铺 - Map_QM.forShopArr[m].wayShop = Map_QM.foreignShop( - Map_QM.forShopArr[m].PathPoint, - Map_QM.forShopArr[m].build, - Map_QM.forShopArr[m].floor, - m - ); - if (Map_QM.util.overObj.build == Map_QM.forShopArr[m].build && Map_QM.util.overObj.floor == Map_QM.forShopArr[m].floor ) { - let len = Map_QM.forShopArr[m].wayShop.length; - if (Map_QM.forShopArr[m].wayShop[len - 1] &&Map_QM.forShopArr[m].wayShop[len - 1].shop.yaxis == Map_QM.util.overObj.node) { - Map_QM.forShopArr[m].wayShop.pop(); - } - } - } - /** - * @api {事件} InitPathOver 地图导航状态完成 - * @apiGroup 地图事件 - * @apiDescription 地图开始导航时触发 - * @apiVersion 4.0.0 - * @apiSampleRequest off - * - * @apiParamExample 请求示例 - * Map_QM.addEventListener("InitPathOver",onInitPathOver,false); - */ - Map_QM.dispatchEvent({ - type: "InitPathOver", - data: Map_QM.forShopArr, - }); - } else { - console.error("无可行路径,请检查起、终点位"); - return; - } - this.onFindPathToObj(); - } - }, - getMinCostByArray: function (floor, array, costall) { - if (!Map_QM.util.startObj) { - Map_QM.changeStartPoint(); - } - if (!Map_QM.util.numBuild) { - Map_QM.util.numBuild = 0; - } - let mis = -1, - nodeP; - for (let i = 0; i < array.length; i++) { - let toNade = Map_QM.util.numBuild + "_" + floor + "_" + array[i]; - let PathPoint = costall[toNade]; - if (mis == -1) { - mis = PathPoint; - nodeP = array[i]; - } else { - if (mis > PathPoint) { - mis = PathPoint; - nodeP = array[i]; - } - } - } - return nodeP; - }, - /** - * 途径店铺 - */ - foreignShop: function (pathArr, build, cFloor, m) { - let shopList = []; - let shops = - Map_QM.mapArr[parseInt(build)][parseInt(cFloor)].shopObj.children; - for (let n = 0; n < pathArr.length; n++) { - for (let i = 0; i < shops.length; i++) { - if (shops[i].userData && shops[i].userData.type == "shop" && shops[i].userData.navRecommend) { - if (shops[i].userData.node == pathArr[n].id &&shops[i].userData.shopData) { - let data = { - pathArrIn: m, - pathIndex: n, - shop: shops[i].userData.shopData - }; - shopList.push(data); - break; - } - } - } - } - return shopList; - }, - getFacilIcon: function (fromFArr, build = -1) { - if (build === -1) { - build = Map_QM.util.selectBuild; - } - let childs = this.mapArr[build][fromFArr[1]].serObj.children; - let selectEle; - for (let i = 0; i < childs.length; i++) { - if (childs[i].type == "Object3D" &&childs[i].userData.navCode == fromFArr[2] &&"dt,ft,upft,lt,downft".search(childs[i].userData.facCode) != -1 ) { - selectEle = { - imgUrl: childs[i].userData.src, - userData: childs[i].userData, - position: { x: childs[i].position.x, y: childs[i].position.y } - }; - break; - } - } - return selectEle; - }, - - /** - * 寻路动画方法 - */ - onFindPathToObj: function () { - Map_QM.util._indexPathFloor = 0; - Map_QM.callBackLoadOver = Map_QM.callBackForPathShop; //楼层初始化完成后回调 - if (pathCameraState == "2D") { - Map_QM.onShowMeDir(); - Map_QM.controls.enabled = false; - Map_QM.guide = Map_QM.man_2d; - } - Map_QM.changeBuildInner( Map_QM.forShopArr[Map_QM.util._indexPathFloor].build,Map_QM.forShopArr[Map_QM.util._indexPathFloor].floor); - }, - /** - * 播放楼层动画完成后 - */ - callBackForPathShop: function () { - Map_QM.callBackLoadOver = null; - if (Map_QM.util.pathStateObj.isPathState) { - //如果是寻路状态,继续导航 - Map_QM.onFindPath(); - } - }, - /** - * 寻路方法 - * @param {Object} startN - * @param {Object} endN - */ - onFindPath: function () { - TweenMax.killAll(true); - if (Map_QM.util.overObj.floor == Map_QM.util.selectFloor && Map_QM.util.overObj.xaxis) { - Map_QM.mapArr[Map_QM.util.overObj.build][Map_QM.util.overObj.floor].setOverSite(Map_QM.util.overObj.xaxis, Map_QM.util.overObj.yaxis,parseInt(Map_QM.util.shopHeight)); - } else { - Map_QM.endModel && (Map_QM.endModel.visible = false); - Map_QM.endIcon && (Map_QM.endIcon.visible = false); - } - if (Map_QM.forShopArr.length > 0) { - document.addEventListener("pathOver", Map_QM.onFindPathFloor, true); - if (Map_QM.util.isMorePath) { - Map_QM.mapArr[Map_QM.forShopArr[Map_QM.util._indexPathFloor].build][Map_QM.forShopArr[Map_QM.util._indexPathFloor].floor].findPath.onFindPathAnimation(pathNodes[Map_QM.util._indexPathFloor].pathNode, Map_QM.util.isMorePath,pathNodes[Map_QM.util._indexPathFloor].floor); //传入数组 - } else { - Map_QM.mapArr[Map_QM.forShopArr[Map_QM.util._indexPathFloor].build][Map_QM.forShopArr[Map_QM.util._indexPathFloor].floor].findPath.clearPath(); - Map_QM.mapArr[Map_QM.forShopArr[Map_QM.util._indexPathFloor].build][Map_QM.forShopArr[Map_QM.util._indexPathFloor].floor].findPath.onFindPathAnimation(Map_QM.forShopArr[Map_QM.util._indexPathFloor].PathPoint,false ); //传入数组 - } - Map_QM.mapArr[Map_QM.forShopArr[Map_QM.util._indexPathFloor].build][Map_QM.forShopArr[Map_QM.util._indexPathFloor].floor].findPath.guidePathPlay(Map_QM.forShopArr[Map_QM.util._indexPathFloor]); - Map_QM.controlsChock(); - } - }, - - /** - * 显示楼层 - */ - showNavFloor: function (fromFloor, toFloor, build) { - let floorArr = []; - let min = Math.min(fromFloor, toFloor); - let max = Math.max(fromFloor, toFloor); - for (let i = min; i <= max; i++) { - floorArr.push(Map_QM.mapArr[build][i].floorName); - } - if (floorArr.length > 5) { - floorArr.splice(2, floorArr.length - 3); - floorArr[1] = "..."; - } - return floorArr; - }, - - //导航完成事件 - onFindPathFloor: function (event) { - document.removeEventListener("pathOver", Map_QM.onFindPathFloor); - if (Map_QM.forShopArr.length <= Map_QM.util._indexPathFloor) { - return; - } - if (Map_QM.util._indexPathFloor < Map_QM.forShopArr.length - 1) { - //楼层切换 - if (Map_QM.forShopArr[Map_QM.util._indexPathFloor].Facilities) { - let pathFloor = Map_QM.forShopArr[Map_QM.util._indexPathFloor].floor; - let x0 =Map_QM.forShopArr[Map_QM.util._indexPathFloor].Facilities.position.x +64; - let y0 = Map_QM.forShopArr[Map_QM.util._indexPathFloor].Facilities.position.y; - let model = Map_QM.forShopArr[Map_QM.util._indexPathFloor].Facilities.userData.model; - /** - * @api {事件} PathPlaying 地图导航的实时状态 - * @apiGroup 地图事件 - * @apiDescription 地图导航过程中实时触发 - * @apiVersion 4.0.0 - * @apiSampleRequest off - * - * @apiParamExample 请求示例 - * Map_QM.addEventListener("PathPlaying",onPathPlaying,false); - */ - Map_QM.dispatchEvent({ - //寻路中返回小人当前所在点位 - type: "PathPlaying", - data: { - houseNumber:Map_QM.forShopArr[Map_QM.util._indexPathFloor].Facilities.userData.facCode + Map_QM.forShopArr[Map_QM.util._indexPathFloor].Facilities.userData.no, - }, - }); - let box; - if (model && model.userData.name == "dt") { - model.traverse(function (child) { - if (child.isMesh && child.name == "zhitibox") { - box = child; - } - if (child.isMesh && (child.name == "zhitijiegou" || child.name == "zhitiboli")) { - child.scale.y = 3; - } - }); - } - - let zo = 2, - tz = 2, - boxT = 0, - boxZ = 0; - let add = window.innerWidth > 2000 ? 80 : 40; - let lft = window.innerWidth > 2000 ? 8 : 4; - Map_QM.util._indexPathFloor++; - let toFloor = parseInt( - Map_QM.forShopArr[Map_QM.util._indexPathFloor].floor - ); - Map_QM.util.selectFloor = toFloor; - let floorArr = Map_QM.showNavFloor( - pathFloor, - toFloor, - parseInt(Map_QM.forShopArr[Map_QM.util._indexPathFloor].build) - ); //电梯旁显示的楼层名称 - if (pathFloor < toFloor) { - tz = (floorArr.length - 1) * add; - boxT = 12; - } else { - zo = (floorArr.length - 1) * add; - boxZ = 12; - } - - document.getElementById("moveFloor").style.bottom = zo + "px"; - document.getElementById("moveFloor").style.width = add + "px"; - document.getElementById("moveFloor").style.height = add + "px"; - - Map_QM.moveFloorbg.element.style.width = add + lft + "px"; - Map_QM.moveFloorbg.element.style.height = floorArr.length * add + "px"; - Map_QM.moveFloorbg.position.set(x0, y0, (floorArr.length * add) / -1); - Map_QM.moveFloorbg.applyMatrix4( - Map_QM.mapArr[ - parseInt(Map_QM.forShopArr[Map_QM.util._indexPathFloor].build) - ][pathFloor].allObj.matrix - ); - let floorBox = document.getElementById("floorBox"); - while (floorBox.hasChildNodes()) { - floorBox.removeChild(floorBox.firstChild); - } - for (let i = floorArr.length - 1; i >= 0; i--) { - let span2 = document.createElement("span"); - span2.style.cssText = "display: block;color: #000000; text-align: center;"; - span2.style.fontSize = "16px"; - if (window.innerWidth > 2000) { - span2.style.fontSize = "24px"; - } - span2.style.width = add + lft + "px"; - span2.style.height = add + "px"; - span2.style.lineHeight = add + "px"; - span2.innerText = floorArr[i]; - floorBox.appendChild(span2); - } - - TweenMax.fromTo("#moveFloor",1.5,{ bottom: zo }, - { - bottom: tz, - delay: 0.1, - onComplete: function () { - Map_QM.moveFloorbg.element.style.display = "none"; - Map_QM.callBackLoadOver = Map_QM.callBackForPathShop; //楼层初始化完成后回调 - Map_QM.changeFloorInner( - Map_QM.forShopArr[Map_QM.util._indexPathFloor].build, - Map_QM.forShopArr[Map_QM.util._indexPathFloor].floor - ); - }, - } - ); - Map_QM.moveFloorbg.element.style.display = "block"; - if (box) { - TweenMax.fromTo(box.position, 1.2, { y: boxZ }, - { y: boxT, delay: 0.2, - onComplete: function () { - box.position.y = 0; - model.traverse(function (child) { - if ( - child.isMesh && - (child.name == "zhitijiegou" || child.name == "zhitiboli") - ) { - child.scale.y = 1; - } - }); - }, - } - ); - } - - if (pathCameraState == "3D") { - let xt = Map_QM.guide.position.x + event.detail.dx * 10; - let yt = Map_QM.guide.position.y + event.detail.dy * 10; - if (model && model.userData.name == "upft") { - Map_QM.guide.visible = true; - TweenMax.to(Map_QM.guide.position, 1.3, { x: xt, y: yt, z: 50, - onComplete: function () { - Map_QM.guide.visible = false; - }, - }); - } - if (model && model.userData.name == "downft") { - Map_QM.guide.visible = true; - TweenMax.to(Map_QM.guide.position, 1.3, { x: xt, y: yt, z: -50, - onComplete: function () { - Map_QM.guide.visible = false; - }, - }); - } - } - } else { - //楼栋切换 - Map_QM.util._indexPathFloor++; - Map_QM.callBackLoadOver = Map_QM.callBackForPathShop; - Map_QM.changeBuildInner( - Map_QM.forShopArr[Map_QM.util._indexPathFloor].build, - Map_QM.forShopArr[Map_QM.util._indexPathFloor].floor - ); - } - } else { - Map_QM.util.startObj = Map_QM.util.deviceObj; - /** - * @api {事件} PathPlayOver 地图导航完成 - * @apiGroup 地图事件 - * @apiDescription 地图导航到达目标点时触发 - * @apiVersion 4.0.0 - * @apiSampleRequest off - * - * @apiParamExample 请求示例 - * Map_QM.addEventListener("PathPlayOver",onPathPlayOver,false); - */ - Map_QM.dispatchEvent({ - //寻路完成 - type: "PathPlayOver", - data: "PathPlayOver", - }); - } - }, - /** - * 楼层状态清理 - */ - clearFloor: function (fIndex = -1, reSet = true) { - isJUZ = false; - if (fIndex == -1) { - fIndex = Map_QM.util.deviceObj.floor; - } - if (Map_QM.selectShop) { - Map_QM.selectShop.scale.z = 1; - } - if (Map_QM.endModel && Map_QM.endModel.visible) { - Map_QM.endModel.visible = false; - } - if (Map_QM.endIcon && Map_QM.endIcon.visible) { - Map_QM.endIcon.visible = false; - } - if (Map_QM.moveFloorbg) { - Map_QM.moveFloorbg.element.style.display = "none"; - } - if (reSet) { - //叠层不处理 - if (Map_QM.mapArr[Map_QM.util.selectBuild] && Map_QM.mapArr[Map_QM.util.selectBuild].length > 0) { - for (let i = 0; i < Map_QM.mapArr[Map_QM.util.selectBuild].length; i++) { - let child = Map_QM.mapArr[Map_QM.util.selectBuild][i].allObj; - for (let k = child.children.length - 1; k >= 0; k--) { - if (child.children[k].name == "lineDash") { - Map_QM.mapArr[Map_QM.util.selectBuild][i].allObj.remove(child.children[k]); - } - } - Map_QM.mapArr[Map_QM.util.selectBuild][i].findPath.clearPath(); - } - } - Map_QM.remove_child(Map_QM.dtLineGroup); - } - Map_QM.removeHeatMap(); - TweenMax.killAll(true); - }, - - remove_child: function (remObj) { - if (!remObj) { - return; - } - let child_elem = remObj.children; - for (let i = child_elem.length - 1; i >= 0; i--) { - if (child_elem[i].children.length > 0) { - Map_QM.remove_child(child_elem[i]); - } else { - if (child_elem[i] instanceof THREE.Mesh) { - child_elem[i].geometry.dispose(); // 删除几何体 - if (child_elem[i].material !== undefined) - Map_QM.removeMaterial(child_elem.material); // 删除材质 - } - } - if (child_elem[i].name != "light" && child_elem[i].name != "dtline") { - remObj.remove(child_elem[i]); - } - } - }, - removeMaterial: function (material) { - if (Array.isArray(material)) { - for (var i = 0, l = material.length; i < l; i++) { - this.removeMaterialFromRefCounter(material[i]); - } - } else { - this.removeMaterialFromRefCounter(material); - } - }, - removeMaterialFromRefCounter: function (material) { - var materialsRefCounter = this.materialsRefCounter; - if (materialsRefCounter) { - var count = materialsRefCounter.get(material); - count--; - if (count === 0) { - materialsRefCounter.delete(material); - delete this.materials[material.uuid]; - } else { - materialsRefCounter.set(material, count); - } - } - }, - - /** - * @api {方法} pathStop() 导航暂停/播放 - * @apiGroup 地图导航 - * @apiDescription 导航动画暂停/播放 - * @apiVersion 4.0.0 - * - * @apiSampleRequest off - * - */ - pathStop: function (isPlaying) { - Map_QM.util.pathStateObj.isPathPlay =isPlaying === undefined? !Map_QM.util.pathStateObj.isPathPlay : isPlaying; - Map_QM.mapArr[Map_QM.util.selectBuild][Map_QM.util.selectFloor].findPath.pathPlay.isPlay = Map_QM.util.pathStateObj.isPathPlay; - }, - /** - * @api {方法} pathRePlay() 导航动画重播 - * @apiGroup 地图导航 - * @apiDescription 导航动画重播 - * @apiVersion 4.0.0 - * - * @apiSampleRequest off - * - */ - pathRePlay: function () { - clearTimeout(Map_QM.util.timeObj.pathTime); - TweenMax.killAll(true); - if (!Map_QM.util.overObj.node) { - return; - } - if (Map_QM.util.pathStateObj.isPathState) { - Map_QM.util.timeObj.pathTime = setTimeout(() => { - clearTimeout(Map_QM.util.timeObj.pathTime); - Map_QM.controls.reset(); - if (Map_QM.util.overObj && Map_QM.forShopArr[0]) { - Map_QM.util.pathStateObj.isPathPlay = true; - Map_QM.clearFloor(); - Map_QM.onFindPathToObj(); - } - }, 100); - } - }, - - /** - * @api {方法} ChangePathByFt() 切换扶梯模式 - * @apiGroup 地图导航 - * @apiDescription 导航切换扶梯模式 - * @apiVersion 4.0.0 - * - * @apiParam {function} callBack 回调函数 - * - * @apiSampleRequest off - * - * @apiParamExample 请求示例 - * - * Map_QM.ChangePathByFt(function); - * - */ - ChangePathByFt: function (callBack) { - clearTimeout(Map_QM.util.timeObj.pathTime); - TweenMax.killAll(true); - if (!Map_QM.util.overObj.node || Map_QM.util.isMorePath) { - return; - } - Map_QM.util.timeObj.pathTime = setTimeout(() => { - clearTimeout(Map_QM.util.timeObj.pathTime); - Map_QM.controls.reset(); - if (Map_QM.util.overObj) { - Map_QM.clearFloor(); - Map_QM.onFindPathModel(Map_QM.util.pathStateObj.ftPath); - if (callBack) { - Map_QM.parseForShopArr(); - const data = JSON.parse(JSON.stringify(Map_QM.util.pathStateObj.forShopArr)); - callBack(data); - } - } - }, 100); - }, - /** - * @api {方法} ChangePathByDt() 切换电梯模式 - * @apiGroup 地图导航 - * @apiDescription 导航切换电梯模式 - * @apiVersion 4.0.0 - * - * @apiParam {function} callBack 回调函数 - * - * @apiSampleRequest off - * - * @apiParamExample 请求示例 - * - * Map_QM.ChangePathByDt(function); - * - */ - ChangePathByDt: function (callBack) { - clearTimeout(Map_QM.util.timeObj.pathTime); - TweenMax.killAll(true); - if (!Map_QM.util.overObj.node || Map_QM.util.isMorePath) { - return; - } - Map_QM.util.timeObj.pathTime = setTimeout(() => { - clearTimeout(Map_QM.util.timeObj.pathTime); - Map_QM.controls.reset(); - if (Map_QM.util.overObj) { - Map_QM.clearFloor(); - Map_QM.onFindPathModel(Map_QM.util.pathStateObj.dtPath); - if (callBack) { - Map_QM.parseForShopArr(); - const data = JSON.parse(JSON.stringify(Map_QM.util.pathStateObj.forShopArr)); - callBack(data); - } - } - }, 100); - }, - /** - * @api {方法} ChangePathByGood() 切换最佳模式 - * @apiGroup 地图导航 - * @apiDescription 导航切换最佳模式 - * @apiVersion 4.0.0 - * - * @apiParam {function} callBack 回调函数 - * - * @apiSampleRequest off - * - * @apiParamExample 请求示例 - * - * Map_QM.ChangePathByGood(function); - * - */ - ChangePathByGood: function (callBack) { - clearTimeout(Map_QM.util.timeObj.pathTime); - TweenMax.killAll(true); - if (!Map_QM.util.overObj.node || Map_QM.util.isMorePath) { - return; - } - Map_QM.util.timeObj.pathTime = setTimeout(() => { - clearTimeout(Map_QM.util.timeObj.pathTime); - Map_QM.controls.reset(); - if (Map_QM.util.overObj) { - Map_QM.clearFloor(); - Map_QM.onFindPathModel(Map_QM.util.pathStateObj.graphPath); - if (callBack) { - Map_QM.parseForShopArr(); - const data = JSON.parse(JSON.stringify(Map_QM.util.pathStateObj.forShopArr)); - callBack(data); - } - } - }, 100); - }, - - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - changeDocmentResize: function (e) { - let w = parseInt(Map_QM.ele.clientWidth) || parseInt(window.getComputedStyle(Map_QM.ele, null).getPropertyValue("width")); - let h = parseInt(Map_QM.ele.clientHeight) || parseInt( window.getComputedStyle(Map_QM.ele, null).getPropertyValue("height")); - Map_QM.changeWindowResize(w, h); - }, - /** - * @api {方法} changeWindowResize() 窗口变化 - * @apiGroup 地图交互 - * @apiDescription 窗口变化 - * @apiVersion 4.0.0 - * - * @apiParam {int} width 窗口宽 - * @apiParam {int} height 窗口高 - * - * @apiSampleRequest off - * - * @apiParamExample 请求示例 - * - * Map_QM.changeWindowResize(1280,1080); - */ - changeWindowResize: function (width, height) { - if(!width){ - width = parseInt(Map_QM.ele.clientWidth) || parseInt(window.getComputedStyle(Map_QM.ele, null).getPropertyValue("width")); - } - if(!height){ - height = parseInt(Map_QM.ele.clientHeight) || parseInt(window.getComputedStyle(Map_QM.ele, null).getPropertyValue("height")); - } - Map_QM.aspect = width / height; - Map_QM.cameraPerspective.aspect = Map_QM.aspect; - Map_QM.cameraPerspective.updateProjectionMatrix(); - Map_QM.renderer.setSize(width, height); - Map_QM.labelRenderer.setSize(width, height); - Map_QM.updateRender(); - Map_QM.collLabel(); - Map_QM.w = width; - Map_QM.h = height; - }, -}; -/** - * @api {方法} init(callBack,options) 地图初始化 - * @apiGroup 地图数据 - * @apiDescription 初始化地图赋值 Map_QM - * @apiVersion 4.0.0 - * - * @apiParam {function} callBack 初始化成功后的回调函数 - * @apiParam {object} options 初始化对象 - * @apiParam {int} options.build 设备所在楼栋编号 默认值6 - * @apiParam {int} options.floor 设备所在楼层编号 默认值 true - * @apiParam {int} options.navPoint 设备导航点 默认值 -1 - * @apiParam {int} options.angle 起点设备角度 默认值 0 - * @apiParam {string} options.perc_H 弹窗的偏移量 默认值 "-50%"; - * @apiParam {string} options.containerId 地图div容器Id 默认值 "mapContainer" - * @apiParam {string} options.playSpeed 动画播放速度 默认值8 - * @apiParam {boolean} options.collision 是否支持名称的碰撞检测 默认值 true - * @apiParam {boolean} options.modelIcon 交通设施是否使用模型 默认值 true - * @apiParam {Array} options.otherPath 人为干预的路线 默认值 []; - * @apiParam {int} options.fSpace 双叠层状态下楼层的间距 默认值 500 - * @apiParam {uint} options.navColor 途径店铺颜色 默认值 0xEE6A50 - * @apiParam {boolean} options.shadow 是否显示阴影 默认值 false - * @apiParam {boolean} options.iconName 图标名称是否显示 默认值false - * @apiParam {uint} options.pathColor 导航路径颜色 默认值 0xb47834, - * @apiParam {string} options.pathStyle 导航第一视角 默认值 "2D", - * @apiParam {string} options.shopStyle 店铺显示字段编号(houseNumber)名称(shopName) 默认值 "shopName", - * @apiParam {boolean} options.inArea 地图点击后是否聚焦到当前位置 默认值 false - * @apiParam {string} options.mapData 地图数据 res.data.mapData - * @apiParam {string} options.shopData 店铺数据 res.data - * @apiParam {Array} options.iconUrl 设施库图标 默认值 [] - * - * @apiSampleRequest off - * @apiParamExample {String} 请求示例 - * - * MainMap_QM.init(callBackLoadOver,{build : 0, floor : 3, navPoint : 7, angle : 0, perc_H : "-50%",containerId : "mapContainer"}); - */ -MainMap_QM.init = function (callBack, options) { - if (Map_QM) { - Map_QM.cancelRender(); - Map_QM.beforeDestroy(); - } - Map_QM = new MainMap_QM(callBack, options); - return Map_QM; -}; -Object.assign(MainMap_QM.prototype, THREE.EventDispatcher.prototype); - -//////////////////////////////////////-------------------------------FloorMap -var FloorMap_QM = function (bIndex, fIndex, floorName) { - this.Model_QM = new MyModel_QM(); - this.facUtil = new Facilities_QM(); - this.findPath = new FindPath_QM(); - this.logoUtil = new ShopLogo_QM(); - this.allObj = new THREE.Group(); - this.allObj.name = floorName; - this.allObj.rotation.x = Math.PI / -2; - this.CSSObj = new THREE.Group(); - - this.floorOrder = fIndex; - this.buildOrder = bIndex; - this.floorName = floorName; - //存第三方 - this.otherObj = new THREE.Object3D(); - this.allObj.add(this.otherObj); - - //存放设施图标 - this.serObj = new THREE.Object3D(); - //存放车位box - this.parkObj = new THREE.Group(); - //标签 - this.tagObj = new THREE.Group(); - this.tagObj.renderOrder = 100; - //存放设施图标 - this.svgObj = new THREE.Group(); - //店铺 - this.shopObj = new THREE.Group(); - this.allObj.add(this.shopObj); - this.allObj.add(this.svgObj); - this.allObj.add(this.CSSObj); - - this.CSSObj.add(this.serObj); - this.CSSObj.add(this.tagObj); - //标签 - this.showTagObj = new THREE.Group(); - this.showTagObj.renderOrder = 100; - this.CSSObj.add(this.showTagObj); - - //线条 - this.lineObj = new THREE.Group(); - this.lineObj.renderOrder = 100; - this.allObj.add(this.lineObj); - - this.startIcon; -}; - -FloorMap_QM.prototype = { - initDraw: function () { - this.initFloor(); - this.initFacilitie(); - this.initStairs(); - this.initTextArea(); - this.initWall(); - this.initDecos(); - this.initPark(); - this.initModel(); - this.initTree(); //植树 - this.initLogos(); //贴图 - }, - initLogos: function () { - let sopce = this; - if (Map_QM.util.logos) { - Map_QM.util.logos.map((item) => { - if (item.build == sopce.buildOrder && item.floor == sopce.floorOrder) { - sopce.logoUtil.renderIcon(item, sopce, item.site || 0); - } - }); - } - }, - initModel: function () { - let sopce = this; - if (Map_QM.util.modelArr) { - for (let i = 0; i < Map_QM.util.modelArr.length; i++) { - if (Map_QM.util.modelArr[i].build == this.buildOrder && Map_QM.util.modelArr[i].floor == this.floorOrder) { - new THREE.GLTFLoader().load( - Map_QM.util.beforPath + Map_QM.util.modelArr[i].url, - function (object) { - //加载路径fbx文件 - let mod = object.scene; - mod.traverse(function (child) { - if (child.isMesh) { - child.receiveShadow = Map_QM.util.options.shadow; - child.castShadow = Map_QM.util.options.shadow; - child.userData.opacity = child.material.opacity; - if (child.material.map) { - child.material.map.encoding = THREE.LinearEncoding; //贴图需要转换成 线性编码 - } - child.material.color.convertGammaToLinear(0.7); - } - }); - for (let t = 0; t < Map_QM.util.modelArr[i].list.length; t++) { - let obj = mod.clone(); - obj.position.set( - Map_QM.util.modelArr[i].list[t].site.x, - -1 * Map_QM.util.modelArr[i].list[t].site.y, - Map_QM.util.modelArr[i].list[t].site.z - ); - obj.scale.set( - Map_QM.util.modelArr[i].list[t].size.x, - Map_QM.util.modelArr[i].list[t].size.y, - Map_QM.util.modelArr[i].list[t].size.z - ); - obj.rotateX((Map_QM.util.modelArr[i].list[t].rot.x * Math.PI) / 180); - obj.rotateY((Map_QM.util.modelArr[i].list[t].rot.y * Math.PI) / 180); - obj.rotateZ((Map_QM.util.modelArr[i].list[t].rot.z * Math.PI) / 180); - sopce.allObj.add(obj); - } - } - ); - } - } - } - if (Map_QM.util.labelIconArr) { - for (let i = 0; i < Map_QM.util.labelIconArr.length; i++) { - if (Map_QM.util.labelIconArr[i].build == this.buildOrder && Map_QM.util.labelIconArr[i].floor == this.floorOrder) { - let SpriteDiv = document.createElement("div"); - SpriteDiv.className = Map_QM.util.labelIconArr[i].className; - SpriteDiv.innerHTML = Map_QM.util.labelIconArr[i].title; - SpriteDiv.dataset.id = Map_QM.util.labelIconArr[i].data.id; - SpriteDiv.dataset.x = Map_QM.util.labelIconArr[i].site.x; - SpriteDiv.dataset.y = Map_QM.util.labelIconArr[i].site.y; - SpriteDiv.dataset.z = Map_QM.util.labelIconArr[i].site.z; - let pointLabel = new THREE.CSS2DObject(SpriteDiv); - pointLabel.position.set( - Map_QM.util.labelIconArr[i].site.x, - -1 * Map_QM.util.labelIconArr[i].site.y, - Map_QM.util.labelIconArr[i].site.z - ); - pointLabel.name = Map_QM.util.labelIconArr[i].title; - pointLabel.userData = Map_QM.util.labelIconArr[i].data; - pointLabel.userData.site = Map_QM.util.labelIconArr[i].site; - pointLabel.userData.mapShow = true; - pointLabel.userData.isShow = true; - pointLabel.userData.type = "icon"; - if (Map_QM.util.labelIconArr[i].click) { - //可点击 - SpriteDiv.addEventListener("click", (event) => { - Map_QM.dispatchEvent({ - type: "labelIcon", - data: event.target.dataset, - }); - }, - false - ); - } else { - pointLabel.element.style.pointerEvents = "none"; - } - pointLabel.userData.floor = Map_QM.util.labelIconArr[i].floor; - sopce.showTagObj.add(pointLabel); - } - } - } - }, - initTree: function () { - let mapData = - Map_QM.util.allMap[this.buildOrder].buildArr[this.floorOrder].mapData; - if (mapData.models) { - for (let t = 0; t < mapData.models.length; t++) { - for (let i = 0; i < Map_QM.util.fbxModels.length; i++) { - if (mapData.models[t].type == Map_QM.util.fbxModels[i].key) { - let obj = Map_QM.util.fbxModels[i].obj.scene.clone(); - obj.position.set(mapData.models[t].x, -1 * mapData.models[t].y, mapData.models[t].site); - obj.scale.set(mapData.models[t].scale,mapData.models[t].scale,mapData.models[t].scale); - obj.rotateX(Map_QM.util.fbxModels[i].operation.rot.x); - obj.rotateY((-1 * mapData.models[t].angle * Math.PI) / 180); - obj.renderOrder = 100; - for (let k = 0;k < Map_QM.util.fbxModels[i].obj.animations.length; k++ ) { - let mixer = new THREE.AnimationMixer(obj); - mixer.clipAction(Map_QM.util.fbxModels[i].obj.animations[k]).play(); - Map_QM.mixers.push(mixer); - } - //加载编辑器动画 - obj.name = mapData.models[t].name; - if (mapData.animations) { - mapData.animations.forEach((item) => { - if (mapData.models[t].name == item.name) { - obj.rotateY(mapData.models[t].angle * Math.PI / 180); - let posArr = [], - rotArr = [], - scaleArr = [], - keyArr = [], - proArr = [], - clip; - item.frames.forEach((it) => { - keyArr.push(it.time); - posArr.push(it.pos.x, -1 * it.pos.y, it.pos.z); - rotArr.push((it.rot / -180) * Math.PI); - scaleArr.push(it.size, it.size, it.size); - proArr.push(it.pro); - }); - if (item.isType) { - //特殊模型动画 - let rotKF = new THREE.KeyframeTrack(item.sonName, keyArr, proArr); - clip = new THREE.AnimationClip(item.name, keyArr[keyArr.length - 1], [rotKF]); - } else { - let posKF = new THREE.KeyframeTrack(item.name + ".position",keyArr,posArr); - let rotKF = new THREE.KeyframeTrack(item.name + ".rotation[y]", keyArr,rotArr); - let scalKF = new THREE.KeyframeTrack(item.name + ".scale",keyArr,scaleArr); - clip = new THREE.AnimationClip(item.name,keyArr[keyArr.length - 1],[posKF, rotKF, scalKF]); - } - if (clip) { - let mixer = new THREE.AnimationMixer(obj); - mixer.clipAction(clip).play(); - Map_QM.mixers.push(mixer); - } - } - }); - } - this.allObj.add(obj); - } - } - } - } - }, - //初始化单楼层 - initFloor: function () { - let floor; - let mapData = Map_QM.util.allMap[this.buildOrder].buildArr[this.floorOrder].mapData; - let entColor, borderColor; - if (mapData.floorArea) { - floor = Map_QM.util.changeAreaToString(mapData.floorArea); - } - let bLen = mapData.buildArea.length; - let hLen = mapData.hollowArea.length; - let hows_f = []; - for (let m = 0; m < hLen; m++) { - let isIn = Map_QM.util.checkAreaInArea(mapData.hollowArea[m],mapData.floorArea); - if (isIn) { - hows_f.push(Map_QM.util.changeAreaToString(mapData.hollowArea[m])); - } - } - if (floor) { - entColor = mapData.floorArea.entColor; - borderColor = mapData.floorArea.borderColor; - floorH = parseInt(mapData.floorArea.toHeight); - let mash = this.Model_QM.MyModelShape(floor,hows_f,mapData.floorArea,entColor,borderColor,10 + 100 * this.floorOrder); - mash.receiveShadow = true; - mash.castShadow = false; - mash.userData = { - type: "floor", - order: this.floorOrder, - }; - mash.userData.opacity = mapData.floorArea.alphaModle / 100 || 0; - mash.name = "floor"; - this.allObj.add(mash); - } - /////////////////////初始化楼栋 - for (let i = 0; i < bLen; i++) { - let build = Map_QM.util.changeAreaToString(mapData.buildArea[i]); - let hows = []; - for (let t = 0; t < hLen; t++) { - let isIn = Map_QM.util.checkAreaInArea(mapData.hollowArea[t],mapData.buildArea[i]); - if (isIn) { - hows.push(Map_QM.util.changeAreaToString(mapData.hollowArea[t])); - } - } - entColor = mapData.buildArea[i].entColor; - borderColor = mapData.buildArea[i].borderColor; - buildH = parseInt(mapData.buildArea[i].toHeight); - let mash = this.Model_QM.MyPlaneShape(build,hows,mapData.buildArea[i],entColor,borderColor,30 + 100 * this.floorOrder); - mash.receiveShadow = true; - mash.castShadow = false; - mash.userData = { - type: "build", - order: this.floorOrder, - xaxis: mapData.buildArea[i].xaxis, - yaxis: mapData.buildArea[i].yaxis, - }; - mash.userData.opacity = mapData.buildArea[i].alphaModle / 100 || 0; - mash.name = mapData.buildArea[i].name; - this.allObj.add(mash); - } - //店铺 - let sLen = mapData.shopArea.length; - let show = "", - showE = "", - showLeb = "", - formatCode = "", - mapShow = false; - let logo = "", - navRecommend = false, - shopD = {}; - let shopData = Map_QM.util.shopData; - for (let i = 0; i < sLen; i++) { - if (Map_QM.util.changeAreaToString(mapData.shopArea[i]) != "") { - for (let t = 0; t < sLen; t++) { - let isIn = Map_QM.util.checkAreaInArea(mapData.shopArea[i], mapData.shopArea[t]); - isIn &&(mapData.shopArea[i].site = parseInt(mapData.shopArea[i].site) + 1); - } - let arr = Map_QM.util.changeShopLinesToString(mapData.shopArea[i]); - entColor = mapData.shopArea[i].entColor || "#b79266"; - borderColor = mapData.shopArea[i].borderColor || "#b79266"; - show = showE = mapData.shopArea[i].name; - logo = ""; - showLeb = ""; - navRecommend = false; - mapShow = false; - shopD = {}; - if (shopData) { - for (let h = 0; h < shopData.length; h++) { - if (shopData[h].houseNumber === mapData.shopArea[i].name) { - showLeb = shopData[h].houseNumber; - show = shopData[h].shopName == undefined ? shopData[h].name : shopData[h].shopName; - showE = shopData[h].shopNameEn == undefined ? shopData[h].nameEn : shopData[h].shopNameEn; - logo = shopData[h].logoUrl; - mapShow = shopData[h].mapShow ?? false; //是否常显示 - formatCode = shopData[h].industryFatherCode; - if (shopData[h].isPass) { - navRecommend = shopData[h].isPass; - } else { - navRecommend = false; - } - shopD = shopData[h]; - if (shopData[h].isNewShop) { - //新店 - mapData.shopArea[i].type = "new-shop"; - this.addTagLabel(mapData.shopArea[i], {node: mapData.shopArea[i].shopNav, floor: this.floorOrder, build: this.buildOrder}); - } else { - if (shopData[h].activityList &&shopData[h].activityList.length > 0) { - //促销 - mapData.shopArea[i].type = "promotion"; - this.addTagLabel(mapData.shopArea[i], {node: mapData.shopArea[i].shopNav, floor: this.floorOrder, build: this.buildOrder }); - } - } - shopData[h].color && (entColor = shopData[h].color); - shopData[h].formatColor && (entColor = shopData[h].formatColor); - shopData[h].borderColor && (borderColor = shopData[h].borderColor); - break; - } - } - } - let hollShop = []; - if (mapData.shopArea[i].hollArea) { - for (let k = 0; k < mapData.shopArea[i].hollArea.length; k++) { - hollShop.push(Map_QM.util.changeAreaToString(mapData.shopArea[i].hollArea[k])); - } - } - let mahc = this.Model_QM.MyModelShape(arr,hollShop,mapData.shopArea[i],entColor,borderColor,60 + 100 * this.floorOrder); - mahc.node = mapData.shopArea[i].shopNav; - mahc.userData = { - id: mapData.shopArea[i].id, - shopData: shopD, - xaxis: mapData.shopArea[i].xaxis >> 0, - yaxis: mapData.shopArea[i].yaxis >> 0, - node: mahc.node, - floor: this.floorOrder, - build: this.buildOrder, - navRecommend: navRecommend, - type: "shop", - houseNumber: mapData.shopArea[i].name, - shopName: show, - formatCode: formatCode, - logo: logo, - opacity: mapData.shopArea[i].alphaModle / 100 || 0, - }; - mahc.name = showLeb; - mahc.xaxis = mapData.shopArea[i].xaxis >> 0; - mahc.yaxis = mapData.shopArea[i].yaxis >> 0; - this.shopObj.add(mahc); - if (mapData.shopArea[i].logoUrl && mapData.shopArea[i].isLabel == 0) { - //添加logo - this.logoUtil.renderIcon(mapData.shopArea[i],mahc,parseInt(mapData.shopArea[i].toHeight) +1 ); - } else { - //添加文字 - let some = false; - if (Map_QM.util.options.boxShop.length && Map_QM.util.options.boxShop[0] !== "") { - some = Map_QM.util.options.boxShop.some((item) => { - return mapData.shopArea[i].name.includes(item); - }); - } - if (showLeb != "" || some) { - let shopSpr = Map_QM.util.getTextMesh(show, new THREE.Vector3( mapData.shopArea[i].xaxis >> 0, (-1 * mapData.shopArea[i].yaxis) >> 0, parseInt(mapData.shopArea[i].toHeight)) ); - mahc.add(shopSpr); - Map_QM.spriteList[this.buildOrder][this.floorOrder].push(shopSpr); - shopSpr.name = mapData.shopArea[i].name; - shopSpr.userData.mapShow = mapShow; //是否永久显示 - shopSpr.userData.formatCode = formatCode; - shopSpr.userData.isShow = true; - shopSpr.userData.nameEn = showE || show; - shopSpr.userData.name = show; - } - } - } - } - }, - addTagLabel: function (obj, userData) { - let shopDiv = document.createElement("img"); - shopDiv.src = Map_QM.util.beforPath + "static/img/" + obj.type + ".png"; - shopDiv.style.zIndex = 30; - shopDiv.style.width = "3.125vw"; - let shopLabel = new THREE.CSS2DObject(shopDiv); - shopLabel.userData = userData; - shopLabel.userData.mapShow = true; //是否永久显示 - shopLabel.userData.isShow = false; - shopLabel.userData.type = obj.type; - shopLabel.position.set(obj.xaxis >> 0, (-1 * obj.yaxis) >> 0, Map_QM.util.shopHeight + 30); - this.tagObj.add(shopLabel); - }, - //初始化服务图标 - initFacilitie: function () { - let serArr = Map_QM.util.allMap[this.buildOrder].buildArr[this.floorOrder].mapData.icons; - for (let i = 0; i < serArr.length; i++) { - if (serArr[i].hasOwnProperty("iShow")) { - if (serArr[i].iShow) { - serArr[i].floorOrder = this.floorOrder; - serArr[i].buildOrder = this.buildOrder; - this.facUtil.renderIcon(serArr[i], this); - } - } else { - serArr[i].floorOrder = this.floorOrder; - serArr[i].buildOrder = this.buildOrder; - this.facUtil.renderIcon(serArr[i], this); - } - } - }, - //初始化电梯图标 - initStairs: function () { - let facArr = Map_QM.util.allMap[this.buildOrder].buildArr[this.floorOrder].mapData.stairs; - for (let i = 0; i < facArr.length; i++) { - if (facArr[i].facCode == "ft") { - if (Map_QM.util.pathStateObj.elevatorDown && Map_QM.util.pathStateObj.elevator && Map_QM.util.options.modelIcon) { - if (facArr[i].downState) { - //上扶梯 - let ex = Map_QM.util.pathStateObj.elevator.clone(); - ex.position.set(facArr[i].x, -1 * facArr[i].y, facArr[i].site || 0); - ex.rotation.y = ((facArr[i].angle || 0) * Math.PI) / -180; - ex.userData.type = "icon"; - ex.userData.use = "3d"; - ex.userData.name = "upft"; - ex.userData.buildOrder = facArr[i].buildOrder; - ex.userData.floorOrder = facArr[i].floorOrder; - ex.userData.navCode = facArr[i].navCode; - ex.userData.src = "static/img/ft.png"; - ex.userData.facCode = facArr[i].facCode; - ex.userData.title = facArr[i].title; - this.serObj.add(ex); - facArr[i].facCode = "ft"; - this.facUtil.renderIcon(facArr[i], this, false, ex); - } else if (facArr[i].upState) { - //下扶梯 - let ex = Map_QM.util.pathStateObj.elevatorDown.clone(); - ex.position.set(facArr[i].x, -1 * facArr[i].y, facArr[i].site || 0); - ex.rotation.y = ((facArr[i].angle || 0) * Math.PI) / -180; - ex.userData.type = "icon"; - ex.userData.use = "3d"; - ex.userData.name = "downft"; - ex.userData.buildOrder = facArr[i].buildOrder; - ex.userData.floorOrder = facArr[i].floorOrder; - ex.userData.navCode = facArr[i].navCode; - ex.userData.src = "static/img/ft.png"; - ex.userData.facCode = facArr[i].facCode; - ex.userData.title = facArr[i].title; - this.serObj.add(ex); - facArr[i].facCode = "ft"; - this.facUtil.renderIcon(facArr[i], this, false, ex); - } else { - this.facUtil.renderIcon(facArr[i], this, true); - } - } else { - this.facUtil.renderIcon(facArr[i], this, true); - } - } else if (facArr[i].facCode == "upft") { - if (Map_QM.util.pathStateObj.elevator && Map_QM.util.options.modelIcon) { - let ex = Map_QM.util.pathStateObj.elevator.clone(); - ex.position.set(facArr[i].x, -1 * facArr[i].y, facArr[i].site || 0); - ex.rotation.y = ((facArr[i].angle || 0) * Math.PI) / -180; - ex.userData.type = "icon"; - ex.userData.use = "3d"; - ex.userData.name = "upft"; - ex.userData.buildOrder = facArr[i].buildOrder; - ex.userData.floorOrder = facArr[i].floorOrder; - ex.userData.navCode = facArr[i].navCode; - ex.userData.src = "static/img/ft.png"; - ex.userData.facCode = facArr[i].facCode; - ex.userData.title = facArr[i].title; - this.serObj.add(ex); - facArr[i].facCode = "ft"; - this.facUtil.renderIcon(facArr[i], this, false, ex); - } else { - facArr[i].facCode = "ft"; - this.facUtil.renderIcon(facArr[i], this, true); - } - } else if (facArr[i].facCode == "downft") { - if (Map_QM.util.pathStateObj.elevatorDown && Map_QM.util.options.modelIcon) { - let ex = Map_QM.util.pathStateObj.elevatorDown.clone(); - ex.position.set(facArr[i].x, -1 * facArr[i].y, facArr[i].site || 0); - ex.rotation.y = ((facArr[i].angle || 0) * Math.PI) / -180; - ex.userData.type = "icon"; - ex.userData.use = "3d"; - ex.userData.name = "downft"; - ex.userData.buildOrder = facArr[i].buildOrder; - ex.userData.floorOrder = facArr[i].floorOrder; - ex.userData.navCode = facArr[i].navCode; - ex.userData.src = "static/img/ft.png"; - ex.userData.facCode = facArr[i].facCode; - ex.userData.title = facArr[i].title; - this.serObj.add(ex); - facArr[i].facCode = "ft"; - this.facUtil.renderIcon(facArr[i], this, false, ex); - } else { - facArr[i].facCode = "ft"; - this.facUtil.renderIcon(facArr[i], this, true); - } - } else if (facArr[i].facCode == "dt") { - if (Map_QM.util.pathStateObj.straight && Map_QM.util.options.modelIcon) { - let stra = Map_QM.util.pathStateObj.straight.clone(); - stra.position.set(facArr[i].x, -1 * facArr[i].y, facArr[i].site || 0); - stra.rotation.y = ((facArr[i].angle || 0) * Math.PI) / -180; - stra.userData.type = "icon"; - stra.userData.use = "3d"; - stra.userData.name = "dt"; - stra.userData.buildOrder = facArr[i].buildOrder; - stra.userData.floorOrder = facArr[i].floorOrder; - stra.userData.navCode = facArr[i].navCode; - stra.userData.src = "static/img/dt.png"; - stra.userData.facCode = facArr[i].facCode; - stra.userData.title = facArr[i].title; - this.serObj.add(stra); - this.facUtil.renderIcon(facArr[i], this, false, stra); - } else { - this.facUtil.renderIcon(facArr[i], this, true); - } - } else { - this.facUtil.renderIcon(facArr[i], this, true); - } - } - }, - //初始化装饰图标 - initDecos: function () { - let mapData = Map_QM.util.allMap[this.buildOrder].buildArr[this.floorOrder].mapData; - let sLen = mapData.decos.length; - let entColor, borderColor; - - if (mapData.groupArea) { - for (let k = 0; k < mapData.groupArea.length; k++) { - var gp = new THREE.Group(); - gp.rotateX((mapData.groupArea[k].angleX * Math.PI) / 180); - gp.rotateY((mapData.groupArea[k].angleY * Math.PI) / 180); - gp.rotateZ((mapData.groupArea[k].angleZ * Math.PI) / 180); - for (let i = 0; i < sLen; i++) { - let arr = Map_QM.util.changeAreaToString(mapData.decos[i]); - if (mapData.decos[i].gid && mapData.decos[i].gid == mapData.groupArea[k].name && arr.length > 0) { - entColor = mapData.decos[i].entColor; - borderColor = mapData.decos[i].borderColor; - let show = mapData.decos[i].name == "deco" ? "" : mapData.decos[i].name; - let hollShop = []; - if (mapData.decos[i].hollArea) { - for (let k = 0; k < mapData.decos[i].hollArea.length; k++) { - hollShop.push(Map_QM.util.changeAreaToString(mapData.decos[i].hollArea[k])); - } - } - let mahc = this.Model_QM.MyModelShape(arr,hollShop,mapData.decos[i],entColor,borderColor,70 + 100 * this.floorOrder); - mahc.xaxis = mapData.decos[i].xaxis >> 0; - mahc.yaxis = mapData.decos[i].yaxis >> 0; - mahc.node = mapData.decos[i].shopNav; - mahc.userData = { - type: "deco", - name: show, - }; - mahc.userData.opacity = mapData.decos[i].alphaModle / 100 || 0; - gp.add(mahc); - mahc.position.x = -1 * mapData.groupArea[k].xaxis; - mahc.position.y = mapData.groupArea[k].yaxis; - } - } - this.allObj.add(gp); - gp.position.x = mapData.groupArea[k].xaxis; - gp.position.y = -1 * mapData.groupArea[k].yaxis; - gp.position.z = mapData.groupArea[k].site || 0; - gp.scale.set(mapData.groupArea[k].scale,mapData.groupArea[k].scale,mapData.groupArea[k].scale); - } - } - - for (let i = 0; i < sLen; i++) { - let arr = Map_QM.util.changeAreaToString(mapData.decos[i]); - if (!mapData.decos[i].gid && arr.length > 0) { - entColor = mapData.decos[i].entColor; - borderColor = mapData.decos[i].borderColor; - let show = mapData.decos[i].name == "deco" ? "" : mapData.decos[i].name; - let hollShop = []; - if (mapData.decos[i].hollArea) { - for (let k = 0; k < mapData.decos[i].hollArea.length; k++) { - hollShop.push(Map_QM.util.changeAreaToString(mapData.decos[i].hollArea[k])); - } - } - let mahc; - mahc = this.Model_QM.MyModelShape(arr,hollShop,mapData.decos[i],entColor,borderColor,70 + 100 * this.floorOrder ); - mahc.userData = { - type: "deco", - node: mapData.decos[i].shopNav, - xaxis: mapData.decos[i].xaxis, - yaxis: mapData.decos[i].yaxis, - houseNumber: mahc.name, - name: show, - }; - this.allObj.add(mahc); - } - } - }, - /** - * 渲染墙体 - */ - initWall: function () { - let mapData = Map_QM.util.allMap[this.buildOrder].buildArr[this.floorOrder].mapData; - //渲染 - if (mapData.wallArea) { - let sLen = mapData.wallArea.length; - for (let i = 0; i < sLen; i++) { - let arr = Map_QM.util.changeWallToString(mapData.wallArea[i]); - let mahc = this.Model_QM.MyModelShape(arr, null, mapData.wallArea[i], mapData.wallArea[i].entColor || "#eaeaea", mapData.wallArea[i].borderColor || "#eaeaea", 300); - mahc.userData = { - type: "wall", - }; - mahc.userData.opacity = mapData.wallArea[i].alphaModle / 100 || 0; - this.allObj.add(mahc); - } - } - }, - /** - * 渲染文本 - */ - initTextArea: function () { - let mapData = Map_QM.util.allMap[this.buildOrder].buildArr[this.floorOrder].mapData; - //渲染 - if (mapData.svgArea) { - let sLen = mapData.svgArea.length; - for (let i = 0; i < sLen; i++) { - let mahc = this.Model_QM.MyModelText(mapData.svgArea[i]); - mahc.userData = { - type: "svg", - rot: mahc.rotation.z, - houseNumber: mapData.svgArea[i].name, - }; - this.svgObj.add(mahc); - } - } - }, - /** - * 设置终点图标 - */ - setOverSite: function (shopX, shopY, shopZ) { - if (Map_QM.endModel) { - Map_QM.endModel.visible = pathCameraState == "2D" ? false : true; - Map_QM.endModel.scale.x = Map_QM.endModel.scale.y = Map_QM.endModel.scale.z = 100; - Map_QM.endModel.position.set(shopX, shopZ, shopY); //x,z,y - Map_QM.endModel.applyMatrix4(Map_QM.sceneGap.matrix); - if (Map_QM.endIcon) { - Map_QM.endIcon.visible = pathCameraState == "2D" ? true : false; - Map_QM.endIcon.scale.x = 100; - Map_QM.endIcon.scale.y = 120; - Map_QM.endIcon.position.set(shopX, 100, shopY); //x,z,y - Map_QM.endIcon.applyMatrix4(Map_QM.sceneGap.matrix); - } - } else { - try { - Map_QM.scene.traverse((item) => { - if (item.name == "Z-model") { - Map_QM.scene.remove(item); - } - }); - } catch (e) { - window.captureException && window.captureException(e); - console.log("traverse"); - } - - let loader2 = new THREE.GLTFLoader(); - loader2.load( - Map_QM.util.beforPath + "static/img/zhong.glb", - function (collada2) { - collada2.scene.scale.x = collada2.scene.scale.y = collada2.scene.scale.z = 100; - if (shopX != 0 && shopY != 0) { - collada2.scene.position.set(shopX, shopZ, shopY); //x,z,y - } - collada2.scene.applyMatrix4(Map_QM.sceneGap.matrix); - collada2.scene.renderOrder = 200; - collada2.scene.traverse(function (child) { - if (child.type === "Mesh") { - child.castShadow = Map_QM.util.options.shadow; - child.receiveShadow = Map_QM.util.options.shadow; - if (child.material.map) { - child.material.map.encoding = THREE.LinearEncoding; //贴图需要转换成 线性编码 - } - } - }); - for (let k = 0; k < collada2.animations.length; k++) { - let mixer = new THREE.AnimationMixer(collada2.scene); - mixer.clipAction(collada2.animations[k]).play(); - Map_QM.mixers.push(mixer); - } - collada2.scene.name = "Z-model"; - Map_QM.endModel = collada2.scene; - Map_QM.scene.add(collada2.scene); - Map_QM.endModel.visible = pathCameraState == "2D" ? false : true; - } - ); - let spriteMap = new THREE.TextureLoader().load( - Map_QM.util.beforPath + "static/img/Z.png" - ); - let spriteMaterial = new THREE.SpriteMaterial({ - //sizeAttenuation: false 禁止跟随鼠标缩放 - map: spriteMap, - depthTest: true, - transparent: true, - alphaTest: 0.5, - }); - Map_QM.endIcon = new MySprite_QM(spriteMaterial); - Map_QM.endIcon.scale.set(100, 120, 1); - Map_QM.endIcon.center = new THREE.Vector2(0.5, 0); - Map_QM.endIcon.position.set(shopX, 100, shopY); - Map_QM.endIcon.applyMatrix4(Map_QM.sceneGap.matrix); - Map_QM.endIcon.renderOrder = 300; - Map_QM.endIcon.name = "Z-model"; - Map_QM.endIcon.visible = pathCameraState == "2D" ? true : false; - Map_QM.scene.add(Map_QM.endIcon); - } - }, - /** - * 设置起点图标 - */ - setStartSite: function (shopX, shopY, shopZ) { - let _this = this; - if (Map_QM.qiModel) { - Map_QM.devModel.position.set(shopX, -1 * shopY, 20); - _this.allObj.add(Map_QM.devModel); - Map_QM.qiModel.position.set(shopX, -1 * shopY, 10); - _this.allObj.add(Map_QM.qiModel); - Map_QM.qiIcon.position.set(shopX, -1 * shopY, shopZ); - _this.allObj.add(Map_QM.qiIcon); - } else { - new THREE.GLTFLoader().load( - Map_QM.util.beforPath + "static/img/guide.glb", - function (obj) { - obj.scene.scale.x = obj.scene.scale.y = obj.scene.scale.z = 100; - obj.scene.rotation.x = Math.PI / 2; - obj.scene.rotation.y = (Map_QM.util.deviceObj.angle * Math.PI) / -180; - obj.scene.traverse(function (child) { - if (child.type === "Mesh") { - child.castShadow = Map_QM.util.options.shadow; - child.receiveShadow = Map_QM.util.options.shadow; - if (child.material.map) { - child.material.map.encoding = THREE.LinearEncoding; //贴图需要转换成 线性编码 - } - } - }); - if (shopX != 0 && shopY != 0) { - obj.scene.position.set(shopX, -1 * shopY, 50); //x,z,y - } - for (let k = 0; k < obj.animations.length; k++) { - let mixer = new THREE.AnimationMixer(obj.scene); - mixer.clipAction(obj.animations[k]).play(); - Map_QM.mixers.push(mixer); - } - Map_QM.devModel = obj.scene; - Map_QM.devModel.visible = false; - Map_QM.devModel.renderOrder = 160; - _this.allObj.add(Map_QM.devModel); - } - ); - new THREE.GLTFLoader().load( - Map_QM.util.beforPath + "static/img/qi.glb", - function (collada) { - collada.scene.scale.x = collada.scene.scale.y = collada.scene.scale.z = 100; - collada.scene.rotateX(Math.PI / 2); - collada.scene.traverse(function (child) { - if (child.type === "Mesh") { - child.castShadow = Map_QM.util.options.shadow; - child.receiveShadow = Map_QM.util.options.shadow; - if (child.material.map) { - child.material.map.encoding = THREE.LinearEncoding; //贴图需要转换成 线性编码 - } - } - }); - if (shopX != 0 && shopY != 0) { - collada.scene.position.set( shopX, -1 * shopY, parseInt(Map_QM.util.buildHeight) + 5); //x,z,y - } - for (let k = 0; k < collada.animations.length; k++) { - let mixer = new THREE.AnimationMixer(collada.scene); - mixer.clipAction(collada.animations[k]).play(); - Map_QM.mixers.push(mixer); - } - collada.scene.renderOrder = 200; - collada.scene.userData.type = "start"; - Map_QM.qiModel = collada.scene; - _this.allObj.add(collada.scene); - //-------------------------------------------------------------- - let spriteMap = new THREE.TextureLoader().load( - Map_QM.util.beforPath + "static/img/Q.png" - ); - let spriteMaterial = new THREE.SpriteMaterial({ - //sizeAttenuation: false 禁止跟随鼠标缩放 - map: spriteMap, - depthTest: true, - transparent: true, - alphaTest: 0.5, - }); - Map_QM.qiIcon = new MySprite_QM(spriteMaterial); - Map_QM.qiIcon.scale.set(100, 120, 1); - Map_QM.qiIcon.center = new THREE.Vector2(0.5, 0); - Map_QM.qiIcon.position.set(shopX, -1 * shopY, shopZ + 50); - Map_QM.qiIcon.renderOrder = 500; - Map_QM.qiIcon.visible = false; - Map_QM.qiIcon.userData.type = "start"; - _this.allObj.add(Map_QM.qiIcon); - } - ); - } - }, - /** - * 查找线 - * @param {Object} startNode - * @param {Object} endNode - */ - isNoFindLine: function (startNode, endNode) { - let no = false; - for (let i = 0; i < startNode.lineArr.length; i++) { - if (startNode.lineArr[i].nextNode.id == endNode.id ||startNode.lineArr[i].selfNode.id == endNode.id) { - no = true; - break; - } - } - return no; - }, - //初始化停车位 - initPark: function () { - let mapData = Map_QM.util.allMap[this.buildOrder].buildArr[this.floorOrder].mapData; - //渲染车位 - if (mapData.parkArea) { - let sLen = mapData.parkArea.length; - if (sLen > 0) { - this.allObj.add(this.parkObj); - } - let shapeArr = [], - materials = [], - parkHeight = 1, - borderColor = 0xaaaaaa; - for (let i = 0; i < sLen; i++) { - let arr = Map_QM.util.changeParkToString(mapData.parkArea[i]); - if (arr != "") { - parkHeight = Math.max(parseInt(mapData.parkArea[i].toHeight), parkHeight); - borderColor = mapData.parkArea[i].borderColor; - if (arr.length > 0) { - let shape = new THREE.Shape(); - shape.moveTo(arr[0][0], -1 * arr[0][1]); - for (let k = 1; k < arr.length; k++) { - shape.lineTo(arr[k][0], -1 * arr[k][1]); - } - shapeArr.push(shape); - let meshMaterial; - let color2 = new THREE.Color(mapData.parkArea[i].entColor); - for (let e = 0; e < Map_QM.util.parkMaterialArr.length; e++) { - if (Map_QM.util.parkMaterialArr[e].color.equals(color2)) { - meshMaterial = Map_QM.util.parkMaterialArr[e]; - } - } - if (!meshMaterial) { - meshMaterial = new THREE.MeshBasicMaterial({ - color: mapData.parkArea[i].entColor, - }); - Map_QM.util.parkMaterialArr.push(meshMaterial); - } - materials.push(meshMaterial); - if (mapData.parkArea[i].childArea && mapData.parkArea[i].childArea.length > 0) { - for (let m = 0; m < mapData.parkArea[i].childArea.length; m++) { - let meshMaterial0; - if (mapData.parkArea[i].childArea[m].color && mapData.parkArea[i].childArea[m].color != "#FFffff") { - let color2 = new THREE.Color(mapData.parkArea[i].childArea[m].color); - for (let e = 0; e < Map_QM.util.parkMaterialArr.length; e++) { - if (Map_QM.util.parkMaterialArr[e].color.equals(color2)) { - meshMaterial0 = Map_QM.util.parkMaterialArr[e]; - } - } - if (!meshMaterial0) { - meshMaterial0 = new THREE.MeshBasicMaterial({ - color: mapData.parkArea[i].childArea[m].color, - }); - Map_QM.util.parkMaterialArr.push(meshMaterial0); - } - } else { - meshMaterial0 = meshMaterial; - } - let ps = mapData.parkArea[i].childArea[m].points; - let shape0 = new THREE.Shape(); - // 设置开始点的位置 - shape0.moveTo(ps[0].x, -1 * ps[0].y); - for (let t = 0; t < ps.length; t++) { - shape0.lineTo(ps[t].x, -1 * ps[t].y); - } - shapeArr.push(shape0); - materials.push(meshMaterial0); - } - } - } - //显示车位编号 - if (mapData.parkArea[i].parkNum != "NaN" && i % 20 == 0) { - let shopSpr = Map_QM.util.getTextMesh( mapData.parkArea[i].parkNum, new THREE.Vector3(mapData.parkArea[i].xaxis >> 0,(-1 * mapData.parkArea[i].yaxis) >> 0,parseInt(mapData.parkArea[i].toHeight))); - this.parkObj.add(shopSpr); - Map_QM.spriteList[this.buildOrder][this.floorOrder].push(shopSpr); - shopSpr.name = mapData.parkArea[i].name; - shopSpr.userData.mapShow = false; //是否永久显示 - shopSpr.userData.formatCode = "park"; - shopSpr.userData.isShow = true; - shopSpr.userData.nameEn = mapData.parkArea[i].parkNum; - shopSpr.userData.name = mapData.parkArea[i].parkNum; - } - } - } - let mahc = this.Model_QM.MyParkShape(shapeArr, materials, parkHeight); - this.parkObj.add(mahc); - } - }, -}; - -/** - * 渲染3D模型类 - * 传入区域点list - * 镂空点 howllowArr - * 模型对象 options - */ -MyModel_QM = function () { - this.xaxis = 0; - this.yaxis = 0; - this.node = 0; -}; -MyModel_QM.prototype.MyParkShape = function (shapes, materials, toHeight = 5) { - let scanGeometry = new THREE.ShapeBufferGeometry(shapes, 1); - let material = new THREE.LineBasicMaterial({ - color: "#aeaeae", - }); //材质对象lineColor - Map_QM.util.lineBasicMaterialArr.push(material); - - // 创建模型 - let mesh = new THREE.Mesh(scanGeometry, materials); - mesh.position.z = toHeight; - mesh.renderOrder = 300; - mesh.userData.type = "park"; - - let cubeEdges = new THREE.EdgesGeometry(scanGeometry, 60); - let cubeLine = new THREE.LineSegments(cubeEdges, material); - mesh.add(cubeLine); - return mesh; -}; - -MyModel_QM.prototype.MyModelShape = function (areaArr,howllowArr,opObj,entityColor = 0xdadada,lineColor = 0xeeeeee,indexOrder = 1) { - let len = areaArr.length; - if (len == 0) { - return; - } - let alphaModle = opObj.alphaModle / 100 || 0; - // 实例化shape对象 - let shape = new THREE.Shape(); - // 设置开始点的位置 - shape.moveTo(areaArr[0][0], -1 * areaArr[0][1]); - for (let i = 0; i < areaArr.length; i++) { - if (areaArr[i].length == 4) { - shape.lineTo(areaArr[i][2], -1 * areaArr[i][3]); - } else { - shape.bezierCurveTo(areaArr[i][2], -1 * areaArr[i][3], areaArr[i][4], -1 * areaArr[i][5], areaArr[i][6], -1 * areaArr[i][7]); - } - } - let material; - let matcolor = new THREE.Color(lineColor); - for (let k = 0; k < Map_QM.util.lineBasicMaterialArr.length; k++) { - if (Map_QM.util.lineBasicMaterialArr[k].color.equals(matcolor)) { - material = Map_QM.util.lineBasicMaterialArr[k]; - } - } - if (!material) { - material = new THREE.LineBasicMaterial({ - color: lineColor, - opacity: 0.8, - transparent: true, - }); //材质对象lineColor - Map_QM.util.lineBasicMaterialArr.push(material); - } - if (howllowArr && howllowArr.length > 0) { - for (let n = 0; n < howllowArr.length; n++) { - let hole = new THREE.Path(); // 添加孔洞 - hole.moveTo(howllowArr[n][0][0], -1 * howllowArr[n][0][1]); - for (let k = 0; k < howllowArr[n].length; k++) { - if (howllowArr[n][k].length == 4) { - hole.lineTo(howllowArr[n][k][2], -1 * howllowArr[n][k][3]); - } else { - hole.bezierCurveTo(howllowArr[n][k][2],-1 * howllowArr[n][k][3],howllowArr[n][k][4],-1 * howllowArr[n][k][5],howllowArr[n][k][6],-1 * howllowArr[n][k][7]); - } - } - shape.holes.push(hole); - } - } - - let scanGeometry, - meshMaterial, - options = { - depth: parseInt(opObj.toHeight), - bevelEnabled: false, - curveSegments: 12, - bevelThickness: 0, - bevelSize: 0, - bevelSegments: 0, - material: 0, //frontMaterial = green - extrudeMaterial: 1, //sideMaterial = gray - }; - - scanGeometry = new THREE.ExtrudeGeometry(shape, options); - let meshColor = new THREE.Color(entityColor); - for (let e = 0; e < Map_QM.util.meshMaterialArr.length; e++) { - if (Map_QM.util.meshMaterialArr[e].color && - Map_QM.util.meshMaterialArr[e].color.equals(meshColor) && - Map_QM.util.meshMaterialArr[e].opacity == alphaModle && - !Map_QM.util.meshMaterialArr[e].userData.map - ) { - meshMaterial = Map_QM.util.meshMaterialArr[e]; - } - } - if (!meshMaterial) { - meshMaterial = new THREE.MeshPhongMaterial({ - //MeshStandardMaterial MeshPhongMaterial MeshBasicMaterial - color: entityColor, - transparent: true, - opacity: alphaModle, - side: THREE.DoubleSide, - depthTest: true, - }); - Map_QM.util.meshMaterialArr.push(meshMaterial); - } - if (opObj.angleY || opObj.angleZ) { - Map_QM.util.rotateYZ(scanGeometry,(opObj.angleY * Math.PI) / 180,(opObj.angleZ * Math.PI) / 180); - } - // 创建模型 - let mesh; - if (opObj.map == "home") { - Map_QM.util.assignUVs(scanGeometry); - let mapMaterial, ceMaterial; - for (let e = 0; e < Map_QM.util.meshMaterialArr.length; e++) { - if (Map_QM.util.meshMaterialArr[e].userData.map == "front" && Map_QM.util.meshMaterialArr[e].opacity == alphaModle) { - mapMaterial = Map_QM.util.meshMaterialArr[e]; - } - if (Map_QM.util.meshMaterialArr[e].userData.map == "c50" && Map_QM.util.meshMaterialArr[e].opacity == alphaModle) { - ceMaterial = Map_QM.util.meshMaterialArr[e]; - } - } - if (!mapMaterial) { - let texture = new THREE.TextureLoader().load(Map_QM.util.beforPath + "static/img/map/front.png"); - texture.wrapS = THREE.ClampToEdgeWrapping; - texture.wrapT = THREE.RepeatWrapping; - mapMaterial = new THREE.MeshPhongMaterial({ - color: entityColor, - map: texture, - transparent: true, - opacity: alphaModle, - side: THREE.DoubleSide, - depthTest: true, - }); - mapMaterial.userData.map = "front"; - Map_QM.util.meshMaterialArr.push(mapMaterial); - } - if (!ceMaterial) { - let texture2 = new THREE.TextureLoader().load(Map_QM.util.beforPath + "static/img/map/c50.png"); - texture2.wrapS = THREE.RepeatWrapping; - texture2.wrapT = THREE.ClampToEdgeWrapping; - ceMaterial = new THREE.MeshPhongMaterial({ - color: entityColor, - map: texture2, - transparent: true, - opacity: alphaModle, - side: THREE.DoubleSide, - depthTest: true, - }); - ceMaterial.userData.map = "c50"; - Map_QM.util.meshMaterialArr.push(ceMaterial); - } - mesh = new THREE.Mesh(scanGeometry, [meshMaterial, ceMaterial, mapMaterial,]); - } else if (opObj.map) { - Map_QM.util.packUv(scanGeometry); - let ceMaterial; - for (let e = 0; e < Map_QM.util.meshMaterialArr.length; e++) { - if (Map_QM.util.meshMaterialArr[e].userData.map == opObj.map && Map_QM.util.meshMaterialArr[e].opacity == alphaModle) { - ceMaterial = Map_QM.util.meshMaterialArr[e]; - } - } - if (!ceMaterial) { - let texture2 = new THREE.TextureLoader().load(Map_QM.util.beforPath + "static/img/map/" + opObj.map + ".png"); - texture2.wrapS = THREE.RepeatWrapping; - texture2.wrapT = THREE.ClampToEdgeWrapping; - ceMaterial = new THREE.MeshPhongMaterial({ - color: entityColor, - map: texture2, - transparent: true, - opacity: alphaModle, - side: THREE.DoubleSide, - depthTest: true, - }); - ceMaterial.userData.map = opObj.map; - Map_QM.util.meshMaterialArr.push(ceMaterial); - } - mesh = new THREE.Mesh(scanGeometry, [meshMaterial, ceMaterial]); - } else { - mesh = new THREE.Mesh(scanGeometry, meshMaterial); - } - - if (opObj.type != "wall") { - let cubeEdges = new THREE.EdgesGeometry(scanGeometry, 60); - let cubeLine = new THREE.LineSegments(cubeEdges, material); - cubeLine.renderOrder = indexOrder - 5; - mesh.add(cubeLine); - } - if (opObj.name != "floor") { - mesh.position.z = opObj.site || 0; - } else { - mesh.position.z = -1 * parseInt(opObj.toHeight) - 1; - } - mesh.castShadow = true; - mesh.renderOrder = indexOrder; - mesh.name = opObj.name || ""; - return mesh; -}; - -//绘制平面 -MyModel_QM.prototype.MyPlaneShape = function (areaArr,howllowArr,opObj,entityColor = "#dadada",lineColor = "#eeeeee",indexOrder = 1) { - let len = areaArr.length; - if (len == 0) { - return; - } - let alphaModle = opObj.alphaModle / 100 || 0; - // 实例化shape对象 - let shape = new THREE.Shape(); - // 设置开始点的位置 - shape.moveTo(areaArr[0][0], -1 * areaArr[0][1]); - for (let i = 0; i < areaArr.length; i++) { - if (areaArr[i].length == 4) { - shape.lineTo(areaArr[i][2], -1*areaArr[i][3]); - } else { - shape.bezierCurveTo(areaArr[i][2], -1*areaArr[i][3], areaArr[i][4], -1*areaArr[i][5], areaArr[i][6], -1*areaArr[i][7]); - } - } - let material; - for (let k = 0; k < Map_QM.util.lineBasicMaterialArr.length; k++) { - let color2 = new THREE.Color(lineColor); - if (Map_QM.util.lineBasicMaterialArr[k].color.equals(color2)) { - material = Map_QM.util.lineBasicMaterialArr[k]; - } - } - if (!material) { - material = new THREE.LineBasicMaterial({ - color: lineColor, - opacity: 0.8, - transparent: true, - }); //材质对象lineColor - Map_QM.util.lineBasicMaterialArr.push(material); - } - if (howllowArr && howllowArr.length > 0) { - for (let n = 0; n < howllowArr.length; n++) { - let hole = new THREE.Path(); // 添加孔洞 - hole.moveTo(howllowArr[n][0][0], -1 * howllowArr[n][0][1]); - for (let k = 0; k < howllowArr[n].length; k++) { - if (howllowArr[n][k].length == 4) { - hole.lineTo(howllowArr[n][k][2], -1 * howllowArr[n][k][3]); - } else { - hole.bezierCurveTo(howllowArr[n][k][2], -1*howllowArr[n][k][3], howllowArr[n][k][4], -1*howllowArr[n][k][5], howllowArr[n][k][6], -1*howllowArr[n][k][7]); - } - } - shape.holes.push(hole); - } - } - let scanGeometry, meshMaterial; - scanGeometry = new THREE.ShapeGeometry(shape, 8); - Map_QM.util.assignUVs(scanGeometry); - if (opObj.map) { - let texture = new THREE.TextureLoader().load( - Map_QM.util.beforPath + "static/img/map/" + opObj.map + ".png" - ); - meshMaterial = new THREE.MeshPhongMaterial({ - //MeshStandardMaterial MeshPhongMaterial olor: entityColor, - color: entityColor, - map: texture, - transparent: true, - opacity: alphaModle, - side: THREE.DoubleSide, - depthTest: true, - }); - meshMaterial.userData.map = opObj.map; - Map_QM.util.meshMaterialArr.push(meshMaterial); - } else { - for (let e = 0; e < Map_QM.util.meshMaterialArr.length; e++) { - let color2 = new THREE.Color(entityColor); - if ( - Map_QM.util.meshMaterialArr[e].color && - Map_QM.util.meshMaterialArr[e].color.equals(color2) && - Map_QM.util.meshMaterialArr[e].opacity == alphaModle && - !Map_QM.util.meshMaterialArr[e].userData.map - ) { - meshMaterial = Map_QM.util.meshMaterialArr[e]; - } - } - if (!meshMaterial) { - meshMaterial = new THREE.MeshPhongMaterial({ - color: entityColor, - transparent: true, - opacity: alphaModle, - side: THREE.DoubleSide, - depthTest: true, - }); - Map_QM.util.meshMaterialArr.push(meshMaterial); - } - if (opObj.angleY || opObj.angleZ) { - Map_QM.util.rotateYZ( - scanGeometry, - (opObj.angleY * Math.PI) / 180, - (opObj.angleZ * Math.PI) / 180 - ); - } - } - // 创建模型 - let mesh = new THREE.Mesh(scanGeometry, meshMaterial); - - let cubeEdges = new THREE.EdgesGeometry(scanGeometry, 60); - let cubeLine = new THREE.LineSegments(cubeEdges, material); - cubeLine.renderOrder = indexOrder - 5; - mesh.add(cubeLine); - - if (opObj.name != "floor") { - mesh.position.z = parseInt(opObj.toHeight) || 0; - } - mesh.castShadow = true; - mesh.renderOrder = indexOrder; - mesh.name = opObj.name || ""; - return mesh; -}; - -MyModel_QM.prototype.MyModelText = function (svgArea) { - let text = svgArea.data; - const paths = new THREE.SVGLoader().parse(text).paths; - const group = new THREE.Group(); - - group.position.x = parseInt(svgArea.xaxis); - group.position.y = -1 * parseInt(svgArea.yaxis); - group.position.z = parseInt(svgArea.site || 0); - group.rotateX((parseInt(svgArea.angleZ) * Math.PI) / 180); - group.rotateY((parseInt(svgArea.angleY) * Math.PI) / 180); - group.rotateZ((parseInt(svgArea.angle) * Math.PI) / 180); - group.scale.multiplyScalar(svgArea.scale); - group.scale.y *= -1; - - let meshMaterial; - for (let e = 0; e < Map_QM.util.meshMaterialArr.length; e++) { - let color2 = new THREE.Color().setHex(svgArea.entColor); - if (Map_QM.util.meshMaterialArr[e].color && - Map_QM.util.meshMaterialArr[e].color.equals(color2) && - Map_QM.util.meshMaterialArr[e].opacity == svgArea.alphaModle - ) { - meshMaterial = Map_QM.util.meshMaterialArr[e]; - } - } - if (!meshMaterial) { - meshMaterial = new THREE.MeshStandardMaterial({ - color: svgArea.entColor, - opacity: parseInt(svgArea.alphaModle) / 100, - }); - Map_QM.util.meshMaterialArr.push(meshMaterial); - } - - for (let i = 0; i < paths.length; i++) { - const path = paths[i]; - let shapes = path.toShapes(true); - const geometry = new THREE.ShapeGeometry(shapes, 12); - const mesh = new THREE.Mesh(geometry, meshMaterial); - mesh.renderOrder = 50; - mesh.name = svgArea.name || ""; - mesh.position.set( svgArea.width / -2, svgArea.height / -2, parseInt(svgArea.toHeight) + 1); - group.add(mesh); - } - return group; -}; - -/** - * 公共设施 - */ -var MySprite_QM = function (spriteMaterial, obj = null) { - THREE.Sprite.call(this); - if (obj) { - this.navCode = obj.navCode; - this.no = obj.no; - this.facCode = obj.facCode; - this.floor = obj.floorOrder; - this.build = obj.buildOrder; - this.site = parseInt(obj.site) || Map_QM.util.shopHeight + 32; - } - this.imgUrl; - this.material = spriteMaterial !== undefined ? spriteMaterial : new SpriteMaterial(); - //图标跳动 - this.jumpIcon = function () { - let oldZ = this.site; - let self = this; - TweenMax.fromTo(self.position, 0.5, { z: oldZ }, {z: oldZ + 20, repeat: 1, - onComplete: function () { - TweenMax.to(self.position, 0.2, { z: oldZ }); - }, - } - ); - }; - this.reSetSite = function () { - //重置位置 - this.position.z = this.site; - }; -}; - -MySprite_QM.prototype = Object.create(THREE.Sprite.prototype); -MySprite_QM.prototype.constructor = MySprite_QM; - -/** - * 渲染公共设施 - */ -var Facilities_QM = function () { - this.renderIcon = function (obj, _this, isShow = true, ele = null) { - if (obj) { - let url = Map_QM.util.beforPath + "static/img/" + obj.facCode + ".png"; - let name = obj.title; - let nameEn = obj.title; - if (Map_QM.util.iconUrl.length > 0) { - //使用设施库 - for (let i = 0; i < Map_QM.util.iconUrl.length; i++) { - if (Map_QM.util.iconUrl[i].abbreviation == obj.facCode) { - url = Map_QM.util.iconUrl[i].navFilePath; - name = Map_QM.util.iconUrl[i].name; - nameEn = Map_QM.util.iconUrl[i].nameEn; - } - } - } - let shopDiv = document.createElement("img"); - shopDiv.src = url; - shopDiv.style.zIndex = 100; - shopDiv.style.width = "1.2vw"; - shopDiv.style.display = isShow ? "" : "none"; - shopDiv.dataset.name = name; - shopDiv.dataset.src = url; - shopDiv.dataset.nameEn = nameEn; - shopDiv.dataset.buildOrder = obj.buildOrder; - shopDiv.dataset.floorOrder = obj.floorOrder; - shopDiv.dataset.facCode = obj.facCode; - shopDiv.dataset.node = obj.navCode; - - shopDiv.addEventListener("click", (event) => { - /** - * @api {事件} icon 点击设施图标 - * @apiGroup 地图事件 - * @apiDescription 用户点击设施图标后触发自定义事件 - * @apiVersion 4.0.0 - * @apiSampleRequest off - * - * @apiParamExample 请求示例 - * Map_QM.addEventListener("icon",onClickIcon,false); - */ - Map_QM.dispatchEvent({ - type: "icon", - data: { - buildOrder: event.target.dataset.buildOrder, - floorOrder: event.target.dataset.floorOrder, - node: event.target.dataset.node, - src: event.target.dataset.src, - facCode: event.target.dataset.facCode, - title: event.target.dataset.name, - }, - }); - }); - let shopLabel = new THREE.CSS2DObject(shopDiv); - shopLabel.userData.mapShow = true; //是否永久显示 - shopLabel.userData = obj; - shopLabel.userData.type = "icon"; - shopLabel.userData.use = ele ? "2d" : "all"; - shopLabel.userData.model = ele; - shopLabel.userData.src = url; - shopLabel.userData.isShow = true; - shopLabel.position.set(obj.x, -1*obj.y, Math.max(30, parseInt(obj.site) || 0)); - _this.serObj.add(shopLabel); - - if (Map_QM.util.options.iconName) { - let shopSpr = Map_QM.util.getTextMesh(obj.title, new THREE.Vector3(obj.x, -1*obj.y, Math.max(30, parseInt(obj.site) || 0) + 80)); - _this.serObj.add(shopSpr); - Map_QM.spriteList[_this.buildOrder][_this.floorOrder].push(shopSpr); - shopSpr.name = name; - shopSpr.userData.mapShow = true; //是否永久显示 - shopSpr.userData.formatCode = "icon"; - shopSpr.userData.isShow = true; - shopSpr.userData.nameEn = nameEn; - shopSpr.userData.name = name; - } - } - }; -}; -/** - * 店铺LOGO地图展示类 - */ -var ShopLogo_QM = function () { - this.renderIcon = function (obj, _this, z) { - if (obj) { - let x = obj.xaxis >> 0; - let y = (-1 * obj.yaxis) >> 0; - let imgW = obj.imgW >> 0; - let imgH = obj.imgH >> 0; - - new THREE.TextureLoader().load(obj.logoUrl, (textu) => { - let planeMaterial = new THREE.MeshPhongMaterial({ - map: textu, - depthTest: true, - transparent: true, - alphaTest: 0.01, - }); - let planeGeometry = new THREE.PlaneGeometry(imgW, imgH); - let plane = new THREE.Mesh(planeGeometry, planeMaterial); - plane.center = new THREE.Vector2(0, 0); - plane.position.set(x, y, obj.site || z); - plane.userData.rot = 0; - plane.userData.type = "logo"; - plane.renderOrder = 70; - _this.add(plane); - }); - } - }; -}; - -var _selfFindPath; -var FindPath_QM = function () { - this.pathArr = []; - this.lineDashed; - this.lineDashed_old; - //路线指引箭头皮肤 - this.planeGeometry = new THREE.PlaneGeometry(128, 128); - this.morePath = false; - this.stop = null; - this._index = 0; //寻路用 - this.pathState = "init"; - this.pathPlay = { - _isPlay: false, - get isPlay() { - return this._isPlay; - }, - set isPlay(val) { - this._isPlay = val; - if (_selfFindPath && _selfFindPath.stop) { - window.cancelAnimationFrame(_selfFindPath.stop); - _selfFindPath.stop = null; - } - if (_selfFindPath && _selfFindPath.pathState == "isPlay" && _selfFindPath._index < _selfFindPath.pathArr.length) { - _selfFindPath.playMoveGuide(); - } - }, - }; -}; - -FindPath_QM.prototype.clearPath = function () { - this.pathArr = []; - if (this.lineDashed) { - if (Map_QM.mapArr[Map_QM.util.selectBuild][Map_QM.util.selectFloor]) { - Map_QM.mapArr[Map_QM.util.selectBuild][Map_QM.util.selectFloor].allObj.remove(this.lineDashed); - } - this.lineDashed.destroy(); - this.lineDashed = null; - } - if (this.lineDashed_old) { - if (Map_QM.mapArr[Map_QM.util.selectBuild][Map_QM.util.selectFloor]) { - Map_QM.mapArr[Map_QM.util.selectBuild][Map_QM.util.selectFloor].allObj.remove(this.lineDashed_old); - } - this.lineDashed_old.destroy(); - this.lineDashed_old = null; - } - if (Map_QM.guide) { - Map_QM.guide.visible = false; - if (Map_QM.mapArr[Map_QM.util.selectBuild][Map_QM.util.selectFloor]) { - Map_QM.mapArr[Map_QM.util.selectBuild][Map_QM.util.selectFloor].allObj.remove(Map_QM.man_2d); - Map_QM.mapArr[Map_QM.util.selectBuild][Map_QM.util.selectFloor].allObj.remove(Map_QM.man_3d); - } - } - - if (_selfFindPath && _selfFindPath.stop) { - window.cancelAnimationFrame(_selfFindPath.stop); - } - this._index = 0; - this.pathState = "init"; -}; -/** - * @param {Object} startNade - * @param {Object} toNade - * @param {Object} callBack 回调函数 - */ -FindPath_QM.prototype.onFindPathAnimation = function (pathArray,morePath = false,floorOrder = -1) { - this.morePath = morePath; - if (pathArray && pathArray.length > 0) { - this.pathState = "isPlay"; - this._index = 0; - this.pathArr = []; - if (floorOrder === -1) { - floorOrder = Map_QM.util.selectFloor; - } - if (morePath) { - for (let j = 0; j < pathArray.length; j++) { - this.drawPath(floorOrder,pathArray[j], parseInt(Map_QM.util.buildHeight) + j); - } - } else { - for (let j = 0; j < pathArray.length; j++) { - this.pathArr.push(pathArray[j]); - } - this.drawPath(floorOrder); - } - } -}; - -FindPath_QM.prototype.drawPath = function (floorOrder, pathArr = null, height = 1) { - let linePath = []; - if (!pathArr) { - for (let i = 0; i < this.pathArr.length; i++) { - if (i < this.pathArr.length) { - linePath.push([this.pathArr[i].x, -1 * this.pathArr[i].y]); - } - } - } else { - for (let i = 0; i < pathArr.length; i++) { - if (i < pathArr.length) { - linePath.push([pathArr[i].x, -1 * pathArr[i].y]); - } - } - } - if (this.morePath) { - this.lineDashed_old = new PathLine(12,linePath,height,Map_QM.util.options.pathColor,Map_QM.util.options.pathColor2,true); - } else if (Map_QM.util.options.shadow) { - this.lineDashed_old = new PathLine(12,linePath,parseInt(Map_QM.util.buildHeight) + 1,Map_QM.util.options.pathBgColor,Map_QM.util.options.pathBgColor2,true); - } else { - this.lineDashed_old = new PathLine(12,linePath,parseInt(Map_QM.util.buildHeight) + 1,Map_QM.util.options.pathColor,Map_QM.util.options.pathColor2,true); - } - this.lineDashed_old.name = "lineDash"; - this.lineDashed_old.renderOrder = 128; - Map_QM.mapArr[Map_QM.util.selectBuild][floorOrder].allObj.add(this.lineDashed_old); -}; -FindPath_QM.prototype.updateClearPath = function () { - if (this.lineDashed) { - if (Map_QM.mapArr[Map_QM.util.selectBuild][Map_QM.util.selectFloor]) { - Map_QM.mapArr[Map_QM.util.selectBuild][Map_QM.util.selectFloor].allObj.remove(this.lineDashed); - } - this.lineDashed.destroy(); - this.lineDashed = null; - } -}; -FindPath_QM.prototype.updateDrawPath = function () { - if (Map_QM.util.options.shadow) { - this.updateClearPath(); - let linePath = []; - linePath.push([Map_QM.guide.position.x, Map_QM.guide.position.y]); - for (let i = this._index; i < this.pathArr.length; i++) { - if (i < this.pathArr.length) { - linePath.push([this.pathArr[i].x, -1 * this.pathArr[i].y]); - } - } - this.lineDashed = new PathLine(12,linePath,parseInt(Map_QM.util.buildHeight) + 2,Map_QM.util.options.pathColor,Map_QM.util.options.pathColor2,false); - this.lineDashed.renderOrder = 130; - Map_QM.mapArr[Map_QM.util.selectBuild][Map_QM.util.selectFloor].allObj.add(this.lineDashed); - } -}; - -FindPath_QM.prototype.guidePathPlay = function (paths) { - if (Map_QM.guide) { - Map_QM.guide.renderOrder = 99; - if (paths.PathPoint) { - Map_QM.guide.position.x = paths.PathPoint[0].x; - Map_QM.guide.position.y = -1 * paths.PathPoint[0].y; - Map_QM.moveCameraBy2D(paths.PathPoint[0]); - Map_QM.man_2d.position.z = parseInt(Map_QM.util.buildHeight) + 120; - Map_QM.man_3d.position.z = parseInt(Map_QM.util.buildHeight) + 5; - Map_QM.guide.visible = true; - Map_QM.mapArr[Map_QM.util.selectBuild][paths.floor].allObj.add(Map_QM.man_2d); - Map_QM.mapArr[Map_QM.util.selectBuild][paths.floor].allObj.add(Map_QM.man_3d); - } - } - this.pathArr = paths.PathPoint; - _selfFindPath = this; - if (Map_QM.util.pathStateObj.isPathPlay) { - this.pathPlay.isPlay = true; - } -}; -/** - * 播放图标指引动画 - */ -FindPath_QM.prototype.playMoveGuide = function () { - if (!Map_QM.guide) { - return; - } - let px = Map_QM.guide.position.x; - let py = Map_QM.guide.position.y; - let targetX = _selfFindPath.pathArr[_selfFindPath._index].x - px; - let targetY = -1 * _selfFindPath.pathArr[_selfFindPath._index].y - py; - let dist = Math.sqrt(targetX * targetX + targetY * targetY); - let df = Math.ceil(dist / (Map_QM.util.options.playSpeed * Map_QM.util.options.speedMult)); - let dx = (_selfFindPath.pathArr[_selfFindPath._index].x - px) / df; - let dy = (-1 * _selfFindPath.pathArr[_selfFindPath._index].y - py) / df; - let ang = 0; - if (df < 2) { - Map_QM.guide.position.x = _selfFindPath.pathArr[_selfFindPath._index].x; - Map_QM.guide.position.y = -1 * _selfFindPath.pathArr[_selfFindPath._index].y; - Map_QM.moveCameraBy2D({x: _selfFindPath.pathArr[_selfFindPath._index].x, y: _selfFindPath.pathArr[_selfFindPath._index].y }); - _selfFindPath._index++; - if (_selfFindPath._index > 0 && _selfFindPath._index < _selfFindPath.pathArr.length) { - Map_QM.man_3d.rotation.z = Map_QM.man_2d.rotation.z = 0; //180; - let s = Math.sqrt( - (_selfFindPath.pathArr[_selfFindPath._index].x - _selfFindPath.pathArr[_selfFindPath._index - 1].x) * - (_selfFindPath.pathArr[_selfFindPath._index].x - _selfFindPath.pathArr[_selfFindPath._index - 1].x) + - (_selfFindPath.pathArr[_selfFindPath._index].y - _selfFindPath.pathArr[_selfFindPath._index - 1].y) * - (_selfFindPath.pathArr[_selfFindPath._index].y - _selfFindPath.pathArr[_selfFindPath._index - 1].y) - ); - ang = Math.acos((_selfFindPath.pathArr[_selfFindPath._index].y - _selfFindPath.pathArr[_selfFindPath._index - 1].y) /s); - if ( _selfFindPath.pathArr[_selfFindPath._index].x < _selfFindPath.pathArr[_selfFindPath._index - 1].x) { - Map_QM.man_3d.rotation.z = Map_QM.man_2d.rotation.z = Math.PI - ang; - } else { - Map_QM.man_3d.rotation.z = Map_QM.man_2d.rotation.z = Math.PI + ang; - } - } - let pathShop = ""; - for (let t = 0; t < Map_QM.forShopArr[Map_QM.util._indexPathFloor].wayShop.length; t++) { - if (Map_QM.forShopArr[Map_QM.util._indexPathFloor].wayShop[t].pathIndex ==_selfFindPath._index) { - let shop_ = Map_QM.forShopArr[Map_QM.util._indexPathFloor].wayShop[t].shop; - pathShop = shop_.houseNumber; - let shops = Map_QM.mapArr[Map_QM.util.selectBuild][parseInt(Map_QM.forShopArr[Map_QM.util._indexPathFloor].wayShop[t].shop.floorOrder)].shopObj.children; - for (let i = 0; i < shops.length; i++) { - let _shop = shops[i].userData.shopData; - if (_shop && _shop.houseNumber == pathShop) { - let shopModel = shops[i]; - let material = shopModel.material; - shopModel.material = new THREE.MeshBasicMaterial({ - color: Map_QM.util.options.navColor, - }); - TweenMax.to(shopModel.scale, 0.8, { z: 3, yoyo: true, ease: Cubic.easeIn, - onComplete: function () { - if (shopModel) { - TweenMax.to(shopModel.scale, 0.5, { z: 1 }); - shopModel.material = material; - } - }, - }); - break; - } - } - break; - } - } - Map_QM.dispatchEvent({ - //寻路中返回小人当前所在点位 - type: "PathPlaying", - data: { houseNumber: pathShop }, - }); - } else { - px += dx; - py += dy; - Map_QM.guide.position.x = px; - Map_QM.guide.position.y = py; - Map_QM.moveCameraBy2D({ x: px, y: -1 * py }); - if (!_selfFindPath.morePath) { - _selfFindPath.updateDrawPath(); //实时绘制有效路径 await 修是 promise - } - } - - if (_selfFindPath.pathPlay.isPlay && Map_QM.guide) { - if (_selfFindPath._index < _selfFindPath.pathArr.length) { - _selfFindPath.stop = requestAnimationFrame(_selfFindPath.playMoveGuide); - } else { - if (_selfFindPath && _selfFindPath.stop) { - window.cancelAnimationFrame(_selfFindPath.stop); - _selfFindPath.stop = null; - } - _selfFindPath.updateClearPath(); - _selfFindPath._index = 0; - if (Map_QM.guide) { - Map_QM.guide.visible = false; - } - let myEvent = new CustomEvent("pathOver", { - detail: { dx: dx, dy: dy }, - }); - document.dispatchEvent(myEvent); //触发导航完成事件 - _selfFindPath.pathState = "pathOver"; - } - } -}; diff --git a/public/static/qm/three.js b/public/static/qm/three.js deleted file mode 100644 index a1f8bac..0000000 --- a/public/static/qm/three.js +++ /dev/null @@ -1,38640 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : - typeof define === 'function' && define.amd ? define(['exports'], factory) : - (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.THREE = {})); -}(this, (function (exports) { 'use strict'; - if (Number.EPSILON === undefined) { - Number.EPSILON = Math.pow(2, -52); - } - if (Number.isInteger === undefined) { - Number.isInteger = function (value) { - return typeof value === 'number' && isFinite(value) && Math.floor(value) === value; - }; - } - if (Math.sign === undefined) { - Math.sign = function (x) { - return x < 0 ? -1 : x > 0 ? 1 : +x; - }; - } - if ('name' in Function.prototype === false) { - Object.defineProperty(Function.prototype, 'name', { - get: function get() { - return this.toString().match(/^\s*function\s*([^\(\s]*)/)[1]; - } - }); - } - if (Object.assign === undefined) { - Object.assign = function (target) { - if (target === undefined || target === null) { - throw new TypeError('Cannot convert undefined or null to object'); - } - var output = Object(target); - for (var index = 1; index < arguments.length; index++) { - var source = arguments[index]; - if (source !== undefined && source !== null) { - for (var nextKey in source) { - if (Object.prototype.hasOwnProperty.call(source, nextKey)) { - output[nextKey] = source[nextKey]; - } - } - } - } - return output; - }; - } - var REVISION = '124dev'; - var MOUSE = { - LEFT: 0, - MIDDLE: 1, - RIGHT: 2, - ROTATE: 0, - DOLLY: 1, - PAN: 2 - }; - var TOUCH = { - ROTATE: 0, - PAN: 1, - DOLLY_PAN: 2, - DOLLY_ROTATE: 3 - }; - var CullFaceNone = 0; - var CullFaceBack = 1; - var CullFaceFront = 2; - var CullFaceFrontBack = 3; - var BasicShadowMap = 0; - var PCFShadowMap = 1; - var PCFSoftShadowMap = 2; - var VSMShadowMap = 3; - var FrontSide = 0; - var BackSide = 1; - var DoubleSide = 2; - var FlatShading = 1; - var SmoothShading = 2; - var NoBlending = 0; - var NormalBlending = 1; - var AdditiveBlending = 2; - var SubtractiveBlending = 3; - var MultiplyBlending = 4; - var CustomBlending = 5; - var AddEquation = 100; - var SubtractEquation = 101; - var ReverseSubtractEquation = 102; - var MinEquation = 103; - var MaxEquation = 104; - var ZeroFactor = 200; - var OneFactor = 201; - var SrcColorFactor = 202; - var OneMinusSrcColorFactor = 203; - var SrcAlphaFactor = 204; - var OneMinusSrcAlphaFactor = 205; - var DstAlphaFactor = 206; - var OneMinusDstAlphaFactor = 207; - var DstColorFactor = 208; - var OneMinusDstColorFactor = 209; - var SrcAlphaSaturateFactor = 210; - var NeverDepth = 0; - var AlwaysDepth = 1; - var LessDepth = 2; - var LessEqualDepth = 3; - var EqualDepth = 4; - var GreaterEqualDepth = 5; - var GreaterDepth = 6; - var NotEqualDepth = 7; - var MultiplyOperation = 0; - var MixOperation = 1; - var AddOperation = 2; - var NoToneMapping = 0; - var LinearToneMapping = 1; - var ReinhardToneMapping = 2; - var CineonToneMapping = 3; - var ACESFilmicToneMapping = 4; - var CustomToneMapping = 5; - var UVMapping = 300; - var CubeReflectionMapping = 301; - var CubeRefractionMapping = 302; - var EquirectangularReflectionMapping = 303; - var EquirectangularRefractionMapping = 304; - var CubeUVReflectionMapping = 306; - var CubeUVRefractionMapping = 307; - var RepeatWrapping = 1000; - var ClampToEdgeWrapping = 1001; - var MirroredRepeatWrapping = 1002; - var NearestFilter = 1003; - var NearestMipmapNearestFilter = 1004; - var NearestMipMapNearestFilter = 1004; - var NearestMipmapLinearFilter = 1005; - var NearestMipMapLinearFilter = 1005; - var LinearFilter = 1006; - var LinearMipmapNearestFilter = 1007; - var LinearMipMapNearestFilter = 1007; - var LinearMipmapLinearFilter = 1008; - var LinearMipMapLinearFilter = 1008; - var UnsignedByteType = 1009; - var ByteType = 1010; - var ShortType = 1011; - var UnsignedShortType = 1012; - var IntType = 1013; - var UnsignedIntType = 1014; - var FloatType = 1015; - var HalfFloatType = 1016; - var UnsignedShort4444Type = 1017; - var UnsignedShort5551Type = 1018; - var UnsignedShort565Type = 1019; - var UnsignedInt248Type = 1020; - var AlphaFormat = 1021; - var RGBFormat = 1022; - var RGBAFormat = 1023; - var LuminanceFormat = 1024; - var LuminanceAlphaFormat = 1025; - var RGBEFormat = RGBAFormat; - var DepthFormat = 1026; - var DepthStencilFormat = 1027; - var RedFormat = 1028; - var RedIntegerFormat = 1029; - var RGFormat = 1030; - var RGIntegerFormat = 1031; - var RGBIntegerFormat = 1032; - var RGBAIntegerFormat = 1033; - var RGB_S3TC_DXT1_Format = 33776; - var RGBA_S3TC_DXT1_Format = 33777; - var RGBA_S3TC_DXT3_Format = 33778; - var RGBA_S3TC_DXT5_Format = 33779; - var RGB_PVRTC_4BPPV1_Format = 35840; - var RGB_PVRTC_2BPPV1_Format = 35841; - var RGBA_PVRTC_4BPPV1_Format = 35842; - var RGBA_PVRTC_2BPPV1_Format = 35843; - var RGB_ETC1_Format = 36196; - var RGB_ETC2_Format = 37492; - var RGBA_ETC2_EAC_Format = 37496; - var RGBA_ASTC_4x4_Format = 37808; - var RGBA_ASTC_5x4_Format = 37809; - var RGBA_ASTC_5x5_Format = 37810; - var RGBA_ASTC_6x5_Format = 37811; - var RGBA_ASTC_6x6_Format = 37812; - var RGBA_ASTC_8x5_Format = 37813; - var RGBA_ASTC_8x6_Format = 37814; - var RGBA_ASTC_8x8_Format = 37815; - var RGBA_ASTC_10x5_Format = 37816; - var RGBA_ASTC_10x6_Format = 37817; - var RGBA_ASTC_10x8_Format = 37818; - var RGBA_ASTC_10x10_Format = 37819; - var RGBA_ASTC_12x10_Format = 37820; - var RGBA_ASTC_12x12_Format = 37821; - var RGBA_BPTC_Format = 36492; - var SRGB8_ALPHA8_ASTC_4x4_Format = 37840; - var SRGB8_ALPHA8_ASTC_5x4_Format = 37841; - var SRGB8_ALPHA8_ASTC_5x5_Format = 37842; - var SRGB8_ALPHA8_ASTC_6x5_Format = 37843; - var SRGB8_ALPHA8_ASTC_6x6_Format = 37844; - var SRGB8_ALPHA8_ASTC_8x5_Format = 37845; - var SRGB8_ALPHA8_ASTC_8x6_Format = 37846; - var SRGB8_ALPHA8_ASTC_8x8_Format = 37847; - var SRGB8_ALPHA8_ASTC_10x5_Format = 37848; - var SRGB8_ALPHA8_ASTC_10x6_Format = 37849; - var SRGB8_ALPHA8_ASTC_10x8_Format = 37850; - var SRGB8_ALPHA8_ASTC_10x10_Format = 37851; - var SRGB8_ALPHA8_ASTC_12x10_Format = 37852; - var SRGB8_ALPHA8_ASTC_12x12_Format = 37853; - var LoopOnce = 2200; - var LoopRepeat = 2201; - var LoopPingPong = 2202; - var InterpolateDiscrete = 2300; - var InterpolateLinear = 2301; - var InterpolateSmooth = 2302; - var ZeroCurvatureEnding = 2400; - var ZeroSlopeEnding = 2401; - var WrapAroundEnding = 2402; - var NormalAnimationBlendMode = 2500; - var AdditiveAnimationBlendMode = 2501; - var TrianglesDrawMode = 0; - var TriangleStripDrawMode = 1; - var TriangleFanDrawMode = 2; - var LinearEncoding = 3000; - var sRGBEncoding = 3001; - var GammaEncoding = 3007; - var RGBEEncoding = 3002; - var LogLuvEncoding = 3003; - var RGBM7Encoding = 3004; - var RGBM16Encoding = 3005; - var RGBDEncoding = 3006; - var BasicDepthPacking = 3200; - var RGBADepthPacking = 3201; - var TangentSpaceNormalMap = 0; - var ObjectSpaceNormalMap = 1; - var ZeroStencilOp = 0; - var KeepStencilOp = 7680; - var ReplaceStencilOp = 7681; - var IncrementStencilOp = 7682; - var DecrementStencilOp = 7683; - var IncrementWrapStencilOp = 34055; - var DecrementWrapStencilOp = 34056; - var InvertStencilOp = 5386; - var NeverStencilFunc = 512; - var LessStencilFunc = 513; - var EqualStencilFunc = 514; - var LessEqualStencilFunc = 515; - var GreaterStencilFunc = 516; - var NotEqualStencilFunc = 517; - var GreaterEqualStencilFunc = 518; - var AlwaysStencilFunc = 519; - var StaticDrawUsage = 35044; - var DynamicDrawUsage = 35048; - var StreamDrawUsage = 35040; - var StaticReadUsage = 35045; - var DynamicReadUsage = 35049; - var StreamReadUsage = 35041; - var StaticCopyUsage = 35046; - var DynamicCopyUsage = 35050; - var StreamCopyUsage = 35042; - var GLSL1 = '100'; - var GLSL3 = '300 es'; - function EventDispatcher() {} - Object.assign(EventDispatcher.prototype, { - addEventListener: function addEventListener(type, listener) { - if (this._listeners === undefined) this._listeners = {}; - var listeners = this._listeners; - if (listeners[type] === undefined) { - listeners[type] = []; - } - if (listeners[type].indexOf(listener) === -1) { - listeners[type].push(listener); - } - }, - hasEventListener: function hasEventListener(type, listener) { - if (this._listeners === undefined) return false; - var listeners = this._listeners; - return listeners[type] !== undefined && listeners[type].indexOf(listener) !== -1; - }, - removeEventListener: function removeEventListener(type, listener) { - if (this._listeners === undefined) return; - var listeners = this._listeners; - var listenerArray = listeners[type]; - if (listenerArray !== undefined) { - var index = listenerArray.indexOf(listener); - if (index !== -1) { - listenerArray.splice(index, 1); - } - } - }, - dispatchEvent: function dispatchEvent(event) { - if (this._listeners === undefined) return; - var listeners = this._listeners; - var listenerArray = listeners[event.type]; - if (listenerArray !== undefined) { - event.target = this; - var array = listenerArray.slice(0); - for (var i = 0, l = array.length; i < l; i++) { - array[i].call(this, event); - } - } - } - }); - var _lut = []; - for (var i = 0; i < 256; i++) { - _lut[i] = (i < 16 ? '0' : '') + i.toString(16); - } - var _seed = 1234567; - var MathUtils = { - DEG2RAD: Math.PI / 180, - RAD2DEG: 180 / Math.PI, - generateUUID: function generateUUID() { - var d0 = Math.random() * 0xffffffff | 0; - var d1 = Math.random() * 0xffffffff | 0; - var d2 = Math.random() * 0xffffffff | 0; - var d3 = Math.random() * 0xffffffff | 0; - var uuid = _lut[d0 & 0xff] + _lut[d0 >> 8 & 0xff] + _lut[d0 >> 16 & 0xff] + _lut[d0 >> 24 & 0xff] + '-' + _lut[d1 & 0xff] + _lut[d1 >> 8 & 0xff] + '-' + _lut[d1 >> 16 & 0x0f | 0x40] + _lut[d1 >> 24 & 0xff] + '-' + _lut[d2 & 0x3f | 0x80] + _lut[d2 >> 8 & 0xff] + '-' + _lut[d2 >> 16 & 0xff] + _lut[d2 >> 24 & 0xff] + _lut[d3 & 0xff] + _lut[d3 >> 8 & 0xff] + _lut[d3 >> 16 & 0xff] + _lut[d3 >> 24 & 0xff]; - return uuid.toUpperCase(); - }, - clamp: function clamp(value, min, max) { - return Math.max(min, Math.min(max, value)); - }, - euclideanModulo: function euclideanModulo(n, m) { - return (n % m + m) % m; - }, - mapLinear: function mapLinear(x, a1, a2, b1, b2) { - return b1 + (x - a1) * (b2 - b1) / (a2 - a1); - }, - lerp: function lerp(x, y, t) { - return (1 - t) * x + t * y; - }, - smoothstep: function smoothstep(x, min, max) { - if (x <= min) return 0; - if (x >= max) return 1; - x = (x - min) / (max - min); - return x * x * (3 - 2 * x); - }, - smootherstep: function smootherstep(x, min, max) { - if (x <= min) return 0; - if (x >= max) return 1; - x = (x - min) / (max - min); - return x * x * x * (x * (x * 6 - 15) + 10); - }, - randInt: function randInt(low, high) { - return low + Math.floor(Math.random() * (high - low + 1)); - }, - randFloat: function randFloat(low, high) { - return low + Math.random() * (high - low); - }, - randFloatSpread: function randFloatSpread(range) { - return range * (0.5 - Math.random()); - }, - seededRandom: function seededRandom(s) { - if (s !== undefined) _seed = s % 2147483647; - _seed = _seed * 16807 % 2147483647; - return (_seed - 1) / 2147483646; - }, - degToRad: function degToRad(degrees) { - return degrees * MathUtils.DEG2RAD; - }, - radToDeg: function radToDeg(radians) { - return radians * MathUtils.RAD2DEG; - }, - isPowerOfTwo: function isPowerOfTwo(value) { - return (value & value - 1) === 0 && value !== 0; - }, - ceilPowerOfTwo: function ceilPowerOfTwo(value) { - return Math.pow(2, Math.ceil(Math.log(value) / Math.LN2)); - }, - floorPowerOfTwo: function floorPowerOfTwo(value) { - return Math.pow(2, Math.floor(Math.log(value) / Math.LN2)); - }, - setQuaternionFromProperEuler: function setQuaternionFromProperEuler(q, a, b, c, order) { - var cos = Math.cos; - var sin = Math.sin; - var c2 = cos(b / 2); - var s2 = sin(b / 2); - var c13 = cos((a + c) / 2); - var s13 = sin((a + c) / 2); - var c1_3 = cos((a - c) / 2); - var s1_3 = sin((a - c) / 2); - var c3_1 = cos((c - a) / 2); - var s3_1 = sin((c - a) / 2); - switch (order) { - case 'XYX': - q.set(c2 * s13, s2 * c1_3, s2 * s1_3, c2 * c13); - break; - case 'YZY': - q.set(s2 * s1_3, c2 * s13, s2 * c1_3, c2 * c13); - break; - case 'ZXZ': - q.set(s2 * c1_3, s2 * s1_3, c2 * s13, c2 * c13); - break; - case 'XZX': - q.set(c2 * s13, s2 * s3_1, s2 * c3_1, c2 * c13); - break; - case 'YXY': - q.set(s2 * c3_1, c2 * s13, s2 * s3_1, c2 * c13); - break; - case 'ZYZ': - q.set(s2 * s3_1, s2 * c3_1, c2 * s13, c2 * c13); - break; - default: - console.warn('THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: ' + order); - } - } - }; - function _defineProperties(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i]; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor) descriptor.writable = true; - Object.defineProperty(target, descriptor.key, descriptor); - } - } - function _createClass(Constructor, protoProps, staticProps) { - if (protoProps) _defineProperties(Constructor.prototype, protoProps); - if (staticProps) _defineProperties(Constructor, staticProps); - return Constructor; - } - function _inheritsLoose(subClass, superClass) { - subClass.prototype = Object.create(superClass.prototype); - subClass.prototype.constructor = subClass; - subClass.__proto__ = superClass; - } - function _assertThisInitialized(self) { - if (self === void 0) { - throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); - } - return self; - } - var Vector2 = /*#__PURE__*/function () { - function Vector2(x, y) { - if (x === void 0) { - x = 0; - } - if (y === void 0) { - y = 0; - } - Object.defineProperty(this, 'isVector2', { - value: true - }); - this.x = x; - this.y = y; - } - var _proto = Vector2.prototype; - _proto.set = function set(x, y) { - this.x = x; - this.y = y; - return this; - }; - _proto.setScalar = function setScalar(scalar) { - this.x = scalar; - this.y = scalar; - return this; - }; - _proto.setX = function setX(x) { - this.x = x; - return this; - }; - _proto.setY = function setY(y) { - this.y = y; - return this; - }; - _proto.setComponent = function setComponent(index, value) { - switch (index) { - case 0: - this.x = value; - break; - case 1: - this.y = value; - break; - default: - throw new Error('index is out of range: ' + index); - } - return this; - }; - _proto.getComponent = function getComponent(index) { - switch (index) { - case 0: - return this.x; - case 1: - return this.y; - default: - throw new Error('index is out of range: ' + index); - } - }; - _proto.clone = function clone() { - return new this.constructor(this.x, this.y); - }; - _proto.copy = function copy(v) { - this.x = v.x; - this.y = v.y; - return this; - }; - _proto.add = function add(v, w) { - if (w !== undefined) { - console.warn('THREE.Vector2: .add() now only accepts one argument. Use .addVectors( a, b ) instead.'); - return this.addVectors(v, w); - } - this.x += v.x; - this.y += v.y; - return this; - }; - _proto.addScalar = function addScalar(s) { - this.x += s; - this.y += s; - return this; - }; - _proto.addVectors = function addVectors(a, b) { - this.x = a.x + b.x; - this.y = a.y + b.y; - return this; - }; - _proto.addScaledVector = function addScaledVector(v, s) { - this.x += v.x * s; - this.y += v.y * s; - return this; - }; - _proto.sub = function sub(v, w) { - if (w !== undefined) { - console.warn('THREE.Vector2: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.'); - return this.subVectors(v, w); - } - this.x -= v.x; - this.y -= v.y; - return this; - }; - _proto.subScalar = function subScalar(s) { - this.x -= s; - this.y -= s; - return this; - }; - _proto.subVectors = function subVectors(a, b) { - this.x = a.x - b.x; - this.y = a.y - b.y; - return this; - }; - _proto.multiply = function multiply(v) { - this.x *= v.x; - this.y *= v.y; - return this; - }; - _proto.multiplyScalar = function multiplyScalar(scalar) { - this.x *= scalar; - this.y *= scalar; - return this; - }; - _proto.divide = function divide(v) { - this.x /= v.x; - this.y /= v.y; - return this; - }; - _proto.divideScalar = function divideScalar(scalar) { - return this.multiplyScalar(1 / scalar); - }; - _proto.applyMatrix3 = function applyMatrix3(m) { - var x = this.x, - y = this.y; - var e = m.elements; - this.x = e[0] * x + e[3] * y + e[6]; - this.y = e[1] * x + e[4] * y + e[7]; - return this; - }; - _proto.min = function min(v) { - this.x = Math.min(this.x, v.x); - this.y = Math.min(this.y, v.y); - return this; - }; - _proto.max = function max(v) { - this.x = Math.max(this.x, v.x); - this.y = Math.max(this.y, v.y); - return this; - }; - _proto.clamp = function clamp(min, max) { - this.x = Math.max(min.x, Math.min(max.x, this.x)); - this.y = Math.max(min.y, Math.min(max.y, this.y)); - return this; - }; - _proto.clampScalar = function clampScalar(minVal, maxVal) { - this.x = Math.max(minVal, Math.min(maxVal, this.x)); - this.y = Math.max(minVal, Math.min(maxVal, this.y)); - return this; - }; - _proto.clampLength = function clampLength(min, max) { - var length = this.length(); - return this.divideScalar(length || 1).multiplyScalar(Math.max(min, Math.min(max, length))); - }; - _proto.floor = function floor() { - this.x = Math.floor(this.x); - this.y = Math.floor(this.y); - return this; - }; - _proto.ceil = function ceil() { - this.x = Math.ceil(this.x); - this.y = Math.ceil(this.y); - return this; - }; - _proto.round = function round() { - this.x = Math.round(this.x); - this.y = Math.round(this.y); - return this; - }; - _proto.roundToZero = function roundToZero() { - this.x = this.x < 0 ? Math.ceil(this.x) : Math.floor(this.x); - this.y = this.y < 0 ? Math.ceil(this.y) : Math.floor(this.y); - return this; - }; - _proto.negate = function negate() { - this.x = -this.x; - this.y = -this.y; - return this; - }; - _proto.dot = function dot(v) { - return this.x * v.x + this.y * v.y; - }; - _proto.cross = function cross(v) { - return this.x * v.y - this.y * v.x; - }; - _proto.lengthSq = function lengthSq() { - return this.x * this.x + this.y * this.y; - }; - _proto.length = function length() { - return Math.sqrt(this.x * this.x + this.y * this.y); - }; - _proto.manhattanLength = function manhattanLength() { - return Math.abs(this.x) + Math.abs(this.y); - }; - _proto.normalize = function normalize() { - return this.divideScalar(this.length() || 1); - }; - _proto.angle = function angle() { - var angle = Math.atan2(-this.y, -this.x) + Math.PI; - return angle; - }; - _proto.distanceTo = function distanceTo(v) { - return Math.sqrt(this.distanceToSquared(v)); - }; - _proto.distanceToSquared = function distanceToSquared(v) { - var dx = this.x - v.x, - dy = this.y - v.y; - return dx * dx + dy * dy; - }; - _proto.manhattanDistanceTo = function manhattanDistanceTo(v) { - return Math.abs(this.x - v.x) + Math.abs(this.y - v.y); - }; - _proto.setLength = function setLength(length) { - return this.normalize().multiplyScalar(length); - }; - _proto.lerp = function lerp(v, alpha) { - this.x += (v.x - this.x) * alpha; - this.y += (v.y - this.y) * alpha; - return this; - }; - _proto.lerpVectors = function lerpVectors(v1, v2, alpha) { - this.x = v1.x + (v2.x - v1.x) * alpha; - this.y = v1.y + (v2.y - v1.y) * alpha; - return this; - }; - _proto.equals = function equals(v) { - return v.x === this.x && v.y === this.y; - }; - _proto.fromArray = function fromArray(array, offset) { - if (offset === void 0) { - offset = 0; - } - this.x = array[offset]; - this.y = array[offset + 1]; - return this; - }; - _proto.toArray = function toArray(array, offset) { - if (array === void 0) { - array = []; - } - if (offset === void 0) { - offset = 0; - } - array[offset] = this.x; - array[offset + 1] = this.y; - return array; - }; - _proto.fromBufferAttribute = function fromBufferAttribute(attribute, index, offset) { - if (offset !== undefined) { - console.warn('THREE.Vector2: offset has been removed from .fromBufferAttribute().'); - } - this.x = attribute.getX(index); - this.y = attribute.getY(index); - return this; - }; - _proto.rotateAround = function rotateAround(center, angle) { - var c = Math.cos(angle), - s = Math.sin(angle); - var x = this.x - center.x; - var y = this.y - center.y; - this.x = x * c - y * s + center.x; - this.y = x * s + y * c + center.y; - return this; - }; - _proto.random = function random() { - this.x = Math.random(); - this.y = Math.random(); - return this; - }; - _createClass(Vector2, [{ - key: "width", - get: function get() { - return this.x; - }, - set: function set(value) { - this.x = value; - } - }, { - key: "height", - get: function get() { - return this.y; - }, - set: function set(value) { - this.y = value; - } - }]); - return Vector2; - }(); - var Matrix3 = /*#__PURE__*/function () { - function Matrix3() { - Object.defineProperty(this, 'isMatrix3', { - value: true - }); - this.elements = [1, 0, 0, 0, 1, 0, 0, 0, 1]; - if (arguments.length > 0) { - console.error('THREE.Matrix3: the constructor no longer reads arguments. use .set() instead.'); - } - } - var _proto = Matrix3.prototype; - _proto.set = function set(n11, n12, n13, n21, n22, n23, n31, n32, n33) { - var te = this.elements; - te[0] = n11; - te[1] = n21; - te[2] = n31; - te[3] = n12; - te[4] = n22; - te[5] = n32; - te[6] = n13; - te[7] = n23; - te[8] = n33; - return this; - }; - _proto.identity = function identity() { - this.set(1, 0, 0, 0, 1, 0, 0, 0, 1); - return this; - }; - _proto.clone = function clone() { - return new this.constructor().fromArray(this.elements); - }; - _proto.copy = function copy(m) { - var te = this.elements; - var me = m.elements; - te[0] = me[0]; - te[1] = me[1]; - te[2] = me[2]; - te[3] = me[3]; - te[4] = me[4]; - te[5] = me[5]; - te[6] = me[6]; - te[7] = me[7]; - te[8] = me[8]; - return this; - }; - _proto.extractBasis = function extractBasis(xAxis, yAxis, zAxis) { - xAxis.setFromMatrix3Column(this, 0); - yAxis.setFromMatrix3Column(this, 1); - zAxis.setFromMatrix3Column(this, 2); - return this; - }; - _proto.setFromMatrix4 = function setFromMatrix4(m) { - var me = m.elements; - this.set(me[0], me[4], me[8], me[1], me[5], me[9], me[2], me[6], me[10]); - return this; - }; - _proto.multiply = function multiply(m) { - return this.multiplyMatrices(this, m); - }; - _proto.premultiply = function premultiply(m) { - return this.multiplyMatrices(m, this); - }; - _proto.multiplyMatrices = function multiplyMatrices(a, b) { - var ae = a.elements; - var be = b.elements; - var te = this.elements; - var a11 = ae[0], - a12 = ae[3], - a13 = ae[6]; - var a21 = ae[1], - a22 = ae[4], - a23 = ae[7]; - var a31 = ae[2], - a32 = ae[5], - a33 = ae[8]; - var b11 = be[0], - b12 = be[3], - b13 = be[6]; - var b21 = be[1], - b22 = be[4], - b23 = be[7]; - var b31 = be[2], - b32 = be[5], - b33 = be[8]; - te[0] = a11 * b11 + a12 * b21 + a13 * b31; - te[3] = a11 * b12 + a12 * b22 + a13 * b32; - te[6] = a11 * b13 + a12 * b23 + a13 * b33; - te[1] = a21 * b11 + a22 * b21 + a23 * b31; - te[4] = a21 * b12 + a22 * b22 + a23 * b32; - te[7] = a21 * b13 + a22 * b23 + a23 * b33; - te[2] = a31 * b11 + a32 * b21 + a33 * b31; - te[5] = a31 * b12 + a32 * b22 + a33 * b32; - te[8] = a31 * b13 + a32 * b23 + a33 * b33; - return this; - }; - _proto.multiplyScalar = function multiplyScalar(s) { - var te = this.elements; - te[0] *= s; - te[3] *= s; - te[6] *= s; - te[1] *= s; - te[4] *= s; - te[7] *= s; - te[2] *= s; - te[5] *= s; - te[8] *= s; - return this; - }; - _proto.determinant = function determinant() { - var te = this.elements; - var a = te[0], - b = te[1], - c = te[2], - d = te[3], - e = te[4], - f = te[5], - g = te[6], - h = te[7], - i = te[8]; - return a * e * i - a * f * h - b * d * i + b * f * g + c * d * h - c * e * g; - }; - _proto.invert = function invert() { - var te = this.elements, - n11 = te[0], - n21 = te[1], - n31 = te[2], - n12 = te[3], - n22 = te[4], - n32 = te[5], - n13 = te[6], - n23 = te[7], - n33 = te[8], - t11 = n33 * n22 - n32 * n23, - t12 = n32 * n13 - n33 * n12, - t13 = n23 * n12 - n22 * n13, - det = n11 * t11 + n21 * t12 + n31 * t13; - if (det === 0) return this.set(0, 0, 0, 0, 0, 0, 0, 0, 0); - var detInv = 1 / det; - te[0] = t11 * detInv; - te[1] = (n31 * n23 - n33 * n21) * detInv; - te[2] = (n32 * n21 - n31 * n22) * detInv; - te[3] = t12 * detInv; - te[4] = (n33 * n11 - n31 * n13) * detInv; - te[5] = (n31 * n12 - n32 * n11) * detInv; - te[6] = t13 * detInv; - te[7] = (n21 * n13 - n23 * n11) * detInv; - te[8] = (n22 * n11 - n21 * n12) * detInv; - return this; - }; - _proto.transpose = function transpose() { - var tmp; - var m = this.elements; - tmp = m[1]; - m[1] = m[3]; - m[3] = tmp; - tmp = m[2]; - m[2] = m[6]; - m[6] = tmp; - tmp = m[5]; - m[5] = m[7]; - m[7] = tmp; - return this; - }; - _proto.getNormalMatrix = function getNormalMatrix(matrix4) { - return this.setFromMatrix4(matrix4).copy(this).invert().transpose(); - }; - _proto.transposeIntoArray = function transposeIntoArray(r) { - var m = this.elements; - r[0] = m[0]; - r[1] = m[3]; - r[2] = m[6]; - r[3] = m[1]; - r[4] = m[4]; - r[5] = m[7]; - r[6] = m[2]; - r[7] = m[5]; - r[8] = m[8]; - return this; - }; - _proto.setUvTransform = function setUvTransform(tx, ty, sx, sy, rotation, cx, cy) { - var c = Math.cos(rotation); - var s = Math.sin(rotation); - this.set(sx * c, sx * s, -sx * (c * cx + s * cy) + cx + tx, -sy * s, sy * c, -sy * (-s * cx + c * cy) + cy + ty, 0, 0, 1); - return this; - }; - _proto.scale = function scale(sx, sy) { - var te = this.elements; - te[0] *= sx; - te[3] *= sx; - te[6] *= sx; - te[1] *= sy; - te[4] *= sy; - te[7] *= sy; - return this; - }; - _proto.rotate = function rotate(theta) { - var c = Math.cos(theta); - var s = Math.sin(theta); - var te = this.elements; - var a11 = te[0], - a12 = te[3], - a13 = te[6]; - var a21 = te[1], - a22 = te[4], - a23 = te[7]; - te[0] = c * a11 + s * a21; - te[3] = c * a12 + s * a22; - te[6] = c * a13 + s * a23; - te[1] = -s * a11 + c * a21; - te[4] = -s * a12 + c * a22; - te[7] = -s * a13 + c * a23; - return this; - }; - _proto.translate = function translate(tx, ty) { - var te = this.elements; - te[0] += tx * te[2]; - te[3] += tx * te[5]; - te[6] += tx * te[8]; - te[1] += ty * te[2]; - te[4] += ty * te[5]; - te[7] += ty * te[8]; - return this; - }; - _proto.equals = function equals(matrix) { - var te = this.elements; - var me = matrix.elements; - for (var i = 0; i < 9; i++) { - if (te[i] !== me[i]) return false; - } - return true; - }; - _proto.fromArray = function fromArray(array, offset) { - if (offset === void 0) { - offset = 0; - } - for (var i = 0; i < 9; i++) { - this.elements[i] = array[i + offset]; - } - return this; - }; - _proto.toArray = function toArray(array, offset) { - if (array === void 0) { - array = []; - } - if (offset === void 0) { - offset = 0; - } - var te = this.elements; - array[offset] = te[0]; - array[offset + 1] = te[1]; - array[offset + 2] = te[2]; - array[offset + 3] = te[3]; - array[offset + 4] = te[4]; - array[offset + 5] = te[5]; - array[offset + 6] = te[6]; - array[offset + 7] = te[7]; - array[offset + 8] = te[8]; - return array; - }; - return Matrix3; - }(); - var _canvas; - var ImageUtils = { - getDataURL: function getDataURL(image) { - if (/^data:/i.test(image.src)) { - return image.src; - } - if (typeof HTMLCanvasElement == 'undefined') { - return image.src; - } - var canvas; - if (image instanceof HTMLCanvasElement) { - canvas = image; - } else { - if (_canvas === undefined) _canvas = document.createElementNS('http://www.w3.org/1999/xhtml', 'canvas'); - _canvas.width = image.width; - _canvas.height = image.height; - var context = _canvas.getContext('2d'); - if (image instanceof ImageData) { - context.putImageData(image, 0, 0); - } else { - context.drawImage(image, 0, 0, image.width, image.height); - } - canvas = _canvas; - } - if (canvas.width > 2048 || canvas.height > 2048) { - return canvas.toDataURL('image/jpeg', 0.6); - } else { - return canvas.toDataURL('image/png'); - } - } - }; - var textureId = 0; - function Texture(image, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, encoding) { - if (image === void 0) { - image = Texture.DEFAULT_IMAGE; - } - if (mapping === void 0) { - mapping = Texture.DEFAULT_MAPPING; - } - if (wrapS === void 0) { - wrapS = ClampToEdgeWrapping; - } - if (wrapT === void 0) { - wrapT = ClampToEdgeWrapping; - } - if (magFilter === void 0) { - magFilter = LinearFilter; - } - if (minFilter === void 0) { - minFilter = LinearMipmapLinearFilter; - } - if (format === void 0) { - format = RGBAFormat; - } - if (type === void 0) { - type = UnsignedByteType; - } - if (anisotropy === void 0) { - anisotropy = 1; - } - if (encoding === void 0) { - encoding = LinearEncoding; - } - Object.defineProperty(this, 'id', { - value: textureId++ - }); - this.uuid = MathUtils.generateUUID(); - this.name = ''; - this.image = image; - this.mipmaps = []; - this.mapping = mapping; - this.wrapS = wrapS; - this.wrapT = wrapT; - this.magFilter = magFilter; - this.minFilter = minFilter; - this.anisotropy = anisotropy; - this.format = format; - this.internalFormat = null; - this.type = type; - this.offset = new Vector2(0, 0); - this.repeat = new Vector2(1, 1); - this.center = new Vector2(0, 0); - this.rotation = 0; - this.matrixAutoUpdate = true; - this.matrix = new Matrix3(); - this.generateMipmaps = true; - this.premultiplyAlpha = false; - this.flipY = true; - this.unpackAlignment = 4; - this.encoding = encoding; - this.version = 0; - this.onUpdate = null; - } - Texture.DEFAULT_IMAGE = undefined; - Texture.DEFAULT_MAPPING = UVMapping; - Texture.prototype = Object.assign(Object.create(EventDispatcher.prototype), { - constructor: Texture, - isTexture: true, - updateMatrix: function updateMatrix() { - this.matrix.setUvTransform(this.offset.x, this.offset.y, this.repeat.x, this.repeat.y, this.rotation, this.center.x, this.center.y); - }, - clone: function clone() { - return new this.constructor().copy(this); - }, - copy: function copy(source) { - this.name = source.name; - this.image = source.image; - this.mipmaps = source.mipmaps.slice(0); - this.mapping = source.mapping; - this.wrapS = source.wrapS; - this.wrapT = source.wrapT; - this.magFilter = source.magFilter; - this.minFilter = source.minFilter; - this.anisotropy = source.anisotropy; - this.format = source.format; - this.internalFormat = source.internalFormat; - this.type = source.type; - this.offset.copy(source.offset); - this.repeat.copy(source.repeat); - this.center.copy(source.center); - this.rotation = source.rotation; - this.matrixAutoUpdate = source.matrixAutoUpdate; - this.matrix.copy(source.matrix); - this.generateMipmaps = source.generateMipmaps; - this.premultiplyAlpha = source.premultiplyAlpha; - this.flipY = source.flipY; - this.unpackAlignment = source.unpackAlignment; - this.encoding = source.encoding; - return this; - }, - toJSON: function toJSON(meta) { - var isRootObject = meta === undefined || typeof meta === 'string'; - if (!isRootObject && meta.textures[this.uuid] !== undefined) { - return meta.textures[this.uuid]; - } - var output = { - metadata: { - version: 4.5, - type: 'Texture', - generator: 'Texture.toJSON' - }, - uuid: this.uuid, - name: this.name, - mapping: this.mapping, - repeat: [this.repeat.x, this.repeat.y], - offset: [this.offset.x, this.offset.y], - center: [this.center.x, this.center.y], - rotation: this.rotation, - wrap: [this.wrapS, this.wrapT], - format: this.format, - type: this.type, - encoding: this.encoding, - minFilter: this.minFilter, - magFilter: this.magFilter, - anisotropy: this.anisotropy, - flipY: this.flipY, - premultiplyAlpha: this.premultiplyAlpha, - unpackAlignment: this.unpackAlignment - }; - if (this.image !== undefined) { - var image = this.image; - if (image.uuid === undefined) { - image.uuid = MathUtils.generateUUID(); - } - if (!isRootObject && meta.images[image.uuid] === undefined) { - var url; - if (Array.isArray(image)) { - url = []; - for (var i = 0, l = image.length; i < l; i++) { - if (image[i].isDataTexture) { - url.push(serializeImage(image[i].image)); - } else { - url.push(serializeImage(image[i])); - } - } - } else { - url = serializeImage(image); - } - meta.images[image.uuid] = { - uuid: image.uuid, - url: url - }; - } - output.image = image.uuid; - } - if (!isRootObject) { - meta.textures[this.uuid] = output; - } - return output; - }, - dispose: function dispose() { - this.dispatchEvent({ - type: 'dispose' - }); - }, - transformUv: function transformUv(uv) { - if (this.mapping !== UVMapping) return uv; - uv.applyMatrix3(this.matrix); - if (uv.x < 0 || uv.x > 1) { - switch (this.wrapS) { - case RepeatWrapping: - uv.x = uv.x - Math.floor(uv.x); - break; - case ClampToEdgeWrapping: - uv.x = uv.x < 0 ? 0 : 1; - break; - case MirroredRepeatWrapping: - if (Math.abs(Math.floor(uv.x) % 2) === 1) { - uv.x = Math.ceil(uv.x) - uv.x; - } else { - uv.x = uv.x - Math.floor(uv.x); - } - break; - } - } - if (uv.y < 0 || uv.y > 1) { - switch (this.wrapT) { - case RepeatWrapping: - uv.y = uv.y - Math.floor(uv.y); - break; - case ClampToEdgeWrapping: - uv.y = uv.y < 0 ? 0 : 1; - break; - case MirroredRepeatWrapping: - if (Math.abs(Math.floor(uv.y) % 2) === 1) { - uv.y = Math.ceil(uv.y) - uv.y; - } else { - uv.y = uv.y - Math.floor(uv.y); - } - break; - } - } - if (this.flipY) { - uv.y = 1 - uv.y; - } - return uv; - } - }); - Object.defineProperty(Texture.prototype, 'needsUpdate', { - set: function set(value) { - if (value === true) this.version++; - } - }); - function serializeImage(image) { - if (typeof HTMLImageElement !== 'undefined' && image instanceof HTMLImageElement || typeof HTMLCanvasElement !== 'undefined' && image instanceof HTMLCanvasElement || typeof ImageBitmap !== 'undefined' && image instanceof ImageBitmap) { - return ImageUtils.getDataURL(image); - } else { - if (image.data) { - return { - data: Array.prototype.slice.call(image.data), - width: image.width, - height: image.height, - type: image.data.constructor.name - }; - } else { - console.warn('THREE.Texture: Unable to serialize Texture.'); - return {}; - } - } - } - var Vector4 = /*#__PURE__*/function () { - function Vector4(x, y, z, w) { - if (x === void 0) { - x = 0; - } - if (y === void 0) { - y = 0; - } - if (z === void 0) { - z = 0; - } - if (w === void 0) { - w = 1; - } - Object.defineProperty(this, 'isVector4', { - value: true - }); - this.x = x; - this.y = y; - this.z = z; - this.w = w; - } - var _proto = Vector4.prototype; - _proto.set = function set(x, y, z, w) { - this.x = x; - this.y = y; - this.z = z; - this.w = w; - return this; - }; - _proto.setScalar = function setScalar(scalar) { - this.x = scalar; - this.y = scalar; - this.z = scalar; - this.w = scalar; - return this; - }; - _proto.setX = function setX(x) { - this.x = x; - return this; - }; - _proto.setY = function setY(y) { - this.y = y; - return this; - }; - _proto.setZ = function setZ(z) { - this.z = z; - return this; - }; - _proto.setW = function setW(w) { - this.w = w; - return this; - }; - _proto.setComponent = function setComponent(index, value) { - switch (index) { - case 0: - this.x = value; - break; - case 1: - this.y = value; - break; - case 2: - this.z = value; - break; - case 3: - this.w = value; - break; - default: - throw new Error('index is out of range: ' + index); - } - return this; - }; - _proto.getComponent = function getComponent(index) { - switch (index) { - case 0: - return this.x; - case 1: - return this.y; - case 2: - return this.z; - case 3: - return this.w; - default: - throw new Error('index is out of range: ' + index); - } - }; - _proto.clone = function clone() { - return new this.constructor(this.x, this.y, this.z, this.w); - }; - _proto.copy = function copy(v) { - this.x = v.x; - this.y = v.y; - this.z = v.z; - this.w = v.w !== undefined ? v.w : 1; - return this; - }; - _proto.add = function add(v, w) { - if (w !== undefined) { - console.warn('THREE.Vector4: .add() now only accepts one argument. Use .addVectors( a, b ) instead.'); - return this.addVectors(v, w); - } - this.x += v.x; - this.y += v.y; - this.z += v.z; - this.w += v.w; - return this; - }; - _proto.addScalar = function addScalar(s) { - this.x += s; - this.y += s; - this.z += s; - this.w += s; - return this; - }; - _proto.addVectors = function addVectors(a, b) { - this.x = a.x + b.x; - this.y = a.y + b.y; - this.z = a.z + b.z; - this.w = a.w + b.w; - return this; - }; - _proto.addScaledVector = function addScaledVector(v, s) { - this.x += v.x * s; - this.y += v.y * s; - this.z += v.z * s; - this.w += v.w * s; - return this; - }; - _proto.sub = function sub(v, w) { - if (w !== undefined) { - console.warn('THREE.Vector4: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.'); - return this.subVectors(v, w); - } - this.x -= v.x; - this.y -= v.y; - this.z -= v.z; - this.w -= v.w; - return this; - }; - _proto.subScalar = function subScalar(s) { - this.x -= s; - this.y -= s; - this.z -= s; - this.w -= s; - return this; - }; - _proto.subVectors = function subVectors(a, b) { - this.x = a.x - b.x; - this.y = a.y - b.y; - this.z = a.z - b.z; - this.w = a.w - b.w; - return this; - }; - _proto.multiplyScalar = function multiplyScalar(scalar) { - this.x *= scalar; - this.y *= scalar; - this.z *= scalar; - this.w *= scalar; - return this; - }; - _proto.applyMatrix4 = function applyMatrix4(m) { - var x = this.x, - y = this.y, - z = this.z, - w = this.w; - var e = m.elements; - this.x = e[0] * x + e[4] * y + e[8] * z + e[12] * w; - this.y = e[1] * x + e[5] * y + e[9] * z + e[13] * w; - this.z = e[2] * x + e[6] * y + e[10] * z + e[14] * w; - this.w = e[3] * x + e[7] * y + e[11] * z + e[15] * w; - return this; - }; - _proto.divideScalar = function divideScalar(scalar) { - return this.multiplyScalar(1 / scalar); - }; - _proto.setAxisAngleFromQuaternion = function setAxisAngleFromQuaternion(q) { - this.w = 2 * Math.acos(q.w); - var s = Math.sqrt(1 - q.w * q.w); - if (s < 0.0001) { - this.x = 1; - this.y = 0; - this.z = 0; - } else { - this.x = q.x / s; - this.y = q.y / s; - this.z = q.z / s; - } - return this; - }; - _proto.setAxisAngleFromRotationMatrix = function setAxisAngleFromRotationMatrix(m) { - var angle, x, y, z; - var epsilon = 0.01, - epsilon2 = 0.1, - te = m.elements, - m11 = te[0], - m12 = te[4], - m13 = te[8], - m21 = te[1], - m22 = te[5], - m23 = te[9], - m31 = te[2], - m32 = te[6], - m33 = te[10]; - if (Math.abs(m12 - m21) < epsilon && Math.abs(m13 - m31) < epsilon && Math.abs(m23 - m32) < epsilon) { - if (Math.abs(m12 + m21) < epsilon2 && Math.abs(m13 + m31) < epsilon2 && Math.abs(m23 + m32) < epsilon2 && Math.abs(m11 + m22 + m33 - 3) < epsilon2) { - this.set(1, 0, 0, 0); - return this; - } - angle = Math.PI; - var xx = (m11 + 1) / 2; - var yy = (m22 + 1) / 2; - var zz = (m33 + 1) / 2; - var xy = (m12 + m21) / 4; - var xz = (m13 + m31) / 4; - var yz = (m23 + m32) / 4; - if (xx > yy && xx > zz) { - if (xx < epsilon) { - x = 0; - y = 0.707106781; - z = 0.707106781; - } else { - x = Math.sqrt(xx); - y = xy / x; - z = xz / x; - } - } else if (yy > zz) { - if (yy < epsilon) { - x = 0.707106781; - y = 0; - z = 0.707106781; - } else { - y = Math.sqrt(yy); - x = xy / y; - z = yz / y; - } - } else { - if (zz < epsilon) { - x = 0.707106781; - y = 0.707106781; - z = 0; - } else { - z = Math.sqrt(zz); - x = xz / z; - y = yz / z; - } - } - this.set(x, y, z, angle); - return this; - } - var s = Math.sqrt((m32 - m23) * (m32 - m23) + (m13 - m31) * (m13 - m31) + (m21 - m12) * (m21 - m12)); - if (Math.abs(s) < 0.001) s = 1; - this.x = (m32 - m23) / s; - this.y = (m13 - m31) / s; - this.z = (m21 - m12) / s; - this.w = Math.acos((m11 + m22 + m33 - 1) / 2); - return this; - }; - _proto.min = function min(v) { - this.x = Math.min(this.x, v.x); - this.y = Math.min(this.y, v.y); - this.z = Math.min(this.z, v.z); - this.w = Math.min(this.w, v.w); - return this; - }; - _proto.max = function max(v) { - this.x = Math.max(this.x, v.x); - this.y = Math.max(this.y, v.y); - this.z = Math.max(this.z, v.z); - this.w = Math.max(this.w, v.w); - return this; - }; - _proto.clamp = function clamp(min, max) { - this.x = Math.max(min.x, Math.min(max.x, this.x)); - this.y = Math.max(min.y, Math.min(max.y, this.y)); - this.z = Math.max(min.z, Math.min(max.z, this.z)); - this.w = Math.max(min.w, Math.min(max.w, this.w)); - return this; - }; - _proto.clampScalar = function clampScalar(minVal, maxVal) { - this.x = Math.max(minVal, Math.min(maxVal, this.x)); - this.y = Math.max(minVal, Math.min(maxVal, this.y)); - this.z = Math.max(minVal, Math.min(maxVal, this.z)); - this.w = Math.max(minVal, Math.min(maxVal, this.w)); - return this; - }; - _proto.clampLength = function clampLength(min, max) { - var length = this.length(); - return this.divideScalar(length || 1).multiplyScalar(Math.max(min, Math.min(max, length))); - }; - _proto.floor = function floor() { - this.x = Math.floor(this.x); - this.y = Math.floor(this.y); - this.z = Math.floor(this.z); - this.w = Math.floor(this.w); - return this; - }; - _proto.ceil = function ceil() { - this.x = Math.ceil(this.x); - this.y = Math.ceil(this.y); - this.z = Math.ceil(this.z); - this.w = Math.ceil(this.w); - return this; - }; - _proto.round = function round() { - this.x = Math.round(this.x); - this.y = Math.round(this.y); - this.z = Math.round(this.z); - this.w = Math.round(this.w); - return this; - }; - _proto.roundToZero = function roundToZero() { - this.x = this.x < 0 ? Math.ceil(this.x) : Math.floor(this.x); - this.y = this.y < 0 ? Math.ceil(this.y) : Math.floor(this.y); - this.z = this.z < 0 ? Math.ceil(this.z) : Math.floor(this.z); - this.w = this.w < 0 ? Math.ceil(this.w) : Math.floor(this.w); - return this; - }; - _proto.negate = function negate() { - this.x = -this.x; - this.y = -this.y; - this.z = -this.z; - this.w = -this.w; - return this; - }; - _proto.dot = function dot(v) { - return this.x * v.x + this.y * v.y + this.z * v.z + this.w * v.w; - }; - _proto.lengthSq = function lengthSq() { - return this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w; - }; - _proto.length = function length() { - return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w); - }; - _proto.manhattanLength = function manhattanLength() { - return Math.abs(this.x) + Math.abs(this.y) + Math.abs(this.z) + Math.abs(this.w); - }; - _proto.normalize = function normalize() { - return this.divideScalar(this.length() || 1); - }; - _proto.setLength = function setLength(length) { - return this.normalize().multiplyScalar(length); - }; - _proto.lerp = function lerp(v, alpha) { - this.x += (v.x - this.x) * alpha; - this.y += (v.y - this.y) * alpha; - this.z += (v.z - this.z) * alpha; - this.w += (v.w - this.w) * alpha; - return this; - }; - _proto.lerpVectors = function lerpVectors(v1, v2, alpha) { - this.x = v1.x + (v2.x - v1.x) * alpha; - this.y = v1.y + (v2.y - v1.y) * alpha; - this.z = v1.z + (v2.z - v1.z) * alpha; - this.w = v1.w + (v2.w - v1.w) * alpha; - return this; - }; - _proto.equals = function equals(v) { - return v.x === this.x && v.y === this.y && v.z === this.z && v.w === this.w; - }; - _proto.fromArray = function fromArray(array, offset) { - if (offset === void 0) { - offset = 0; - } - this.x = array[offset]; - this.y = array[offset + 1]; - this.z = array[offset + 2]; - this.w = array[offset + 3]; - return this; - }; - _proto.toArray = function toArray(array, offset) { - if (array === void 0) { - array = []; - } - if (offset === void 0) { - offset = 0; - } - array[offset] = this.x; - array[offset + 1] = this.y; - array[offset + 2] = this.z; - array[offset + 3] = this.w; - return array; - }; - _proto.fromBufferAttribute = function fromBufferAttribute(attribute, index, offset) { - if (offset !== undefined) { - console.warn('THREE.Vector4: offset has been removed from .fromBufferAttribute().'); - } - this.x = attribute.getX(index); - this.y = attribute.getY(index); - this.z = attribute.getZ(index); - this.w = attribute.getW(index); - return this; - }; - _proto.random = function random() { - this.x = Math.random(); - this.y = Math.random(); - this.z = Math.random(); - this.w = Math.random(); - return this; - }; - _createClass(Vector4, [{ - key: "width", - get: function get() { - return this.z; - }, - set: function set(value) { - this.z = value; - } - }, { - key: "height", - get: function get() { - return this.w; - }, - set: function set(value) { - this.w = value; - } - }]); - return Vector4; - }(); - function WebGLRenderTarget(width, height, options) { - this.width = width; - this.height = height; - this.scissor = new Vector4(0, 0, width, height); - this.scissorTest = false; - this.viewport = new Vector4(0, 0, width, height); - options = options || {}; - this.texture = new Texture(undefined, options.mapping, options.wrapS, options.wrapT, options.magFilter, options.minFilter, options.format, options.type, options.anisotropy, options.encoding); - this.texture.image = {}; - this.texture.image.width = width; - this.texture.image.height = height; - this.texture.generateMipmaps = options.generateMipmaps !== undefined ? options.generateMipmaps : false; - this.texture.minFilter = options.minFilter !== undefined ? options.minFilter : LinearFilter; - this.depthBuffer = options.depthBuffer !== undefined ? options.depthBuffer : true; - this.stencilBuffer = options.stencilBuffer !== undefined ? options.stencilBuffer : false; - this.depthTexture = options.depthTexture !== undefined ? options.depthTexture : null; - } - WebGLRenderTarget.prototype = Object.assign(Object.create(EventDispatcher.prototype), { - constructor: WebGLRenderTarget, - isWebGLRenderTarget: true, - setSize: function setSize(width, height) { - if (this.width !== width || this.height !== height) { - this.width = width; - this.height = height; - this.texture.image.width = width; - this.texture.image.height = height; - this.dispose(); - } - this.viewport.set(0, 0, width, height); - this.scissor.set(0, 0, width, height); - }, - clone: function clone() { - return new this.constructor().copy(this); - }, - copy: function copy(source) { - this.width = source.width; - this.height = source.height; - this.viewport.copy(source.viewport); - this.texture = source.texture.clone(); - this.depthBuffer = source.depthBuffer; - this.stencilBuffer = source.stencilBuffer; - this.depthTexture = source.depthTexture; - return this; - }, - dispose: function dispose() { - this.dispatchEvent({ - type: 'dispose' - }); - } - }); - function WebGLMultisampleRenderTarget(width, height, options) { - WebGLRenderTarget.call(this, width, height, options); - this.samples = 4; - } - WebGLMultisampleRenderTarget.prototype = Object.assign(Object.create(WebGLRenderTarget.prototype), { - constructor: WebGLMultisampleRenderTarget, - isWebGLMultisampleRenderTarget: true, - copy: function copy(source) { - WebGLRenderTarget.prototype.copy.call(this, source); - this.samples = source.samples; - return this; - } - }); - var Quaternion = /*#__PURE__*/function () { - function Quaternion(x, y, z, w) { - if (x === void 0) { - x = 0; - } - if (y === void 0) { - y = 0; - } - if (z === void 0) { - z = 0; - } - if (w === void 0) { - w = 1; - } - Object.defineProperty(this, 'isQuaternion', { - value: true - }); - this._x = x; - this._y = y; - this._z = z; - this._w = w; - } - Quaternion.slerp = function slerp(qa, qb, qm, t) { - return qm.copy(qa).slerp(qb, t); - }; - Quaternion.slerpFlat = function slerpFlat(dst, dstOffset, src0, srcOffset0, src1, srcOffset1, t) { - var x0 = src0[srcOffset0 + 0], - y0 = src0[srcOffset0 + 1], - z0 = src0[srcOffset0 + 2], - w0 = src0[srcOffset0 + 3]; - var x1 = src1[srcOffset1 + 0], - y1 = src1[srcOffset1 + 1], - z1 = src1[srcOffset1 + 2], - w1 = src1[srcOffset1 + 3]; - if (w0 !== w1 || x0 !== x1 || y0 !== y1 || z0 !== z1) { - var s = 1 - t; - var cos = x0 * x1 + y0 * y1 + z0 * z1 + w0 * w1, - dir = cos >= 0 ? 1 : -1, - sqrSin = 1 - cos * cos; - if (sqrSin > Number.EPSILON) { - var sin = Math.sqrt(sqrSin), - len = Math.atan2(sin, cos * dir); - s = Math.sin(s * len) / sin; - t = Math.sin(t * len) / sin; - } - var tDir = t * dir; - x0 = x0 * s + x1 * tDir; - y0 = y0 * s + y1 * tDir; - z0 = z0 * s + z1 * tDir; - w0 = w0 * s + w1 * tDir; - if (s === 1 - t) { - var f = 1 / Math.sqrt(x0 * x0 + y0 * y0 + z0 * z0 + w0 * w0); - x0 *= f; - y0 *= f; - z0 *= f; - w0 *= f; - } - } - dst[dstOffset] = x0; - dst[dstOffset + 1] = y0; - dst[dstOffset + 2] = z0; - dst[dstOffset + 3] = w0; - }; - Quaternion.multiplyQuaternionsFlat = function multiplyQuaternionsFlat(dst, dstOffset, src0, srcOffset0, src1, srcOffset1) { - var x0 = src0[srcOffset0]; - var y0 = src0[srcOffset0 + 1]; - var z0 = src0[srcOffset0 + 2]; - var w0 = src0[srcOffset0 + 3]; - var x1 = src1[srcOffset1]; - var y1 = src1[srcOffset1 + 1]; - var z1 = src1[srcOffset1 + 2]; - var w1 = src1[srcOffset1 + 3]; - dst[dstOffset] = x0 * w1 + w0 * x1 + y0 * z1 - z0 * y1; - dst[dstOffset + 1] = y0 * w1 + w0 * y1 + z0 * x1 - x0 * z1; - dst[dstOffset + 2] = z0 * w1 + w0 * z1 + x0 * y1 - y0 * x1; - dst[dstOffset + 3] = w0 * w1 - x0 * x1 - y0 * y1 - z0 * z1; - return dst; - }; - var _proto = Quaternion.prototype; - _proto.set = function set(x, y, z, w) { - this._x = x; - this._y = y; - this._z = z; - this._w = w; - this._onChangeCallback(); - return this; - }; - _proto.clone = function clone() { - return new this.constructor(this._x, this._y, this._z, this._w); - }; - _proto.copy = function copy(quaternion) { - this._x = quaternion.x; - this._y = quaternion.y; - this._z = quaternion.z; - this._w = quaternion.w; - this._onChangeCallback(); - return this; - }; - _proto.setFromEuler = function setFromEuler(euler, update) { - if (!(euler && euler.isEuler)) { - throw new Error('THREE.Quaternion: .setFromEuler() now expects an Euler rotation rather than a Vector3 and order.'); - } - var x = euler._x, - y = euler._y, - z = euler._z, - order = euler._order; - var cos = Math.cos; - var sin = Math.sin; - var c1 = cos(x / 2); - var c2 = cos(y / 2); - var c3 = cos(z / 2); - var s1 = sin(x / 2); - var s2 = sin(y / 2); - var s3 = sin(z / 2); - switch (order) { - case 'XYZ': - this._x = s1 * c2 * c3 + c1 * s2 * s3; - this._y = c1 * s2 * c3 - s1 * c2 * s3; - this._z = c1 * c2 * s3 + s1 * s2 * c3; - this._w = c1 * c2 * c3 - s1 * s2 * s3; - break; - case 'YXZ': - this._x = s1 * c2 * c3 + c1 * s2 * s3; - this._y = c1 * s2 * c3 - s1 * c2 * s3; - this._z = c1 * c2 * s3 - s1 * s2 * c3; - this._w = c1 * c2 * c3 + s1 * s2 * s3; - break; - case 'ZXY': - this._x = s1 * c2 * c3 - c1 * s2 * s3; - this._y = c1 * s2 * c3 + s1 * c2 * s3; - this._z = c1 * c2 * s3 + s1 * s2 * c3; - this._w = c1 * c2 * c3 - s1 * s2 * s3; - break; - case 'ZYX': - this._x = s1 * c2 * c3 - c1 * s2 * s3; - this._y = c1 * s2 * c3 + s1 * c2 * s3; - this._z = c1 * c2 * s3 - s1 * s2 * c3; - this._w = c1 * c2 * c3 + s1 * s2 * s3; - break; - case 'YZX': - this._x = s1 * c2 * c3 + c1 * s2 * s3; - this._y = c1 * s2 * c3 + s1 * c2 * s3; - this._z = c1 * c2 * s3 - s1 * s2 * c3; - this._w = c1 * c2 * c3 - s1 * s2 * s3; - break; - case 'XZY': - this._x = s1 * c2 * c3 - c1 * s2 * s3; - this._y = c1 * s2 * c3 - s1 * c2 * s3; - this._z = c1 * c2 * s3 + s1 * s2 * c3; - this._w = c1 * c2 * c3 + s1 * s2 * s3; - break; - default: - console.warn('THREE.Quaternion: .setFromEuler() encountered an unknown order: ' + order); - } - if (update !== false) this._onChangeCallback(); - return this; - }; - _proto.setFromAxisAngle = function setFromAxisAngle(axis, angle) { - var halfAngle = angle / 2, - s = Math.sin(halfAngle); - this._x = axis.x * s; - this._y = axis.y * s; - this._z = axis.z * s; - this._w = Math.cos(halfAngle); - this._onChangeCallback(); - return this; - }; - _proto.setFromRotationMatrix = function setFromRotationMatrix(m) { - var te = m.elements, - m11 = te[0], - m12 = te[4], - m13 = te[8], - m21 = te[1], - m22 = te[5], - m23 = te[9], - m31 = te[2], - m32 = te[6], - m33 = te[10], - trace = m11 + m22 + m33; - if (trace > 0) { - var s = 0.5 / Math.sqrt(trace + 1.0); - this._w = 0.25 / s; - this._x = (m32 - m23) * s; - this._y = (m13 - m31) * s; - this._z = (m21 - m12) * s; - } else if (m11 > m22 && m11 > m33) { - var _s = 2.0 * Math.sqrt(1.0 + m11 - m22 - m33); - this._w = (m32 - m23) / _s; - this._x = 0.25 * _s; - this._y = (m12 + m21) / _s; - this._z = (m13 + m31) / _s; - } else if (m22 > m33) { - var _s2 = 2.0 * Math.sqrt(1.0 + m22 - m11 - m33); - this._w = (m13 - m31) / _s2; - this._x = (m12 + m21) / _s2; - this._y = 0.25 * _s2; - this._z = (m23 + m32) / _s2; - } else { - var _s3 = 2.0 * Math.sqrt(1.0 + m33 - m11 - m22); - this._w = (m21 - m12) / _s3; - this._x = (m13 + m31) / _s3; - this._y = (m23 + m32) / _s3; - this._z = 0.25 * _s3; - } - this._onChangeCallback(); - return this; - }; - _proto.setFromUnitVectors = function setFromUnitVectors(vFrom, vTo) { - var EPS = 0.000001; - var r = vFrom.dot(vTo) + 1; - if (r < EPS) { - r = 0; - if (Math.abs(vFrom.x) > Math.abs(vFrom.z)) { - this._x = -vFrom.y; - this._y = vFrom.x; - this._z = 0; - this._w = r; - } else { - this._x = 0; - this._y = -vFrom.z; - this._z = vFrom.y; - this._w = r; - } - } else { - this._x = vFrom.y * vTo.z - vFrom.z * vTo.y; - this._y = vFrom.z * vTo.x - vFrom.x * vTo.z; - this._z = vFrom.x * vTo.y - vFrom.y * vTo.x; - this._w = r; - } - return this.normalize(); - }; - _proto.angleTo = function angleTo(q) { - return 2 * Math.acos(Math.abs(MathUtils.clamp(this.dot(q), -1, 1))); - }; - _proto.rotateTowards = function rotateTowards(q, step) { - var angle = this.angleTo(q); - if (angle === 0) return this; - var t = Math.min(1, step / angle); - this.slerp(q, t); - return this; - }; - _proto.identity = function identity() { - return this.set(0, 0, 0, 1); - }; - _proto.invert = function invert() { - return this.conjugate(); - }; - _proto.conjugate = function conjugate() { - this._x *= -1; - this._y *= -1; - this._z *= -1; - this._onChangeCallback(); - return this; - }; - _proto.dot = function dot(v) { - return this._x * v._x + this._y * v._y + this._z * v._z + this._w * v._w; - }; - _proto.lengthSq = function lengthSq() { - return this._x * this._x + this._y * this._y + this._z * this._z + this._w * this._w; - }; - _proto.length = function length() { - return Math.sqrt(this._x * this._x + this._y * this._y + this._z * this._z + this._w * this._w); - }; - _proto.normalize = function normalize() { - var l = this.length(); - if (l === 0) { - this._x = 0; - this._y = 0; - this._z = 0; - this._w = 1; - } else { - l = 1 / l; - this._x = this._x * l; - this._y = this._y * l; - this._z = this._z * l; - this._w = this._w * l; - } - this._onChangeCallback(); - return this; - }; - _proto.multiply = function multiply(q, p) { - if (p !== undefined) { - console.warn('THREE.Quaternion: .multiply() now only accepts one argument. Use .multiplyQuaternions( a, b ) instead.'); - return this.multiplyQuaternions(q, p); - } - return this.multiplyQuaternions(this, q); - }; - _proto.premultiply = function premultiply(q) { - return this.multiplyQuaternions(q, this); - }; - _proto.multiplyQuaternions = function multiplyQuaternions(a, b) { - var qax = a._x, - qay = a._y, - qaz = a._z, - qaw = a._w; - var qbx = b._x, - qby = b._y, - qbz = b._z, - qbw = b._w; - this._x = qax * qbw + qaw * qbx + qay * qbz - qaz * qby; - this._y = qay * qbw + qaw * qby + qaz * qbx - qax * qbz; - this._z = qaz * qbw + qaw * qbz + qax * qby - qay * qbx; - this._w = qaw * qbw - qax * qbx - qay * qby - qaz * qbz; - this._onChangeCallback(); - return this; - }; - _proto.slerp = function slerp(qb, t) { - if (t === 0) return this; - if (t === 1) return this.copy(qb); - var x = this._x, - y = this._y, - z = this._z, - w = this._w; - var cosHalfTheta = w * qb._w + x * qb._x + y * qb._y + z * qb._z; - if (cosHalfTheta < 0) { - this._w = -qb._w; - this._x = -qb._x; - this._y = -qb._y; - this._z = -qb._z; - cosHalfTheta = -cosHalfTheta; - } else { - this.copy(qb); - } - if (cosHalfTheta >= 1.0) { - this._w = w; - this._x = x; - this._y = y; - this._z = z; - return this; - } - var sqrSinHalfTheta = 1.0 - cosHalfTheta * cosHalfTheta; - if (sqrSinHalfTheta <= Number.EPSILON) { - var s = 1 - t; - this._w = s * w + t * this._w; - this._x = s * x + t * this._x; - this._y = s * y + t * this._y; - this._z = s * z + t * this._z; - this.normalize(); - this._onChangeCallback(); - return this; - } - var sinHalfTheta = Math.sqrt(sqrSinHalfTheta); - var halfTheta = Math.atan2(sinHalfTheta, cosHalfTheta); - var ratioA = Math.sin((1 - t) * halfTheta) / sinHalfTheta, - ratioB = Math.sin(t * halfTheta) / sinHalfTheta; - this._w = w * ratioA + this._w * ratioB; - this._x = x * ratioA + this._x * ratioB; - this._y = y * ratioA + this._y * ratioB; - this._z = z * ratioA + this._z * ratioB; - this._onChangeCallback(); - return this; - }; - _proto.equals = function equals(quaternion) { - return quaternion._x === this._x && quaternion._y === this._y && quaternion._z === this._z && quaternion._w === this._w; - }; - _proto.fromArray = function fromArray(array, offset) { - if (offset === void 0) { - offset = 0; - } - this._x = array[offset]; - this._y = array[offset + 1]; - this._z = array[offset + 2]; - this._w = array[offset + 3]; - this._onChangeCallback(); - return this; - }; - _proto.toArray = function toArray(array, offset) { - if (array === void 0) { - array = []; - } - if (offset === void 0) { - offset = 0; - } - array[offset] = this._x; - array[offset + 1] = this._y; - array[offset + 2] = this._z; - array[offset + 3] = this._w; - return array; - }; - _proto.fromBufferAttribute = function fromBufferAttribute(attribute, index) { - this._x = attribute.getX(index); - this._y = attribute.getY(index); - this._z = attribute.getZ(index); - this._w = attribute.getW(index); - return this; - }; - _proto._onChange = function _onChange(callback) { - this._onChangeCallback = callback; - return this; - }; - _proto._onChangeCallback = function _onChangeCallback() {}; - _createClass(Quaternion, [{ - key: "x", - get: function get() { - return this._x; - }, - set: function set(value) { - this._x = value; - this._onChangeCallback(); - } - }, { - key: "y", - get: function get() { - return this._y; - }, - set: function set(value) { - this._y = value; - this._onChangeCallback(); - } - }, { - key: "z", - get: function get() { - return this._z; - }, - set: function set(value) { - this._z = value; - this._onChangeCallback(); - } - }, { - key: "w", - get: function get() { - return this._w; - }, - set: function set(value) { - this._w = value; - this._onChangeCallback(); - } - }]); - return Quaternion; - }(); - var Vector3 = /*#__PURE__*/function () { - function Vector3(x, y, z) { - if (x === void 0) { - x = 0; - } - if (y === void 0) { - y = 0; - } - if (z === void 0) { - z = 0; - } - Object.defineProperty(this, 'isVector3', { - value: true - }); - this.x = x; - this.y = y; - this.z = z; - } - var _proto = Vector3.prototype; - _proto.set = function set(x, y, z) { - if (z === undefined) z = this.z; - this.x = x; - this.y = y; - this.z = z; - return this; - }; - _proto.setScalar = function setScalar(scalar) { - this.x = scalar; - this.y = scalar; - this.z = scalar; - return this; - }; - _proto.setX = function setX(x) { - this.x = x; - return this; - }; - _proto.setY = function setY(y) { - this.y = y; - return this; - }; - _proto.setZ = function setZ(z) { - this.z = z; - return this; - }; - _proto.setComponent = function setComponent(index, value) { - switch (index) { - case 0: - this.x = value; - break; - case 1: - this.y = value; - break; - case 2: - this.z = value; - break; - default: - throw new Error('index is out of range: ' + index); - } - return this; - }; - _proto.getComponent = function getComponent(index) { - switch (index) { - case 0: - return this.x; - case 1: - return this.y; - case 2: - return this.z; - default: - throw new Error('index is out of range: ' + index); - } - }; - _proto.clone = function clone() { - return new this.constructor(this.x, this.y, this.z); - }; - _proto.copy = function copy(v) { - this.x = v.x; - this.y = v.y; - this.z = v.z; - return this; - }; - _proto.add = function add(v, w) { - if (w !== undefined) { - console.warn('THREE.Vector3: .add() now only accepts one argument. Use .addVectors( a, b ) instead.'); - return this.addVectors(v, w); - } - this.x += v.x; - this.y += v.y; - this.z += v.z; - return this; - }; - _proto.addScalar = function addScalar(s) { - this.x += s; - this.y += s; - this.z += s; - return this; - }; - _proto.addVectors = function addVectors(a, b) { - this.x = a.x + b.x; - this.y = a.y + b.y; - this.z = a.z + b.z; - return this; - }; - _proto.addScaledVector = function addScaledVector(v, s) { - this.x += v.x * s; - this.y += v.y * s; - this.z += v.z * s; - return this; - }; - _proto.sub = function sub(v, w) { - if (w !== undefined) { - console.warn('THREE.Vector3: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.'); - return this.subVectors(v, w); - } - this.x -= v.x; - this.y -= v.y; - this.z -= v.z; - return this; - }; - _proto.subScalar = function subScalar(s) { - this.x -= s; - this.y -= s; - this.z -= s; - return this; - }; - _proto.subVectors = function subVectors(a, b) { - this.x = a.x - b.x; - this.y = a.y - b.y; - this.z = a.z - b.z; - return this; - }; - _proto.multiply = function multiply(v, w) { - if (w !== undefined) { - console.warn('THREE.Vector3: .multiply() now only accepts one argument. Use .multiplyVectors( a, b ) instead.'); - return this.multiplyVectors(v, w); - } - this.x *= v.x; - this.y *= v.y; - this.z *= v.z; - return this; - }; - _proto.multiplyScalar = function multiplyScalar(scalar) { - this.x *= scalar; - this.y *= scalar; - this.z *= scalar; - return this; - }; - _proto.multiplyVectors = function multiplyVectors(a, b) { - this.x = a.x * b.x; - this.y = a.y * b.y; - this.z = a.z * b.z; - return this; - }; - _proto.applyEuler = function applyEuler(euler) { - if (!(euler && euler.isEuler)) { - console.error('THREE.Vector3: .applyEuler() now expects an Euler rotation rather than a Vector3 and order.'); - } - return this.applyQuaternion(_quaternion.setFromEuler(euler)); - }; - _proto.applyAxisAngle = function applyAxisAngle(axis, angle) { - return this.applyQuaternion(_quaternion.setFromAxisAngle(axis, angle)); - }; - _proto.applyMatrix3 = function applyMatrix3(m) { - var x = this.x, - y = this.y, - z = this.z; - var e = m.elements; - this.x = e[0] * x + e[3] * y + e[6] * z; - this.y = e[1] * x + e[4] * y + e[7] * z; - this.z = e[2] * x + e[5] * y + e[8] * z; - return this; - }; - _proto.applyNormalMatrix = function applyNormalMatrix(m) { - return this.applyMatrix3(m).normalize(); - }; - _proto.applyMatrix4 = function applyMatrix4(m) { - var x = this.x, - y = this.y, - z = this.z; - var e = m.elements; - var w = 1 / (e[3] * x + e[7] * y + e[11] * z + e[15]); - this.x = (e[0] * x + e[4] * y + e[8] * z + e[12]) * w; - this.y = (e[1] * x + e[5] * y + e[9] * z + e[13]) * w; - this.z = (e[2] * x + e[6] * y + e[10] * z + e[14]) * w; - return this; - }; - _proto.applyQuaternion = function applyQuaternion(q) { - var x = this.x, - y = this.y, - z = this.z; - var qx = q.x, - qy = q.y, - qz = q.z, - qw = q.w; - var ix = qw * x + qy * z - qz * y; - var iy = qw * y + qz * x - qx * z; - var iz = qw * z + qx * y - qy * x; - var iw = -qx * x - qy * y - qz * z; - this.x = ix * qw + iw * -qx + iy * -qz - iz * -qy; - this.y = iy * qw + iw * -qy + iz * -qx - ix * -qz; - this.z = iz * qw + iw * -qz + ix * -qy - iy * -qx; - return this; - }; - _proto.project = function project(camera) { - return this.applyMatrix4(camera.matrixWorldInverse).applyMatrix4(camera.projectionMatrix); - }; - _proto.unproject = function unproject(camera) { - return this.applyMatrix4(camera.projectionMatrixInverse).applyMatrix4(camera.matrixWorld); - }; - _proto.transformDirection = function transformDirection(m) { - var x = this.x, - y = this.y, - z = this.z; - var e = m.elements; - this.x = e[0] * x + e[4] * y + e[8] * z; - this.y = e[1] * x + e[5] * y + e[9] * z; - this.z = e[2] * x + e[6] * y + e[10] * z; - return this.normalize(); - }; - _proto.divide = function divide(v) { - this.x /= v.x; - this.y /= v.y; - this.z /= v.z; - return this; - }; - _proto.divideScalar = function divideScalar(scalar) { - return this.multiplyScalar(1 / scalar); - }; - _proto.min = function min(v) { - this.x = Math.min(this.x, v.x); - this.y = Math.min(this.y, v.y); - this.z = Math.min(this.z, v.z); - return this; - }; - _proto.max = function max(v) { - this.x = Math.max(this.x, v.x); - this.y = Math.max(this.y, v.y); - this.z = Math.max(this.z, v.z); - return this; - }; - _proto.clamp = function clamp(min, max) { - this.x = Math.max(min.x, Math.min(max.x, this.x)); - this.y = Math.max(min.y, Math.min(max.y, this.y)); - this.z = Math.max(min.z, Math.min(max.z, this.z)); - return this; - }; - _proto.clampScalar = function clampScalar(minVal, maxVal) { - this.x = Math.max(minVal, Math.min(maxVal, this.x)); - this.y = Math.max(minVal, Math.min(maxVal, this.y)); - this.z = Math.max(minVal, Math.min(maxVal, this.z)); - return this; - }; - _proto.clampLength = function clampLength(min, max) { - var length = this.length(); - return this.divideScalar(length || 1).multiplyScalar(Math.max(min, Math.min(max, length))); - }; - _proto.floor = function floor() { - this.x = Math.floor(this.x); - this.y = Math.floor(this.y); - this.z = Math.floor(this.z); - return this; - }; - _proto.ceil = function ceil() { - this.x = Math.ceil(this.x); - this.y = Math.ceil(this.y); - this.z = Math.ceil(this.z); - return this; - }; - _proto.round = function round() { - this.x = Math.round(this.x); - this.y = Math.round(this.y); - this.z = Math.round(this.z); - return this; - }; - _proto.roundToZero = function roundToZero() { - this.x = this.x < 0 ? Math.ceil(this.x) : Math.floor(this.x); - this.y = this.y < 0 ? Math.ceil(this.y) : Math.floor(this.y); - this.z = this.z < 0 ? Math.ceil(this.z) : Math.floor(this.z); - return this; - }; - _proto.negate = function negate() { - this.x = -this.x; - this.y = -this.y; - this.z = -this.z; - return this; - }; - _proto.dot = function dot(v) { - return this.x * v.x + this.y * v.y + this.z * v.z; - }; - _proto.lengthSq = function lengthSq() { - return this.x * this.x + this.y * this.y + this.z * this.z; - }; - _proto.length = function length() { - return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z); - }; - _proto.manhattanLength = function manhattanLength() { - return Math.abs(this.x) + Math.abs(this.y) + Math.abs(this.z); - }; - _proto.normalize = function normalize() { - return this.divideScalar(this.length() || 1); - }; - _proto.setLength = function setLength(length) { - return this.normalize().multiplyScalar(length); - }; - _proto.lerp = function lerp(v, alpha) { - this.x += (v.x - this.x) * alpha; - this.y += (v.y - this.y) * alpha; - this.z += (v.z - this.z) * alpha; - return this; - }; - _proto.lerpVectors = function lerpVectors(v1, v2, alpha) { - this.x = v1.x + (v2.x - v1.x) * alpha; - this.y = v1.y + (v2.y - v1.y) * alpha; - this.z = v1.z + (v2.z - v1.z) * alpha; - return this; - }; - _proto.cross = function cross(v, w) { - if (w !== undefined) { - console.warn('THREE.Vector3: .cross() now only accepts one argument. Use .crossVectors( a, b ) instead.'); - return this.crossVectors(v, w); - } - return this.crossVectors(this, v); - }; - _proto.crossVectors = function crossVectors(a, b) { - var ax = a.x, - ay = a.y, - az = a.z; - var bx = b.x, - by = b.y, - bz = b.z; - this.x = ay * bz - az * by; - this.y = az * bx - ax * bz; - this.z = ax * by - ay * bx; - return this; - }; - _proto.projectOnVector = function projectOnVector(v) { - var denominator = v.lengthSq(); - if (denominator === 0) return this.set(0, 0, 0); - var scalar = v.dot(this) / denominator; - return this.copy(v).multiplyScalar(scalar); - }; - _proto.projectOnPlane = function projectOnPlane(planeNormal) { - _vector.copy(this).projectOnVector(planeNormal); - return this.sub(_vector); - }; - _proto.reflect = function reflect(normal) { - return this.sub(_vector.copy(normal).multiplyScalar(2 * this.dot(normal))); - }; - _proto.angleTo = function angleTo(v) { - var denominator = Math.sqrt(this.lengthSq() * v.lengthSq()); - if (denominator === 0) return Math.PI / 2; - var theta = this.dot(v) / denominator; - return Math.acos(MathUtils.clamp(theta, -1, 1)); - }; - _proto.distanceTo = function distanceTo(v) { - return Math.sqrt(this.distanceToSquared(v)); - }; - _proto.distanceToSquared = function distanceToSquared(v) { - var dx = this.x - v.x, - dy = this.y - v.y, - dz = this.z - v.z; - return dx * dx + dy * dy + dz * dz; - }; - _proto.manhattanDistanceTo = function manhattanDistanceTo(v) { - return Math.abs(this.x - v.x) + Math.abs(this.y - v.y) + Math.abs(this.z - v.z); - }; - _proto.setFromSpherical = function setFromSpherical(s) { - return this.setFromSphericalCoords(s.radius, s.phi, s.theta); - }; - _proto.setFromSphericalCoords = function setFromSphericalCoords(radius, phi, theta) { - var sinPhiRadius = Math.sin(phi) * radius; - this.x = sinPhiRadius * Math.sin(theta); - this.y = Math.cos(phi) * radius; - this.z = sinPhiRadius * Math.cos(theta); - return this; - }; - _proto.setFromCylindrical = function setFromCylindrical(c) { - return this.setFromCylindricalCoords(c.radius, c.theta, c.y); - }; - _proto.setFromCylindricalCoords = function setFromCylindricalCoords(radius, theta, y) { - this.x = radius * Math.sin(theta); - this.y = y; - this.z = radius * Math.cos(theta); - return this; - }; - _proto.setFromMatrixPosition = function setFromMatrixPosition(m) { - var e = m.elements; - this.x = e[12]; - this.y = e[13]; - this.z = e[14]; - return this; - }; - _proto.setFromMatrixScale = function setFromMatrixScale(m) { - var sx = this.setFromMatrixColumn(m, 0).length(); - var sy = this.setFromMatrixColumn(m, 1).length(); - var sz = this.setFromMatrixColumn(m, 2).length(); - this.x = sx; - this.y = sy; - this.z = sz; - return this; - }; - _proto.setFromMatrixColumn = function setFromMatrixColumn(m, index) { - return this.fromArray(m.elements, index * 4); - }; - _proto.setFromMatrix3Column = function setFromMatrix3Column(m, index) { - return this.fromArray(m.elements, index * 3); - }; - _proto.equals = function equals(v) { - return v.x === this.x && v.y === this.y && v.z === this.z; - }; - _proto.fromArray = function fromArray(array, offset) { - if (offset === void 0) { - offset = 0; - } - this.x = array[offset]; - this.y = array[offset + 1]; - this.z = array[offset + 2]; - return this; - }; - _proto.toArray = function toArray(array, offset) { - if (array === void 0) { - array = []; - } - if (offset === void 0) { - offset = 0; - } - array[offset] = this.x; - array[offset + 1] = this.y; - array[offset + 2] = this.z; - return array; - }; - _proto.fromBufferAttribute = function fromBufferAttribute(attribute, index, offset) { - if (offset !== undefined) { - console.warn('THREE.Vector3: offset has been removed from .fromBufferAttribute().'); - } - this.x = attribute.getX(index); - this.y = attribute.getY(index); - this.z = attribute.getZ(index); - return this; - }; - _proto.random = function random() { - this.x = Math.random(); - this.y = Math.random(); - this.z = Math.random(); - return this; - }; - return Vector3; - }(); - var _vector = /*@__PURE__*/new Vector3(); - var _quaternion = /*@__PURE__*/new Quaternion(); - var Box3 = /*#__PURE__*/function () { - function Box3(min, max) { - Object.defineProperty(this, 'isBox3', { - value: true - }); - this.min = min !== undefined ? min : new Vector3(+Infinity, +Infinity, +Infinity); - this.max = max !== undefined ? max : new Vector3(-Infinity, -Infinity, -Infinity); - } - var _proto = Box3.prototype; - _proto.set = function set(min, max) { - this.min.copy(min); - this.max.copy(max); - return this; - }; - _proto.setFromArray = function setFromArray(array) { - var minX = +Infinity; - var minY = +Infinity; - var minZ = +Infinity; - var maxX = -Infinity; - var maxY = -Infinity; - var maxZ = -Infinity; - for (var i = 0, l = array.length; i < l; i += 3) { - var x = array[i]; - var y = array[i + 1]; - var z = array[i + 2]; - if (x < minX) minX = x; - if (y < minY) minY = y; - if (z < minZ) minZ = z; - if (x > maxX) maxX = x; - if (y > maxY) maxY = y; - if (z > maxZ) maxZ = z; - } - this.min.set(minX, minY, minZ); - this.max.set(maxX, maxY, maxZ); - return this; - }; - _proto.setFromBufferAttribute = function setFromBufferAttribute(attribute) { - var minX = +Infinity; - var minY = +Infinity; - var minZ = +Infinity; - var maxX = -Infinity; - var maxY = -Infinity; - var maxZ = -Infinity; - for (var i = 0, l = attribute.count; i < l; i++) { - var x = attribute.getX(i); - var y = attribute.getY(i); - var z = attribute.getZ(i); - if (x < minX) minX = x; - if (y < minY) minY = y; - if (z < minZ) minZ = z; - if (x > maxX) maxX = x; - if (y > maxY) maxY = y; - if (z > maxZ) maxZ = z; - } - this.min.set(minX, minY, minZ); - this.max.set(maxX, maxY, maxZ); - return this; - }; - _proto.setFromPoints = function setFromPoints(points) { - this.makeEmpty(); - for (var i = 0, il = points.length; i < il; i++) { - this.expandByPoint(points[i]); - } - return this; - }; - _proto.setFromCenterAndSize = function setFromCenterAndSize(center, size) { - var halfSize = _vector$1.copy(size).multiplyScalar(0.5); - this.min.copy(center).sub(halfSize); - this.max.copy(center).add(halfSize); - return this; - }; - _proto.setFromObject = function setFromObject(object) { - this.makeEmpty(); - return this.expandByObject(object); - }; - _proto.clone = function clone() { - return new this.constructor().copy(this); - }; - _proto.copy = function copy(box) { - this.min.copy(box.min); - this.max.copy(box.max); - return this; - }; - _proto.makeEmpty = function makeEmpty() { - this.min.x = this.min.y = this.min.z = +Infinity; - this.max.x = this.max.y = this.max.z = -Infinity; - return this; - }; - _proto.isEmpty = function isEmpty() { - return this.max.x < this.min.x || this.max.y < this.min.y || this.max.z < this.min.z; - }; - _proto.getCenter = function getCenter(target) { - if (target === undefined) { - console.warn('THREE.Box3: .getCenter() target is now required'); - target = new Vector3(); - } - return this.isEmpty() ? target.set(0, 0, 0) : target.addVectors(this.min, this.max).multiplyScalar(0.5); - }; - _proto.getSize = function getSize(target) { - if (target === undefined) { - console.warn('THREE.Box3: .getSize() target is now required'); - target = new Vector3(); - } - return this.isEmpty() ? target.set(0, 0, 0) : target.subVectors(this.max, this.min); - }; - _proto.expandByPoint = function expandByPoint(point) { - this.min.min(point); - this.max.max(point); - return this; - }; - _proto.expandByVector = function expandByVector(vector) { - this.min.sub(vector); - this.max.add(vector); - return this; - }; - _proto.expandByScalar = function expandByScalar(scalar) { - this.min.addScalar(-scalar); - this.max.addScalar(scalar); - return this; - }; - _proto.expandByObject = function expandByObject(object) { - object.updateWorldMatrix(false, false); - var geometry = object.geometry; - if (geometry !== undefined) { - if (geometry.boundingBox === null) { - geometry.computeBoundingBox(); - } - _box.copy(geometry.boundingBox); - _box.applyMatrix4(object.matrixWorld); - this.union(_box); - } - var children = object.children; - for (var i = 0, l = children.length; i < l; i++) { - this.expandByObject(children[i]); - } - return this; - }; - _proto.containsPoint = function containsPoint(point) { - return point.x < this.min.x || point.x > this.max.x || point.y < this.min.y || point.y > this.max.y || point.z < this.min.z || point.z > this.max.z ? false : true; - }; - _proto.containsBox = function containsBox(box) { - return this.min.x <= box.min.x && box.max.x <= this.max.x && this.min.y <= box.min.y && box.max.y <= this.max.y && this.min.z <= box.min.z && box.max.z <= this.max.z; - }; - _proto.getParameter = function getParameter(point, target) { - if (target === undefined) { - console.warn('THREE.Box3: .getParameter() target is now required'); - target = new Vector3(); - } - return target.set((point.x - this.min.x) / (this.max.x - this.min.x), (point.y - this.min.y) / (this.max.y - this.min.y), (point.z - this.min.z) / (this.max.z - this.min.z)); - }; - _proto.intersectsBox = function intersectsBox(box) { - return box.max.x < this.min.x || box.min.x > this.max.x || box.max.y < this.min.y || box.min.y > this.max.y || box.max.z < this.min.z || box.min.z > this.max.z ? false : true; - }; - _proto.intersectsSphere = function intersectsSphere(sphere) { - this.clampPoint(sphere.center, _vector$1); // If that point is inside the sphere, the AABB and sphere intersect. - return _vector$1.distanceToSquared(sphere.center) <= sphere.radius * sphere.radius; - }; - _proto.intersectsPlane = function intersectsPlane(plane) { - var min, max; - if (plane.normal.x > 0) { - min = plane.normal.x * this.min.x; - max = plane.normal.x * this.max.x; - } else { - min = plane.normal.x * this.max.x; - max = plane.normal.x * this.min.x; - } - if (plane.normal.y > 0) { - min += plane.normal.y * this.min.y; - max += plane.normal.y * this.max.y; - } else { - min += plane.normal.y * this.max.y; - max += plane.normal.y * this.min.y; - } - if (plane.normal.z > 0) { - min += plane.normal.z * this.min.z; - max += plane.normal.z * this.max.z; - } else { - min += plane.normal.z * this.max.z; - max += plane.normal.z * this.min.z; - } - return min <= -plane.constant && max >= -plane.constant; - }; - _proto.intersectsTriangle = function intersectsTriangle(triangle) { - if (this.isEmpty()) { - return false; - } - this.getCenter(_center); - _extents.subVectors(this.max, _center); - _v0.subVectors(triangle.a, _center); - _v1.subVectors(triangle.b, _center); - _v2.subVectors(triangle.c, _center); - _f0.subVectors(_v1, _v0); - _f1.subVectors(_v2, _v1); - _f2.subVectors(_v0, _v2); - var axes = [0, -_f0.z, _f0.y, 0, -_f1.z, _f1.y, 0, -_f2.z, _f2.y, _f0.z, 0, -_f0.x, _f1.z, 0, -_f1.x, _f2.z, 0, -_f2.x, -_f0.y, _f0.x, 0, -_f1.y, _f1.x, 0, -_f2.y, _f2.x, 0]; - if (!satForAxes(axes, _v0, _v1, _v2, _extents)) { - return false; - } - axes = [1, 0, 0, 0, 1, 0, 0, 0, 1]; - if (!satForAxes(axes, _v0, _v1, _v2, _extents)) { - return false; - } - _triangleNormal.crossVectors(_f0, _f1); - axes = [_triangleNormal.x, _triangleNormal.y, _triangleNormal.z]; - return satForAxes(axes, _v0, _v1, _v2, _extents); - }; - _proto.clampPoint = function clampPoint(point, target) { - if (target === undefined) { - console.warn('THREE.Box3: .clampPoint() target is now required'); - target = new Vector3(); - } - return target.copy(point).clamp(this.min, this.max); - }; - _proto.distanceToPoint = function distanceToPoint(point) { - var clampedPoint = _vector$1.copy(point).clamp(this.min, this.max); - return clampedPoint.sub(point).length(); - }; - _proto.getBoundingSphere = function getBoundingSphere(target) { - if (target === undefined) { - console.error('THREE.Box3: .getBoundingSphere() target is now required'); - } - this.getCenter(target.center); - target.radius = this.getSize(_vector$1).length() * 0.5; - return target; - }; - _proto.intersect = function intersect(box) { - this.min.max(box.min); - this.max.min(box.max); - if (this.isEmpty()) this.makeEmpty(); - return this; - }; - _proto.union = function union(box) { - this.min.min(box.min); - this.max.max(box.max); - return this; - }; - _proto.applyMatrix4 = function applyMatrix4(matrix) { - if (this.isEmpty()) return this; - _points[0].set(this.min.x, this.min.y, this.min.z).applyMatrix4(matrix); - - _points[1].set(this.min.x, this.min.y, this.max.z).applyMatrix4(matrix); - - _points[2].set(this.min.x, this.max.y, this.min.z).applyMatrix4(matrix); - - _points[3].set(this.min.x, this.max.y, this.max.z).applyMatrix4(matrix); - - _points[4].set(this.max.x, this.min.y, this.min.z).applyMatrix4(matrix); - - _points[5].set(this.max.x, this.min.y, this.max.z).applyMatrix4(matrix); - - _points[6].set(this.max.x, this.max.y, this.min.z).applyMatrix4(matrix); - - _points[7].set(this.max.x, this.max.y, this.max.z).applyMatrix4(matrix); - - this.setFromPoints(_points); - return this; - }; - _proto.translate = function translate(offset) { - this.min.add(offset); - this.max.add(offset); - return this; - }; - _proto.equals = function equals(box) { - return box.min.equals(this.min) && box.max.equals(this.max); - }; - return Box3; - }(); - function satForAxes(axes, v0, v1, v2, extents) { - for (var i = 0, j = axes.length - 3; i <= j; i += 3) { - _testAxis.fromArray(axes, i); - - var r = extents.x * Math.abs(_testAxis.x) + extents.y * Math.abs(_testAxis.y) + extents.z * Math.abs(_testAxis.z); - var p0 = v0.dot(_testAxis); - var p1 = v1.dot(_testAxis); - var p2 = v2.dot(_testAxis); - if (Math.max(-Math.max(p0, p1, p2), Math.min(p0, p1, p2)) > r) { - return false; - } - } - return true; - } - var _points = [/*@__PURE__*/new Vector3(), /*@__PURE__*/new Vector3(), /*@__PURE__*/new Vector3(), /*@__PURE__*/new Vector3(), /*@__PURE__*/new Vector3(), /*@__PURE__*/new Vector3(), /*@__PURE__*/new Vector3(), /*@__PURE__*/new Vector3()]; - var _vector$1 = /*@__PURE__*/new Vector3(); - var _box = /*@__PURE__*/new Box3(); - - var _v0 = /*@__PURE__*/new Vector3(); - var _v1 = /*@__PURE__*/new Vector3(); - var _v2 = /*@__PURE__*/new Vector3(); - - var _f0 = /*@__PURE__*/new Vector3(); - var _f1 = /*@__PURE__*/new Vector3(); - var _f2 = /*@__PURE__*/new Vector3(); - var _center = /*@__PURE__*/new Vector3(); - var _extents = /*@__PURE__*/new Vector3(); - var _triangleNormal = /*@__PURE__*/new Vector3(); - var _testAxis = /*@__PURE__*/new Vector3(); - var _box$1 = /*@__PURE__*/new Box3(); - var Sphere = /*#__PURE__*/function () { - function Sphere(center, radius) { - this.center = center !== undefined ? center : new Vector3(); - this.radius = radius !== undefined ? radius : -1; - } - var _proto = Sphere.prototype; - _proto.set = function set(center, radius) { - this.center.copy(center); - this.radius = radius; - return this; - }; - _proto.setFromPoints = function setFromPoints(points, optionalCenter) { - var center = this.center; - if (optionalCenter !== undefined) { - center.copy(optionalCenter); - } else { - _box$1.setFromPoints(points).getCenter(center); - } - var maxRadiusSq = 0; - for (var i = 0, il = points.length; i < il; i++) { - maxRadiusSq = Math.max(maxRadiusSq, center.distanceToSquared(points[i])); - } - this.radius = Math.sqrt(maxRadiusSq); - return this; - }; - _proto.clone = function clone() { - return new this.constructor().copy(this); - }; - _proto.copy = function copy(sphere) { - this.center.copy(sphere.center); - this.radius = sphere.radius; - return this; - }; - _proto.isEmpty = function isEmpty() { - return this.radius < 0; - }; - _proto.makeEmpty = function makeEmpty() { - this.center.set(0, 0, 0); - this.radius = -1; - return this; - }; - _proto.containsPoint = function containsPoint(point) { - return point.distanceToSquared(this.center) <= this.radius * this.radius; - }; - _proto.distanceToPoint = function distanceToPoint(point) { - return point.distanceTo(this.center) - this.radius; - }; - _proto.intersectsSphere = function intersectsSphere(sphere) { - var radiusSum = this.radius + sphere.radius; - return sphere.center.distanceToSquared(this.center) <= radiusSum * radiusSum; - }; - _proto.intersectsBox = function intersectsBox(box) { - return box.intersectsSphere(this); - }; - _proto.intersectsPlane = function intersectsPlane(plane) { - return Math.abs(plane.distanceToPoint(this.center)) <= this.radius; - }; - _proto.clampPoint = function clampPoint(point, target) { - var deltaLengthSq = this.center.distanceToSquared(point); - if (target === undefined) { - console.warn('THREE.Sphere: .clampPoint() target is now required'); - target = new Vector3(); - } - target.copy(point); - if (deltaLengthSq > this.radius * this.radius) { - target.sub(this.center).normalize(); - target.multiplyScalar(this.radius).add(this.center); - } - return target; - }; - _proto.getBoundingBox = function getBoundingBox(target) { - if (target === undefined) { - console.warn('THREE.Sphere: .getBoundingBox() target is now required'); - target = new Box3(); - } - if (this.isEmpty()) { - target.makeEmpty(); - return target; - } - target.set(this.center, this.center); - target.expandByScalar(this.radius); - return target; - }; - _proto.applyMatrix4 = function applyMatrix4(matrix) { - this.center.applyMatrix4(matrix); - this.radius = this.radius * matrix.getMaxScaleOnAxis(); - return this; - }; - _proto.translate = function translate(offset) { - this.center.add(offset); - return this; - }; - _proto.equals = function equals(sphere) { - return sphere.center.equals(this.center) && sphere.radius === this.radius; - }; - return Sphere; - }(); - var _vector$2 = /*@__PURE__*/new Vector3(); - var _segCenter = /*@__PURE__*/new Vector3(); - var _segDir = /*@__PURE__*/new Vector3(); - var _diff = /*@__PURE__*/new Vector3(); - var _edge1 = /*@__PURE__*/new Vector3(); - var _edge2 = /*@__PURE__*/new Vector3(); - var _normal = /*@__PURE__*/new Vector3(); - var Ray = /*#__PURE__*/function () { - function Ray(origin, direction) { - this.origin = origin !== undefined ? origin : new Vector3(); - this.direction = direction !== undefined ? direction : new Vector3(0, 0, -1); - } - var _proto = Ray.prototype; - _proto.set = function set(origin, direction) { - this.origin.copy(origin); - this.direction.copy(direction); - return this; - }; - _proto.clone = function clone() { - return new this.constructor().copy(this); - }; - _proto.copy = function copy(ray) { - this.origin.copy(ray.origin); - this.direction.copy(ray.direction); - return this; - }; - _proto.at = function at(t, target) { - if (target === undefined) { - console.warn('THREE.Ray: .at() target is now required'); - target = new Vector3(); - } - return target.copy(this.direction).multiplyScalar(t).add(this.origin); - }; - _proto.lookAt = function lookAt(v) { - this.direction.copy(v).sub(this.origin).normalize(); - return this; - }; - _proto.recast = function recast(t) { - this.origin.copy(this.at(t, _vector$2)); - return this; - }; - _proto.closestPointToPoint = function closestPointToPoint(point, target) { - if (target === undefined) { - console.warn('THREE.Ray: .closestPointToPoint() target is now required'); - target = new Vector3(); - } - target.subVectors(point, this.origin); - var directionDistance = target.dot(this.direction); - if (directionDistance < 0) { - return target.copy(this.origin); - } - return target.copy(this.direction).multiplyScalar(directionDistance).add(this.origin); - }; - _proto.distanceToPoint = function distanceToPoint(point) { - return Math.sqrt(this.distanceSqToPoint(point)); - }; - _proto.distanceSqToPoint = function distanceSqToPoint(point) { - var directionDistance = _vector$2.subVectors(point, this.origin).dot(this.direction); // point behind the ray - - if (directionDistance < 0) { - return this.origin.distanceToSquared(point); - } - _vector$2.copy(this.direction).multiplyScalar(directionDistance).add(this.origin); - return _vector$2.distanceToSquared(point); - }; - _proto.distanceSqToSegment = function distanceSqToSegment(v0, v1, optionalPointOnRay, optionalPointOnSegment) { - _segCenter.copy(v0).add(v1).multiplyScalar(0.5); - _segDir.copy(v1).sub(v0).normalize(); - _diff.copy(this.origin).sub(_segCenter); - var segExtent = v0.distanceTo(v1) * 0.5; - var a01 = -this.direction.dot(_segDir); - var b0 = _diff.dot(this.direction); - var b1 = -_diff.dot(_segDir); - var c = _diff.lengthSq(); - var det = Math.abs(1 - a01 * a01); - var s0, s1, sqrDist, extDet; - if (det > 0) { - s0 = a01 * b1 - b0; - s1 = a01 * b0 - b1; - extDet = segExtent * det; - if (s0 >= 0) { - if (s1 >= -extDet) { - if (s1 <= extDet) { - var invDet = 1 / det; - s0 *= invDet; - s1 *= invDet; - sqrDist = s0 * (s0 + a01 * s1 + 2 * b0) + s1 * (a01 * s0 + s1 + 2 * b1) + c; - } else { - s1 = segExtent; - s0 = Math.max(0, -(a01 * s1 + b0)); - sqrDist = -s0 * s0 + s1 * (s1 + 2 * b1) + c; - } - } else { - s1 = -segExtent; - s0 = Math.max(0, -(a01 * s1 + b0)); - sqrDist = -s0 * s0 + s1 * (s1 + 2 * b1) + c; - } - } else { - if (s1 <= -extDet) { - s0 = Math.max(0, -(-a01 * segExtent + b0)); - s1 = s0 > 0 ? -segExtent : Math.min(Math.max(-segExtent, -b1), segExtent); - sqrDist = -s0 * s0 + s1 * (s1 + 2 * b1) + c; - } else if (s1 <= extDet) { - s0 = 0; - s1 = Math.min(Math.max(-segExtent, -b1), segExtent); - sqrDist = s1 * (s1 + 2 * b1) + c; - } else { - s0 = Math.max(0, -(a01 * segExtent + b0)); - s1 = s0 > 0 ? segExtent : Math.min(Math.max(-segExtent, -b1), segExtent); - sqrDist = -s0 * s0 + s1 * (s1 + 2 * b1) + c; - } - } - } else { - s1 = a01 > 0 ? -segExtent : segExtent; - s0 = Math.max(0, -(a01 * s1 + b0)); - sqrDist = -s0 * s0 + s1 * (s1 + 2 * b1) + c; - } - if (optionalPointOnRay) { - optionalPointOnRay.copy(this.direction).multiplyScalar(s0).add(this.origin); - } - if (optionalPointOnSegment) { - optionalPointOnSegment.copy(_segDir).multiplyScalar(s1).add(_segCenter); - } - return sqrDist; - }; - _proto.intersectSphere = function intersectSphere(sphere, target) { - _vector$2.subVectors(sphere.center, this.origin); - var tca = _vector$2.dot(this.direction); - var d2 = _vector$2.dot(_vector$2) - tca * tca; - var radius2 = sphere.radius * sphere.radius; - if (d2 > radius2) return null; - var thc = Math.sqrt(radius2 - d2); - var t0 = tca - thc; - var t1 = tca + thc; - if (t0 < 0 && t1 < 0) return null; - if (t0 < 0) return this.at(t1, target); - return this.at(t0, target); - }; - _proto.intersectsSphere = function intersectsSphere(sphere) { - return this.distanceSqToPoint(sphere.center) <= sphere.radius * sphere.radius; - }; - _proto.distanceToPlane = function distanceToPlane(plane) { - var denominator = plane.normal.dot(this.direction); - if (denominator === 0) { - if (plane.distanceToPoint(this.origin) === 0) { - return 0; - } - return null; - } - var t = -(this.origin.dot(plane.normal) + plane.constant) / denominator; - return t >= 0 ? t : null; - }; - _proto.intersectPlane = function intersectPlane(plane, target) { - var t = this.distanceToPlane(plane); - if (t === null) { - return null; - } - return this.at(t, target); - }; - _proto.intersectsPlane = function intersectsPlane(plane) { - var distToPoint = plane.distanceToPoint(this.origin); - if (distToPoint === 0) { - return true; - } - var denominator = plane.normal.dot(this.direction); - if (denominator * distToPoint < 0) { - return true; - } - return false; - }; - _proto.intersectBox = function intersectBox(box, target) { - var tmin, tmax, tymin, tymax, tzmin, tzmax; - var invdirx = 1 / this.direction.x, - invdiry = 1 / this.direction.y, - invdirz = 1 / this.direction.z; - var origin = this.origin; - if (invdirx >= 0) { - tmin = (box.min.x - origin.x) * invdirx; - tmax = (box.max.x - origin.x) * invdirx; - } else { - tmin = (box.max.x - origin.x) * invdirx; - tmax = (box.min.x - origin.x) * invdirx; - } - if (invdiry >= 0) { - tymin = (box.min.y - origin.y) * invdiry; - tymax = (box.max.y - origin.y) * invdiry; - } else { - tymin = (box.max.y - origin.y) * invdiry; - tymax = (box.min.y - origin.y) * invdiry; - } - if (tmin > tymax || tymin > tmax) return null; - if (tymin > tmin || tmin !== tmin) tmin = tymin; - if (tymax < tmax || tmax !== tmax) tmax = tymax; - if (invdirz >= 0) { - tzmin = (box.min.z - origin.z) * invdirz; - tzmax = (box.max.z - origin.z) * invdirz; - } else { - tzmin = (box.max.z - origin.z) * invdirz; - tzmax = (box.min.z - origin.z) * invdirz; - } - if (tmin > tzmax || tzmin > tmax) return null; - if (tzmin > tmin || tmin !== tmin) tmin = tzmin; - if (tzmax < tmax || tmax !== tmax) tmax = tzmax; - if (tmax < 0) return null; - return this.at(tmin >= 0 ? tmin : tmax, target); - }; - _proto.intersectsBox = function intersectsBox(box) { - return this.intersectBox(box, _vector$2) !== null; - }; - _proto.intersectTriangle = function intersectTriangle(a, b, c, backfaceCulling, target) { - _edge1.subVectors(b, a); - _edge2.subVectors(c, a); - _normal.crossVectors(_edge1, _edge2); - var DdN = this.direction.dot(_normal); - var sign; - if (DdN > 0) { - if (backfaceCulling) return null; - sign = 1; - } else if (DdN < 0) { - sign = -1; - DdN = -DdN; - } else { - return null; - } - _diff.subVectors(this.origin, a); - var DdQxE2 = sign * this.direction.dot(_edge2.crossVectors(_diff, _edge2)); - if (DdQxE2 < 0) { - return null; - } - var DdE1xQ = sign * this.direction.dot(_edge1.cross(_diff)); - if (DdE1xQ < 0) { - return null; - } - if (DdQxE2 + DdE1xQ > DdN) { - return null; - } - var QdN = -sign * _diff.dot(_normal); - if (QdN < 0) { - return null; - } - return this.at(QdN / DdN, target); - }; - _proto.applyMatrix4 = function applyMatrix4(matrix4) { - this.origin.applyMatrix4(matrix4); - this.direction.transformDirection(matrix4); - return this; - }; - _proto.equals = function equals(ray) { - return ray.origin.equals(this.origin) && ray.direction.equals(this.direction); - }; - return Ray; - }(); - var Matrix4 = /*#__PURE__*/function () { - function Matrix4() { - Object.defineProperty(this, 'isMatrix4', { - value: true - }); - this.elements = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]; - if (arguments.length > 0) { - console.error('THREE.Matrix4: the constructor no longer reads arguments. use .set() instead.'); - } - } - var _proto = Matrix4.prototype; - _proto.set = function set(n11, n12, n13, n14, n21, n22, n23, n24, n31, n32, n33, n34, n41, n42, n43, n44) { - var te = this.elements; - te[0] = n11; - te[4] = n12; - te[8] = n13; - te[12] = n14; - te[1] = n21; - te[5] = n22; - te[9] = n23; - te[13] = n24; - te[2] = n31; - te[6] = n32; - te[10] = n33; - te[14] = n34; - te[3] = n41; - te[7] = n42; - te[11] = n43; - te[15] = n44; - return this; - }; - _proto.identity = function identity() { - this.set(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); - return this; - }; - _proto.clone = function clone() { - return new Matrix4().fromArray(this.elements); - }; - _proto.copy = function copy(m) { - var te = this.elements; - var me = m.elements; - te[0] = me[0]; - te[1] = me[1]; - te[2] = me[2]; - te[3] = me[3]; - te[4] = me[4]; - te[5] = me[5]; - te[6] = me[6]; - te[7] = me[7]; - te[8] = me[8]; - te[9] = me[9]; - te[10] = me[10]; - te[11] = me[11]; - te[12] = me[12]; - te[13] = me[13]; - te[14] = me[14]; - te[15] = me[15]; - return this; - }; - _proto.copyPosition = function copyPosition(m) { - var te = this.elements, - me = m.elements; - te[12] = me[12]; - te[13] = me[13]; - te[14] = me[14]; - return this; - }; - _proto.extractBasis = function extractBasis(xAxis, yAxis, zAxis) { - xAxis.setFromMatrixColumn(this, 0); - yAxis.setFromMatrixColumn(this, 1); - zAxis.setFromMatrixColumn(this, 2); - return this; - }; - _proto.makeBasis = function makeBasis(xAxis, yAxis, zAxis) { - this.set(xAxis.x, yAxis.x, zAxis.x, 0, xAxis.y, yAxis.y, zAxis.y, 0, xAxis.z, yAxis.z, zAxis.z, 0, 0, 0, 0, 1); - return this; - }; - _proto.extractRotation = function extractRotation(m) { - var te = this.elements; - var me = m.elements; - var scaleX = 1 / _v1$1.setFromMatrixColumn(m, 0).length(); - var scaleY = 1 / _v1$1.setFromMatrixColumn(m, 1).length(); - var scaleZ = 1 / _v1$1.setFromMatrixColumn(m, 2).length(); - te[0] = me[0] * scaleX; - te[1] = me[1] * scaleX; - te[2] = me[2] * scaleX; - te[3] = 0; - te[4] = me[4] * scaleY; - te[5] = me[5] * scaleY; - te[6] = me[6] * scaleY; - te[7] = 0; - te[8] = me[8] * scaleZ; - te[9] = me[9] * scaleZ; - te[10] = me[10] * scaleZ; - te[11] = 0; - te[12] = 0; - te[13] = 0; - te[14] = 0; - te[15] = 1; - return this; - }; - _proto.makeRotationFromEuler = function makeRotationFromEuler(euler) { - if (!(euler && euler.isEuler)) { - console.error('THREE.Matrix4: .makeRotationFromEuler() now expects a Euler rotation rather than a Vector3 and order.'); - } - var te = this.elements; - var x = euler.x, - y = euler.y, - z = euler.z; - var a = Math.cos(x), - b = Math.sin(x); - var c = Math.cos(y), - d = Math.sin(y); - var e = Math.cos(z), - f = Math.sin(z); - if (euler.order === 'XYZ') { - var ae = a * e, - af = a * f, - be = b * e, - bf = b * f; - te[0] = c * e; - te[4] = -c * f; - te[8] = d; - te[1] = af + be * d; - te[5] = ae - bf * d; - te[9] = -b * c; - te[2] = bf - ae * d; - te[6] = be + af * d; - te[10] = a * c; - } else if (euler.order === 'YXZ') { - var ce = c * e, - cf = c * f, - de = d * e, - df = d * f; - te[0] = ce + df * b; - te[4] = de * b - cf; - te[8] = a * d; - te[1] = a * f; - te[5] = a * e; - te[9] = -b; - te[2] = cf * b - de; - te[6] = df + ce * b; - te[10] = a * c; - } else if (euler.order === 'ZXY') { - var _ce = c * e, - _cf = c * f, - _de = d * e, - _df = d * f; - te[0] = _ce - _df * b; - te[4] = -a * f; - te[8] = _de + _cf * b; - te[1] = _cf + _de * b; - te[5] = a * e; - te[9] = _df - _ce * b; - te[2] = -a * d; - te[6] = b; - te[10] = a * c; - } else if (euler.order === 'ZYX') { - var _ae = a * e, - _af = a * f, - _be = b * e, - _bf = b * f; - te[0] = c * e; - te[4] = _be * d - _af; - te[8] = _ae * d + _bf; - te[1] = c * f; - te[5] = _bf * d + _ae; - te[9] = _af * d - _be; - te[2] = -d; - te[6] = b * c; - te[10] = a * c; - } else if (euler.order === 'YZX') { - var ac = a * c, - ad = a * d, - bc = b * c, - bd = b * d; - te[0] = c * e; - te[4] = bd - ac * f; - te[8] = bc * f + ad; - te[1] = f; - te[5] = a * e; - te[9] = -b * e; - te[2] = -d * e; - te[6] = ad * f + bc; - te[10] = ac - bd * f; - } else if (euler.order === 'XZY') { - var _ac = a * c, - _ad = a * d, - _bc = b * c, - _bd = b * d; - te[0] = c * e; - te[4] = -f; - te[8] = d * e; - te[1] = _ac * f + _bd; - te[5] = a * e; - te[9] = _ad * f - _bc; - te[2] = _bc * f - _ad; - te[6] = b * e; - te[10] = _bd * f + _ac; - } - te[3] = 0; - te[7] = 0; - te[11] = 0; - te[12] = 0; - te[13] = 0; - te[14] = 0; - te[15] = 1; - return this; - }; - _proto.makeRotationFromQuaternion = function makeRotationFromQuaternion(q) { - return this.compose(_zero, q, _one); - }; - _proto.lookAt = function lookAt(eye, target, up) { - var te = this.elements; - _z.subVectors(eye, target); - if (_z.lengthSq() === 0) { - _z.z = 1; - } - _z.normalize(); - _x.crossVectors(up, _z); - if (_x.lengthSq() === 0) { - if (Math.abs(up.z) === 1) { - _z.x += 0.0001; - } else { - _z.z += 0.0001; - } - _z.normalize(); - _x.crossVectors(up, _z); - } - _x.normalize(); - _y.crossVectors(_z, _x); - te[0] = _x.x; - te[4] = _y.x; - te[8] = _z.x; - te[1] = _x.y; - te[5] = _y.y; - te[9] = _z.y; - te[2] = _x.z; - te[6] = _y.z; - te[10] = _z.z; - return this; - }; - _proto.multiply = function multiply(m, n) { - if (n !== undefined) { - console.warn('THREE.Matrix4: .multiply() now only accepts one argument. Use .multiplyMatrices( a, b ) instead.'); - return this.multiplyMatrices(m, n); - } - return this.multiplyMatrices(this, m); - }; - _proto.premultiply = function premultiply(m) { - return this.multiplyMatrices(m, this); - }; - _proto.multiplyMatrices = function multiplyMatrices(a, b) { - var ae = a.elements; - var be = b.elements; - var te = this.elements; - var a11 = ae[0], - a12 = ae[4], - a13 = ae[8], - a14 = ae[12]; - var a21 = ae[1], - a22 = ae[5], - a23 = ae[9], - a24 = ae[13]; - var a31 = ae[2], - a32 = ae[6], - a33 = ae[10], - a34 = ae[14]; - var a41 = ae[3], - a42 = ae[7], - a43 = ae[11], - a44 = ae[15]; - var b11 = be[0], - b12 = be[4], - b13 = be[8], - b14 = be[12]; - var b21 = be[1], - b22 = be[5], - b23 = be[9], - b24 = be[13]; - var b31 = be[2], - b32 = be[6], - b33 = be[10], - b34 = be[14]; - var b41 = be[3], - b42 = be[7], - b43 = be[11], - b44 = be[15]; - te[0] = a11 * b11 + a12 * b21 + a13 * b31 + a14 * b41; - te[4] = a11 * b12 + a12 * b22 + a13 * b32 + a14 * b42; - te[8] = a11 * b13 + a12 * b23 + a13 * b33 + a14 * b43; - te[12] = a11 * b14 + a12 * b24 + a13 * b34 + a14 * b44; - te[1] = a21 * b11 + a22 * b21 + a23 * b31 + a24 * b41; - te[5] = a21 * b12 + a22 * b22 + a23 * b32 + a24 * b42; - te[9] = a21 * b13 + a22 * b23 + a23 * b33 + a24 * b43; - te[13] = a21 * b14 + a22 * b24 + a23 * b34 + a24 * b44; - te[2] = a31 * b11 + a32 * b21 + a33 * b31 + a34 * b41; - te[6] = a31 * b12 + a32 * b22 + a33 * b32 + a34 * b42; - te[10] = a31 * b13 + a32 * b23 + a33 * b33 + a34 * b43; - te[14] = a31 * b14 + a32 * b24 + a33 * b34 + a34 * b44; - te[3] = a41 * b11 + a42 * b21 + a43 * b31 + a44 * b41; - te[7] = a41 * b12 + a42 * b22 + a43 * b32 + a44 * b42; - te[11] = a41 * b13 + a42 * b23 + a43 * b33 + a44 * b43; - te[15] = a41 * b14 + a42 * b24 + a43 * b34 + a44 * b44; - return this; - }; - _proto.multiplyScalar = function multiplyScalar(s) { - var te = this.elements; - te[0] *= s; - te[4] *= s; - te[8] *= s; - te[12] *= s; - te[1] *= s; - te[5] *= s; - te[9] *= s; - te[13] *= s; - te[2] *= s; - te[6] *= s; - te[10] *= s; - te[14] *= s; - te[3] *= s; - te[7] *= s; - te[11] *= s; - te[15] *= s; - return this; - }; - _proto.determinant = function determinant() { - var te = this.elements; - var n11 = te[0], - n12 = te[4], - n13 = te[8], - n14 = te[12]; - var n21 = te[1], - n22 = te[5], - n23 = te[9], - n24 = te[13]; - var n31 = te[2], - n32 = te[6], - n33 = te[10], - n34 = te[14]; - var n41 = te[3], - n42 = te[7], - n43 = te[11], - n44 = te[15]; - return n41 * (+n14 * n23 * n32 - n13 * n24 * n32 - n14 * n22 * n33 + n12 * n24 * n33 + n13 * n22 * n34 - n12 * n23 * n34) + n42 * (+n11 * n23 * n34 - n11 * n24 * n33 + n14 * n21 * n33 - n13 * n21 * n34 + n13 * n24 * n31 - n14 * n23 * n31) + n43 * (+n11 * n24 * n32 - n11 * n22 * n34 - n14 * n21 * n32 + n12 * n21 * n34 + n14 * n22 * n31 - n12 * n24 * n31) + n44 * (-n13 * n22 * n31 - n11 * n23 * n32 + n11 * n22 * n33 + n13 * n21 * n32 - n12 * n21 * n33 + n12 * n23 * n31); - }; - _proto.transpose = function transpose() { - var te = this.elements; - var tmp; - tmp = te[1]; - te[1] = te[4]; - te[4] = tmp; - tmp = te[2]; - te[2] = te[8]; - te[8] = tmp; - tmp = te[6]; - te[6] = te[9]; - te[9] = tmp; - tmp = te[3]; - te[3] = te[12]; - te[12] = tmp; - tmp = te[7]; - te[7] = te[13]; - te[13] = tmp; - tmp = te[11]; - te[11] = te[14]; - te[14] = tmp; - return this; - }; - _proto.setPosition = function setPosition(x, y, z) { - var te = this.elements; - if (x.isVector3) { - te[12] = x.x; - te[13] = x.y; - te[14] = x.z; - } else { - te[12] = x; - te[13] = y; - te[14] = z; - } - return this; - }; - _proto.invert = function invert() { - var te = this.elements, - n11 = te[0], - n21 = te[1], - n31 = te[2], - n41 = te[3], - n12 = te[4], - n22 = te[5], - n32 = te[6], - n42 = te[7], - n13 = te[8], - n23 = te[9], - n33 = te[10], - n43 = te[11], - n14 = te[12], - n24 = te[13], - n34 = te[14], - n44 = te[15], - t11 = n23 * n34 * n42 - n24 * n33 * n42 + n24 * n32 * n43 - n22 * n34 * n43 - n23 * n32 * n44 + n22 * n33 * n44, - t12 = n14 * n33 * n42 - n13 * n34 * n42 - n14 * n32 * n43 + n12 * n34 * n43 + n13 * n32 * n44 - n12 * n33 * n44, - t13 = n13 * n24 * n42 - n14 * n23 * n42 + n14 * n22 * n43 - n12 * n24 * n43 - n13 * n22 * n44 + n12 * n23 * n44, - t14 = n14 * n23 * n32 - n13 * n24 * n32 - n14 * n22 * n33 + n12 * n24 * n33 + n13 * n22 * n34 - n12 * n23 * n34; - var det = n11 * t11 + n21 * t12 + n31 * t13 + n41 * t14; - if (det === 0) return this.set(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); - var detInv = 1 / det; - te[0] = t11 * detInv; - te[1] = (n24 * n33 * n41 - n23 * n34 * n41 - n24 * n31 * n43 + n21 * n34 * n43 + n23 * n31 * n44 - n21 * n33 * n44) * detInv; - te[2] = (n22 * n34 * n41 - n24 * n32 * n41 + n24 * n31 * n42 - n21 * n34 * n42 - n22 * n31 * n44 + n21 * n32 * n44) * detInv; - te[3] = (n23 * n32 * n41 - n22 * n33 * n41 - n23 * n31 * n42 + n21 * n33 * n42 + n22 * n31 * n43 - n21 * n32 * n43) * detInv; - te[4] = t12 * detInv; - te[5] = (n13 * n34 * n41 - n14 * n33 * n41 + n14 * n31 * n43 - n11 * n34 * n43 - n13 * n31 * n44 + n11 * n33 * n44) * detInv; - te[6] = (n14 * n32 * n41 - n12 * n34 * n41 - n14 * n31 * n42 + n11 * n34 * n42 + n12 * n31 * n44 - n11 * n32 * n44) * detInv; - te[7] = (n12 * n33 * n41 - n13 * n32 * n41 + n13 * n31 * n42 - n11 * n33 * n42 - n12 * n31 * n43 + n11 * n32 * n43) * detInv; - te[8] = t13 * detInv; - te[9] = (n14 * n23 * n41 - n13 * n24 * n41 - n14 * n21 * n43 + n11 * n24 * n43 + n13 * n21 * n44 - n11 * n23 * n44) * detInv; - te[10] = (n12 * n24 * n41 - n14 * n22 * n41 + n14 * n21 * n42 - n11 * n24 * n42 - n12 * n21 * n44 + n11 * n22 * n44) * detInv; - te[11] = (n13 * n22 * n41 - n12 * n23 * n41 - n13 * n21 * n42 + n11 * n23 * n42 + n12 * n21 * n43 - n11 * n22 * n43) * detInv; - te[12] = t14 * detInv; - te[13] = (n13 * n24 * n31 - n14 * n23 * n31 + n14 * n21 * n33 - n11 * n24 * n33 - n13 * n21 * n34 + n11 * n23 * n34) * detInv; - te[14] = (n14 * n22 * n31 - n12 * n24 * n31 - n14 * n21 * n32 + n11 * n24 * n32 + n12 * n21 * n34 - n11 * n22 * n34) * detInv; - te[15] = (n12 * n23 * n31 - n13 * n22 * n31 + n13 * n21 * n32 - n11 * n23 * n32 - n12 * n21 * n33 + n11 * n22 * n33) * detInv; - return this; - }; - _proto.scale = function scale(v) { - var te = this.elements; - var x = v.x, - y = v.y, - z = v.z; - te[0] *= x; - te[4] *= y; - te[8] *= z; - te[1] *= x; - te[5] *= y; - te[9] *= z; - te[2] *= x; - te[6] *= y; - te[10] *= z; - te[3] *= x; - te[7] *= y; - te[11] *= z; - return this; - }; - _proto.getMaxScaleOnAxis = function getMaxScaleOnAxis() { - var te = this.elements; - var scaleXSq = te[0] * te[0] + te[1] * te[1] + te[2] * te[2]; - var scaleYSq = te[4] * te[4] + te[5] * te[5] + te[6] * te[6]; - var scaleZSq = te[8] * te[8] + te[9] * te[9] + te[10] * te[10]; - return Math.sqrt(Math.max(scaleXSq, scaleYSq, scaleZSq)); - }; - _proto.makeTranslation = function makeTranslation(x, y, z) { - this.set(1, 0, 0, x, 0, 1, 0, y, 0, 0, 1, z, 0, 0, 0, 1); - return this; - }; - _proto.makeRotationX = function makeRotationX(theta) { - var c = Math.cos(theta), - s = Math.sin(theta); - this.set(1, 0, 0, 0, 0, c, -s, 0, 0, s, c, 0, 0, 0, 0, 1); - return this; - }; - _proto.makeRotationY = function makeRotationY(theta) { - var c = Math.cos(theta), - s = Math.sin(theta); - this.set(c, 0, s, 0, 0, 1, 0, 0, -s, 0, c, 0, 0, 0, 0, 1); - return this; - }; - _proto.makeRotationZ = function makeRotationZ(theta) { - var c = Math.cos(theta), - s = Math.sin(theta); - this.set(c, -s, 0, 0, s, c, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); - return this; - }; - _proto.makeRotationAxis = function makeRotationAxis(axis, angle) { - var c = Math.cos(angle); - var s = Math.sin(angle); - var t = 1 - c; - var x = axis.x, - y = axis.y, - z = axis.z; - var tx = t * x, - ty = t * y; - this.set(tx * x + c, tx * y - s * z, tx * z + s * y, 0, tx * y + s * z, ty * y + c, ty * z - s * x, 0, tx * z - s * y, ty * z + s * x, t * z * z + c, 0, 0, 0, 0, 1); - return this; - }; - _proto.makeScale = function makeScale(x, y, z) { - this.set(x, 0, 0, 0, 0, y, 0, 0, 0, 0, z, 0, 0, 0, 0, 1); - return this; - }; - _proto.makeShear = function makeShear(x, y, z) { - this.set(1, y, z, 0, x, 1, z, 0, x, y, 1, 0, 0, 0, 0, 1); - return this; - }; - _proto.compose = function compose(position, quaternion, scale) { - var te = this.elements; - var x = quaternion._x, - y = quaternion._y, - z = quaternion._z, - w = quaternion._w; - var x2 = x + x, - y2 = y + y, - z2 = z + z; - var xx = x * x2, - xy = x * y2, - xz = x * z2; - var yy = y * y2, - yz = y * z2, - zz = z * z2; - var wx = w * x2, - wy = w * y2, - wz = w * z2; - var sx = scale.x, - sy = scale.y, - sz = scale.z; - te[0] = (1 - (yy + zz)) * sx; - te[1] = (xy + wz) * sx; - te[2] = (xz - wy) * sx; - te[3] = 0; - te[4] = (xy - wz) * sy; - te[5] = (1 - (xx + zz)) * sy; - te[6] = (yz + wx) * sy; - te[7] = 0; - te[8] = (xz + wy) * sz; - te[9] = (yz - wx) * sz; - te[10] = (1 - (xx + yy)) * sz; - te[11] = 0; - te[12] = position.x; - te[13] = position.y; - te[14] = position.z; - te[15] = 1; - return this; - }; - _proto.decompose = function decompose(position, quaternion, scale) { - var te = this.elements; - var sx = _v1$1.set(te[0], te[1], te[2]).length(); - var sy = _v1$1.set(te[4], te[5], te[6]).length(); - var sz = _v1$1.set(te[8], te[9], te[10]).length(); - var det = this.determinant(); - if (det < 0) sx = -sx; - position.x = te[12]; - position.y = te[13]; - position.z = te[14]; - _m1.copy(this); - var invSX = 1 / sx; - var invSY = 1 / sy; - var invSZ = 1 / sz; - _m1.elements[0] *= invSX; - _m1.elements[1] *= invSX; - _m1.elements[2] *= invSX; - _m1.elements[4] *= invSY; - _m1.elements[5] *= invSY; - _m1.elements[6] *= invSY; - _m1.elements[8] *= invSZ; - _m1.elements[9] *= invSZ; - _m1.elements[10] *= invSZ; - quaternion.setFromRotationMatrix(_m1); - scale.x = sx; - scale.y = sy; - scale.z = sz; - return this; - }; - _proto.makePerspective = function makePerspective(left, right, top, bottom, near, far) { - if (far === undefined) { - console.warn('THREE.Matrix4: .makePerspective() has been redefined and has a new signature. Please check the docs.'); - } - var te = this.elements; - var x = 2 * near / (right - left); - var y = 2 * near / (top - bottom); - var a = (right + left) / (right - left); - var b = (top + bottom) / (top - bottom); - var c = -(far + near) / (far - near); - var d = -2 * far * near / (far - near); - te[0] = x; - te[4] = 0; - te[8] = a; - te[12] = 0; - te[1] = 0; - te[5] = y; - te[9] = b; - te[13] = 0; - te[2] = 0; - te[6] = 0; - te[10] = c; - te[14] = d; - te[3] = 0; - te[7] = 0; - te[11] = -1; - te[15] = 0; - return this; - }; - _proto.makeOrthographic = function makeOrthographic(left, right, top, bottom, near, far) { - var te = this.elements; - var w = 1.0 / (right - left); - var h = 1.0 / (top - bottom); - var p = 1.0 / (far - near); - var x = (right + left) * w; - var y = (top + bottom) * h; - var z = (far + near) * p; - te[0] = 2 * w; - te[4] = 0; - te[8] = 0; - te[12] = -x; - te[1] = 0; - te[5] = 2 * h; - te[9] = 0; - te[13] = -y; - te[2] = 0; - te[6] = 0; - te[10] = -2 * p; - te[14] = -z; - te[3] = 0; - te[7] = 0; - te[11] = 0; - te[15] = 1; - return this; - }; - _proto.equals = function equals(matrix) { - var te = this.elements; - var me = matrix.elements; - for (var i = 0; i < 16; i++) { - if (te[i] !== me[i]) return false; - } - return true; - }; - _proto.fromArray = function fromArray(array, offset) { - if (offset === void 0) { - offset = 0; - } - for (var i = 0; i < 16; i++) { - this.elements[i] = array[i + offset]; - } - return this; - }; - _proto.toArray = function toArray(array, offset) { - if (array === void 0) { - array = []; - } - if (offset === void 0) { - offset = 0; - } - var te = this.elements; - array[offset] = te[0]; - array[offset + 1] = te[1]; - array[offset + 2] = te[2]; - array[offset + 3] = te[3]; - array[offset + 4] = te[4]; - array[offset + 5] = te[5]; - array[offset + 6] = te[6]; - array[offset + 7] = te[7]; - array[offset + 8] = te[8]; - array[offset + 9] = te[9]; - array[offset + 10] = te[10]; - array[offset + 11] = te[11]; - array[offset + 12] = te[12]; - array[offset + 13] = te[13]; - array[offset + 14] = te[14]; - array[offset + 15] = te[15]; - return array; - }; - return Matrix4; - }(); - var _v1$1 = /*@__PURE__*/new Vector3(); - var _m1 = /*@__PURE__*/new Matrix4(); - var _zero = /*@__PURE__*/new Vector3(0, 0, 0); - var _one = /*@__PURE__*/new Vector3(1, 1, 1); - var _x = /*@__PURE__*/new Vector3(); - var _y = /*@__PURE__*/new Vector3(); - var _z = /*@__PURE__*/new Vector3(); - var Euler = /*#__PURE__*/function () { - function Euler(x, y, z, order) { - if (x === void 0) { - x = 0; - } - if (y === void 0) { - y = 0; - } - if (z === void 0) { - z = 0; - } - if (order === void 0) { - order = Euler.DefaultOrder; - } - Object.defineProperty(this, 'isEuler', { - value: true - }); - this._x = x; - this._y = y; - this._z = z; - this._order = order; - } - var _proto = Euler.prototype; - _proto.set = function set(x, y, z, order) { - this._x = x; - this._y = y; - this._z = z; - this._order = order || this._order; - this._onChangeCallback(); - return this; - }; - _proto.clone = function clone() { - return new this.constructor(this._x, this._y, this._z, this._order); - }; - _proto.copy = function copy(euler) { - this._x = euler._x; - this._y = euler._y; - this._z = euler._z; - this._order = euler._order; - this._onChangeCallback(); - return this; - }; - _proto.setFromRotationMatrix = function setFromRotationMatrix(m, order, update) { - var clamp = MathUtils.clamp; // assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled) - var te = m.elements; - var m11 = te[0], - m12 = te[4], - m13 = te[8]; - var m21 = te[1], - m22 = te[5], - m23 = te[9]; - var m31 = te[2], - m32 = te[6], - m33 = te[10]; - order = order || this._order; - switch (order) { - case 'XYZ': - this._y = Math.asin(clamp(m13, -1, 1)); - if (Math.abs(m13) < 0.9999999) { - this._x = Math.atan2(-m23, m33); - this._z = Math.atan2(-m12, m11); - } else { - this._x = Math.atan2(m32, m22); - this._z = 0; - } - break; - case 'YXZ': - this._x = Math.asin(-clamp(m23, -1, 1)); - if (Math.abs(m23) < 0.9999999) { - this._y = Math.atan2(m13, m33); - this._z = Math.atan2(m21, m22); - } else { - this._y = Math.atan2(-m31, m11); - this._z = 0; - } - break; - case 'ZXY': - this._x = Math.asin(clamp(m32, -1, 1)); - if (Math.abs(m32) < 0.9999999) { - this._y = Math.atan2(-m31, m33); - this._z = Math.atan2(-m12, m22); - } else { - this._y = 0; - this._z = Math.atan2(m21, m11); - } - break; - case 'ZYX': - this._y = Math.asin(-clamp(m31, -1, 1)); - if (Math.abs(m31) < 0.9999999) { - this._x = Math.atan2(m32, m33); - this._z = Math.atan2(m21, m11); - } else { - this._x = 0; - this._z = Math.atan2(-m12, m22); - } - break; - case 'YZX': - this._z = Math.asin(clamp(m21, -1, 1)); - if (Math.abs(m21) < 0.9999999) { - this._x = Math.atan2(-m23, m22); - this._y = Math.atan2(-m31, m11); - } else { - this._x = 0; - this._y = Math.atan2(m13, m33); - } - break; - case 'XZY': - this._z = Math.asin(-clamp(m12, -1, 1)); - if (Math.abs(m12) < 0.9999999) { - this._x = Math.atan2(m32, m22); - this._y = Math.atan2(m13, m11); - } else { - this._x = Math.atan2(-m23, m33); - this._y = 0; - } - break; - default: - console.warn('THREE.Euler: .setFromRotationMatrix() encountered an unknown order: ' + order); - } - this._order = order; - if (update !== false) this._onChangeCallback(); - return this; - }; - _proto.setFromQuaternion = function setFromQuaternion(q, order, update) { - _matrix.makeRotationFromQuaternion(q); - return this.setFromRotationMatrix(_matrix, order, update); - }; - _proto.setFromVector3 = function setFromVector3(v, order) { - return this.set(v.x, v.y, v.z, order || this._order); - }; - _proto.reorder = function reorder(newOrder) { - // WARNING: this discards revolution information -bhouston - _quaternion$1.setFromEuler(this); - return this.setFromQuaternion(_quaternion$1, newOrder); - }; - _proto.equals = function equals(euler) { - return euler._x === this._x && euler._y === this._y && euler._z === this._z && euler._order === this._order; - }; - _proto.fromArray = function fromArray(array) { - this._x = array[0]; - this._y = array[1]; - this._z = array[2]; - if (array[3] !== undefined) this._order = array[3]; - this._onChangeCallback(); - return this; - }; - _proto.toArray = function toArray(array, offset) { - if (array === void 0) { - array = []; - } - if (offset === void 0) { - offset = 0; - } - array[offset] = this._x; - array[offset + 1] = this._y; - array[offset + 2] = this._z; - array[offset + 3] = this._order; - return array; - }; - _proto.toVector3 = function toVector3(optionalResult) { - if (optionalResult) { - return optionalResult.set(this._x, this._y, this._z); - } else { - return new Vector3(this._x, this._y, this._z); - } - }; - _proto._onChange = function _onChange(callback) { - this._onChangeCallback = callback; - return this; - }; - _proto._onChangeCallback = function _onChangeCallback() {}; - _createClass(Euler, [{ - key: "x", - get: function get() { - return this._x; - }, - set: function set(value) { - this._x = value; - this._onChangeCallback(); - } - }, { - key: "y", - get: function get() { - return this._y; - }, - set: function set(value) { - this._y = value; - this._onChangeCallback(); - } - }, { - key: "z", - get: function get() { - return this._z; - }, - set: function set(value) { - this._z = value; - this._onChangeCallback(); - } - }, { - key: "order", - get: function get() { - return this._order; - }, - set: function set(value) { - this._order = value; - this._onChangeCallback(); - } - }]); - return Euler; - }(); - Euler.DefaultOrder = 'XYZ'; - Euler.RotationOrders = ['XYZ', 'YZX', 'ZXY', 'XZY', 'YXZ', 'ZYX']; - var _matrix = /*@__PURE__*/new Matrix4(); - var _quaternion$1 = /*@__PURE__*/new Quaternion(); - var Layers = /*#__PURE__*/function () { - function Layers() { - this.mask = 1 | 0; - } - var _proto = Layers.prototype; - _proto.set = function set(channel) { - this.mask = 1 << channel | 0; - }; - _proto.enable = function enable(channel) { - this.mask |= 1 << channel | 0; - }; - _proto.enableAll = function enableAll() { - this.mask = 0xffffffff | 0; - }; - _proto.toggle = function toggle(channel) { - this.mask ^= 1 << channel | 0; - }; - _proto.disable = function disable(channel) { - this.mask &= ~(1 << channel | 0); - }; - _proto.disableAll = function disableAll() { - this.mask = 0; - }; - _proto.test = function test(layers) { - return (this.mask & layers.mask) !== 0; - }; - return Layers; - }(); - var _object3DId = 0; - var _v1$2 = new Vector3(); - var _q1 = new Quaternion(); - var _m1$1 = new Matrix4(); - var _target = new Vector3(); - var _position = new Vector3(); - var _scale = new Vector3(); - var _quaternion$2 = new Quaternion(); - var _xAxis = new Vector3(1, 0, 0); - var _yAxis = new Vector3(0, 1, 0); - var _zAxis = new Vector3(0, 0, 1); - var _addedEvent = { - type: 'added' - }; - var _removedEvent = { - type: 'removed' - }; - function Object3D() { - Object.defineProperty(this, 'id', { - value: _object3DId++ - }); - this.uuid = MathUtils.generateUUID(); - this.name = ''; - this.type = 'Object3D'; - this.parent = null; - this.children = []; - this.up = Object3D.DefaultUp.clone(); - var position = new Vector3(); - var rotation = new Euler(); - var quaternion = new Quaternion(); - var scale = new Vector3(1, 1, 1); - function onRotationChange() { - quaternion.setFromEuler(rotation, false); - } - function onQuaternionChange() { - rotation.setFromQuaternion(quaternion, undefined, false); - } - rotation._onChange(onRotationChange); - quaternion._onChange(onQuaternionChange); - Object.defineProperties(this, { - position: { - configurable: true, - enumerable: true, - value: position - }, - rotation: { - configurable: true, - enumerable: true, - value: rotation - }, - quaternion: { - configurable: true, - enumerable: true, - value: quaternion - }, - scale: { - configurable: true, - enumerable: true, - value: scale - }, - modelViewMatrix: { - value: new Matrix4() - }, - normalMatrix: { - value: new Matrix3() - } - }); - this.matrix = new Matrix4(); - this.matrixWorld = new Matrix4(); - this.matrixAutoUpdate = Object3D.DefaultMatrixAutoUpdate; - this.matrixWorldNeedsUpdate = false; - this.layers = new Layers(); - this.visible = true; - this.castShadow = false; - this.receiveShadow = false; - this.frustumCulled = true; - this.renderOrder = 0; - this.animations = []; - this.userData = {}; - } - Object3D.DefaultUp = new Vector3(0, 1, 0); - Object3D.DefaultMatrixAutoUpdate = true; - Object3D.prototype = Object.assign(Object.create(EventDispatcher.prototype), { - constructor: Object3D, - isObject3D: true, - onBeforeRender: function onBeforeRender() {}, - onAfterRender: function onAfterRender() {}, - applyMatrix4: function applyMatrix4(matrix) { - if (this.matrixAutoUpdate) this.updateMatrix(); - this.matrix.premultiply(matrix); - this.matrix.decompose(this.position, this.quaternion, this.scale); - }, - applyQuaternion: function applyQuaternion(q) { - this.quaternion.premultiply(q); - return this; - }, - setRotationFromAxisAngle: function setRotationFromAxisAngle(axis, angle) { - // assumes axis is normalized - this.quaternion.setFromAxisAngle(axis, angle); - }, - setRotationFromEuler: function setRotationFromEuler(euler) { - this.quaternion.setFromEuler(euler, true); - }, - setRotationFromMatrix: function setRotationFromMatrix(m) { - // assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled) - this.quaternion.setFromRotationMatrix(m); - }, - setRotationFromQuaternion: function setRotationFromQuaternion(q) { - // assumes q is normalized - this.quaternion.copy(q); - }, - rotateOnAxis: function rotateOnAxis(axis, angle) { - // rotate object on axis in object space - // axis is assumed to be normalized - _q1.setFromAxisAngle(axis, angle); - this.quaternion.multiply(_q1); - return this; - }, - rotateOnWorldAxis: function rotateOnWorldAxis(axis, angle) { - // rotate object on axis in world space - // axis is assumed to be normalized - // method assumes no rotated parent - _q1.setFromAxisAngle(axis, angle); - this.quaternion.premultiply(_q1); - return this; - }, - rotateX: function rotateX(angle) { - return this.rotateOnAxis(_xAxis, angle); - }, - rotateY: function rotateY(angle) { - return this.rotateOnAxis(_yAxis, angle); - }, - rotateZ: function rotateZ(angle) { - return this.rotateOnAxis(_zAxis, angle); - }, - translateOnAxis: function translateOnAxis(axis, distance) { - // translate object by distance along axis in object space - // axis is assumed to be normalized - _v1$2.copy(axis).applyQuaternion(this.quaternion); - this.position.add(_v1$2.multiplyScalar(distance)); - return this; - }, - translateX: function translateX(distance) { - return this.translateOnAxis(_xAxis, distance); - }, - translateY: function translateY(distance) { - return this.translateOnAxis(_yAxis, distance); - }, - translateZ: function translateZ(distance) { - return this.translateOnAxis(_zAxis, distance); - }, - localToWorld: function localToWorld(vector) { - return vector.applyMatrix4(this.matrixWorld); - }, - worldToLocal: function worldToLocal(vector) { - return vector.applyMatrix4(_m1$1.copy(this.matrixWorld).invert()); - }, - lookAt: function lookAt(x, y, z) { - // This method does not support objects having non-uniformly-scaled parent(s) - if (x.isVector3) { - _target.copy(x); - } else { - _target.set(x, y, z); - } - var parent = this.parent; - this.updateWorldMatrix(true, false); - _position.setFromMatrixPosition(this.matrixWorld); - if (this.isCamera || this.isLight) { - _m1$1.lookAt(_position, _target, this.up); - } else { - _m1$1.lookAt(_target, _position, this.up); - } - this.quaternion.setFromRotationMatrix(_m1$1); - if (parent) { - _m1$1.extractRotation(parent.matrixWorld); - _q1.setFromRotationMatrix(_m1$1); - this.quaternion.premultiply(_q1.invert()); - } - }, - add: function add(object) { - if (arguments.length > 1) { - for (var i = 0; i < arguments.length; i++) { - this.add(arguments[i]); - } - return this; - } - if (object === this) { - console.error('THREE.Object3D.add: object can\'t be added as a child of itself.', object); - return this; - } - if (object && object.isObject3D) { - if (object.parent !== null) { - object.parent.remove(object); - } - object.parent = this; - this.children.push(object); - object.dispatchEvent(_addedEvent); - } else { - console.error('THREE.Object3D.add: object not an instance of THREE.Object3D.', object); - } - return this; - }, - remove: function remove(object) { - if (arguments.length > 1) { - for (var i = 0; i < arguments.length; i++) { - this.remove(arguments[i]); - } - return this; - } - var index = this.children.indexOf(object); - if (index !== -1) { - object.parent = null; - this.children.splice(index, 1); - object.dispatchEvent(_removedEvent); - } - return this; - }, - clear: function clear() { - for (var i = 0; i < this.children.length; i++) { - var object = this.children[i]; - object.parent = null; - object.dispatchEvent(_removedEvent); - } - this.children.length = 0; - return this; - }, - attach: function attach(object) { - // adds object as a child of this, while maintaining the object's world transform - this.updateWorldMatrix(true, false); - _m1$1.copy(this.matrixWorld).invert(); - if (object.parent !== null) { - object.parent.updateWorldMatrix(true, false); - _m1$1.multiply(object.parent.matrixWorld); - } - object.applyMatrix4(_m1$1); - object.updateWorldMatrix(false, false); - this.add(object); - return this; - }, - getObjectById: function getObjectById(id) { - return this.getObjectByProperty('id', id); - }, - getObjectByName: function getObjectByName(name) { - return this.getObjectByProperty('name', name); - }, - getObjectByProperty: function getObjectByProperty(name, value) { - if (this[name] === value) return this; - for (var i = 0, l = this.children.length; i < l; i++) { - var child = this.children[i]; - var object = child.getObjectByProperty(name, value); - if (object !== undefined) { - return object; - } - } - return undefined; - }, - getWorldPosition: function getWorldPosition(target) { - if (target === undefined) { - console.warn('THREE.Object3D: .getWorldPosition() target is now required'); - target = new Vector3(); - } - this.updateWorldMatrix(true, false); - return target.setFromMatrixPosition(this.matrixWorld); - }, - getWorldQuaternion: function getWorldQuaternion(target) { - if (target === undefined) { - console.warn('THREE.Object3D: .getWorldQuaternion() target is now required'); - target = new Quaternion(); - } - this.updateWorldMatrix(true, false); - this.matrixWorld.decompose(_position, target, _scale); - return target; - }, - getWorldScale: function getWorldScale(target) { - if (target === undefined) { - console.warn('THREE.Object3D: .getWorldScale() target is now required'); - target = new Vector3(); - } - this.updateWorldMatrix(true, false); - this.matrixWorld.decompose(_position, _quaternion$2, target); - return target; - }, - getWorldDirection: function getWorldDirection(target) { - if (target === undefined) { - console.warn('THREE.Object3D: .getWorldDirection() target is now required'); - target = new Vector3(); - } - this.updateWorldMatrix(true, false); - var e = this.matrixWorld.elements; - return target.set(e[8], e[9], e[10]).normalize(); - }, - raycast: function raycast() {}, - traverse: function traverse(callback) { - callback(this); - var children = this.children; - for (var i = 0, l = children.length; i < l; i++) { - children[i].traverse(callback); - } - }, - traverseVisible: function traverseVisible(callback) { - if (this.visible === false) return; - callback(this); - var children = this.children; - for (var i = 0, l = children.length; i < l; i++) { - children[i].traverseVisible(callback); - } - }, - traverseAncestors: function traverseAncestors(callback) { - var parent = this.parent; - if (parent !== null) { - callback(parent); - parent.traverseAncestors(callback); - } - }, - updateMatrix: function updateMatrix() { - this.matrix.compose(this.position, this.quaternion, this.scale); - this.matrixWorldNeedsUpdate = true; - }, - updateMatrixWorld: function updateMatrixWorld(force) { - if (this.matrixAutoUpdate) this.updateMatrix(); - if (this.matrixWorldNeedsUpdate || force) { - if (this.parent === null) { - this.matrixWorld.copy(this.matrix); - } else { - this.matrixWorld.multiplyMatrices(this.parent.matrixWorld, this.matrix); - } - this.matrixWorldNeedsUpdate = false; - force = true; - } // update children - - var children = this.children; - for (var i = 0, l = children.length; i < l; i++) { - children[i].updateMatrixWorld(force); - } - }, - updateWorldMatrix: function updateWorldMatrix(updateParents, updateChildren) { - var parent = this.parent; - if (updateParents === true && parent !== null) { - parent.updateWorldMatrix(true, false); - } - if (this.matrixAutoUpdate) this.updateMatrix(); - if (this.parent === null) { - this.matrixWorld.copy(this.matrix); - } else { - this.matrixWorld.multiplyMatrices(this.parent.matrixWorld, this.matrix); - } // update children - - if (updateChildren === true) { - var children = this.children; - for (var i = 0, l = children.length; i < l; i++) { - children[i].updateWorldMatrix(false, true); - } - } - }, - toJSON: function toJSON(meta) { - // meta is a string when called from JSON.stringify - var isRootObject = meta === undefined || typeof meta === 'string'; - var output = {}; // meta is a hash used to collect geometries, materials. - // not providing it implies that this is the root object - // being serialized. - if (isRootObject) { - // initialize meta obj - meta = { - geometries: {}, - materials: {}, - textures: {}, - images: {}, - shapes: {}, - skeletons: {}, - animations: {} - }; - output.metadata = { - version: 4.5, - type: 'Object', - generator: 'Object3D.toJSON' - }; - } // standard Object3D serialization - - var object = {}; - object.uuid = this.uuid; - object.type = this.type; - if (this.name !== '') object.name = this.name; - if (this.castShadow === true) object.castShadow = true; - if (this.receiveShadow === true) object.receiveShadow = true; - if (this.visible === false) object.visible = false; - if (this.frustumCulled === false) object.frustumCulled = false; - if (this.renderOrder !== 0) object.renderOrder = this.renderOrder; - if (JSON.stringify(this.userData) !== '{}') object.userData = this.userData; - object.layers = this.layers.mask; - object.matrix = this.matrix.toArray(); - if (this.matrixAutoUpdate === false) object.matrixAutoUpdate = false; // object specific properties - if (this.isInstancedMesh) { - object.type = 'InstancedMesh'; - object.count = this.count; - object.instanceMatrix = this.instanceMatrix.toJSON(); - } // - - function serialize(library, element) { - if (library[element.uuid] === undefined) { - library[element.uuid] = element.toJSON(meta); - } - return element.uuid; - } - if (this.isMesh || this.isLine || this.isPoints) { - object.geometry = serialize(meta.geometries, this.geometry); - var parameters = this.geometry.parameters; - if (parameters !== undefined && parameters.shapes !== undefined) { - var shapes = parameters.shapes; - if (Array.isArray(shapes)) { - for (var i = 0, l = shapes.length; i < l; i++) { - var shape = shapes[i]; - serialize(meta.shapes, shape); - } - } else { - serialize(meta.shapes, shapes); - } - } - } - if (this.isSkinnedMesh) { - object.bindMode = this.bindMode; - object.bindMatrix = this.bindMatrix.toArray(); - if (this.skeleton !== undefined) { - serialize(meta.skeletons, this.skeleton); - object.skeleton = this.skeleton.uuid; - } - } - if (this.material !== undefined) { - if (Array.isArray(this.material)) { - var uuids = []; - for (var _i = 0, _l = this.material.length; _i < _l; _i++) { - uuids.push(serialize(meta.materials, this.material[_i])); - } - object.material = uuids; - } else { - object.material = serialize(meta.materials, this.material); - } - } // - - if (this.children.length > 0) { - object.children = []; - for (var _i2 = 0; _i2 < this.children.length; _i2++) { - object.children.push(this.children[_i2].toJSON(meta).object); - } - } // - - if (this.animations.length > 0) { - object.animations = []; - for (var _i3 = 0; _i3 < this.animations.length; _i3++) { - var animation = this.animations[_i3]; - object.animations.push(serialize(meta.animations, animation)); - } - } - if (isRootObject) { - var geometries = extractFromCache(meta.geometries); - var materials = extractFromCache(meta.materials); - var textures = extractFromCache(meta.textures); - var images = extractFromCache(meta.images); - var _shapes = extractFromCache(meta.shapes); - var skeletons = extractFromCache(meta.skeletons); - var animations = extractFromCache(meta.animations); - if (geometries.length > 0) output.geometries = geometries; - if (materials.length > 0) output.materials = materials; - if (textures.length > 0) output.textures = textures; - if (images.length > 0) output.images = images; - if (_shapes.length > 0) output.shapes = _shapes; - if (skeletons.length > 0) output.skeletons = skeletons; - if (animations.length > 0) output.animations = animations; - } - output.object = object; - return output; // extract data from the cache hash - // remove metadata on each item - // and return as array - function extractFromCache(cache) { - var values = []; - for (var key in cache) { - var data = cache[key]; - delete data.metadata; - values.push(data); - } - return values; - } - }, - clone: function clone(recursive) { - return new this.constructor().copy(this, recursive); - }, - copy: function copy(source, recursive) { - if (recursive === void 0) { - recursive = true; - } - this.name = source.name; - this.up.copy(source.up); - this.position.copy(source.position); - this.rotation.order = source.rotation.order; - this.quaternion.copy(source.quaternion); - this.scale.copy(source.scale); - this.matrix.copy(source.matrix); - this.matrixWorld.copy(source.matrixWorld); - this.matrixAutoUpdate = source.matrixAutoUpdate; - this.matrixWorldNeedsUpdate = source.matrixWorldNeedsUpdate; - this.layers.mask = source.layers.mask; - this.visible = source.visible; - this.castShadow = source.castShadow; - this.receiveShadow = source.receiveShadow; - this.frustumCulled = source.frustumCulled; - this.renderOrder = source.renderOrder; - this.userData = JSON.parse(JSON.stringify(source.userData)); - if (recursive === true) { - for (var i = 0; i < source.children.length; i++) { - var child = source.children[i]; - this.add(child.clone()); - } - } - return this; - } - }); - var _vector1 = /*@__PURE__*/new Vector3(); - var _vector2 = /*@__PURE__*/new Vector3(); - var _normalMatrix = /*@__PURE__*/new Matrix3(); - var Plane = /*#__PURE__*/function () { - function Plane(normal, constant) { - Object.defineProperty(this, 'isPlane', { - value: true - }); // normal is assumed to be normalized - this.normal = normal !== undefined ? normal : new Vector3(1, 0, 0); - this.constant = constant !== undefined ? constant : 0; - } - var _proto = Plane.prototype; - _proto.set = function set(normal, constant) { - this.normal.copy(normal); - this.constant = constant; - return this; - }; - _proto.setComponents = function setComponents(x, y, z, w) { - this.normal.set(x, y, z); - this.constant = w; - return this; - }; - _proto.setFromNormalAndCoplanarPoint = function setFromNormalAndCoplanarPoint(normal, point) { - this.normal.copy(normal); - this.constant = -point.dot(this.normal); - return this; - }; - _proto.setFromCoplanarPoints = function setFromCoplanarPoints(a, b, c) { - var normal = _vector1.subVectors(c, b).cross(_vector2.subVectors(a, b)).normalize(); // Q: should an error be thrown if normal is zero (e.g. degenerate plane)? - - this.setFromNormalAndCoplanarPoint(normal, a); - return this; - }; - _proto.clone = function clone() { - return new this.constructor().copy(this); - }; - _proto.copy = function copy(plane) { - this.normal.copy(plane.normal); - this.constant = plane.constant; - return this; - }; - _proto.normalize = function normalize() { - // Note: will lead to a divide by zero if the plane is invalid. - var inverseNormalLength = 1.0 / this.normal.length(); - this.normal.multiplyScalar(inverseNormalLength); - this.constant *= inverseNormalLength; - return this; - }; - _proto.negate = function negate() { - this.constant *= -1; - this.normal.negate(); - return this; - }; - _proto.distanceToPoint = function distanceToPoint(point) { - return this.normal.dot(point) + this.constant; - }; - _proto.distanceToSphere = function distanceToSphere(sphere) { - return this.distanceToPoint(sphere.center) - sphere.radius; - }; - _proto.projectPoint = function projectPoint(point, target) { - if (target === undefined) { - console.warn('THREE.Plane: .projectPoint() target is now required'); - target = new Vector3(); - } - return target.copy(this.normal).multiplyScalar(-this.distanceToPoint(point)).add(point); - }; - _proto.intersectLine = function intersectLine(line, target) { - if (target === undefined) { - console.warn('THREE.Plane: .intersectLine() target is now required'); - target = new Vector3(); - } - var direction = line.delta(_vector1); - var denominator = this.normal.dot(direction); - if (denominator === 0) { - // line is coplanar, return origin - if (this.distanceToPoint(line.start) === 0) { - return target.copy(line.start); - } // Unsure if this is the correct method to handle this case. - - return undefined; - } - var t = -(line.start.dot(this.normal) + this.constant) / denominator; - if (t < 0 || t > 1) { - return undefined; - } - return target.copy(direction).multiplyScalar(t).add(line.start); - }; - _proto.intersectsLine = function intersectsLine(line) { - // Note: this tests if a line intersects the plane, not whether it (or its end-points) are coplanar with it. - var startSign = this.distanceToPoint(line.start); - var endSign = this.distanceToPoint(line.end); - return startSign < 0 && endSign > 0 || endSign < 0 && startSign > 0; - }; - _proto.intersectsBox = function intersectsBox(box) { - return box.intersectsPlane(this); - }; - _proto.intersectsSphere = function intersectsSphere(sphere) { - return sphere.intersectsPlane(this); - }; - _proto.coplanarPoint = function coplanarPoint(target) { - if (target === undefined) { - console.warn('THREE.Plane: .coplanarPoint() target is now required'); - target = new Vector3(); - } - return target.copy(this.normal).multiplyScalar(-this.constant); - }; - _proto.applyMatrix4 = function applyMatrix4(matrix, optionalNormalMatrix) { - var normalMatrix = optionalNormalMatrix || _normalMatrix.getNormalMatrix(matrix); - var referencePoint = this.coplanarPoint(_vector1).applyMatrix4(matrix); - var normal = this.normal.applyMatrix3(normalMatrix).normalize(); - this.constant = -referencePoint.dot(normal); - return this; - }; - _proto.translate = function translate(offset) { - this.constant -= offset.dot(this.normal); - return this; - }; - _proto.equals = function equals(plane) { - return plane.normal.equals(this.normal) && plane.constant === this.constant; - }; - return Plane; - }(); - var _v0$1 = /*@__PURE__*/new Vector3(); - var _v1$3 = /*@__PURE__*/new Vector3(); - var _v2$1 = /*@__PURE__*/new Vector3(); - var _v3 = /*@__PURE__*/new Vector3(); - var _vab = /*@__PURE__*/new Vector3(); - var _vac = /*@__PURE__*/new Vector3(); - var _vbc = /*@__PURE__*/new Vector3(); - var _vap = /*@__PURE__*/new Vector3(); - var _vbp = /*@__PURE__*/new Vector3(); - var _vcp = /*@__PURE__*/new Vector3(); - var Triangle = /*#__PURE__*/function () { - function Triangle(a, b, c) { - this.a = a !== undefined ? a : new Vector3(); - this.b = b !== undefined ? b : new Vector3(); - this.c = c !== undefined ? c : new Vector3(); - } - Triangle.getNormal = function getNormal(a, b, c, target) { - if (target === undefined) { - console.warn('THREE.Triangle: .getNormal() target is now required'); - target = new Vector3(); - } - target.subVectors(c, b); - _v0$1.subVectors(a, b); - target.cross(_v0$1); - var targetLengthSq = target.lengthSq(); - if (targetLengthSq > 0) { - return target.multiplyScalar(1 / Math.sqrt(targetLengthSq)); - } - return target.set(0, 0, 0); - } // static/instance method to calculate barycentric coordinates - // based on: http://www.blackpawn.com/texts/pointinpoly/default.html - ; - Triangle.getBarycoord = function getBarycoord(point, a, b, c, target) { - _v0$1.subVectors(c, a); - _v1$3.subVectors(b, a); - _v2$1.subVectors(point, a); - var dot00 = _v0$1.dot(_v0$1); - var dot01 = _v0$1.dot(_v1$3); - var dot02 = _v0$1.dot(_v2$1); - var dot11 = _v1$3.dot(_v1$3); - var dot12 = _v1$3.dot(_v2$1); - var denom = dot00 * dot11 - dot01 * dot01; - if (target === undefined) { - console.warn('THREE.Triangle: .getBarycoord() target is now required'); - target = new Vector3(); - } // collinear or singular triangle - - if (denom === 0) { - // arbitrary location outside of triangle? - // not sure if this is the best idea, maybe should be returning undefined - return target.set(-2, -1, -1); - } - var invDenom = 1 / denom; - var u = (dot11 * dot02 - dot01 * dot12) * invDenom; - var v = (dot00 * dot12 - dot01 * dot02) * invDenom; // barycentric coordinates must always sum to 1 - return target.set(1 - u - v, v, u); - }; - Triangle.containsPoint = function containsPoint(point, a, b, c) { - this.getBarycoord(point, a, b, c, _v3); - return _v3.x >= 0 && _v3.y >= 0 && _v3.x + _v3.y <= 1; - }; - Triangle.getUV = function getUV(point, p1, p2, p3, uv1, uv2, uv3, target) { - this.getBarycoord(point, p1, p2, p3, _v3); - target.set(0, 0); - target.addScaledVector(uv1, _v3.x); - target.addScaledVector(uv2, _v3.y); - target.addScaledVector(uv3, _v3.z); - return target; - }; - Triangle.isFrontFacing = function isFrontFacing(a, b, c, direction) { - _v0$1.subVectors(c, b); - _v1$3.subVectors(a, b); // strictly front facing - - return _v0$1.cross(_v1$3).dot(direction) < 0 ? true : false; - }; - var _proto = Triangle.prototype; - _proto.set = function set(a, b, c) { - this.a.copy(a); - this.b.copy(b); - this.c.copy(c); - return this; - }; - _proto.setFromPointsAndIndices = function setFromPointsAndIndices(points, i0, i1, i2) { - this.a.copy(points[i0]); - this.b.copy(points[i1]); - this.c.copy(points[i2]); - return this; - }; - _proto.clone = function clone() { - return new this.constructor().copy(this); - }; - _proto.copy = function copy(triangle) { - this.a.copy(triangle.a); - this.b.copy(triangle.b); - this.c.copy(triangle.c); - return this; - }; - _proto.getArea = function getArea() { - _v0$1.subVectors(this.c, this.b); - _v1$3.subVectors(this.a, this.b); - return _v0$1.cross(_v1$3).length() * 0.5; - }; - _proto.getMidpoint = function getMidpoint(target) { - if (target === undefined) { - console.warn('THREE.Triangle: .getMidpoint() target is now required'); - target = new Vector3(); - } - return target.addVectors(this.a, this.b).add(this.c).multiplyScalar(1 / 3); - }; - _proto.getNormal = function getNormal(target) { - return Triangle.getNormal(this.a, this.b, this.c, target); - }; - _proto.getPlane = function getPlane(target) { - if (target === undefined) { - console.warn('THREE.Triangle: .getPlane() target is now required'); - target = new Plane(); - } - return target.setFromCoplanarPoints(this.a, this.b, this.c); - }; - _proto.getBarycoord = function getBarycoord(point, target) { - return Triangle.getBarycoord(point, this.a, this.b, this.c, target); - }; - _proto.getUV = function getUV(point, uv1, uv2, uv3, target) { - return Triangle.getUV(point, this.a, this.b, this.c, uv1, uv2, uv3, target); - }; - _proto.containsPoint = function containsPoint(point) { - return Triangle.containsPoint(point, this.a, this.b, this.c); - }; - _proto.isFrontFacing = function isFrontFacing(direction) { - return Triangle.isFrontFacing(this.a, this.b, this.c, direction); - }; - _proto.intersectsBox = function intersectsBox(box) { - return box.intersectsTriangle(this); - }; - _proto.closestPointToPoint = function closestPointToPoint(p, target) { - if (target === undefined) { - console.warn('THREE.Triangle: .closestPointToPoint() target is now required'); - target = new Vector3(); - } - var a = this.a, - b = this.b, - c = this.c; - var v, w; // algorithm thanks to Real-Time Collision Detection by Christer Ericson, - // published by Morgan Kaufmann Publishers, (c) 2005 Elsevier Inc., - // under the accompanying license; see chapter 5.1.5 for detailed explanation. - // basically, we're distinguishing which of the voronoi regions of the triangle - // the point lies in with the minimum amount of redundant computation. - _vab.subVectors(b, a); - _vac.subVectors(c, a); - _vap.subVectors(p, a); - var d1 = _vab.dot(_vap); - var d2 = _vac.dot(_vap); - if (d1 <= 0 && d2 <= 0) { - // vertex region of A; barycentric coords (1, 0, 0) - return target.copy(a); - } - _vbp.subVectors(p, b); - var d3 = _vab.dot(_vbp); - var d4 = _vac.dot(_vbp); - if (d3 >= 0 && d4 <= d3) { - // vertex region of B; barycentric coords (0, 1, 0) - return target.copy(b); - } - var vc = d1 * d4 - d3 * d2; - if (vc <= 0 && d1 >= 0 && d3 <= 0) { - v = d1 / (d1 - d3); // edge region of AB; barycentric coords (1-v, v, 0) - return target.copy(a).addScaledVector(_vab, v); - } - _vcp.subVectors(p, c); - var d5 = _vab.dot(_vcp); - var d6 = _vac.dot(_vcp); - if (d6 >= 0 && d5 <= d6) { - // vertex region of C; barycentric coords (0, 0, 1) - return target.copy(c); - } - var vb = d5 * d2 - d1 * d6; - if (vb <= 0 && d2 >= 0 && d6 <= 0) { - w = d2 / (d2 - d6); // edge region of AC; barycentric coords (1-w, 0, w) - return target.copy(a).addScaledVector(_vac, w); - } - var va = d3 * d6 - d5 * d4; - if (va <= 0 && d4 - d3 >= 0 && d5 - d6 >= 0) { - _vbc.subVectors(c, b); - w = (d4 - d3) / (d4 - d3 + (d5 - d6)); // edge region of BC; barycentric coords (0, 1-w, w) - return target.copy(b).addScaledVector(_vbc, w); // edge region of BC - } // face region - - var denom = 1 / (va + vb + vc); // u = va * denom - v = vb * denom; - w = vc * denom; - return target.copy(a).addScaledVector(_vab, v).addScaledVector(_vac, w); - }; - _proto.equals = function equals(triangle) { - return triangle.a.equals(this.a) && triangle.b.equals(this.b) && triangle.c.equals(this.c); - }; - return Triangle; - }(); - var _colorKeywords = { - 'aliceblue': 0xF0F8FF, - 'antiquewhite': 0xFAEBD7, - 'aqua': 0x00FFFF, - 'aquamarine': 0x7FFFD4, - 'azure': 0xF0FFFF, - 'beige': 0xF5F5DC, - 'bisque': 0xFFE4C4, - 'black': 0x000000, - 'blanchedalmond': 0xFFEBCD, - 'blue': 0x0000FF, - 'blueviolet': 0x8A2BE2, - 'brown': 0xA52A2A, - 'burlywood': 0xDEB887, - 'cadetblue': 0x5F9EA0, - 'chartreuse': 0x7FFF00, - 'chocolate': 0xD2691E, - 'coral': 0xFF7F50, - 'cornflowerblue': 0x6495ED, - 'cornsilk': 0xFFF8DC, - 'crimson': 0xDC143C, - 'cyan': 0x00FFFF, - 'darkblue': 0x00008B, - 'darkcyan': 0x008B8B, - 'darkgoldenrod': 0xB8860B, - 'darkgray': 0xA9A9A9, - 'darkgreen': 0x006400, - 'darkgrey': 0xA9A9A9, - 'darkkhaki': 0xBDB76B, - 'darkmagenta': 0x8B008B, - 'darkolivegreen': 0x556B2F, - 'darkorange': 0xFF8C00, - 'darkorchid': 0x9932CC, - 'darkred': 0x8B0000, - 'darksalmon': 0xE9967A, - 'darkseagreen': 0x8FBC8F, - 'darkslateblue': 0x483D8B, - 'darkslategray': 0x2F4F4F, - 'darkslategrey': 0x2F4F4F, - 'darkturquoise': 0x00CED1, - 'darkviolet': 0x9400D3, - 'deeppink': 0xFF1493, - 'deepskyblue': 0x00BFFF, - 'dimgray': 0x696969, - 'dimgrey': 0x696969, - 'dodgerblue': 0x1E90FF, - 'firebrick': 0xB22222, - 'floralwhite': 0xFFFAF0, - 'forestgreen': 0x228B22, - 'fuchsia': 0xFF00FF, - 'gainsboro': 0xDCDCDC, - 'ghostwhite': 0xF8F8FF, - 'gold': 0xFFD700, - 'goldenrod': 0xDAA520, - 'gray': 0x808080, - 'green': 0x008000, - 'greenyellow': 0xADFF2F, - 'grey': 0x808080, - 'honeydew': 0xF0FFF0, - 'hotpink': 0xFF69B4, - 'indianred': 0xCD5C5C, - 'indigo': 0x4B0082, - 'ivory': 0xFFFFF0, - 'khaki': 0xF0E68C, - 'lavender': 0xE6E6FA, - 'lavenderblush': 0xFFF0F5, - 'lawngreen': 0x7CFC00, - 'lemonchiffon': 0xFFFACD, - 'lightblue': 0xADD8E6, - 'lightcoral': 0xF08080, - 'lightcyan': 0xE0FFFF, - 'lightgoldenrodyellow': 0xFAFAD2, - 'lightgray': 0xD3D3D3, - 'lightgreen': 0x90EE90, - 'lightgrey': 0xD3D3D3, - 'lightpink': 0xFFB6C1, - 'lightsalmon': 0xFFA07A, - 'lightseagreen': 0x20B2AA, - 'lightskyblue': 0x87CEFA, - 'lightslategray': 0x778899, - 'lightslategrey': 0x778899, - 'lightsteelblue': 0xB0C4DE, - 'lightyellow': 0xFFFFE0, - 'lime': 0x00FF00, - 'limegreen': 0x32CD32, - 'linen': 0xFAF0E6, - 'magenta': 0xFF00FF, - 'maroon': 0x800000, - 'mediumaquamarine': 0x66CDAA, - 'mediumblue': 0x0000CD, - 'mediumorchid': 0xBA55D3, - 'mediumpurple': 0x9370DB, - 'mediumseagreen': 0x3CB371, - 'mediumslateblue': 0x7B68EE, - 'mediumspringgreen': 0x00FA9A, - 'mediumturquoise': 0x48D1CC, - 'mediumvioletred': 0xC71585, - 'midnightblue': 0x191970, - 'mintcream': 0xF5FFFA, - 'mistyrose': 0xFFE4E1, - 'moccasin': 0xFFE4B5, - 'navajowhite': 0xFFDEAD, - 'navy': 0x000080, - 'oldlace': 0xFDF5E6, - 'olive': 0x808000, - 'olivedrab': 0x6B8E23, - 'orange': 0xFFA500, - 'orangered': 0xFF4500, - 'orchid': 0xDA70D6, - 'palegoldenrod': 0xEEE8AA, - 'palegreen': 0x98FB98, - 'paleturquoise': 0xAFEEEE, - 'palevioletred': 0xDB7093, - 'papayawhip': 0xFFEFD5, - 'peachpuff': 0xFFDAB9, - 'peru': 0xCD853F, - 'pink': 0xFFC0CB, - 'plum': 0xDDA0DD, - 'powderblue': 0xB0E0E6, - 'purple': 0x800080, - 'rebeccapurple': 0x663399, - 'red': 0xFF0000, - 'rosybrown': 0xBC8F8F, - 'royalblue': 0x4169E1, - 'saddlebrown': 0x8B4513, - 'salmon': 0xFA8072, - 'sandybrown': 0xF4A460, - 'seagreen': 0x2E8B57, - 'seashell': 0xFFF5EE, - 'sienna': 0xA0522D, - 'silver': 0xC0C0C0, - 'skyblue': 0x87CEEB, - 'slateblue': 0x6A5ACD, - 'slategray': 0x708090, - 'slategrey': 0x708090, - 'snow': 0xFFFAFA, - 'springgreen': 0x00FF7F, - 'steelblue': 0x4682B4, - 'tan': 0xD2B48C, - 'teal': 0x008080, - 'thistle': 0xD8BFD8, - 'tomato': 0xFF6347, - 'turquoise': 0x40E0D0, - 'violet': 0xEE82EE, - 'wheat': 0xF5DEB3, - 'white': 0xFFFFFF, - 'whitesmoke': 0xF5F5F5, - 'yellow': 0xFFFF00, - 'yellowgreen': 0x9ACD32 - }; - var _hslA = { - h: 0, - s: 0, - l: 0 - }; - var _hslB = { - h: 0, - s: 0, - l: 0 - }; - function hue2rgb(p, q, t) { - if (t < 0) t += 1; - if (t > 1) t -= 1; - if (t < 1 / 6) return p + (q - p) * 6 * t; - if (t < 1 / 2) return q; - if (t < 2 / 3) return p + (q - p) * 6 * (2 / 3 - t); - return p; - } - function SRGBToLinear(c) { - return c < 0.04045 ? c * 0.0773993808 : Math.pow(c * 0.9478672986 + 0.0521327014, 2.4); - } - function LinearToSRGB(c) { - return c < 0.0031308 ? c * 12.92 : 1.055 * Math.pow(c, 0.41666) - 0.055; - } - var Color = /*#__PURE__*/function () { - function Color(r, g, b) { - Object.defineProperty(this, 'isColor', { - value: true - }); - if (g === undefined && b === undefined) { - // r is THREE.Color, hex or string - return this.set(r); - } - return this.setRGB(r, g, b); - } - var _proto = Color.prototype; - _proto.set = function set(value) { - if (value && value.isColor) { - this.copy(value); - } else if (typeof value === 'number') { - this.setHex(value); - } else if (typeof value === 'string') { - this.setStyle(value); - } - return this; - }; - _proto.setScalar = function setScalar(scalar) { - this.r = scalar; - this.g = scalar; - this.b = scalar; - return this; - }; - _proto.setHex = function setHex(hex) { - hex = Math.floor(hex); - this.r = (hex >> 16 & 255) / 255; - this.g = (hex >> 8 & 255) / 255; - this.b = (hex & 255) / 255; - return this; - }; - _proto.setRGB = function setRGB(r, g, b) { - this.r = r; - this.g = g; - this.b = b; - return this; - }; - _proto.setHSL = function setHSL(h, s, l) { - // h,s,l ranges are in 0.0 - 1.0 - h = MathUtils.euclideanModulo(h, 1); - s = MathUtils.clamp(s, 0, 1); - l = MathUtils.clamp(l, 0, 1); - if (s === 0) { - this.r = this.g = this.b = l; - } else { - var p = l <= 0.5 ? l * (1 + s) : l + s - l * s; - var q = 2 * l - p; - this.r = hue2rgb(q, p, h + 1 / 3); - this.g = hue2rgb(q, p, h); - this.b = hue2rgb(q, p, h - 1 / 3); - } - return this; - }; - _proto.setStyle = function setStyle(style) { - function handleAlpha(string) { - if (string === undefined) return; - if (parseFloat(string) < 1) { - console.warn('THREE.Color: Alpha component of ' + style + ' will be ignored.'); - } - } - var m; - if (m = /^((?:rgb|hsl)a?)\(\s*([^\)]*)\)/.exec(style)) { - // rgb / hsl - var color; - var name = m[1]; - var components = m[2]; - switch (name) { - case 'rgb': - case 'rgba': - if (color = /^(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(,\s*([0-9]*\.?[0-9]+)\s*)?$/.exec(components)) { - // rgb(255,0,0) rgba(255,0,0,0.5) - this.r = Math.min(255, parseInt(color[1], 10)) / 255; - this.g = Math.min(255, parseInt(color[2], 10)) / 255; - this.b = Math.min(255, parseInt(color[3], 10)) / 255; - handleAlpha(color[5]); - return this; - } - if (color = /^(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(,\s*([0-9]*\.?[0-9]+)\s*)?$/.exec(components)) { - // rgb(100%,0%,0%) rgba(100%,0%,0%,0.5) - this.r = Math.min(100, parseInt(color[1], 10)) / 100; - this.g = Math.min(100, parseInt(color[2], 10)) / 100; - this.b = Math.min(100, parseInt(color[3], 10)) / 100; - handleAlpha(color[5]); - return this; - } - break; - case 'hsl': - case 'hsla': - if (color = /^([0-9]*\.?[0-9]+)\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(,\s*([0-9]*\.?[0-9]+)\s*)?$/.exec(components)) { - // hsl(120,50%,50%) hsla(120,50%,50%,0.5) - var h = parseFloat(color[1]) / 360; - var s = parseInt(color[2], 10) / 100; - var l = parseInt(color[3], 10) / 100; - handleAlpha(color[5]); - return this.setHSL(h, s, l); - } - break; - } - } else if (m = /^\#([A-Fa-f0-9]+)$/.exec(style)) { - // hex color - var hex = m[1]; - var size = hex.length; - if (size === 3) { - // #ff0 - this.r = parseInt(hex.charAt(0) + hex.charAt(0), 16) / 255; - this.g = parseInt(hex.charAt(1) + hex.charAt(1), 16) / 255; - this.b = parseInt(hex.charAt(2) + hex.charAt(2), 16) / 255; - return this; - } else if (size === 6) { - // #ff0000 - this.r = parseInt(hex.charAt(0) + hex.charAt(1), 16) / 255; - this.g = parseInt(hex.charAt(2) + hex.charAt(3), 16) / 255; - this.b = parseInt(hex.charAt(4) + hex.charAt(5), 16) / 255; - return this; - } - } - if (style && style.length > 0) { - return this.setColorName(style); - } - return this; - }; - _proto.setColorName = function setColorName(style) { - // color keywords - var hex = _colorKeywords[style]; - if (hex !== undefined) { - // red - this.setHex(hex); - } else { - // unknown color - console.warn('THREE.Color: Unknown color ' + style); - } - return this; - }; - _proto.clone = function clone() { - return new this.constructor(this.r, this.g, this.b); - }; - _proto.copy = function copy(color) { - this.r = color.r; - this.g = color.g; - this.b = color.b; - return this; - }; - _proto.copyGammaToLinear = function copyGammaToLinear(color, gammaFactor) { - if (gammaFactor === void 0) { - gammaFactor = 2.0; - } - this.r = Math.pow(color.r, gammaFactor); - this.g = Math.pow(color.g, gammaFactor); - this.b = Math.pow(color.b, gammaFactor); - return this; - }; - _proto.copyLinearToGamma = function copyLinearToGamma(color, gammaFactor) { - if (gammaFactor === void 0) { - gammaFactor = 2.0; - } - var safeInverse = gammaFactor > 0 ? 1.0 / gammaFactor : 1.0; - this.r = Math.pow(color.r, safeInverse); - this.g = Math.pow(color.g, safeInverse); - this.b = Math.pow(color.b, safeInverse); - return this; - }; - _proto.convertGammaToLinear = function convertGammaToLinear(gammaFactor) { - this.copyGammaToLinear(this, gammaFactor); - return this; - }; - _proto.convertLinearToGamma = function convertLinearToGamma(gammaFactor) { - this.copyLinearToGamma(this, gammaFactor); - return this; - }; - _proto.copySRGBToLinear = function copySRGBToLinear(color) { - this.r = SRGBToLinear(color.r); - this.g = SRGBToLinear(color.g); - this.b = SRGBToLinear(color.b); - return this; - }; - _proto.copyLinearToSRGB = function copyLinearToSRGB(color) { - this.r = LinearToSRGB(color.r); - this.g = LinearToSRGB(color.g); - this.b = LinearToSRGB(color.b); - return this; - }; - _proto.convertSRGBToLinear = function convertSRGBToLinear() { - this.copySRGBToLinear(this); - return this; - }; - _proto.convertLinearToSRGB = function convertLinearToSRGB() { - this.copyLinearToSRGB(this); - return this; - }; - _proto.getHex = function getHex() { - return this.r * 255 << 16 ^ this.g * 255 << 8 ^ this.b * 255 << 0; - }; - _proto.getHexString = function getHexString() { - return ('000000' + this.getHex().toString(16)).slice(-6); - }; - _proto.getHSL = function getHSL(target) { - // h,s,l ranges are in 0.0 - 1.0 - if (target === undefined) { - console.warn('THREE.Color: .getHSL() target is now required'); - target = { - h: 0, - s: 0, - l: 0 - }; - } - var r = this.r, - g = this.g, - b = this.b; - var max = Math.max(r, g, b); - var min = Math.min(r, g, b); - var hue, saturation; - var lightness = (min + max) / 2.0; - if (min === max) { - hue = 0; - saturation = 0; - } else { - var delta = max - min; - saturation = lightness <= 0.5 ? delta / (max + min) : delta / (2 - max - min); - switch (max) { - case r: - hue = (g - b) / delta + (g < b ? 6 : 0); - break; - case g: - hue = (b - r) / delta + 2; - break; - case b: - hue = (r - g) / delta + 4; - break; - } - hue /= 6; - } - target.h = hue; - target.s = saturation; - target.l = lightness; - return target; - }; - _proto.getStyle = function getStyle() { - return 'rgb(' + (this.r * 255 | 0) + ',' + (this.g * 255 | 0) + ',' + (this.b * 255 | 0) + ')'; - }; - _proto.offsetHSL = function offsetHSL(h, s, l) { - this.getHSL(_hslA); - _hslA.h += h; - _hslA.s += s; - _hslA.l += l; - this.setHSL(_hslA.h, _hslA.s, _hslA.l); - return this; - }; - _proto.add = function add(color) { - this.r += color.r; - this.g += color.g; - this.b += color.b; - return this; - }; - _proto.addColors = function addColors(color1, color2) { - this.r = color1.r + color2.r; - this.g = color1.g + color2.g; - this.b = color1.b + color2.b; - return this; - }; - _proto.addScalar = function addScalar(s) { - this.r += s; - this.g += s; - this.b += s; - return this; - }; - _proto.sub = function sub(color) { - this.r = Math.max(0, this.r - color.r); - this.g = Math.max(0, this.g - color.g); - this.b = Math.max(0, this.b - color.b); - return this; - }; - _proto.multiply = function multiply(color) { - this.r *= color.r; - this.g *= color.g; - this.b *= color.b; - return this; - }; - _proto.multiplyScalar = function multiplyScalar(s) { - this.r *= s; - this.g *= s; - this.b *= s; - return this; - }; - _proto.lerp = function lerp(color, alpha) { - this.r += (color.r - this.r) * alpha; - this.g += (color.g - this.g) * alpha; - this.b += (color.b - this.b) * alpha; - return this; - }; - _proto.lerpHSL = function lerpHSL(color, alpha) { - this.getHSL(_hslA); - color.getHSL(_hslB); - var h = MathUtils.lerp(_hslA.h, _hslB.h, alpha); - var s = MathUtils.lerp(_hslA.s, _hslB.s, alpha); - var l = MathUtils.lerp(_hslA.l, _hslB.l, alpha); - this.setHSL(h, s, l); - return this; - }; - _proto.equals = function equals(c) { - return c.r === this.r && c.g === this.g && c.b === this.b; - }; - _proto.fromArray = function fromArray(array, offset) { - if (offset === void 0) { - offset = 0; - } - this.r = array[offset]; - this.g = array[offset + 1]; - this.b = array[offset + 2]; - return this; - }; - _proto.toArray = function toArray(array, offset) { - if (array === void 0) { - array = []; - } - if (offset === void 0) { - offset = 0; - } - array[offset] = this.r; - array[offset + 1] = this.g; - array[offset + 2] = this.b; - return array; - }; - _proto.fromBufferAttribute = function fromBufferAttribute(attribute, index) { - this.r = attribute.getX(index); - this.g = attribute.getY(index); - this.b = attribute.getZ(index); - if (attribute.normalized === true) { - // assuming Uint8Array - this.r /= 255; - this.g /= 255; - this.b /= 255; - } - return this; - }; - _proto.toJSON = function toJSON() { - return this.getHex(); - }; - return Color; - }(); - Color.NAMES = _colorKeywords; - Color.prototype.r = 1; - Color.prototype.g = 1; - Color.prototype.b = 1; - var Face3 = /*#__PURE__*/function () { - function Face3(a, b, c, normal, color, materialIndex) { - if (materialIndex === void 0) { - materialIndex = 0; - } - this.a = a; - this.b = b; - this.c = c; - this.normal = normal && normal.isVector3 ? normal : new Vector3(); - this.vertexNormals = Array.isArray(normal) ? normal : []; - this.color = color && color.isColor ? color : new Color(); - this.vertexColors = Array.isArray(color) ? color : []; - this.materialIndex = materialIndex; - } - var _proto = Face3.prototype; - _proto.clone = function clone() { - return new this.constructor().copy(this); - }; - _proto.copy = function copy(source) { - this.a = source.a; - this.b = source.b; - this.c = source.c; - this.normal.copy(source.normal); - this.color.copy(source.color); - this.materialIndex = source.materialIndex; - for (var i = 0, il = source.vertexNormals.length; i < il; i++) { - this.vertexNormals[i] = source.vertexNormals[i].clone(); - } - for (var _i = 0, _il = source.vertexColors.length; _i < _il; _i++) { - this.vertexColors[_i] = source.vertexColors[_i].clone(); - } - return this; - }; - return Face3; - }(); - var materialId = 0; - function Material() { - Object.defineProperty(this, 'id', { - value: materialId++ - }); - this.uuid = MathUtils.generateUUID(); - this.name = ''; - this.type = 'Material'; - this.fog = true; - this.blending = NormalBlending; - this.side = FrontSide; - this.flatShading = false; - this.vertexColors = false; - this.opacity = 1; - this.transparent = false; - this.blendSrc = SrcAlphaFactor; - this.blendDst = OneMinusSrcAlphaFactor; - this.blendEquation = AddEquation; - this.blendSrcAlpha = null; - this.blendDstAlpha = null; - this.blendEquationAlpha = null; - this.depthFunc = LessEqualDepth; - this.depthTest = true; - this.depthWrite = true; - this.stencilWriteMask = 0xff; - this.stencilFunc = AlwaysStencilFunc; - this.stencilRef = 0; - this.stencilFuncMask = 0xff; - this.stencilFail = KeepStencilOp; - this.stencilZFail = KeepStencilOp; - this.stencilZPass = KeepStencilOp; - this.stencilWrite = false; - this.clippingPlanes = null; - this.clipIntersection = false; - this.clipShadows = false; - this.shadowSide = null; - this.colorWrite = true; - this.precision = null; // override the renderer's default precision for this material - this.polygonOffset = false; - this.polygonOffsetFactor = 0; - this.polygonOffsetUnits = 0; - this.dithering = false; - this.alphaTest = 0; - this.premultipliedAlpha = false; - this.visible = true; - this.toneMapped = true; - this.userData = {}; - this.version = 0; - } - Material.prototype = Object.assign(Object.create(EventDispatcher.prototype), { - constructor: Material, - isMaterial: true, - onBeforeCompile: function onBeforeCompile() - /* shaderobject, renderer */ - {}, - customProgramCacheKey: function customProgramCacheKey() { - return this.onBeforeCompile.toString(); - }, - setValues: function setValues(values) { - if (values === undefined) return; - for (var key in values) { - var newValue = values[key]; - if (newValue === undefined) { - console.warn('THREE.Material: \'' + key + '\' parameter is undefined.'); - continue; - } // for backward compatability if shading is set in the constructor - - if (key === 'shading') { - console.warn('THREE.' + this.type + ': .shading has been removed. Use the boolean .flatShading instead.'); - this.flatShading = newValue === FlatShading ? true : false; - continue; - } - var currentValue = this[key]; - if (currentValue === undefined) { - console.warn('THREE.' + this.type + ': \'' + key + '\' is not a property of this material.'); - continue; - } - if (currentValue && currentValue.isColor) { - currentValue.set(newValue); - } else if (currentValue && currentValue.isVector3 && newValue && newValue.isVector3) { - currentValue.copy(newValue); - } else { - this[key] = newValue; - } - } - }, - toJSON: function toJSON(meta) { - var isRoot = meta === undefined || typeof meta === 'string'; - if (isRoot) { - meta = { - textures: {}, - images: {} - }; - } - var data = { - metadata: { - version: 4.5, - type: 'Material', - generator: 'Material.toJSON' - } - }; // standard Material serialization - data.uuid = this.uuid; - data.type = this.type; - if (this.name !== '') data.name = this.name; - if (this.color && this.color.isColor) data.color = this.color.getHex(); - if (this.roughness !== undefined) data.roughness = this.roughness; - if (this.metalness !== undefined) data.metalness = this.metalness; - if (this.sheen && this.sheen.isColor) data.sheen = this.sheen.getHex(); - if (this.emissive && this.emissive.isColor) data.emissive = this.emissive.getHex(); - if (this.emissiveIntensity && this.emissiveIntensity !== 1) data.emissiveIntensity = this.emissiveIntensity; - if (this.specular && this.specular.isColor) data.specular = this.specular.getHex(); - if (this.shininess !== undefined) data.shininess = this.shininess; - if (this.clearcoat !== undefined) data.clearcoat = this.clearcoat; - if (this.clearcoatRoughness !== undefined) data.clearcoatRoughness = this.clearcoatRoughness; - if (this.clearcoatMap && this.clearcoatMap.isTexture) { - data.clearcoatMap = this.clearcoatMap.toJSON(meta).uuid; - } - if (this.clearcoatRoughnessMap && this.clearcoatRoughnessMap.isTexture) { - data.clearcoatRoughnessMap = this.clearcoatRoughnessMap.toJSON(meta).uuid; - } - if (this.clearcoatNormalMap && this.clearcoatNormalMap.isTexture) { - data.clearcoatNormalMap = this.clearcoatNormalMap.toJSON(meta).uuid; - data.clearcoatNormalScale = this.clearcoatNormalScale.toArray(); - } - if (this.map && this.map.isTexture) data.map = this.map.toJSON(meta).uuid; - if (this.matcap && this.matcap.isTexture) data.matcap = this.matcap.toJSON(meta).uuid; - if (this.alphaMap && this.alphaMap.isTexture) data.alphaMap = this.alphaMap.toJSON(meta).uuid; - if (this.lightMap && this.lightMap.isTexture) data.lightMap = this.lightMap.toJSON(meta).uuid; - if (this.aoMap && this.aoMap.isTexture) { - data.aoMap = this.aoMap.toJSON(meta).uuid; - data.aoMapIntensity = this.aoMapIntensity; - } - if (this.bumpMap && this.bumpMap.isTexture) { - data.bumpMap = this.bumpMap.toJSON(meta).uuid; - data.bumpScale = this.bumpScale; - } - if (this.normalMap && this.normalMap.isTexture) { - data.normalMap = this.normalMap.toJSON(meta).uuid; - data.normalMapType = this.normalMapType; - data.normalScale = this.normalScale.toArray(); - } - if (this.displacementMap && this.displacementMap.isTexture) { - data.displacementMap = this.displacementMap.toJSON(meta).uuid; - data.displacementScale = this.displacementScale; - data.displacementBias = this.displacementBias; - } - if (this.roughnessMap && this.roughnessMap.isTexture) data.roughnessMap = this.roughnessMap.toJSON(meta).uuid; - if (this.metalnessMap && this.metalnessMap.isTexture) data.metalnessMap = this.metalnessMap.toJSON(meta).uuid; - if (this.emissiveMap && this.emissiveMap.isTexture) data.emissiveMap = this.emissiveMap.toJSON(meta).uuid; - if (this.specularMap && this.specularMap.isTexture) data.specularMap = this.specularMap.toJSON(meta).uuid; - if (this.envMap && this.envMap.isTexture) { - data.envMap = this.envMap.toJSON(meta).uuid; - data.reflectivity = this.reflectivity; // Scale behind envMap - data.refractionRatio = this.refractionRatio; - if (this.combine !== undefined) data.combine = this.combine; - if (this.envMapIntensity !== undefined) data.envMapIntensity = this.envMapIntensity; - } - if (this.gradientMap && this.gradientMap.isTexture) { - data.gradientMap = this.gradientMap.toJSON(meta).uuid; - } - if (this.size !== undefined) data.size = this.size; - if (this.sizeAttenuation !== undefined) data.sizeAttenuation = this.sizeAttenuation; - if (this.blending !== NormalBlending) data.blending = this.blending; - if (this.flatShading === true) data.flatShading = this.flatShading; - if (this.side !== FrontSide) data.side = this.side; - if (this.vertexColors) data.vertexColors = true; - if (this.opacity < 1) data.opacity = this.opacity; - if (this.transparent === true) data.transparent = this.transparent; - data.depthFunc = this.depthFunc; - data.depthTest = this.depthTest; - data.depthWrite = this.depthWrite; - data.stencilWrite = this.stencilWrite; - data.stencilWriteMask = this.stencilWriteMask; - data.stencilFunc = this.stencilFunc; - data.stencilRef = this.stencilRef; - data.stencilFuncMask = this.stencilFuncMask; - data.stencilFail = this.stencilFail; - data.stencilZFail = this.stencilZFail; - data.stencilZPass = this.stencilZPass; // rotation (SpriteMaterial) - if (this.rotation && this.rotation !== 0) data.rotation = this.rotation; - if (this.polygonOffset === true) data.polygonOffset = true; - if (this.polygonOffsetFactor !== 0) data.polygonOffsetFactor = this.polygonOffsetFactor; - if (this.polygonOffsetUnits !== 0) data.polygonOffsetUnits = this.polygonOffsetUnits; - if (this.linewidth && this.linewidth !== 1) data.linewidth = this.linewidth; - if (this.dashSize !== undefined) data.dashSize = this.dashSize; - if (this.gapSize !== undefined) data.gapSize = this.gapSize; - if (this.scale !== undefined) data.scale = this.scale; - if (this.dithering === true) data.dithering = true; - if (this.alphaTest > 0) data.alphaTest = this.alphaTest; - if (this.premultipliedAlpha === true) data.premultipliedAlpha = this.premultipliedAlpha; - if (this.wireframe === true) data.wireframe = this.wireframe; - if (this.wireframeLinewidth > 1) data.wireframeLinewidth = this.wireframeLinewidth; - if (this.wireframeLinecap !== 'round') data.wireframeLinecap = this.wireframeLinecap; - if (this.wireframeLinejoin !== 'round') data.wireframeLinejoin = this.wireframeLinejoin; - if (this.morphTargets === true) data.morphTargets = true; - if (this.morphNormals === true) data.morphNormals = true; - if (this.skinning === true) data.skinning = true; - if (this.visible === false) data.visible = false; - if (this.toneMapped === false) data.toneMapped = false; - if (JSON.stringify(this.userData) !== '{}') data.userData = this.userData; // TODO: Copied from Object3D.toJSON - function extractFromCache(cache) { - var values = []; - for (var key in cache) { - var _data = cache[key]; - delete _data.metadata; - values.push(_data); - } - return values; - } - if (isRoot) { - var textures = extractFromCache(meta.textures); - var images = extractFromCache(meta.images); - if (textures.length > 0) data.textures = textures; - if (images.length > 0) data.images = images; - } - return data; - }, - clone: function clone() { - return new this.constructor().copy(this); - }, - copy: function copy(source) { - this.name = source.name; - this.fog = source.fog; - this.blending = source.blending; - this.side = source.side; - this.flatShading = source.flatShading; - this.vertexColors = source.vertexColors; - this.opacity = source.opacity; - this.transparent = source.transparent; - this.blendSrc = source.blendSrc; - this.blendDst = source.blendDst; - this.blendEquation = source.blendEquation; - this.blendSrcAlpha = source.blendSrcAlpha; - this.blendDstAlpha = source.blendDstAlpha; - this.blendEquationAlpha = source.blendEquationAlpha; - this.depthFunc = source.depthFunc; - this.depthTest = source.depthTest; - this.depthWrite = source.depthWrite; - this.stencilWriteMask = source.stencilWriteMask; - this.stencilFunc = source.stencilFunc; - this.stencilRef = source.stencilRef; - this.stencilFuncMask = source.stencilFuncMask; - this.stencilFail = source.stencilFail; - this.stencilZFail = source.stencilZFail; - this.stencilZPass = source.stencilZPass; - this.stencilWrite = source.stencilWrite; - var srcPlanes = source.clippingPlanes; - var dstPlanes = null; - if (srcPlanes !== null) { - var n = srcPlanes.length; - dstPlanes = new Array(n); - for (var i = 0; i !== n; ++i) { - dstPlanes[i] = srcPlanes[i].clone(); - } - } - this.clippingPlanes = dstPlanes; - this.clipIntersection = source.clipIntersection; - this.clipShadows = source.clipShadows; - this.shadowSide = source.shadowSide; - this.colorWrite = source.colorWrite; - this.precision = source.precision; - this.polygonOffset = source.polygonOffset; - this.polygonOffsetFactor = source.polygonOffsetFactor; - this.polygonOffsetUnits = source.polygonOffsetUnits; - this.dithering = source.dithering; - this.alphaTest = source.alphaTest; - this.premultipliedAlpha = source.premultipliedAlpha; - this.visible = source.visible; - this.toneMapped = source.toneMapped; - this.userData = JSON.parse(JSON.stringify(source.userData)); - return this; - }, - dispose: function dispose() { - this.dispatchEvent({ - type: 'dispose' - }); - } - }); - Object.defineProperty(Material.prototype, 'needsUpdate', { - set: function set(value) { - if (value === true) this.version++; - } - }); - /** - * parameters = { - * color: , - * opacity: , - * map: new THREE.Texture( ), - * - * lightMap: new THREE.Texture( ), - * lightMapIntensity: - * - * aoMap: new THREE.Texture( ), - * aoMapIntensity: - * - * specularMap: new THREE.Texture( ), - * - * alphaMap: new THREE.Texture( ), - * - * envMap: new THREE.CubeTexture( [posx, negx, posy, negy, posz, negz] ), - * combine: THREE.Multiply, - * reflectivity: , - * refractionRatio: , - * - * depthTest: , - * depthWrite: , - * - * wireframe: , - * wireframeLinewidth: , - * - * skinning: , - * morphTargets: - * } - */ - function MeshBasicMaterial(parameters) { - Material.call(this); - this.type = 'MeshBasicMaterial'; - this.color = new Color(0xffffff); // emissive - this.map = null; - this.lightMap = null; - this.lightMapIntensity = 1.0; - this.aoMap = null; - this.aoMapIntensity = 1.0; - this.specularMap = null; - this.alphaMap = null; - this.envMap = null; - this.combine = MultiplyOperation; - this.reflectivity = 1; - this.refractionRatio = 0.98; - this.wireframe = false; - this.wireframeLinewidth = 1; - this.wireframeLinecap = 'round'; - this.wireframeLinejoin = 'round'; - this.skinning = false; - this.morphTargets = false; - this.setValues(parameters); - } - MeshBasicMaterial.prototype = Object.create(Material.prototype); - MeshBasicMaterial.prototype.constructor = MeshBasicMaterial; - MeshBasicMaterial.prototype.isMeshBasicMaterial = true; - MeshBasicMaterial.prototype.copy = function (source) { - Material.prototype.copy.call(this, source); - this.color.copy(source.color); - this.map = source.map; - this.lightMap = source.lightMap; - this.lightMapIntensity = source.lightMapIntensity; - this.aoMap = source.aoMap; - this.aoMapIntensity = source.aoMapIntensity; - this.specularMap = source.specularMap; - this.alphaMap = source.alphaMap; - this.envMap = source.envMap; - this.combine = source.combine; - this.reflectivity = source.reflectivity; - this.refractionRatio = source.refractionRatio; - this.wireframe = source.wireframe; - this.wireframeLinewidth = source.wireframeLinewidth; - this.wireframeLinecap = source.wireframeLinecap; - this.wireframeLinejoin = source.wireframeLinejoin; - this.skinning = source.skinning; - this.morphTargets = source.morphTargets; - return this; - }; - var _vector$3 = new Vector3(); - var _vector2$1 = new Vector2(); - function BufferAttribute(array, itemSize, normalized) { - if (Array.isArray(array)) { - throw new TypeError('THREE.BufferAttribute: array should be a Typed Array.'); - } - this.name = ''; - this.array = array; - this.itemSize = itemSize; - this.count = array !== undefined ? array.length / itemSize : 0; - this.normalized = normalized === true; - this.usage = StaticDrawUsage; - this.updateRange = { - offset: 0, - count: -1 - }; - this.version = 0; - } - Object.defineProperty(BufferAttribute.prototype, 'needsUpdate', { - set: function set(value) { - if (value === true) this.version++; - } - }); - Object.assign(BufferAttribute.prototype, { - isBufferAttribute: true, - onUploadCallback: function onUploadCallback() {}, - setUsage: function setUsage(value) { - this.usage = value; - return this; - }, - copy: function copy(source) { - this.name = source.name; - this.array = new source.array.constructor(source.array); - this.itemSize = source.itemSize; - this.count = source.count; - this.normalized = source.normalized; - this.usage = source.usage; - return this; - }, - copyAt: function copyAt(index1, attribute, index2) { - index1 *= this.itemSize; - index2 *= attribute.itemSize; - for (var i = 0, l = this.itemSize; i < l; i++) { - this.array[index1 + i] = attribute.array[index2 + i]; - } - return this; - }, - copyArray: function copyArray(array) { - this.array.set(array); - return this; - }, - copyColorsArray: function copyColorsArray(colors) { - var array = this.array; - var offset = 0; - for (var i = 0, l = colors.length; i < l; i++) { - var color = colors[i]; - if (color === undefined) { - console.warn('THREE.BufferAttribute.copyColorsArray(): color is undefined', i); - color = new Color(); - } - array[offset++] = color.r; - array[offset++] = color.g; - array[offset++] = color.b; - } - return this; - }, - copyVector2sArray: function copyVector2sArray(vectors) { - var array = this.array; - var offset = 0; - for (var i = 0, l = vectors.length; i < l; i++) { - var vector = vectors[i]; - if (vector === undefined) { - console.warn('THREE.BufferAttribute.copyVector2sArray(): vector is undefined', i); - vector = new Vector2(); - } - array[offset++] = vector.x; - array[offset++] = vector.y; - } - return this; - }, - copyVector3sArray: function copyVector3sArray(vectors) { - var array = this.array; - var offset = 0; - for (var i = 0, l = vectors.length; i < l; i++) { - var vector = vectors[i]; - if (vector === undefined) { - console.warn('THREE.BufferAttribute.copyVector3sArray(): vector is undefined', i); - vector = new Vector3(); - } - array[offset++] = vector.x; - array[offset++] = vector.y; - array[offset++] = vector.z; - } - return this; - }, - copyVector4sArray: function copyVector4sArray(vectors) { - var array = this.array; - var offset = 0; - for (var i = 0, l = vectors.length; i < l; i++) { - var vector = vectors[i]; - if (vector === undefined) { - console.warn('THREE.BufferAttribute.copyVector4sArray(): vector is undefined', i); - vector = new Vector4(); - } - array[offset++] = vector.x; - array[offset++] = vector.y; - array[offset++] = vector.z; - array[offset++] = vector.w; - } - return this; - }, - applyMatrix3: function applyMatrix3(m) { - if (this.itemSize === 2) { - for (var i = 0, l = this.count; i < l; i++) { - _vector2$1.fromBufferAttribute(this, i); - _vector2$1.applyMatrix3(m); - this.setXY(i, _vector2$1.x, _vector2$1.y); - } - } else if (this.itemSize === 3) { - for (var _i = 0, _l = this.count; _i < _l; _i++) { - _vector$3.fromBufferAttribute(this, _i); - _vector$3.applyMatrix3(m); - this.setXYZ(_i, _vector$3.x, _vector$3.y, _vector$3.z); - } - } - return this; - }, - applyMatrix4: function applyMatrix4(m) { - for (var i = 0, l = this.count; i < l; i++) { - _vector$3.x = this.getX(i); - _vector$3.y = this.getY(i); - _vector$3.z = this.getZ(i); - _vector$3.applyMatrix4(m); - this.setXYZ(i, _vector$3.x, _vector$3.y, _vector$3.z); - } - return this; - }, - applyNormalMatrix: function applyNormalMatrix(m) { - for (var i = 0, l = this.count; i < l; i++) { - _vector$3.x = this.getX(i); - _vector$3.y = this.getY(i); - _vector$3.z = this.getZ(i); - _vector$3.applyNormalMatrix(m); - this.setXYZ(i, _vector$3.x, _vector$3.y, _vector$3.z); - } - return this; - }, - transformDirection: function transformDirection(m) { - for (var i = 0, l = this.count; i < l; i++) { - _vector$3.x = this.getX(i); - _vector$3.y = this.getY(i); - _vector$3.z = this.getZ(i); - _vector$3.transformDirection(m); - this.setXYZ(i, _vector$3.x, _vector$3.y, _vector$3.z); - } - return this; - }, - set: function set(value, offset) { - if (offset === void 0) { - offset = 0; - } - this.array.set(value, offset); - return this; - }, - getX: function getX(index) { - return this.array[index * this.itemSize]; - }, - setX: function setX(index, x) { - this.array[index * this.itemSize] = x; - return this; - }, - getY: function getY(index) { - return this.array[index * this.itemSize + 1]; - }, - setY: function setY(index, y) { - this.array[index * this.itemSize + 1] = y; - return this; - }, - getZ: function getZ(index) { - return this.array[index * this.itemSize + 2]; - }, - setZ: function setZ(index, z) { - this.array[index * this.itemSize + 2] = z; - return this; - }, - getW: function getW(index) { - return this.array[index * this.itemSize + 3]; - }, - setW: function setW(index, w) { - this.array[index * this.itemSize + 3] = w; - return this; - }, - setXY: function setXY(index, x, y) { - index *= this.itemSize; - this.array[index + 0] = x; - this.array[index + 1] = y; - return this; - }, - setXYZ: function setXYZ(index, x, y, z) { - index *= this.itemSize; - this.array[index + 0] = x; - this.array[index + 1] = y; - this.array[index + 2] = z; - return this; - }, - setXYZW: function setXYZW(index, x, y, z, w) { - index *= this.itemSize; - this.array[index + 0] = x; - this.array[index + 1] = y; - this.array[index + 2] = z; - this.array[index + 3] = w; - return this; - }, - onUpload: function onUpload(callback) { - this.onUploadCallback = callback; - return this; - }, - clone: function clone() { - return new this.constructor(this.array, this.itemSize).copy(this); - }, - toJSON: function toJSON() { - return { - itemSize: this.itemSize, - type: this.array.constructor.name, - array: Array.prototype.slice.call(this.array), - normalized: this.normalized - }; - } - }); // - function Int8BufferAttribute(array, itemSize, normalized) { - BufferAttribute.call(this, new Int8Array(array), itemSize, normalized); - } - Int8BufferAttribute.prototype = Object.create(BufferAttribute.prototype); - Int8BufferAttribute.prototype.constructor = Int8BufferAttribute; - function Uint8BufferAttribute(array, itemSize, normalized) { - BufferAttribute.call(this, new Uint8Array(array), itemSize, normalized); - } - Uint8BufferAttribute.prototype = Object.create(BufferAttribute.prototype); - Uint8BufferAttribute.prototype.constructor = Uint8BufferAttribute; - function Uint8ClampedBufferAttribute(array, itemSize, normalized) { - BufferAttribute.call(this, new Uint8ClampedArray(array), itemSize, normalized); - } - Uint8ClampedBufferAttribute.prototype = Object.create(BufferAttribute.prototype); - Uint8ClampedBufferAttribute.prototype.constructor = Uint8ClampedBufferAttribute; - function Int16BufferAttribute(array, itemSize, normalized) { - BufferAttribute.call(this, new Int16Array(array), itemSize, normalized); - } - Int16BufferAttribute.prototype = Object.create(BufferAttribute.prototype); - Int16BufferAttribute.prototype.constructor = Int16BufferAttribute; - function Uint16BufferAttribute(array, itemSize, normalized) { - BufferAttribute.call(this, new Uint16Array(array), itemSize, normalized); - } - Uint16BufferAttribute.prototype = Object.create(BufferAttribute.prototype); - Uint16BufferAttribute.prototype.constructor = Uint16BufferAttribute; - function Int32BufferAttribute(array, itemSize, normalized) { - BufferAttribute.call(this, new Int32Array(array), itemSize, normalized); - } - Int32BufferAttribute.prototype = Object.create(BufferAttribute.prototype); - Int32BufferAttribute.prototype.constructor = Int32BufferAttribute; - function Uint32BufferAttribute(array, itemSize, normalized) { - BufferAttribute.call(this, new Uint32Array(array), itemSize, normalized); - } - Uint32BufferAttribute.prototype = Object.create(BufferAttribute.prototype); - Uint32BufferAttribute.prototype.constructor = Uint32BufferAttribute; - function Float16BufferAttribute(array, itemSize, normalized) { - BufferAttribute.call(this, new Uint16Array(array), itemSize, normalized); - } - Float16BufferAttribute.prototype = Object.create(BufferAttribute.prototype); - Float16BufferAttribute.prototype.constructor = Float16BufferAttribute; - Float16BufferAttribute.prototype.isFloat16BufferAttribute = true; - function Float32BufferAttribute(array, itemSize, normalized) { - BufferAttribute.call(this, new Float32Array(array), itemSize, normalized); - } - Float32BufferAttribute.prototype = Object.create(BufferAttribute.prototype); - Float32BufferAttribute.prototype.constructor = Float32BufferAttribute; - function Float64BufferAttribute(array, itemSize, normalized) { - BufferAttribute.call(this, new Float64Array(array), itemSize, normalized); - } - Float64BufferAttribute.prototype = Object.create(BufferAttribute.prototype); - Float64BufferAttribute.prototype.constructor = Float64BufferAttribute; // - var DirectGeometry = /*#__PURE__*/function () { - function DirectGeometry() { - this.vertices = []; - this.normals = []; - this.colors = []; - this.uvs = []; - this.uvs2 = []; - this.groups = []; - this.morphTargets = {}; - this.skinWeights = []; - this.skinIndices = []; // this.lineDistances = []; - this.boundingBox = null; - this.boundingSphere = null; // update flags - this.verticesNeedUpdate = false; - this.normalsNeedUpdate = false; - this.colorsNeedUpdate = false; - this.uvsNeedUpdate = false; - this.groupsNeedUpdate = false; - } - var _proto = DirectGeometry.prototype; - _proto.computeGroups = function computeGroups(geometry) { - var groups = []; - var group, i; - var materialIndex = undefined; - var faces = geometry.faces; - for (i = 0; i < faces.length; i++) { - var face = faces[i]; // materials - if (face.materialIndex !== materialIndex) { - materialIndex = face.materialIndex; - if (group !== undefined) { - group.count = i * 3 - group.start; - groups.push(group); - } - group = { - start: i * 3, - materialIndex: materialIndex - }; - } - } - if (group !== undefined) { - group.count = i * 3 - group.start; - groups.push(group); - } - this.groups = groups; - }; - _proto.fromGeometry = function fromGeometry(geometry) { - var faces = geometry.faces; - var vertices = geometry.vertices; - var faceVertexUvs = geometry.faceVertexUvs; - var hasFaceVertexUv = faceVertexUvs[0] && faceVertexUvs[0].length > 0; - var hasFaceVertexUv2 = faceVertexUvs[1] && faceVertexUvs[1].length > 0; // morphs - var morphTargets = geometry.morphTargets; - var morphTargetsLength = morphTargets.length; - var morphTargetsPosition; - if (morphTargetsLength > 0) { - morphTargetsPosition = []; - for (var i = 0; i < morphTargetsLength; i++) { - morphTargetsPosition[i] = { - name: morphTargets[i].name, - data: [] - }; - } - this.morphTargets.position = morphTargetsPosition; - } - var morphNormals = geometry.morphNormals; - var morphNormalsLength = morphNormals.length; - var morphTargetsNormal; - if (morphNormalsLength > 0) { - morphTargetsNormal = []; - for (var _i = 0; _i < morphNormalsLength; _i++) { - morphTargetsNormal[_i] = { - name: morphNormals[_i].name, - data: [] - }; - } - this.morphTargets.normal = morphTargetsNormal; - } // skins - - var skinIndices = geometry.skinIndices; - var skinWeights = geometry.skinWeights; - var hasSkinIndices = skinIndices.length === vertices.length; - var hasSkinWeights = skinWeights.length === vertices.length; // - if (vertices.length > 0 && faces.length === 0) { - console.error('THREE.DirectGeometry: Faceless geometries are not supported.'); - } - for (var _i2 = 0; _i2 < faces.length; _i2++) { - var face = faces[_i2]; - this.vertices.push(vertices[face.a], vertices[face.b], vertices[face.c]); - var vertexNormals = face.vertexNormals; - if (vertexNormals.length === 3) { - this.normals.push(vertexNormals[0], vertexNormals[1], vertexNormals[2]); - } else { - var normal = face.normal; - this.normals.push(normal, normal, normal); - } - var vertexColors = face.vertexColors; - if (vertexColors.length === 3) { - this.colors.push(vertexColors[0], vertexColors[1], vertexColors[2]); - } else { - var color = face.color; - this.colors.push(color, color, color); - } - if (hasFaceVertexUv === true) { - var vertexUvs = faceVertexUvs[0][_i2]; - if (vertexUvs !== undefined) { - this.uvs.push(vertexUvs[0], vertexUvs[1], vertexUvs[2]); - } else { - console.warn('THREE.DirectGeometry.fromGeometry(): Undefined vertexUv ', _i2); - this.uvs.push(new Vector2(), new Vector2(), new Vector2()); - } - } - if (hasFaceVertexUv2 === true) { - var _vertexUvs = faceVertexUvs[1][_i2]; - if (_vertexUvs !== undefined) { - this.uvs2.push(_vertexUvs[0], _vertexUvs[1], _vertexUvs[2]); - } else { - console.warn('THREE.DirectGeometry.fromGeometry(): Undefined vertexUv2 ', _i2); - this.uvs2.push(new Vector2(), new Vector2(), new Vector2()); - } - } // morphs - - for (var j = 0; j < morphTargetsLength; j++) { - var morphTarget = morphTargets[j].vertices; - morphTargetsPosition[j].data.push(morphTarget[face.a], morphTarget[face.b], morphTarget[face.c]); - } - for (var _j = 0; _j < morphNormalsLength; _j++) { - var morphNormal = morphNormals[_j].vertexNormals[_i2]; - morphTargetsNormal[_j].data.push(morphNormal.a, morphNormal.b, morphNormal.c); - } // skins - - if (hasSkinIndices) { - this.skinIndices.push(skinIndices[face.a], skinIndices[face.b], skinIndices[face.c]); - } - if (hasSkinWeights) { - this.skinWeights.push(skinWeights[face.a], skinWeights[face.b], skinWeights[face.c]); - } - } - this.computeGroups(geometry); - this.verticesNeedUpdate = geometry.verticesNeedUpdate; - this.normalsNeedUpdate = geometry.normalsNeedUpdate; - this.colorsNeedUpdate = geometry.colorsNeedUpdate; - this.uvsNeedUpdate = geometry.uvsNeedUpdate; - this.groupsNeedUpdate = geometry.groupsNeedUpdate; - if (geometry.boundingSphere !== null) { - this.boundingSphere = geometry.boundingSphere.clone(); - } - if (geometry.boundingBox !== null) { - this.boundingBox = geometry.boundingBox.clone(); - } - return this; - }; - return DirectGeometry; - }(); - function arrayMax(array) { - if (array.length === 0) return -Infinity; - var max = array[0]; - for (var i = 1, l = array.length; i < l; ++i) { - if (array[i] > max) max = array[i]; - } - return max; - } - var TYPED_ARRAYS = { - Int8Array: Int8Array, - Uint8Array: Uint8Array, - // Workaround for IE11 pre KB2929437. See #11440 - Uint8ClampedArray: typeof Uint8ClampedArray !== 'undefined' ? Uint8ClampedArray : Uint8Array, - Int16Array: Int16Array, - Uint16Array: Uint16Array, - Int32Array: Int32Array, - Uint32Array: Uint32Array, - Float32Array: Float32Array, - Float64Array: Float64Array - }; - function getTypedArray(type, buffer) { - return new TYPED_ARRAYS[type](buffer); - } - var _bufferGeometryId = 1; // BufferGeometry uses odd numbers as Id - var _m1$2 = new Matrix4(); - var _obj = new Object3D(); - var _offset = new Vector3(); - var _box$2 = new Box3(); - var _boxMorphTargets = new Box3(); - var _vector$4 = new Vector3(); - function BufferGeometry() { - Object.defineProperty(this, 'id', { - value: _bufferGeometryId += 2 - }); - this.uuid = MathUtils.generateUUID(); - this.name = ''; - this.type = 'BufferGeometry'; - this.index = null; - this.attributes = {}; - this.morphAttributes = {}; - this.morphTargetsRelative = false; - this.groups = []; - this.boundingBox = null; - this.boundingSphere = null; - this.drawRange = { - start: 0, - count: Infinity - }; - this.userData = {}; - } - BufferGeometry.prototype = Object.assign(Object.create(EventDispatcher.prototype), { - constructor: BufferGeometry, - isBufferGeometry: true, - getIndex: function getIndex() { - return this.index; - }, - setIndex: function setIndex(index) { - if (Array.isArray(index)) { - this.index = new (arrayMax(index) > 65535 ? Uint32BufferAttribute : Uint16BufferAttribute)(index, 1); - } else { - this.index = index; - } - return this; - }, - getAttribute: function getAttribute(name) { - return this.attributes[name]; - }, - setAttribute: function setAttribute(name, attribute) { - this.attributes[name] = attribute; - return this; - }, - deleteAttribute: function deleteAttribute(name) { - delete this.attributes[name]; - return this; - }, - hasAttribute: function hasAttribute(name) { - return this.attributes[name] !== undefined; - }, - addGroup: function addGroup(start, count, materialIndex) { - if (materialIndex === void 0) { - materialIndex = 0; - } - this.groups.push({ - start: start, - count: count, - materialIndex: materialIndex - }); - }, - clearGroups: function clearGroups() { - this.groups = []; - }, - setDrawRange: function setDrawRange(start, count) { - this.drawRange.start = start; - this.drawRange.count = count; - }, - applyMatrix4: function applyMatrix4(matrix) { - var position = this.attributes.position; - if (position !== undefined) { - position.applyMatrix4(matrix); - position.needsUpdate = true; - } - var normal = this.attributes.normal; - if (normal !== undefined) { - var normalMatrix = new Matrix3().getNormalMatrix(matrix); - normal.applyNormalMatrix(normalMatrix); - normal.needsUpdate = true; - } - var tangent = this.attributes.tangent; - if (tangent !== undefined) { - tangent.transformDirection(matrix); - tangent.needsUpdate = true; - } - if (this.boundingBox !== null) { - this.computeBoundingBox(); - } - if (this.boundingSphere !== null) { - this.computeBoundingSphere(); - } - return this; - }, - rotateX: function rotateX(angle) { - // rotate geometry around world x-axis - _m1$2.makeRotationX(angle); - this.applyMatrix4(_m1$2); - return this; - }, - rotateY: function rotateY(angle) { - // rotate geometry around world y-axis - _m1$2.makeRotationY(angle); - this.applyMatrix4(_m1$2); - return this; - }, - rotateZ: function rotateZ(angle) { - // rotate geometry around world z-axis - _m1$2.makeRotationZ(angle); - this.applyMatrix4(_m1$2); - return this; - }, - translate: function translate(x, y, z) { - // translate geometry - _m1$2.makeTranslation(x, y, z); - this.applyMatrix4(_m1$2); - return this; - }, - scale: function scale(x, y, z) { - // scale geometry - _m1$2.makeScale(x, y, z); - this.applyMatrix4(_m1$2); - return this; - }, - lookAt: function lookAt(vector) { - _obj.lookAt(vector); - _obj.updateMatrix(); - this.applyMatrix4(_obj.matrix); - return this; - }, - center: function center() { - this.computeBoundingBox(); - this.boundingBox.getCenter(_offset).negate(); - this.translate(_offset.x, _offset.y, _offset.z); - return this; - }, - setFromObject: function setFromObject(object) { - // console.log( 'THREE.BufferGeometry.setFromObject(). Converting', object, this ); - var geometry = object.geometry; - if (object.isPoints || object.isLine) { - var positions = new Float32BufferAttribute(geometry.vertices.length * 3, 3); - var colors = new Float32BufferAttribute(geometry.colors.length * 3, 3); - this.setAttribute('position', positions.copyVector3sArray(geometry.vertices)); - this.setAttribute('color', colors.copyColorsArray(geometry.colors)); - if (geometry.lineDistances && geometry.lineDistances.length === geometry.vertices.length) { - var lineDistances = new Float32BufferAttribute(geometry.lineDistances.length, 1); - this.setAttribute('lineDistance', lineDistances.copyArray(geometry.lineDistances)); - } - if (geometry.boundingSphere !== null) { - this.boundingSphere = geometry.boundingSphere.clone(); - } - if (geometry.boundingBox !== null) { - this.boundingBox = geometry.boundingBox.clone(); - } - } else if (object.isMesh) { - if (geometry && geometry.isGeometry) { - this.fromGeometry(geometry); - } - } - return this; - }, - setFromPoints: function setFromPoints(points) { - var position = []; - for (var i = 0, l = points.length; i < l; i++) { - var point = points[i]; - position.push(point.x, point.y, point.z || 0); - } - this.setAttribute('position', new Float32BufferAttribute(position, 3)); - return this; - }, - updateFromObject: function updateFromObject(object) { - var geometry = object.geometry; - if (object.isMesh) { - var direct = geometry.__directGeometry; - if (geometry.elementsNeedUpdate === true) { - direct = undefined; - geometry.elementsNeedUpdate = false; - } - if (direct === undefined) { - return this.fromGeometry(geometry); - } - direct.verticesNeedUpdate = geometry.verticesNeedUpdate; - direct.normalsNeedUpdate = geometry.normalsNeedUpdate; - direct.colorsNeedUpdate = geometry.colorsNeedUpdate; - direct.uvsNeedUpdate = geometry.uvsNeedUpdate; - direct.groupsNeedUpdate = geometry.groupsNeedUpdate; - geometry.verticesNeedUpdate = false; - geometry.normalsNeedUpdate = false; - geometry.colorsNeedUpdate = false; - geometry.uvsNeedUpdate = false; - geometry.groupsNeedUpdate = false; - geometry = direct; - } - if (geometry.verticesNeedUpdate === true) { - var attribute = this.attributes.position; - if (attribute !== undefined) { - attribute.copyVector3sArray(geometry.vertices); - attribute.needsUpdate = true; - } - geometry.verticesNeedUpdate = false; - } - if (geometry.normalsNeedUpdate === true) { - var _attribute = this.attributes.normal; - if (_attribute !== undefined) { - _attribute.copyVector3sArray(geometry.normals); - _attribute.needsUpdate = true; - } - geometry.normalsNeedUpdate = false; - } - if (geometry.colorsNeedUpdate === true) { - var _attribute2 = this.attributes.color; - if (_attribute2 !== undefined) { - _attribute2.copyColorsArray(geometry.colors); - _attribute2.needsUpdate = true; - } - geometry.colorsNeedUpdate = false; - } - if (geometry.uvsNeedUpdate) { - var _attribute3 = this.attributes.uv; - if (_attribute3 !== undefined) { - _attribute3.copyVector2sArray(geometry.uvs); - _attribute3.needsUpdate = true; - } - geometry.uvsNeedUpdate = false; - } - if (geometry.lineDistancesNeedUpdate) { - var _attribute4 = this.attributes.lineDistance; - if (_attribute4 !== undefined) { - _attribute4.copyArray(geometry.lineDistances); - _attribute4.needsUpdate = true; - } - geometry.lineDistancesNeedUpdate = false; - } - if (geometry.groupsNeedUpdate) { - geometry.computeGroups(object.geometry); - this.groups = geometry.groups; - geometry.groupsNeedUpdate = false; - } - return this; - }, - fromGeometry: function fromGeometry(geometry) { - geometry.__directGeometry = new DirectGeometry().fromGeometry(geometry); - return this.fromDirectGeometry(geometry.__directGeometry); - }, - fromDirectGeometry: function fromDirectGeometry(geometry) { - var positions = new Float32Array(geometry.vertices.length * 3); - this.setAttribute('position', new BufferAttribute(positions, 3).copyVector3sArray(geometry.vertices)); - if (geometry.normals.length > 0) { - var normals = new Float32Array(geometry.normals.length * 3); - this.setAttribute('normal', new BufferAttribute(normals, 3).copyVector3sArray(geometry.normals)); - } - if (geometry.colors.length > 0) { - var colors = new Float32Array(geometry.colors.length * 3); - this.setAttribute('color', new BufferAttribute(colors, 3).copyColorsArray(geometry.colors)); - } - if (geometry.uvs.length > 0) { - var uvs = new Float32Array(geometry.uvs.length * 2); - this.setAttribute('uv', new BufferAttribute(uvs, 2).copyVector2sArray(geometry.uvs)); - } - if (geometry.uvs2.length > 0) { - var uvs2 = new Float32Array(geometry.uvs2.length * 2); - this.setAttribute('uv2', new BufferAttribute(uvs2, 2).copyVector2sArray(geometry.uvs2)); - } // groups - - this.groups = geometry.groups; // morphs - for (var name in geometry.morphTargets) { - var array = []; - var morphTargets = geometry.morphTargets[name]; - for (var i = 0, l = morphTargets.length; i < l; i++) { - var morphTarget = morphTargets[i]; - var attribute = new Float32BufferAttribute(morphTarget.data.length * 3, 3); - attribute.name = morphTarget.name; - array.push(attribute.copyVector3sArray(morphTarget.data)); - } - this.morphAttributes[name] = array; - } // skinning - - if (geometry.skinIndices.length > 0) { - var skinIndices = new Float32BufferAttribute(geometry.skinIndices.length * 4, 4); - this.setAttribute('skinIndex', skinIndices.copyVector4sArray(geometry.skinIndices)); - } - if (geometry.skinWeights.length > 0) { - var skinWeights = new Float32BufferAttribute(geometry.skinWeights.length * 4, 4); - this.setAttribute('skinWeight', skinWeights.copyVector4sArray(geometry.skinWeights)); - } // - - if (geometry.boundingSphere !== null) { - this.boundingSphere = geometry.boundingSphere.clone(); - } - if (geometry.boundingBox !== null) { - this.boundingBox = geometry.boundingBox.clone(); - } - return this; - }, - computeBoundingBox: function computeBoundingBox() { - if (this.boundingBox === null) { - this.boundingBox = new Box3(); - } - var position = this.attributes.position; - var morphAttributesPosition = this.morphAttributes.position; - if (position && position.isGLBufferAttribute) { - console.error('THREE.BufferGeometry.computeBoundingBox(): GLBufferAttribute requires a manual bounding box. Alternatively set "mesh.frustumCulled" to "false".', this); - this.boundingBox.set(new Vector3(-Infinity, -Infinity, -Infinity), new Vector3(+Infinity, +Infinity, +Infinity)); - return; - } - if (position !== undefined) { - this.boundingBox.setFromBufferAttribute(position); // process morph attributes if present - if (morphAttributesPosition) { - for (var i = 0, il = morphAttributesPosition.length; i < il; i++) { - var morphAttribute = morphAttributesPosition[i]; - _box$2.setFromBufferAttribute(morphAttribute); - if (this.morphTargetsRelative) { - _vector$4.addVectors(this.boundingBox.min, _box$2.min); - this.boundingBox.expandByPoint(_vector$4); - _vector$4.addVectors(this.boundingBox.max, _box$2.max); - this.boundingBox.expandByPoint(_vector$4); - } else { - this.boundingBox.expandByPoint(_box$2.min); - this.boundingBox.expandByPoint(_box$2.max); - } - } - } - } else { - this.boundingBox.makeEmpty(); - } - if (isNaN(this.boundingBox.min.x) || isNaN(this.boundingBox.min.y) || isNaN(this.boundingBox.min.z)) { - console.error('THREE.BufferGeometry.computeBoundingBox(): Computed min/max have NaN values. The "position" attribute is likely to have NaN values.', this); - } - }, - computeBoundingSphere: function computeBoundingSphere() { - if (this.boundingSphere === null) { - this.boundingSphere = new Sphere(); - } - var position = this.attributes.position; - var morphAttributesPosition = this.morphAttributes.position; - if (position && position.isGLBufferAttribute) { - console.error('THREE.BufferGeometry.computeBoundingSphere(): GLBufferAttribute requires a manual bounding sphere. Alternatively set "mesh.frustumCulled" to "false".', this); - this.boundingSphere.set(new Vector3(), Infinity); - return; - } - if (position) { - // first, find the center of the bounding sphere - var center = this.boundingSphere.center; - _box$2.setFromBufferAttribute(position); // process morph attributes if present - - if (morphAttributesPosition) { - for (var i = 0, il = morphAttributesPosition.length; i < il; i++) { - var morphAttribute = morphAttributesPosition[i]; - _boxMorphTargets.setFromBufferAttribute(morphAttribute); - if (this.morphTargetsRelative) { - _vector$4.addVectors(_box$2.min, _boxMorphTargets.min); - _box$2.expandByPoint(_vector$4); - _vector$4.addVectors(_box$2.max, _boxMorphTargets.max); - _box$2.expandByPoint(_vector$4); - } else { - _box$2.expandByPoint(_boxMorphTargets.min); - _box$2.expandByPoint(_boxMorphTargets.max); - } - } - } - _box$2.getCenter(center); // second, try to find a boundingSphere with a radius smaller than the - // boundingSphere of the boundingBox: sqrt(3) smaller in the best case - - var maxRadiusSq = 0; - for (var _i = 0, _il = position.count; _i < _il; _i++) { - _vector$4.fromBufferAttribute(position, _i); - maxRadiusSq = Math.max(maxRadiusSq, center.distanceToSquared(_vector$4)); - } // process morph attributes if present - - if (morphAttributesPosition) { - for (var _i2 = 0, _il2 = morphAttributesPosition.length; _i2 < _il2; _i2++) { - var _morphAttribute = morphAttributesPosition[_i2]; - var morphTargetsRelative = this.morphTargetsRelative; - for (var j = 0, jl = _morphAttribute.count; j < jl; j++) { - _vector$4.fromBufferAttribute(_morphAttribute, j); - if (morphTargetsRelative) { - _offset.fromBufferAttribute(position, j); - _vector$4.add(_offset); - } - maxRadiusSq = Math.max(maxRadiusSq, center.distanceToSquared(_vector$4)); - } - } - } - this.boundingSphere.radius = Math.sqrt(maxRadiusSq); - if (isNaN(this.boundingSphere.radius)) { - console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.', this); - } - } - }, - computeFaceNormals: function computeFaceNormals() {// backwards compatibility - }, - computeVertexNormals: function computeVertexNormals() { - var index = this.index; - var positionAttribute = this.getAttribute('position'); - if (positionAttribute !== undefined) { - var normalAttribute = this.getAttribute('normal'); - if (normalAttribute === undefined) { - normalAttribute = new BufferAttribute(new Float32Array(positionAttribute.count * 3), 3); - this.setAttribute('normal', normalAttribute); - } else { - // reset existing normals to zero - for (var i = 0, il = normalAttribute.count; i < il; i++) { - normalAttribute.setXYZ(i, 0, 0, 0); - } - } - var pA = new Vector3(), - pB = new Vector3(), - pC = new Vector3(); - var nA = new Vector3(), - nB = new Vector3(), - nC = new Vector3(); - var cb = new Vector3(), - ab = new Vector3(); // indexed elements - if (index) { - for (var _i3 = 0, _il3 = index.count; _i3 < _il3; _i3 += 3) { - var vA = index.getX(_i3 + 0); - var vB = index.getX(_i3 + 1); - var vC = index.getX(_i3 + 2); - pA.fromBufferAttribute(positionAttribute, vA); - pB.fromBufferAttribute(positionAttribute, vB); - pC.fromBufferAttribute(positionAttribute, vC); - cb.subVectors(pC, pB); - ab.subVectors(pA, pB); - cb.cross(ab); - nA.fromBufferAttribute(normalAttribute, vA); - nB.fromBufferAttribute(normalAttribute, vB); - nC.fromBufferAttribute(normalAttribute, vC); - nA.add(cb); - nB.add(cb); - nC.add(cb); - normalAttribute.setXYZ(vA, nA.x, nA.y, nA.z); - normalAttribute.setXYZ(vB, nB.x, nB.y, nB.z); - normalAttribute.setXYZ(vC, nC.x, nC.y, nC.z); - } - } else { - // non-indexed elements (unconnected triangle soup) - for (var _i4 = 0, _il4 = positionAttribute.count; _i4 < _il4; _i4 += 3) { - pA.fromBufferAttribute(positionAttribute, _i4 + 0); - pB.fromBufferAttribute(positionAttribute, _i4 + 1); - pC.fromBufferAttribute(positionAttribute, _i4 + 2); - cb.subVectors(pC, pB); - ab.subVectors(pA, pB); - cb.cross(ab); - normalAttribute.setXYZ(_i4 + 0, cb.x, cb.y, cb.z); - normalAttribute.setXYZ(_i4 + 1, cb.x, cb.y, cb.z); - normalAttribute.setXYZ(_i4 + 2, cb.x, cb.y, cb.z); - } - } - this.normalizeNormals(); - normalAttribute.needsUpdate = true; - } - }, - merge: function merge(geometry, offset) { - if (!(geometry && geometry.isBufferGeometry)) { - console.error('THREE.BufferGeometry.merge(): geometry not an instance of THREE.BufferGeometry.', geometry); - return; - } - if (offset === undefined) { - offset = 0; - console.warn('THREE.BufferGeometry.merge(): Overwriting original geometry, starting at offset=0. ' + 'Use BufferGeometryUtils.mergeBufferGeometries() for lossless merge.'); - } - var attributes = this.attributes; - for (var key in attributes) { - if (geometry.attributes[key] === undefined) continue; - var attribute1 = attributes[key]; - var attributeArray1 = attribute1.array; - var attribute2 = geometry.attributes[key]; - var attributeArray2 = attribute2.array; - var attributeOffset = attribute2.itemSize * offset; - var length = Math.min(attributeArray2.length, attributeArray1.length - attributeOffset); - for (var i = 0, j = attributeOffset; i < length; i++, j++) { - attributeArray1[j] = attributeArray2[i]; - } - } - return this; - }, - normalizeNormals: function normalizeNormals() { - var normals = this.attributes.normal; - for (var i = 0, il = normals.count; i < il; i++) { - _vector$4.fromBufferAttribute(normals, i); - _vector$4.normalize(); - normals.setXYZ(i, _vector$4.x, _vector$4.y, _vector$4.z); - } - }, - toNonIndexed: function toNonIndexed() { - function convertBufferAttribute(attribute, indices) { - var array = attribute.array; - var itemSize = attribute.itemSize; - var normalized = attribute.normalized; - var array2 = new array.constructor(indices.length * itemSize); - var index = 0, - index2 = 0; - for (var i = 0, l = indices.length; i < l; i++) { - index = indices[i] * itemSize; - for (var j = 0; j < itemSize; j++) { - array2[index2++] = array[index++]; - } - } - return new BufferAttribute(array2, itemSize, normalized); - } // - - if (this.index === null) { - console.warn('THREE.BufferGeometry.toNonIndexed(): Geometry is already non-indexed.'); - return this; - } - var geometry2 = new BufferGeometry(); - var indices = this.index.array; - var attributes = this.attributes; // attributes - for (var name in attributes) { - var attribute = attributes[name]; - var newAttribute = convertBufferAttribute(attribute, indices); - geometry2.setAttribute(name, newAttribute); - } // morph attributes - - var morphAttributes = this.morphAttributes; - for (var _name in morphAttributes) { - var morphArray = []; - var morphAttribute = morphAttributes[_name]; // morphAttribute: array of Float32BufferAttributes - for (var i = 0, il = morphAttribute.length; i < il; i++) { - var _attribute5 = morphAttribute[i]; - var _newAttribute = convertBufferAttribute(_attribute5, indices); - morphArray.push(_newAttribute); - } - geometry2.morphAttributes[_name] = morphArray; - } - geometry2.morphTargetsRelative = this.morphTargetsRelative; // groups - var groups = this.groups; - for (var _i5 = 0, l = groups.length; _i5 < l; _i5++) { - var group = groups[_i5]; - geometry2.addGroup(group.start, group.count, group.materialIndex); - } - return geometry2; - }, - toJSON: function toJSON() { - var data = { - metadata: { - version: 4.5, - type: 'BufferGeometry', - generator: 'BufferGeometry.toJSON' - } - }; // standard BufferGeometry serialization - data.uuid = this.uuid; - data.type = this.type; - if (this.name !== '') data.name = this.name; - if (Object.keys(this.userData).length > 0) data.userData = this.userData; - if (this.parameters !== undefined) { - var parameters = this.parameters; - for (var key in parameters) { - if (parameters[key] !== undefined) data[key] = parameters[key]; - } - return data; - } - data.data = { - attributes: {} - }; - var index = this.index; - if (index !== null) { - data.data.index = { - type: index.array.constructor.name, - array: Array.prototype.slice.call(index.array) - }; - } - var attributes = this.attributes; - for (var _key in attributes) { - var attribute = attributes[_key]; - var attributeData = attribute.toJSON(data.data); - if (attribute.name !== '') attributeData.name = attribute.name; - data.data.attributes[_key] = attributeData; - } - var morphAttributes = {}; - var hasMorphAttributes = false; - for (var _key2 in this.morphAttributes) { - var attributeArray = this.morphAttributes[_key2]; - var array = []; - for (var i = 0, il = attributeArray.length; i < il; i++) { - var _attribute6 = attributeArray[i]; - var _attributeData = _attribute6.toJSON(data.data); - if (_attribute6.name !== '') _attributeData.name = _attribute6.name; - array.push(_attributeData); - } - if (array.length > 0) { - morphAttributes[_key2] = array; - hasMorphAttributes = true; - } - } - if (hasMorphAttributes) { - data.data.morphAttributes = morphAttributes; - data.data.morphTargetsRelative = this.morphTargetsRelative; - } - var groups = this.groups; - if (groups.length > 0) { - data.data.groups = JSON.parse(JSON.stringify(groups)); - } - var boundingSphere = this.boundingSphere; - if (boundingSphere !== null) { - data.data.boundingSphere = { - center: boundingSphere.center.toArray(), - radius: boundingSphere.radius - }; - } - return data; - }, - clone: function clone() { - /* - // Handle primitives - const parameters = this.parameters; - if ( parameters !== undefined ) { - const values = []; - for ( const key in parameters ) { - values.push( parameters[ key ] ); - } - const geometry = Object.create( this.constructor.prototype ); - this.constructor.apply( geometry, values ); - return geometry; - } - return new this.constructor().copy( this ); - */ - return new BufferGeometry().copy(this); - }, - copy: function copy(source) { - // reset - this.index = null; - this.attributes = {}; - this.morphAttributes = {}; - this.groups = []; - this.boundingBox = null; - this.boundingSphere = null; // used for storing cloned, shared data - var data = {}; // name - this.name = source.name; // index - var index = source.index; - if (index !== null) { - this.setIndex(index.clone(data)); - } // attributes - - var attributes = source.attributes; - for (var name in attributes) { - var attribute = attributes[name]; - this.setAttribute(name, attribute.clone(data)); - } // morph attributes - - var morphAttributes = source.morphAttributes; - for (var _name2 in morphAttributes) { - var array = []; - var morphAttribute = morphAttributes[_name2]; // morphAttribute: array of Float32BufferAttributes - for (var i = 0, l = morphAttribute.length; i < l; i++) { - array.push(morphAttribute[i].clone(data)); - } - this.morphAttributes[_name2] = array; - } - this.morphTargetsRelative = source.morphTargetsRelative; // groups - var groups = source.groups; - for (var _i6 = 0, _l = groups.length; _i6 < _l; _i6++) { - var group = groups[_i6]; - this.addGroup(group.start, group.count, group.materialIndex); - } // bounding box - - var boundingBox = source.boundingBox; - if (boundingBox !== null) { - this.boundingBox = boundingBox.clone(); - } // bounding sphere - - var boundingSphere = source.boundingSphere; - if (boundingSphere !== null) { - this.boundingSphere = boundingSphere.clone(); - } // draw range - - this.drawRange.start = source.drawRange.start; - this.drawRange.count = source.drawRange.count; // user data - this.userData = source.userData; - return this; - }, - dispose: function dispose() { - this.dispatchEvent({ - type: 'dispose' - }); - } - }); - var _inverseMatrix = new Matrix4(); - var _ray = new Ray(); - var _sphere = new Sphere(); - var _vA = new Vector3(); - var _vB = new Vector3(); - var _vC = new Vector3(); - var _tempA = new Vector3(); - var _tempB = new Vector3(); - var _tempC = new Vector3(); - var _morphA = new Vector3(); - var _morphB = new Vector3(); - var _morphC = new Vector3(); - var _uvA = new Vector2(); - var _uvB = new Vector2(); - var _uvC = new Vector2(); - var _intersectionPoint = new Vector3(); - var _intersectionPointWorld = new Vector3(); - function Mesh(geometry, material) { - Object3D.call(this); - this.type = 'Mesh'; - this.geometry = geometry !== undefined ? geometry : new BufferGeometry(); - this.material = material !== undefined ? material : new MeshBasicMaterial(); - this.updateMorphTargets(); - } - Mesh.prototype = Object.assign(Object.create(Object3D.prototype), { - constructor: Mesh, - isMesh: true, - copy: function copy(source) { - Object3D.prototype.copy.call(this, source); - if (source.morphTargetInfluences !== undefined) { - this.morphTargetInfluences = source.morphTargetInfluences.slice(); - } - if (source.morphTargetDictionary !== undefined) { - this.morphTargetDictionary = Object.assign({}, source.morphTargetDictionary); - } - this.material = source.material; - this.geometry = source.geometry; - return this; - }, - updateMorphTargets: function updateMorphTargets() { - var geometry = this.geometry; - if (geometry.isBufferGeometry) { - var morphAttributes = geometry.morphAttributes; - var keys = Object.keys(morphAttributes); - if (keys.length > 0) { - var morphAttribute = morphAttributes[keys[0]]; - if (morphAttribute !== undefined) { - this.morphTargetInfluences = []; - this.morphTargetDictionary = {}; - for (var m = 0, ml = morphAttribute.length; m < ml; m++) { - var name = morphAttribute[m].name || String(m); - this.morphTargetInfluences.push(0); - this.morphTargetDictionary[name] = m; - } - } - } - } else { - var morphTargets = geometry.morphTargets; - if (morphTargets !== undefined && morphTargets.length > 0) { - console.error('THREE.Mesh.updateMorphTargets() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.'); - } - } - }, - raycast: function raycast(raycaster, intersects) { - var geometry = this.geometry; - var material = this.material; - var matrixWorld = this.matrixWorld; - if (material === undefined) return; // Checking boundingSphere distance to ray - if (geometry.boundingSphere === null) geometry.computeBoundingSphere(); - _sphere.copy(geometry.boundingSphere); - _sphere.applyMatrix4(matrixWorld); - if (raycaster.ray.intersectsSphere(_sphere) === false) return; // - _inverseMatrix.copy(matrixWorld).invert(); - _ray.copy(raycaster.ray).applyMatrix4(_inverseMatrix); // Check boundingBox before continuing - - if (geometry.boundingBox !== null) { - if (_ray.intersectsBox(geometry.boundingBox) === false) return; - } - var intersection; - if (geometry.isBufferGeometry) { - var index = geometry.index; - var position = geometry.attributes.position; - var morphPosition = geometry.morphAttributes.position; - var morphTargetsRelative = geometry.morphTargetsRelative; - var uv = geometry.attributes.uv; - var uv2 = geometry.attributes.uv2; - var groups = geometry.groups; - var drawRange = geometry.drawRange; - if (index !== null) { - // indexed buffer geometry - if (Array.isArray(material)) { - for (var i = 0, il = groups.length; i < il; i++) { - var group = groups[i]; - var groupMaterial = material[group.materialIndex]; - var start = Math.max(group.start, drawRange.start); - var end = Math.min(group.start + group.count, drawRange.start + drawRange.count); - for (var j = start, jl = end; j < jl; j += 3) { - var a = index.getX(j); - var b = index.getX(j + 1); - var c = index.getX(j + 2); - intersection = checkBufferGeometryIntersection(this, groupMaterial, raycaster, _ray, position, morphPosition, morphTargetsRelative, uv, uv2, a, b, c); - if (intersection) { - intersection.faceIndex = Math.floor(j / 3); // triangle number in indexed buffer semantics - intersection.face.materialIndex = group.materialIndex; - intersects.push(intersection); - } - } - } - } else { - var _start = Math.max(0, drawRange.start); - var _end = Math.min(index.count, drawRange.start + drawRange.count); - for (var _i = _start, _il = _end; _i < _il; _i += 3) { - var _a = index.getX(_i); - var _b = index.getX(_i + 1); - var _c = index.getX(_i + 2); - intersection = checkBufferGeometryIntersection(this, material, raycaster, _ray, position, morphPosition, morphTargetsRelative, uv, uv2, _a, _b, _c); - if (intersection) { - intersection.faceIndex = Math.floor(_i / 3); // triangle number in indexed buffer semantics - intersects.push(intersection); - } - } - } - } else if (position !== undefined) { - // non-indexed buffer geometry - if (Array.isArray(material)) { - for (var _i2 = 0, _il2 = groups.length; _i2 < _il2; _i2++) { - var _group = groups[_i2]; - var _groupMaterial = material[_group.materialIndex]; - var _start2 = Math.max(_group.start, drawRange.start); - var _end2 = Math.min(_group.start + _group.count, drawRange.start + drawRange.count); - for (var _j = _start2, _jl = _end2; _j < _jl; _j += 3) { - var _a2 = _j; - var _b2 = _j + 1; - var _c2 = _j + 2; - intersection = checkBufferGeometryIntersection(this, _groupMaterial, raycaster, _ray, position, morphPosition, morphTargetsRelative, uv, uv2, _a2, _b2, _c2); - if (intersection) { - intersection.faceIndex = Math.floor(_j / 3); // triangle number in non-indexed buffer semantics - intersection.face.materialIndex = _group.materialIndex; - intersects.push(intersection); - } - } - } - } else { - var _start3 = Math.max(0, drawRange.start); - var _end3 = Math.min(position.count, drawRange.start + drawRange.count); - for (var _i3 = _start3, _il3 = _end3; _i3 < _il3; _i3 += 3) { - var _a3 = _i3; - var _b3 = _i3 + 1; - var _c3 = _i3 + 2; - intersection = checkBufferGeometryIntersection(this, material, raycaster, _ray, position, morphPosition, morphTargetsRelative, uv, uv2, _a3, _b3, _c3); - if (intersection) { - intersection.faceIndex = Math.floor(_i3 / 3); // triangle number in non-indexed buffer semantics - intersects.push(intersection); - } - } - } - } - } else if (geometry.isGeometry) { - var isMultiMaterial = Array.isArray(material); - var vertices = geometry.vertices; - var faces = geometry.faces; - var uvs; - var faceVertexUvs = geometry.faceVertexUvs[0]; - if (faceVertexUvs.length > 0) uvs = faceVertexUvs; - for (var f = 0, fl = faces.length; f < fl; f++) { - var face = faces[f]; - var faceMaterial = isMultiMaterial ? material[face.materialIndex] : material; - if (faceMaterial === undefined) continue; - var fvA = vertices[face.a]; - var fvB = vertices[face.b]; - var fvC = vertices[face.c]; - intersection = checkIntersection(this, faceMaterial, raycaster, _ray, fvA, fvB, fvC, _intersectionPoint); - if (intersection) { - if (uvs && uvs[f]) { - var uvs_f = uvs[f]; - _uvA.copy(uvs_f[0]); - _uvB.copy(uvs_f[1]); - _uvC.copy(uvs_f[2]); - intersection.uv = Triangle.getUV(_intersectionPoint, fvA, fvB, fvC, _uvA, _uvB, _uvC, new Vector2()); - } - intersection.face = face; - intersection.faceIndex = f; - intersects.push(intersection); - } - } - } - } - }); - function checkIntersection(object, material, raycaster, ray, pA, pB, pC, point) { - var intersect; - if (material.side === BackSide) { - intersect = ray.intersectTriangle(pC, pB, pA, true, point); - } else { - intersect = ray.intersectTriangle(pA, pB, pC, material.side !== DoubleSide, point); - } - if (intersect === null) return null; - _intersectionPointWorld.copy(point); - _intersectionPointWorld.applyMatrix4(object.matrixWorld); - var distance = raycaster.ray.origin.distanceTo(_intersectionPointWorld); - if (distance < raycaster.near || distance > raycaster.far) return null; - return { - distance: distance, - point: _intersectionPointWorld.clone(), - object: object - }; - } - function checkBufferGeometryIntersection(object, material, raycaster, ray, position, morphPosition, morphTargetsRelative, uv, uv2, a, b, c) { - _vA.fromBufferAttribute(position, a); - _vB.fromBufferAttribute(position, b); - _vC.fromBufferAttribute(position, c); - var morphInfluences = object.morphTargetInfluences; - if (material.morphTargets && morphPosition && morphInfluences) { - _morphA.set(0, 0, 0); - _morphB.set(0, 0, 0); - _morphC.set(0, 0, 0); - for (var i = 0, il = morphPosition.length; i < il; i++) { - var influence = morphInfluences[i]; - var morphAttribute = morphPosition[i]; - if (influence === 0) continue; - _tempA.fromBufferAttribute(morphAttribute, a); - _tempB.fromBufferAttribute(morphAttribute, b); - _tempC.fromBufferAttribute(morphAttribute, c); - if (morphTargetsRelative) { - _morphA.addScaledVector(_tempA, influence); - _morphB.addScaledVector(_tempB, influence); - _morphC.addScaledVector(_tempC, influence); - } else { - _morphA.addScaledVector(_tempA.sub(_vA), influence); - _morphB.addScaledVector(_tempB.sub(_vB), influence); - _morphC.addScaledVector(_tempC.sub(_vC), influence); - } - } - _vA.add(_morphA); - _vB.add(_morphB); - _vC.add(_morphC); - } - if (object.isSkinnedMesh) { - object.boneTransform(a, _vA); - object.boneTransform(b, _vB); - object.boneTransform(c, _vC); - } - var intersection = checkIntersection(object, material, raycaster, ray, _vA, _vB, _vC, _intersectionPoint); - if (intersection) { - if (uv) { - _uvA.fromBufferAttribute(uv, a); - _uvB.fromBufferAttribute(uv, b); - _uvC.fromBufferAttribute(uv, c); - intersection.uv = Triangle.getUV(_intersectionPoint, _vA, _vB, _vC, _uvA, _uvB, _uvC, new Vector2()); - } - if (uv2) { - _uvA.fromBufferAttribute(uv2, a); - _uvB.fromBufferAttribute(uv2, b); - _uvC.fromBufferAttribute(uv2, c); - intersection.uv2 = Triangle.getUV(_intersectionPoint, _vA, _vB, _vC, _uvA, _uvB, _uvC, new Vector2()); - } - var face = new Face3(a, b, c); - Triangle.getNormal(_vA, _vB, _vC, face.normal); - intersection.face = face; - } - return intersection; - } - var BoxBufferGeometry = /*#__PURE__*/function (_BufferGeometry) { - _inheritsLoose(BoxBufferGeometry, _BufferGeometry); - function BoxBufferGeometry(width, height, depth, widthSegments, heightSegments, depthSegments) { - var _this; - if (width === void 0) { - width = 1; - } - if (height === void 0) { - height = 1; - } - if (depth === void 0) { - depth = 1; - } - if (widthSegments === void 0) { - widthSegments = 1; - } - if (heightSegments === void 0) { - heightSegments = 1; - } - if (depthSegments === void 0) { - depthSegments = 1; - } - _this = _BufferGeometry.call(this) || this; - _this.type = 'BoxBufferGeometry'; - _this.parameters = { - width: width, - height: height, - depth: depth, - widthSegments: widthSegments, - heightSegments: heightSegments, - depthSegments: depthSegments - }; - var scope = _assertThisInitialized(_this); // segments - - widthSegments = Math.floor(widthSegments); - heightSegments = Math.floor(heightSegments); - depthSegments = Math.floor(depthSegments); // buffers - var indices = []; - var vertices = []; - var normals = []; - var uvs = []; // helper variables - var numberOfVertices = 0; - var groupStart = 0; // build each side of the box geometry - buildPlane('z', 'y', 'x', -1, -1, depth, height, width, depthSegments, heightSegments, 0); // px - buildPlane('z', 'y', 'x', 1, -1, depth, height, -width, depthSegments, heightSegments, 1); // nx - buildPlane('x', 'z', 'y', 1, 1, width, depth, height, widthSegments, depthSegments, 2); // py - buildPlane('x', 'z', 'y', 1, -1, width, depth, -height, widthSegments, depthSegments, 3); // ny - buildPlane('x', 'y', 'z', 1, -1, width, height, depth, widthSegments, heightSegments, 4); // pz - buildPlane('x', 'y', 'z', -1, -1, width, height, -depth, widthSegments, heightSegments, 5); // nz - // build geometry - _this.setIndex(indices); - _this.setAttribute('position', new Float32BufferAttribute(vertices, 3)); - _this.setAttribute('normal', new Float32BufferAttribute(normals, 3)); - _this.setAttribute('uv', new Float32BufferAttribute(uvs, 2)); - function buildPlane(u, v, w, udir, vdir, width, height, depth, gridX, gridY, materialIndex) { - var segmentWidth = width / gridX; - var segmentHeight = height / gridY; - var widthHalf = width / 2; - var heightHalf = height / 2; - var depthHalf = depth / 2; - var gridX1 = gridX + 1; - var gridY1 = gridY + 1; - var vertexCounter = 0; - var groupCount = 0; - var vector = new Vector3(); // generate vertices, normals and uvs - for (var iy = 0; iy < gridY1; iy++) { - var y = iy * segmentHeight - heightHalf; - for (var ix = 0; ix < gridX1; ix++) { - var x = ix * segmentWidth - widthHalf; // set values to correct vector component - vector[u] = x * udir; - vector[v] = y * vdir; - vector[w] = depthHalf; // now apply vector to vertex buffer - vertices.push(vector.x, vector.y, vector.z); // set values to correct vector component - vector[u] = 0; - vector[v] = 0; - vector[w] = depth > 0 ? 1 : -1; // now apply vector to normal buffer - normals.push(vector.x, vector.y, vector.z); // uvs - uvs.push(ix / gridX); - uvs.push(1 - iy / gridY); // counters - vertexCounter += 1; - } - } // indices - // 1. you need three indices to draw a single face - // 2. a single segment consists of two faces - // 3. so we need to generate six (2*3) indices per segment - - for (var _iy = 0; _iy < gridY; _iy++) { - for (var _ix = 0; _ix < gridX; _ix++) { - var a = numberOfVertices + _ix + gridX1 * _iy; - var b = numberOfVertices + _ix + gridX1 * (_iy + 1); - var c = numberOfVertices + (_ix + 1) + gridX1 * (_iy + 1); - var d = numberOfVertices + (_ix + 1) + gridX1 * _iy; // faces - indices.push(a, b, d); - indices.push(b, c, d); // increase counter - groupCount += 6; - } - } // add a group to the geometry. this will ensure multi material support - - scope.addGroup(groupStart, groupCount, materialIndex); // calculate new start value for groups - groupStart += groupCount; // update total number of vertices - numberOfVertices += vertexCounter; - } - return _this; - } - return BoxBufferGeometry; - }(BufferGeometry); - /** - * Uniform Utilities - */ - function cloneUniforms(src) { - var dst = {}; - for (var u in src) { - dst[u] = {}; - for (var p in src[u]) { - var property = src[u][p]; - if (property && (property.isColor || property.isMatrix3 || property.isMatrix4 || property.isVector2 || property.isVector3 || property.isVector4 || property.isTexture)) { - dst[u][p] = property.clone(); - } else if (Array.isArray(property)) { - dst[u][p] = property.slice(); - } else { - dst[u][p] = property; - } - } - } - return dst; - } - function mergeUniforms(uniforms) { - var merged = {}; - for (var u = 0; u < uniforms.length; u++) { - var tmp = cloneUniforms(uniforms[u]); - for (var p in tmp) { - merged[p] = tmp[p]; - } - } - return merged; - } // Legacy - var UniformsUtils = { - clone: cloneUniforms, - merge: mergeUniforms - }; - var default_vertex = "void main() {\n\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n}"; - var default_fragment = "void main() {\n\tgl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );\n}"; - /** - * parameters = { - * defines: { "label" : "value" }, - * uniforms: { "parameter1": { value: 1.0 }, "parameter2": { value2: 2 } }, - * - * fragmentShader: , - * vertexShader: , - * - * wireframe: , - * wireframeLinewidth: , - * - * lights: , - * - * skinning: , - * morphTargets: , - * morphNormals: - * } - */ - function ShaderMaterial(parameters) { - Material.call(this); - this.type = 'ShaderMaterial'; - this.defines = {}; - this.uniforms = {}; - this.vertexShader = default_vertex; - this.fragmentShader = default_fragment; - this.linewidth = 1; - this.wireframe = false; - this.wireframeLinewidth = 1; - this.fog = false; // set to use scene fog - this.lights = false; // set to use scene lights - this.clipping = false; // set to use user-defined clipping planes - this.skinning = false; // set to use skinning attribute streams - this.morphTargets = false; // set to use morph targets - this.morphNormals = false; // set to use morph normals - this.extensions = { - derivatives: false, - // set to use derivatives - fragDepth: false, - // set to use fragment depth values - drawBuffers: false, - // set to use draw buffers - shaderTextureLOD: false // set to use shader texture LOD - }; // When rendered geometry doesn't include these attributes but the material does, - // use these default values in WebGL. This avoids errors when buffer data is missing. - this.defaultAttributeValues = { - 'color': [1, 1, 1], - 'uv': [0, 0], - 'uv2': [0, 0] - }; - this.index0AttributeName = undefined; - this.uniformsNeedUpdate = false; - this.glslVersion = null; - if (parameters !== undefined) { - if (parameters.attributes !== undefined) { - console.error('THREE.ShaderMaterial: attributes should now be defined in THREE.BufferGeometry instead.'); - } - this.setValues(parameters); - } - } - ShaderMaterial.prototype = Object.create(Material.prototype); - ShaderMaterial.prototype.constructor = ShaderMaterial; - ShaderMaterial.prototype.isShaderMaterial = true; - ShaderMaterial.prototype.copy = function (source) { - Material.prototype.copy.call(this, source); - this.fragmentShader = source.fragmentShader; - this.vertexShader = source.vertexShader; - this.uniforms = cloneUniforms(source.uniforms); - this.defines = Object.assign({}, source.defines); - this.wireframe = source.wireframe; - this.wireframeLinewidth = source.wireframeLinewidth; - this.lights = source.lights; - this.clipping = source.clipping; - this.skinning = source.skinning; - this.morphTargets = source.morphTargets; - this.morphNormals = source.morphNormals; - this.extensions = Object.assign({}, source.extensions); - this.glslVersion = source.glslVersion; - return this; - }; - ShaderMaterial.prototype.toJSON = function (meta) { - var data = Material.prototype.toJSON.call(this, meta); - data.glslVersion = this.glslVersion; - data.uniforms = {}; - for (var name in this.uniforms) { - var uniform = this.uniforms[name]; - var value = uniform.value; - if (value && value.isTexture) { - data.uniforms[name] = { - type: 't', - value: value.toJSON(meta).uuid - }; - } else if (value && value.isColor) { - data.uniforms[name] = { - type: 'c', - value: value.getHex() - }; - } else if (value && value.isVector2) { - data.uniforms[name] = { - type: 'v2', - value: value.toArray() - }; - } else if (value && value.isVector3) { - data.uniforms[name] = { - type: 'v3', - value: value.toArray() - }; - } else if (value && value.isVector4) { - data.uniforms[name] = { - type: 'v4', - value: value.toArray() - }; - } else if (value && value.isMatrix3) { - data.uniforms[name] = { - type: 'm3', - value: value.toArray() - }; - } else if (value && value.isMatrix4) { - data.uniforms[name] = { - type: 'm4', - value: value.toArray() - }; - } else { - data.uniforms[name] = { - value: value - }; // note: the array variants v2v, v3v, v4v, m4v and tv are not supported so far - } - } - if (Object.keys(this.defines).length > 0) data.defines = this.defines; - data.vertexShader = this.vertexShader; - data.fragmentShader = this.fragmentShader; - var extensions = {}; - for (var key in this.extensions) { - if (this.extensions[key] === true) extensions[key] = true; - } - if (Object.keys(extensions).length > 0) data.extensions = extensions; - return data; - }; - function Camera() { - Object3D.call(this); - this.type = 'Camera'; - this.matrixWorldInverse = new Matrix4(); - this.projectionMatrix = new Matrix4(); - this.projectionMatrixInverse = new Matrix4(); - } - Camera.prototype = Object.assign(Object.create(Object3D.prototype), { - constructor: Camera, - isCamera: true, - copy: function copy(source, recursive) { - Object3D.prototype.copy.call(this, source, recursive); - this.matrixWorldInverse.copy(source.matrixWorldInverse); - this.projectionMatrix.copy(source.projectionMatrix); - this.projectionMatrixInverse.copy(source.projectionMatrixInverse); - return this; - }, - getWorldDirection: function getWorldDirection(target) { - if (target === undefined) { - console.warn('THREE.Camera: .getWorldDirection() target is now required'); - target = new Vector3(); - } - this.updateWorldMatrix(true, false); - var e = this.matrixWorld.elements; - return target.set(-e[8], -e[9], -e[10]).normalize(); - }, - updateMatrixWorld: function updateMatrixWorld(force) { - Object3D.prototype.updateMatrixWorld.call(this, force); - this.matrixWorldInverse.copy(this.matrixWorld).invert(); - }, - updateWorldMatrix: function updateWorldMatrix(updateParents, updateChildren) { - Object3D.prototype.updateWorldMatrix.call(this, updateParents, updateChildren); - this.matrixWorldInverse.copy(this.matrixWorld).invert(); - }, - clone: function clone() { - return new this.constructor().copy(this); - } - }); - function PerspectiveCamera(fov, aspect, near, far) { - if (fov === void 0) { - fov = 50; - } - if (aspect === void 0) { - aspect = 1; - } - if (near === void 0) { - near = 0.1; - } - if (far === void 0) { - far = 2000; - } - Camera.call(this); - this.type = 'PerspectiveCamera'; - this.fov = fov; - this.zoom = 1; - this.near = near; - this.far = far; - this.focus = 10; - this.aspect = aspect; - this.view = null; - this.filmGauge = 35; // width of the film (default in millimeters) - this.filmOffset = 0; // horizontal film offset (same unit as gauge) - this.updateProjectionMatrix(); - } - PerspectiveCamera.prototype = Object.assign(Object.create(Camera.prototype), { - constructor: PerspectiveCamera, - isPerspectiveCamera: true, - copy: function copy(source, recursive) { - Camera.prototype.copy.call(this, source, recursive); - this.fov = source.fov; - this.zoom = source.zoom; - this.near = source.near; - this.far = source.far; - this.focus = source.focus; - this.aspect = source.aspect; - this.view = source.view === null ? null : Object.assign({}, source.view); - this.filmGauge = source.filmGauge; - this.filmOffset = source.filmOffset; - return this; - }, - /** - * Sets the FOV by focal length in respect to the current .filmGauge. - * - * The default film gauge is 35, so that the focal length can be specified for - * a 35mm (full frame) camera. - * - * Values for focal length and film gauge must have the same unit. - */ - setFocalLength: function setFocalLength(focalLength) { - // see http://www.bobatkins.com/photography/technical/field_of_view.html - var vExtentSlope = 0.5 * this.getFilmHeight() / focalLength; - this.fov = MathUtils.RAD2DEG * 2 * Math.atan(vExtentSlope); - this.updateProjectionMatrix(); - }, - /** - * Calculates the focal length from the current .fov and .filmGauge. - */ - getFocalLength: function getFocalLength() { - var vExtentSlope = Math.tan(MathUtils.DEG2RAD * 0.5 * this.fov); - return 0.5 * this.getFilmHeight() / vExtentSlope; - }, - getEffectiveFOV: function getEffectiveFOV() { - return MathUtils.RAD2DEG * 2 * Math.atan(Math.tan(MathUtils.DEG2RAD * 0.5 * this.fov) / this.zoom); - }, - getFilmWidth: function getFilmWidth() { - // film not completely covered in portrait format (aspect < 1) - return this.filmGauge * Math.min(this.aspect, 1); - }, - getFilmHeight: function getFilmHeight() { - // film not completely covered in landscape format (aspect > 1) - return this.filmGauge / Math.max(this.aspect, 1); - }, - /** - * Sets an offset in a larger frustum. This is useful for multi-window or - * multi-monitor/multi-machine setups. - * - * For example, if you have 3x2 monitors and each monitor is 1920x1080 and - * the monitors are in grid like this - * - * +---+---+---+ - * | A | B | C | - * +---+---+---+ - * | D | E | F | - * +---+---+---+ - * - * then for each monitor you would call it like this - * - * const w = 1920; - * const h = 1080; - * const fullWidth = w * 3; - * const fullHeight = h * 2; - * - * --A-- - * camera.setViewOffset( fullWidth, fullHeight, w * 0, h * 0, w, h ); - * --B-- - * camera.setViewOffset( fullWidth, fullHeight, w * 1, h * 0, w, h ); - * --C-- - * camera.setViewOffset( fullWidth, fullHeight, w * 2, h * 0, w, h ); - * --D-- - * camera.setViewOffset( fullWidth, fullHeight, w * 0, h * 1, w, h ); - * --E-- - * camera.setViewOffset( fullWidth, fullHeight, w * 1, h * 1, w, h ); - * --F-- - * camera.setViewOffset( fullWidth, fullHeight, w * 2, h * 1, w, h ); - * - * Note there is no reason monitors have to be the same size or in a grid. - */ - setViewOffset: function setViewOffset(fullWidth, fullHeight, x, y, width, height) { - this.aspect = fullWidth / fullHeight; - if (this.view === null) { - this.view = { - enabled: true, - fullWidth: 1, - fullHeight: 1, - offsetX: 0, - offsetY: 0, - width: 1, - height: 1 - }; - } - this.view.enabled = true; - this.view.fullWidth = fullWidth; - this.view.fullHeight = fullHeight; - this.view.offsetX = x; - this.view.offsetY = y; - this.view.width = width; - this.view.height = height; - this.updateProjectionMatrix(); - }, - clearViewOffset: function clearViewOffset() { - if (this.view !== null) { - this.view.enabled = false; - } - this.updateProjectionMatrix(); - }, - updateProjectionMatrix: function updateProjectionMatrix() { - var near = this.near; - var top = near * Math.tan(MathUtils.DEG2RAD * 0.5 * this.fov) / this.zoom; - var height = 2 * top; - var width = this.aspect * height; - var left = -0.5 * width; - var view = this.view; - if (this.view !== null && this.view.enabled) { - var fullWidth = view.fullWidth, - fullHeight = view.fullHeight; - left += view.offsetX * width / fullWidth; - top -= view.offsetY * height / fullHeight; - width *= view.width / fullWidth; - height *= view.height / fullHeight; - } - var skew = this.filmOffset; - if (skew !== 0) left += near * skew / this.getFilmWidth(); - this.projectionMatrix.makePerspective(left, left + width, top, top - height, near, this.far); - this.projectionMatrixInverse.copy(this.projectionMatrix).invert(); - }, - toJSON: function toJSON(meta) { - var data = Object3D.prototype.toJSON.call(this, meta); - data.object.fov = this.fov; - data.object.zoom = this.zoom; - data.object.near = this.near; - data.object.far = this.far; - data.object.focus = this.focus; - data.object.aspect = this.aspect; - if (this.view !== null) data.object.view = Object.assign({}, this.view); - data.object.filmGauge = this.filmGauge; - data.object.filmOffset = this.filmOffset; - return data; - } - }); - var fov = 90, - aspect = 1; - function CubeCamera(near, far, renderTarget) { - Object3D.call(this); - this.type = 'CubeCamera'; - if (renderTarget.isWebGLCubeRenderTarget !== true) { - console.error('THREE.CubeCamera: The constructor now expects an instance of WebGLCubeRenderTarget as third parameter.'); - return; - } - this.renderTarget = renderTarget; - var cameraPX = new PerspectiveCamera(fov, aspect, near, far); - cameraPX.layers = this.layers; - cameraPX.up.set(0, -1, 0); - cameraPX.lookAt(new Vector3(1, 0, 0)); - this.add(cameraPX); - var cameraNX = new PerspectiveCamera(fov, aspect, near, far); - cameraNX.layers = this.layers; - cameraNX.up.set(0, -1, 0); - cameraNX.lookAt(new Vector3(-1, 0, 0)); - this.add(cameraNX); - var cameraPY = new PerspectiveCamera(fov, aspect, near, far); - cameraPY.layers = this.layers; - cameraPY.up.set(0, 0, 1); - cameraPY.lookAt(new Vector3(0, 1, 0)); - this.add(cameraPY); - var cameraNY = new PerspectiveCamera(fov, aspect, near, far); - cameraNY.layers = this.layers; - cameraNY.up.set(0, 0, -1); - cameraNY.lookAt(new Vector3(0, -1, 0)); - this.add(cameraNY); - var cameraPZ = new PerspectiveCamera(fov, aspect, near, far); - cameraPZ.layers = this.layers; - cameraPZ.up.set(0, -1, 0); - cameraPZ.lookAt(new Vector3(0, 0, 1)); - this.add(cameraPZ); - var cameraNZ = new PerspectiveCamera(fov, aspect, near, far); - cameraNZ.layers = this.layers; - cameraNZ.up.set(0, -1, 0); - cameraNZ.lookAt(new Vector3(0, 0, -1)); - this.add(cameraNZ); - this.update = function (renderer, scene) { - if (this.parent === null) this.updateMatrixWorld(); - var currentXrEnabled = renderer.xr.enabled; - var currentRenderTarget = renderer.getRenderTarget(); - renderer.xr.enabled = false; - var generateMipmaps = renderTarget.texture.generateMipmaps; - renderTarget.texture.generateMipmaps = false; - renderer.setRenderTarget(renderTarget, 0); - renderer.render(scene, cameraPX); - renderer.setRenderTarget(renderTarget, 1); - renderer.render(scene, cameraNX); - renderer.setRenderTarget(renderTarget, 2); - renderer.render(scene, cameraPY); - renderer.setRenderTarget(renderTarget, 3); - renderer.render(scene, cameraNY); - renderer.setRenderTarget(renderTarget, 4); - renderer.render(scene, cameraPZ); - renderTarget.texture.generateMipmaps = generateMipmaps; - renderer.setRenderTarget(renderTarget, 5); - renderer.render(scene, cameraNZ); - renderer.setRenderTarget(currentRenderTarget); - renderer.xr.enabled = currentXrEnabled; - }; - } - CubeCamera.prototype = Object.create(Object3D.prototype); - CubeCamera.prototype.constructor = CubeCamera; - function CubeTexture(images, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, encoding) { - images = images !== undefined ? images : []; - mapping = mapping !== undefined ? mapping : CubeReflectionMapping; - format = format !== undefined ? format : RGBFormat; - Texture.call(this, images, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, encoding); - this.flipY = false; // Why CubeTexture._needsFlipEnvMap is necessary: - // - // By convention -- likely based on the RenderMan spec from the 1990's -- cube maps are specified by WebGL (and three.js) - // in a coordinate system in which positive-x is to the right when looking up the positive-z axis -- in other words, - // in a left-handed coordinate system. By continuing this convention, preexisting cube maps continued to render correctly. - // three.js uses a right-handed coordinate system. So environment maps used in three.js appear to have px and nx swapped - // and the flag _needsFlipEnvMap controls this conversion. The flip is not required (and thus _needsFlipEnvMap is set to false) - // when using WebGLCubeRenderTarget.texture as a cube texture. - this._needsFlipEnvMap = true; - } - CubeTexture.prototype = Object.create(Texture.prototype); - CubeTexture.prototype.constructor = CubeTexture; - CubeTexture.prototype.isCubeTexture = true; - Object.defineProperty(CubeTexture.prototype, 'images', { - get: function get() { - return this.image; - }, - set: function set(value) { - this.image = value; - } - }); - function WebGLCubeRenderTarget(size, options, dummy) { - if (Number.isInteger(options)) { - console.warn('THREE.WebGLCubeRenderTarget: constructor signature is now WebGLCubeRenderTarget( size, options )'); - options = dummy; - } - WebGLRenderTarget.call(this, size, size, options); - options = options || {}; - this.texture = new CubeTexture(undefined, options.mapping, options.wrapS, options.wrapT, options.magFilter, options.minFilter, options.format, options.type, options.anisotropy, options.encoding); - this.texture._needsFlipEnvMap = false; - } - WebGLCubeRenderTarget.prototype = Object.create(WebGLRenderTarget.prototype); - WebGLCubeRenderTarget.prototype.constructor = WebGLCubeRenderTarget; - WebGLCubeRenderTarget.prototype.isWebGLCubeRenderTarget = true; - WebGLCubeRenderTarget.prototype.fromEquirectangularTexture = function (renderer, texture) { - this.texture.type = texture.type; - this.texture.format = RGBAFormat; // see #18859 - this.texture.encoding = texture.encoding; - this.texture.generateMipmaps = texture.generateMipmaps; - this.texture.minFilter = texture.minFilter; - this.texture.magFilter = texture.magFilter; - var shader = { - uniforms: { - tEquirect: { - value: null - } - }, - vertexShader: - /* glsl */ - "\n\n\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\tvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\n\t\t\t\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n\n\t\t\t}\n\n\t\t\tvoid main() {\n\n\t\t\t\tvWorldDirection = transformDirection( position, modelMatrix );\n\n\t\t\t\t#include \n\t\t\t\t#include \n\n\t\t\t}\n\t\t", - fragmentShader: - /* glsl */ - "\n\n\t\t\tuniform sampler2D tEquirect;\n\n\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t#include \n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 direction = normalize( vWorldDirection );\n\n\t\t\t\tvec2 sampleUV = equirectUv( direction );\n\n\t\t\t\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\n\t\t\t}\n\t\t" - }; - var geometry = new BoxBufferGeometry(5, 5, 5); - var material = new ShaderMaterial({ - name: 'CubemapFromEquirect', - uniforms: cloneUniforms(shader.uniforms), - vertexShader: shader.vertexShader, - fragmentShader: shader.fragmentShader, - side: BackSide, - blending: NoBlending - }); - material.uniforms.tEquirect.value = texture; - var mesh = new Mesh(geometry, material); - var currentMinFilter = texture.minFilter; // Avoid blurred poles - if (texture.minFilter === LinearMipmapLinearFilter) texture.minFilter = LinearFilter; - var camera = new CubeCamera(1, 10, this); - camera.update(renderer, mesh); - texture.minFilter = currentMinFilter; - mesh.geometry.dispose(); - mesh.material.dispose(); - return this; - }; - WebGLCubeRenderTarget.prototype.clear = function (renderer, color, depth, stencil) { - var currentRenderTarget = renderer.getRenderTarget(); - for (var i = 0; i < 6; i++) { - renderer.setRenderTarget(this, i); - renderer.clear(color, depth, stencil); - } - renderer.setRenderTarget(currentRenderTarget); - }; - function DataTexture(data, width, height, format, type, mapping, wrapS, wrapT, magFilter, minFilter, anisotropy, encoding) { - Texture.call(this, null, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, encoding); - this.image = { - data: data || null, - width: width || 1, - height: height || 1 - }; - this.magFilter = magFilter !== undefined ? magFilter : NearestFilter; - this.minFilter = minFilter !== undefined ? minFilter : NearestFilter; - this.generateMipmaps = false; - this.flipY = false; - this.unpackAlignment = 1; - this.needsUpdate = true; - } - DataTexture.prototype = Object.create(Texture.prototype); - DataTexture.prototype.constructor = DataTexture; - DataTexture.prototype.isDataTexture = true; - var _sphere$1 = /*@__PURE__*/new Sphere(); - var _vector$5 = /*@__PURE__*/new Vector3(); - var Frustum = /*#__PURE__*/function () { - function Frustum(p0, p1, p2, p3, p4, p5) { - this.planes = [p0 !== undefined ? p0 : new Plane(), p1 !== undefined ? p1 : new Plane(), p2 !== undefined ? p2 : new Plane(), p3 !== undefined ? p3 : new Plane(), p4 !== undefined ? p4 : new Plane(), p5 !== undefined ? p5 : new Plane()]; - } - var _proto = Frustum.prototype; - _proto.set = function set(p0, p1, p2, p3, p4, p5) { - var planes = this.planes; - planes[0].copy(p0); - planes[1].copy(p1); - planes[2].copy(p2); - planes[3].copy(p3); - planes[4].copy(p4); - planes[5].copy(p5); - return this; - }; - _proto.clone = function clone() { - return new this.constructor().copy(this); - }; - _proto.copy = function copy(frustum) { - var planes = this.planes; - for (var i = 0; i < 6; i++) { - planes[i].copy(frustum.planes[i]); - } - return this; - }; - _proto.setFromProjectionMatrix = function setFromProjectionMatrix(m) { - var planes = this.planes; - var me = m.elements; - var me0 = me[0], - me1 = me[1], - me2 = me[2], - me3 = me[3]; - var me4 = me[4], - me5 = me[5], - me6 = me[6], - me7 = me[7]; - var me8 = me[8], - me9 = me[9], - me10 = me[10], - me11 = me[11]; - var me12 = me[12], - me13 = me[13], - me14 = me[14], - me15 = me[15]; - planes[0].setComponents(me3 - me0, me7 - me4, me11 - me8, me15 - me12).normalize(); - planes[1].setComponents(me3 + me0, me7 + me4, me11 + me8, me15 + me12).normalize(); - planes[2].setComponents(me3 + me1, me7 + me5, me11 + me9, me15 + me13).normalize(); - planes[3].setComponents(me3 - me1, me7 - me5, me11 - me9, me15 - me13).normalize(); - planes[4].setComponents(me3 - me2, me7 - me6, me11 - me10, me15 - me14).normalize(); - planes[5].setComponents(me3 + me2, me7 + me6, me11 + me10, me15 + me14).normalize(); - return this; - }; - _proto.intersectsObject = function intersectsObject(object) { - var geometry = object.geometry; - if (geometry.boundingSphere === null) geometry.computeBoundingSphere(); - _sphere$1.copy(geometry.boundingSphere).applyMatrix4(object.matrixWorld); - return this.intersectsSphere(_sphere$1); - }; - _proto.intersectsSprite = function intersectsSprite(sprite) { - _sphere$1.center.set(0, 0, 0); - _sphere$1.radius = 0.7071067811865476; - _sphere$1.applyMatrix4(sprite.matrixWorld); - return this.intersectsSphere(_sphere$1); - }; - _proto.intersectsSphere = function intersectsSphere(sphere) { - var planes = this.planes; - var center = sphere.center; - var negRadius = -sphere.radius; - for (var i = 0; i < 6; i++) { - var distance = planes[i].distanceToPoint(center); - if (distance < negRadius) { - return false; - } - } - return true; - }; - _proto.intersectsBox = function intersectsBox(box) { - var planes = this.planes; - for (var i = 0; i < 6; i++) { - var plane = planes[i]; // corner at max distance - _vector$5.x = plane.normal.x > 0 ? box.max.x : box.min.x; - _vector$5.y = plane.normal.y > 0 ? box.max.y : box.min.y; - _vector$5.z = plane.normal.z > 0 ? box.max.z : box.min.z; - if (plane.distanceToPoint(_vector$5) < 0) { - return false; - } - } - return true; - }; - _proto.containsPoint = function containsPoint(point) { - var planes = this.planes; - for (var i = 0; i < 6; i++) { - if (planes[i].distanceToPoint(point) < 0) { - return false; - } - } - return true; - }; - return Frustum; - }(); - function WebGLAnimation() { - var context = null; - var isAnimating = false; - var animationLoop = null; - var requestId = null; - function onAnimationFrame(time, frame) { - animationLoop(time, frame); - requestId = context.requestAnimationFrame(onAnimationFrame); - } - return { - start: function start() { - if (isAnimating === true) return; - if (animationLoop === null) return; - requestId = context.requestAnimationFrame(onAnimationFrame); - isAnimating = true; - }, - stop: function stop() { - context.cancelAnimationFrame(requestId); - isAnimating = false; - }, - setAnimationLoop: function setAnimationLoop(callback) { - animationLoop = callback; - }, - setContext: function setContext(value) { - context = value; - } - }; - } - function WebGLAttributes(gl, capabilities) { - var isWebGL2 = capabilities.isWebGL2; - var buffers = new WeakMap(); - function createBuffer(attribute, bufferType) { - var array = attribute.array; - var usage = attribute.usage; - var buffer = gl.createBuffer(); - gl.bindBuffer(bufferType, buffer); - gl.bufferData(bufferType, array, usage); - attribute.onUploadCallback(); - var type = 5126; - if (array instanceof Float32Array) { - type = 5126; - } else if (array instanceof Float64Array) { - console.warn('THREE.WebGLAttributes: Unsupported data buffer format: Float64Array.'); - } else if (array instanceof Uint16Array) { - if (attribute.isFloat16BufferAttribute) { - if (isWebGL2) { - type = 5131; - } else { - console.warn('THREE.WebGLAttributes: Usage of Float16BufferAttribute requires WebGL2.'); - } - } else { - type = 5123; - } - } else if (array instanceof Int16Array) { - type = 5122; - } else if (array instanceof Uint32Array) { - type = 5125; - } else if (array instanceof Int32Array) { - type = 5124; - } else if (array instanceof Int8Array) { - type = 5120; - } else if (array instanceof Uint8Array) { - type = 5121; - } - return { - buffer: buffer, - type: type, - bytesPerElement: array.BYTES_PER_ELEMENT, - version: attribute.version - }; - } - function updateBuffer(buffer, attribute, bufferType) { - var array = attribute.array; - var updateRange = attribute.updateRange; - gl.bindBuffer(bufferType, buffer); - if (updateRange.count === -1) { - // Not using update ranges - gl.bufferSubData(bufferType, 0, array); - } else { - if (isWebGL2) { - gl.bufferSubData(bufferType, updateRange.offset * array.BYTES_PER_ELEMENT, array, updateRange.offset, updateRange.count); - } else { - gl.bufferSubData(bufferType, updateRange.offset * array.BYTES_PER_ELEMENT, array.subarray(updateRange.offset, updateRange.offset + updateRange.count)); - } - updateRange.count = -1; // reset range - } - } // - - function get(attribute) { - if (attribute.isInterleavedBufferAttribute) attribute = attribute.data; - return buffers.get(attribute); - } - function remove(attribute) { - if (attribute.isInterleavedBufferAttribute) attribute = attribute.data; - var data = buffers.get(attribute); - if (data) { - gl.deleteBuffer(data.buffer); - buffers.delete(attribute); - } - } - function update(attribute, bufferType) { - if (attribute.isGLBufferAttribute) { - var cached = buffers.get(attribute); - if (!cached || cached.version < attribute.version) { - buffers.set(attribute, { - buffer: attribute.buffer, - type: attribute.type, - bytesPerElement: attribute.elementSize, - version: attribute.version - }); - } - return; - } - if (attribute.isInterleavedBufferAttribute) attribute = attribute.data; - var data = buffers.get(attribute); - if (data === undefined) { - buffers.set(attribute, createBuffer(attribute, bufferType)); - } else if (data.version < attribute.version) { - updateBuffer(data.buffer, attribute, bufferType); - data.version = attribute.version; - } - } - return { - get: get, - remove: remove, - update: update - }; - } - var PlaneBufferGeometry = /*#__PURE__*/function (_BufferGeometry) { - _inheritsLoose(PlaneBufferGeometry, _BufferGeometry); - function PlaneBufferGeometry(width, height, widthSegments, heightSegments) { - var _this; - if (width === void 0) { - width = 1; - } - if (height === void 0) { - height = 1; - } - if (widthSegments === void 0) { - widthSegments = 1; - } - if (heightSegments === void 0) { - heightSegments = 1; - } - _this = _BufferGeometry.call(this) || this; - _this.type = 'PlaneBufferGeometry'; - _this.parameters = { - width: width, - height: height, - widthSegments: widthSegments, - heightSegments: heightSegments - }; - var width_half = width / 2; - var height_half = height / 2; - var gridX = Math.floor(widthSegments); - var gridY = Math.floor(heightSegments); - var gridX1 = gridX + 1; - var gridY1 = gridY + 1; - var segment_width = width / gridX; - var segment_height = height / gridY; // - var indices = []; - var vertices = []; - var normals = []; - var uvs = []; - for (var iy = 0; iy < gridY1; iy++) { - var y = iy * segment_height - height_half; - for (var ix = 0; ix < gridX1; ix++) { - var x = ix * segment_width - width_half; - vertices.push(x, -y, 0); - normals.push(0, 0, 1); - uvs.push(ix / gridX); - uvs.push(1 - iy / gridY); - } - } - for (var _iy = 0; _iy < gridY; _iy++) { - for (var _ix = 0; _ix < gridX; _ix++) { - var a = _ix + gridX1 * _iy; - var b = _ix + gridX1 * (_iy + 1); - var c = _ix + 1 + gridX1 * (_iy + 1); - var d = _ix + 1 + gridX1 * _iy; - indices.push(a, b, d); - indices.push(b, c, d); - } - } - _this.setIndex(indices); - _this.setAttribute('position', new Float32BufferAttribute(vertices, 3)); - _this.setAttribute('normal', new Float32BufferAttribute(normals, 3)); - _this.setAttribute('uv', new Float32BufferAttribute(uvs, 2)); - return _this; - } - return PlaneBufferGeometry; - }(BufferGeometry); - var alphamap_fragment = "#ifdef USE_ALPHAMAP\n\tdiffuseColor.a *= texture2D( alphaMap, vUv ).g;\n#endif"; - var alphamap_pars_fragment = "#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif"; - var alphatest_fragment = "#ifdef ALPHATEST\n\tif ( diffuseColor.a < ALPHATEST ) discard;\n#endif"; - var aomap_fragment = "#ifdef USE_AOMAP\n\tfloat ambientOcclusion = ( texture2D( aoMap, vUv2 ).r - 1.0 ) * aoMapIntensity + 1.0;\n\treflectedLight.indirectDiffuse *= ambientOcclusion;\n\t#if defined( USE_ENVMAP ) && defined( STANDARD )\n\t\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\n\t\treflectedLight.indirectSpecular *= computeSpecularOcclusion( dotNV, ambientOcclusion, material.specularRoughness );\n\t#endif\n#endif"; - var aomap_pars_fragment = "#ifdef USE_AOMAP\n\tuniform sampler2D aoMap;\n\tuniform float aoMapIntensity;\n#endif"; - var begin_vertex = "vec3 transformed = vec3( position );"; - var beginnormal_vertex = "vec3 objectNormal = vec3( normal );\n#ifdef USE_TANGENT\n\tvec3 objectTangent = vec3( tangent.xyz );\n#endif"; - var bsdfs = "vec2 integrateSpecularBRDF( const in float dotNV, const in float roughness ) {\n\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\n\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\n\tvec4 r = roughness * c0 + c1;\n\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\n\treturn vec2( -1.04, 1.04 ) * a004 + r.zw;\n}\nfloat punctualLightIntensityToIrradianceFactor( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\n#if defined ( PHYSICALLY_CORRECT_LIGHTS )\n\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\n\tif( cutoffDistance > 0.0 ) {\n\t\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\n\t}\n\treturn distanceFalloff;\n#else\n\tif( cutoffDistance > 0.0 && decayExponent > 0.0 ) {\n\t\treturn pow( saturate( -lightDistance / cutoffDistance + 1.0 ), decayExponent );\n\t}\n\treturn 1.0;\n#endif\n}\nvec3 BRDF_Diffuse_Lambert( const in vec3 diffuseColor ) {\n\treturn RECIPROCAL_PI * diffuseColor;\n}\nvec3 F_Schlick( const in vec3 specularColor, const in float dotLH ) {\n\tfloat fresnel = exp2( ( -5.55473 * dotLH - 6.98316 ) * dotLH );\n\treturn ( 1.0 - specularColor ) * fresnel + specularColor;\n}\nvec3 F_Schlick_RoughnessDependent( const in vec3 F0, const in float dotNV, const in float roughness ) {\n\tfloat fresnel = exp2( ( -5.55473 * dotNV - 6.98316 ) * dotNV );\n\tvec3 Fr = max( vec3( 1.0 - roughness ), F0 ) - F0;\n\treturn Fr * fresnel + F0;\n}\nfloat G_GGX_Smith( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gl = dotNL + sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\tfloat gv = dotNV + sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\treturn 1.0 / ( gl * gv );\n}\nfloat G_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\treturn 0.5 / max( gv + gl, EPSILON );\n}\nfloat D_GGX( const in float alpha, const in float dotNH ) {\n\tfloat a2 = pow2( alpha );\n\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\n\treturn RECIPROCAL_PI * a2 / pow2( denom );\n}\nvec3 BRDF_Specular_GGX( const in IncidentLight incidentLight, const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float roughness ) {\n\tfloat alpha = pow2( roughness );\n\tvec3 halfDir = normalize( incidentLight.direction + viewDir );\n\tfloat dotNL = saturate( dot( normal, incidentLight.direction ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat dotLH = saturate( dot( incidentLight.direction, halfDir ) );\n\tvec3 F = F_Schlick( specularColor, dotLH );\n\tfloat G = G_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\tfloat D = D_GGX( alpha, dotNH );\n\treturn F * ( G * D );\n}\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\n\tconst float LUT_SIZE = 64.0;\n\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\n\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\n\tfloat dotNV = saturate( dot( N, V ) );\n\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\n\tuv = uv * LUT_SCALE + LUT_BIAS;\n\treturn uv;\n}\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\n\tfloat l = length( f );\n\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\n}\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\n\tfloat x = dot( v1, v2 );\n\tfloat y = abs( x );\n\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\n\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\n\tfloat v = a / b;\n\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\n\treturn cross( v1, v2 ) * theta_sintheta;\n}\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\n\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\n\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\n\tvec3 lightNormal = cross( v1, v2 );\n\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\n\tvec3 T1, T2;\n\tT1 = normalize( V - N * dot( V, N ) );\n\tT2 = - cross( N, T1 );\n\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\n\tvec3 coords[ 4 ];\n\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\n\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\n\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\n\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\n\tcoords[ 0 ] = normalize( coords[ 0 ] );\n\tcoords[ 1 ] = normalize( coords[ 1 ] );\n\tcoords[ 2 ] = normalize( coords[ 2 ] );\n\tcoords[ 3 ] = normalize( coords[ 3 ] );\n\tvec3 vectorFormFactor = vec3( 0.0 );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\n\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\n\treturn vec3( result );\n}\nvec3 BRDF_Specular_GGX_Environment( const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tvec2 brdf = integrateSpecularBRDF( dotNV, roughness );\n\treturn specularColor * brdf.x + brdf.y;\n}\nvoid BRDF_Specular_Multiscattering_Environment( const in GeometricContext geometry, const in vec3 specularColor, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\n\tvec3 F = F_Schlick_RoughnessDependent( specularColor, dotNV, roughness );\n\tvec2 brdf = integrateSpecularBRDF( dotNV, roughness );\n\tvec3 FssEss = F * brdf.x + brdf.y;\n\tfloat Ess = brdf.x + brdf.y;\n\tfloat Ems = 1.0 - Ess;\n\tvec3 Favg = specularColor + ( 1.0 - specularColor ) * 0.047619;\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\n\tsingleScatter += FssEss;\n\tmultiScatter += Fms * Ems;\n}\nfloat G_BlinnPhong_Implicit( ) {\n\treturn 0.25;\n}\nfloat D_BlinnPhong( const in float shininess, const in float dotNH ) {\n\treturn RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess );\n}\nvec3 BRDF_Specular_BlinnPhong( const in IncidentLight incidentLight, const in GeometricContext geometry, const in vec3 specularColor, const in float shininess ) {\n\tvec3 halfDir = normalize( incidentLight.direction + geometry.viewDir );\n\tfloat dotNH = saturate( dot( geometry.normal, halfDir ) );\n\tfloat dotLH = saturate( dot( incidentLight.direction, halfDir ) );\n\tvec3 F = F_Schlick( specularColor, dotLH );\n\tfloat G = G_BlinnPhong_Implicit( );\n\tfloat D = D_BlinnPhong( shininess, dotNH );\n\treturn F * ( G * D );\n}\nfloat GGXRoughnessToBlinnExponent( const in float ggxRoughness ) {\n\treturn ( 2.0 / pow2( ggxRoughness + 0.0001 ) - 2.0 );\n}\nfloat BlinnExponentToGGXRoughness( const in float blinnExponent ) {\n\treturn sqrt( 2.0 / ( blinnExponent + 2.0 ) );\n}\n#if defined( USE_SHEEN )\nfloat D_Charlie(float roughness, float NoH) {\n\tfloat invAlpha = 1.0 / roughness;\n\tfloat cos2h = NoH * NoH;\n\tfloat sin2h = max(1.0 - cos2h, 0.0078125);\treturn (2.0 + invAlpha) * pow(sin2h, invAlpha * 0.5) / (2.0 * PI);\n}\nfloat V_Neubelt(float NoV, float NoL) {\n\treturn saturate(1.0 / (4.0 * (NoL + NoV - NoL * NoV)));\n}\nvec3 BRDF_Specular_Sheen( const in float roughness, const in vec3 L, const in GeometricContext geometry, vec3 specularColor ) {\n\tvec3 N = geometry.normal;\n\tvec3 V = geometry.viewDir;\n\tvec3 H = normalize( V + L );\n\tfloat dotNH = saturate( dot( N, H ) );\n\treturn specularColor * D_Charlie( roughness, dotNH ) * V_Neubelt( dot(N, V), dot(N, L) );\n}\n#endif"; - var bumpmap_pars_fragment = "#ifdef USE_BUMPMAP\n\tuniform sampler2D bumpMap;\n\tuniform float bumpScale;\n\tvec2 dHdxy_fwd() {\n\t\tvec2 dSTdx = dFdx( vUv );\n\t\tvec2 dSTdy = dFdy( vUv );\n\t\tfloat Hll = bumpScale * texture2D( bumpMap, vUv ).x;\n\t\tfloat dBx = bumpScale * texture2D( bumpMap, vUv + dSTdx ).x - Hll;\n\t\tfloat dBy = bumpScale * texture2D( bumpMap, vUv + dSTdy ).x - Hll;\n\t\treturn vec2( dBx, dBy );\n\t}\n\tvec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy ) {\n\t\tvec3 vSigmaX = vec3( dFdx( surf_pos.x ), dFdx( surf_pos.y ), dFdx( surf_pos.z ) );\n\t\tvec3 vSigmaY = vec3( dFdy( surf_pos.x ), dFdy( surf_pos.y ), dFdy( surf_pos.z ) );\n\t\tvec3 vN = surf_norm;\n\t\tvec3 R1 = cross( vSigmaY, vN );\n\t\tvec3 R2 = cross( vN, vSigmaX );\n\t\tfloat fDet = dot( vSigmaX, R1 );\n\t\tfDet *= ( float( gl_FrontFacing ) * 2.0 - 1.0 );\n\t\tvec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );\n\t\treturn normalize( abs( fDet ) * surf_norm - vGrad );\n\t}\n#endif"; - var clipping_planes_fragment = "#if NUM_CLIPPING_PLANES > 0\n\tvec4 plane;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\n\t\tplane = clippingPlanes[ i ];\n\t\tif ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;\n\t}\n\t#pragma unroll_loop_end\n\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\n\t\tbool clipped = true;\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\n\t\t\tplane = clippingPlanes[ i ];\n\t\t\tclipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t\tif ( clipped ) discard;\n\t#endif\n#endif"; - var clipping_planes_pars_fragment = "#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\n#endif"; - var clipping_planes_pars_vertex = "#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n#endif"; - var clipping_planes_vertex = "#if NUM_CLIPPING_PLANES > 0\n\tvClipPosition = - mvPosition.xyz;\n#endif"; - var color_fragment = "#ifdef USE_COLOR\n\tdiffuseColor.rgb *= vColor;\n#endif"; - var color_pars_fragment = "#ifdef USE_COLOR\n\tvarying vec3 vColor;\n#endif"; - var color_pars_vertex = "#if defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\n\tvarying vec3 vColor;\n#endif"; - var color_vertex = "#if defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\n\tvColor = vec3( 1.0 );\n#endif\n#ifdef USE_COLOR\n\tvColor.xyz *= color.xyz;\n#endif\n#ifdef USE_INSTANCING_COLOR\n\tvColor.xyz *= instanceColor.xyz;\n#endif"; - var common = "#define PI 3.141592653589793\n#define PI2 6.283185307179586\n#define PI_HALF 1.5707963267948966\n#define RECIPROCAL_PI 0.3183098861837907\n#define RECIPROCAL_PI2 0.15915494309189535\n#define EPSILON 1e-6\n#ifndef saturate\n#define saturate(a) clamp( a, 0.0, 1.0 )\n#endif\n#define whiteComplement(a) ( 1.0 - saturate( a ) )\nfloat pow2( const in float x ) { return x*x; }\nfloat pow3( const in float x ) { return x*x*x; }\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\nfloat average( const in vec3 color ) { return dot( color, vec3( 0.3333 ) ); }\nhighp float rand( const in vec2 uv ) {\n\tconst highp float a = 12.9898, b = 78.233, c = 43758.5453;\n\thighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\n\treturn fract(sin(sn) * c);\n}\n#ifdef HIGH_PRECISION\n\tfloat precisionSafeLength( vec3 v ) { return length( v ); }\n#else\n\tfloat max3( vec3 v ) { return max( max( v.x, v.y ), v.z ); }\n\tfloat precisionSafeLength( vec3 v ) {\n\t\tfloat maxComponent = max3( abs( v ) );\n\t\treturn length( v / maxComponent ) * maxComponent;\n\t}\n#endif\nstruct IncidentLight {\n\tvec3 color;\n\tvec3 direction;\n\tbool visible;\n};\nstruct ReflectedLight {\n\tvec3 directDiffuse;\n\tvec3 directSpecular;\n\tvec3 indirectDiffuse;\n\tvec3 indirectSpecular;\n};\nstruct GeometricContext {\n\tvec3 position;\n\tvec3 normal;\n\tvec3 viewDir;\n#ifdef CLEARCOAT\n\tvec3 clearcoatNormal;\n#endif\n};\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n}\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\n}\nvec3 projectOnPlane(in vec3 point, in vec3 pointOnPlane, in vec3 planeNormal ) {\n\tfloat distance = dot( planeNormal, point - pointOnPlane );\n\treturn - distance * planeNormal + point;\n}\nfloat sideOfPlane( in vec3 point, in vec3 pointOnPlane, in vec3 planeNormal ) {\n\treturn sign( dot( point - pointOnPlane, planeNormal ) );\n}\nvec3 linePlaneIntersect( in vec3 pointOnLine, in vec3 lineDirection, in vec3 pointOnPlane, in vec3 planeNormal ) {\n\treturn lineDirection * ( dot( planeNormal, pointOnPlane - pointOnLine ) / dot( planeNormal, lineDirection ) ) + pointOnLine;\n}\nmat3 transposeMat3( const in mat3 m ) {\n\tmat3 tmp;\n\ttmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\n\ttmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\n\ttmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\n\treturn tmp;\n}\nfloat linearToRelativeLuminance( const in vec3 color ) {\n\tvec3 weights = vec3( 0.2126, 0.7152, 0.0722 );\n\treturn dot( weights, color.rgb );\n}\nbool isPerspectiveMatrix( mat4 m ) {\n\treturn m[ 2 ][ 3 ] == - 1.0;\n}\nvec2 equirectUv( in vec3 dir ) {\n\tfloat u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;\n\tfloat v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\treturn vec2( u, v );\n}"; - var cube_uv_reflection_fragment = "#ifdef ENVMAP_TYPE_CUBE_UV\n\t#define cubeUV_maxMipLevel 8.0\n\t#define cubeUV_minMipLevel 4.0\n\t#define cubeUV_maxTileSize 256.0\n\t#define cubeUV_minTileSize 16.0\n\tfloat getFace( vec3 direction ) {\n\t\tvec3 absDirection = abs( direction );\n\t\tfloat face = - 1.0;\n\t\tif ( absDirection.x > absDirection.z ) {\n\t\t\tif ( absDirection.x > absDirection.y )\n\t\t\t\tface = direction.x > 0.0 ? 0.0 : 3.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t} else {\n\t\t\tif ( absDirection.z > absDirection.y )\n\t\t\t\tface = direction.z > 0.0 ? 2.0 : 5.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t}\n\t\treturn face;\n\t}\n\tvec2 getUV( vec3 direction, float face ) {\n\t\tvec2 uv;\n\t\tif ( face == 0.0 ) {\n\t\t\tuv = vec2( direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 1.0 ) {\n\t\t\tuv = vec2( - direction.x, - direction.z ) / abs( direction.y );\n\t\t} else if ( face == 2.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.y ) / abs( direction.z );\n\t\t} else if ( face == 3.0 ) {\n\t\t\tuv = vec2( - direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 4.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.z ) / abs( direction.y );\n\t\t} else {\n\t\t\tuv = vec2( direction.x, direction.y ) / abs( direction.z );\n\t\t}\n\t\treturn 0.5 * ( uv + 1.0 );\n\t}\n\tvec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) {\n\t\tfloat face = getFace( direction );\n\t\tfloat filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 );\n\t\tmipInt = max( mipInt, cubeUV_minMipLevel );\n\t\tfloat faceSize = exp2( mipInt );\n\t\tfloat texelSize = 1.0 / ( 3.0 * cubeUV_maxTileSize );\n\t\tvec2 uv = getUV( direction, face ) * ( faceSize - 1.0 );\n\t\tvec2 f = fract( uv );\n\t\tuv += 0.5 - f;\n\t\tif ( face > 2.0 ) {\n\t\t\tuv.y += faceSize;\n\t\t\tface -= 3.0;\n\t\t}\n\t\tuv.x += face * faceSize;\n\t\tif ( mipInt < cubeUV_maxMipLevel ) {\n\t\t\tuv.y += 2.0 * cubeUV_maxTileSize;\n\t\t}\n\t\tuv.y += filterInt * 2.0 * cubeUV_minTileSize;\n\t\tuv.x += 3.0 * max( 0.0, cubeUV_maxTileSize - 2.0 * faceSize );\n\t\tuv *= texelSize;\n\t\tvec3 tl = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb;\n\t\tuv.x += texelSize;\n\t\tvec3 tr = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb;\n\t\tuv.y += texelSize;\n\t\tvec3 br = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb;\n\t\tuv.x -= texelSize;\n\t\tvec3 bl = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb;\n\t\tvec3 tm = mix( tl, tr, f.x );\n\t\tvec3 bm = mix( bl, br, f.x );\n\t\treturn mix( tm, bm, f.y );\n\t}\n\t#define r0 1.0\n\t#define v0 0.339\n\t#define m0 - 2.0\n\t#define r1 0.8\n\t#define v1 0.276\n\t#define m1 - 1.0\n\t#define r4 0.4\n\t#define v4 0.046\n\t#define m4 2.0\n\t#define r5 0.305\n\t#define v5 0.016\n\t#define m5 3.0\n\t#define r6 0.21\n\t#define v6 0.0038\n\t#define m6 4.0\n\tfloat roughnessToMip( float roughness ) {\n\t\tfloat mip = 0.0;\n\t\tif ( roughness >= r1 ) {\n\t\t\tmip = ( r0 - roughness ) * ( m1 - m0 ) / ( r0 - r1 ) + m0;\n\t\t} else if ( roughness >= r4 ) {\n\t\t\tmip = ( r1 - roughness ) * ( m4 - m1 ) / ( r1 - r4 ) + m1;\n\t\t} else if ( roughness >= r5 ) {\n\t\t\tmip = ( r4 - roughness ) * ( m5 - m4 ) / ( r4 - r5 ) + m4;\n\t\t} else if ( roughness >= r6 ) {\n\t\t\tmip = ( r5 - roughness ) * ( m6 - m5 ) / ( r5 - r6 ) + m5;\n\t\t} else {\n\t\t\tmip = - 2.0 * log2( 1.16 * roughness );\t\t}\n\t\treturn mip;\n\t}\n\tvec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) {\n\t\tfloat mip = clamp( roughnessToMip( roughness ), m0, cubeUV_maxMipLevel );\n\t\tfloat mipF = fract( mip );\n\t\tfloat mipInt = floor( mip );\n\t\tvec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt );\n\t\tif ( mipF == 0.0 ) {\n\t\t\treturn vec4( color0, 1.0 );\n\t\t} else {\n\t\t\tvec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 );\n\t\t\treturn vec4( mix( color0, color1, mipF ), 1.0 );\n\t\t}\n\t}\n#endif"; - var defaultnormal_vertex = "vec3 transformedNormal = objectNormal;\n#ifdef USE_INSTANCING\n\tmat3 m = mat3( instanceMatrix );\n\ttransformedNormal /= vec3( dot( m[ 0 ], m[ 0 ] ), dot( m[ 1 ], m[ 1 ] ), dot( m[ 2 ], m[ 2 ] ) );\n\ttransformedNormal = m * transformedNormal;\n#endif\ntransformedNormal = normalMatrix * transformedNormal;\n#ifdef FLIP_SIDED\n\ttransformedNormal = - transformedNormal;\n#endif\n#ifdef USE_TANGENT\n\tvec3 transformedTangent = ( modelViewMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#ifdef FLIP_SIDED\n\t\ttransformedTangent = - transformedTangent;\n\t#endif\n#endif"; - var displacementmap_pars_vertex = "#ifdef USE_DISPLACEMENTMAP\n\tuniform sampler2D displacementMap;\n\tuniform float displacementScale;\n\tuniform float displacementBias;\n#endif"; - var displacementmap_vertex = "#ifdef USE_DISPLACEMENTMAP\n\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, vUv ).x * displacementScale + displacementBias );\n#endif"; - var emissivemap_fragment = "#ifdef USE_EMISSIVEMAP\n\tvec4 emissiveColor = texture2D( emissiveMap, vUv );\n\temissiveColor.rgb = emissiveMapTexelToLinear( emissiveColor ).rgb;\n\ttotalEmissiveRadiance *= emissiveColor.rgb;\n#endif"; - var emissivemap_pars_fragment = "#ifdef USE_EMISSIVEMAP\n\tuniform sampler2D emissiveMap;\n#endif"; - var encodings_fragment = "gl_FragColor = linearToOutputTexel( gl_FragColor );"; - var encodings_pars_fragment = "\nvec4 LinearToLinear( in vec4 value ) {\n\treturn value;\n}\nvec4 GammaToLinear( in vec4 value, in float gammaFactor ) {\n\treturn vec4( pow( value.rgb, vec3( gammaFactor ) ), value.a );\n}\nvec4 LinearToGamma( in vec4 value, in float gammaFactor ) {\n\treturn vec4( pow( value.rgb, vec3( 1.0 / gammaFactor ) ), value.a );\n}\nvec4 sRGBToLinear( in vec4 value ) {\n\treturn vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.a );\n}\nvec4 LinearTosRGB( in vec4 value ) {\n\treturn vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a );\n}\nvec4 RGBEToLinear( in vec4 value ) {\n\treturn vec4( value.rgb * exp2( value.a * 255.0 - 128.0 ), 1.0 );\n}\nvec4 LinearToRGBE( in vec4 value ) {\n\tfloat maxComponent = max( max( value.r, value.g ), value.b );\n\tfloat fExp = clamp( ceil( log2( maxComponent ) ), -128.0, 127.0 );\n\treturn vec4( value.rgb / exp2( fExp ), ( fExp + 128.0 ) / 255.0 );\n}\nvec4 RGBMToLinear( in vec4 value, in float maxRange ) {\n\treturn vec4( value.rgb * value.a * maxRange, 1.0 );\n}\nvec4 LinearToRGBM( in vec4 value, in float maxRange ) {\n\tfloat maxRGB = max( value.r, max( value.g, value.b ) );\n\tfloat M = clamp( maxRGB / maxRange, 0.0, 1.0 );\n\tM = ceil( M * 255.0 ) / 255.0;\n\treturn vec4( value.rgb / ( M * maxRange ), M );\n}\nvec4 RGBDToLinear( in vec4 value, in float maxRange ) {\n\treturn vec4( value.rgb * ( ( maxRange / 255.0 ) / value.a ), 1.0 );\n}\nvec4 LinearToRGBD( in vec4 value, in float maxRange ) {\n\tfloat maxRGB = max( value.r, max( value.g, value.b ) );\n\tfloat D = max( maxRange / maxRGB, 1.0 );\n\tD = clamp( floor( D ) / 255.0, 0.0, 1.0 );\n\treturn vec4( value.rgb * ( D * ( 255.0 / maxRange ) ), D );\n}\nconst mat3 cLogLuvM = mat3( 0.2209, 0.3390, 0.4184, 0.1138, 0.6780, 0.7319, 0.0102, 0.1130, 0.2969 );\nvec4 LinearToLogLuv( in vec4 value ) {\n\tvec3 Xp_Y_XYZp = cLogLuvM * value.rgb;\n\tXp_Y_XYZp = max( Xp_Y_XYZp, vec3( 1e-6, 1e-6, 1e-6 ) );\n\tvec4 vResult;\n\tvResult.xy = Xp_Y_XYZp.xy / Xp_Y_XYZp.z;\n\tfloat Le = 2.0 * log2(Xp_Y_XYZp.y) + 127.0;\n\tvResult.w = fract( Le );\n\tvResult.z = ( Le - ( floor( vResult.w * 255.0 ) ) / 255.0 ) / 255.0;\n\treturn vResult;\n}\nconst mat3 cLogLuvInverseM = mat3( 6.0014, -2.7008, -1.7996, -1.3320, 3.1029, -5.7721, 0.3008, -1.0882, 5.6268 );\nvec4 LogLuvToLinear( in vec4 value ) {\n\tfloat Le = value.z * 255.0 + value.w;\n\tvec3 Xp_Y_XYZp;\n\tXp_Y_XYZp.y = exp2( ( Le - 127.0 ) / 2.0 );\n\tXp_Y_XYZp.z = Xp_Y_XYZp.y / value.y;\n\tXp_Y_XYZp.x = value.x * Xp_Y_XYZp.z;\n\tvec3 vRGB = cLogLuvInverseM * Xp_Y_XYZp.rgb;\n\treturn vec4( max( vRGB, 0.0 ), 1.0 );\n}"; - var envmap_fragment = "#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvec3 cameraToFrag;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToFrag = normalize( vWorldPosition - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvec3 reflectVec = reflect( cameraToFrag, worldNormal );\n\t\t#else\n\t\t\tvec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );\n\t\t#endif\n\t#else\n\t\tvec3 reflectVec = vReflect;\n\t#endif\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 envColor = textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\n\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\tvec4 envColor = textureCubeUV( envMap, reflectVec, 0.0 );\n\t#else\n\t\tvec4 envColor = vec4( 0.0 );\n\t#endif\n\t#ifndef ENVMAP_TYPE_CUBE_UV\n\t\tenvColor = envMapTexelToLinear( envColor );\n\t#endif\n\t#ifdef ENVMAP_BLENDING_MULTIPLY\n\t\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_MIX )\n\t\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_ADD )\n\t\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\n\t#endif\n#endif"; - var envmap_common_pars_fragment = "#ifdef USE_ENVMAP\n\tuniform float envMapIntensity;\n\tuniform float flipEnvMap;\n\tuniform int maxMipLevel;\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tuniform samplerCube envMap;\n\t#else\n\t\tuniform sampler2D envMap;\n\t#endif\n\t\n#endif"; - var envmap_pars_fragment = "#ifdef USE_ENVMAP\n\tuniform float reflectivity;\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\tvarying vec3 vWorldPosition;\n\t\tuniform float refractionRatio;\n\t#else\n\t\tvarying vec3 vReflect;\n\t#endif\n#endif"; - var envmap_pars_vertex = "#ifdef USE_ENVMAP\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) ||defined( PHONG )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\t\n\t\tvarying vec3 vWorldPosition;\n\t#else\n\t\tvarying vec3 vReflect;\n\t\tuniform float refractionRatio;\n\t#endif\n#endif"; - var envmap_vertex = "#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvWorldPosition = worldPosition.xyz;\n\t#else\n\t\tvec3 cameraToVertex;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToVertex = normalize( worldPosition.xyz - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvReflect = reflect( cameraToVertex, worldNormal );\n\t\t#else\n\t\t\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\n\t\t#endif\n\t#endif\n#endif"; - var fog_vertex = "#ifdef USE_FOG\n\tfogDepth = - mvPosition.z;\n#endif"; - var fog_pars_vertex = "#ifdef USE_FOG\n\tvarying float fogDepth;\n#endif"; - var fog_fragment = "#ifdef USE_FOG\n\t#ifdef FOG_EXP2\n\t\tfloat fogFactor = 1.0 - exp( - fogDensity * fogDensity * fogDepth * fogDepth );\n\t#else\n\t\tfloat fogFactor = smoothstep( fogNear, fogFar, fogDepth );\n\t#endif\n\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\n#endif"; - var fog_pars_fragment = "#ifdef USE_FOG\n\tuniform vec3 fogColor;\n\tvarying float fogDepth;\n\t#ifdef FOG_EXP2\n\t\tuniform float fogDensity;\n\t#else\n\t\tuniform float fogNear;\n\t\tuniform float fogFar;\n\t#endif\n#endif"; - var gradientmap_pars_fragment = "#ifdef USE_GRADIENTMAP\n\tuniform sampler2D gradientMap;\n#endif\nvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\n\tfloat dotNL = dot( normal, lightDirection );\n\tvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\n\t#ifdef USE_GRADIENTMAP\n\t\treturn texture2D( gradientMap, coord ).rgb;\n\t#else\n\t\treturn ( coord.x < 0.7 ) ? vec3( 0.7 ) : vec3( 1.0 );\n\t#endif\n}"; - var lightmap_fragment = "#ifdef USE_LIGHTMAP\n\tvec4 lightMapTexel= texture2D( lightMap, vUv2 );\n\treflectedLight.indirectDiffuse += PI * lightMapTexelToLinear( lightMapTexel ).rgb * lightMapIntensity;\n#endif"; - var lightmap_pars_fragment = "#ifdef USE_LIGHTMAP\n\tuniform sampler2D lightMap;\n\tuniform float lightMapIntensity;\n#endif"; - var lights_lambert_vertex = "vec3 diffuse = vec3( 1.0 );\nGeometricContext geometry;\ngeometry.position = mvPosition.xyz;\ngeometry.normal = normalize( transformedNormal );\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( -mvPosition.xyz );\nGeometricContext backGeometry;\nbackGeometry.position = geometry.position;\nbackGeometry.normal = -geometry.normal;\nbackGeometry.viewDir = geometry.viewDir;\nvLightFront = vec3( 0.0 );\nvIndirectFront = vec3( 0.0 );\n#ifdef DOUBLE_SIDED\n\tvLightBack = vec3( 0.0 );\n\tvIndirectBack = vec3( 0.0 );\n#endif\nIncidentLight directLight;\nfloat dotNL;\nvec3 directLightColor_Diffuse;\nvIndirectFront += getAmbientLightIrradiance( ambientLightColor );\nvIndirectFront += getLightProbeIrradiance( lightProbe, geometry );\n#ifdef DOUBLE_SIDED\n\tvIndirectBack += getAmbientLightIrradiance( ambientLightColor );\n\tvIndirectBack += getLightProbeIrradiance( lightProbe, backGeometry );\n#endif\n#if NUM_POINT_LIGHTS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tgetPointDirectLightIrradiance( pointLights[ i ], geometry, directLight );\n\t\tdotNL = dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse = PI * directLight.color;\n\t\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\n\t\t#endif\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tgetSpotDirectLightIrradiance( spotLights[ i ], geometry, directLight );\n\t\tdotNL = dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse = PI * directLight.color;\n\t\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\n\t\t#endif\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if NUM_DIR_LIGHTS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tgetDirectionalDirectLightIrradiance( directionalLights[ i ], geometry, directLight );\n\t\tdotNL = dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse = PI * directLight.color;\n\t\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\n\t\t#endif\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\tvIndirectFront += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry );\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvIndirectBack += getHemisphereLightIrradiance( hemisphereLights[ i ], backGeometry );\n\t\t#endif\n\t}\n\t#pragma unroll_loop_end\n#endif"; - var lights_pars_begin = "uniform bool receiveShadow;\nuniform vec3 ambientLightColor;\nuniform vec3 lightProbe[ 9 ];\nvec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {\n\tfloat x = normal.x, y = normal.y, z = normal.z;\n\tvec3 result = shCoefficients[ 0 ] * 0.886227;\n\tresult += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;\n\tresult += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;\n\tresult += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;\n\tresult += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;\n\tresult += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;\n\tresult += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );\n\tresult += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;\n\tresult += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );\n\treturn result;\n}\nvec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in GeometricContext geometry ) {\n\tvec3 worldNormal = inverseTransformDirection( geometry.normal, viewMatrix );\n\tvec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\n\treturn irradiance;\n}\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\n\tvec3 irradiance = ambientLightColor;\n\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tirradiance *= PI;\n\t#endif\n\treturn irradiance;\n}\n#if NUM_DIR_LIGHTS > 0\n\tstruct DirectionalLight {\n\t\tvec3 direction;\n\t\tvec3 color;\n\t};\n\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\n\tvoid getDirectionalDirectLightIrradiance( const in DirectionalLight directionalLight, const in GeometricContext geometry, out IncidentLight directLight ) {\n\t\tdirectLight.color = directionalLight.color;\n\t\tdirectLight.direction = directionalLight.direction;\n\t\tdirectLight.visible = true;\n\t}\n#endif\n#if NUM_POINT_LIGHTS > 0\n\tstruct PointLight {\n\t\tvec3 position;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t};\n\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\n\tvoid getPointDirectLightIrradiance( const in PointLight pointLight, const in GeometricContext geometry, out IncidentLight directLight ) {\n\t\tvec3 lVector = pointLight.position - geometry.position;\n\t\tdirectLight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tdirectLight.color = pointLight.color;\n\t\tdirectLight.color *= punctualLightIntensityToIrradianceFactor( lightDistance, pointLight.distance, pointLight.decay );\n\t\tdirectLight.visible = ( directLight.color != vec3( 0.0 ) );\n\t}\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\tstruct SpotLight {\n\t\tvec3 position;\n\t\tvec3 direction;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t\tfloat coneCos;\n\t\tfloat penumbraCos;\n\t};\n\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\n\tvoid getSpotDirectLightIrradiance( const in SpotLight spotLight, const in GeometricContext geometry, out IncidentLight directLight ) {\n\t\tvec3 lVector = spotLight.position - geometry.position;\n\t\tdirectLight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tfloat angleCos = dot( directLight.direction, spotLight.direction );\n\t\tif ( angleCos > spotLight.coneCos ) {\n\t\t\tfloat spotEffect = smoothstep( spotLight.coneCos, spotLight.penumbraCos, angleCos );\n\t\t\tdirectLight.color = spotLight.color;\n\t\t\tdirectLight.color *= spotEffect * punctualLightIntensityToIrradianceFactor( lightDistance, spotLight.distance, spotLight.decay );\n\t\t\tdirectLight.visible = true;\n\t\t} else {\n\t\t\tdirectLight.color = vec3( 0.0 );\n\t\t\tdirectLight.visible = false;\n\t\t}\n\t}\n#endif\n#if NUM_RECT_AREA_LIGHTS > 0\n\tstruct RectAreaLight {\n\t\tvec3 color;\n\t\tvec3 position;\n\t\tvec3 halfWidth;\n\t\tvec3 halfHeight;\n\t};\n\tuniform sampler2D ltc_1;\tuniform sampler2D ltc_2;\n\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\tstruct HemisphereLight {\n\t\tvec3 direction;\n\t\tvec3 skyColor;\n\t\tvec3 groundColor;\n\t};\n\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\n\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in GeometricContext geometry ) {\n\t\tfloat dotNL = dot( geometry.normal, hemiLight.direction );\n\t\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\n\t\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\n\t\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\t\tirradiance *= PI;\n\t\t#endif\n\t\treturn irradiance;\n\t}\n#endif"; - var envmap_physical_pars_fragment = "#if defined( USE_ENVMAP )\n\t#ifdef ENVMAP_MODE_REFRACTION\n\t\tuniform float refractionRatio;\n\t#endif\n\tvec3 getLightProbeIndirectIrradiance( const in GeometricContext geometry, const in int maxMIPLevel ) {\n\t\tvec3 worldNormal = inverseTransformDirection( geometry.normal, viewMatrix );\n\t\t#ifdef ENVMAP_TYPE_CUBE\n\t\t\tvec3 queryVec = vec3( flipEnvMap * worldNormal.x, worldNormal.yz );\n\t\t\t#ifdef TEXTURE_LOD_EXT\n\t\t\t\tvec4 envMapColor = textureCubeLodEXT( envMap, queryVec, float( maxMIPLevel ) );\n\t\t\t#else\n\t\t\t\tvec4 envMapColor = textureCube( envMap, queryVec, float( maxMIPLevel ) );\n\t\t\t#endif\n\t\t\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\n\t\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 );\n\t\t#else\n\t\t\tvec4 envMapColor = vec4( 0.0 );\n\t\t#endif\n\t\treturn PI * envMapColor.rgb * envMapIntensity;\n\t}\n\tfloat getSpecularMIPLevel( const in float roughness, const in int maxMIPLevel ) {\n\t\tfloat maxMIPLevelScalar = float( maxMIPLevel );\n\t\tfloat sigma = PI * roughness * roughness / ( 1.0 + roughness );\n\t\tfloat desiredMIPLevel = maxMIPLevelScalar + log2( sigma );\n\t\treturn clamp( desiredMIPLevel, 0.0, maxMIPLevelScalar );\n\t}\n\tvec3 getLightProbeIndirectRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in int maxMIPLevel ) {\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvec3 reflectVec = reflect( -viewDir, normal );\n\t\t\treflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\n\t\t#else\n\t\t\tvec3 reflectVec = refract( -viewDir, normal, refractionRatio );\n\t\t#endif\n\t\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\n\t\tfloat specularMIPLevel = getSpecularMIPLevel( roughness, maxMIPLevel );\n\t\t#ifdef ENVMAP_TYPE_CUBE\n\t\t\tvec3 queryReflectVec = vec3( flipEnvMap * reflectVec.x, reflectVec.yz );\n\t\t\t#ifdef TEXTURE_LOD_EXT\n\t\t\t\tvec4 envMapColor = textureCubeLodEXT( envMap, queryReflectVec, specularMIPLevel );\n\t\t\t#else\n\t\t\t\tvec4 envMapColor = textureCube( envMap, queryReflectVec, specularMIPLevel );\n\t\t\t#endif\n\t\t\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\n\t\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness );\n\t\t#endif\n\t\treturn envMapColor.rgb * envMapIntensity;\n\t}\n#endif"; - var lights_toon_fragment = "ToonMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;"; - var lights_toon_pars_fragment = "varying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\nstruct ToonMaterial {\n\tvec3 diffuseColor;\n};\nvoid RE_Direct_Toon( const in IncidentLight directLight, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\tvec3 irradiance = getGradientIrradiance( geometry.normal, directLight.direction ) * directLight.color;\n\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tirradiance *= PI;\n\t#endif\n\treflectedLight.directDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_Toon\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Toon\n#define Material_LightProbeLOD( material )\t(0)"; - var lights_phong_fragment = "BlinnPhongMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularColor = specular;\nmaterial.specularShininess = shininess;\nmaterial.specularStrength = specularStrength;"; - var lights_phong_pars_fragment = "varying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\nstruct BlinnPhongMaterial {\n\tvec3 diffuseColor;\n\tvec3 specularColor;\n\tfloat specularShininess;\n\tfloat specularStrength;\n};\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tirradiance *= PI;\n\t#endif\n\treflectedLight.directDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n\treflectedLight.directSpecular += irradiance * BRDF_Specular_BlinnPhong( directLight, geometry, material.specularColor, material.specularShininess ) * material.specularStrength;\n}\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_BlinnPhong\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_BlinnPhong\n#define Material_LightProbeLOD( material )\t(0)"; - var lights_physical_fragment = "PhysicalMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\nvec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\nmaterial.specularRoughness = max( roughnessFactor, 0.0525 );material.specularRoughness += geometryRoughness;\nmaterial.specularRoughness = min( material.specularRoughness, 1.0 );\n#ifdef REFLECTIVITY\n\tmaterial.specularColor = mix( vec3( MAXIMUM_SPECULAR_COEFFICIENT * pow2( reflectivity ) ), diffuseColor.rgb, metalnessFactor );\n#else\n\tmaterial.specularColor = mix( vec3( DEFAULT_SPECULAR_COEFFICIENT ), diffuseColor.rgb, metalnessFactor );\n#endif\n#ifdef CLEARCOAT\n\tmaterial.clearcoat = clearcoat;\n\tmaterial.clearcoatRoughness = clearcoatRoughness;\n\t#ifdef USE_CLEARCOATMAP\n\t\tmaterial.clearcoat *= texture2D( clearcoatMap, vUv ).x;\n\t#endif\n\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\t\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vUv ).y;\n\t#endif\n\tmaterial.clearcoat = saturate( material.clearcoat );\tmaterial.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\n\tmaterial.clearcoatRoughness += geometryRoughness;\n\tmaterial.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\n#endif\n#ifdef USE_SHEEN\n\tmaterial.sheenColor = sheen;\n#endif"; - var lights_physical_pars_fragment = "struct PhysicalMaterial {\n\tvec3 diffuseColor;\n\tfloat specularRoughness;\n\tvec3 specularColor;\n#ifdef CLEARCOAT\n\tfloat clearcoat;\n\tfloat clearcoatRoughness;\n#endif\n#ifdef USE_SHEEN\n\tvec3 sheenColor;\n#endif\n};\n#define MAXIMUM_SPECULAR_COEFFICIENT 0.16\n#define DEFAULT_SPECULAR_COEFFICIENT 0.04\nfloat clearcoatDHRApprox( const in float roughness, const in float dotNL ) {\n\treturn DEFAULT_SPECULAR_COEFFICIENT + ( 1.0 - DEFAULT_SPECULAR_COEFFICIENT ) * ( pow( 1.0 - dotNL, 5.0 ) * pow( 1.0 - roughness, 2.0 ) );\n}\n#if NUM_RECT_AREA_LIGHTS > 0\n\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\t\tvec3 normal = geometry.normal;\n\t\tvec3 viewDir = geometry.viewDir;\n\t\tvec3 position = geometry.position;\n\t\tvec3 lightPos = rectAreaLight.position;\n\t\tvec3 halfWidth = rectAreaLight.halfWidth;\n\t\tvec3 halfHeight = rectAreaLight.halfHeight;\n\t\tvec3 lightColor = rectAreaLight.color;\n\t\tfloat roughness = material.specularRoughness;\n\t\tvec3 rectCoords[ 4 ];\n\t\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight;\t\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\n\t\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\n\t\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\n\t\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\n\t\tvec4 t1 = texture2D( ltc_1, uv );\n\t\tvec4 t2 = texture2D( ltc_2, uv );\n\t\tmat3 mInv = mat3(\n\t\t\tvec3( t1.x, 0, t1.y ),\n\t\t\tvec3( 0, 1, 0 ),\n\t\t\tvec3( t1.z, 0, t1.w )\n\t\t);\n\t\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\n\t\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\n\t\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\n\t}\n#endif\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tirradiance *= PI;\n\t#endif\n\t#ifdef CLEARCOAT\n\t\tfloat ccDotNL = saturate( dot( geometry.clearcoatNormal, directLight.direction ) );\n\t\tvec3 ccIrradiance = ccDotNL * directLight.color;\n\t\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\t\tccIrradiance *= PI;\n\t\t#endif\n\t\tfloat clearcoatDHR = material.clearcoat * clearcoatDHRApprox( material.clearcoatRoughness, ccDotNL );\n\t\treflectedLight.directSpecular += ccIrradiance * material.clearcoat * BRDF_Specular_GGX( directLight, geometry.viewDir, geometry.clearcoatNormal, vec3( DEFAULT_SPECULAR_COEFFICIENT ), material.clearcoatRoughness );\n\t#else\n\t\tfloat clearcoatDHR = 0.0;\n\t#endif\n\t#ifdef USE_SHEEN\n\t\treflectedLight.directSpecular += ( 1.0 - clearcoatDHR ) * irradiance * BRDF_Specular_Sheen(\n\t\t\tmaterial.specularRoughness,\n\t\t\tdirectLight.direction,\n\t\t\tgeometry,\n\t\t\tmaterial.sheenColor\n\t\t);\n\t#else\n\t\treflectedLight.directSpecular += ( 1.0 - clearcoatDHR ) * irradiance * BRDF_Specular_GGX( directLight, geometry.viewDir, geometry.normal, material.specularColor, material.specularRoughness);\n\t#endif\n\treflectedLight.directDiffuse += ( 1.0 - clearcoatDHR ) * irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\n\t#ifdef CLEARCOAT\n\t\tfloat ccDotNV = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );\n\t\treflectedLight.indirectSpecular += clearcoatRadiance * material.clearcoat * BRDF_Specular_GGX_Environment( geometry.viewDir, geometry.clearcoatNormal, vec3( DEFAULT_SPECULAR_COEFFICIENT ), material.clearcoatRoughness );\n\t\tfloat ccDotNL = ccDotNV;\n\t\tfloat clearcoatDHR = material.clearcoat * clearcoatDHRApprox( material.clearcoatRoughness, ccDotNL );\n\t#else\n\t\tfloat clearcoatDHR = 0.0;\n\t#endif\n\tfloat clearcoatInv = 1.0 - clearcoatDHR;\n\tvec3 singleScattering = vec3( 0.0 );\n\tvec3 multiScattering = vec3( 0.0 );\n\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\n\tBRDF_Specular_Multiscattering_Environment( geometry, material.specularColor, material.specularRoughness, singleScattering, multiScattering );\n\tvec3 diffuse = material.diffuseColor * ( 1.0 - ( singleScattering + multiScattering ) );\n\treflectedLight.indirectSpecular += clearcoatInv * radiance * singleScattering;\n\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\n\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\n}\n#define RE_Direct\t\t\t\tRE_Direct_Physical\n#define RE_Direct_RectArea\t\tRE_Direct_RectArea_Physical\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Physical\n#define RE_IndirectSpecular\t\tRE_IndirectSpecular_Physical\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\n\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\n}"; - var lights_fragment_begin = "\nGeometricContext geometry;\ngeometry.position = - vViewPosition;\ngeometry.normal = normal;\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\n#ifdef CLEARCOAT\n\tgeometry.clearcoatNormal = clearcoatNormal;\n#endif\nIncidentLight directLight;\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\n\tPointLight pointLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tpointLight = pointLights[ i ];\n\t\tgetPointDirectLightIrradiance( pointLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\n\t\tpointLightShadow = pointLightShadows[ i ];\n\t\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\n\tSpotLight spotLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tspotLight = spotLights[ i ];\n\t\tgetSpotDirectLightIrradiance( spotLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\tspotLightShadow = spotLightShadows[ i ];\n\t\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\n\tDirectionalLight directionalLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tdirectionalLight = directionalLights[ i ];\n\t\tgetDirectionalDirectLightIrradiance( directionalLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\n\t\tdirectionalLightShadow = directionalLightShadows[ i ];\n\t\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\n\tRectAreaLight rectAreaLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\n\t\trectAreaLight = rectAreaLights[ i ];\n\t\tRE_Direct_RectArea( rectAreaLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if defined( RE_IndirectDiffuse )\n\tvec3 iblIrradiance = vec3( 0.0 );\n\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\n\tirradiance += getLightProbeIrradiance( lightProbe, geometry );\n\t#if ( NUM_HEMI_LIGHTS > 0 )\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\t\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry );\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if defined( RE_IndirectSpecular )\n\tvec3 radiance = vec3( 0.0 );\n\tvec3 clearcoatRadiance = vec3( 0.0 );\n#endif"; - var lights_fragment_maps = "#if defined( RE_IndirectDiffuse )\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel= texture2D( lightMap, vUv2 );\n\t\tvec3 lightMapIrradiance = lightMapTexelToLinear( lightMapTexel ).rgb * lightMapIntensity;\n\t\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\t\tlightMapIrradiance *= PI;\n\t\t#endif\n\t\tirradiance += lightMapIrradiance;\n\t#endif\n\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\n\t\tiblIrradiance += getLightProbeIndirectIrradiance( geometry, maxMipLevel );\n\t#endif\n#endif\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\n\tradiance += getLightProbeIndirectRadiance( geometry.viewDir, geometry.normal, material.specularRoughness, maxMipLevel );\n\t#ifdef CLEARCOAT\n\t\tclearcoatRadiance += getLightProbeIndirectRadiance( geometry.viewDir, geometry.clearcoatNormal, material.clearcoatRoughness, maxMipLevel );\n\t#endif\n#endif"; - var lights_fragment_end = "#if defined( RE_IndirectDiffuse )\n\tRE_IndirectDiffuse( irradiance, geometry, material, reflectedLight );\n#endif\n#if defined( RE_IndirectSpecular )\n\tRE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometry, material, reflectedLight );\n#endif"; - var logdepthbuf_fragment = "#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tgl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;\n#endif"; - var logdepthbuf_pars_fragment = "#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tuniform float logDepthBufFC;\n\tvarying float vFragDepth;\n\tvarying float vIsPerspective;\n#endif"; - var logdepthbuf_pars_vertex = "#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvarying float vFragDepth;\n\t\tvarying float vIsPerspective;\n\t#else\n\t\tuniform float logDepthBufFC;\n\t#endif\n#endif"; - var logdepthbuf_vertex = "#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvFragDepth = 1.0 + gl_Position.w;\n\t\tvIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );\n\t#else\n\t\tif ( isPerspectiveMatrix( projectionMatrix ) ) {\n\t\t\tgl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0;\n\t\t\tgl_Position.z *= gl_Position.w;\n\t\t}\n\t#endif\n#endif"; - var map_fragment = "#ifdef USE_MAP\n\tvec4 texelColor = texture2D( map, vUv );\n\ttexelColor = mapTexelToLinear( texelColor );\n\tdiffuseColor *= texelColor;\n#endif"; - var map_pars_fragment = "#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif"; - var map_particle_fragment = "#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\n#endif\n#ifdef USE_MAP\n\tvec4 mapTexel = texture2D( map, uv );\n\tdiffuseColor *= mapTexelToLinear( mapTexel );\n#endif\n#ifdef USE_ALPHAMAP\n\tdiffuseColor.a *= texture2D( alphaMap, uv ).g;\n#endif"; - var map_particle_pars_fragment = "#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\tuniform mat3 uvTransform;\n#endif\n#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif"; - var metalnessmap_fragment = "float metalnessFactor = metalness;\n#ifdef USE_METALNESSMAP\n\tvec4 texelMetalness = texture2D( metalnessMap, vUv );\n\tmetalnessFactor *= texelMetalness.b;\n#endif"; - var metalnessmap_pars_fragment = "#ifdef USE_METALNESSMAP\n\tuniform sampler2D metalnessMap;\n#endif"; - var morphnormal_vertex = "#ifdef USE_MORPHNORMALS\n\tobjectNormal *= morphTargetBaseInfluence;\n\tobjectNormal += morphNormal0 * morphTargetInfluences[ 0 ];\n\tobjectNormal += morphNormal1 * morphTargetInfluences[ 1 ];\n\tobjectNormal += morphNormal2 * morphTargetInfluences[ 2 ];\n\tobjectNormal += morphNormal3 * morphTargetInfluences[ 3 ];\n#endif"; - var morphtarget_pars_vertex = "#ifdef USE_MORPHTARGETS\n\tuniform float morphTargetBaseInfluence;\n\t#ifndef USE_MORPHNORMALS\n\t\tuniform float morphTargetInfluences[ 8 ];\n\t#else\n\t\tuniform float morphTargetInfluences[ 4 ];\n\t#endif\n#endif"; - var morphtarget_vertex = "#ifdef USE_MORPHTARGETS\n\ttransformed *= morphTargetBaseInfluence;\n\ttransformed += morphTarget0 * morphTargetInfluences[ 0 ];\n\ttransformed += morphTarget1 * morphTargetInfluences[ 1 ];\n\ttransformed += morphTarget2 * morphTargetInfluences[ 2 ];\n\ttransformed += morphTarget3 * morphTargetInfluences[ 3 ];\n\t#ifndef USE_MORPHNORMALS\n\t\ttransformed += morphTarget4 * morphTargetInfluences[ 4 ];\n\t\ttransformed += morphTarget5 * morphTargetInfluences[ 5 ];\n\t\ttransformed += morphTarget6 * morphTargetInfluences[ 6 ];\n\t\ttransformed += morphTarget7 * morphTargetInfluences[ 7 ];\n\t#endif\n#endif"; - var normal_fragment_begin = "#ifdef FLAT_SHADED\n\tvec3 fdx = vec3( dFdx( vViewPosition.x ), dFdx( vViewPosition.y ), dFdx( vViewPosition.z ) );\n\tvec3 fdy = vec3( dFdy( vViewPosition.x ), dFdy( vViewPosition.y ), dFdy( vViewPosition.z ) );\n\tvec3 normal = normalize( cross( fdx, fdy ) );\n#else\n\tvec3 normal = normalize( vNormal );\n\t#ifdef DOUBLE_SIDED\n\t\tnormal = normal * ( float( gl_FrontFacing ) * 2.0 - 1.0 );\n\t#endif\n\t#ifdef USE_TANGENT\n\t\tvec3 tangent = normalize( vTangent );\n\t\tvec3 bitangent = normalize( vBitangent );\n\t\t#ifdef DOUBLE_SIDED\n\t\t\ttangent = tangent * ( float( gl_FrontFacing ) * 2.0 - 1.0 );\n\t\t\tbitangent = bitangent * ( float( gl_FrontFacing ) * 2.0 - 1.0 );\n\t\t#endif\n\t\t#if defined( TANGENTSPACE_NORMALMAP ) || defined( USE_CLEARCOAT_NORMALMAP )\n\t\t\tmat3 vTBN = mat3( tangent, bitangent, normal );\n\t\t#endif\n\t#endif\n#endif\nvec3 geometryNormal = normal;"; - var normal_fragment_maps = "#ifdef OBJECTSPACE_NORMALMAP\n\tnormal = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\n\t#ifdef FLIP_SIDED\n\t\tnormal = - normal;\n\t#endif\n\t#ifdef DOUBLE_SIDED\n\t\tnormal = normal * ( float( gl_FrontFacing ) * 2.0 - 1.0 );\n\t#endif\n\tnormal = normalize( normalMatrix * normal );\n#elif defined( TANGENTSPACE_NORMALMAP )\n\tvec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\n\tmapN.xy *= normalScale;\n\t#ifdef USE_TANGENT\n\t\tnormal = normalize( vTBN * mapN );\n\t#else\n\t\tnormal = perturbNormal2Arb( -vViewPosition, normal, mapN );\n\t#endif\n#elif defined( USE_BUMPMAP )\n\tnormal = perturbNormalArb( -vViewPosition, normal, dHdxy_fwd() );\n#endif"; - var normalmap_pars_fragment = "#ifdef USE_NORMALMAP\n\tuniform sampler2D normalMap;\n\tuniform vec2 normalScale;\n#endif\n#ifdef OBJECTSPACE_NORMALMAP\n\tuniform mat3 normalMatrix;\n#endif\n#if ! defined ( USE_TANGENT ) && ( defined ( TANGENTSPACE_NORMALMAP ) || defined ( USE_CLEARCOAT_NORMALMAP ) )\n\tvec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm, vec3 mapN ) {\n\t\tvec3 q0 = vec3( dFdx( eye_pos.x ), dFdx( eye_pos.y ), dFdx( eye_pos.z ) );\n\t\tvec3 q1 = vec3( dFdy( eye_pos.x ), dFdy( eye_pos.y ), dFdy( eye_pos.z ) );\n\t\tvec2 st0 = dFdx( vUv.st );\n\t\tvec2 st1 = dFdy( vUv.st );\n\t\tfloat scale = sign( st1.t * st0.s - st0.t * st1.s );\n\t\tvec3 S = normalize( ( q0 * st1.t - q1 * st0.t ) * scale );\n\t\tvec3 T = normalize( ( - q0 * st1.s + q1 * st0.s ) * scale );\n\t\tvec3 N = normalize( surf_norm );\n\t\tmat3 tsn = mat3( S, T, N );\n\t\tmapN.xy *= ( float( gl_FrontFacing ) * 2.0 - 1.0 );\n\t\treturn normalize( tsn * mapN );\n\t}\n#endif"; - var clearcoat_normal_fragment_begin = "#ifdef CLEARCOAT\n\tvec3 clearcoatNormal = geometryNormal;\n#endif"; - var clearcoat_normal_fragment_maps = "#ifdef USE_CLEARCOAT_NORMALMAP\n\tvec3 clearcoatMapN = texture2D( clearcoatNormalMap, vUv ).xyz * 2.0 - 1.0;\n\tclearcoatMapN.xy *= clearcoatNormalScale;\n\t#ifdef USE_TANGENT\n\t\tclearcoatNormal = normalize( vTBN * clearcoatMapN );\n\t#else\n\t\tclearcoatNormal = perturbNormal2Arb( - vViewPosition, clearcoatNormal, clearcoatMapN );\n\t#endif\n#endif"; - var clearcoat_pars_fragment = "#ifdef USE_CLEARCOATMAP\n\tuniform sampler2D clearcoatMap;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform sampler2D clearcoatRoughnessMap;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform sampler2D clearcoatNormalMap;\n\tuniform vec2 clearcoatNormalScale;\n#endif"; - var packing = "vec3 packNormalToRGB( const in vec3 normal ) {\n\treturn normalize( normal ) * 0.5 + 0.5;\n}\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\n\treturn 2.0 * rgb.xyz - 1.0;\n}\nconst float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;\nconst vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\nconst vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. );\nconst float ShiftRight8 = 1. / 256.;\nvec4 packDepthToRGBA( const in float v ) {\n\tvec4 r = vec4( fract( v * PackFactors ), v );\n\tr.yzw -= r.xyz * ShiftRight8;\treturn r * PackUpscale;\n}\nfloat unpackRGBAToDepth( const in vec4 v ) {\n\treturn dot( v, UnpackFactors );\n}\nvec4 pack2HalfToRGBA( vec2 v ) {\n\tvec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ));\n\treturn vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w);\n}\nvec2 unpackRGBATo2Half( vec4 v ) {\n\treturn vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) );\n}\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( viewZ + near ) / ( near - far );\n}\nfloat orthographicDepthToViewZ( const in float linearClipZ, const in float near, const in float far ) {\n\treturn linearClipZ * ( near - far ) - near;\n}\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn (( near + viewZ ) * far ) / (( far - near ) * viewZ );\n}\nfloat perspectiveDepthToViewZ( const in float invClipZ, const in float near, const in float far ) {\n\treturn ( near * far ) / ( ( far - near ) * invClipZ - far );\n}"; - var premultiplied_alpha_fragment = "#ifdef PREMULTIPLIED_ALPHA\n\tgl_FragColor.rgb *= gl_FragColor.a;\n#endif"; - var project_vertex = "vec4 mvPosition = vec4( transformed, 1.0 );\n#ifdef USE_INSTANCING\n\tmvPosition = instanceMatrix * mvPosition;\n#endif\nmvPosition = modelViewMatrix * mvPosition;\ngl_Position = projectionMatrix * mvPosition;"; - var dithering_fragment = "#ifdef DITHERING\n\tgl_FragColor.rgb = dithering( gl_FragColor.rgb );\n#endif"; - var dithering_pars_fragment = "#ifdef DITHERING\n\tvec3 dithering( vec3 color ) {\n\t\tfloat grid_position = rand( gl_FragCoord.xy );\n\t\tvec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\n\t\tdither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\n\t\treturn color + dither_shift_RGB;\n\t}\n#endif"; - var roughnessmap_fragment = "float roughnessFactor = roughness;\n#ifdef USE_ROUGHNESSMAP\n\tvec4 texelRoughness = texture2D( roughnessMap, vUv );\n\troughnessFactor *= texelRoughness.g;\n#endif"; - var roughnessmap_pars_fragment = "#ifdef USE_ROUGHNESSMAP\n\tuniform sampler2D roughnessMap;\n#endif"; - var shadowmap_pars_fragment = "#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\n\t\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\n\t}\n\tvec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {\n\t\treturn unpackRGBATo2Half( texture2D( shadow, uv ) );\n\t}\n\tfloat VSMShadow (sampler2D shadow, vec2 uv, float compare ){\n\t\tfloat occlusion = 1.0;\n\t\tvec2 distribution = texture2DDistribution( shadow, uv );\n\t\tfloat hard_shadow = step( compare , distribution.x );\n\t\tif (hard_shadow != 1.0 ) {\n\t\t\tfloat distance = compare - distribution.x ;\n\t\t\tfloat variance = max( 0.00000, distribution.y * distribution.y );\n\t\t\tfloat softness_probability = variance / (variance + distance * distance );\t\t\tsoftness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 );\t\t\tocclusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );\n\t\t}\n\t\treturn occlusion;\n\t}\n\tfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\n\t\tfloat shadow = 1.0;\n\t\tshadowCoord.xyz /= shadowCoord.w;\n\t\tshadowCoord.z += shadowBias;\n\t\tbvec4 inFrustumVec = bvec4 ( shadowCoord.x >= 0.0, shadowCoord.x <= 1.0, shadowCoord.y >= 0.0, shadowCoord.y <= 1.0 );\n\t\tbool inFrustum = all( inFrustumVec );\n\t\tbvec2 frustumTestVec = bvec2( inFrustum, shadowCoord.z <= 1.0 );\n\t\tbool frustumTest = all( frustumTestVec );\n\t\tif ( frustumTest ) {\n\t\t#if defined( SHADOWMAP_TYPE_PCF )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx0 = - texelSize.x * shadowRadius;\n\t\t\tfloat dy0 = - texelSize.y * shadowRadius;\n\t\t\tfloat dx1 = + texelSize.x * shadowRadius;\n\t\t\tfloat dy1 = + texelSize.y * shadowRadius;\n\t\t\tfloat dx2 = dx0 / 2.0;\n\t\t\tfloat dy2 = dy0 / 2.0;\n\t\t\tfloat dx3 = dx1 / 2.0;\n\t\t\tfloat dy3 = dy1 / 2.0;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\n\t\t\t) * ( 1.0 / 17.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx = texelSize.x;\n\t\t\tfloat dy = texelSize.y;\n\t\t\tvec2 uv = shadowCoord.xy;\n\t\t\tvec2 f = fract( uv * shadowMapSize + 0.5 );\n\t\t\tuv -= f * texelSize;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, uv, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ), \n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ), \n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ), \n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ), \n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ), \n\t\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t\t f.x ),\n\t\t\t\t\t mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ), \n\t\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t\t f.x ),\n\t\t\t\t\t f.y )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_VSM )\n\t\t\tshadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#else\n\t\t\tshadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#endif\n\t\t}\n\t\treturn shadow;\n\t}\n\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\n\t\tvec3 absV = abs( v );\n\t\tfloat scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\n\t\tabsV *= scaleToCube;\n\t\tv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\n\t\tvec2 planar = v.xy;\n\t\tfloat almostATexel = 1.5 * texelSizeY;\n\t\tfloat almostOne = 1.0 - almostATexel;\n\t\tif ( absV.z >= almostOne ) {\n\t\t\tif ( v.z > 0.0 )\n\t\t\t\tplanar.x = 4.0 - v.x;\n\t\t} else if ( absV.x >= almostOne ) {\n\t\t\tfloat signX = sign( v.x );\n\t\t\tplanar.x = v.z * signX + 2.0 * signX;\n\t\t} else if ( absV.y >= almostOne ) {\n\t\t\tfloat signY = sign( v.y );\n\t\t\tplanar.x = v.x + 2.0 * signY + 2.0;\n\t\t\tplanar.y = v.z * signY - 2.0;\n\t\t}\n\t\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\n\t}\n\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\n\t\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\n\t\tvec3 lightToPosition = shadowCoord.xyz;\n\t\tfloat dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear );\t\tdp += shadowBias;\n\t\tvec3 bd3D = normalize( lightToPosition );\n\t\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )\n\t\t\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\n\t\t\treturn (\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#else\n\t\t\treturn texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\n\t\t#endif\n\t}\n#endif"; - var shadowmap_pars_vertex = "#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tuniform mat4 spotShadowMatrix[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n#endif"; - var shadowmap_vertex = "#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0 || NUM_SPOT_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0\n\t\tvec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\t\tvec4 shadowWorldPosition;\n\t#endif\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );\n\t\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias, 0 );\n\t\tvSpotShadowCoord[ i ] = spotShadowMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );\n\t\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n#endif"; - var shadowmask_pars_fragment = "float getShadowMask() {\n\tfloat shadow = 1.0;\n\t#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\tdirectionalLight = directionalLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\n\t\tspotLight = spotLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\tpointLight = pointLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#endif\n\treturn shadow;\n}"; - var skinbase_vertex = "#ifdef USE_SKINNING\n\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\n\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\n\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\n\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\n#endif"; - var skinning_pars_vertex = "#ifdef USE_SKINNING\n\tuniform mat4 bindMatrix;\n\tuniform mat4 bindMatrixInverse;\n\t#ifdef BONE_TEXTURE\n\t\tuniform highp sampler2D boneTexture;\n\t\tuniform int boneTextureSize;\n\t\tmat4 getBoneMatrix( const in float i ) {\n\t\t\tfloat j = i * 4.0;\n\t\t\tfloat x = mod( j, float( boneTextureSize ) );\n\t\t\tfloat y = floor( j / float( boneTextureSize ) );\n\t\t\tfloat dx = 1.0 / float( boneTextureSize );\n\t\t\tfloat dy = 1.0 / float( boneTextureSize );\n\t\t\ty = dy * ( y + 0.5 );\n\t\t\tvec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) );\n\t\t\tvec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) );\n\t\t\tvec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) );\n\t\t\tvec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) );\n\t\t\tmat4 bone = mat4( v1, v2, v3, v4 );\n\t\t\treturn bone;\n\t\t}\n\t#else\n\t\tuniform mat4 boneMatrices[ MAX_BONES ];\n\t\tmat4 getBoneMatrix( const in float i ) {\n\t\t\tmat4 bone = boneMatrices[ int(i) ];\n\t\t\treturn bone;\n\t\t}\n\t#endif\n#endif"; - var skinning_vertex = "#ifdef USE_SKINNING\n\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\n\tvec4 skinned = vec4( 0.0 );\n\tskinned += boneMatX * skinVertex * skinWeight.x;\n\tskinned += boneMatY * skinVertex * skinWeight.y;\n\tskinned += boneMatZ * skinVertex * skinWeight.z;\n\tskinned += boneMatW * skinVertex * skinWeight.w;\n\ttransformed = ( bindMatrixInverse * skinned ).xyz;\n#endif"; - var skinnormal_vertex = "#ifdef USE_SKINNING\n\tmat4 skinMatrix = mat4( 0.0 );\n\tskinMatrix += skinWeight.x * boneMatX;\n\tskinMatrix += skinWeight.y * boneMatY;\n\tskinMatrix += skinWeight.z * boneMatZ;\n\tskinMatrix += skinWeight.w * boneMatW;\n\tskinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\n\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\n\t#ifdef USE_TANGENT\n\t\tobjectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#endif\n#endif"; - var specularmap_fragment = "float specularStrength;\n#ifdef USE_SPECULARMAP\n\tvec4 texelSpecular = texture2D( specularMap, vUv );\n\tspecularStrength = texelSpecular.r;\n#else\n\tspecularStrength = 1.0;\n#endif"; - var specularmap_pars_fragment = "#ifdef USE_SPECULARMAP\n\tuniform sampler2D specularMap;\n#endif"; - var tonemapping_fragment = "#if defined( TONE_MAPPING )\n\tgl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\n#endif"; - var tonemapping_pars_fragment = "#ifndef saturate\n#define saturate(a) clamp( a, 0.0, 1.0 )\n#endif\nuniform float toneMappingExposure;\nvec3 LinearToneMapping( vec3 color ) {\n\treturn toneMappingExposure * color;\n}\nvec3 ReinhardToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\treturn saturate( color / ( vec3( 1.0 ) + color ) );\n}\nvec3 OptimizedCineonToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\tcolor = max( vec3( 0.0 ), color - 0.004 );\n\treturn pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\n}\nvec3 RRTAndODTFit( vec3 v ) {\n\tvec3 a = v * ( v + 0.0245786 ) - 0.000090537;\n\tvec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;\n\treturn a / b;\n}\nvec3 ACESFilmicToneMapping( vec3 color ) {\n\tconst mat3 ACESInputMat = mat3(\n\t\tvec3( 0.59719, 0.07600, 0.02840 ),\t\tvec3( 0.35458, 0.90834, 0.13383 ),\n\t\tvec3( 0.04823, 0.01566, 0.83777 )\n\t);\n\tconst mat3 ACESOutputMat = mat3(\n\t\tvec3( 1.60475, -0.10208, -0.00327 ),\t\tvec3( -0.53108, 1.10813, -0.07276 ),\n\t\tvec3( -0.07367, -0.00605, 1.07602 )\n\t);\n\tcolor *= toneMappingExposure / 0.6;\n\tcolor = ACESInputMat * color;\n\tcolor = RRTAndODTFit( color );\n\tcolor = ACESOutputMat * color;\n\treturn saturate( color );\n}\nvec3 CustomToneMapping( vec3 color ) { return color; }"; - var transmissionmap_fragment = "#ifdef USE_TRANSMISSIONMAP\n\ttotalTransmission *= texture2D( transmissionMap, vUv ).r;\n#endif"; - var transmissionmap_pars_fragment = "#ifdef USE_TRANSMISSIONMAP\n\tuniform sampler2D transmissionMap;\n#endif"; - var uv_pars_fragment = "#if ( defined( USE_UV ) && ! defined( UVS_VERTEX_ONLY ) )\n\tvarying vec2 vUv;\n#endif"; - var uv_pars_vertex = "#ifdef USE_UV\n\t#ifdef UVS_VERTEX_ONLY\n\t\tvec2 vUv;\n\t#else\n\t\tvarying vec2 vUv;\n\t#endif\n\tuniform mat3 uvTransform;\n#endif"; - var uv_vertex = "#ifdef USE_UV\n\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n#endif"; - var uv2_pars_fragment = "#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tvarying vec2 vUv2;\n#endif"; - var uv2_pars_vertex = "#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tattribute vec2 uv2;\n\tvarying vec2 vUv2;\n\tuniform mat3 uv2Transform;\n#endif"; - var uv2_vertex = "#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tvUv2 = ( uv2Transform * vec3( uv2, 1 ) ).xy;\n#endif"; - var worldpos_vertex = "#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP )\n\tvec4 worldPosition = vec4( transformed, 1.0 );\n\t#ifdef USE_INSTANCING\n\t\tworldPosition = instanceMatrix * worldPosition;\n\t#endif\n\tworldPosition = modelMatrix * worldPosition;\n#endif"; - var background_frag = "uniform sampler2D t2D;\nvarying vec2 vUv;\nvoid main() {\n\tvec4 texColor = texture2D( t2D, vUv );\n\tgl_FragColor = mapTexelToLinear( texColor );\n\t#include \n\t#include \n}"; - var background_vert = "varying vec2 vUv;\nuniform mat3 uvTransform;\nvoid main() {\n\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n\tgl_Position = vec4( position.xy, 1.0, 1.0 );\n}"; - var cube_frag = "#include \nuniform float opacity;\nvarying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvec3 vReflect = vWorldDirection;\n\t#include \n\tgl_FragColor = envColor;\n\tgl_FragColor.a *= opacity;\n\t#include \n\t#include \n}"; - var cube_vert = "varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n\tgl_Position.z = gl_Position.w;\n}"; - var depth_frag = "#if DEPTH_PACKING == 3200\n\tuniform float opacity;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( 1.0 );\n\t#if DEPTH_PACKING == 3200\n\t\tdiffuseColor.a = opacity;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\tfloat fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;\n\t#if DEPTH_PACKING == 3200\n\t\tgl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );\n\t#elif DEPTH_PACKING == 3201\n\t\tgl_FragColor = packDepthToRGBA( fragCoordZ );\n\t#endif\n}"; - var depth_vert = "#include \n#include \n#include \n#include \n#include \n#include \n#include \nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include \n\t#include \n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvHighPrecisionZW = gl_Position.zw;\n}"; - var distanceRGBA_frag = "#define DISTANCE\nuniform vec3 referencePosition;\nuniform float nearDistance;\nuniform float farDistance;\nvarying vec3 vWorldPosition;\n#include \n#include \n#include \n#include \n#include \n#include \nvoid main () {\n\t#include \n\tvec4 diffuseColor = vec4( 1.0 );\n\t#include \n\t#include \n\t#include \n\tfloat dist = length( vWorldPosition - referencePosition );\n\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\n\tdist = saturate( dist );\n\tgl_FragColor = packDepthToRGBA( dist );\n}"; - var distanceRGBA_vert = "#define DISTANCE\nvarying vec3 vWorldPosition;\n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvWorldPosition = worldPosition.xyz;\n}"; - var equirect_frag = "uniform sampler2D tEquirect;\nvarying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvec3 direction = normalize( vWorldDirection );\n\tvec2 sampleUV = equirectUv( direction );\n\tvec4 texColor = texture2D( tEquirect, sampleUV );\n\tgl_FragColor = mapTexelToLinear( texColor );\n\t#include \n\t#include \n}"; - var equirect_vert = "varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n}"; - var linedashed_frag = "uniform vec3 diffuse;\nuniform float opacity;\nuniform float dashSize;\nuniform float totalSize;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\n\t\tdiscard;\n\t}\n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n\t#include \n}"; - var linedashed_vert = "uniform float scale;\nattribute float lineDistance;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tvLineDistance = scale * lineDistance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}"; - var meshbasic_frag = "uniform vec3 diffuse;\nuniform float opacity;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\t#ifdef USE_LIGHTMAP\n\t\n\t\tvec4 lightMapTexel= texture2D( lightMap, vUv2 );\n\t\treflectedLight.indirectDiffuse += lightMapTexelToLinear( lightMapTexel ).rgb * lightMapIntensity;\n\t#else\n\t\treflectedLight.indirectDiffuse += vec3( 1.0 );\n\t#endif\n\t#include \n\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\n\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\n\t#include \n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}"; - var meshbasic_vert = "#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#ifdef USE_ENVMAP\n\t#include \n\t#include \n\t#include \n\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}"; - var meshlambert_frag = "uniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\nvarying vec3 vLightFront;\nvarying vec3 vIndirectFront;\n#ifdef DOUBLE_SIDED\n\tvarying vec3 vLightBack;\n\tvarying vec3 vIndirectBack;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#ifdef DOUBLE_SIDED\n\t\treflectedLight.indirectDiffuse += ( gl_FrontFacing ) ? vIndirectFront : vIndirectBack;\n\t#else\n\t\treflectedLight.indirectDiffuse += vIndirectFront;\n\t#endif\n\t#include \n\treflectedLight.indirectDiffuse *= BRDF_Diffuse_Lambert( diffuseColor.rgb );\n\t#ifdef DOUBLE_SIDED\n\t\treflectedLight.directDiffuse = ( gl_FrontFacing ) ? vLightFront : vLightBack;\n\t#else\n\t\treflectedLight.directDiffuse = vLightFront;\n\t#endif\n\treflectedLight.directDiffuse *= BRDF_Diffuse_Lambert( diffuseColor.rgb ) * getShadowMask();\n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include \n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}"; - var meshlambert_vert = "#define LAMBERT\nvarying vec3 vLightFront;\nvarying vec3 vIndirectFront;\n#ifdef DOUBLE_SIDED\n\tvarying vec3 vLightBack;\n\tvarying vec3 vIndirectBack;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}"; - var meshmatcap_frag = "#define MATCAP\nuniform vec3 diffuse;\nuniform float opacity;\nuniform sampler2D matcap;\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 viewDir = normalize( vViewPosition );\n\tvec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );\n\tvec3 y = cross( viewDir, x );\n\tvec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5;\n\t#ifdef USE_MATCAP\n\t\tvec4 matcapColor = texture2D( matcap, uv );\n\t\tmatcapColor = matcapTexelToLinear( matcapColor );\n\t#else\n\t\tvec4 matcapColor = vec4( 1.0 );\n\t#endif\n\tvec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}"; - var meshmatcap_vert = "#define MATCAP\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#ifndef FLAT_SHADED\n\t\tvNormal = normalize( transformedNormal );\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n}"; - var meshtoon_frag = "#define TOON\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}"; - var meshtoon_vert = "#define TOON\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n}"; - var meshphong_frag = "#define PHONG\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform vec3 specular;\nuniform float shininess;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\t#include \n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}"; - var meshphong_vert = "#define PHONG\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n\t#include \n}"; - var meshphysical_frag = "#define STANDARD\n#ifdef PHYSICAL\n\t#define REFLECTIVITY\n\t#define CLEARCOAT\n\t#define TRANSMISSION\n#endif\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n#ifdef TRANSMISSION\n\tuniform float transmission;\n#endif\n#ifdef REFLECTIVITY\n\tuniform float reflectivity;\n#endif\n#ifdef CLEARCOAT\n\tuniform float clearcoat;\n\tuniform float clearcoatRoughness;\n#endif\n#ifdef USE_SHEEN\n\tuniform vec3 sheen;\n#endif\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#ifdef TRANSMISSION\n\t\tfloat totalTransmission = transmission;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\t#ifdef TRANSMISSION\n\t\tdiffuseColor.a *= mix( saturate( 1. - totalTransmission + linearToRelativeLuminance( reflectedLight.directSpecular + reflectedLight.indirectSpecular ) ), 1.0, metalness );\n\t#endif\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}"; - var meshphysical_vert = "#define STANDARD\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n\t#ifdef USE_TANGENT\n\t\tvTangent = normalize( transformedTangent );\n\t\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\n\t#endif\n#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n}"; - var normal_frag = "#define NORMAL\nuniform float opacity;\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\n\tvarying vec3 vViewPosition;\n#endif\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\tgl_FragColor = vec4( packNormalToRGB( normal ), opacity );\n}"; - var normal_vert = "#define NORMAL\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\n\tvarying vec3 vViewPosition;\n#endif\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n\t#ifdef USE_TANGENT\n\t\tvTangent = normalize( transformedTangent );\n\t\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\n\t#endif\n#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\n\tvViewPosition = - mvPosition.xyz;\n#endif\n}"; - var points_frag = "uniform vec3 diffuse;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n\t#include \n}"; - var points_vert = "uniform float size;\nuniform float scale;\n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\tgl_PointSize = size;\n\t#ifdef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n}"; - var shadow_frag = "uniform vec3 color;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tgl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\n\t#include \n\t#include \n\t#include \n}"; - var shadow_vert = "#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}"; - var sprite_frag = "uniform vec3 diffuse;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include \n\t#include \n\t#include \n}"; - var sprite_vert = "uniform float rotation;\nuniform vec2 center;\n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\n\tvec2 scale;\n\tscale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) );\n\tscale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) );\n\t#ifndef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) scale *= - mvPosition.z;\n\t#endif\n\tvec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;\n\tvec2 rotatedPosition;\n\trotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\n\trotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\n\tmvPosition.xy += rotatedPosition;\n\tgl_Position = projectionMatrix * mvPosition;\n\t#include \n\t#include \n\t#include \n}"; - var ShaderChunk = { - alphamap_fragment: alphamap_fragment, - alphamap_pars_fragment: alphamap_pars_fragment, - alphatest_fragment: alphatest_fragment, - aomap_fragment: aomap_fragment, - aomap_pars_fragment: aomap_pars_fragment, - begin_vertex: begin_vertex, - beginnormal_vertex: beginnormal_vertex, - bsdfs: bsdfs, - bumpmap_pars_fragment: bumpmap_pars_fragment, - clipping_planes_fragment: clipping_planes_fragment, - clipping_planes_pars_fragment: clipping_planes_pars_fragment, - clipping_planes_pars_vertex: clipping_planes_pars_vertex, - clipping_planes_vertex: clipping_planes_vertex, - color_fragment: color_fragment, - color_pars_fragment: color_pars_fragment, - color_pars_vertex: color_pars_vertex, - color_vertex: color_vertex, - common: common, - cube_uv_reflection_fragment: cube_uv_reflection_fragment, - defaultnormal_vertex: defaultnormal_vertex, - displacementmap_pars_vertex: displacementmap_pars_vertex, - displacementmap_vertex: displacementmap_vertex, - emissivemap_fragment: emissivemap_fragment, - emissivemap_pars_fragment: emissivemap_pars_fragment, - encodings_fragment: encodings_fragment, - encodings_pars_fragment: encodings_pars_fragment, - envmap_fragment: envmap_fragment, - envmap_common_pars_fragment: envmap_common_pars_fragment, - envmap_pars_fragment: envmap_pars_fragment, - envmap_pars_vertex: envmap_pars_vertex, - envmap_physical_pars_fragment: envmap_physical_pars_fragment, - envmap_vertex: envmap_vertex, - fog_vertex: fog_vertex, - fog_pars_vertex: fog_pars_vertex, - fog_fragment: fog_fragment, - fog_pars_fragment: fog_pars_fragment, - gradientmap_pars_fragment: gradientmap_pars_fragment, - lightmap_fragment: lightmap_fragment, - lightmap_pars_fragment: lightmap_pars_fragment, - lights_lambert_vertex: lights_lambert_vertex, - lights_pars_begin: lights_pars_begin, - lights_toon_fragment: lights_toon_fragment, - lights_toon_pars_fragment: lights_toon_pars_fragment, - lights_phong_fragment: lights_phong_fragment, - lights_phong_pars_fragment: lights_phong_pars_fragment, - lights_physical_fragment: lights_physical_fragment, - lights_physical_pars_fragment: lights_physical_pars_fragment, - lights_fragment_begin: lights_fragment_begin, - lights_fragment_maps: lights_fragment_maps, - lights_fragment_end: lights_fragment_end, - logdepthbuf_fragment: logdepthbuf_fragment, - logdepthbuf_pars_fragment: logdepthbuf_pars_fragment, - logdepthbuf_pars_vertex: logdepthbuf_pars_vertex, - logdepthbuf_vertex: logdepthbuf_vertex, - map_fragment: map_fragment, - map_pars_fragment: map_pars_fragment, - map_particle_fragment: map_particle_fragment, - map_particle_pars_fragment: map_particle_pars_fragment, - metalnessmap_fragment: metalnessmap_fragment, - metalnessmap_pars_fragment: metalnessmap_pars_fragment, - morphnormal_vertex: morphnormal_vertex, - morphtarget_pars_vertex: morphtarget_pars_vertex, - morphtarget_vertex: morphtarget_vertex, - normal_fragment_begin: normal_fragment_begin, - normal_fragment_maps: normal_fragment_maps, - normalmap_pars_fragment: normalmap_pars_fragment, - clearcoat_normal_fragment_begin: clearcoat_normal_fragment_begin, - clearcoat_normal_fragment_maps: clearcoat_normal_fragment_maps, - clearcoat_pars_fragment: clearcoat_pars_fragment, - packing: packing, - premultiplied_alpha_fragment: premultiplied_alpha_fragment, - project_vertex: project_vertex, - dithering_fragment: dithering_fragment, - dithering_pars_fragment: dithering_pars_fragment, - roughnessmap_fragment: roughnessmap_fragment, - roughnessmap_pars_fragment: roughnessmap_pars_fragment, - shadowmap_pars_fragment: shadowmap_pars_fragment, - shadowmap_pars_vertex: shadowmap_pars_vertex, - shadowmap_vertex: shadowmap_vertex, - shadowmask_pars_fragment: shadowmask_pars_fragment, - skinbase_vertex: skinbase_vertex, - skinning_pars_vertex: skinning_pars_vertex, - skinning_vertex: skinning_vertex, - skinnormal_vertex: skinnormal_vertex, - specularmap_fragment: specularmap_fragment, - specularmap_pars_fragment: specularmap_pars_fragment, - tonemapping_fragment: tonemapping_fragment, - tonemapping_pars_fragment: tonemapping_pars_fragment, - transmissionmap_fragment: transmissionmap_fragment, - transmissionmap_pars_fragment: transmissionmap_pars_fragment, - uv_pars_fragment: uv_pars_fragment, - uv_pars_vertex: uv_pars_vertex, - uv_vertex: uv_vertex, - uv2_pars_fragment: uv2_pars_fragment, - uv2_pars_vertex: uv2_pars_vertex, - uv2_vertex: uv2_vertex, - worldpos_vertex: worldpos_vertex, - background_frag: background_frag, - background_vert: background_vert, - cube_frag: cube_frag, - cube_vert: cube_vert, - depth_frag: depth_frag, - depth_vert: depth_vert, - distanceRGBA_frag: distanceRGBA_frag, - distanceRGBA_vert: distanceRGBA_vert, - equirect_frag: equirect_frag, - equirect_vert: equirect_vert, - linedashed_frag: linedashed_frag, - linedashed_vert: linedashed_vert, - meshbasic_frag: meshbasic_frag, - meshbasic_vert: meshbasic_vert, - meshlambert_frag: meshlambert_frag, - meshlambert_vert: meshlambert_vert, - meshmatcap_frag: meshmatcap_frag, - meshmatcap_vert: meshmatcap_vert, - meshtoon_frag: meshtoon_frag, - meshtoon_vert: meshtoon_vert, - meshphong_frag: meshphong_frag, - meshphong_vert: meshphong_vert, - meshphysical_frag: meshphysical_frag, - meshphysical_vert: meshphysical_vert, - normal_frag: normal_frag, - normal_vert: normal_vert, - points_frag: points_frag, - points_vert: points_vert, - shadow_frag: shadow_frag, - shadow_vert: shadow_vert, - sprite_frag: sprite_frag, - sprite_vert: sprite_vert - }; - /** - * Uniforms library for shared webgl shaders - */ - var UniformsLib = { - common: { - diffuse: { - value: new Color(0xeeeeee) - }, - opacity: { - value: 1.0 - }, - map: { - value: null - }, - uvTransform: { - value: new Matrix3() - }, - uv2Transform: { - value: new Matrix3() - }, - alphaMap: { - value: null - } - }, - specularmap: { - specularMap: { - value: null - } - }, - envmap: { - envMap: { - value: null - }, - flipEnvMap: { - value: -1 - }, - reflectivity: { - value: 1.0 - }, - refractionRatio: { - value: 0.98 - }, - maxMipLevel: { - value: 0 - } - }, - aomap: { - aoMap: { - value: null - }, - aoMapIntensity: { - value: 1 - } - }, - lightmap: { - lightMap: { - value: null - }, - lightMapIntensity: { - value: 1 - } - }, - emissivemap: { - emissiveMap: { - value: null - } - }, - bumpmap: { - bumpMap: { - value: null - }, - bumpScale: { - value: 1 - } - }, - normalmap: { - normalMap: { - value: null - }, - normalScale: { - value: new Vector2(1, 1) - } - }, - displacementmap: { - displacementMap: { - value: null - }, - displacementScale: { - value: 1 - }, - displacementBias: { - value: 0 - } - }, - roughnessmap: { - roughnessMap: { - value: null - } - }, - metalnessmap: { - metalnessMap: { - value: null - } - }, - gradientmap: { - gradientMap: { - value: null - } - }, - fog: { - fogDensity: { - value: 0.00025 - }, - fogNear: { - value: 1 - }, - fogFar: { - value: 2000 - }, - fogColor: { - value: new Color(0xffffff) - } - }, - lights: { - ambientLightColor: { - value: [] - }, - lightProbe: { - value: [] - }, - directionalLights: { - value: [], - properties: { - direction: {}, - color: {} - } - }, - directionalLightShadows: { - value: [], - properties: { - shadowBias: {}, - shadowNormalBias: {}, - shadowRadius: {}, - shadowMapSize: {} - } - }, - directionalShadowMap: { - value: [] - }, - directionalShadowMatrix: { - value: [] - }, - spotLights: { - value: [], - properties: { - color: {}, - position: {}, - direction: {}, - distance: {}, - coneCos: {}, - penumbraCos: {}, - decay: {} - } - }, - spotLightShadows: { - value: [], - properties: { - shadowBias: {}, - shadowNormalBias: {}, - shadowRadius: {}, - shadowMapSize: {} - } - }, - spotShadowMap: { - value: [] - }, - spotShadowMatrix: { - value: [] - }, - pointLights: { - value: [], - properties: { - color: {}, - position: {}, - decay: {}, - distance: {} - } - }, - pointLightShadows: { - value: [], - properties: { - shadowBias: {}, - shadowNormalBias: {}, - shadowRadius: {}, - shadowMapSize: {}, - shadowCameraNear: {}, - shadowCameraFar: {} - } - }, - pointShadowMap: { - value: [] - }, - pointShadowMatrix: { - value: [] - }, - hemisphereLights: { - value: [], - properties: { - direction: {}, - skyColor: {}, - groundColor: {} - } - }, - // TODO (abelnation): RectAreaLight BRDF data needs to be moved from example to main src - rectAreaLights: { - value: [], - properties: { - color: {}, - position: {}, - width: {}, - height: {} - } - }, - ltc_1: { - value: null - }, - ltc_2: { - value: null - } - }, - points: { - diffuse: { - value: new Color(0xeeeeee) - }, - opacity: { - value: 1.0 - }, - size: { - value: 1.0 - }, - scale: { - value: 1.0 - }, - map: { - value: null - }, - alphaMap: { - value: null - }, - uvTransform: { - value: new Matrix3() - } - }, - sprite: { - diffuse: { - value: new Color(0xeeeeee) - }, - opacity: { - value: 1.0 - }, - center: { - value: new Vector2(0.5, 0.5) - }, - rotation: { - value: 0.0 - }, - map: { - value: null - }, - alphaMap: { - value: null - }, - uvTransform: { - value: new Matrix3() - } - } - }; - var ShaderLib = { - basic: { - uniforms: mergeUniforms([UniformsLib.common, UniformsLib.specularmap, UniformsLib.envmap, UniformsLib.aomap, UniformsLib.lightmap, UniformsLib.fog]), - vertexShader: ShaderChunk.meshbasic_vert, - fragmentShader: ShaderChunk.meshbasic_frag - }, - lambert: { - uniforms: mergeUniforms([UniformsLib.common, UniformsLib.specularmap, UniformsLib.envmap, UniformsLib.aomap, UniformsLib.lightmap, UniformsLib.emissivemap, UniformsLib.fog, UniformsLib.lights, { - emissive: { - value: new Color(0x000000) - } - }]), - vertexShader: ShaderChunk.meshlambert_vert, - fragmentShader: ShaderChunk.meshlambert_frag - }, - phong: { - uniforms: mergeUniforms([UniformsLib.common, UniformsLib.specularmap, UniformsLib.envmap, UniformsLib.aomap, UniformsLib.lightmap, UniformsLib.emissivemap, UniformsLib.bumpmap, UniformsLib.normalmap, UniformsLib.displacementmap, UniformsLib.fog, UniformsLib.lights, { - emissive: { - value: new Color(0x000000) - }, - specular: { - value: new Color(0x111111) - }, - shininess: { - value: 30 - } - }]), - vertexShader: ShaderChunk.meshphong_vert, - fragmentShader: ShaderChunk.meshphong_frag - }, - standard: { - uniforms: mergeUniforms([UniformsLib.common, UniformsLib.envmap, UniformsLib.aomap, UniformsLib.lightmap, UniformsLib.emissivemap, UniformsLib.bumpmap, UniformsLib.normalmap, UniformsLib.displacementmap, UniformsLib.roughnessmap, UniformsLib.metalnessmap, UniformsLib.fog, UniformsLib.lights, { - emissive: { - value: new Color(0x000000) - }, - roughness: { - value: 1.0 - }, - metalness: { - value: 0.0 - }, - envMapIntensity: { - value: 1 - } // temporary - }]), - vertexShader: ShaderChunk.meshphysical_vert, - fragmentShader: ShaderChunk.meshphysical_frag - }, - toon: { - uniforms: mergeUniforms([UniformsLib.common, UniformsLib.aomap, UniformsLib.lightmap, UniformsLib.emissivemap, UniformsLib.bumpmap, UniformsLib.normalmap, UniformsLib.displacementmap, UniformsLib.gradientmap, UniformsLib.fog, UniformsLib.lights, { - emissive: { - value: new Color(0x000000) - } - }]), - vertexShader: ShaderChunk.meshtoon_vert, - fragmentShader: ShaderChunk.meshtoon_frag - }, - matcap: { - uniforms: mergeUniforms([UniformsLib.common, UniformsLib.bumpmap, UniformsLib.normalmap, UniformsLib.displacementmap, UniformsLib.fog, { - matcap: { - value: null - } - }]), - vertexShader: ShaderChunk.meshmatcap_vert, - fragmentShader: ShaderChunk.meshmatcap_frag - }, - points: { - uniforms: mergeUniforms([UniformsLib.points, UniformsLib.fog]), - vertexShader: ShaderChunk.points_vert, - fragmentShader: ShaderChunk.points_frag - }, - dashed: { - uniforms: mergeUniforms([UniformsLib.common, UniformsLib.fog, { - scale: { - value: 1 - }, - dashSize: { - value: 1 - }, - totalSize: { - value: 2 - } - }]), - vertexShader: ShaderChunk.linedashed_vert, - fragmentShader: ShaderChunk.linedashed_frag - }, - depth: { - uniforms: mergeUniforms([UniformsLib.common, UniformsLib.displacementmap]), - vertexShader: ShaderChunk.depth_vert, - fragmentShader: ShaderChunk.depth_frag - }, - normal: { - uniforms: mergeUniforms([UniformsLib.common, UniformsLib.bumpmap, UniformsLib.normalmap, UniformsLib.displacementmap, { - opacity: { - value: 1.0 - } - }]), - vertexShader: ShaderChunk.normal_vert, - fragmentShader: ShaderChunk.normal_frag - }, - sprite: { - uniforms: mergeUniforms([UniformsLib.sprite, UniformsLib.fog]), - vertexShader: ShaderChunk.sprite_vert, - fragmentShader: ShaderChunk.sprite_frag - }, - background: { - uniforms: { - uvTransform: { - value: new Matrix3() - }, - t2D: { - value: null - } - }, - vertexShader: ShaderChunk.background_vert, - fragmentShader: ShaderChunk.background_frag - }, - /* ------------------------------------------------------------------------- - // Cube map shader - ------------------------------------------------------------------------- */ - cube: { - uniforms: mergeUniforms([UniformsLib.envmap, { - opacity: { - value: 1.0 - } - }]), - vertexShader: ShaderChunk.cube_vert, - fragmentShader: ShaderChunk.cube_frag - }, - equirect: { - uniforms: { - tEquirect: { - value: null - } - }, - vertexShader: ShaderChunk.equirect_vert, - fragmentShader: ShaderChunk.equirect_frag - }, - distanceRGBA: { - uniforms: mergeUniforms([UniformsLib.common, UniformsLib.displacementmap, { - referencePosition: { - value: new Vector3() - }, - nearDistance: { - value: 1 - }, - farDistance: { - value: 1000 - } - }]), - vertexShader: ShaderChunk.distanceRGBA_vert, - fragmentShader: ShaderChunk.distanceRGBA_frag - }, - shadow: { - uniforms: mergeUniforms([UniformsLib.lights, UniformsLib.fog, { - color: { - value: new Color(0x00000) - }, - opacity: { - value: 1.0 - } - }]), - vertexShader: ShaderChunk.shadow_vert, - fragmentShader: ShaderChunk.shadow_frag - } - }; - ShaderLib.physical = { - uniforms: mergeUniforms([ShaderLib.standard.uniforms, { - clearcoat: { - value: 0 - }, - clearcoatMap: { - value: null - }, - clearcoatRoughness: { - value: 0 - }, - clearcoatRoughnessMap: { - value: null - }, - clearcoatNormalScale: { - value: new Vector2(1, 1) - }, - clearcoatNormalMap: { - value: null - }, - sheen: { - value: new Color(0x000000) - }, - transmission: { - value: 0 - }, - transmissionMap: { - value: null - } - }]), - vertexShader: ShaderChunk.meshphysical_vert, - fragmentShader: ShaderChunk.meshphysical_frag - }; - function WebGLBackground(renderer, cubemaps, state, objects, premultipliedAlpha) { - var clearColor = new Color(0x000000); - var clearAlpha = 0; - var planeMesh; - var boxMesh; - var currentBackground = null; - var currentBackgroundVersion = 0; - var currentTonemapping = null; - function render(renderList, scene, camera, forceClear) { - var background = scene.isScene === true ? scene.background : null; - if (background && background.isTexture) { - background = cubemaps.get(background); - } // Ignore background in AR - // TODO: Reconsider this. - - var xr = renderer.xr; - var session = xr.getSession && xr.getSession(); - if (session && session.environmentBlendMode === 'additive') { - background = null; - } - if (background === null) { - setClear(clearColor, clearAlpha); - } else if (background && background.isColor) { - setClear(background, 1); - forceClear = true; - } - if (renderer.autoClear || forceClear) { - renderer.clear(renderer.autoClearColor, renderer.autoClearDepth, renderer.autoClearStencil); - } - if (background && (background.isCubeTexture || background.isWebGLCubeRenderTarget || background.mapping === CubeUVReflectionMapping)) { - if (boxMesh === undefined) { - boxMesh = new Mesh(new BoxBufferGeometry(1, 1, 1), new ShaderMaterial({ - name: 'BackgroundCubeMaterial', - uniforms: cloneUniforms(ShaderLib.cube.uniforms), - vertexShader: ShaderLib.cube.vertexShader, - fragmentShader: ShaderLib.cube.fragmentShader, - side: BackSide, - depthTest: false, - depthWrite: false, - fog: false - })); - boxMesh.geometry.deleteAttribute('normal'); - boxMesh.geometry.deleteAttribute('uv'); - boxMesh.onBeforeRender = function (renderer, scene, camera) { - this.matrixWorld.copyPosition(camera.matrixWorld); - }; // enable code injection for non-built-in material - - Object.defineProperty(boxMesh.material, 'envMap', { - get: function get() { - return this.uniforms.envMap.value; - } - }); - objects.update(boxMesh); - } - if (background.isWebGLCubeRenderTarget) { - // TODO Deprecate - background = background.texture; - } - boxMesh.material.uniforms.envMap.value = background; - boxMesh.material.uniforms.flipEnvMap.value = background.isCubeTexture && background._needsFlipEnvMap ? -1 : 1; - if (currentBackground !== background || currentBackgroundVersion !== background.version || currentTonemapping !== renderer.toneMapping) { - boxMesh.material.needsUpdate = true; - currentBackground = background; - currentBackgroundVersion = background.version; - currentTonemapping = renderer.toneMapping; - } // push to the pre-sorted opaque render list - - renderList.unshift(boxMesh, boxMesh.geometry, boxMesh.material, 0, 0, null); - } else if (background && background.isTexture) { - if (planeMesh === undefined) { - planeMesh = new Mesh(new PlaneBufferGeometry(2, 2), new ShaderMaterial({ - name: 'BackgroundMaterial', - uniforms: cloneUniforms(ShaderLib.background.uniforms), - vertexShader: ShaderLib.background.vertexShader, - fragmentShader: ShaderLib.background.fragmentShader, - side: FrontSide, - depthTest: false, - depthWrite: false, - fog: false - })); - planeMesh.geometry.deleteAttribute('normal'); // enable code injection for non-built-in material - Object.defineProperty(planeMesh.material, 'map', { - get: function get() { - return this.uniforms.t2D.value; - } - }); - objects.update(planeMesh); - } - planeMesh.material.uniforms.t2D.value = background; - if (background.matrixAutoUpdate === true) { - background.updateMatrix(); - } - planeMesh.material.uniforms.uvTransform.value.copy(background.matrix); - if (currentBackground !== background || currentBackgroundVersion !== background.version || currentTonemapping !== renderer.toneMapping) { - planeMesh.material.needsUpdate = true; - currentBackground = background; - currentBackgroundVersion = background.version; - currentTonemapping = renderer.toneMapping; - } // push to the pre-sorted opaque render list - - renderList.unshift(planeMesh, planeMesh.geometry, planeMesh.material, 0, 0, null); - } - } - function setClear(color, alpha) { - state.buffers.color.setClear(color.r, color.g, color.b, alpha, premultipliedAlpha); - } - return { - getClearColor: function getClearColor() { - return clearColor; - }, - setClearColor: function setClearColor(color, alpha) { - if (alpha === void 0) { - alpha = 1; - } - clearColor.set(color); - clearAlpha = alpha; - setClear(clearColor, clearAlpha); - }, - getClearAlpha: function getClearAlpha() { - return clearAlpha; - }, - setClearAlpha: function setClearAlpha(alpha) { - clearAlpha = alpha; - setClear(clearColor, clearAlpha); - }, - render: render - }; - } - function WebGLBindingStates(gl, extensions, attributes, capabilities) { - var maxVertexAttributes = gl.getParameter(34921); - var extension = capabilities.isWebGL2 ? null : extensions.get('OES_vertex_array_object'); - var vaoAvailable = capabilities.isWebGL2 || extension !== null; - var bindingStates = {}; - var defaultState = createBindingState(null); - var currentState = defaultState; - function setup(object, material, program, geometry, index) { - var updateBuffers = false; - if (vaoAvailable) { - var state = getBindingState(geometry, program, material); - if (currentState !== state) { - currentState = state; - bindVertexArrayObject(currentState.object); - } - updateBuffers = needsUpdate(geometry, index); - if (updateBuffers) saveCache(geometry, index); - } else { - var wireframe = material.wireframe === true; - if (currentState.geometry !== geometry.id || currentState.program !== program.id || currentState.wireframe !== wireframe) { - currentState.geometry = geometry.id; - currentState.program = program.id; - currentState.wireframe = wireframe; - updateBuffers = true; - } - } - if (object.isInstancedMesh === true) { - updateBuffers = true; - } - if (index !== null) { - attributes.update(index, 34963); - } - if (updateBuffers) { - setupVertexAttributes(object, material, program, geometry); - if (index !== null) { - gl.bindBuffer(34963, attributes.get(index).buffer); - } - } - } - function createVertexArrayObject() { - if (capabilities.isWebGL2) return gl.createVertexArray(); - return extension.createVertexArrayOES(); - } - function bindVertexArrayObject(vao) { - if (capabilities.isWebGL2) return gl.bindVertexArray(vao); - return extension.bindVertexArrayOES(vao); - } - function deleteVertexArrayObject(vao) { - if (capabilities.isWebGL2) return gl.deleteVertexArray(vao); - return extension.deleteVertexArrayOES(vao); - } - function getBindingState(geometry, program, material) { - var wireframe = material.wireframe === true; - var programMap = bindingStates[geometry.id]; - if (programMap === undefined) { - programMap = {}; - bindingStates[geometry.id] = programMap; - } - var stateMap = programMap[program.id]; - if (stateMap === undefined) { - stateMap = {}; - programMap[program.id] = stateMap; - } - var state = stateMap[wireframe]; - if (state === undefined) { - state = createBindingState(createVertexArrayObject()); - stateMap[wireframe] = state; - } - return state; - } - function createBindingState(vao) { - var newAttributes = []; - var enabledAttributes = []; - var attributeDivisors = []; - for (var i = 0; i < maxVertexAttributes; i++) { - newAttributes[i] = 0; - enabledAttributes[i] = 0; - attributeDivisors[i] = 0; - } - return { - // for backward compatibility on non-VAO support browser - geometry: null, - program: null, - wireframe: false, - newAttributes: newAttributes, - enabledAttributes: enabledAttributes, - attributeDivisors: attributeDivisors, - object: vao, - attributes: {}, - index: null - }; - } - function needsUpdate(geometry, index) { - var cachedAttributes = currentState.attributes; - var geometryAttributes = geometry.attributes; - var attributesNum = 0; - for (var key in geometryAttributes) { - var cachedAttribute = cachedAttributes[key]; - var geometryAttribute = geometryAttributes[key]; - if (cachedAttribute === undefined) return true; - if (cachedAttribute.attribute !== geometryAttribute) return true; - if (cachedAttribute.data !== geometryAttribute.data) return true; - attributesNum++; - } - if (currentState.attributesNum !== attributesNum) return true; - if (currentState.index !== index) return true; - return false; - } - function saveCache(geometry, index) { - var cache = {}; - var attributes = geometry.attributes; - var attributesNum = 0; - for (var key in attributes) { - var attribute = attributes[key]; - var data = {}; - data.attribute = attribute; - if (attribute.data) { - data.data = attribute.data; - } - cache[key] = data; - attributesNum++; - } - currentState.attributes = cache; - currentState.attributesNum = attributesNum; - currentState.index = index; - } - function initAttributes() { - var newAttributes = currentState.newAttributes; - for (var i = 0, il = newAttributes.length; i < il; i++) { - newAttributes[i] = 0; - } - } - function enableAttribute(attribute) { - enableAttributeAndDivisor(attribute, 0); - } - function enableAttributeAndDivisor(attribute, meshPerAttribute) { - var newAttributes = currentState.newAttributes; - var enabledAttributes = currentState.enabledAttributes; - var attributeDivisors = currentState.attributeDivisors; - newAttributes[attribute] = 1; - if (enabledAttributes[attribute] === 0) { - gl.enableVertexAttribArray(attribute); - enabledAttributes[attribute] = 1; - } - if (attributeDivisors[attribute] !== meshPerAttribute) { - var _extension = capabilities.isWebGL2 ? gl : extensions.get('ANGLE_instanced_arrays'); - _extension[capabilities.isWebGL2 ? 'vertexAttribDivisor' : 'vertexAttribDivisorANGLE'](attribute, meshPerAttribute); - attributeDivisors[attribute] = meshPerAttribute; - } - } - function disableUnusedAttributes() { - var newAttributes = currentState.newAttributes; - var enabledAttributes = currentState.enabledAttributes; - for (var i = 0, il = enabledAttributes.length; i < il; i++) { - if (enabledAttributes[i] !== newAttributes[i]) { - gl.disableVertexAttribArray(i); - enabledAttributes[i] = 0; - } - } - } - function vertexAttribPointer(index, size, type, normalized, stride, offset) { - if (capabilities.isWebGL2 === true && (type === 5124 || type === 5125)) { - gl.vertexAttribIPointer(index, size, type, stride, offset); - } else { - gl.vertexAttribPointer(index, size, type, normalized, stride, offset); - } - } - function setupVertexAttributes(object, material, program, geometry) { - if (capabilities.isWebGL2 === false && (object.isInstancedMesh || geometry.isInstancedBufferGeometry)) { - if (extensions.get('ANGLE_instanced_arrays') === null) return; - } - initAttributes(); - var geometryAttributes = geometry.attributes; - var programAttributes = program.getAttributes(); - var materialDefaultAttributeValues = material.defaultAttributeValues; - for (var name in programAttributes) { - var programAttribute = programAttributes[name]; - if (programAttribute >= 0) { - var geometryAttribute = geometryAttributes[name]; - if (geometryAttribute !== undefined) { - var normalized = geometryAttribute.normalized; - var size = geometryAttribute.itemSize; - var attribute = attributes.get(geometryAttribute); // TODO Attribute may not be available on context restore - if (attribute === undefined) continue; - var buffer = attribute.buffer; - var type = attribute.type; - var bytesPerElement = attribute.bytesPerElement; - if (geometryAttribute.isInterleavedBufferAttribute) { - var data = geometryAttribute.data; - var stride = data.stride; - var offset = geometryAttribute.offset; - if (data && data.isInstancedInterleavedBuffer) { - enableAttributeAndDivisor(programAttribute, data.meshPerAttribute); - if (geometry._maxInstanceCount === undefined) { - geometry._maxInstanceCount = data.meshPerAttribute * data.count; - } - } else { - enableAttribute(programAttribute); - } - gl.bindBuffer(34962, buffer); - vertexAttribPointer(programAttribute, size, type, normalized, stride * bytesPerElement, offset * bytesPerElement); - } else { - if (geometryAttribute.isInstancedBufferAttribute) { - enableAttributeAndDivisor(programAttribute, geometryAttribute.meshPerAttribute); - if (geometry._maxInstanceCount === undefined) { - geometry._maxInstanceCount = geometryAttribute.meshPerAttribute * geometryAttribute.count; - } - } else { - enableAttribute(programAttribute); - } - gl.bindBuffer(34962, buffer); - vertexAttribPointer(programAttribute, size, type, normalized, 0, 0); - } - } else if (name === 'instanceMatrix') { - var _attribute = attributes.get(object.instanceMatrix); // TODO Attribute may not be available on context restore - - if (_attribute === undefined) continue; - var _buffer = _attribute.buffer; - var _type = _attribute.type; - enableAttributeAndDivisor(programAttribute + 0, 1); - enableAttributeAndDivisor(programAttribute + 1, 1); - enableAttributeAndDivisor(programAttribute + 2, 1); - enableAttributeAndDivisor(programAttribute + 3, 1); - gl.bindBuffer(34962, _buffer); - gl.vertexAttribPointer(programAttribute + 0, 4, _type, false, 64, 0); - gl.vertexAttribPointer(programAttribute + 1, 4, _type, false, 64, 16); - gl.vertexAttribPointer(programAttribute + 2, 4, _type, false, 64, 32); - gl.vertexAttribPointer(programAttribute + 3, 4, _type, false, 64, 48); - } else if (name === 'instanceColor') { - var _attribute2 = attributes.get(object.instanceColor); // TODO Attribute may not be available on context restore - - if (_attribute2 === undefined) continue; - var _buffer2 = _attribute2.buffer; - var _type2 = _attribute2.type; - enableAttributeAndDivisor(programAttribute, 1); - gl.bindBuffer(34962, _buffer2); - gl.vertexAttribPointer(programAttribute, 3, _type2, false, 12, 0); - } else if (materialDefaultAttributeValues !== undefined) { - var value = materialDefaultAttributeValues[name]; - if (value !== undefined) { - switch (value.length) { - case 2: - gl.vertexAttrib2fv(programAttribute, value); - break; - case 3: - gl.vertexAttrib3fv(programAttribute, value); - break; - case 4: - gl.vertexAttrib4fv(programAttribute, value); - break; - default: - gl.vertexAttrib1fv(programAttribute, value); - } - } - } - } - } - disableUnusedAttributes(); - } - function dispose() { - reset(); - for (var geometryId in bindingStates) { - var programMap = bindingStates[geometryId]; - for (var programId in programMap) { - var stateMap = programMap[programId]; - for (var wireframe in stateMap) { - deleteVertexArrayObject(stateMap[wireframe].object); - delete stateMap[wireframe]; - } - delete programMap[programId]; - } - delete bindingStates[geometryId]; - } - } - function releaseStatesOfGeometry(geometry) { - if (bindingStates[geometry.id] === undefined) return; - var programMap = bindingStates[geometry.id]; - for (var programId in programMap) { - var stateMap = programMap[programId]; - for (var wireframe in stateMap) { - deleteVertexArrayObject(stateMap[wireframe].object); - delete stateMap[wireframe]; - } - delete programMap[programId]; - } - delete bindingStates[geometry.id]; - } - function releaseStatesOfProgram(program) { - for (var geometryId in bindingStates) { - var programMap = bindingStates[geometryId]; - if (programMap[program.id] === undefined) continue; - var stateMap = programMap[program.id]; - for (var wireframe in stateMap) { - deleteVertexArrayObject(stateMap[wireframe].object); - delete stateMap[wireframe]; - } - delete programMap[program.id]; - } - } - function reset() { - resetDefaultState(); - if (currentState === defaultState) return; - currentState = defaultState; - bindVertexArrayObject(currentState.object); - } // for backward-compatilibity - - function resetDefaultState() { - defaultState.geometry = null; - defaultState.program = null; - defaultState.wireframe = false; - } - return { - setup: setup, - reset: reset, - resetDefaultState: resetDefaultState, - dispose: dispose, - releaseStatesOfGeometry: releaseStatesOfGeometry, - releaseStatesOfProgram: releaseStatesOfProgram, - initAttributes: initAttributes, - enableAttribute: enableAttribute, - disableUnusedAttributes: disableUnusedAttributes - }; - } - function WebGLBufferRenderer(gl, extensions, info, capabilities) { - var isWebGL2 = capabilities.isWebGL2; - var mode; - function setMode(value) { - mode = value; - } - function render(start, count) { - gl.drawArrays(mode, start, count); - info.update(count, mode, 1); - } - function renderInstances(start, count, primcount) { - if (primcount === 0) return; - var extension, methodName; - if (isWebGL2) { - extension = gl; - methodName = 'drawArraysInstanced'; - } else { - extension = extensions.get('ANGLE_instanced_arrays'); - methodName = 'drawArraysInstancedANGLE'; - if (extension === null) { - console.error('THREE.WebGLBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.'); - return; - } - } - extension[methodName](mode, start, count, primcount); - info.update(count, mode, primcount); - } // - - this.setMode = setMode; - this.render = render; - this.renderInstances = renderInstances; - } - function WebGLCapabilities(gl, extensions, parameters) { - var maxAnisotropy; - function getMaxAnisotropy() { - if (maxAnisotropy !== undefined) return maxAnisotropy; - var extension = extensions.get('EXT_texture_filter_anisotropic'); - if (extension !== null) { - maxAnisotropy = gl.getParameter(extension.MAX_TEXTURE_MAX_ANISOTROPY_EXT); - } else { - maxAnisotropy = 0; - } - return maxAnisotropy; - } - function getMaxPrecision(precision) { - if (precision === 'highp') { - if (gl.getShaderPrecisionFormat(35633, 36338).precision > 0 && gl.getShaderPrecisionFormat(35632, 36338).precision > 0) { - return 'highp'; - } - precision = 'mediump'; - } - if (precision === 'mediump') { - if (gl.getShaderPrecisionFormat(35633, 36337).precision > 0 && gl.getShaderPrecisionFormat(35632, 36337).precision > 0) { - return 'mediump'; - } - } - return 'lowp'; - } - /* eslint-disable no-undef */ - - var isWebGL2 = typeof WebGL2RenderingContext !== 'undefined' && gl instanceof WebGL2RenderingContext || typeof WebGL2ComputeRenderingContext !== 'undefined' && gl instanceof WebGL2ComputeRenderingContext; - /* eslint-enable no-undef */ - var precision = parameters.precision !== undefined ? parameters.precision : 'highp'; - var maxPrecision = getMaxPrecision(precision); - if (maxPrecision !== precision) { - console.warn('THREE.WebGLRenderer:', precision, 'not supported, using', maxPrecision, 'instead.'); - precision = maxPrecision; - } - var logarithmicDepthBuffer = parameters.logarithmicDepthBuffer === true; - var maxTextures = gl.getParameter(34930); - var maxVertexTextures = gl.getParameter(35660); - var maxTextureSize = gl.getParameter(3379); - var maxCubemapSize = gl.getParameter(34076); - var maxAttributes = gl.getParameter(34921); - var maxVertexUniforms = gl.getParameter(36347); - var maxVaryings = gl.getParameter(36348); - var maxFragmentUniforms = gl.getParameter(36349); - var vertexTextures = maxVertexTextures > 0; - var floatFragmentTextures = isWebGL2 || !!extensions.get('OES_texture_float'); - var floatVertexTextures = vertexTextures && floatFragmentTextures; - var maxSamples = isWebGL2 ? gl.getParameter(36183) : 0; - return { - isWebGL2: isWebGL2, - getMaxAnisotropy: getMaxAnisotropy, - getMaxPrecision: getMaxPrecision, - precision: precision, - logarithmicDepthBuffer: logarithmicDepthBuffer, - maxTextures: maxTextures, - maxVertexTextures: maxVertexTextures, - maxTextureSize: maxTextureSize, - maxCubemapSize: maxCubemapSize, - maxAttributes: maxAttributes, - maxVertexUniforms: maxVertexUniforms, - maxVaryings: maxVaryings, - maxFragmentUniforms: maxFragmentUniforms, - vertexTextures: vertexTextures, - floatFragmentTextures: floatFragmentTextures, - floatVertexTextures: floatVertexTextures, - maxSamples: maxSamples - }; - } - function WebGLClipping(properties) { - var scope = this; - var globalState = null, - numGlobalPlanes = 0, - localClippingEnabled = false, - renderingShadows = false; - var plane = new Plane(), - viewNormalMatrix = new Matrix3(), - uniform = { - value: null, - needsUpdate: false - }; - this.uniform = uniform; - this.numPlanes = 0; - this.numIntersection = 0; - this.init = function (planes, enableLocalClipping, camera) { - var enabled = planes.length !== 0 || enableLocalClipping || // enable state of previous frame - the clipping code has to - // run another frame in order to reset the state: - numGlobalPlanes !== 0 || localClippingEnabled; - localClippingEnabled = enableLocalClipping; - globalState = projectPlanes(planes, camera, 0); - numGlobalPlanes = planes.length; - return enabled; - }; - this.beginShadows = function () { - renderingShadows = true; - projectPlanes(null); - }; - this.endShadows = function () { - renderingShadows = false; - resetGlobalState(); - }; - this.setState = function (material, camera, useCache) { - var planes = material.clippingPlanes, - clipIntersection = material.clipIntersection, - clipShadows = material.clipShadows; - var materialProperties = properties.get(material); - if (!localClippingEnabled || planes === null || planes.length === 0 || renderingShadows && !clipShadows) { - // there's no local clipping - if (renderingShadows) { - // there's no global clipping - projectPlanes(null); - } else { - resetGlobalState(); - } - } else { - var nGlobal = renderingShadows ? 0 : numGlobalPlanes, - lGlobal = nGlobal * 4; - var dstArray = materialProperties.clippingState || null; - uniform.value = dstArray; // ensure unique state - dstArray = projectPlanes(planes, camera, lGlobal, useCache); - for (var i = 0; i !== lGlobal; ++i) { - dstArray[i] = globalState[i]; - } - materialProperties.clippingState = dstArray; - this.numIntersection = clipIntersection ? this.numPlanes : 0; - this.numPlanes += nGlobal; - } - }; - function resetGlobalState() { - if (uniform.value !== globalState) { - uniform.value = globalState; - uniform.needsUpdate = numGlobalPlanes > 0; - } - scope.numPlanes = numGlobalPlanes; - scope.numIntersection = 0; - } - function projectPlanes(planes, camera, dstOffset, skipTransform) { - var nPlanes = planes !== null ? planes.length : 0; - var dstArray = null; - if (nPlanes !== 0) { - dstArray = uniform.value; - if (skipTransform !== true || dstArray === null) { - var flatSize = dstOffset + nPlanes * 4, - viewMatrix = camera.matrixWorldInverse; - viewNormalMatrix.getNormalMatrix(viewMatrix); - if (dstArray === null || dstArray.length < flatSize) { - dstArray = new Float32Array(flatSize); - } - for (var i = 0, i4 = dstOffset; i !== nPlanes; ++i, i4 += 4) { - plane.copy(planes[i]).applyMatrix4(viewMatrix, viewNormalMatrix); - plane.normal.toArray(dstArray, i4); - dstArray[i4 + 3] = plane.constant; - } - } - uniform.value = dstArray; - uniform.needsUpdate = true; - } - scope.numPlanes = nPlanes; - scope.numIntersection = 0; - return dstArray; - } - } - function WebGLCubeMaps(renderer) { - var cubemaps = new WeakMap(); - function mapTextureMapping(texture, mapping) { - if (mapping === EquirectangularReflectionMapping) { - texture.mapping = CubeReflectionMapping; - } else if (mapping === EquirectangularRefractionMapping) { - texture.mapping = CubeRefractionMapping; - } - return texture; - } - function get(texture) { - if (texture && texture.isTexture) { - var mapping = texture.mapping; - if (mapping === EquirectangularReflectionMapping || mapping === EquirectangularRefractionMapping) { - if (cubemaps.has(texture)) { - var cubemap = cubemaps.get(texture).texture; - return mapTextureMapping(cubemap, texture.mapping); - } else { - var image = texture.image; - if (image && image.height > 0) { - var currentRenderList = renderer.getRenderList(); - var currentRenderTarget = renderer.getRenderTarget(); - var renderTarget = new WebGLCubeRenderTarget(image.height / 2); - renderTarget.fromEquirectangularTexture(renderer, texture); - cubemaps.set(texture, renderTarget); - renderer.setRenderTarget(currentRenderTarget); - renderer.setRenderList(currentRenderList); - texture.addEventListener('dispose', onTextureDispose); - return mapTextureMapping(renderTarget.texture, texture.mapping); - } else { - // image not yet ready. try the conversion next frame - return null; - } - } - } - } - return texture; - } - function onTextureDispose(event) { - var texture = event.target; - texture.removeEventListener('dispose', onTextureDispose); - var cubemap = cubemaps.get(texture); - if (cubemap !== undefined) { - cubemaps.delete(texture); - cubemap.dispose(); - } - } - function dispose() { - cubemaps = new WeakMap(); - } - return { - get: get, - dispose: dispose - }; - } - function WebGLExtensions(gl) { - var extensions = {}; - return { - has: function has(name) { - if (extensions[name] !== undefined) { - return extensions[name] !== null; - } - var extension; - switch (name) { - case 'WEBGL_depth_texture': - extension = gl.getExtension('WEBGL_depth_texture') || gl.getExtension('MOZ_WEBGL_depth_texture') || gl.getExtension('WEBKIT_WEBGL_depth_texture'); - break; - case 'EXT_texture_filter_anisotropic': - extension = gl.getExtension('EXT_texture_filter_anisotropic') || gl.getExtension('MOZ_EXT_texture_filter_anisotropic') || gl.getExtension('WEBKIT_EXT_texture_filter_anisotropic'); - break; - case 'WEBGL_compressed_texture_s3tc': - extension = gl.getExtension('WEBGL_compressed_texture_s3tc') || gl.getExtension('MOZ_WEBGL_compressed_texture_s3tc') || gl.getExtension('WEBKIT_WEBGL_compressed_texture_s3tc'); - break; - case 'WEBGL_compressed_texture_pvrtc': - extension = gl.getExtension('WEBGL_compressed_texture_pvrtc') || gl.getExtension('WEBKIT_WEBGL_compressed_texture_pvrtc'); - break; - default: - extension = gl.getExtension(name); - } - extensions[name] = extension; - return extension !== null; - }, - get: function get(name) { - if (!this.has(name)) { - console.warn('THREE.WebGLRenderer: ' + name + ' extension not supported.'); - } - return extensions[name]; - } - }; - } - function WebGLGeometries(gl, attributes, info, bindingStates) { - var geometries = new WeakMap(); - var wireframeAttributes = new WeakMap(); - function onGeometryDispose(event) { - var geometry = event.target; - var buffergeometry = geometries.get(geometry); - if (buffergeometry.index !== null) { - attributes.remove(buffergeometry.index); - } - for (var name in buffergeometry.attributes) { - attributes.remove(buffergeometry.attributes[name]); - } - geometry.removeEventListener('dispose', onGeometryDispose); - geometries.delete(geometry); - var attribute = wireframeAttributes.get(buffergeometry); - if (attribute) { - attributes.remove(attribute); - wireframeAttributes.delete(buffergeometry); - } - bindingStates.releaseStatesOfGeometry(buffergeometry); - if (geometry.isInstancedBufferGeometry === true) { - delete geometry._maxInstanceCount; - } // - - info.memory.geometries--; - } - function get(object, geometry) { - var buffergeometry = geometries.get(geometry); - if (buffergeometry) return buffergeometry; - geometry.addEventListener('dispose', onGeometryDispose); - if (geometry.isBufferGeometry) { - buffergeometry = geometry; - } else if (geometry.isGeometry) { - if (geometry._bufferGeometry === undefined) { - geometry._bufferGeometry = new BufferGeometry().setFromObject(object); - } - buffergeometry = geometry._bufferGeometry; - } - geometries.set(geometry, buffergeometry); - info.memory.geometries++; - return buffergeometry; - } - function update(geometry) { - var geometryAttributes = geometry.attributes; // Updating index buffer in VAO now. See WebGLBindingStates. - for (var name in geometryAttributes) { - attributes.update(geometryAttributes[name], 34962); - } // morph targets - - var morphAttributes = geometry.morphAttributes; - for (var _name in morphAttributes) { - var array = morphAttributes[_name]; - for (var i = 0, l = array.length; i < l; i++) { - attributes.update(array[i], 34962); - } - } - } - function updateWireframeAttribute(geometry) { - var indices = []; - var geometryIndex = geometry.index; - var geometryPosition = geometry.attributes.position; - var version = 0; - if (geometryIndex !== null) { - var array = geometryIndex.array; - version = geometryIndex.version; - for (var i = 0, l = array.length; i < l; i += 3) { - var a = array[i + 0]; - var b = array[i + 1]; - var c = array[i + 2]; - indices.push(a, b, b, c, c, a); - } - } else { - var _array = geometryPosition.array; - version = geometryPosition.version; - for (var _i = 0, _l = _array.length / 3 - 1; _i < _l; _i += 3) { - var _a = _i + 0; - var _b = _i + 1; - var _c = _i + 2; - indices.push(_a, _b, _b, _c, _c, _a); - } - } - var attribute = new (arrayMax(indices) > 65535 ? Uint32BufferAttribute : Uint16BufferAttribute)(indices, 1); - attribute.version = version; // Updating index buffer in VAO now. See WebGLBindingStates - // - var previousAttribute = wireframeAttributes.get(geometry); - if (previousAttribute) attributes.remove(previousAttribute); // - wireframeAttributes.set(geometry, attribute); - } - function getWireframeAttribute(geometry) { - var currentAttribute = wireframeAttributes.get(geometry); - if (currentAttribute) { - var geometryIndex = geometry.index; - if (geometryIndex !== null) { - // if the attribute is obsolete, create a new one - if (currentAttribute.version < geometryIndex.version) { - updateWireframeAttribute(geometry); - } - } - } else { - updateWireframeAttribute(geometry); - } - return wireframeAttributes.get(geometry); - } - return { - get: get, - update: update, - getWireframeAttribute: getWireframeAttribute - }; - } - function WebGLIndexedBufferRenderer(gl, extensions, info, capabilities) { - var isWebGL2 = capabilities.isWebGL2; - var mode; - function setMode(value) { - mode = value; - } - var type, bytesPerElement; - function setIndex(value) { - type = value.type; - bytesPerElement = value.bytesPerElement; - } - function render(start, count) { - gl.drawElements(mode, count, type, start * bytesPerElement); - info.update(count, mode, 1); - } - function renderInstances(start, count, primcount) { - if (primcount === 0) return; - var extension, methodName; - if (isWebGL2) { - extension = gl; - methodName = 'drawElementsInstanced'; - } else { - extension = extensions.get('ANGLE_instanced_arrays'); - methodName = 'drawElementsInstancedANGLE'; - if (extension === null) { - console.error('THREE.WebGLIndexedBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.'); - return; - } - } - extension[methodName](mode, count, type, start * bytesPerElement, primcount); - info.update(count, mode, primcount); - } // - - this.setMode = setMode; - this.setIndex = setIndex; - this.render = render; - this.renderInstances = renderInstances; - } - function WebGLInfo(gl) { - var memory = { - geometries: 0, - textures: 0 - }; - var render = { - frame: 0, - calls: 0, - triangles: 0, - points: 0, - lines: 0 - }; - function update(count, mode, instanceCount) { - render.calls++; - switch (mode) { - case 4: - render.triangles += instanceCount * (count / 3); - break; - case 1: - render.lines += instanceCount * (count / 2); - break; - case 3: - render.lines += instanceCount * (count - 1); - break; - case 2: - render.lines += instanceCount * count; - break; - case 0: - render.points += instanceCount * count; - break; - default: - console.error('THREE.WebGLInfo: Unknown draw mode:', mode); - break; - } - } - function reset() { - render.frame++; - render.calls = 0; - render.triangles = 0; - render.points = 0; - render.lines = 0; - } - return { - memory: memory, - render: render, - programs: null, - autoReset: true, - reset: reset, - update: update - }; - } - function numericalSort(a, b) { - return a[0] - b[0]; - } - function absNumericalSort(a, b) { - return Math.abs(b[1]) - Math.abs(a[1]); - } - function WebGLMorphtargets(gl) { - var influencesList = {}; - var morphInfluences = new Float32Array(8); - var workInfluences = []; - for (var i = 0; i < 8; i++) { - workInfluences[i] = [i, 0]; - } - function update(object, geometry, material, program) { - var objectInfluences = object.morphTargetInfluences; // When object doesn't have morph target influences defined, we treat it as a 0-length array - // This is important to make sure we set up morphTargetBaseInfluence / morphTargetInfluences - var length = objectInfluences === undefined ? 0 : objectInfluences.length; - var influences = influencesList[geometry.id]; - if (influences === undefined) { - // initialise list - influences = []; - for (var _i = 0; _i < length; _i++) { - influences[_i] = [_i, 0]; - } - influencesList[geometry.id] = influences; - } // Collect influences - - for (var _i2 = 0; _i2 < length; _i2++) { - var influence = influences[_i2]; - influence[0] = _i2; - influence[1] = objectInfluences[_i2]; - } - influences.sort(absNumericalSort); - for (var _i3 = 0; _i3 < 8; _i3++) { - if (_i3 < length && influences[_i3][1]) { - workInfluences[_i3][0] = influences[_i3][0]; - workInfluences[_i3][1] = influences[_i3][1]; - } else { - workInfluences[_i3][0] = Number.MAX_SAFE_INTEGER; - workInfluences[_i3][1] = 0; - } - } - workInfluences.sort(numericalSort); - var morphTargets = material.morphTargets && geometry.morphAttributes.position; - var morphNormals = material.morphNormals && geometry.morphAttributes.normal; - var morphInfluencesSum = 0; - for (var _i4 = 0; _i4 < 8; _i4++) { - var _influence = workInfluences[_i4]; - var index = _influence[0]; - var value = _influence[1]; - if (index !== Number.MAX_SAFE_INTEGER && value) { - if (morphTargets && geometry.getAttribute('morphTarget' + _i4) !== morphTargets[index]) { - geometry.setAttribute('morphTarget' + _i4, morphTargets[index]); - } - if (morphNormals && geometry.getAttribute('morphNormal' + _i4) !== morphNormals[index]) { - geometry.setAttribute('morphNormal' + _i4, morphNormals[index]); - } - morphInfluences[_i4] = value; - morphInfluencesSum += value; - } else { - if (morphTargets && geometry.hasAttribute('morphTarget' + _i4) === true) { - geometry.deleteAttribute('morphTarget' + _i4); - } - if (morphNormals && geometry.hasAttribute('morphNormal' + _i4) === true) { - geometry.deleteAttribute('morphNormal' + _i4); - } - morphInfluences[_i4] = 0; - } - } // GLSL shader uses formula baseinfluence * base + sum(target * influence) - // This allows us to switch between absolute morphs and relative morphs without changing shader code - // When baseinfluence = 1 - sum(influence), the above is equivalent to sum((target - base) * influence) - - var morphBaseInfluence = geometry.morphTargetsRelative ? 1 : 1 - morphInfluencesSum; - program.getUniforms().setValue(gl, 'morphTargetBaseInfluence', morphBaseInfluence); - program.getUniforms().setValue(gl, 'morphTargetInfluences', morphInfluences); - } - return { - update: update - }; - } - function WebGLObjects(gl, geometries, attributes, info) { - var updateMap = new WeakMap(); - function update(object) { - var frame = info.render.frame; - var geometry = object.geometry; - var buffergeometry = geometries.get(object, geometry); // Update once per frame - if (updateMap.get(buffergeometry) !== frame) { - if (geometry.isGeometry) { - buffergeometry.updateFromObject(object); - } - geometries.update(buffergeometry); - updateMap.set(buffergeometry, frame); - } - if (object.isInstancedMesh) { - if (object.hasEventListener('dispose', onInstancedMeshDispose) === false) { - object.addEventListener('dispose', onInstancedMeshDispose); - } - attributes.update(object.instanceMatrix, 34962); - if (object.instanceColor !== null) { - attributes.update(object.instanceColor, 34962); - } - } - return buffergeometry; - } - function dispose() { - updateMap = new WeakMap(); - } - function onInstancedMeshDispose(event) { - var instancedMesh = event.target; - instancedMesh.removeEventListener('dispose', onInstancedMeshDispose); - attributes.remove(instancedMesh.instanceMatrix); - if (instancedMesh.instanceColor !== null) attributes.remove(instancedMesh.instanceColor); - } - return { - update: update, - dispose: dispose - }; - } - function DataTexture2DArray(data, width, height, depth) { - if (data === void 0) { - data = null; - } - if (width === void 0) { - width = 1; - } - if (height === void 0) { - height = 1; - } - if (depth === void 0) { - depth = 1; - } - Texture.call(this, null); - this.image = { - data: data, - width: width, - height: height, - depth: depth - }; - this.magFilter = NearestFilter; - this.minFilter = NearestFilter; - this.wrapR = ClampToEdgeWrapping; - this.generateMipmaps = false; - this.flipY = false; - this.needsUpdate = true; - } - DataTexture2DArray.prototype = Object.create(Texture.prototype); - DataTexture2DArray.prototype.constructor = DataTexture2DArray; - DataTexture2DArray.prototype.isDataTexture2DArray = true; - function DataTexture3D(data, width, height, depth) { - if (data === void 0) { - data = null; - } - if (width === void 0) { - width = 1; - } - if (height === void 0) { - height = 1; - } - if (depth === void 0) { - depth = 1; - } - // We're going to add .setXXX() methods for setting properties later. - // Users can still set in DataTexture3D directly. - // - // const texture = new THREE.DataTexture3D( data, width, height, depth ); - // texture.anisotropy = 16; - // - // See #14839 - Texture.call(this, null); - this.image = { - data: data, - width: width, - height: height, - depth: depth - }; - this.magFilter = NearestFilter; - this.minFilter = NearestFilter; - this.wrapR = ClampToEdgeWrapping; - this.generateMipmaps = false; - this.flipY = false; - this.needsUpdate = true; - } - DataTexture3D.prototype = Object.create(Texture.prototype); - DataTexture3D.prototype.constructor = DataTexture3D; - DataTexture3D.prototype.isDataTexture3D = true; - /** - * Uniforms of a program. - * Those form a tree structure with a special top-level container for the root, - * which you get by calling 'new WebGLUniforms( gl, program )'. - * - * - * Properties of inner nodes including the top-level container: - * - * .seq - array of nested uniforms - * .map - nested uniforms by name - * - * - * Methods of all nodes except the top-level container: - * - * .setValue( gl, value, [textures] ) - * - * uploads a uniform value(s) - * the 'textures' parameter is needed for sampler uniforms - * - * - * Static methods of the top-level container (textures factorizations): - * - * .upload( gl, seq, values, textures ) - * - * sets uniforms in 'seq' to 'values[id].value' - * - * .seqWithValue( seq, values ) : filteredSeq - * - * filters 'seq' entries with corresponding entry in values - * - * - * Methods of the top-level container (textures factorizations): - * - * .setValue( gl, name, value, textures ) - * - * sets uniform with name 'name' to 'value' - * - * .setOptional( gl, obj, prop ) - * - * like .set for an optional property of the object - * - */ - var emptyTexture = new Texture(); - var emptyTexture2dArray = new DataTexture2DArray(); - var emptyTexture3d = new DataTexture3D(); - var emptyCubeTexture = new CubeTexture(); // --- Utilities --- - // Array Caches (provide typed arrays for temporary by size) - var arrayCacheF32 = []; - var arrayCacheI32 = []; // Float32Array caches used for uploading Matrix uniforms - var mat4array = new Float32Array(16); - var mat3array = new Float32Array(9); - var mat2array = new Float32Array(4); // Flattening for arrays of vectors and matrices - function flatten(array, nBlocks, blockSize) { - var firstElem = array[0]; - if (firstElem <= 0 || firstElem > 0) return array; // unoptimized: ! isNaN( firstElem ) - // see http://jacksondunstan.com/articles/983 - var n = nBlocks * blockSize; - var r = arrayCacheF32[n]; - if (r === undefined) { - r = new Float32Array(n); - arrayCacheF32[n] = r; - } - if (nBlocks !== 0) { - firstElem.toArray(r, 0); - for (var i = 1, offset = 0; i !== nBlocks; ++i) { - offset += blockSize; - array[i].toArray(r, offset); - } - } - return r; - } - function arraysEqual(a, b) { - if (a.length !== b.length) return false; - for (var i = 0, l = a.length; i < l; i++) { - if (a[i] !== b[i]) return false; - } - return true; - } - function copyArray(a, b) { - for (var i = 0, l = b.length; i < l; i++) { - a[i] = b[i]; - } - } // Texture unit allocation - - function allocTexUnits(textures, n) { - var r = arrayCacheI32[n]; - if (r === undefined) { - r = new Int32Array(n); - arrayCacheI32[n] = r; - } - for (var i = 0; i !== n; ++i) { - r[i] = textures.allocateTextureUnit(); - } - return r; - } // --- Setters --- - // Note: Defining these methods externally, because they come in a bunch - // and this way their names minify. - // Single scalar - - function setValueV1f(gl, v) { - var cache = this.cache; - if (cache[0] === v) return; - gl.uniform1f(this.addr, v); - cache[0] = v; - } // Single float vector (from flat array or THREE.VectorN) - - function setValueV2f(gl, v) { - var cache = this.cache; - if (v.x !== undefined) { - if (cache[0] !== v.x || cache[1] !== v.y) { - gl.uniform2f(this.addr, v.x, v.y); - cache[0] = v.x; - cache[1] = v.y; - } - } else { - if (arraysEqual(cache, v)) return; - gl.uniform2fv(this.addr, v); - copyArray(cache, v); - } - } - function setValueV3f(gl, v) { - var cache = this.cache; - if (v.x !== undefined) { - if (cache[0] !== v.x || cache[1] !== v.y || cache[2] !== v.z) { - gl.uniform3f(this.addr, v.x, v.y, v.z); - cache[0] = v.x; - cache[1] = v.y; - cache[2] = v.z; - } - } else if (v.r !== undefined) { - if (cache[0] !== v.r || cache[1] !== v.g || cache[2] !== v.b) { - gl.uniform3f(this.addr, v.r, v.g, v.b); - cache[0] = v.r; - cache[1] = v.g; - cache[2] = v.b; - } - } else { - if (arraysEqual(cache, v)) return; - gl.uniform3fv(this.addr, v); - copyArray(cache, v); - } - } - function setValueV4f(gl, v) { - var cache = this.cache; - if (v.x !== undefined) { - if (cache[0] !== v.x || cache[1] !== v.y || cache[2] !== v.z || cache[3] !== v.w) { - gl.uniform4f(this.addr, v.x, v.y, v.z, v.w); - cache[0] = v.x; - cache[1] = v.y; - cache[2] = v.z; - cache[3] = v.w; - } - } else { - if (arraysEqual(cache, v)) return; - gl.uniform4fv(this.addr, v); - copyArray(cache, v); - } - } // Single matrix (from flat array or MatrixN) - - function setValueM2(gl, v) { - var cache = this.cache; - var elements = v.elements; - if (elements === undefined) { - if (arraysEqual(cache, v)) return; - gl.uniformMatrix2fv(this.addr, false, v); - copyArray(cache, v); - } else { - if (arraysEqual(cache, elements)) return; - mat2array.set(elements); - gl.uniformMatrix2fv(this.addr, false, mat2array); - copyArray(cache, elements); - } - } - function setValueM3(gl, v) { - var cache = this.cache; - var elements = v.elements; - if (elements === undefined) { - if (arraysEqual(cache, v)) return; - gl.uniformMatrix3fv(this.addr, false, v); - copyArray(cache, v); - } else { - if (arraysEqual(cache, elements)) return; - mat3array.set(elements); - gl.uniformMatrix3fv(this.addr, false, mat3array); - copyArray(cache, elements); - } - } - function setValueM4(gl, v) { - var cache = this.cache; - var elements = v.elements; - if (elements === undefined) { - if (arraysEqual(cache, v)) return; - gl.uniformMatrix4fv(this.addr, false, v); - copyArray(cache, v); - } else { - if (arraysEqual(cache, elements)) return; - mat4array.set(elements); - gl.uniformMatrix4fv(this.addr, false, mat4array); - copyArray(cache, elements); - } - } // Single texture (2D / Cube) - - function setValueT1(gl, v, textures) { - var cache = this.cache; - var unit = textures.allocateTextureUnit(); - if (cache[0] !== unit) { - gl.uniform1i(this.addr, unit); - cache[0] = unit; - } - textures.safeSetTexture2D(v || emptyTexture, unit); - } - function setValueT2DArray1(gl, v, textures) { - var cache = this.cache; - var unit = textures.allocateTextureUnit(); - if (cache[0] !== unit) { - gl.uniform1i(this.addr, unit); - cache[0] = unit; - } - textures.setTexture2DArray(v || emptyTexture2dArray, unit); - } - function setValueT3D1(gl, v, textures) { - var cache = this.cache; - var unit = textures.allocateTextureUnit(); - if (cache[0] !== unit) { - gl.uniform1i(this.addr, unit); - cache[0] = unit; - } - textures.setTexture3D(v || emptyTexture3d, unit); - } - function setValueT6(gl, v, textures) { - var cache = this.cache; - var unit = textures.allocateTextureUnit(); - if (cache[0] !== unit) { - gl.uniform1i(this.addr, unit); - cache[0] = unit; - } - textures.safeSetTextureCube(v || emptyCubeTexture, unit); - } // Integer / Boolean vectors or arrays thereof (always flat arrays) - - function setValueV1i(gl, v) { - var cache = this.cache; - if (cache[0] === v) return; - gl.uniform1i(this.addr, v); - cache[0] = v; - } - function setValueV2i(gl, v) { - var cache = this.cache; - if (arraysEqual(cache, v)) return; - gl.uniform2iv(this.addr, v); - copyArray(cache, v); - } - function setValueV3i(gl, v) { - var cache = this.cache; - if (arraysEqual(cache, v)) return; - gl.uniform3iv(this.addr, v); - copyArray(cache, v); - } - function setValueV4i(gl, v) { - var cache = this.cache; - if (arraysEqual(cache, v)) return; - gl.uniform4iv(this.addr, v); - copyArray(cache, v); - } // uint - - function setValueV1ui(gl, v) { - var cache = this.cache; - if (cache[0] === v) return; - gl.uniform1ui(this.addr, v); - cache[0] = v; - } // Helper to pick the right setter for the singular case - - function getSingularSetter(type) { - switch (type) { - case 0x1406: - return setValueV1f; - // FLOAT - case 0x8b50: - return setValueV2f; - // _VEC2 - case 0x8b51: - return setValueV3f; - // _VEC3 - case 0x8b52: - return setValueV4f; - // _VEC4 - case 0x8b5a: - return setValueM2; - // _MAT2 - case 0x8b5b: - return setValueM3; - // _MAT3 - case 0x8b5c: - return setValueM4; - // _MAT4 - case 0x1404: - case 0x8b56: - return setValueV1i; - // INT, BOOL - case 0x8b53: - case 0x8b57: - return setValueV2i; - // _VEC2 - case 0x8b54: - case 0x8b58: - return setValueV3i; - // _VEC3 - case 0x8b55: - case 0x8b59: - return setValueV4i; - // _VEC4 - case 0x1405: - return setValueV1ui; - // UINT - case 0x8b5e: // SAMPLER_2D - case 0x8d66: // SAMPLER_EXTERNAL_OES - case 0x8dca: // INT_SAMPLER_2D - case 0x8dd2: // UNSIGNED_INT_SAMPLER_2D - case 0x8b62: - // SAMPLER_2D_SHADOW - return setValueT1; - case 0x8b5f: // SAMPLER_3D - case 0x8dcb: // INT_SAMPLER_3D - case 0x8dd3: - // UNSIGNED_INT_SAMPLER_3D - return setValueT3D1; - case 0x8b60: // SAMPLER_CUBE - case 0x8dcc: // INT_SAMPLER_CUBE - case 0x8dd4: // UNSIGNED_INT_SAMPLER_CUBE - case 0x8dc5: - // SAMPLER_CUBE_SHADOW - return setValueT6; - case 0x8dc1: // SAMPLER_2D_ARRAY - case 0x8dcf: // INT_SAMPLER_2D_ARRAY - case 0x8dd7: // UNSIGNED_INT_SAMPLER_2D_ARRAY - case 0x8dc4: - // SAMPLER_2D_ARRAY_SHADOW - return setValueT2DArray1; - } - } // Array of scalars - - function setValueV1fArray(gl, v) { - gl.uniform1fv(this.addr, v); - } // Integer / Boolean vectors or arrays thereof (always flat arrays) - - function setValueV1iArray(gl, v) { - gl.uniform1iv(this.addr, v); - } - function setValueV2iArray(gl, v) { - gl.uniform2iv(this.addr, v); - } - function setValueV3iArray(gl, v) { - gl.uniform3iv(this.addr, v); - } - function setValueV4iArray(gl, v) { - gl.uniform4iv(this.addr, v); - } // Array of vectors (flat or from THREE classes) - - function setValueV2fArray(gl, v) { - var data = flatten(v, this.size, 2); - gl.uniform2fv(this.addr, data); - } - function setValueV3fArray(gl, v) { - var data = flatten(v, this.size, 3); - gl.uniform3fv(this.addr, data); - } - function setValueV4fArray(gl, v) { - var data = flatten(v, this.size, 4); - gl.uniform4fv(this.addr, data); - } // Array of matrices (flat or from THREE clases) - - function setValueM2Array(gl, v) { - var data = flatten(v, this.size, 4); - gl.uniformMatrix2fv(this.addr, false, data); - } - function setValueM3Array(gl, v) { - var data = flatten(v, this.size, 9); - gl.uniformMatrix3fv(this.addr, false, data); - } - function setValueM4Array(gl, v) { - var data = flatten(v, this.size, 16); - gl.uniformMatrix4fv(this.addr, false, data); - } // Array of textures (2D / Cube) - - function setValueT1Array(gl, v, textures) { - var n = v.length; - var units = allocTexUnits(textures, n); - gl.uniform1iv(this.addr, units); - for (var i = 0; i !== n; ++i) { - textures.safeSetTexture2D(v[i] || emptyTexture, units[i]); - } - } - function setValueT6Array(gl, v, textures) { - var n = v.length; - var units = allocTexUnits(textures, n); - gl.uniform1iv(this.addr, units); - for (var i = 0; i !== n; ++i) { - textures.safeSetTextureCube(v[i] || emptyCubeTexture, units[i]); - } - } // Helper to pick the right setter for a pure (bottom-level) array - - function getPureArraySetter(type) { - switch (type) { - case 0x1406: - return setValueV1fArray; - // FLOAT - case 0x8b50: - return setValueV2fArray; - // _VEC2 - case 0x8b51: - return setValueV3fArray; - // _VEC3 - case 0x8b52: - return setValueV4fArray; - // _VEC4 - case 0x8b5a: - return setValueM2Array; - // _MAT2 - case 0x8b5b: - return setValueM3Array; - // _MAT3 - case 0x8b5c: - return setValueM4Array; - // _MAT4 - case 0x1404: - case 0x8b56: - return setValueV1iArray; - // INT, BOOL - case 0x8b53: - case 0x8b57: - return setValueV2iArray; - // _VEC2 - case 0x8b54: - case 0x8b58: - return setValueV3iArray; - // _VEC3 - case 0x8b55: - case 0x8b59: - return setValueV4iArray; - // _VEC4 - case 0x8b5e: // SAMPLER_2D - case 0x8d66: // SAMPLER_EXTERNAL_OES - case 0x8dca: // INT_SAMPLER_2D - case 0x8dd2: // UNSIGNED_INT_SAMPLER_2D - case 0x8b62: - // SAMPLER_2D_SHADOW - return setValueT1Array; - case 0x8b60: // SAMPLER_CUBE - case 0x8dcc: // INT_SAMPLER_CUBE - case 0x8dd4: // UNSIGNED_INT_SAMPLER_CUBE - case 0x8dc5: - // SAMPLER_CUBE_SHADOW - return setValueT6Array; - } - } // --- Uniform Classes --- - - function SingleUniform(id, activeInfo, addr) { - this.id = id; - this.addr = addr; - this.cache = []; - this.setValue = getSingularSetter(activeInfo.type); // this.path = activeInfo.name; // DEBUG - } - function PureArrayUniform(id, activeInfo, addr) { - this.id = id; - this.addr = addr; - this.cache = []; - this.size = activeInfo.size; - this.setValue = getPureArraySetter(activeInfo.type); // this.path = activeInfo.name; // DEBUG - } - PureArrayUniform.prototype.updateCache = function (data) { - var cache = this.cache; - if (data instanceof Float32Array && cache.length !== data.length) { - this.cache = new Float32Array(data.length); - } - copyArray(cache, data); - }; - function StructuredUniform(id) { - this.id = id; - this.seq = []; - this.map = {}; - } - StructuredUniform.prototype.setValue = function (gl, value, textures) { - var seq = this.seq; - for (var i = 0, n = seq.length; i !== n; ++i) { - var u = seq[i]; - u.setValue(gl, value[u.id], textures); - } - }; // --- Top-level --- - // Parser - builds up the property tree from the path strings - - var RePathPart = /([\w\d_]+)(\])?(\[|\.)?/g; // extracts - // - the identifier (member name or array index) - // - followed by an optional right bracket (found when array index) - // - followed by an optional left bracket or dot (type of subscript) - // - // Note: These portions can be read in a non-overlapping fashion and - // allow straightforward parsing of the hierarchy that WebGL encodes - // in the uniform names. - function addUniform(container, uniformObject) { - container.seq.push(uniformObject); - container.map[uniformObject.id] = uniformObject; - } - function parseUniform(activeInfo, addr, container) { - var path = activeInfo.name, - pathLength = path.length; // reset RegExp object, because of the early exit of a previous run - RePathPart.lastIndex = 0; - while (true) { - var match = RePathPart.exec(path), - matchEnd = RePathPart.lastIndex; - var id = match[1]; - var idIsIndex = match[2] === ']', - subscript = match[3]; - if (idIsIndex) id = id | 0; // convert to integer - if (subscript === undefined || subscript === '[' && matchEnd + 2 === pathLength) { - // bare name or "pure" bottom-level array "[0]" suffix - addUniform(container, subscript === undefined ? new SingleUniform(id, activeInfo, addr) : new PureArrayUniform(id, activeInfo, addr)); - break; - } else { - // step into inner node / create it in case it doesn't exist - var map = container.map; - var next = map[id]; - if (next === undefined) { - next = new StructuredUniform(id); - addUniform(container, next); - } - container = next; - } - } - } // Root Container - - function WebGLUniforms(gl, program) { - this.seq = []; - this.map = {}; - var n = gl.getProgramParameter(program, 35718); - for (var i = 0; i < n; ++i) { - var info = gl.getActiveUniform(program, i), - addr = gl.getUniformLocation(program, info.name); - parseUniform(info, addr, this); - } - } - WebGLUniforms.prototype.setValue = function (gl, name, value, textures) { - var u = this.map[name]; - if (u !== undefined) u.setValue(gl, value, textures); - }; - WebGLUniforms.prototype.setOptional = function (gl, object, name) { - var v = object[name]; - if (v !== undefined) this.setValue(gl, name, v); - }; // Static interface - - WebGLUniforms.upload = function (gl, seq, values, textures) { - for (var i = 0, n = seq.length; i !== n; ++i) { - var u = seq[i], - v = values[u.id]; - if (v.needsUpdate !== false) { - // note: always updating when .needsUpdate is undefined - u.setValue(gl, v.value, textures); - } - } - }; - WebGLUniforms.seqWithValue = function (seq, values) { - var r = []; - for (var i = 0, n = seq.length; i !== n; ++i) { - var u = seq[i]; - if (u.id in values) r.push(u); - } - return r; - }; - function WebGLShader(gl, type, string) { - var shader = gl.createShader(type); - gl.shaderSource(shader, string); - gl.compileShader(shader); - return shader; - } - var programIdCount = 0; - function addLineNumbers(string) { - var lines = string.split('\n'); - for (var i = 0; i < lines.length; i++) { - lines[i] = i + 1 + ': ' + lines[i]; - } - return lines.join('\n'); - } - function getEncodingComponents(encoding) { - switch (encoding) { - case LinearEncoding: - return ['Linear', '( value )']; - case sRGBEncoding: - return ['sRGB', '( value )']; - case RGBEEncoding: - return ['RGBE', '( value )']; - case RGBM7Encoding: - return ['RGBM', '( value, 7.0 )']; - case RGBM16Encoding: - return ['RGBM', '( value, 16.0 )']; - case RGBDEncoding: - return ['RGBD', '( value, 256.0 )']; - case GammaEncoding: - return ['Gamma', '( value, float( GAMMA_FACTOR ) )']; - case LogLuvEncoding: - return ['LogLuv', '( value )']; - default: - console.warn('THREE.WebGLProgram: Unsupported encoding:', encoding); - return ['Linear', '( value )']; - } - } - function getShaderErrors(gl, shader, type) { - var status = gl.getShaderParameter(shader, 35713); - var log = gl.getShaderInfoLog(shader).trim(); - if (status && log === '') return ''; // --enable-privileged-webgl-extension - // console.log( '**' + type + '**', gl.getExtension( 'WEBGL_debug_shaders' ).getTranslatedShaderSource( shader ) ); - var source = gl.getShaderSource(shader); - return 'THREE.WebGLShader: gl.getShaderInfoLog() ' + type + '\n' + log + addLineNumbers(source); - } - function getTexelDecodingFunction(functionName, encoding) { - var components = getEncodingComponents(encoding); - return 'vec4 ' + functionName + '( vec4 value ) { return ' + components[0] + 'ToLinear' + components[1] + '; }'; - } - function getTexelEncodingFunction(functionName, encoding) { - var components = getEncodingComponents(encoding); - return 'vec4 ' + functionName + '( vec4 value ) { return LinearTo' + components[0] + components[1] + '; }'; - } - function getToneMappingFunction(functionName, toneMapping) { - var toneMappingName; - switch (toneMapping) { - case LinearToneMapping: - toneMappingName = 'Linear'; - break; - case ReinhardToneMapping: - toneMappingName = 'Reinhard'; - break; - case CineonToneMapping: - toneMappingName = 'OptimizedCineon'; - break; - case ACESFilmicToneMapping: - toneMappingName = 'ACESFilmic'; - break; - case CustomToneMapping: - toneMappingName = 'Custom'; - break; - default: - console.warn('THREE.WebGLProgram: Unsupported toneMapping:', toneMapping); - toneMappingName = 'Linear'; - } - return 'vec3 ' + functionName + '( vec3 color ) { return ' + toneMappingName + 'ToneMapping( color ); }'; - } - function generateExtensions(parameters) { - var chunks = [parameters.extensionDerivatives || parameters.envMapCubeUV || parameters.bumpMap || parameters.tangentSpaceNormalMap || parameters.clearcoatNormalMap || parameters.flatShading || parameters.shaderID === 'physical' ? '#extension GL_OES_standard_derivatives : enable' : '', (parameters.extensionFragDepth || parameters.logarithmicDepthBuffer) && parameters.rendererExtensionFragDepth ? '#extension GL_EXT_frag_depth : enable' : '', parameters.extensionDrawBuffers && parameters.rendererExtensionDrawBuffers ? '#extension GL_EXT_draw_buffers : require' : '', (parameters.extensionShaderTextureLOD || parameters.envMap) && parameters.rendererExtensionShaderTextureLod ? '#extension GL_EXT_shader_texture_lod : enable' : '']; - return chunks.filter(filterEmptyLine).join('\n'); - } - function generateDefines(defines) { - var chunks = []; - for (var name in defines) { - var value = defines[name]; - if (value === false) continue; - chunks.push('#define ' + name + ' ' + value); - } - return chunks.join('\n'); - } - function fetchAttributeLocations(gl, program) { - var attributes = {}; - var n = gl.getProgramParameter(program, 35721); - for (var i = 0; i < n; i++) { - var info = gl.getActiveAttrib(program, i); - var name = info.name; // console.log( 'THREE.WebGLProgram: ACTIVE VERTEX ATTRIBUTE:', name, i ); - attributes[name] = gl.getAttribLocation(program, name); - } - return attributes; - } - function filterEmptyLine(string) { - return string !== ''; - } - function replaceLightNums(string, parameters) { - return string.replace(/NUM_DIR_LIGHTS/g, parameters.numDirLights).replace(/NUM_SPOT_LIGHTS/g, parameters.numSpotLights).replace(/NUM_RECT_AREA_LIGHTS/g, parameters.numRectAreaLights).replace(/NUM_POINT_LIGHTS/g, parameters.numPointLights).replace(/NUM_HEMI_LIGHTS/g, parameters.numHemiLights).replace(/NUM_DIR_LIGHT_SHADOWS/g, parameters.numDirLightShadows).replace(/NUM_SPOT_LIGHT_SHADOWS/g, parameters.numSpotLightShadows).replace(/NUM_POINT_LIGHT_SHADOWS/g, parameters.numPointLightShadows); - } - function replaceClippingPlaneNums(string, parameters) { - return string.replace(/NUM_CLIPPING_PLANES/g, parameters.numClippingPlanes).replace(/UNION_CLIPPING_PLANES/g, parameters.numClippingPlanes - parameters.numClipIntersection); - } // Resolve Includes - - var includePattern = /^[ \t]*#include +<([\w\d./]+)>/gm; - function resolveIncludes(string) { - return string.replace(includePattern, includeReplacer); - } - function includeReplacer(match, include) { - var string = ShaderChunk[include]; - if (string === undefined) { - throw new Error('Can not resolve #include <' + include + '>'); - } - return resolveIncludes(string); - } // Unroll Loops - - var deprecatedUnrollLoopPattern = /#pragma unroll_loop[\s]+?for \( int i \= (\d+)\; i < (\d+)\; i \+\+ \) \{([\s\S]+?)(?=\})\}/g; - var unrollLoopPattern = /#pragma unroll_loop_start\s+for\s*\(\s*int\s+i\s*=\s*(\d+)\s*;\s*i\s*<\s*(\d+)\s*;\s*i\s*\+\+\s*\)\s*{([\s\S]+?)}\s+#pragma unroll_loop_end/g; - function unrollLoops(string) { - return string.replace(unrollLoopPattern, loopReplacer).replace(deprecatedUnrollLoopPattern, deprecatedLoopReplacer); - } - function deprecatedLoopReplacer(match, start, end, snippet) { - console.warn('WebGLProgram: #pragma unroll_loop shader syntax is deprecated. Please use #pragma unroll_loop_start syntax instead.'); - return loopReplacer(match, start, end, snippet); - } - function loopReplacer(match, start, end, snippet) { - var string = ''; - for (var i = parseInt(start); i < parseInt(end); i++) { - string += snippet.replace(/\[\s*i\s*\]/g, '[ ' + i + ' ]').replace(/UNROLLED_LOOP_INDEX/g, i); - } - return string; - } // - - function generatePrecision(parameters) { - var precisionstring = 'precision ' + parameters.precision + ' float;\nprecision ' + parameters.precision + ' int;'; - if (parameters.precision === 'highp') { - precisionstring += '\n#define HIGH_PRECISION'; - } else if (parameters.precision === 'mediump') { - precisionstring += '\n#define MEDIUM_PRECISION'; - } else if (parameters.precision === 'lowp') { - precisionstring += '\n#define LOW_PRECISION'; - } - return precisionstring; - } - function generateShadowMapTypeDefine(parameters) { - var shadowMapTypeDefine = 'SHADOWMAP_TYPE_BASIC'; - if (parameters.shadowMapType === PCFShadowMap) { - shadowMapTypeDefine = 'SHADOWMAP_TYPE_PCF'; - } else if (parameters.shadowMapType === PCFSoftShadowMap) { - shadowMapTypeDefine = 'SHADOWMAP_TYPE_PCF_SOFT'; - } else if (parameters.shadowMapType === VSMShadowMap) { - shadowMapTypeDefine = 'SHADOWMAP_TYPE_VSM'; - } - return shadowMapTypeDefine; - } - function generateEnvMapTypeDefine(parameters) { - var envMapTypeDefine = 'ENVMAP_TYPE_CUBE'; - if (parameters.envMap) { - switch (parameters.envMapMode) { - case CubeReflectionMapping: - case CubeRefractionMapping: - envMapTypeDefine = 'ENVMAP_TYPE_CUBE'; - break; - case CubeUVReflectionMapping: - case CubeUVRefractionMapping: - envMapTypeDefine = 'ENVMAP_TYPE_CUBE_UV'; - break; - } - } - return envMapTypeDefine; - } - function generateEnvMapModeDefine(parameters) { - var envMapModeDefine = 'ENVMAP_MODE_REFLECTION'; - if (parameters.envMap) { - switch (parameters.envMapMode) { - case CubeRefractionMapping: - case CubeUVRefractionMapping: - envMapModeDefine = 'ENVMAP_MODE_REFRACTION'; - break; - } - } - return envMapModeDefine; - } - function generateEnvMapBlendingDefine(parameters) { - var envMapBlendingDefine = 'ENVMAP_BLENDING_NONE'; - if (parameters.envMap) { - switch (parameters.combine) { - case MultiplyOperation: - envMapBlendingDefine = 'ENVMAP_BLENDING_MULTIPLY'; - break; - case MixOperation: - envMapBlendingDefine = 'ENVMAP_BLENDING_MIX'; - break; - case AddOperation: - envMapBlendingDefine = 'ENVMAP_BLENDING_ADD'; - break; - } - } - return envMapBlendingDefine; - } - function WebGLProgram(renderer, cacheKey, parameters, bindingStates) { - var gl = renderer.getContext(); - var defines = parameters.defines; - var vertexShader = parameters.vertexShader; - var fragmentShader = parameters.fragmentShader; - var shadowMapTypeDefine = generateShadowMapTypeDefine(parameters); - var envMapTypeDefine = generateEnvMapTypeDefine(parameters); - var envMapModeDefine = generateEnvMapModeDefine(parameters); - var envMapBlendingDefine = generateEnvMapBlendingDefine(parameters); - var gammaFactorDefine = renderer.gammaFactor > 0 ? renderer.gammaFactor : 1.0; - var customExtensions = parameters.isWebGL2 ? '' : generateExtensions(parameters); - var customDefines = generateDefines(defines); - var program = gl.createProgram(); - var prefixVertex, prefixFragment; - var versionString = parameters.glslVersion ? '#version ' + parameters.glslVersion + '\n' : ''; - if (parameters.isRawShaderMaterial) { - prefixVertex = [customDefines].filter(filterEmptyLine).join('\n'); - if (prefixVertex.length > 0) { - prefixVertex += '\n'; - } - prefixFragment = [customExtensions, customDefines].filter(filterEmptyLine).join('\n'); - if (prefixFragment.length > 0) { - prefixFragment += '\n'; - } - } else { - prefixVertex = [generatePrecision(parameters), '#define SHADER_NAME ' + parameters.shaderName, customDefines, parameters.instancing ? '#define USE_INSTANCING' : '', parameters.instancingColor ? '#define USE_INSTANCING_COLOR' : '', parameters.supportsVertexTextures ? '#define VERTEX_TEXTURES' : '', '#define GAMMA_FACTOR ' + gammaFactorDefine, '#define MAX_BONES ' + parameters.maxBones, parameters.useFog && parameters.fog ? '#define USE_FOG' : '', parameters.useFog && parameters.fogExp2 ? '#define FOG_EXP2' : '', parameters.map ? '#define USE_MAP' : '', parameters.envMap ? '#define USE_ENVMAP' : '', parameters.envMap ? '#define ' + envMapModeDefine : '', parameters.lightMap ? '#define USE_LIGHTMAP' : '', parameters.aoMap ? '#define USE_AOMAP' : '', parameters.emissiveMap ? '#define USE_EMISSIVEMAP' : '', parameters.bumpMap ? '#define USE_BUMPMAP' : '', parameters.normalMap ? '#define USE_NORMALMAP' : '', parameters.normalMap && parameters.objectSpaceNormalMap ? '#define OBJECTSPACE_NORMALMAP' : '', parameters.normalMap && parameters.tangentSpaceNormalMap ? '#define TANGENTSPACE_NORMALMAP' : '', parameters.clearcoatMap ? '#define USE_CLEARCOATMAP' : '', parameters.clearcoatRoughnessMap ? '#define USE_CLEARCOAT_ROUGHNESSMAP' : '', parameters.clearcoatNormalMap ? '#define USE_CLEARCOAT_NORMALMAP' : '', parameters.displacementMap && parameters.supportsVertexTextures ? '#define USE_DISPLACEMENTMAP' : '', parameters.specularMap ? '#define USE_SPECULARMAP' : '', parameters.roughnessMap ? '#define USE_ROUGHNESSMAP' : '', parameters.metalnessMap ? '#define USE_METALNESSMAP' : '', parameters.alphaMap ? '#define USE_ALPHAMAP' : '', parameters.transmissionMap ? '#define USE_TRANSMISSIONMAP' : '', parameters.vertexTangents ? '#define USE_TANGENT' : '', parameters.vertexColors ? '#define USE_COLOR' : '', parameters.vertexUvs ? '#define USE_UV' : '', parameters.uvsVertexOnly ? '#define UVS_VERTEX_ONLY' : '', parameters.flatShading ? '#define FLAT_SHADED' : '', parameters.skinning ? '#define USE_SKINNING' : '', parameters.useVertexTexture ? '#define BONE_TEXTURE' : '', parameters.morphTargets ? '#define USE_MORPHTARGETS' : '', parameters.morphNormals && parameters.flatShading === false ? '#define USE_MORPHNORMALS' : '', parameters.doubleSided ? '#define DOUBLE_SIDED' : '', parameters.flipSided ? '#define FLIP_SIDED' : '', parameters.shadowMapEnabled ? '#define USE_SHADOWMAP' : '', parameters.shadowMapEnabled ? '#define ' + shadowMapTypeDefine : '', parameters.sizeAttenuation ? '#define USE_SIZEATTENUATION' : '', parameters.logarithmicDepthBuffer ? '#define USE_LOGDEPTHBUF' : '', parameters.logarithmicDepthBuffer && parameters.rendererExtensionFragDepth ? '#define USE_LOGDEPTHBUF_EXT' : '', 'uniform mat4 modelMatrix;', 'uniform mat4 modelViewMatrix;', 'uniform mat4 projectionMatrix;', 'uniform mat4 viewMatrix;', 'uniform mat3 normalMatrix;', 'uniform vec3 cameraPosition;', 'uniform bool isOrthographic;', '#ifdef USE_INSTANCING', ' attribute mat4 instanceMatrix;', '#endif', '#ifdef USE_INSTANCING_COLOR', ' attribute vec3 instanceColor;', '#endif', 'attribute vec3 position;', 'attribute vec3 normal;', 'attribute vec2 uv;', '#ifdef USE_TANGENT', ' attribute vec4 tangent;', '#endif', '#ifdef USE_COLOR', ' attribute vec3 color;', '#endif', '#ifdef USE_MORPHTARGETS', ' attribute vec3 morphTarget0;', ' attribute vec3 morphTarget1;', ' attribute vec3 morphTarget2;', ' attribute vec3 morphTarget3;', ' #ifdef USE_MORPHNORMALS', ' attribute vec3 morphNormal0;', ' attribute vec3 morphNormal1;', ' attribute vec3 morphNormal2;', ' attribute vec3 morphNormal3;', ' #else', ' attribute vec3 morphTarget4;', ' attribute vec3 morphTarget5;', ' attribute vec3 morphTarget6;', ' attribute vec3 morphTarget7;', ' #endif', '#endif', '#ifdef USE_SKINNING', ' attribute vec4 skinIndex;', ' attribute vec4 skinWeight;', '#endif', '\n'].filter(filterEmptyLine).join('\n'); - prefixFragment = [customExtensions, generatePrecision(parameters), '#define SHADER_NAME ' + parameters.shaderName, customDefines, parameters.alphaTest ? '#define ALPHATEST ' + parameters.alphaTest + (parameters.alphaTest % 1 ? '' : '.0') : '', // add '.0' if integer - '#define GAMMA_FACTOR ' + gammaFactorDefine, parameters.useFog && parameters.fog ? '#define USE_FOG' : '', parameters.useFog && parameters.fogExp2 ? '#define FOG_EXP2' : '', parameters.map ? '#define USE_MAP' : '', parameters.matcap ? '#define USE_MATCAP' : '', parameters.envMap ? '#define USE_ENVMAP' : '', parameters.envMap ? '#define ' + envMapTypeDefine : '', parameters.envMap ? '#define ' + envMapModeDefine : '', parameters.envMap ? '#define ' + envMapBlendingDefine : '', parameters.lightMap ? '#define USE_LIGHTMAP' : '', parameters.aoMap ? '#define USE_AOMAP' : '', parameters.emissiveMap ? '#define USE_EMISSIVEMAP' : '', parameters.bumpMap ? '#define USE_BUMPMAP' : '', parameters.normalMap ? '#define USE_NORMALMAP' : '', parameters.normalMap && parameters.objectSpaceNormalMap ? '#define OBJECTSPACE_NORMALMAP' : '', parameters.normalMap && parameters.tangentSpaceNormalMap ? '#define TANGENTSPACE_NORMALMAP' : '', parameters.clearcoatMap ? '#define USE_CLEARCOATMAP' : '', parameters.clearcoatRoughnessMap ? '#define USE_CLEARCOAT_ROUGHNESSMAP' : '', parameters.clearcoatNormalMap ? '#define USE_CLEARCOAT_NORMALMAP' : '', parameters.specularMap ? '#define USE_SPECULARMAP' : '', parameters.roughnessMap ? '#define USE_ROUGHNESSMAP' : '', parameters.metalnessMap ? '#define USE_METALNESSMAP' : '', parameters.alphaMap ? '#define USE_ALPHAMAP' : '', parameters.sheen ? '#define USE_SHEEN' : '', parameters.transmissionMap ? '#define USE_TRANSMISSIONMAP' : '', parameters.vertexTangents ? '#define USE_TANGENT' : '', parameters.vertexColors || parameters.instancingColor ? '#define USE_COLOR' : '', parameters.vertexUvs ? '#define USE_UV' : '', parameters.uvsVertexOnly ? '#define UVS_VERTEX_ONLY' : '', parameters.gradientMap ? '#define USE_GRADIENTMAP' : '', parameters.flatShading ? '#define FLAT_SHADED' : '', parameters.doubleSided ? '#define DOUBLE_SIDED' : '', parameters.flipSided ? '#define FLIP_SIDED' : '', parameters.shadowMapEnabled ? '#define USE_SHADOWMAP' : '', parameters.shadowMapEnabled ? '#define ' + shadowMapTypeDefine : '', parameters.premultipliedAlpha ? '#define PREMULTIPLIED_ALPHA' : '', parameters.physicallyCorrectLights ? '#define PHYSICALLY_CORRECT_LIGHTS' : '', parameters.logarithmicDepthBuffer ? '#define USE_LOGDEPTHBUF' : '', parameters.logarithmicDepthBuffer && parameters.rendererExtensionFragDepth ? '#define USE_LOGDEPTHBUF_EXT' : '', (parameters.extensionShaderTextureLOD || parameters.envMap) && parameters.rendererExtensionShaderTextureLod ? '#define TEXTURE_LOD_EXT' : '', 'uniform mat4 viewMatrix;', 'uniform vec3 cameraPosition;', 'uniform bool isOrthographic;', parameters.toneMapping !== NoToneMapping ? '#define TONE_MAPPING' : '', parameters.toneMapping !== NoToneMapping ? ShaderChunk['tonemapping_pars_fragment'] : '', // this code is required here because it is used by the toneMapping() function defined below - parameters.toneMapping !== NoToneMapping ? getToneMappingFunction('toneMapping', parameters.toneMapping) : '', parameters.dithering ? '#define DITHERING' : '', ShaderChunk['encodings_pars_fragment'], // this code is required here because it is used by the various encoding/decoding function defined below - parameters.map ? getTexelDecodingFunction('mapTexelToLinear', parameters.mapEncoding) : '', parameters.matcap ? getTexelDecodingFunction('matcapTexelToLinear', parameters.matcapEncoding) : '', parameters.envMap ? getTexelDecodingFunction('envMapTexelToLinear', parameters.envMapEncoding) : '', parameters.emissiveMap ? getTexelDecodingFunction('emissiveMapTexelToLinear', parameters.emissiveMapEncoding) : '', parameters.lightMap ? getTexelDecodingFunction('lightMapTexelToLinear', parameters.lightMapEncoding) : '', getTexelEncodingFunction('linearToOutputTexel', parameters.outputEncoding), parameters.depthPacking ? '#define DEPTH_PACKING ' + parameters.depthPacking : '', '\n'].filter(filterEmptyLine).join('\n'); - } - vertexShader = resolveIncludes(vertexShader); - vertexShader = replaceLightNums(vertexShader, parameters); - vertexShader = replaceClippingPlaneNums(vertexShader, parameters); - fragmentShader = resolveIncludes(fragmentShader); - fragmentShader = replaceLightNums(fragmentShader, parameters); - fragmentShader = replaceClippingPlaneNums(fragmentShader, parameters); - vertexShader = unrollLoops(vertexShader); - fragmentShader = unrollLoops(fragmentShader); - if (parameters.isWebGL2 && parameters.isRawShaderMaterial !== true) { - // GLSL 3.0 conversion for built-in materials and ShaderMaterial - versionString = '#version 300 es\n'; - prefixVertex = ['#define attribute in', '#define varying out', '#define texture2D texture'].join('\n') + '\n' + prefixVertex; - prefixFragment = ['#define varying in', parameters.glslVersion === GLSL3 ? '' : 'out highp vec4 pc_fragColor;', parameters.glslVersion === GLSL3 ? '' : '#define gl_FragColor pc_fragColor', '#define gl_FragDepthEXT gl_FragDepth', '#define texture2D texture', '#define textureCube texture', '#define texture2DProj textureProj', '#define texture2DLodEXT textureLod', '#define texture2DProjLodEXT textureProjLod', '#define textureCubeLodEXT textureLod', '#define texture2DGradEXT textureGrad', '#define texture2DProjGradEXT textureProjGrad', '#define textureCubeGradEXT textureGrad'].join('\n') + '\n' + prefixFragment; - } - var vertexGlsl = versionString + prefixVertex + vertexShader; - var fragmentGlsl = versionString + prefixFragment + fragmentShader; // console.log( '*VERTEX*', vertexGlsl ); - // console.log( '*FRAGMENT*', fragmentGlsl ); - var glVertexShader = WebGLShader(gl, 35633, vertexGlsl); - var glFragmentShader = WebGLShader(gl, 35632, fragmentGlsl); - gl.attachShader(program, glVertexShader); - gl.attachShader(program, glFragmentShader); // Force a particular attribute to index 0. - if (parameters.index0AttributeName !== undefined) { - gl.bindAttribLocation(program, 0, parameters.index0AttributeName); - } else if (parameters.morphTargets === true) { - // programs with morphTargets displace position out of attribute 0 - gl.bindAttribLocation(program, 0, 'position'); - } - gl.linkProgram(program); // check for link errors - if (renderer.debug.checkShaderErrors) { - var programLog = gl.getProgramInfoLog(program).trim(); - var vertexLog = gl.getShaderInfoLog(glVertexShader).trim(); - var fragmentLog = gl.getShaderInfoLog(glFragmentShader).trim(); - var runnable = true; - var haveDiagnostics = true; - if (gl.getProgramParameter(program, 35714) === false) { - runnable = false; - var vertexErrors = getShaderErrors(gl, glVertexShader, 'vertex'); - var fragmentErrors = getShaderErrors(gl, glFragmentShader, 'fragment'); - console.error('THREE.WebGLProgram: shader error: ', gl.getError(), '35715', gl.getProgramParameter(program, 35715), 'gl.getProgramInfoLog', programLog, vertexErrors, fragmentErrors); - } else if (programLog !== '') { - console.warn('THREE.WebGLProgram: gl.getProgramInfoLog()', programLog); - } else if (vertexLog === '' || fragmentLog === '') { - haveDiagnostics = false; - } - if (haveDiagnostics) { - this.diagnostics = { - runnable: runnable, - programLog: programLog, - vertexShader: { - log: vertexLog, - prefix: prefixVertex - }, - fragmentShader: { - log: fragmentLog, - prefix: prefixFragment - } - }; - } - } // Clean up - // Crashes in iOS9 and iOS10. #18402 - // gl.detachShader( program, glVertexShader ); - // gl.detachShader( program, glFragmentShader ); - - gl.deleteShader(glVertexShader); - gl.deleteShader(glFragmentShader); // set up caching for uniform locations - var cachedUniforms; - this.getUniforms = function () { - if (cachedUniforms === undefined) { - cachedUniforms = new WebGLUniforms(gl, program); - } - return cachedUniforms; - }; // set up caching for attribute locations - - var cachedAttributes; - this.getAttributes = function () { - if (cachedAttributes === undefined) { - cachedAttributes = fetchAttributeLocations(gl, program); - } - return cachedAttributes; - }; // free resource - - this.destroy = function () { - bindingStates.releaseStatesOfProgram(this); - gl.deleteProgram(program); - this.program = undefined; - }; // - - this.name = parameters.shaderName; - this.id = programIdCount++; - this.cacheKey = cacheKey; - this.usedTimes = 1; - this.program = program; - this.vertexShader = glVertexShader; - this.fragmentShader = glFragmentShader; - return this; - } - function WebGLPrograms(renderer, cubemaps, extensions, capabilities, bindingStates, clipping) { - var programs = []; - var isWebGL2 = capabilities.isWebGL2; - var logarithmicDepthBuffer = capabilities.logarithmicDepthBuffer; - var floatVertexTextures = capabilities.floatVertexTextures; - var maxVertexUniforms = capabilities.maxVertexUniforms; - var vertexTextures = capabilities.vertexTextures; - var precision = capabilities.precision; - var shaderIDs = { - MeshDepthMaterial: 'depth', - MeshDistanceMaterial: 'distanceRGBA', - MeshNormalMaterial: 'normal', - MeshBasicMaterial: 'basic', - MeshLambertMaterial: 'lambert', - MeshPhongMaterial: 'phong', - MeshToonMaterial: 'toon', - MeshStandardMaterial: 'physical', - MeshPhysicalMaterial: 'physical', - MeshMatcapMaterial: 'matcap', - LineBasicMaterial: 'basic', - LineDashedMaterial: 'dashed', - PointsMaterial: 'points', - ShadowMaterial: 'shadow', - SpriteMaterial: 'sprite' - }; - var parameterNames = ['precision', 'isWebGL2', 'supportsVertexTextures', 'outputEncoding', 'instancing', 'instancingColor', 'map', 'mapEncoding', 'matcap', 'matcapEncoding', 'envMap', 'envMapMode', 'envMapEncoding', 'envMapCubeUV', 'lightMap', 'lightMapEncoding', 'aoMap', 'emissiveMap', 'emissiveMapEncoding', 'bumpMap', 'normalMap', 'objectSpaceNormalMap', 'tangentSpaceNormalMap', 'clearcoatMap', 'clearcoatRoughnessMap', 'clearcoatNormalMap', 'displacementMap', 'specularMap', 'roughnessMap', 'metalnessMap', 'gradientMap', 'alphaMap', 'combine', 'vertexColors', 'vertexTangents', 'vertexUvs', 'uvsVertexOnly', 'fog', 'useFog', 'fogExp2', 'flatShading', 'sizeAttenuation', 'logarithmicDepthBuffer', 'skinning', 'maxBones', 'useVertexTexture', 'morphTargets', 'morphNormals', 'maxMorphTargets', 'maxMorphNormals', 'premultipliedAlpha', 'numDirLights', 'numPointLights', 'numSpotLights', 'numHemiLights', 'numRectAreaLights', 'numDirLightShadows', 'numPointLightShadows', 'numSpotLightShadows', 'shadowMapEnabled', 'shadowMapType', 'toneMapping', 'physicallyCorrectLights', 'alphaTest', 'doubleSided', 'flipSided', 'numClippingPlanes', 'numClipIntersection', 'depthPacking', 'dithering', 'sheen', 'transmissionMap']; - function getMaxBones(object) { - var skeleton = object.skeleton; - var bones = skeleton.bones; - if (floatVertexTextures) { - return 1024; - } else { - // default for when object is not specified - // ( for example when prebuilding shader to be used with multiple objects ) - // - // - leave some extra space for other uniforms - // - limit here is ANGLE's 254 max uniform vectors - // (up to 54 should be safe) - var nVertexUniforms = maxVertexUniforms; - var nVertexMatrices = Math.floor((nVertexUniforms - 20) / 4); - var maxBones = Math.min(nVertexMatrices, bones.length); - if (maxBones < bones.length) { - console.warn('THREE.WebGLRenderer: Skeleton has ' + bones.length + ' bones. This GPU supports ' + maxBones + '.'); - return 0; - } - return maxBones; - } - } - function getTextureEncodingFromMap(map) { - var encoding; - if (map && map.isTexture) { - encoding = map.encoding; - } else if (map && map.isWebGLRenderTarget) { - console.warn('THREE.WebGLPrograms.getTextureEncodingFromMap: don\'t use render targets as textures. Use their .texture property instead.'); - encoding = map.texture.encoding; - } else { - encoding = LinearEncoding; - } - return encoding; - } - function getParameters(material, lights, shadows, scene, object) { - var fog = scene.fog; - var environment = material.isMeshStandardMaterial ? scene.environment : null; - var envMap = cubemaps.get(material.envMap || environment); - var shaderID = shaderIDs[material.type]; // heuristics to create shader parameters according to lights in the scene - // (not to blow over maxLights budget) - var maxBones = object.isSkinnedMesh ? getMaxBones(object) : 0; - if (material.precision !== null) { - precision = capabilities.getMaxPrecision(material.precision); - if (precision !== material.precision) { - console.warn('THREE.WebGLProgram.getParameters:', material.precision, 'not supported, using', precision, 'instead.'); - } - } - var vertexShader, fragmentShader; - if (shaderID) { - var shader = ShaderLib[shaderID]; - vertexShader = shader.vertexShader; - fragmentShader = shader.fragmentShader; - } else { - vertexShader = material.vertexShader; - fragmentShader = material.fragmentShader; - } - var currentRenderTarget = renderer.getRenderTarget(); - var parameters = { - isWebGL2: isWebGL2, - shaderID: shaderID, - shaderName: material.type, - vertexShader: vertexShader, - fragmentShader: fragmentShader, - defines: material.defines, - isRawShaderMaterial: material.isRawShaderMaterial === true, - glslVersion: material.glslVersion, - precision: precision, - instancing: object.isInstancedMesh === true, - instancingColor: object.isInstancedMesh === true && object.instanceColor !== null, - supportsVertexTextures: vertexTextures, - outputEncoding: currentRenderTarget !== null ? getTextureEncodingFromMap(currentRenderTarget.texture) : renderer.outputEncoding, - map: !!material.map, - mapEncoding: getTextureEncodingFromMap(material.map), - matcap: !!material.matcap, - matcapEncoding: getTextureEncodingFromMap(material.matcap), - envMap: !!envMap, - envMapMode: envMap && envMap.mapping, - envMapEncoding: getTextureEncodingFromMap(envMap), - envMapCubeUV: !!envMap && (envMap.mapping === CubeUVReflectionMapping || envMap.mapping === CubeUVRefractionMapping), - lightMap: !!material.lightMap, - lightMapEncoding: getTextureEncodingFromMap(material.lightMap), - aoMap: !!material.aoMap, - emissiveMap: !!material.emissiveMap, - emissiveMapEncoding: getTextureEncodingFromMap(material.emissiveMap), - bumpMap: !!material.bumpMap, - normalMap: !!material.normalMap, - objectSpaceNormalMap: material.normalMapType === ObjectSpaceNormalMap, - tangentSpaceNormalMap: material.normalMapType === TangentSpaceNormalMap, - clearcoatMap: !!material.clearcoatMap, - clearcoatRoughnessMap: !!material.clearcoatRoughnessMap, - clearcoatNormalMap: !!material.clearcoatNormalMap, - displacementMap: !!material.displacementMap, - roughnessMap: !!material.roughnessMap, - metalnessMap: !!material.metalnessMap, - specularMap: !!material.specularMap, - alphaMap: !!material.alphaMap, - gradientMap: !!material.gradientMap, - sheen: !!material.sheen, - transmissionMap: !!material.transmissionMap, - combine: material.combine, - vertexTangents: material.normalMap && material.vertexTangents, - vertexColors: material.vertexColors, - vertexUvs: !!material.map || !!material.bumpMap || !!material.normalMap || !!material.specularMap || !!material.alphaMap || !!material.emissiveMap || !!material.roughnessMap || !!material.metalnessMap || !!material.clearcoatMap || !!material.clearcoatRoughnessMap || !!material.clearcoatNormalMap || !!material.displacementMap || !!material.transmissionMap, - uvsVertexOnly: !(!!material.map || !!material.bumpMap || !!material.normalMap || !!material.specularMap || !!material.alphaMap || !!material.emissiveMap || !!material.roughnessMap || !!material.metalnessMap || !!material.clearcoatNormalMap || !!material.transmissionMap) && !!material.displacementMap, - fog: !!fog, - useFog: material.fog, - fogExp2: fog && fog.isFogExp2, - flatShading: material.flatShading, - sizeAttenuation: material.sizeAttenuation, - logarithmicDepthBuffer: logarithmicDepthBuffer, - skinning: material.skinning && maxBones > 0, - maxBones: maxBones, - useVertexTexture: floatVertexTextures, - morphTargets: material.morphTargets, - morphNormals: material.morphNormals, - maxMorphTargets: renderer.maxMorphTargets, - maxMorphNormals: renderer.maxMorphNormals, - numDirLights: lights.directional.length, - numPointLights: lights.point.length, - numSpotLights: lights.spot.length, - numRectAreaLights: lights.rectArea.length, - numHemiLights: lights.hemi.length, - numDirLightShadows: lights.directionalShadowMap.length, - numPointLightShadows: lights.pointShadowMap.length, - numSpotLightShadows: lights.spotShadowMap.length, - numClippingPlanes: clipping.numPlanes, - numClipIntersection: clipping.numIntersection, - dithering: material.dithering, - shadowMapEnabled: renderer.shadowMap.enabled && shadows.length > 0, - shadowMapType: renderer.shadowMap.type, - toneMapping: material.toneMapped ? renderer.toneMapping : NoToneMapping, - physicallyCorrectLights: renderer.physicallyCorrectLights, - premultipliedAlpha: material.premultipliedAlpha, - alphaTest: material.alphaTest, - doubleSided: material.side === DoubleSide, - flipSided: material.side === BackSide, - depthPacking: material.depthPacking !== undefined ? material.depthPacking : false, - index0AttributeName: material.index0AttributeName, - extensionDerivatives: material.extensions && material.extensions.derivatives, - extensionFragDepth: material.extensions && material.extensions.fragDepth, - extensionDrawBuffers: material.extensions && material.extensions.drawBuffers, - extensionShaderTextureLOD: material.extensions && material.extensions.shaderTextureLOD, - rendererExtensionFragDepth: isWebGL2 || extensions.has('EXT_frag_depth'), - rendererExtensionDrawBuffers: isWebGL2 || extensions.has('WEBGL_draw_buffers'), - rendererExtensionShaderTextureLod: isWebGL2 || extensions.has('EXT_shader_texture_lod'), - customProgramCacheKey: material.customProgramCacheKey() - }; - return parameters; - } - function getProgramCacheKey(parameters) { - var array = []; - if (parameters.shaderID) { - array.push(parameters.shaderID); - } else { - array.push(parameters.fragmentShader); - array.push(parameters.vertexShader); - } - if (parameters.defines !== undefined) { - for (var name in parameters.defines) { - array.push(name); - array.push(parameters.defines[name]); - } - } - if (parameters.isRawShaderMaterial === false) { - for (var i = 0; i < parameterNames.length; i++) { - array.push(parameters[parameterNames[i]]); - } - array.push(renderer.outputEncoding); - array.push(renderer.gammaFactor); - } - array.push(parameters.customProgramCacheKey); - return array.join(); - } - function getUniforms(material) { - var shaderID = shaderIDs[material.type]; - var uniforms; - if (shaderID) { - var shader = ShaderLib[shaderID]; - uniforms = UniformsUtils.clone(shader.uniforms); - } else { - uniforms = material.uniforms; - } - return uniforms; - } - function acquireProgram(parameters, cacheKey) { - var program; // Check if code has been already compiled - for (var p = 0, pl = programs.length; p < pl; p++) { - var preexistingProgram = programs[p]; - if (preexistingProgram.cacheKey === cacheKey) { - program = preexistingProgram; - ++program.usedTimes; - break; - } - } - if (program === undefined) { - program = new WebGLProgram(renderer, cacheKey, parameters, bindingStates); - programs.push(program); - } - return program; - } - function releaseProgram(program) { - if (--program.usedTimes === 0) { - // Remove from unordered set - var i = programs.indexOf(program); - programs[i] = programs[programs.length - 1]; - programs.pop(); // Free WebGL resources - program.destroy(); - } - } - return { - getParameters: getParameters, - getProgramCacheKey: getProgramCacheKey, - getUniforms: getUniforms, - acquireProgram: acquireProgram, - releaseProgram: releaseProgram, - // Exposed for resource monitoring & error feedback via renderer.info: - programs: programs - }; - } - function WebGLProperties() { - var properties = new WeakMap(); - function get(object) { - var map = properties.get(object); - if (map === undefined) { - map = {}; - properties.set(object, map); - } - return map; - } - function remove(object) { - properties.delete(object); - } - function update(object, key, value) { - properties.get(object)[key] = value; - } - function dispose() { - properties = new WeakMap(); - } - return { - get: get, - remove: remove, - update: update, - dispose: dispose - }; - } - function painterSortStable(a, b) { - if (a.groupOrder !== b.groupOrder) { - return a.groupOrder - b.groupOrder; - } else if (a.renderOrder !== b.renderOrder) { - return a.renderOrder - b.renderOrder; - } else if (a.program !== b.program) { - return a.program.id - b.program.id; - } else if (a.material.id !== b.material.id) { - return a.material.id - b.material.id; - } else if (a.z !== b.z) { - return a.z - b.z; - } else { - return a.id - b.id; - } - } - function reversePainterSortStable(a, b) { - if (a.groupOrder !== b.groupOrder) { - return a.groupOrder - b.groupOrder; - } else if (a.renderOrder !== b.renderOrder) { - return a.renderOrder - b.renderOrder; - } else if (a.z !== b.z) { - return b.z - a.z; - } else { - return a.id - b.id; - } - } - function WebGLRenderList(properties) { - var renderItems = []; - var renderItemsIndex = 0; - var opaque = []; - var transparent = []; - var defaultProgram = { - id: -1 - }; - function init() { - renderItemsIndex = 0; - opaque.length = 0; - transparent.length = 0; - } - function getNextRenderItem(object, geometry, material, groupOrder, z, group) { - var renderItem = renderItems[renderItemsIndex]; - var materialProperties = properties.get(material); - if (renderItem === undefined) { - renderItem = { - id: object.id, - object: object, - geometry: geometry, - material: material, - program: materialProperties.program || defaultProgram, - groupOrder: groupOrder, - renderOrder: object.renderOrder, - z: z, - group: group - }; - renderItems[renderItemsIndex] = renderItem; - } else { - renderItem.id = object.id; - renderItem.object = object; - renderItem.geometry = geometry; - renderItem.material = material; - renderItem.program = materialProperties.program || defaultProgram; - renderItem.groupOrder = groupOrder; - renderItem.renderOrder = object.renderOrder; - renderItem.z = z; - renderItem.group = group; - } - renderItemsIndex++; - return renderItem; - } - function push(object, geometry, material, groupOrder, z, group) { - var renderItem = getNextRenderItem(object, geometry, material, groupOrder, z, group); - (material.transparent === true ? transparent : opaque).push(renderItem); - } - function unshift(object, geometry, material, groupOrder, z, group) { - var renderItem = getNextRenderItem(object, geometry, material, groupOrder, z, group); - (material.transparent === true ? transparent : opaque).unshift(renderItem); - } - function sort(customOpaqueSort, customTransparentSort) { - if (opaque.length > 1) opaque.sort(customOpaqueSort || painterSortStable); - if (transparent.length > 1) transparent.sort(customTransparentSort || reversePainterSortStable); - } - function finish() { - // Clear references from inactive renderItems in the list - for (var i = renderItemsIndex, il = renderItems.length; i < il; i++) { - var renderItem = renderItems[i]; - if (renderItem.id === null) break; - renderItem.id = null; - renderItem.object = null; - renderItem.geometry = null; - renderItem.material = null; - renderItem.program = null; - renderItem.group = null; - } - } - return { - opaque: opaque, - transparent: transparent, - init: init, - push: push, - unshift: unshift, - finish: finish, - sort: sort - }; - } - function WebGLRenderLists(properties) { - var lists = new WeakMap(); - function get(scene, camera) { - var cameras = lists.get(scene); - var list; - if (cameras === undefined) { - list = new WebGLRenderList(properties); - lists.set(scene, new WeakMap()); - lists.get(scene).set(camera, list); - } else { - list = cameras.get(camera); - if (list === undefined) { - list = new WebGLRenderList(properties); - cameras.set(camera, list); - } - } - return list; - } - function dispose() { - lists = new WeakMap(); - } - return { - get: get, - dispose: dispose - }; - } - function UniformsCache() { - var lights = {}; - return { - get: function get(light) { - if (lights[light.id] !== undefined) { - return lights[light.id]; - } - var uniforms; - switch (light.type) { - case 'DirectionalLight': - uniforms = { - direction: new Vector3(), - color: new Color() - }; - break; - case 'SpotLight': - uniforms = { - position: new Vector3(), - direction: new Vector3(), - color: new Color(), - distance: 0, - coneCos: 0, - penumbraCos: 0, - decay: 0 - }; - break; - case 'PointLight': - uniforms = { - position: new Vector3(), - color: new Color(), - distance: 0, - decay: 0 - }; - break; - case 'HemisphereLight': - uniforms = { - direction: new Vector3(), - skyColor: new Color(), - groundColor: new Color() - }; - break; - case 'RectAreaLight': - uniforms = { - color: new Color(), - position: new Vector3(), - halfWidth: new Vector3(), - halfHeight: new Vector3() - }; - break; - } - lights[light.id] = uniforms; - return uniforms; - } - }; - } - function ShadowUniformsCache() { - var lights = {}; - return { - get: function get(light) { - if (lights[light.id] !== undefined) { - return lights[light.id]; - } - var uniforms; - switch (light.type) { - case 'DirectionalLight': - uniforms = { - shadowBias: 0, - shadowNormalBias: 0, - shadowRadius: 1, - shadowMapSize: new Vector2() - }; - break; - case 'SpotLight': - uniforms = { - shadowBias: 0, - shadowNormalBias: 0, - shadowRadius: 1, - shadowMapSize: new Vector2() - }; - break; - case 'PointLight': - uniforms = { - shadowBias: 0, - shadowNormalBias: 0, - shadowRadius: 1, - shadowMapSize: new Vector2(), - shadowCameraNear: 1, - shadowCameraFar: 1000 - }; - break; - // TODO (abelnation): set RectAreaLight shadow uniforms - } - lights[light.id] = uniforms; - return uniforms; - } - }; - } - var nextVersion = 0; - function shadowCastingLightsFirst(lightA, lightB) { - return (lightB.castShadow ? 1 : 0) - (lightA.castShadow ? 1 : 0); - } - function WebGLLights(extensions, capabilities) { - var cache = new UniformsCache(); - var shadowCache = ShadowUniformsCache(); - var state = { - version: 0, - hash: { - directionalLength: -1, - pointLength: -1, - spotLength: -1, - rectAreaLength: -1, - hemiLength: -1, - numDirectionalShadows: -1, - numPointShadows: -1, - numSpotShadows: -1 - }, - ambient: [0, 0, 0], - probe: [], - directional: [], - directionalShadow: [], - directionalShadowMap: [], - directionalShadowMatrix: [], - spot: [], - spotShadow: [], - spotShadowMap: [], - spotShadowMatrix: [], - rectArea: [], - rectAreaLTC1: null, - rectAreaLTC2: null, - point: [], - pointShadow: [], - pointShadowMap: [], - pointShadowMatrix: [], - hemi: [] - }; - for (var i = 0; i < 9; i++) { - state.probe.push(new Vector3()); - } - var vector3 = new Vector3(); - var matrix4 = new Matrix4(); - var matrix42 = new Matrix4(); - function setup(lights) { - var r = 0, - g = 0, - b = 0; - for (var _i = 0; _i < 9; _i++) { - state.probe[_i].set(0, 0, 0); - } - var directionalLength = 0; - var pointLength = 0; - var spotLength = 0; - var rectAreaLength = 0; - var hemiLength = 0; - var numDirectionalShadows = 0; - var numPointShadows = 0; - var numSpotShadows = 0; - lights.sort(shadowCastingLightsFirst); - for (var _i2 = 0, l = lights.length; _i2 < l; _i2++) { - var light = lights[_i2]; - var color = light.color; - var intensity = light.intensity; - var distance = light.distance; - var shadowMap = light.shadow && light.shadow.map ? light.shadow.map.texture : null; - if (light.isAmbientLight) { - r += color.r * intensity; - g += color.g * intensity; - b += color.b * intensity; - } else if (light.isLightProbe) { - for (var j = 0; j < 9; j++) { - state.probe[j].addScaledVector(light.sh.coefficients[j], intensity); - } - } else if (light.isDirectionalLight) { - var uniforms = cache.get(light); - uniforms.color.copy(light.color).multiplyScalar(light.intensity); - if (light.castShadow) { - var shadow = light.shadow; - var shadowUniforms = shadowCache.get(light); - shadowUniforms.shadowBias = shadow.bias; - shadowUniforms.shadowNormalBias = shadow.normalBias; - shadowUniforms.shadowRadius = shadow.radius; - shadowUniforms.shadowMapSize = shadow.mapSize; - state.directionalShadow[directionalLength] = shadowUniforms; - state.directionalShadowMap[directionalLength] = shadowMap; - state.directionalShadowMatrix[directionalLength] = light.shadow.matrix; - numDirectionalShadows++; - } - state.directional[directionalLength] = uniforms; - directionalLength++; - } else if (light.isSpotLight) { - var _uniforms = cache.get(light); - _uniforms.position.setFromMatrixPosition(light.matrixWorld); - _uniforms.color.copy(color).multiplyScalar(intensity); - _uniforms.distance = distance; - _uniforms.coneCos = Math.cos(light.angle); - _uniforms.penumbraCos = Math.cos(light.angle * (1 - light.penumbra)); - _uniforms.decay = light.decay; - if (light.castShadow) { - var _shadow = light.shadow; - var _shadowUniforms = shadowCache.get(light); - _shadowUniforms.shadowBias = _shadow.bias; - _shadowUniforms.shadowNormalBias = _shadow.normalBias; - _shadowUniforms.shadowRadius = _shadow.radius; - _shadowUniforms.shadowMapSize = _shadow.mapSize; - state.spotShadow[spotLength] = _shadowUniforms; - state.spotShadowMap[spotLength] = shadowMap; - state.spotShadowMatrix[spotLength] = light.shadow.matrix; - numSpotShadows++; - } - state.spot[spotLength] = _uniforms; - spotLength++; - } else if (light.isRectAreaLight) { - var _uniforms2 = cache.get(light); // (a) intensity is the total visible light emitted - //uniforms.color.copy( color ).multiplyScalar( intensity / ( light.width * light.height * Math.PI ) ); - // (b) intensity is the brightness of the light - - _uniforms2.color.copy(color).multiplyScalar(intensity); - _uniforms2.halfWidth.set(light.width * 0.5, 0.0, 0.0); - _uniforms2.halfHeight.set(0.0, light.height * 0.5, 0.0); - state.rectArea[rectAreaLength] = _uniforms2; - rectAreaLength++; - } else if (light.isPointLight) { - var _uniforms3 = cache.get(light); - _uniforms3.color.copy(light.color).multiplyScalar(light.intensity); - _uniforms3.distance = light.distance; - _uniforms3.decay = light.decay; - if (light.castShadow) { - var _shadow2 = light.shadow; - var _shadowUniforms2 = shadowCache.get(light); - _shadowUniforms2.shadowBias = _shadow2.bias; - _shadowUniforms2.shadowNormalBias = _shadow2.normalBias; - _shadowUniforms2.shadowRadius = _shadow2.radius; - _shadowUniforms2.shadowMapSize = _shadow2.mapSize; - _shadowUniforms2.shadowCameraNear = _shadow2.camera.near; - _shadowUniforms2.shadowCameraFar = _shadow2.camera.far; - state.pointShadow[pointLength] = _shadowUniforms2; - state.pointShadowMap[pointLength] = shadowMap; - state.pointShadowMatrix[pointLength] = light.shadow.matrix; - numPointShadows++; - } - state.point[pointLength] = _uniforms3; - pointLength++; - } else if (light.isHemisphereLight) { - var _uniforms4 = cache.get(light); - _uniforms4.skyColor.copy(light.color).multiplyScalar(intensity); - _uniforms4.groundColor.copy(light.groundColor).multiplyScalar(intensity); - state.hemi[hemiLength] = _uniforms4; - hemiLength++; - } - } - if (rectAreaLength > 0) { - if (capabilities.isWebGL2) { - // WebGL 2 - state.rectAreaLTC1 = UniformsLib.LTC_FLOAT_1; - state.rectAreaLTC2 = UniformsLib.LTC_FLOAT_2; - } else { - // WebGL 1 - if (extensions.has('OES_texture_float_linear') === true) { - state.rectAreaLTC1 = UniformsLib.LTC_FLOAT_1; - state.rectAreaLTC2 = UniformsLib.LTC_FLOAT_2; - } else if (extensions.has('OES_texture_half_float_linear') === true) { - state.rectAreaLTC1 = UniformsLib.LTC_HALF_1; - state.rectAreaLTC2 = UniformsLib.LTC_HALF_2; - } else { - console.error('THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.'); - } - } - } - state.ambient[0] = r; - state.ambient[1] = g; - state.ambient[2] = b; - var hash = state.hash; - if (hash.directionalLength !== directionalLength || hash.pointLength !== pointLength || hash.spotLength !== spotLength || hash.rectAreaLength !== rectAreaLength || hash.hemiLength !== hemiLength || hash.numDirectionalShadows !== numDirectionalShadows || hash.numPointShadows !== numPointShadows || hash.numSpotShadows !== numSpotShadows) { - state.directional.length = directionalLength; - state.spot.length = spotLength; - state.rectArea.length = rectAreaLength; - state.point.length = pointLength; - state.hemi.length = hemiLength; - state.directionalShadow.length = numDirectionalShadows; - state.directionalShadowMap.length = numDirectionalShadows; - state.pointShadow.length = numPointShadows; - state.pointShadowMap.length = numPointShadows; - state.spotShadow.length = numSpotShadows; - state.spotShadowMap.length = numSpotShadows; - state.directionalShadowMatrix.length = numDirectionalShadows; - state.pointShadowMatrix.length = numPointShadows; - state.spotShadowMatrix.length = numSpotShadows; - hash.directionalLength = directionalLength; - hash.pointLength = pointLength; - hash.spotLength = spotLength; - hash.rectAreaLength = rectAreaLength; - hash.hemiLength = hemiLength; - hash.numDirectionalShadows = numDirectionalShadows; - hash.numPointShadows = numPointShadows; - hash.numSpotShadows = numSpotShadows; - state.version = nextVersion++; - } - } - function setupView(lights, camera) { - var directionalLength = 0; - var pointLength = 0; - var spotLength = 0; - var rectAreaLength = 0; - var hemiLength = 0; - var viewMatrix = camera.matrixWorldInverse; - for (var _i3 = 0, l = lights.length; _i3 < l; _i3++) { - var light = lights[_i3]; - if (light.isDirectionalLight) { - var uniforms = state.directional[directionalLength]; - uniforms.direction.setFromMatrixPosition(light.matrixWorld); - vector3.setFromMatrixPosition(light.target.matrixWorld); - uniforms.direction.sub(vector3); - uniforms.direction.transformDirection(viewMatrix); - directionalLength++; - } else if (light.isSpotLight) { - var _uniforms5 = state.spot[spotLength]; - _uniforms5.position.setFromMatrixPosition(light.matrixWorld); - _uniforms5.position.applyMatrix4(viewMatrix); - _uniforms5.direction.setFromMatrixPosition(light.matrixWorld); - vector3.setFromMatrixPosition(light.target.matrixWorld); - _uniforms5.direction.sub(vector3); - _uniforms5.direction.transformDirection(viewMatrix); - spotLength++; - } else if (light.isRectAreaLight) { - var _uniforms6 = state.rectArea[rectAreaLength]; - _uniforms6.position.setFromMatrixPosition(light.matrixWorld); - _uniforms6.position.applyMatrix4(viewMatrix); // extract local rotation of light to derive width/height half vectors - - matrix42.identity(); - matrix4.copy(light.matrixWorld); - matrix4.premultiply(viewMatrix); - matrix42.extractRotation(matrix4); - _uniforms6.halfWidth.set(light.width * 0.5, 0.0, 0.0); - _uniforms6.halfHeight.set(0.0, light.height * 0.5, 0.0); - _uniforms6.halfWidth.applyMatrix4(matrix42); - _uniforms6.halfHeight.applyMatrix4(matrix42); - rectAreaLength++; - } else if (light.isPointLight) { - var _uniforms7 = state.point[pointLength]; - _uniforms7.position.setFromMatrixPosition(light.matrixWorld); - _uniforms7.position.applyMatrix4(viewMatrix); - pointLength++; - } else if (light.isHemisphereLight) { - var _uniforms8 = state.hemi[hemiLength]; - _uniforms8.direction.setFromMatrixPosition(light.matrixWorld); - _uniforms8.direction.transformDirection(viewMatrix); - _uniforms8.direction.normalize(); - hemiLength++; - } - } - } - return { - setup: setup, - setupView: setupView, - state: state - }; - } - function WebGLRenderState(extensions, capabilities) { - var lights = new WebGLLights(extensions, capabilities); - var lightsArray = []; - var shadowsArray = []; - function init() { - lightsArray.length = 0; - shadowsArray.length = 0; - } - function pushLight(light) { - lightsArray.push(light); - } - function pushShadow(shadowLight) { - shadowsArray.push(shadowLight); - } - function setupLights() { - lights.setup(lightsArray); - } - function setupLightsView(camera) { - lights.setupView(lightsArray, camera); - } - var state = { - lightsArray: lightsArray, - shadowsArray: shadowsArray, - lights: lights - }; - return { - init: init, - state: state, - setupLights: setupLights, - setupLightsView: setupLightsView, - pushLight: pushLight, - pushShadow: pushShadow - }; - } - function WebGLRenderStates(extensions, capabilities) { - var renderStates = new WeakMap(); - function get(scene, renderCallDepth) { - if (renderCallDepth === void 0) { - renderCallDepth = 0; - } - var renderState; - if (renderStates.has(scene) === false) { - renderState = new WebGLRenderState(extensions, capabilities); - renderStates.set(scene, []); - renderStates.get(scene).push(renderState); - } else { - if (renderCallDepth >= renderStates.get(scene).length) { - renderState = new WebGLRenderState(extensions, capabilities); - renderStates.get(scene).push(renderState); - } else { - renderState = renderStates.get(scene)[renderCallDepth]; - } - } - return renderState; - } - function dispose() { - renderStates = new WeakMap(); - } - return { - get: get, - dispose: dispose - }; - } - /** - * parameters = { - * - * opacity: , - * - * map: new THREE.Texture( ), - * - * alphaMap: new THREE.Texture( ), - * - * displacementMap: new THREE.Texture( ), - * displacementScale: , - * displacementBias: , - * - * wireframe: , - * wireframeLinewidth: - * } - */ - function MeshDepthMaterial(parameters) { - Material.call(this); - this.type = 'MeshDepthMaterial'; - this.depthPacking = BasicDepthPacking; - this.skinning = false; - this.morphTargets = false; - this.map = null; - this.alphaMap = null; - this.displacementMap = null; - this.displacementScale = 1; - this.displacementBias = 0; - this.wireframe = false; - this.wireframeLinewidth = 1; - this.fog = false; - this.setValues(parameters); - } - MeshDepthMaterial.prototype = Object.create(Material.prototype); - MeshDepthMaterial.prototype.constructor = MeshDepthMaterial; - MeshDepthMaterial.prototype.isMeshDepthMaterial = true; - MeshDepthMaterial.prototype.copy = function (source) { - Material.prototype.copy.call(this, source); - this.depthPacking = source.depthPacking; - this.skinning = source.skinning; - this.morphTargets = source.morphTargets; - this.map = source.map; - this.alphaMap = source.alphaMap; - this.displacementMap = source.displacementMap; - this.displacementScale = source.displacementScale; - this.displacementBias = source.displacementBias; - this.wireframe = source.wireframe; - this.wireframeLinewidth = source.wireframeLinewidth; - return this; - }; - /** - * parameters = { - * - * referencePosition: , - * nearDistance: , - * farDistance: , - * - * skinning: , - * morphTargets: , - * - * map: new THREE.Texture( ), - * - * alphaMap: new THREE.Texture( ), - * - * displacementMap: new THREE.Texture( ), - * displacementScale: , - * displacementBias: - * - * } - */ - function MeshDistanceMaterial(parameters) { - Material.call(this); - this.type = 'MeshDistanceMaterial'; - this.referencePosition = new Vector3(); - this.nearDistance = 1; - this.farDistance = 1000; - this.skinning = false; - this.morphTargets = false; - this.map = null; - this.alphaMap = null; - this.displacementMap = null; - this.displacementScale = 1; - this.displacementBias = 0; - this.fog = false; - this.setValues(parameters); - } - MeshDistanceMaterial.prototype = Object.create(Material.prototype); - MeshDistanceMaterial.prototype.constructor = MeshDistanceMaterial; - MeshDistanceMaterial.prototype.isMeshDistanceMaterial = true; - MeshDistanceMaterial.prototype.copy = function (source) { - Material.prototype.copy.call(this, source); - this.referencePosition.copy(source.referencePosition); - this.nearDistance = source.nearDistance; - this.farDistance = source.farDistance; - this.skinning = source.skinning; - this.morphTargets = source.morphTargets; - this.map = source.map; - this.alphaMap = source.alphaMap; - this.displacementMap = source.displacementMap; - this.displacementScale = source.displacementScale; - this.displacementBias = source.displacementBias; - return this; - }; - var vsm_frag = "uniform sampler2D shadow_pass;\nuniform vec2 resolution;\nuniform float radius;\n#include \nvoid main() {\n\tfloat mean = 0.0;\n\tfloat squared_mean = 0.0;\n\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy ) / resolution ) );\n\tfor ( float i = -1.0; i < 1.0 ; i += SAMPLE_RATE) {\n\t\t#ifdef HORIZONAL_PASS\n\t\t\tvec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( i, 0.0 ) * radius ) / resolution ) );\n\t\t\tmean += distribution.x;\n\t\t\tsquared_mean += distribution.y * distribution.y + distribution.x * distribution.x;\n\t\t#else\n\t\t\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, i ) * radius ) / resolution ) );\n\t\t\tmean += depth;\n\t\t\tsquared_mean += depth * depth;\n\t\t#endif\n\t}\n\tmean = mean * HALF_SAMPLE_RATE;\n\tsquared_mean = squared_mean * HALF_SAMPLE_RATE;\n\tfloat std_dev = sqrt( squared_mean - mean * mean );\n\tgl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );\n}"; - var vsm_vert = "void main() {\n\tgl_Position = vec4( position, 1.0 );\n}"; - function WebGLShadowMap(_renderer, _objects, maxTextureSize) { - var _frustum = new Frustum(); - var _shadowMapSize = new Vector2(), - _viewportSize = new Vector2(), - _viewport = new Vector4(), - _depthMaterials = [], - _distanceMaterials = [], - _materialCache = {}; - var shadowSide = { - 0: BackSide, - 1: FrontSide, - 2: DoubleSide - }; - var shadowMaterialVertical = new ShaderMaterial({ - defines: { - SAMPLE_RATE: 2.0 / 8.0, - HALF_SAMPLE_RATE: 1.0 / 8.0 - }, - uniforms: { - shadow_pass: { - value: null - }, - resolution: { - value: new Vector2() - }, - radius: { - value: 4.0 - } - }, - vertexShader: vsm_vert, - fragmentShader: vsm_frag - }); - var shadowMaterialHorizonal = shadowMaterialVertical.clone(); - shadowMaterialHorizonal.defines.HORIZONAL_PASS = 1; - var fullScreenTri = new BufferGeometry(); - fullScreenTri.setAttribute('position', new BufferAttribute(new Float32Array([-1, -1, 0.5, 3, -1, 0.5, -1, 3, 0.5]), 3)); - var fullScreenMesh = new Mesh(fullScreenTri, shadowMaterialVertical); - var scope = this; - this.enabled = false; - this.autoUpdate = true; - this.needsUpdate = false; - this.type = PCFShadowMap; - this.render = function (lights, scene, camera) { - if (scope.enabled === false) return; - if (scope.autoUpdate === false && scope.needsUpdate === false) return; - if (lights.length === 0) return; - var currentRenderTarget = _renderer.getRenderTarget(); - var activeCubeFace = _renderer.getActiveCubeFace(); - var activeMipmapLevel = _renderer.getActiveMipmapLevel(); - var _state = _renderer.state; // Set GL state for depth map. - _state.setBlending(NoBlending); - _state.buffers.color.setClear(1, 1, 1, 1); - _state.buffers.depth.setTest(true); - _state.setScissorTest(false); // render depth map - - for (var i = 0, il = lights.length; i < il; i++) { - var light = lights[i]; - var shadow = light.shadow; - if (shadow === undefined) { - console.warn('THREE.WebGLShadowMap:', light, 'has no shadow.'); - continue; - } - if (shadow.autoUpdate === false && shadow.needsUpdate === false) continue; - _shadowMapSize.copy(shadow.mapSize); - var shadowFrameExtents = shadow.getFrameExtents(); - _shadowMapSize.multiply(shadowFrameExtents); - _viewportSize.copy(shadow.mapSize); - if (_shadowMapSize.x > maxTextureSize || _shadowMapSize.y > maxTextureSize) { - if (_shadowMapSize.x > maxTextureSize) { - _viewportSize.x = Math.floor(maxTextureSize / shadowFrameExtents.x); - _shadowMapSize.x = _viewportSize.x * shadowFrameExtents.x; - shadow.mapSize.x = _viewportSize.x; - } - if (_shadowMapSize.y > maxTextureSize) { - _viewportSize.y = Math.floor(maxTextureSize / shadowFrameExtents.y); - _shadowMapSize.y = _viewportSize.y * shadowFrameExtents.y; - shadow.mapSize.y = _viewportSize.y; - } - } - if (shadow.map === null && !shadow.isPointLightShadow && this.type === VSMShadowMap) { - var pars = { - minFilter: LinearFilter, - magFilter: LinearFilter, - format: RGBAFormat - }; - shadow.map = new WebGLRenderTarget(_shadowMapSize.x, _shadowMapSize.y, pars); - shadow.map.texture.name = light.name + '.shadowMap'; - shadow.mapPass = new WebGLRenderTarget(_shadowMapSize.x, _shadowMapSize.y, pars); - shadow.camera.updateProjectionMatrix(); - } - if (shadow.map === null) { - var _pars = { - minFilter: NearestFilter, - magFilter: NearestFilter, - format: RGBAFormat - }; - shadow.map = new WebGLRenderTarget(_shadowMapSize.x, _shadowMapSize.y, _pars); - shadow.map.texture.name = light.name + '.shadowMap'; - shadow.camera.updateProjectionMatrix(); - } - _renderer.setRenderTarget(shadow.map); - _renderer.clear(); - var viewportCount = shadow.getViewportCount(); - for (var vp = 0; vp < viewportCount; vp++) { - var viewport = shadow.getViewport(vp); - _viewport.set(_viewportSize.x * viewport.x, _viewportSize.y * viewport.y, _viewportSize.x * viewport.z, _viewportSize.y * viewport.w); - _state.viewport(_viewport); - shadow.updateMatrices(light, vp); - _frustum = shadow.getFrustum(); - renderObject(scene, camera, shadow.camera, light, this.type); - } // do blur pass for VSM - - if (!shadow.isPointLightShadow && this.type === VSMShadowMap) { - VSMPass(shadow, camera); - } - shadow.needsUpdate = false; - } - scope.needsUpdate = false; - _renderer.setRenderTarget(currentRenderTarget, activeCubeFace, activeMipmapLevel); - }; - function VSMPass(shadow, camera) { - var geometry = _objects.update(fullScreenMesh); // vertical pass - - shadowMaterialVertical.uniforms.shadow_pass.value = shadow.map.texture; - shadowMaterialVertical.uniforms.resolution.value = shadow.mapSize; - shadowMaterialVertical.uniforms.radius.value = shadow.radius; - _renderer.setRenderTarget(shadow.mapPass); - _renderer.clear(); - _renderer.renderBufferDirect(camera, null, geometry, shadowMaterialVertical, fullScreenMesh, null); // horizonal pass - - shadowMaterialHorizonal.uniforms.shadow_pass.value = shadow.mapPass.texture; - shadowMaterialHorizonal.uniforms.resolution.value = shadow.mapSize; - shadowMaterialHorizonal.uniforms.radius.value = shadow.radius; - _renderer.setRenderTarget(shadow.map); - _renderer.clear(); - _renderer.renderBufferDirect(camera, null, geometry, shadowMaterialHorizonal, fullScreenMesh, null); - } - function getDepthMaterialVariant(useMorphing, useSkinning, useInstancing) { - var index = useMorphing << 0 | useSkinning << 1 | useInstancing << 2; - var material = _depthMaterials[index]; - if (material === undefined) { - material = new MeshDepthMaterial({ - depthPacking: RGBADepthPacking, - morphTargets: useMorphing, - skinning: useSkinning - }); - _depthMaterials[index] = material; - } - return material; - } - function getDistanceMaterialVariant(useMorphing, useSkinning, useInstancing) { - var index = useMorphing << 0 | useSkinning << 1 | useInstancing << 2; - var material = _distanceMaterials[index]; - if (material === undefined) { - material = new MeshDistanceMaterial({ - morphTargets: useMorphing, - skinning: useSkinning - }); - _distanceMaterials[index] = material; - } - return material; - } - function getDepthMaterial(object, geometry, material, light, shadowCameraNear, shadowCameraFar, type) { - var result = null; - var getMaterialVariant = getDepthMaterialVariant; - var customMaterial = object.customDepthMaterial; - if (light.isPointLight === true) { - getMaterialVariant = getDistanceMaterialVariant; - customMaterial = object.customDistanceMaterial; - } - if (customMaterial === undefined) { - var useMorphing = false; - if (material.morphTargets === true) { - useMorphing = geometry.morphAttributes && geometry.morphAttributes.position && geometry.morphAttributes.position.length > 0; - } - var useSkinning = false; - if (object.isSkinnedMesh === true) { - if (material.skinning === true) { - useSkinning = true; - } else { - console.warn('THREE.WebGLShadowMap: THREE.SkinnedMesh with material.skinning set to false:', object); - } - } - var useInstancing = object.isInstancedMesh === true; - result = getMaterialVariant(useMorphing, useSkinning, useInstancing); - } else { - result = customMaterial; - } - if (_renderer.localClippingEnabled && material.clipShadows === true && material.clippingPlanes.length !== 0) { - // in this case we need a unique material instance reflecting the - // appropriate state - var keyA = result.uuid, - keyB = material.uuid; - var materialsForVariant = _materialCache[keyA]; - if (materialsForVariant === undefined) { - materialsForVariant = {}; - _materialCache[keyA] = materialsForVariant; - } - var cachedMaterial = materialsForVariant[keyB]; - if (cachedMaterial === undefined) { - cachedMaterial = result.clone(); - materialsForVariant[keyB] = cachedMaterial; - } - result = cachedMaterial; - } - result.visible = material.visible; - result.wireframe = material.wireframe; - if (type === VSMShadowMap) { - result.side = material.shadowSide !== null ? material.shadowSide : material.side; - } else { - result.side = material.shadowSide !== null ? material.shadowSide : shadowSide[material.side]; - } - result.clipShadows = material.clipShadows; - result.clippingPlanes = material.clippingPlanes; - result.clipIntersection = material.clipIntersection; - result.wireframeLinewidth = material.wireframeLinewidth; - result.linewidth = material.linewidth; - if (light.isPointLight === true && result.isMeshDistanceMaterial === true) { - result.referencePosition.setFromMatrixPosition(light.matrixWorld); - result.nearDistance = shadowCameraNear; - result.farDistance = shadowCameraFar; - } - return result; - } - function renderObject(object, camera, shadowCamera, light, type) { - if (object.visible === false) return; - var visible = object.layers.test(camera.layers); - if (visible && (object.isMesh || object.isLine || object.isPoints)) { - if ((object.castShadow || object.receiveShadow && type === VSMShadowMap) && (!object.frustumCulled || _frustum.intersectsObject(object))) { - object.modelViewMatrix.multiplyMatrices(shadowCamera.matrixWorldInverse, object.matrixWorld); - var geometry = _objects.update(object); - var material = object.material; - if (Array.isArray(material)) { - var groups = geometry.groups; - for (var k = 0, kl = groups.length; k < kl; k++) { - var group = groups[k]; - var groupMaterial = material[group.materialIndex]; - if (groupMaterial && groupMaterial.visible) { - var depthMaterial = getDepthMaterial(object, geometry, groupMaterial, light, shadowCamera.near, shadowCamera.far, type); - _renderer.renderBufferDirect(shadowCamera, null, geometry, depthMaterial, object, group); - } - } - } else if (material.visible) { - var _depthMaterial = getDepthMaterial(object, geometry, material, light, shadowCamera.near, shadowCamera.far, type); - _renderer.renderBufferDirect(shadowCamera, null, geometry, _depthMaterial, object, null); - } - } - } - var children = object.children; - for (var i = 0, l = children.length; i < l; i++) { - renderObject(children[i], camera, shadowCamera, light, type); - } - } - } - function WebGLState(gl, extensions, capabilities) { - var _equationToGL, _factorToGL; - var isWebGL2 = capabilities.isWebGL2; - function ColorBuffer() { - var locked = false; - var color = new Vector4(); - var currentColorMask = null; - var currentColorClear = new Vector4(0, 0, 0, 0); - return { - setMask: function setMask(colorMask) { - if (currentColorMask !== colorMask && !locked) { - gl.colorMask(colorMask, colorMask, colorMask, colorMask); - currentColorMask = colorMask; - } - }, - setLocked: function setLocked(lock) { - locked = lock; - }, - setClear: function setClear(r, g, b, a, premultipliedAlpha) { - if (premultipliedAlpha === true) { - r *= a; - g *= a; - b *= a; - } - color.set(r, g, b, a); - if (currentColorClear.equals(color) === false) { - gl.clearColor(r, g, b, a); - currentColorClear.copy(color); - } - }, - reset: function reset() { - locked = false; - currentColorMask = null; - currentColorClear.set(-1, 0, 0, 0); // set to invalid state - } - }; - } - function DepthBuffer() { - var locked = false; - var currentDepthMask = null; - var currentDepthFunc = null; - var currentDepthClear = null; - return { - setTest: function setTest(depthTest) { - if (depthTest) { - enable(2929); - } else { - disable(2929); - } - }, - setMask: function setMask(depthMask) { - if (currentDepthMask !== depthMask && !locked) { - gl.depthMask(depthMask); - currentDepthMask = depthMask; - } - }, - setFunc: function setFunc(depthFunc) { - if (currentDepthFunc !== depthFunc) { - if (depthFunc) { - switch (depthFunc) { - case NeverDepth: - gl.depthFunc(512); - break; - case AlwaysDepth: - gl.depthFunc(519); - break; - case LessDepth: - gl.depthFunc(513); - break; - case LessEqualDepth: - gl.depthFunc(515); - break; - case EqualDepth: - gl.depthFunc(514); - break; - case GreaterEqualDepth: - gl.depthFunc(518); - break; - case GreaterDepth: - gl.depthFunc(516); - break; - case NotEqualDepth: - gl.depthFunc(517); - break; - default: - gl.depthFunc(515); - } - } else { - gl.depthFunc(515); - } - currentDepthFunc = depthFunc; - } - }, - setLocked: function setLocked(lock) { - locked = lock; - }, - setClear: function setClear(depth) { - if (currentDepthClear !== depth) { - gl.clearDepth(depth); - currentDepthClear = depth; - } - }, - reset: function reset() { - locked = false; - currentDepthMask = null; - currentDepthFunc = null; - currentDepthClear = null; - } - }; - } - function StencilBuffer() { - var locked = false; - var currentStencilMask = null; - var currentStencilFunc = null; - var currentStencilRef = null; - var currentStencilFuncMask = null; - var currentStencilFail = null; - var currentStencilZFail = null; - var currentStencilZPass = null; - var currentStencilClear = null; - return { - setTest: function setTest(stencilTest) { - if (!locked) { - if (stencilTest) { - enable(2960); - } else { - disable(2960); - } - } - }, - setMask: function setMask(stencilMask) { - if (currentStencilMask !== stencilMask && !locked) { - gl.stencilMask(stencilMask); - currentStencilMask = stencilMask; - } - }, - setFunc: function setFunc(stencilFunc, stencilRef, stencilMask) { - if (currentStencilFunc !== stencilFunc || currentStencilRef !== stencilRef || currentStencilFuncMask !== stencilMask) { - gl.stencilFunc(stencilFunc, stencilRef, stencilMask); - currentStencilFunc = stencilFunc; - currentStencilRef = stencilRef; - currentStencilFuncMask = stencilMask; - } - }, - setOp: function setOp(stencilFail, stencilZFail, stencilZPass) { - if (currentStencilFail !== stencilFail || currentStencilZFail !== stencilZFail || currentStencilZPass !== stencilZPass) { - gl.stencilOp(stencilFail, stencilZFail, stencilZPass); - currentStencilFail = stencilFail; - currentStencilZFail = stencilZFail; - currentStencilZPass = stencilZPass; - } - }, - setLocked: function setLocked(lock) { - locked = lock; - }, - setClear: function setClear(stencil) { - if (currentStencilClear !== stencil) { - gl.clearStencil(stencil); - currentStencilClear = stencil; - } - }, - reset: function reset() { - locked = false; - currentStencilMask = null; - currentStencilFunc = null; - currentStencilRef = null; - currentStencilFuncMask = null; - currentStencilFail = null; - currentStencilZFail = null; - currentStencilZPass = null; - currentStencilClear = null; - } - }; - } // - - var colorBuffer = new ColorBuffer(); - var depthBuffer = new DepthBuffer(); - var stencilBuffer = new StencilBuffer(); - var enabledCapabilities = {}; - var currentProgram = null; - var currentBlendingEnabled = null; - var currentBlending = null; - var currentBlendEquation = null; - var currentBlendSrc = null; - var currentBlendDst = null; - var currentBlendEquationAlpha = null; - var currentBlendSrcAlpha = null; - var currentBlendDstAlpha = null; - var currentPremultipledAlpha = false; - var currentFlipSided = null; - var currentCullFace = null; - var currentLineWidth = null; - var currentPolygonOffsetFactor = null; - var currentPolygonOffsetUnits = null; - var maxTextures = gl.getParameter(35661); - var lineWidthAvailable = false; - var version = 0; - var glVersion = gl.getParameter(7938); - if (glVersion.indexOf('WebGL') !== -1) { - version = parseFloat(/^WebGL\ ([0-9])/.exec(glVersion)[1]); - lineWidthAvailable = version >= 1.0; - } else if (glVersion.indexOf('OpenGL ES') !== -1) { - version = parseFloat(/^OpenGL\ ES\ ([0-9])/.exec(glVersion)[1]); - lineWidthAvailable = version >= 2.0; - } - var currentTextureSlot = null; - var currentBoundTextures = {}; - var currentScissor = new Vector4(); - var currentViewport = new Vector4(); - function createTexture(type, target, count) { - var data = new Uint8Array(4); // 4 is required to match default unpack alignment of 4. - var texture = gl.createTexture(); - gl.bindTexture(type, texture); - gl.texParameteri(type, 10241, 9728); - gl.texParameteri(type, 10240, 9728); - for (var i = 0; i < count; i++) { - gl.texImage2D(target + i, 0, 6408, 1, 1, 0, 6408, 5121, data); - } - return texture; - } - var emptyTextures = {}; - emptyTextures[3553] = createTexture(3553, 3553, 1); - emptyTextures[34067] = createTexture(34067, 34069, 6); // init - colorBuffer.setClear(0, 0, 0, 1); - depthBuffer.setClear(1); - stencilBuffer.setClear(0); - enable(2929); - depthBuffer.setFunc(LessEqualDepth); - setFlipSided(false); - setCullFace(CullFaceBack); - enable(2884); - setBlending(NoBlending); // - function enable(id) { - if (enabledCapabilities[id] !== true) { - gl.enable(id); - enabledCapabilities[id] = true; - } - } - function disable(id) { - if (enabledCapabilities[id] !== false) { - gl.disable(id); - enabledCapabilities[id] = false; - } - } - function useProgram(program) { - if (currentProgram !== program) { - gl.useProgram(program); - currentProgram = program; - return true; - } - return false; - } - var equationToGL = (_equationToGL = {}, _equationToGL[AddEquation] = 32774, _equationToGL[SubtractEquation] = 32778, _equationToGL[ReverseSubtractEquation] = 32779, _equationToGL); - if (isWebGL2) { - equationToGL[MinEquation] = 32775; - equationToGL[MaxEquation] = 32776; - } else { - var extension = extensions.get('EXT_blend_minmax'); - if (extension !== null) { - equationToGL[MinEquation] = extension.MIN_EXT; - equationToGL[MaxEquation] = extension.MAX_EXT; - } - } - var factorToGL = (_factorToGL = {}, _factorToGL[ZeroFactor] = 0, _factorToGL[OneFactor] = 1, _factorToGL[SrcColorFactor] = 768, _factorToGL[SrcAlphaFactor] = 770, _factorToGL[SrcAlphaSaturateFactor] = 776, _factorToGL[DstColorFactor] = 774, _factorToGL[DstAlphaFactor] = 772, _factorToGL[OneMinusSrcColorFactor] = 769, _factorToGL[OneMinusSrcAlphaFactor] = 771, _factorToGL[OneMinusDstColorFactor] = 775, _factorToGL[OneMinusDstAlphaFactor] = 773, _factorToGL); - function setBlending(blending, blendEquation, blendSrc, blendDst, blendEquationAlpha, blendSrcAlpha, blendDstAlpha, premultipliedAlpha) { - if (blending === NoBlending) { - if (currentBlendingEnabled) { - disable(3042); - currentBlendingEnabled = false; - } - return; - } - if (!currentBlendingEnabled) { - enable(3042); - currentBlendingEnabled = true; - } - if (blending !== CustomBlending) { - if (blending !== currentBlending || premultipliedAlpha !== currentPremultipledAlpha) { - if (currentBlendEquation !== AddEquation || currentBlendEquationAlpha !== AddEquation) { - gl.blendEquation(32774); - currentBlendEquation = AddEquation; - currentBlendEquationAlpha = AddEquation; - } - if (premultipliedAlpha) { - switch (blending) { - case NormalBlending: - gl.blendFuncSeparate(1, 771, 1, 771); - break; - case AdditiveBlending: - gl.blendFunc(1, 1); - break; - case SubtractiveBlending: - gl.blendFuncSeparate(0, 0, 769, 771); - break; - case MultiplyBlending: - gl.blendFuncSeparate(0, 768, 0, 770); - break; - default: - console.error('THREE.WebGLState: Invalid blending: ', blending); - break; - } - } else { - switch (blending) { - case NormalBlending: - gl.blendFuncSeparate(770, 771, 1, 771); - break; - case AdditiveBlending: - gl.blendFunc(770, 1); - break; - case SubtractiveBlending: - gl.blendFunc(0, 769); - break; - case MultiplyBlending: - gl.blendFunc(0, 768); - break; - default: - console.error('THREE.WebGLState: Invalid blending: ', blending); - break; - } - } - currentBlendSrc = null; - currentBlendDst = null; - currentBlendSrcAlpha = null; - currentBlendDstAlpha = null; - currentBlending = blending; - currentPremultipledAlpha = premultipliedAlpha; - } - return; - } // custom blending - - blendEquationAlpha = blendEquationAlpha || blendEquation; - blendSrcAlpha = blendSrcAlpha || blendSrc; - blendDstAlpha = blendDstAlpha || blendDst; - if (blendEquation !== currentBlendEquation || blendEquationAlpha !== currentBlendEquationAlpha) { - gl.blendEquationSeparate(equationToGL[blendEquation], equationToGL[blendEquationAlpha]); - currentBlendEquation = blendEquation; - currentBlendEquationAlpha = blendEquationAlpha; - } - if (blendSrc !== currentBlendSrc || blendDst !== currentBlendDst || blendSrcAlpha !== currentBlendSrcAlpha || blendDstAlpha !== currentBlendDstAlpha) { - gl.blendFuncSeparate(factorToGL[blendSrc], factorToGL[blendDst], factorToGL[blendSrcAlpha], factorToGL[blendDstAlpha]); - currentBlendSrc = blendSrc; - currentBlendDst = blendDst; - currentBlendSrcAlpha = blendSrcAlpha; - currentBlendDstAlpha = blendDstAlpha; - } - currentBlending = blending; - currentPremultipledAlpha = null; - } - function setMaterial(material, frontFaceCW) { - material.side === DoubleSide ? disable(2884) : enable(2884); - var flipSided = material.side === BackSide; - if (frontFaceCW) flipSided = !flipSided; - setFlipSided(flipSided); - material.blending === NormalBlending && material.transparent === false ? setBlending(NoBlending) : setBlending(material.blending, material.blendEquation, material.blendSrc, material.blendDst, material.blendEquationAlpha, material.blendSrcAlpha, material.blendDstAlpha, material.premultipliedAlpha); - depthBuffer.setFunc(material.depthFunc); - depthBuffer.setTest(material.depthTest); - depthBuffer.setMask(material.depthWrite); - colorBuffer.setMask(material.colorWrite); - var stencilWrite = material.stencilWrite; - stencilBuffer.setTest(stencilWrite); - if (stencilWrite) { - stencilBuffer.setMask(material.stencilWriteMask); - stencilBuffer.setFunc(material.stencilFunc, material.stencilRef, material.stencilFuncMask); - stencilBuffer.setOp(material.stencilFail, material.stencilZFail, material.stencilZPass); - } - setPolygonOffset(material.polygonOffset, material.polygonOffsetFactor, material.polygonOffsetUnits); - } // - - function setFlipSided(flipSided) { - if (currentFlipSided !== flipSided) { - if (flipSided) { - gl.frontFace(2304); - } else { - gl.frontFace(2305); - } - currentFlipSided = flipSided; - } - } - function setCullFace(cullFace) { - if (cullFace !== CullFaceNone) { - enable(2884); - if (cullFace !== currentCullFace) { - if (cullFace === CullFaceBack) { - gl.cullFace(1029); - } else if (cullFace === CullFaceFront) { - gl.cullFace(1028); - } else { - gl.cullFace(1032); - } - } - } else { - disable(2884); - } - currentCullFace = cullFace; - } - function setLineWidth(width) { - if (width !== currentLineWidth) { - if (lineWidthAvailable) gl.lineWidth(width); - currentLineWidth = width; - } - } - function setPolygonOffset(polygonOffset, factor, units) { - if (polygonOffset) { - enable(32823); - if (currentPolygonOffsetFactor !== factor || currentPolygonOffsetUnits !== units) { - gl.polygonOffset(factor, units); - currentPolygonOffsetFactor = factor; - currentPolygonOffsetUnits = units; - } - } else { - disable(32823); - } - } - function setScissorTest(scissorTest) { - if (scissorTest) { - enable(3089); - } else { - disable(3089); - } - } // texture - - function activeTexture(webglSlot) { - if (webglSlot === undefined) webglSlot = 33984 + maxTextures - 1; - if (currentTextureSlot !== webglSlot) { - gl.activeTexture(webglSlot); - currentTextureSlot = webglSlot; - } - } - function bindTexture(webglType, webglTexture) { - if (currentTextureSlot === null) { - activeTexture(); - } - var boundTexture = currentBoundTextures[currentTextureSlot]; - if (boundTexture === undefined) { - boundTexture = { - type: undefined, - texture: undefined - }; - currentBoundTextures[currentTextureSlot] = boundTexture; - } - if (boundTexture.type !== webglType || boundTexture.texture !== webglTexture) { - gl.bindTexture(webglType, webglTexture || emptyTextures[webglType]); - boundTexture.type = webglType; - boundTexture.texture = webglTexture; - } - } - function unbindTexture() { - var boundTexture = currentBoundTextures[currentTextureSlot]; - if (boundTexture !== undefined && boundTexture.type !== undefined) { - gl.bindTexture(boundTexture.type, null); - boundTexture.type = undefined; - boundTexture.texture = undefined; - } - } - function compressedTexImage2D() { - try { - gl.compressedTexImage2D.apply(gl, arguments); - } catch (error) { - console.error('THREE.WebGLState:', error); - } - } - function texImage2D() { - try { - gl.texImage2D.apply(gl, arguments); - } catch (error) { - console.error('THREE.WebGLState:', error); - } - } - function texImage3D() { - try { - gl.texImage3D.apply(gl, arguments); - } catch (error) { - console.error('THREE.WebGLState:', error); - } - } // - - function scissor(scissor) { - if (currentScissor.equals(scissor) === false) { - gl.scissor(scissor.x, scissor.y, scissor.z, scissor.w); - currentScissor.copy(scissor); - } - } - function viewport(viewport) { - if (currentViewport.equals(viewport) === false) { - gl.viewport(viewport.x, viewport.y, viewport.z, viewport.w); - currentViewport.copy(viewport); - } - } // - - function reset() { - enabledCapabilities = {}; - currentTextureSlot = null; - currentBoundTextures = {}; - currentProgram = null; - currentBlendingEnabled = null; - currentBlending = null; - currentBlendEquation = null; - currentBlendSrc = null; - currentBlendDst = null; - currentBlendEquationAlpha = null; - currentBlendSrcAlpha = null; - currentBlendDstAlpha = null; - currentPremultipledAlpha = false; - currentFlipSided = null; - currentCullFace = null; - currentLineWidth = null; - currentPolygonOffsetFactor = null; - currentPolygonOffsetUnits = null; - colorBuffer.reset(); - depthBuffer.reset(); - stencilBuffer.reset(); - } - return { - buffers: { - color: colorBuffer, - depth: depthBuffer, - stencil: stencilBuffer - }, - enable: enable, - disable: disable, - useProgram: useProgram, - setBlending: setBlending, - setMaterial: setMaterial, - setFlipSided: setFlipSided, - setCullFace: setCullFace, - setLineWidth: setLineWidth, - setPolygonOffset: setPolygonOffset, - setScissorTest: setScissorTest, - activeTexture: activeTexture, - bindTexture: bindTexture, - unbindTexture: unbindTexture, - compressedTexImage2D: compressedTexImage2D, - texImage2D: texImage2D, - texImage3D: texImage3D, - scissor: scissor, - viewport: viewport, - reset: reset - }; - } - function WebGLTextures(_gl, extensions, state, properties, capabilities, utils, info) { - var _wrappingToGL, _filterToGL; - var isWebGL2 = capabilities.isWebGL2; - var maxTextures = capabilities.maxTextures; - var maxCubemapSize = capabilities.maxCubemapSize; - var maxTextureSize = capabilities.maxTextureSize; - var maxSamples = capabilities.maxSamples; - var _videoTextures = new WeakMap(); - var _canvas; // cordova iOS (as of 5.0) still uses UIWebView, which provides OffscreenCanvas, - // also OffscreenCanvas.getContext("webgl"), but not OffscreenCanvas.getContext("2d")! - // Some implementations may only implement OffscreenCanvas partially (e.g. lacking 2d). - - var useOffscreenCanvas = false; - try { - useOffscreenCanvas = typeof OffscreenCanvas !== 'undefined' && new OffscreenCanvas(1, 1).getContext('2d') !== null; - } catch (err) {// Ignore any errors - } - function createCanvas(width, height) { - // Use OffscreenCanvas when available. Specially needed in web workers - return useOffscreenCanvas ? new OffscreenCanvas(width, height) : document.createElementNS('http://www.w3.org/1999/xhtml', 'canvas'); - } - function resizeImage(image, needsPowerOfTwo, needsNewCanvas, maxSize) { - var scale = 1; // handle case if texture exceeds max size - if (image.width > maxSize || image.height > maxSize) { - scale = maxSize / Math.max(image.width, image.height); - } // only perform resize if necessary - - if (scale < 1 || needsPowerOfTwo === true) { - // only perform resize for certain image types - if (typeof HTMLImageElement !== 'undefined' && image instanceof HTMLImageElement || typeof HTMLCanvasElement !== 'undefined' && image instanceof HTMLCanvasElement || typeof ImageBitmap !== 'undefined' && image instanceof ImageBitmap) { - var floor = needsPowerOfTwo ? MathUtils.floorPowerOfTwo : Math.floor; - var width = floor(scale * image.width); - var height = floor(scale * image.height); - if (_canvas === undefined) _canvas = createCanvas(width, height); // cube textures can't reuse the same canvas - var canvas = needsNewCanvas ? createCanvas(width, height) : _canvas; - canvas.width = width; - canvas.height = height; - var context = canvas.getContext('2d'); - context.drawImage(image, 0, 0, width, height); - console.warn('THREE.WebGLRenderer: Texture has been resized from (' + image.width + 'x' + image.height + ') to (' + width + 'x' + height + ').'); - return canvas; - } else { - if ('data' in image) { - console.warn('THREE.WebGLRenderer: Image in DataTexture is too big (' + image.width + 'x' + image.height + ').'); - } - return image; - } - } - return image; - } - function isPowerOfTwo(image) { - return MathUtils.isPowerOfTwo(image.width) && MathUtils.isPowerOfTwo(image.height); - } - function textureNeedsPowerOfTwo(texture) { - if (isWebGL2) return false; - return texture.wrapS !== ClampToEdgeWrapping || texture.wrapT !== ClampToEdgeWrapping || texture.minFilter !== NearestFilter && texture.minFilter !== LinearFilter; - } - function textureNeedsGenerateMipmaps(texture, supportsMips) { - return texture.generateMipmaps && supportsMips && texture.minFilter !== NearestFilter && texture.minFilter !== LinearFilter; - } - function generateMipmap(target, texture, width, height) { - _gl.generateMipmap(target); - var textureProperties = properties.get(texture); // Note: Math.log( x ) * Math.LOG2E used instead of Math.log2( x ) which is not supported by IE11 - textureProperties.__maxMipLevel = Math.log(Math.max(width, height)) * Math.LOG2E; - } - function getInternalFormat(internalFormatName, glFormat, glType) { - if (isWebGL2 === false) return glFormat; - if (internalFormatName !== null) { - if (_gl[internalFormatName] !== undefined) return _gl[internalFormatName]; - console.warn('THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format \'' + internalFormatName + '\''); - } - var internalFormat = glFormat; - if (glFormat === 6403) { - if (glType === 5126) internalFormat = 33326; - if (glType === 5131) internalFormat = 33325; - if (glType === 5121) internalFormat = 33321; - } - if (glFormat === 6407) { - if (glType === 5126) internalFormat = 34837; - if (glType === 5131) internalFormat = 34843; - if (glType === 5121) internalFormat = 32849; - } - if (glFormat === 6408) { - if (glType === 5126) internalFormat = 34836; - if (glType === 5131) internalFormat = 34842; - if (glType === 5121) internalFormat = 32856; - } - if (internalFormat === 33325 || internalFormat === 33326 || internalFormat === 34842 || internalFormat === 34836) { - extensions.get('EXT_color_buffer_float'); - } - return internalFormat; - } // Fallback filters for non-power-of-2 textures - - function filterFallback(f) { - if (f === NearestFilter || f === NearestMipmapNearestFilter || f === NearestMipmapLinearFilter) { - return 9728; - } - return 9729; - } // - - function onTextureDispose(event) { - var texture = event.target; - texture.removeEventListener('dispose', onTextureDispose); - deallocateTexture(texture); - if (texture.isVideoTexture) { - _videoTextures.delete(texture); - } - info.memory.textures--; - } - function onRenderTargetDispose(event) { - var renderTarget = event.target; - renderTarget.removeEventListener('dispose', onRenderTargetDispose); - deallocateRenderTarget(renderTarget); - info.memory.textures--; - } // - - function deallocateTexture(texture) { - var textureProperties = properties.get(texture); - if (textureProperties.__webglInit === undefined) return; - _gl.deleteTexture(textureProperties.__webglTexture); - properties.remove(texture); - } - function deallocateRenderTarget(renderTarget) { - var renderTargetProperties = properties.get(renderTarget); - var textureProperties = properties.get(renderTarget.texture); - if (!renderTarget) return; - if (textureProperties.__webglTexture !== undefined) { - _gl.deleteTexture(textureProperties.__webglTexture); - } - if (renderTarget.depthTexture) { - renderTarget.depthTexture.dispose(); - } - if (renderTarget.isWebGLCubeRenderTarget) { - for (var i = 0; i < 6; i++) { - _gl.deleteFramebuffer(renderTargetProperties.__webglFramebuffer[i]); - if (renderTargetProperties.__webglDepthbuffer) _gl.deleteRenderbuffer(renderTargetProperties.__webglDepthbuffer[i]); - } - } else { - _gl.deleteFramebuffer(renderTargetProperties.__webglFramebuffer); - if (renderTargetProperties.__webglDepthbuffer) _gl.deleteRenderbuffer(renderTargetProperties.__webglDepthbuffer); - if (renderTargetProperties.__webglMultisampledFramebuffer) _gl.deleteFramebuffer(renderTargetProperties.__webglMultisampledFramebuffer); - if (renderTargetProperties.__webglColorRenderbuffer) _gl.deleteRenderbuffer(renderTargetProperties.__webglColorRenderbuffer); - if (renderTargetProperties.__webglDepthRenderbuffer) _gl.deleteRenderbuffer(renderTargetProperties.__webglDepthRenderbuffer); - } - properties.remove(renderTarget.texture); - properties.remove(renderTarget); - } // - - var textureUnits = 0; - function resetTextureUnits() { - textureUnits = 0; - } - function allocateTextureUnit() { - var textureUnit = textureUnits; - if (textureUnit >= maxTextures) { - console.warn('THREE.WebGLTextures: Trying to use ' + textureUnit + ' texture units while this GPU supports only ' + maxTextures); - } - textureUnits += 1; - return textureUnit; - } // - - function setTexture2D(texture, slot) { - var textureProperties = properties.get(texture); - if (texture.isVideoTexture) updateVideoTexture(texture); - if (texture.version > 0 && textureProperties.__version !== texture.version) { - var image = texture.image; - if (image === undefined) { - console.warn('THREE.WebGLRenderer: Texture marked for update but image is undefined'); - } else if (image.complete === false) { - console.warn('THREE.WebGLRenderer: Texture marked for update but image is incomplete'); - } else { - uploadTexture(textureProperties, texture, slot); - return; - } - } - state.activeTexture(33984 + slot); - state.bindTexture(3553, textureProperties.__webglTexture); - } - function setTexture2DArray(texture, slot) { - var textureProperties = properties.get(texture); - if (texture.version > 0 && textureProperties.__version !== texture.version) { - uploadTexture(textureProperties, texture, slot); - return; - } - state.activeTexture(33984 + slot); - state.bindTexture(35866, textureProperties.__webglTexture); - } - function setTexture3D(texture, slot) { - var textureProperties = properties.get(texture); - if (texture.version > 0 && textureProperties.__version !== texture.version) { - uploadTexture(textureProperties, texture, slot); - return; - } - state.activeTexture(33984 + slot); - state.bindTexture(32879, textureProperties.__webglTexture); - } - function setTextureCube(texture, slot) { - var textureProperties = properties.get(texture); - if (texture.version > 0 && textureProperties.__version !== texture.version) { - uploadCubeTexture(textureProperties, texture, slot); - return; - } - state.activeTexture(33984 + slot); - state.bindTexture(34067, textureProperties.__webglTexture); - } - var wrappingToGL = (_wrappingToGL = {}, _wrappingToGL[RepeatWrapping] = 10497, _wrappingToGL[ClampToEdgeWrapping] = 33071, _wrappingToGL[MirroredRepeatWrapping] = 33648, _wrappingToGL); - var filterToGL = (_filterToGL = {}, _filterToGL[NearestFilter] = 9728, _filterToGL[NearestMipmapNearestFilter] = 9984, _filterToGL[NearestMipmapLinearFilter] = 9986, _filterToGL[LinearFilter] = 9729, _filterToGL[LinearMipmapNearestFilter] = 9985, _filterToGL[LinearMipmapLinearFilter] = 9987, _filterToGL); - function setTextureParameters(textureType, texture, supportsMips) { - if (supportsMips) { - _gl.texParameteri(textureType, 10242, wrappingToGL[texture.wrapS]); - _gl.texParameteri(textureType, 10243, wrappingToGL[texture.wrapT]); - if (textureType === 32879 || textureType === 35866) { - _gl.texParameteri(textureType, 32882, wrappingToGL[texture.wrapR]); - } - _gl.texParameteri(textureType, 10240, filterToGL[texture.magFilter]); - _gl.texParameteri(textureType, 10241, filterToGL[texture.minFilter]); - } else { - _gl.texParameteri(textureType, 10242, 33071); - _gl.texParameteri(textureType, 10243, 33071); - if (textureType === 32879 || textureType === 35866) { - _gl.texParameteri(textureType, 32882, 33071); - } - if (texture.wrapS !== ClampToEdgeWrapping || texture.wrapT !== ClampToEdgeWrapping) { - console.warn('THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping.'); - } - _gl.texParameteri(textureType, 10240, filterFallback(texture.magFilter)); - _gl.texParameteri(textureType, 10241, filterFallback(texture.minFilter)); - if (texture.minFilter !== NearestFilter && texture.minFilter !== LinearFilter) { - console.warn('THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.'); - } - } - var extension = extensions.get('EXT_texture_filter_anisotropic'); - if (extension) { - if (texture.type === FloatType && extensions.get('OES_texture_float_linear') === null) return; - if (texture.type === HalfFloatType && (isWebGL2 || extensions.get('OES_texture_half_float_linear')) === null) return; - if (texture.anisotropy > 1 || properties.get(texture).__currentAnisotropy) { - _gl.texParameterf(textureType, extension.TEXTURE_MAX_ANISOTROPY_EXT, Math.min(texture.anisotropy, capabilities.getMaxAnisotropy())); - properties.get(texture).__currentAnisotropy = texture.anisotropy; - } - } - } - function initTexture(textureProperties, texture) { - if (textureProperties.__webglInit === undefined) { - textureProperties.__webglInit = true; - texture.addEventListener('dispose', onTextureDispose); - textureProperties.__webglTexture = _gl.createTexture(); - info.memory.textures++; - } - } - function uploadTexture(textureProperties, texture, slot) { - var textureType = 3553; - if (texture.isDataTexture2DArray) textureType = 35866; - if (texture.isDataTexture3D) textureType = 32879; - initTexture(textureProperties, texture); - state.activeTexture(33984 + slot); - state.bindTexture(textureType, textureProperties.__webglTexture); - _gl.pixelStorei(37440, texture.flipY); - _gl.pixelStorei(37441, texture.premultiplyAlpha); - _gl.pixelStorei(3317, texture.unpackAlignment); - var needsPowerOfTwo = textureNeedsPowerOfTwo(texture) && isPowerOfTwo(texture.image) === false; - var image = resizeImage(texture.image, needsPowerOfTwo, false, maxTextureSize); - var supportsMips = isPowerOfTwo(image) || isWebGL2, - glFormat = utils.convert(texture.format); - var glType = utils.convert(texture.type), - glInternalFormat = getInternalFormat(texture.internalFormat, glFormat, glType); - setTextureParameters(textureType, texture, supportsMips); - var mipmap; - var mipmaps = texture.mipmaps; - if (texture.isDepthTexture) { - // populate depth texture with dummy data - glInternalFormat = 6402; - if (isWebGL2) { - if (texture.type === FloatType) { - glInternalFormat = 36012; - } else if (texture.type === UnsignedIntType) { - glInternalFormat = 33190; - } else if (texture.type === UnsignedInt248Type) { - glInternalFormat = 35056; - } else { - glInternalFormat = 33189; // WebGL2 requires sized internalformat for glTexImage2D - } - } else { - if (texture.type === FloatType) { - console.error('WebGLRenderer: Floating point depth texture requires WebGL2.'); - } - } // validation checks for WebGL 1 - - if (texture.format === DepthFormat && glInternalFormat === 6402) { - // The error INVALID_OPERATION is generated by texImage2D if format and internalformat are - // DEPTH_COMPONENT and type is not UNSIGNED_SHORT or UNSIGNED_INT - // (https://www.khronos.org/registry/webgl/extensions/WEBGL_depth_texture/) - if (texture.type !== UnsignedShortType && texture.type !== UnsignedIntType) { - console.warn('THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture.'); - texture.type = UnsignedShortType; - glType = utils.convert(texture.type); - } - } - if (texture.format === DepthStencilFormat && glInternalFormat === 6402) { - // Depth stencil textures need the DEPTH_STENCIL internal format - // (https://www.khronos.org/registry/webgl/extensions/WEBGL_depth_texture/) - glInternalFormat = 34041; // The error INVALID_OPERATION is generated by texImage2D if format and internalformat are - // DEPTH_STENCIL and type is not UNSIGNED_INT_24_8_WEBGL. - // (https://www.khronos.org/registry/webgl/extensions/WEBGL_depth_texture/) - if (texture.type !== UnsignedInt248Type) { - console.warn('THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture.'); - texture.type = UnsignedInt248Type; - glType = utils.convert(texture.type); - } - } // - - state.texImage2D(3553, 0, glInternalFormat, image.width, image.height, 0, glFormat, glType, null); - } else if (texture.isDataTexture) { - // use manually created mipmaps if available - // if there are no manual mipmaps - // set 0 level mipmap and then use GL to generate other mipmap levels - if (mipmaps.length > 0 && supportsMips) { - for (var i = 0, il = mipmaps.length; i < il; i++) { - mipmap = mipmaps[i]; - state.texImage2D(3553, i, glInternalFormat, mipmap.width, mipmap.height, 0, glFormat, glType, mipmap.data); - } - texture.generateMipmaps = false; - textureProperties.__maxMipLevel = mipmaps.length - 1; - } else { - state.texImage2D(3553, 0, glInternalFormat, image.width, image.height, 0, glFormat, glType, image.data); - textureProperties.__maxMipLevel = 0; - } - } else if (texture.isCompressedTexture) { - for (var _i = 0, _il = mipmaps.length; _i < _il; _i++) { - mipmap = mipmaps[_i]; - if (texture.format !== RGBAFormat && texture.format !== RGBFormat) { - if (glFormat !== null) { - state.compressedTexImage2D(3553, _i, glInternalFormat, mipmap.width, mipmap.height, 0, mipmap.data); - } else { - console.warn('THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()'); - } - } else { - state.texImage2D(3553, _i, glInternalFormat, mipmap.width, mipmap.height, 0, glFormat, glType, mipmap.data); - } - } - textureProperties.__maxMipLevel = mipmaps.length - 1; - } else if (texture.isDataTexture2DArray) { - state.texImage3D(35866, 0, glInternalFormat, image.width, image.height, image.depth, 0, glFormat, glType, image.data); - textureProperties.__maxMipLevel = 0; - } else if (texture.isDataTexture3D) { - state.texImage3D(32879, 0, glInternalFormat, image.width, image.height, image.depth, 0, glFormat, glType, image.data); - textureProperties.__maxMipLevel = 0; - } else { - // regular Texture (image, video, canvas) - // use manually created mipmaps if available - // if there are no manual mipmaps - // set 0 level mipmap and then use GL to generate other mipmap levels - if (mipmaps.length > 0 && supportsMips) { - for (var _i2 = 0, _il2 = mipmaps.length; _i2 < _il2; _i2++) { - mipmap = mipmaps[_i2]; - state.texImage2D(3553, _i2, glInternalFormat, glFormat, glType, mipmap); - } - texture.generateMipmaps = false; - textureProperties.__maxMipLevel = mipmaps.length - 1; - } else { - state.texImage2D(3553, 0, glInternalFormat, glFormat, glType, image); - textureProperties.__maxMipLevel = 0; - } - } - if (textureNeedsGenerateMipmaps(texture, supportsMips)) { - generateMipmap(textureType, texture, image.width, image.height); - } - textureProperties.__version = texture.version; - if (texture.onUpdate) texture.onUpdate(texture); - } - function uploadCubeTexture(textureProperties, texture, slot) { - if (texture.image.length !== 6) return; - initTexture(textureProperties, texture); - state.activeTexture(33984 + slot); - state.bindTexture(34067, textureProperties.__webglTexture); - _gl.pixelStorei(37440, texture.flipY); - var isCompressed = texture && (texture.isCompressedTexture || texture.image[0].isCompressedTexture); - var isDataTexture = texture.image[0] && texture.image[0].isDataTexture; - var cubeImage = []; - for (var i = 0; i < 6; i++) { - if (!isCompressed && !isDataTexture) { - cubeImage[i] = resizeImage(texture.image[i], false, true, maxCubemapSize); - } else { - cubeImage[i] = isDataTexture ? texture.image[i].image : texture.image[i]; - } - } - var image = cubeImage[0], - supportsMips = isPowerOfTwo(image) || isWebGL2, - glFormat = utils.convert(texture.format), - glType = utils.convert(texture.type), - glInternalFormat = getInternalFormat(texture.internalFormat, glFormat, glType); - setTextureParameters(34067, texture, supportsMips); - var mipmaps; - if (isCompressed) { - for (var _i3 = 0; _i3 < 6; _i3++) { - mipmaps = cubeImage[_i3].mipmaps; - for (var j = 0; j < mipmaps.length; j++) { - var mipmap = mipmaps[j]; - if (texture.format !== RGBAFormat && texture.format !== RGBFormat) { - if (glFormat !== null) { - state.compressedTexImage2D(34069 + _i3, j, glInternalFormat, mipmap.width, mipmap.height, 0, mipmap.data); - } else { - console.warn('THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()'); - } - } else { - state.texImage2D(34069 + _i3, j, glInternalFormat, mipmap.width, mipmap.height, 0, glFormat, glType, mipmap.data); - } - } - } - textureProperties.__maxMipLevel = mipmaps.length - 1; - } else { - mipmaps = texture.mipmaps; - for (var _i4 = 0; _i4 < 6; _i4++) { - if (isDataTexture) { - state.texImage2D(34069 + _i4, 0, glInternalFormat, cubeImage[_i4].width, cubeImage[_i4].height, 0, glFormat, glType, cubeImage[_i4].data); - for (var _j = 0; _j < mipmaps.length; _j++) { - var _mipmap = mipmaps[_j]; - var mipmapImage = _mipmap.image[_i4].image; - state.texImage2D(34069 + _i4, _j + 1, glInternalFormat, mipmapImage.width, mipmapImage.height, 0, glFormat, glType, mipmapImage.data); - } - } else { - state.texImage2D(34069 + _i4, 0, glInternalFormat, glFormat, glType, cubeImage[_i4]); - for (var _j2 = 0; _j2 < mipmaps.length; _j2++) { - var _mipmap2 = mipmaps[_j2]; - state.texImage2D(34069 + _i4, _j2 + 1, glInternalFormat, glFormat, glType, _mipmap2.image[_i4]); - } - } - } - textureProperties.__maxMipLevel = mipmaps.length; - } - if (textureNeedsGenerateMipmaps(texture, supportsMips)) { - // We assume images for cube map have the same size. - generateMipmap(34067, texture, image.width, image.height); - } - textureProperties.__version = texture.version; - if (texture.onUpdate) texture.onUpdate(texture); - } // Render targets - // Setup storage for target texture and bind it to correct framebuffer - - function setupFrameBufferTexture(framebuffer, renderTarget, attachment, textureTarget) { - var glFormat = utils.convert(renderTarget.texture.format); - var glType = utils.convert(renderTarget.texture.type); - var glInternalFormat = getInternalFormat(renderTarget.texture.internalFormat, glFormat, glType); - state.texImage2D(textureTarget, 0, glInternalFormat, renderTarget.width, renderTarget.height, 0, glFormat, glType, null); - _gl.bindFramebuffer(36160, framebuffer); - _gl.framebufferTexture2D(36160, attachment, textureTarget, properties.get(renderTarget.texture).__webglTexture, 0); - _gl.bindFramebuffer(36160, null); - } // Setup storage for internal depth/stencil buffers and bind to correct framebuffer - - function setupRenderBufferStorage(renderbuffer, renderTarget, isMultisample) { - _gl.bindRenderbuffer(36161, renderbuffer); - if (renderTarget.depthBuffer && !renderTarget.stencilBuffer) { - var glInternalFormat = 33189; - if (isMultisample) { - var depthTexture = renderTarget.depthTexture; - if (depthTexture && depthTexture.isDepthTexture) { - if (depthTexture.type === FloatType) { - glInternalFormat = 36012; - } else if (depthTexture.type === UnsignedIntType) { - glInternalFormat = 33190; - } - } - var samples = getRenderTargetSamples(renderTarget); - _gl.renderbufferStorageMultisample(36161, samples, glInternalFormat, renderTarget.width, renderTarget.height); - } else { - _gl.renderbufferStorage(36161, glInternalFormat, renderTarget.width, renderTarget.height); - } - _gl.framebufferRenderbuffer(36160, 36096, 36161, renderbuffer); - } else if (renderTarget.depthBuffer && renderTarget.stencilBuffer) { - if (isMultisample) { - var _samples = getRenderTargetSamples(renderTarget); - _gl.renderbufferStorageMultisample(36161, _samples, 35056, renderTarget.width, renderTarget.height); - } else { - _gl.renderbufferStorage(36161, 34041, renderTarget.width, renderTarget.height); - } - _gl.framebufferRenderbuffer(36160, 33306, 36161, renderbuffer); - } else { - var glFormat = utils.convert(renderTarget.texture.format); - var glType = utils.convert(renderTarget.texture.type); - var _glInternalFormat = getInternalFormat(renderTarget.texture.internalFormat, glFormat, glType); - if (isMultisample) { - var _samples2 = getRenderTargetSamples(renderTarget); - _gl.renderbufferStorageMultisample(36161, _samples2, _glInternalFormat, renderTarget.width, renderTarget.height); - } else { - _gl.renderbufferStorage(36161, _glInternalFormat, renderTarget.width, renderTarget.height); - } - } - _gl.bindRenderbuffer(36161, null); - } // Setup resources for a Depth Texture for a FBO (needs an extension) - - function setupDepthTexture(framebuffer, renderTarget) { - var isCube = renderTarget && renderTarget.isWebGLCubeRenderTarget; - if (isCube) throw new Error('Depth Texture with cube render targets is not supported'); - _gl.bindFramebuffer(36160, framebuffer); - if (!(renderTarget.depthTexture && renderTarget.depthTexture.isDepthTexture)) { - throw new Error('renderTarget.depthTexture must be an instance of THREE.DepthTexture'); - } // upload an empty depth texture with framebuffer size - - if (!properties.get(renderTarget.depthTexture).__webglTexture || renderTarget.depthTexture.image.width !== renderTarget.width || renderTarget.depthTexture.image.height !== renderTarget.height) { - renderTarget.depthTexture.image.width = renderTarget.width; - renderTarget.depthTexture.image.height = renderTarget.height; - renderTarget.depthTexture.needsUpdate = true; - } - setTexture2D(renderTarget.depthTexture, 0); - var webglDepthTexture = properties.get(renderTarget.depthTexture).__webglTexture; - if (renderTarget.depthTexture.format === DepthFormat) { - _gl.framebufferTexture2D(36160, 36096, 3553, webglDepthTexture, 0); - } else if (renderTarget.depthTexture.format === DepthStencilFormat) { - _gl.framebufferTexture2D(36160, 33306, 3553, webglDepthTexture, 0); - } else { - throw new Error('Unknown depthTexture format'); - } - } // Setup GL resources for a non-texture depth buffer - - function setupDepthRenderbuffer(renderTarget) { - var renderTargetProperties = properties.get(renderTarget); - var isCube = renderTarget.isWebGLCubeRenderTarget === true; - if (renderTarget.depthTexture) { - if (isCube) throw new Error('target.depthTexture not supported in Cube render targets'); - setupDepthTexture(renderTargetProperties.__webglFramebuffer, renderTarget); - } else { - if (isCube) { - renderTargetProperties.__webglDepthbuffer = []; - for (var i = 0; i < 6; i++) { - _gl.bindFramebuffer(36160, renderTargetProperties.__webglFramebuffer[i]); - renderTargetProperties.__webglDepthbuffer[i] = _gl.createRenderbuffer(); - setupRenderBufferStorage(renderTargetProperties.__webglDepthbuffer[i], renderTarget, false); - } - } else { - _gl.bindFramebuffer(36160, renderTargetProperties.__webglFramebuffer); - renderTargetProperties.__webglDepthbuffer = _gl.createRenderbuffer(); - setupRenderBufferStorage(renderTargetProperties.__webglDepthbuffer, renderTarget, false); - } - } - _gl.bindFramebuffer(36160, null); - } // Set up GL resources for the render target - - function setupRenderTarget(renderTarget) { - var renderTargetProperties = properties.get(renderTarget); - var textureProperties = properties.get(renderTarget.texture); - renderTarget.addEventListener('dispose', onRenderTargetDispose); - textureProperties.__webglTexture = _gl.createTexture(); - info.memory.textures++; - var isCube = renderTarget.isWebGLCubeRenderTarget === true; - var isMultisample = renderTarget.isWebGLMultisampleRenderTarget === true; - var supportsMips = isPowerOfTwo(renderTarget) || isWebGL2; // Handles WebGL2 RGBFormat fallback - #18858 - if (isWebGL2 && renderTarget.texture.format === RGBFormat && (renderTarget.texture.type === FloatType || renderTarget.texture.type === HalfFloatType)) { - renderTarget.texture.format = RGBAFormat; - console.warn('THREE.WebGLRenderer: Rendering to textures with RGB format is not supported. Using RGBA format instead.'); - } // Setup framebuffer - - if (isCube) { - renderTargetProperties.__webglFramebuffer = []; - for (var i = 0; i < 6; i++) { - renderTargetProperties.__webglFramebuffer[i] = _gl.createFramebuffer(); - } - } else { - renderTargetProperties.__webglFramebuffer = _gl.createFramebuffer(); - if (isMultisample) { - if (isWebGL2) { - renderTargetProperties.__webglMultisampledFramebuffer = _gl.createFramebuffer(); - renderTargetProperties.__webglColorRenderbuffer = _gl.createRenderbuffer(); - _gl.bindRenderbuffer(36161, renderTargetProperties.__webglColorRenderbuffer); - var glFormat = utils.convert(renderTarget.texture.format); - var glType = utils.convert(renderTarget.texture.type); - var glInternalFormat = getInternalFormat(renderTarget.texture.internalFormat, glFormat, glType); - var samples = getRenderTargetSamples(renderTarget); - _gl.renderbufferStorageMultisample(36161, samples, glInternalFormat, renderTarget.width, renderTarget.height); - _gl.bindFramebuffer(36160, renderTargetProperties.__webglMultisampledFramebuffer); - _gl.framebufferRenderbuffer(36160, 36064, 36161, renderTargetProperties.__webglColorRenderbuffer); - _gl.bindRenderbuffer(36161, null); - if (renderTarget.depthBuffer) { - renderTargetProperties.__webglDepthRenderbuffer = _gl.createRenderbuffer(); - setupRenderBufferStorage(renderTargetProperties.__webglDepthRenderbuffer, renderTarget, true); - } - _gl.bindFramebuffer(36160, null); - } else { - console.warn('THREE.WebGLRenderer: WebGLMultisampleRenderTarget can only be used with WebGL2.'); - } - } - } // Setup color buffer - - if (isCube) { - state.bindTexture(34067, textureProperties.__webglTexture); - setTextureParameters(34067, renderTarget.texture, supportsMips); - for (var _i5 = 0; _i5 < 6; _i5++) { - setupFrameBufferTexture(renderTargetProperties.__webglFramebuffer[_i5], renderTarget, 36064, 34069 + _i5); - } - if (textureNeedsGenerateMipmaps(renderTarget.texture, supportsMips)) { - generateMipmap(34067, renderTarget.texture, renderTarget.width, renderTarget.height); - } - state.bindTexture(34067, null); - } else { - state.bindTexture(3553, textureProperties.__webglTexture); - setTextureParameters(3553, renderTarget.texture, supportsMips); - setupFrameBufferTexture(renderTargetProperties.__webglFramebuffer, renderTarget, 36064, 3553); - if (textureNeedsGenerateMipmaps(renderTarget.texture, supportsMips)) { - generateMipmap(3553, renderTarget.texture, renderTarget.width, renderTarget.height); - } - state.bindTexture(3553, null); - } // Setup depth and stencil buffers - - if (renderTarget.depthBuffer) { - setupDepthRenderbuffer(renderTarget); - } - } - function updateRenderTargetMipmap(renderTarget) { - var texture = renderTarget.texture; - var supportsMips = isPowerOfTwo(renderTarget) || isWebGL2; - if (textureNeedsGenerateMipmaps(texture, supportsMips)) { - var target = renderTarget.isWebGLCubeRenderTarget ? 34067 : 3553; - var webglTexture = properties.get(texture).__webglTexture; - state.bindTexture(target, webglTexture); - generateMipmap(target, texture, renderTarget.width, renderTarget.height); - state.bindTexture(target, null); - } - } - function updateMultisampleRenderTarget(renderTarget) { - if (renderTarget.isWebGLMultisampleRenderTarget) { - if (isWebGL2) { - var renderTargetProperties = properties.get(renderTarget); - _gl.bindFramebuffer(36008, renderTargetProperties.__webglMultisampledFramebuffer); - _gl.bindFramebuffer(36009, renderTargetProperties.__webglFramebuffer); - var width = renderTarget.width; - var height = renderTarget.height; - var mask = 16384; - if (renderTarget.depthBuffer) mask |= 256; - if (renderTarget.stencilBuffer) mask |= 1024; - _gl.blitFramebuffer(0, 0, width, height, 0, 0, width, height, mask, 9728); - _gl.bindFramebuffer(36160, renderTargetProperties.__webglMultisampledFramebuffer); // see #18905 - } else { - console.warn('THREE.WebGLRenderer: WebGLMultisampleRenderTarget can only be used with WebGL2.'); - } - } - } - function getRenderTargetSamples(renderTarget) { - return isWebGL2 && renderTarget.isWebGLMultisampleRenderTarget ? Math.min(maxSamples, renderTarget.samples) : 0; - } - function updateVideoTexture(texture) { - var frame = info.render.frame; // Check the last frame we updated the VideoTexture - if (_videoTextures.get(texture) !== frame) { - _videoTextures.set(texture, frame); - texture.update(); - } - } // backwards compatibility - - var warnedTexture2D = false; - var warnedTextureCube = false; - function safeSetTexture2D(texture, slot) { - if (texture && texture.isWebGLRenderTarget) { - if (warnedTexture2D === false) { - console.warn('THREE.WebGLTextures.safeSetTexture2D: don\'t use render targets as textures. Use their .texture property instead.'); - warnedTexture2D = true; - } - texture = texture.texture; - } - setTexture2D(texture, slot); - } - function safeSetTextureCube(texture, slot) { - if (texture && texture.isWebGLCubeRenderTarget) { - if (warnedTextureCube === false) { - console.warn('THREE.WebGLTextures.safeSetTextureCube: don\'t use cube render targets as textures. Use their .texture property instead.'); - warnedTextureCube = true; - } - texture = texture.texture; - } - setTextureCube(texture, slot); - } // - - this.allocateTextureUnit = allocateTextureUnit; - this.resetTextureUnits = resetTextureUnits; - this.setTexture2D = setTexture2D; - this.setTexture2DArray = setTexture2DArray; - this.setTexture3D = setTexture3D; - this.setTextureCube = setTextureCube; - this.setupRenderTarget = setupRenderTarget; - this.updateRenderTargetMipmap = updateRenderTargetMipmap; - this.updateMultisampleRenderTarget = updateMultisampleRenderTarget; - this.safeSetTexture2D = safeSetTexture2D; - this.safeSetTextureCube = safeSetTextureCube; - } - function WebGLUtils(gl, extensions, capabilities) { - var isWebGL2 = capabilities.isWebGL2; - function convert(p) { - var extension; - if (p === UnsignedByteType) return 5121; - if (p === UnsignedShort4444Type) return 32819; - if (p === UnsignedShort5551Type) return 32820; - if (p === UnsignedShort565Type) return 33635; - if (p === ByteType) return 5120; - if (p === ShortType) return 5122; - if (p === UnsignedShortType) return 5123; - if (p === IntType) return 5124; - if (p === UnsignedIntType) return 5125; - if (p === FloatType) return 5126; - if (p === HalfFloatType) { - if (isWebGL2) return 5131; - extension = extensions.get('OES_texture_half_float'); - if (extension !== null) { - return extension.HALF_FLOAT_OES; - } else { - return null; - } - } - if (p === AlphaFormat) return 6406; - if (p === RGBFormat) return 6407; - if (p === RGBAFormat) return 6408; - if (p === LuminanceFormat) return 6409; - if (p === LuminanceAlphaFormat) return 6410; - if (p === DepthFormat) return 6402; - if (p === DepthStencilFormat) return 34041; - if (p === RedFormat) return 6403; // WebGL2 formats. - if (p === RedIntegerFormat) return 36244; - if (p === RGFormat) return 33319; - if (p === RGIntegerFormat) return 33320; - if (p === RGBIntegerFormat) return 36248; - if (p === RGBAIntegerFormat) return 36249; - if (p === RGB_S3TC_DXT1_Format || p === RGBA_S3TC_DXT1_Format || p === RGBA_S3TC_DXT3_Format || p === RGBA_S3TC_DXT5_Format) { - extension = extensions.get('WEBGL_compressed_texture_s3tc'); - if (extension !== null) { - if (p === RGB_S3TC_DXT1_Format) return extension.COMPRESSED_RGB_S3TC_DXT1_EXT; - if (p === RGBA_S3TC_DXT1_Format) return extension.COMPRESSED_RGBA_S3TC_DXT1_EXT; - if (p === RGBA_S3TC_DXT3_Format) return extension.COMPRESSED_RGBA_S3TC_DXT3_EXT; - if (p === RGBA_S3TC_DXT5_Format) return extension.COMPRESSED_RGBA_S3TC_DXT5_EXT; - } else { - return null; - } - } - if (p === RGB_PVRTC_4BPPV1_Format || p === RGB_PVRTC_2BPPV1_Format || p === RGBA_PVRTC_4BPPV1_Format || p === RGBA_PVRTC_2BPPV1_Format) { - extension = extensions.get('WEBGL_compressed_texture_pvrtc'); - if (extension !== null) { - if (p === RGB_PVRTC_4BPPV1_Format) return extension.COMPRESSED_RGB_PVRTC_4BPPV1_IMG; - if (p === RGB_PVRTC_2BPPV1_Format) return extension.COMPRESSED_RGB_PVRTC_2BPPV1_IMG; - if (p === RGBA_PVRTC_4BPPV1_Format) return extension.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG; - if (p === RGBA_PVRTC_2BPPV1_Format) return extension.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG; - } else { - return null; - } - } - if (p === RGB_ETC1_Format) { - extension = extensions.get('WEBGL_compressed_texture_etc1'); - if (extension !== null) { - return extension.COMPRESSED_RGB_ETC1_WEBGL; - } else { - return null; - } - } - if (p === RGB_ETC2_Format || p === RGBA_ETC2_EAC_Format) { - extension = extensions.get('WEBGL_compressed_texture_etc'); - if (extension !== null) { - if (p === RGB_ETC2_Format) return extension.COMPRESSED_RGB8_ETC2; - if (p === RGBA_ETC2_EAC_Format) return extension.COMPRESSED_RGBA8_ETC2_EAC; - } - } - if (p === RGBA_ASTC_4x4_Format || p === RGBA_ASTC_5x4_Format || p === RGBA_ASTC_5x5_Format || p === RGBA_ASTC_6x5_Format || p === RGBA_ASTC_6x6_Format || p === RGBA_ASTC_8x5_Format || p === RGBA_ASTC_8x6_Format || p === RGBA_ASTC_8x8_Format || p === RGBA_ASTC_10x5_Format || p === RGBA_ASTC_10x6_Format || p === RGBA_ASTC_10x8_Format || p === RGBA_ASTC_10x10_Format || p === RGBA_ASTC_12x10_Format || p === RGBA_ASTC_12x12_Format || p === SRGB8_ALPHA8_ASTC_4x4_Format || p === SRGB8_ALPHA8_ASTC_5x4_Format || p === SRGB8_ALPHA8_ASTC_5x5_Format || p === SRGB8_ALPHA8_ASTC_6x5_Format || p === SRGB8_ALPHA8_ASTC_6x6_Format || p === SRGB8_ALPHA8_ASTC_8x5_Format || p === SRGB8_ALPHA8_ASTC_8x6_Format || p === SRGB8_ALPHA8_ASTC_8x8_Format || p === SRGB8_ALPHA8_ASTC_10x5_Format || p === SRGB8_ALPHA8_ASTC_10x6_Format || p === SRGB8_ALPHA8_ASTC_10x8_Format || p === SRGB8_ALPHA8_ASTC_10x10_Format || p === SRGB8_ALPHA8_ASTC_12x10_Format || p === SRGB8_ALPHA8_ASTC_12x12_Format) { - extension = extensions.get('WEBGL_compressed_texture_astc'); - if (extension !== null) { - // TODO Complete? - return p; - } else { - return null; - } - } - if (p === RGBA_BPTC_Format) { - extension = extensions.get('EXT_texture_compression_bptc'); - if (extension !== null) { - // TODO Complete? - return p; - } else { - return null; - } - } - if (p === UnsignedInt248Type) { - if (isWebGL2) return 34042; - extension = extensions.get('WEBGL_depth_texture'); - if (extension !== null) { - return extension.UNSIGNED_INT_24_8_WEBGL; - } else { - return null; - } - } - } - return { - convert: convert - }; - } - function ArrayCamera(array) { - if (array === void 0) { - array = []; - } - PerspectiveCamera.call(this); - this.cameras = array; - } - ArrayCamera.prototype = Object.assign(Object.create(PerspectiveCamera.prototype), { - constructor: ArrayCamera, - isArrayCamera: true - }); - function Group() { - Object3D.call(this); - this.type = 'Group'; - } - Group.prototype = Object.assign(Object.create(Object3D.prototype), { - constructor: Group, - isGroup: true - }); - function WebXRController() { - this._targetRay = null; - this._grip = null; - this._hand = null; - } - Object.assign(WebXRController.prototype, { - constructor: WebXRController, - getHandSpace: function getHandSpace() { - if (this._hand === null) { - this._hand = new Group(); - this._hand.matrixAutoUpdate = false; - this._hand.visible = false; - this._hand.joints = []; - this._hand.inputState = { - pinching: false - }; - if (window.XRHand) { - for (var i = 0; i <= window.XRHand.LITTLE_PHALANX_TIP; i++) { - // The transform of this joint will be updated with the joint pose on each frame - var joint = new Group(); - joint.matrixAutoUpdate = false; - joint.visible = false; - this._hand.joints.push(joint); // ?? - - this._hand.add(joint); - } - } - } - return this._hand; - }, - getTargetRaySpace: function getTargetRaySpace() { - if (this._targetRay === null) { - this._targetRay = new Group(); - this._targetRay.matrixAutoUpdate = false; - this._targetRay.visible = false; - } - return this._targetRay; - }, - getGripSpace: function getGripSpace() { - if (this._grip === null) { - this._grip = new Group(); - this._grip.matrixAutoUpdate = false; - this._grip.visible = false; - } - return this._grip; - }, - dispatchEvent: function dispatchEvent(event) { - if (this._targetRay !== null) { - this._targetRay.dispatchEvent(event); - } - if (this._grip !== null) { - this._grip.dispatchEvent(event); - } - if (this._hand !== null) { - this._hand.dispatchEvent(event); - } - return this; - }, - disconnect: function disconnect(inputSource) { - this.dispatchEvent({ - type: 'disconnected', - data: inputSource - }); - if (this._targetRay !== null) { - this._targetRay.visible = false; - } - if (this._grip !== null) { - this._grip.visible = false; - } - if (this._hand !== null) { - this._hand.visible = false; - } - return this; - }, - update: function update(inputSource, frame, referenceSpace) { - var inputPose = null; - var gripPose = null; - var handPose = null; - var targetRay = this._targetRay; - var grip = this._grip; - var hand = this._hand; - if (inputSource && frame.session.visibilityState !== 'visible-blurred') { - if (hand && inputSource.hand) { - handPose = true; - for (var i = 0; i <= window.XRHand.LITTLE_PHALANX_TIP; i++) { - if (inputSource.hand[i]) { - // Update the joints groups with the XRJoint poses - var jointPose = frame.getJointPose(inputSource.hand[i], referenceSpace); - var joint = hand.joints[i]; - if (jointPose !== null) { - joint.matrix.fromArray(jointPose.transform.matrix); - joint.matrix.decompose(joint.position, joint.rotation, joint.scale); - joint.jointRadius = jointPose.radius; - } - joint.visible = jointPose !== null; // Custom events - // Check pinch - var indexTip = hand.joints[window.XRHand.INDEX_PHALANX_TIP]; - var thumbTip = hand.joints[window.XRHand.THUMB_PHALANX_TIP]; - var distance = indexTip.position.distanceTo(thumbTip.position); - var distanceToPinch = 0.02; - var threshold = 0.005; - if (hand.inputState.pinching && distance > distanceToPinch + threshold) { - hand.inputState.pinching = false; - this.dispatchEvent({ - type: 'pinchend', - handedness: inputSource.handedness, - target: this - }); - } else if (!hand.inputState.pinching && distance <= distanceToPinch - threshold) { - hand.inputState.pinching = true; - this.dispatchEvent({ - type: 'pinchstart', - handedness: inputSource.handedness, - target: this - }); - } - } - } - } else { - if (targetRay !== null) { - inputPose = frame.getPose(inputSource.targetRaySpace, referenceSpace); - if (inputPose !== null) { - targetRay.matrix.fromArray(inputPose.transform.matrix); - targetRay.matrix.decompose(targetRay.position, targetRay.rotation, targetRay.scale); - } - } - if (grip !== null && inputSource.gripSpace) { - gripPose = frame.getPose(inputSource.gripSpace, referenceSpace); - if (gripPose !== null) { - grip.matrix.fromArray(gripPose.transform.matrix); - grip.matrix.decompose(grip.position, grip.rotation, grip.scale); - } - } - } - } - if (targetRay !== null) { - targetRay.visible = inputPose !== null; - } - if (grip !== null) { - grip.visible = gripPose !== null; - } - if (hand !== null) { - hand.visible = handPose !== null; - } - return this; - } - }); - function WebXRManager(renderer, gl) { - var scope = this; - var session = null; - var framebufferScaleFactor = 1.0; - var referenceSpace = null; - var referenceSpaceType = 'local-floor'; - var pose = null; - var controllers = []; - var inputSourcesMap = new Map(); // - var cameraL = new PerspectiveCamera(); - cameraL.layers.enable(1); - cameraL.viewport = new Vector4(); - var cameraR = new PerspectiveCamera(); - cameraR.layers.enable(2); - cameraR.viewport = new Vector4(); - var cameras = [cameraL, cameraR]; - var cameraVR = new ArrayCamera(); - cameraVR.layers.enable(1); - cameraVR.layers.enable(2); - var _currentDepthNear = null; - var _currentDepthFar = null; // - this.enabled = false; - this.isPresenting = false; - this.getController = function (index) { - var controller = controllers[index]; - if (controller === undefined) { - controller = new WebXRController(); - controllers[index] = controller; - } - return controller.getTargetRaySpace(); - }; - this.getControllerGrip = function (index) { - var controller = controllers[index]; - if (controller === undefined) { - controller = new WebXRController(); - controllers[index] = controller; - } - return controller.getGripSpace(); - }; - this.getHand = function (index) { - var controller = controllers[index]; - if (controller === undefined) { - controller = new WebXRController(); - controllers[index] = controller; - } - return controller.getHandSpace(); - }; // - - function onSessionEvent(event) { - var controller = inputSourcesMap.get(event.inputSource); - if (controller) { - controller.dispatchEvent({ - type: event.type, - data: event.inputSource - }); - } - } - function onSessionEnd() { - inputSourcesMap.forEach(function (controller, inputSource) { - controller.disconnect(inputSource); - }); - inputSourcesMap.clear(); // - renderer.setFramebuffer(null); - renderer.setRenderTarget(renderer.getRenderTarget()); // Hack #15830 - animation.stop(); - scope.isPresenting = false; - scope.dispatchEvent({ - type: 'sessionend' - }); - } - function onRequestReferenceSpace(value) { - referenceSpace = value; - animation.setContext(session); - animation.start(); - scope.isPresenting = true; - scope.dispatchEvent({ - type: 'sessionstart' - }); - } - this.setFramebufferScaleFactor = function (value) { - framebufferScaleFactor = value; - if (scope.isPresenting === true) { - console.warn('THREE.WebXRManager: Cannot change framebuffer scale while presenting.'); - } - }; - this.setReferenceSpaceType = function (value) { - referenceSpaceType = value; - if (scope.isPresenting === true) { - console.warn('THREE.WebXRManager: Cannot change reference space type while presenting.'); - } - }; - this.getReferenceSpace = function () { - return referenceSpace; - }; - this.getSession = function () { - return session; - }; - this.setSession = function (value) { - session = value; - if (session !== null) { - session.addEventListener('select', onSessionEvent); - session.addEventListener('selectstart', onSessionEvent); - session.addEventListener('selectend', onSessionEvent); - session.addEventListener('squeeze', onSessionEvent); - session.addEventListener('squeezestart', onSessionEvent); - session.addEventListener('squeezeend', onSessionEvent); - session.addEventListener('end', onSessionEnd); - var attributes = gl.getContextAttributes(); - if (attributes.xrCompatible !== true) { - gl.makeXRCompatible(); - } - var layerInit = { - antialias: attributes.antialias, - alpha: attributes.alpha, - depth: attributes.depth, - stencil: attributes.stencil, - framebufferScaleFactor: framebufferScaleFactor - }; // eslint-disable-next-line no-undef - var baseLayer = new XRWebGLLayer(session, gl, layerInit); - session.updateRenderState({ - baseLayer: baseLayer - }); - session.requestReferenceSpace(referenceSpaceType).then(onRequestReferenceSpace); // - session.addEventListener('inputsourceschange', updateInputSources); - } - }; - function updateInputSources(event) { - var inputSources = session.inputSources; // Assign inputSources to available controllers - for (var i = 0; i < controllers.length; i++) { - inputSourcesMap.set(inputSources[i], controllers[i]); - } // Notify disconnected - - for (var _i = 0; _i < event.removed.length; _i++) { - var inputSource = event.removed[_i]; - var controller = inputSourcesMap.get(inputSource); - if (controller) { - controller.dispatchEvent({ - type: 'disconnected', - data: inputSource - }); - inputSourcesMap.delete(inputSource); - } - } // Notify connected - - for (var _i2 = 0; _i2 < event.added.length; _i2++) { - var _inputSource = event.added[_i2]; - var _controller = inputSourcesMap.get(_inputSource); - if (_controller) { - _controller.dispatchEvent({ - type: 'connected', - data: _inputSource - }); - } - } - } // - - var cameraLPos = new Vector3(); - var cameraRPos = new Vector3(); - /** - * Assumes 2 cameras that are parallel and share an X-axis, and that - * the cameras' projection and world matrices have already been set. - * And that near and far planes are identical for both cameras. - * Visualization of this technique: https://computergraphics.stackexchange.com/a/4765 - */ - function setProjectionFromUnion(camera, cameraL, cameraR) { - cameraLPos.setFromMatrixPosition(cameraL.matrixWorld); - cameraRPos.setFromMatrixPosition(cameraR.matrixWorld); - var ipd = cameraLPos.distanceTo(cameraRPos); - var projL = cameraL.projectionMatrix.elements; - var projR = cameraR.projectionMatrix.elements; // VR systems will have identical far and near planes, and - // most likely identical top and bottom frustum extents. - // Use the left camera for these values. - var near = projL[14] / (projL[10] - 1); - var far = projL[14] / (projL[10] + 1); - var topFov = (projL[9] + 1) / projL[5]; - var bottomFov = (projL[9] - 1) / projL[5]; - var leftFov = (projL[8] - 1) / projL[0]; - var rightFov = (projR[8] + 1) / projR[0]; - var left = near * leftFov; - var right = near * rightFov; // Calculate the new camera's position offset from the - // left camera. xOffset should be roughly half `ipd`. - var zOffset = ipd / (-leftFov + rightFov); - var xOffset = zOffset * -leftFov; // TODO: Better way to apply this offset? - cameraL.matrixWorld.decompose(camera.position, camera.quaternion, camera.scale); - camera.translateX(xOffset); - camera.translateZ(zOffset); - camera.matrixWorld.compose(camera.position, camera.quaternion, camera.scale); - camera.matrixWorldInverse.copy(camera.matrixWorld).invert(); // Find the union of the frustum values of the cameras and scale - // the values so that the near plane's position does not change in world space, - // although must now be relative to the new union camera. - var near2 = near + zOffset; - var far2 = far + zOffset; - var left2 = left - xOffset; - var right2 = right + (ipd - xOffset); - var top2 = topFov * far / far2 * near2; - var bottom2 = bottomFov * far / far2 * near2; - camera.projectionMatrix.makePerspective(left2, right2, top2, bottom2, near2, far2); - } - function updateCamera(camera, parent) { - if (parent === null) { - camera.matrixWorld.copy(camera.matrix); - } else { - camera.matrixWorld.multiplyMatrices(parent.matrixWorld, camera.matrix); - } - camera.matrixWorldInverse.copy(camera.matrixWorld).invert(); - } - this.getCamera = function (camera) { - cameraVR.near = cameraR.near = cameraL.near = camera.near; - cameraVR.far = cameraR.far = cameraL.far = camera.far; - if (_currentDepthNear !== cameraVR.near || _currentDepthFar !== cameraVR.far) { - // Note that the new renderState won't apply until the next frame. See #18320 - session.updateRenderState({ - depthNear: cameraVR.near, - depthFar: cameraVR.far - }); - _currentDepthNear = cameraVR.near; - _currentDepthFar = cameraVR.far; - } - var parent = camera.parent; - var cameras = cameraVR.cameras; - updateCamera(cameraVR, parent); - for (var i = 0; i < cameras.length; i++) { - updateCamera(cameras[i], parent); - } // update camera and its children - - camera.matrixWorld.copy(cameraVR.matrixWorld); - var children = camera.children; - for (var _i3 = 0, l = children.length; _i3 < l; _i3++) { - children[_i3].updateMatrixWorld(true); - } // update projection matrix for proper view frustum culling - - if (cameras.length === 2) { - setProjectionFromUnion(cameraVR, cameraL, cameraR); - } else { - // assume single camera setup (AR) - cameraVR.projectionMatrix.copy(cameraL.projectionMatrix); - } - return cameraVR; - }; // Animation Loop - - var onAnimationFrameCallback = null; - function onAnimationFrame(time, frame) { - pose = frame.getViewerPose(referenceSpace); - if (pose !== null) { - var views = pose.views; - var baseLayer = session.renderState.baseLayer; - renderer.setFramebuffer(baseLayer.framebuffer); - var cameraVRNeedsUpdate = false; // check if it's necessary to rebuild cameraVR's camera list - if (views.length !== cameraVR.cameras.length) { - cameraVR.cameras.length = 0; - cameraVRNeedsUpdate = true; - } - for (var i = 0; i < views.length; i++) { - var view = views[i]; - var viewport = baseLayer.getViewport(view); - var camera = cameras[i]; - camera.matrix.fromArray(view.transform.matrix); - camera.projectionMatrix.fromArray(view.projectionMatrix); - camera.viewport.set(viewport.x, viewport.y, viewport.width, viewport.height); - if (i === 0) { - cameraVR.matrix.copy(camera.matrix); - } - if (cameraVRNeedsUpdate === true) { - cameraVR.cameras.push(camera); - } - } - } // - - var inputSources = session.inputSources; - for (var _i4 = 0; _i4 < controllers.length; _i4++) { - var controller = controllers[_i4]; - var inputSource = inputSources[_i4]; - controller.update(inputSource, frame, referenceSpace); - } - if (onAnimationFrameCallback) onAnimationFrameCallback(time, frame); - } - var animation = new WebGLAnimation(); - animation.setAnimationLoop(onAnimationFrame); - this.setAnimationLoop = function (callback) { - onAnimationFrameCallback = callback; - }; - this.dispose = function () {}; - } - Object.assign(WebXRManager.prototype, EventDispatcher.prototype); - function WebGLMaterials(properties) { - function refreshFogUniforms(uniforms, fog) { - uniforms.fogColor.value.copy(fog.color); - if (fog.isFog) { - uniforms.fogNear.value = fog.near; - uniforms.fogFar.value = fog.far; - } else if (fog.isFogExp2) { - uniforms.fogDensity.value = fog.density; - } - } - function refreshMaterialUniforms(uniforms, material, pixelRatio, height) { - if (material.isMeshBasicMaterial) { - refreshUniformsCommon(uniforms, material); - } else if (material.isMeshLambertMaterial) { - refreshUniformsCommon(uniforms, material); - refreshUniformsLambert(uniforms, material); - } else if (material.isMeshToonMaterial) { - refreshUniformsCommon(uniforms, material); - refreshUniformsToon(uniforms, material); - } else if (material.isMeshPhongMaterial) { - refreshUniformsCommon(uniforms, material); - refreshUniformsPhong(uniforms, material); - } else if (material.isMeshStandardMaterial) { - refreshUniformsCommon(uniforms, material); - if (material.isMeshPhysicalMaterial) { - refreshUniformsPhysical(uniforms, material); - } else { - refreshUniformsStandard(uniforms, material); - } - } else if (material.isMeshMatcapMaterial) { - refreshUniformsCommon(uniforms, material); - refreshUniformsMatcap(uniforms, material); - } else if (material.isMeshDepthMaterial) { - refreshUniformsCommon(uniforms, material); - refreshUniformsDepth(uniforms, material); - } else if (material.isMeshDistanceMaterial) { - refreshUniformsCommon(uniforms, material); - refreshUniformsDistance(uniforms, material); - } else if (material.isMeshNormalMaterial) { - refreshUniformsCommon(uniforms, material); - refreshUniformsNormal(uniforms, material); - } else if (material.isLineBasicMaterial) { - refreshUniformsLine(uniforms, material); - if (material.isLineDashedMaterial) { - refreshUniformsDash(uniforms, material); - } - } else if (material.isPointsMaterial) { - refreshUniformsPoints(uniforms, material, pixelRatio, height); - } else if (material.isSpriteMaterial) { - refreshUniformsSprites(uniforms, material); - } else if (material.isShadowMaterial) { - uniforms.color.value.copy(material.color); - uniforms.opacity.value = material.opacity; - } else if (material.isShaderMaterial) { - material.uniformsNeedUpdate = false; // #15581 - } - } - function refreshUniformsCommon(uniforms, material) { - uniforms.opacity.value = material.opacity; - if (material.color) { - uniforms.diffuse.value.copy(material.color); - } - if (material.emissive) { - uniforms.emissive.value.copy(material.emissive).multiplyScalar(material.emissiveIntensity); - } - if (material.map) { - uniforms.map.value = material.map; - } - if (material.alphaMap) { - uniforms.alphaMap.value = material.alphaMap; - } - if (material.specularMap) { - uniforms.specularMap.value = material.specularMap; - } - var envMap = properties.get(material).envMap; - if (envMap) { - uniforms.envMap.value = envMap; - uniforms.flipEnvMap.value = envMap.isCubeTexture && envMap._needsFlipEnvMap ? -1 : 1; - uniforms.reflectivity.value = material.reflectivity; - uniforms.refractionRatio.value = material.refractionRatio; - var maxMipLevel = properties.get(envMap).__maxMipLevel; - if (maxMipLevel !== undefined) { - uniforms.maxMipLevel.value = maxMipLevel; - } - } - if (material.lightMap) { - uniforms.lightMap.value = material.lightMap; - uniforms.lightMapIntensity.value = material.lightMapIntensity; - } - if (material.aoMap) { - uniforms.aoMap.value = material.aoMap; - uniforms.aoMapIntensity.value = material.aoMapIntensity; - } // uv repeat and offset setting priorities - // 1. color map - // 2. specular map - // 3. displacementMap map - // 4. normal map - // 5. bump map - // 6. roughnessMap map - // 7. metalnessMap map - // 8. alphaMap map - // 9. emissiveMap map - // 10. clearcoat map - // 11. clearcoat normal map - // 12. clearcoat roughnessMap map - - var uvScaleMap; - if (material.map) { - uvScaleMap = material.map; - } else if (material.specularMap) { - uvScaleMap = material.specularMap; - } else if (material.displacementMap) { - uvScaleMap = material.displacementMap; - } else if (material.normalMap) { - uvScaleMap = material.normalMap; - } else if (material.bumpMap) { - uvScaleMap = material.bumpMap; - } else if (material.roughnessMap) { - uvScaleMap = material.roughnessMap; - } else if (material.metalnessMap) { - uvScaleMap = material.metalnessMap; - } else if (material.alphaMap) { - uvScaleMap = material.alphaMap; - } else if (material.emissiveMap) { - uvScaleMap = material.emissiveMap; - } else if (material.clearcoatMap) { - uvScaleMap = material.clearcoatMap; - } else if (material.clearcoatNormalMap) { - uvScaleMap = material.clearcoatNormalMap; - } else if (material.clearcoatRoughnessMap) { - uvScaleMap = material.clearcoatRoughnessMap; - } - if (uvScaleMap !== undefined) { - // backwards compatibility - if (uvScaleMap.isWebGLRenderTarget) { - uvScaleMap = uvScaleMap.texture; - } - if (uvScaleMap.matrixAutoUpdate === true) { - uvScaleMap.updateMatrix(); - } - uniforms.uvTransform.value.copy(uvScaleMap.matrix); - } // uv repeat and offset setting priorities for uv2 - // 1. ao map - // 2. light map - - var uv2ScaleMap; - if (material.aoMap) { - uv2ScaleMap = material.aoMap; - } else if (material.lightMap) { - uv2ScaleMap = material.lightMap; - } - if (uv2ScaleMap !== undefined) { - // backwards compatibility - if (uv2ScaleMap.isWebGLRenderTarget) { - uv2ScaleMap = uv2ScaleMap.texture; - } - if (uv2ScaleMap.matrixAutoUpdate === true) { - uv2ScaleMap.updateMatrix(); - } - uniforms.uv2Transform.value.copy(uv2ScaleMap.matrix); - } - } - function refreshUniformsLine(uniforms, material) { - uniforms.diffuse.value.copy(material.color); - uniforms.opacity.value = material.opacity; - } - function refreshUniformsDash(uniforms, material) { - uniforms.dashSize.value = material.dashSize; - uniforms.totalSize.value = material.dashSize + material.gapSize; - uniforms.scale.value = material.scale; - } - function refreshUniformsPoints(uniforms, material, pixelRatio, height) { - uniforms.diffuse.value.copy(material.color); - uniforms.opacity.value = material.opacity; - uniforms.size.value = material.size * pixelRatio; - uniforms.scale.value = height * 0.5; - if (material.map) { - uniforms.map.value = material.map; - } - if (material.alphaMap) { - uniforms.alphaMap.value = material.alphaMap; - } // uv repeat and offset setting priorities - // 1. color map - // 2. alpha map - - var uvScaleMap; - if (material.map) { - uvScaleMap = material.map; - } else if (material.alphaMap) { - uvScaleMap = material.alphaMap; - } - if (uvScaleMap !== undefined) { - if (uvScaleMap.matrixAutoUpdate === true) { - uvScaleMap.updateMatrix(); - } - uniforms.uvTransform.value.copy(uvScaleMap.matrix); - } - } - function refreshUniformsSprites(uniforms, material) { - uniforms.diffuse.value.copy(material.color); - uniforms.opacity.value = material.opacity; - uniforms.rotation.value = material.rotation; - if (material.map) { - uniforms.map.value = material.map; - } - if (material.alphaMap) { - uniforms.alphaMap.value = material.alphaMap; - } // uv repeat and offset setting priorities - // 1. color map - // 2. alpha map - - var uvScaleMap; - if (material.map) { - uvScaleMap = material.map; - } else if (material.alphaMap) { - uvScaleMap = material.alphaMap; - } - if (uvScaleMap !== undefined) { - if (uvScaleMap.matrixAutoUpdate === true) { - uvScaleMap.updateMatrix(); - } - uniforms.uvTransform.value.copy(uvScaleMap.matrix); - } - } - function refreshUniformsLambert(uniforms, material) { - if (material.emissiveMap) { - uniforms.emissiveMap.value = material.emissiveMap; - } - } - function refreshUniformsPhong(uniforms, material) { - uniforms.specular.value.copy(material.specular); - uniforms.shininess.value = Math.max(material.shininess, 1e-4); // to prevent pow( 0.0, 0.0 ) - if (material.emissiveMap) { - uniforms.emissiveMap.value = material.emissiveMap; - } - if (material.bumpMap) { - uniforms.bumpMap.value = material.bumpMap; - uniforms.bumpScale.value = material.bumpScale; - if (material.side === BackSide) uniforms.bumpScale.value *= -1; - } - if (material.normalMap) { - uniforms.normalMap.value = material.normalMap; - uniforms.normalScale.value.copy(material.normalScale); - if (material.side === BackSide) uniforms.normalScale.value.negate(); - } - if (material.displacementMap) { - uniforms.displacementMap.value = material.displacementMap; - uniforms.displacementScale.value = material.displacementScale; - uniforms.displacementBias.value = material.displacementBias; - } - } - function refreshUniformsToon(uniforms, material) { - if (material.gradientMap) { - uniforms.gradientMap.value = material.gradientMap; - } - if (material.emissiveMap) { - uniforms.emissiveMap.value = material.emissiveMap; - } - if (material.bumpMap) { - uniforms.bumpMap.value = material.bumpMap; - uniforms.bumpScale.value = material.bumpScale; - if (material.side === BackSide) uniforms.bumpScale.value *= -1; - } - if (material.normalMap) { - uniforms.normalMap.value = material.normalMap; - uniforms.normalScale.value.copy(material.normalScale); - if (material.side === BackSide) uniforms.normalScale.value.negate(); - } - if (material.displacementMap) { - uniforms.displacementMap.value = material.displacementMap; - uniforms.displacementScale.value = material.displacementScale; - uniforms.displacementBias.value = material.displacementBias; - } - } - function refreshUniformsStandard(uniforms, material) { - uniforms.roughness.value = material.roughness; - uniforms.metalness.value = material.metalness; - if (material.roughnessMap) { - uniforms.roughnessMap.value = material.roughnessMap; - } - if (material.metalnessMap) { - uniforms.metalnessMap.value = material.metalnessMap; - } - if (material.emissiveMap) { - uniforms.emissiveMap.value = material.emissiveMap; - } - if (material.bumpMap) { - uniforms.bumpMap.value = material.bumpMap; - uniforms.bumpScale.value = material.bumpScale; - if (material.side === BackSide) uniforms.bumpScale.value *= -1; - } - if (material.normalMap) { - uniforms.normalMap.value = material.normalMap; - uniforms.normalScale.value.copy(material.normalScale); - if (material.side === BackSide) uniforms.normalScale.value.negate(); - } - if (material.displacementMap) { - uniforms.displacementMap.value = material.displacementMap; - uniforms.displacementScale.value = material.displacementScale; - uniforms.displacementBias.value = material.displacementBias; - } - var envMap = properties.get(material).envMap; - if (envMap) { - //uniforms.envMap.value = material.envMap; // part of uniforms common - uniforms.envMapIntensity.value = material.envMapIntensity; - } - } - function refreshUniformsPhysical(uniforms, material) { - refreshUniformsStandard(uniforms, material); - uniforms.reflectivity.value = material.reflectivity; // also part of uniforms common - uniforms.clearcoat.value = material.clearcoat; - uniforms.clearcoatRoughness.value = material.clearcoatRoughness; - if (material.sheen) uniforms.sheen.value.copy(material.sheen); - if (material.clearcoatMap) { - uniforms.clearcoatMap.value = material.clearcoatMap; - } - if (material.clearcoatRoughnessMap) { - uniforms.clearcoatRoughnessMap.value = material.clearcoatRoughnessMap; - } - if (material.clearcoatNormalMap) { - uniforms.clearcoatNormalScale.value.copy(material.clearcoatNormalScale); - uniforms.clearcoatNormalMap.value = material.clearcoatNormalMap; - if (material.side === BackSide) { - uniforms.clearcoatNormalScale.value.negate(); - } - } - uniforms.transmission.value = material.transmission; - if (material.transmissionMap) { - uniforms.transmissionMap.value = material.transmissionMap; - } - } - function refreshUniformsMatcap(uniforms, material) { - if (material.matcap) { - uniforms.matcap.value = material.matcap; - } - if (material.bumpMap) { - uniforms.bumpMap.value = material.bumpMap; - uniforms.bumpScale.value = material.bumpScale; - if (material.side === BackSide) uniforms.bumpScale.value *= -1; - } - if (material.normalMap) { - uniforms.normalMap.value = material.normalMap; - uniforms.normalScale.value.copy(material.normalScale); - if (material.side === BackSide) uniforms.normalScale.value.negate(); - } - if (material.displacementMap) { - uniforms.displacementMap.value = material.displacementMap; - uniforms.displacementScale.value = material.displacementScale; - uniforms.displacementBias.value = material.displacementBias; - } - } - function refreshUniformsDepth(uniforms, material) { - if (material.displacementMap) { - uniforms.displacementMap.value = material.displacementMap; - uniforms.displacementScale.value = material.displacementScale; - uniforms.displacementBias.value = material.displacementBias; - } - } - function refreshUniformsDistance(uniforms, material) { - if (material.displacementMap) { - uniforms.displacementMap.value = material.displacementMap; - uniforms.displacementScale.value = material.displacementScale; - uniforms.displacementBias.value = material.displacementBias; - } - uniforms.referencePosition.value.copy(material.referencePosition); - uniforms.nearDistance.value = material.nearDistance; - uniforms.farDistance.value = material.farDistance; - } - function refreshUniformsNormal(uniforms, material) { - if (material.bumpMap) { - uniforms.bumpMap.value = material.bumpMap; - uniforms.bumpScale.value = material.bumpScale; - if (material.side === BackSide) uniforms.bumpScale.value *= -1; - } - if (material.normalMap) { - uniforms.normalMap.value = material.normalMap; - uniforms.normalScale.value.copy(material.normalScale); - if (material.side === BackSide) uniforms.normalScale.value.negate(); - } - if (material.displacementMap) { - uniforms.displacementMap.value = material.displacementMap; - uniforms.displacementScale.value = material.displacementScale; - uniforms.displacementBias.value = material.displacementBias; - } - } - return { - refreshFogUniforms: refreshFogUniforms, - refreshMaterialUniforms: refreshMaterialUniforms - }; - } - function createCanvasElement() { - var canvas = document.createElementNS('http://www.w3.org/1999/xhtml', 'canvas'); - canvas.style.display = 'block'; - return canvas; - } - function WebGLRenderer(parameters) { - parameters = parameters || {}; - var _canvas = parameters.canvas !== undefined ? parameters.canvas : createCanvasElement(), - _context = parameters.context !== undefined ? parameters.context : null, - _alpha = parameters.alpha !== undefined ? parameters.alpha : false, - _depth = parameters.depth !== undefined ? parameters.depth : true, - _stencil = parameters.stencil !== undefined ? parameters.stencil : true, - _antialias = parameters.antialias !== undefined ? parameters.antialias : false, - _premultipliedAlpha = parameters.premultipliedAlpha !== undefined ? parameters.premultipliedAlpha : true, - _preserveDrawingBuffer = parameters.preserveDrawingBuffer !== undefined ? parameters.preserveDrawingBuffer : false, - _powerPreference = parameters.powerPreference !== undefined ? parameters.powerPreference : 'default', - _failIfMajorPerformanceCaveat = parameters.failIfMajorPerformanceCaveat !== undefined ? parameters.failIfMajorPerformanceCaveat : false; - var currentRenderList = null; - var currentRenderState = null; // render() can be called from within a callback triggered by another render. - // We track this so that the nested render call gets its state isolated from the parent render call. - var renderStateStack = []; // public properties - this.domElement = _canvas; // Debug configuration container - this.debug = { - /** - * Enables error checking and reporting when shader programs are being compiled - * @type {boolean} - */ - checkShaderErrors: true - }; // clearing - this.autoClear = true; - this.autoClearColor = true; - this.autoClearDepth = true; - this.autoClearStencil = true; // scene graph - this.sortObjects = true; // user-defined clipping - this.clippingPlanes = []; - this.localClippingEnabled = false; // physically based shading - this.gammaFactor = 2.0; // for backwards compatibility - this.outputEncoding = LinearEncoding; // physical lights - this.physicallyCorrectLights = false; // tone mapping - this.toneMapping = NoToneMapping; - this.toneMappingExposure = 1.0; // morphs - this.maxMorphTargets = 8; - this.maxMorphNormals = 4; // internal properties - var _this = this; - var _isContextLost = false; // internal state cache - var _framebuffer = null; - var _currentActiveCubeFace = 0; - var _currentActiveMipmapLevel = 0; - var _currentRenderTarget = null; - var _currentFramebuffer = null; - var _currentMaterialId = -1; - var _currentCamera = null; - var _currentViewport = new Vector4(); - var _currentScissor = new Vector4(); - var _currentScissorTest = null; // - var _width = _canvas.width; - var _height = _canvas.height; - var _pixelRatio = 1; - var _opaqueSort = null; - var _transparentSort = null; - var _viewport = new Vector4(0, 0, _width, _height); - var _scissor = new Vector4(0, 0, _width, _height); - var _scissorTest = false; // frustum - var _frustum = new Frustum(); // clipping - - var _clippingEnabled = false; - var _localClippingEnabled = false; // camera matrices cache - var _projScreenMatrix = new Matrix4(); - var _vector3 = new Vector3(); - var _emptyScene = { - background: null, - fog: null, - environment: null, - overrideMaterial: null, - isScene: true - }; - function getTargetPixelRatio() { - return _currentRenderTarget === null ? _pixelRatio : 1; - } // initialize - - var _gl = _context; - function getContext(contextNames, contextAttributes) { - for (var i = 0; i < contextNames.length; i++) { - var contextName = contextNames[i]; - var context = _canvas.getContext(contextName, contextAttributes); - if (context !== null) return context; - } - return null; - } - try { - var contextAttributes = { - alpha: _alpha, - depth: _depth, - stencil: _stencil, - antialias: _antialias, - premultipliedAlpha: _premultipliedAlpha, - preserveDrawingBuffer: _preserveDrawingBuffer, - powerPreference: _powerPreference, - failIfMajorPerformanceCaveat: _failIfMajorPerformanceCaveat - }; // event listeners must be registered before WebGL context is created, see #12753 - _canvas.addEventListener('webglcontextlost', onContextLost, false); - _canvas.addEventListener('webglcontextrestored', onContextRestore, false); - if (_gl === null) { - var contextNames = ['webgl2', 'webgl', 'experimental-webgl']; - if (_this.isWebGL1Renderer === true) { - contextNames.shift(); - } - _gl = getContext(contextNames, contextAttributes); - if (_gl === null) { - if (getContext(contextNames)) { - throw new Error('Error creating WebGL context with your selected attributes.'); - } else { - throw new Error('Error creating WebGL context.'); - } - } - } // Some experimental-webgl implementations do not have getShaderPrecisionFormat - - if (_gl.getShaderPrecisionFormat === undefined) { - _gl.getShaderPrecisionFormat = function () { - return { - 'rangeMin': 1, - 'rangeMax': 1, - 'precision': 1 - }; - }; - } - } catch (error) { - console.error('THREE.WebGLRenderer: ' + error.message); - throw error; - } - var extensions, capabilities, state, info; - var properties, textures, cubemaps, attributes, geometries, objects; - var programCache, materials, renderLists, renderStates, clipping; - var background, morphtargets, bufferRenderer, indexedBufferRenderer; - var utils, bindingStates; - function initGLContext() { - extensions = new WebGLExtensions(_gl); - capabilities = new WebGLCapabilities(_gl, extensions, parameters); - if (capabilities.isWebGL2 === false) { - extensions.get('WEBGL_depth_texture'); - extensions.get('OES_texture_float'); - extensions.get('OES_texture_half_float'); - extensions.get('OES_texture_half_float_linear'); - extensions.get('OES_standard_derivatives'); - extensions.get('OES_element_index_uint'); - extensions.get('OES_vertex_array_object'); - extensions.get('ANGLE_instanced_arrays'); - } - extensions.get('OES_texture_float_linear'); - utils = new WebGLUtils(_gl, extensions, capabilities); - state = new WebGLState(_gl, extensions, capabilities); - state.scissor(_currentScissor.copy(_scissor).multiplyScalar(_pixelRatio).floor()); - state.viewport(_currentViewport.copy(_viewport).multiplyScalar(_pixelRatio).floor()); - info = new WebGLInfo(_gl); - properties = new WebGLProperties(); - textures = new WebGLTextures(_gl, extensions, state, properties, capabilities, utils, info); - cubemaps = new WebGLCubeMaps(_this); - attributes = new WebGLAttributes(_gl, capabilities); - bindingStates = new WebGLBindingStates(_gl, extensions, attributes, capabilities); - geometries = new WebGLGeometries(_gl, attributes, info, bindingStates); - objects = new WebGLObjects(_gl, geometries, attributes, info); - morphtargets = new WebGLMorphtargets(_gl); - clipping = new WebGLClipping(properties); - programCache = new WebGLPrograms(_this, cubemaps, extensions, capabilities, bindingStates, clipping); - materials = new WebGLMaterials(properties); - renderLists = new WebGLRenderLists(properties); - renderStates = new WebGLRenderStates(extensions, capabilities); - background = new WebGLBackground(_this, cubemaps, state, objects, _premultipliedAlpha); - bufferRenderer = new WebGLBufferRenderer(_gl, extensions, info, capabilities); - indexedBufferRenderer = new WebGLIndexedBufferRenderer(_gl, extensions, info, capabilities); - info.programs = programCache.programs; - _this.capabilities = capabilities; - _this.extensions = extensions; - _this.properties = properties; - _this.renderLists = renderLists; - _this.state = state; - _this.info = info; - } - initGLContext(); // xr - var xr = new WebXRManager(_this, _gl); - this.xr = xr; // shadow map - var shadowMap = new WebGLShadowMap(_this, objects, capabilities.maxTextureSize); - this.shadowMap = shadowMap; // API - this.getContext = function () { - return _gl; - }; - this.getContextAttributes = function () { - return _gl.getContextAttributes(); - }; - this.forceContextLoss = function () { - var extension = extensions.get('WEBGL_lose_context'); - if (extension) extension.loseContext(); - }; - this.forceContextRestore = function () { - var extension = extensions.get('WEBGL_lose_context'); - if (extension) extension.restoreContext(); - }; - this.getPixelRatio = function () { - return _pixelRatio; - }; - this.setPixelRatio = function (value) { - if (value === undefined) return; - _pixelRatio = value; - this.setSize(_width, _height, false); - }; - this.getSize = function (target) { - if (target === undefined) { - console.warn('WebGLRenderer: .getsize() now requires a Vector2 as an argument'); - target = new Vector2(); - } - return target.set(_width, _height); - }; - this.setSize = function (width, height, updateStyle) { - if (xr.isPresenting) { - console.warn('THREE.WebGLRenderer: Can\'t change size while VR device is presenting.'); - return; - } - _width = width; - _height = height; - _canvas.width = Math.floor(width * _pixelRatio); - _canvas.height = Math.floor(height * _pixelRatio); - if (updateStyle !== false) { - _canvas.style.width = width + 'px'; - _canvas.style.height = height + 'px'; - } - this.setViewport(0, 0, width, height); - }; - this.getDrawingBufferSize = function (target) { - if (target === undefined) { - console.warn('WebGLRenderer: .getdrawingBufferSize() now requires a Vector2 as an argument'); - target = new Vector2(); - } - return target.set(_width * _pixelRatio, _height * _pixelRatio).floor(); - }; - this.setDrawingBufferSize = function (width, height, pixelRatio) { - _width = width; - _height = height; - _pixelRatio = pixelRatio; - _canvas.width = Math.floor(width * pixelRatio); - _canvas.height = Math.floor(height * pixelRatio); - this.setViewport(0, 0, width, height); - }; - this.getCurrentViewport = function (target) { - if (target === undefined) { - console.warn('WebGLRenderer: .getCurrentViewport() now requires a Vector4 as an argument'); - target = new Vector4(); - } - return target.copy(_currentViewport); - }; - this.getViewport = function (target) { - return target.copy(_viewport); - }; - this.setViewport = function (x, y, width, height) { - if (x.isVector4) { - _viewport.set(x.x, x.y, x.z, x.w); - } else { - _viewport.set(x, y, width, height); - } - state.viewport(_currentViewport.copy(_viewport).multiplyScalar(_pixelRatio).floor()); - }; - this.getScissor = function (target) { - return target.copy(_scissor); - }; - this.setScissor = function (x, y, width, height) { - if (x.isVector4) { - _scissor.set(x.x, x.y, x.z, x.w); - } else { - _scissor.set(x, y, width, height); - } - state.scissor(_currentScissor.copy(_scissor).multiplyScalar(_pixelRatio).floor()); - }; - this.getScissorTest = function () { - return _scissorTest; - }; - this.setScissorTest = function (boolean) { - state.setScissorTest(_scissorTest = boolean); - }; - this.setOpaqueSort = function (method) { - _opaqueSort = method; - }; - this.setTransparentSort = function (method) { - _transparentSort = method; - }; // Clearing - - this.getClearColor = function (target) { - if (target === undefined) { - console.warn('WebGLRenderer: .getClearColor() now requires a Color as an argument'); - target = new Color(); - } - return target.copy(background.getClearColor()); - }; - this.setClearColor = function () { - background.setClearColor.apply(background, arguments); - }; - this.getClearAlpha = function () { - return background.getClearAlpha(); - }; - this.setClearAlpha = function () { - background.setClearAlpha.apply(background, arguments); - }; - this.clear = function (color, depth, stencil) { - var bits = 0; - if (color === undefined || color) bits |= 16384; - if (depth === undefined || depth) bits |= 256; - if (stencil === undefined || stencil) bits |= 1024; - _gl.clear(bits); - }; - this.clearColor = function () { - this.clear(true, false, false); - }; - this.clearDepth = function () { - this.clear(false, true, false); - }; - this.clearStencil = function () { - this.clear(false, false, true); - }; // - - this.dispose = function () { - _canvas.removeEventListener('webglcontextlost', onContextLost, false); - _canvas.removeEventListener('webglcontextrestored', onContextRestore, false); - renderLists.dispose(); - renderStates.dispose(); - properties.dispose(); - cubemaps.dispose(); - objects.dispose(); - bindingStates.dispose(); - xr.dispose(); - animation.stop(); - }; // Events - - function onContextLost(event) { - event.preventDefault(); - console.log('THREE.WebGLRenderer: Context Lost.'); - _isContextLost = true; - } - function onContextRestore() - /* event */ - { - console.log('THREE.WebGLRenderer: Context Restored.'); - _isContextLost = false; - initGLContext(); - } - function onMaterialDispose(event) { - var material = event.target; - material.removeEventListener('dispose', onMaterialDispose); - deallocateMaterial(material); - } // Buffer deallocation - - function deallocateMaterial(material) { - releaseMaterialProgramReference(material); - properties.remove(material); - } - function releaseMaterialProgramReference(material) { - var programInfo = properties.get(material).program; - if (programInfo !== undefined) { - programCache.releaseProgram(programInfo); - } - } // Buffer rendering - - function renderObjectImmediate(object, program) { - object.render(function (object) { - _this.renderBufferImmediate(object, program); - }); - } - this.renderBufferImmediate = function (object, program) { - bindingStates.initAttributes(); - var buffers = properties.get(object); - if (object.hasPositions && !buffers.position) buffers.position = _gl.createBuffer(); - if (object.hasNormals && !buffers.normal) buffers.normal = _gl.createBuffer(); - if (object.hasUvs && !buffers.uv) buffers.uv = _gl.createBuffer(); - if (object.hasColors && !buffers.color) buffers.color = _gl.createBuffer(); - var programAttributes = program.getAttributes(); - if (object.hasPositions) { - _gl.bindBuffer(34962, buffers.position); - _gl.bufferData(34962, object.positionArray, 35048); - bindingStates.enableAttribute(programAttributes.position); - _gl.vertexAttribPointer(programAttributes.position, 3, 5126, false, 0, 0); - } - if (object.hasNormals) { - _gl.bindBuffer(34962, buffers.normal); - _gl.bufferData(34962, object.normalArray, 35048); - bindingStates.enableAttribute(programAttributes.normal); - _gl.vertexAttribPointer(programAttributes.normal, 3, 5126, false, 0, 0); - } - if (object.hasUvs) { - _gl.bindBuffer(34962, buffers.uv); - _gl.bufferData(34962, object.uvArray, 35048); - bindingStates.enableAttribute(programAttributes.uv); - _gl.vertexAttribPointer(programAttributes.uv, 2, 5126, false, 0, 0); - } - if (object.hasColors) { - _gl.bindBuffer(34962, buffers.color); - _gl.bufferData(34962, object.colorArray, 35048); - bindingStates.enableAttribute(programAttributes.color); - _gl.vertexAttribPointer(programAttributes.color, 3, 5126, false, 0, 0); - } - bindingStates.disableUnusedAttributes(); - _gl.drawArrays(4, 0, object.count); - object.count = 0; - }; - this.renderBufferDirect = function (camera, scene, geometry, material, object, group) { - if (scene === null) scene = _emptyScene; // renderBufferDirect second parameter used to be fog (could be null) - var frontFaceCW = object.isMesh && object.matrixWorld.determinant() < 0; - var program = setProgram(camera, scene, material, object); - state.setMaterial(material, frontFaceCW); // - var index = geometry.index; - var position = geometry.attributes.position; // - if (index === null) { - if (position === undefined || position.count === 0) return; - } else if (index.count === 0) { - return; - } // - - var rangeFactor = 1; - if (material.wireframe === true) { - index = geometries.getWireframeAttribute(geometry); - rangeFactor = 2; - } - if (material.morphTargets || material.morphNormals) { - morphtargets.update(object, geometry, material, program); - } - bindingStates.setup(object, material, program, geometry, index); - var attribute; - var renderer = bufferRenderer; - if (index !== null) { - attribute = attributes.get(index); - renderer = indexedBufferRenderer; - renderer.setIndex(attribute); - } // - - var dataCount = index !== null ? index.count : position.count; - var rangeStart = geometry.drawRange.start * rangeFactor; - var rangeCount = geometry.drawRange.count * rangeFactor; - var groupStart = group !== null ? group.start * rangeFactor : 0; - var groupCount = group !== null ? group.count * rangeFactor : Infinity; - var drawStart = Math.max(rangeStart, groupStart); - var drawEnd = Math.min(dataCount, rangeStart + rangeCount, groupStart + groupCount) - 1; - var drawCount = Math.max(0, drawEnd - drawStart + 1); - if (drawCount === 0) return; // - if (object.isMesh) { - if (material.wireframe === true) { - state.setLineWidth(material.wireframeLinewidth * getTargetPixelRatio()); - renderer.setMode(1); - } else { - renderer.setMode(4); - } - } else if (object.isLine) { - var lineWidth = material.linewidth; - if (lineWidth === undefined) lineWidth = 1; // Not using Line*Material - state.setLineWidth(lineWidth * getTargetPixelRatio()); - if (object.isLineSegments) { - renderer.setMode(1); - } else if (object.isLineLoop) { - renderer.setMode(2); - } else { - renderer.setMode(3); - } - } else if (object.isPoints) { - renderer.setMode(0); - } else if (object.isSprite) { - renderer.setMode(4); - } - if (object.isInstancedMesh) { - renderer.renderInstances(drawStart, drawCount, object.count); - } else if (geometry.isInstancedBufferGeometry) { - var instanceCount = Math.min(geometry.instanceCount, geometry._maxInstanceCount); - renderer.renderInstances(drawStart, drawCount, instanceCount); - } else { - renderer.render(drawStart, drawCount); - } - }; // Compile - - this.compile = function (scene, camera) { - currentRenderState = renderStates.get(scene); - currentRenderState.init(); - scene.traverseVisible(function (object) { - if (object.isLight && object.layers.test(camera.layers)) { - currentRenderState.pushLight(object); - if (object.castShadow) { - currentRenderState.pushShadow(object); - } - } - }); - currentRenderState.setupLights(); - var compiled = new WeakMap(); - scene.traverse(function (object) { - var material = object.material; - if (material) { - if (Array.isArray(material)) { - for (var i = 0; i < material.length; i++) { - var material2 = material[i]; - if (compiled.has(material2) === false) { - initMaterial(material2, scene, object); - compiled.set(material2); - } - } - } else if (compiled.has(material) === false) { - initMaterial(material, scene, object); - compiled.set(material); - } - } - }); - }; // Animation Loop - - var onAnimationFrameCallback = null; - function onAnimationFrame(time) { - if (xr.isPresenting) return; - if (onAnimationFrameCallback) onAnimationFrameCallback(time); - } - var animation = new WebGLAnimation(); - animation.setAnimationLoop(onAnimationFrame); - if (typeof window !== 'undefined') animation.setContext(window); - this.setAnimationLoop = function (callback) { - onAnimationFrameCallback = callback; - xr.setAnimationLoop(callback); - callback === null ? animation.stop() : animation.start(); - }; // Rendering - - this.render = function (scene, camera) { - var renderTarget, forceClear; - if (arguments[2] !== undefined) { - console.warn('THREE.WebGLRenderer.render(): the renderTarget argument has been removed. Use .setRenderTarget() instead.'); - renderTarget = arguments[2]; - } - if (arguments[3] !== undefined) { - console.warn('THREE.WebGLRenderer.render(): the forceClear argument has been removed. Use .clear() instead.'); - forceClear = arguments[3]; - } - if (camera !== undefined && camera.isCamera !== true) { - console.error('THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.'); - return; - } - if (_isContextLost === true) return; // reset caching for this frame - bindingStates.resetDefaultState(); - _currentMaterialId = -1; - _currentCamera = null; // update scene graph - if (scene.autoUpdate === true) scene.updateMatrixWorld(); // update camera matrices and frustum - if (camera.parent === null) camera.updateMatrixWorld(); - if (xr.enabled === true && xr.isPresenting === true) { - camera = xr.getCamera(camera); - } // - - if (scene.isScene === true) scene.onBeforeRender(_this, scene, camera, renderTarget || _currentRenderTarget); - currentRenderState = renderStates.get(scene, renderStateStack.length); - currentRenderState.init(); - renderStateStack.push(currentRenderState); - _projScreenMatrix.multiplyMatrices(camera.projectionMatrix, camera.matrixWorldInverse); - _frustum.setFromProjectionMatrix(_projScreenMatrix); - _localClippingEnabled = this.localClippingEnabled; - _clippingEnabled = clipping.init(this.clippingPlanes, _localClippingEnabled, camera); - currentRenderList = renderLists.get(scene, camera); - currentRenderList.init(); - projectObject(scene, camera, 0, _this.sortObjects); - currentRenderList.finish(); - if (_this.sortObjects === true) { - currentRenderList.sort(_opaqueSort, _transparentSort); - } // - - if (_clippingEnabled === true) clipping.beginShadows(); - var shadowsArray = currentRenderState.state.shadowsArray; - shadowMap.render(shadowsArray, scene, camera); - currentRenderState.setupLights(); - currentRenderState.setupLightsView(camera); - if (_clippingEnabled === true) clipping.endShadows(); // - if (this.info.autoReset === true) this.info.reset(); - if (renderTarget !== undefined) { - this.setRenderTarget(renderTarget); - } // - - background.render(currentRenderList, scene, camera, forceClear); // render scene - var opaqueObjects = currentRenderList.opaque; - var transparentObjects = currentRenderList.transparent; - if (opaqueObjects.length > 0) renderObjects(opaqueObjects, scene, camera); - if (transparentObjects.length > 0) renderObjects(transparentObjects, scene, camera); // - if (scene.isScene === true) scene.onAfterRender(_this, scene, camera); // - if (_currentRenderTarget !== null) { - // Generate mipmap if we're using any kind of mipmap filtering - textures.updateRenderTargetMipmap(_currentRenderTarget); // resolve multisample renderbuffers to a single-sample texture if necessary - textures.updateMultisampleRenderTarget(_currentRenderTarget); - } // Ensure depth buffer writing is enabled so it can be cleared on next render - - state.buffers.depth.setTest(true); - state.buffers.depth.setMask(true); - state.buffers.color.setMask(true); - state.setPolygonOffset(false); // _gl.finish(); - renderStateStack.pop(); - if (renderStateStack.length > 0) { - currentRenderState = renderStateStack[renderStateStack.length - 1]; - } else { - currentRenderState = null; - } - currentRenderList = null; - }; - function projectObject(object, camera, groupOrder, sortObjects) { - if (object.visible === false) return; - var visible = object.layers.test(camera.layers); - if (visible) { - if (object.isGroup) { - groupOrder = object.renderOrder; - } else if (object.isLOD) { - if (object.autoUpdate === true) object.update(camera); - } else if (object.isLight) { - currentRenderState.pushLight(object); - if (object.castShadow) { - currentRenderState.pushShadow(object); - } - } else if (object.isSprite) { - if (!object.frustumCulled || _frustum.intersectsSprite(object)) { - if (sortObjects) { - _vector3.setFromMatrixPosition(object.matrixWorld).applyMatrix4(_projScreenMatrix); - } - var geometry = objects.update(object); - var material = object.material; - if (material.visible) { - currentRenderList.push(object, geometry, material, groupOrder, _vector3.z, null); - } - } - } else if (object.isImmediateRenderObject) { - if (sortObjects) { - _vector3.setFromMatrixPosition(object.matrixWorld).applyMatrix4(_projScreenMatrix); - } - currentRenderList.push(object, null, object.material, groupOrder, _vector3.z, null); - } else if (object.isMesh || object.isLine || object.isPoints) { - if (object.isSkinnedMesh) { - // update skeleton only once in a frame - if (object.skeleton.frame !== info.render.frame) { - object.skeleton.update(); - object.skeleton.frame = info.render.frame; - } - } - if (!object.frustumCulled || _frustum.intersectsObject(object)) { - if (sortObjects) { - _vector3.setFromMatrixPosition(object.matrixWorld).applyMatrix4(_projScreenMatrix); - } - var _geometry = objects.update(object); - var _material = object.material; - if (Array.isArray(_material)) { - var groups = _geometry.groups; - for (var i = 0, l = groups.length; i < l; i++) { - var group = groups[i]; - var groupMaterial = _material[group.materialIndex]; - if (groupMaterial && groupMaterial.visible) { - currentRenderList.push(object, _geometry, groupMaterial, groupOrder, _vector3.z, group); - } - } - } else if (_material.visible) { - currentRenderList.push(object, _geometry, _material, groupOrder, _vector3.z, null); - } - } - } - } - var children = object.children; - for (var _i = 0, _l = children.length; _i < _l; _i++) { - projectObject(children[_i], camera, groupOrder, sortObjects); - } - } - function renderObjects(renderList, scene, camera) { - var overrideMaterial = scene.isScene === true ? scene.overrideMaterial : null; - for (var i = 0, l = renderList.length; i < l; i++) { - var renderItem = renderList[i]; - var object = renderItem.object; - var geometry = renderItem.geometry; - var material = overrideMaterial === null ? renderItem.material : overrideMaterial; - var group = renderItem.group; - if (camera.isArrayCamera) { - var cameras = camera.cameras; - for (var j = 0, jl = cameras.length; j < jl; j++) { - var camera2 = cameras[j]; - if (object.layers.test(camera2.layers)) { - state.viewport(_currentViewport.copy(camera2.viewport)); - currentRenderState.setupLightsView(camera2); - renderObject(object, scene, camera2, geometry, material, group); - } - } - } else { - renderObject(object, scene, camera, geometry, material, group); - } - } - } - function renderObject(object, scene, camera, geometry, material, group) { - object.onBeforeRender(_this, scene, camera, geometry, material, group); - object.modelViewMatrix.multiplyMatrices(camera.matrixWorldInverse, object.matrixWorld); - object.normalMatrix.getNormalMatrix(object.modelViewMatrix); - if (object.isImmediateRenderObject) { - var program = setProgram(camera, scene, material, object); - state.setMaterial(material); - bindingStates.reset(); - renderObjectImmediate(object, program); - } else { - _this.renderBufferDirect(camera, scene, geometry, material, object, group); - } - object.onAfterRender(_this, scene, camera, geometry, material, group); - } - function initMaterial(material, scene, object) { - if (scene.isScene !== true) scene = _emptyScene; // scene could be a Mesh, Line, Points, ... - var materialProperties = properties.get(material); - var lights = currentRenderState.state.lights; - var shadowsArray = currentRenderState.state.shadowsArray; - var lightsStateVersion = lights.state.version; - var parameters = programCache.getParameters(material, lights.state, shadowsArray, scene, object); - var programCacheKey = programCache.getProgramCacheKey(parameters); - var program = materialProperties.program; - var programChange = true; - if (program === undefined) { - // new material - material.addEventListener('dispose', onMaterialDispose); - } else if (program.cacheKey !== programCacheKey) { - // changed glsl or parameters - releaseMaterialProgramReference(material); - } else if (materialProperties.lightsStateVersion !== lightsStateVersion) { - programChange = false; - } else if (parameters.shaderID !== undefined) { - // same glsl and uniform list, envMap still needs the update here to avoid a frame-late effect - var environment = material.isMeshStandardMaterial ? scene.environment : null; - materialProperties.envMap = cubemaps.get(material.envMap || environment); - return; - } else { - // only rebuild uniform list - programChange = false; - } - if (programChange) { - parameters.uniforms = programCache.getUniforms(material); - material.onBeforeCompile(parameters, _this); - program = programCache.acquireProgram(parameters, programCacheKey); - materialProperties.program = program; - materialProperties.uniforms = parameters.uniforms; - materialProperties.outputEncoding = parameters.outputEncoding; - } - var uniforms = materialProperties.uniforms; - if (!material.isShaderMaterial && !material.isRawShaderMaterial || material.clipping === true) { - materialProperties.numClippingPlanes = clipping.numPlanes; - materialProperties.numIntersection = clipping.numIntersection; - uniforms.clippingPlanes = clipping.uniform; - } - materialProperties.environment = material.isMeshStandardMaterial ? scene.environment : null; - materialProperties.fog = scene.fog; - materialProperties.envMap = cubemaps.get(material.envMap || materialProperties.environment); // store the light setup it was created for - materialProperties.needsLights = materialNeedsLights(material); - materialProperties.lightsStateVersion = lightsStateVersion; - if (materialProperties.needsLights) { - // wire up the material to this renderer's lighting state - uniforms.ambientLightColor.value = lights.state.ambient; - uniforms.lightProbe.value = lights.state.probe; - uniforms.directionalLights.value = lights.state.directional; - uniforms.directionalLightShadows.value = lights.state.directionalShadow; - uniforms.spotLights.value = lights.state.spot; - uniforms.spotLightShadows.value = lights.state.spotShadow; - uniforms.rectAreaLights.value = lights.state.rectArea; - uniforms.ltc_1.value = lights.state.rectAreaLTC1; - uniforms.ltc_2.value = lights.state.rectAreaLTC2; - uniforms.pointLights.value = lights.state.point; - uniforms.pointLightShadows.value = lights.state.pointShadow; - uniforms.hemisphereLights.value = lights.state.hemi; - uniforms.directionalShadowMap.value = lights.state.directionalShadowMap; - uniforms.directionalShadowMatrix.value = lights.state.directionalShadowMatrix; - uniforms.spotShadowMap.value = lights.state.spotShadowMap; - uniforms.spotShadowMatrix.value = lights.state.spotShadowMatrix; - uniforms.pointShadowMap.value = lights.state.pointShadowMap; - uniforms.pointShadowMatrix.value = lights.state.pointShadowMatrix; // TODO (abelnation): add area lights shadow info to uniforms - } - var progUniforms = materialProperties.program.getUniforms(); - var uniformsList = WebGLUniforms.seqWithValue(progUniforms.seq, uniforms); - materialProperties.uniformsList = uniformsList; - } - function setProgram(camera, scene, material, object) { - if (scene.isScene !== true) scene = _emptyScene; // scene could be a Mesh, Line, Points, ... - textures.resetTextureUnits(); - var fog = scene.fog; - var environment = material.isMeshStandardMaterial ? scene.environment : null; - var encoding = _currentRenderTarget === null ? _this.outputEncoding : _currentRenderTarget.texture.encoding; - var envMap = cubemaps.get(material.envMap || environment); - var materialProperties = properties.get(material); - var lights = currentRenderState.state.lights; - if (_clippingEnabled === true) { - if (_localClippingEnabled === true || camera !== _currentCamera) { - var useCache = camera === _currentCamera && material.id === _currentMaterialId; // we might want to call this function with some ClippingGroup - // object instead of the material, once it becomes feasible - // (#8465, #8379) - clipping.setState(material, camera, useCache); - } - } - if (material.version === materialProperties.__version) { - if (material.fog && materialProperties.fog !== fog) { - initMaterial(material, scene, object); - } else if (materialProperties.environment !== environment) { - initMaterial(material, scene, object); - } else if (materialProperties.needsLights && materialProperties.lightsStateVersion !== lights.state.version) { - initMaterial(material, scene, object); - } else if (materialProperties.numClippingPlanes !== undefined && (materialProperties.numClippingPlanes !== clipping.numPlanes || materialProperties.numIntersection !== clipping.numIntersection)) { - initMaterial(material, scene, object); - } else if (materialProperties.outputEncoding !== encoding) { - initMaterial(material, scene, object); - } else if (materialProperties.envMap !== envMap) { - initMaterial(material, scene, object); - } - } else { - initMaterial(material, scene, object); - materialProperties.__version = material.version; - } - var refreshProgram = false; - var refreshMaterial = false; - var refreshLights = false; - var program = materialProperties.program, - p_uniforms = program.getUniforms(), - m_uniforms = materialProperties.uniforms; - if (state.useProgram(program.program)) { - refreshProgram = true; - refreshMaterial = true; - refreshLights = true; - } - if (material.id !== _currentMaterialId) { - _currentMaterialId = material.id; - refreshMaterial = true; - } - if (refreshProgram || _currentCamera !== camera) { - p_uniforms.setValue(_gl, 'projectionMatrix', camera.projectionMatrix); - if (capabilities.logarithmicDepthBuffer) { - p_uniforms.setValue(_gl, 'logDepthBufFC', 2.0 / (Math.log(camera.far + 1.0) / Math.LN2)); - } - if (_currentCamera !== camera) { - _currentCamera = camera; // lighting uniforms depend on the camera so enforce an update - // now, in case this material supports lights - or later, when - // the next material that does gets activated: - refreshMaterial = true; // set to true on material change - refreshLights = true; // remains set until update done - } // load material specific uniforms - // (shader material also gets them for the sake of genericity) - - if (material.isShaderMaterial || material.isMeshPhongMaterial || material.isMeshToonMaterial || material.isMeshStandardMaterial || material.envMap) { - var uCamPos = p_uniforms.map.cameraPosition; - if (uCamPos !== undefined) { - uCamPos.setValue(_gl, _vector3.setFromMatrixPosition(camera.matrixWorld)); - } - } - if (material.isMeshPhongMaterial || material.isMeshToonMaterial || material.isMeshLambertMaterial || material.isMeshBasicMaterial || material.isMeshStandardMaterial || material.isShaderMaterial) { - p_uniforms.setValue(_gl, 'isOrthographic', camera.isOrthographicCamera === true); - } - if (material.isMeshPhongMaterial || material.isMeshToonMaterial || material.isMeshLambertMaterial || material.isMeshBasicMaterial || material.isMeshStandardMaterial || material.isShaderMaterial || material.isShadowMaterial || material.skinning) { - p_uniforms.setValue(_gl, 'viewMatrix', camera.matrixWorldInverse); - } - } // skinning uniforms must be set even if material didn't change - // auto-setting of texture unit for bone texture must go before other textures - // otherwise textures used for skinning can take over texture units reserved for other material textures - - if (material.skinning) { - p_uniforms.setOptional(_gl, object, 'bindMatrix'); - p_uniforms.setOptional(_gl, object, 'bindMatrixInverse'); - var skeleton = object.skeleton; - if (skeleton) { - var bones = skeleton.bones; - if (capabilities.floatVertexTextures) { - if (skeleton.boneTexture === null) { - // layout (1 matrix = 4 pixels) - // RGBA RGBA RGBA RGBA (=> column1, column2, column3, column4) - // with 8x8 pixel texture max 16 bones * 4 pixels = (8 * 8) - // 16x16 pixel texture max 64 bones * 4 pixels = (16 * 16) - // 32x32 pixel texture max 256 bones * 4 pixels = (32 * 32) - // 64x64 pixel texture max 1024 bones * 4 pixels = (64 * 64) - var size = Math.sqrt(bones.length * 4); // 4 pixels needed for 1 matrix - size = MathUtils.ceilPowerOfTwo(size); - size = Math.max(size, 4); - var boneMatrices = new Float32Array(size * size * 4); // 4 floats per RGBA pixel - boneMatrices.set(skeleton.boneMatrices); // copy current values - var boneTexture = new DataTexture(boneMatrices, size, size, RGBAFormat, FloatType); - skeleton.boneMatrices = boneMatrices; - skeleton.boneTexture = boneTexture; - skeleton.boneTextureSize = size; - } - p_uniforms.setValue(_gl, 'boneTexture', skeleton.boneTexture, textures); - p_uniforms.setValue(_gl, 'boneTextureSize', skeleton.boneTextureSize); - } else { - p_uniforms.setOptional(_gl, skeleton, 'boneMatrices'); - } - } - } - if (refreshMaterial || materialProperties.receiveShadow !== object.receiveShadow) { - materialProperties.receiveShadow = object.receiveShadow; - p_uniforms.setValue(_gl, 'receiveShadow', object.receiveShadow); - } - if (refreshMaterial) { - p_uniforms.setValue(_gl, 'toneMappingExposure', _this.toneMappingExposure); - if (materialProperties.needsLights) { - // the current material requires lighting info - // note: all lighting uniforms are always set correctly - // they simply reference the renderer's state for their - // values - // - // use the current material's .needsUpdate flags to set - // the GL state when required - markUniformsLightsNeedsUpdate(m_uniforms, refreshLights); - } // refresh uniforms common to several materials - - if (fog && material.fog) { - materials.refreshFogUniforms(m_uniforms, fog); - } - materials.refreshMaterialUniforms(m_uniforms, material, _pixelRatio, _height); - WebGLUniforms.upload(_gl, materialProperties.uniformsList, m_uniforms, textures); - } - if (material.isShaderMaterial && material.uniformsNeedUpdate === true) { - WebGLUniforms.upload(_gl, materialProperties.uniformsList, m_uniforms, textures); - material.uniformsNeedUpdate = false; - } - if (material.isSpriteMaterial) { - p_uniforms.setValue(_gl, 'center', object.center); - } // common matrices - - p_uniforms.setValue(_gl, 'modelViewMatrix', object.modelViewMatrix); - p_uniforms.setValue(_gl, 'normalMatrix', object.normalMatrix); - p_uniforms.setValue(_gl, 'modelMatrix', object.matrixWorld); - return program; - } // If uniforms are marked as clean, they don't need to be loaded to the GPU. - - function markUniformsLightsNeedsUpdate(uniforms, value) { - uniforms.ambientLightColor.needsUpdate = value; - uniforms.lightProbe.needsUpdate = value; - uniforms.directionalLights.needsUpdate = value; - uniforms.directionalLightShadows.needsUpdate = value; - uniforms.pointLights.needsUpdate = value; - uniforms.pointLightShadows.needsUpdate = value; - uniforms.spotLights.needsUpdate = value; - uniforms.spotLightShadows.needsUpdate = value; - uniforms.rectAreaLights.needsUpdate = value; - uniforms.hemisphereLights.needsUpdate = value; - } - function materialNeedsLights(material) { - return material.isMeshLambertMaterial || material.isMeshToonMaterial || material.isMeshPhongMaterial || material.isMeshStandardMaterial || material.isShadowMaterial || material.isShaderMaterial && material.lights === true; - } // - - this.setFramebuffer = function (value) { - if (_framebuffer !== value && _currentRenderTarget === null) _gl.bindFramebuffer(36160, value); - _framebuffer = value; - }; - this.getActiveCubeFace = function () { - return _currentActiveCubeFace; - }; - this.getActiveMipmapLevel = function () { - return _currentActiveMipmapLevel; - }; - this.getRenderList = function () { - return currentRenderList; - }; - this.setRenderList = function (renderList) { - currentRenderList = renderList; - }; - this.getRenderTarget = function () { - return _currentRenderTarget; - }; - this.setRenderTarget = function (renderTarget, activeCubeFace, activeMipmapLevel) { - if (activeCubeFace === void 0) { - activeCubeFace = 0; - } - if (activeMipmapLevel === void 0) { - activeMipmapLevel = 0; - } - _currentRenderTarget = renderTarget; - _currentActiveCubeFace = activeCubeFace; - _currentActiveMipmapLevel = activeMipmapLevel; - if (renderTarget && properties.get(renderTarget).__webglFramebuffer === undefined) { - textures.setupRenderTarget(renderTarget); - } - var framebuffer = _framebuffer; - var isCube = false; - if (renderTarget) { - var __webglFramebuffer = properties.get(renderTarget).__webglFramebuffer; - if (renderTarget.isWebGLCubeRenderTarget) { - framebuffer = __webglFramebuffer[activeCubeFace]; - isCube = true; - } else if (renderTarget.isWebGLMultisampleRenderTarget) { - framebuffer = properties.get(renderTarget).__webglMultisampledFramebuffer; - } else { - framebuffer = __webglFramebuffer; - } - _currentViewport.copy(renderTarget.viewport); - _currentScissor.copy(renderTarget.scissor); - _currentScissorTest = renderTarget.scissorTest; - } else { - _currentViewport.copy(_viewport).multiplyScalar(_pixelRatio).floor(); - _currentScissor.copy(_scissor).multiplyScalar(_pixelRatio).floor(); - _currentScissorTest = _scissorTest; - } - if (_currentFramebuffer !== framebuffer) { - _gl.bindFramebuffer(36160, framebuffer); - _currentFramebuffer = framebuffer; - } - state.viewport(_currentViewport); - state.scissor(_currentScissor); - state.setScissorTest(_currentScissorTest); - if (isCube) { - var textureProperties = properties.get(renderTarget.texture); - _gl.framebufferTexture2D(36160, 36064, 34069 + activeCubeFace, textureProperties.__webglTexture, activeMipmapLevel); - } - }; - this.readRenderTargetPixels = function (renderTarget, x, y, width, height, buffer, activeCubeFaceIndex) { - if (!(renderTarget && renderTarget.isWebGLRenderTarget)) { - console.error('THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.'); - return; - } - var framebuffer = properties.get(renderTarget).__webglFramebuffer; - if (renderTarget.isWebGLCubeRenderTarget && activeCubeFaceIndex !== undefined) { - framebuffer = framebuffer[activeCubeFaceIndex]; - } - if (framebuffer) { - var restore = false; - if (framebuffer !== _currentFramebuffer) { - _gl.bindFramebuffer(36160, framebuffer); - restore = true; - } - try { - var texture = renderTarget.texture; - var textureFormat = texture.format; - var textureType = texture.type; - if (textureFormat !== RGBAFormat && utils.convert(textureFormat) !== _gl.getParameter(35739)) { - console.error('THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.'); - return; - } - if (textureType !== UnsignedByteType && utils.convert(textureType) !== _gl.getParameter(35738) && // IE11, Edge and Chrome Mac < 52 (#9513) - !(textureType === FloatType && (capabilities.isWebGL2 || extensions.get('OES_texture_float') || extensions.get('WEBGL_color_buffer_float'))) && // Chrome Mac >= 52 and Firefox - !(textureType === HalfFloatType && (capabilities.isWebGL2 ? extensions.get('EXT_color_buffer_float') : extensions.get('EXT_color_buffer_half_float')))) { - console.error('THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.'); - return; - } - if (_gl.checkFramebufferStatus(36160) === 36053) { - // the following if statement ensures valid read requests (no out-of-bounds pixels, see #8604) - if (x >= 0 && x <= renderTarget.width - width && y >= 0 && y <= renderTarget.height - height) { - _gl.readPixels(x, y, width, height, utils.convert(textureFormat), utils.convert(textureType), buffer); - } - } else { - console.error('THREE.WebGLRenderer.readRenderTargetPixels: readPixels from renderTarget failed. Framebuffer not complete.'); - } - } finally { - if (restore) { - _gl.bindFramebuffer(36160, _currentFramebuffer); - } - } - } - }; - this.copyFramebufferToTexture = function (position, texture, level) { - if (level === void 0) { - level = 0; - } - var levelScale = Math.pow(2, -level); - var width = Math.floor(texture.image.width * levelScale); - var height = Math.floor(texture.image.height * levelScale); - var glFormat = utils.convert(texture.format); - textures.setTexture2D(texture, 0); - _gl.copyTexImage2D(3553, level, glFormat, position.x, position.y, width, height, 0); - state.unbindTexture(); - }; - this.copyTextureToTexture = function (position, srcTexture, dstTexture, level) { - if (level === void 0) { - level = 0; - } - var width = srcTexture.image.width; - var height = srcTexture.image.height; - var glFormat = utils.convert(dstTexture.format); - var glType = utils.convert(dstTexture.type); - textures.setTexture2D(dstTexture, 0); // As another texture upload may have changed pixelStorei - // parameters, make sure they are correct for the dstTexture - _gl.pixelStorei(37440, dstTexture.flipY); - _gl.pixelStorei(37441, dstTexture.premultiplyAlpha); - _gl.pixelStorei(3317, dstTexture.unpackAlignment); - if (srcTexture.isDataTexture) { - _gl.texSubImage2D(3553, level, position.x, position.y, width, height, glFormat, glType, srcTexture.image.data); - } else { - if (srcTexture.isCompressedTexture) { - _gl.compressedTexSubImage2D(3553, level, position.x, position.y, srcTexture.mipmaps[0].width, srcTexture.mipmaps[0].height, glFormat, srcTexture.mipmaps[0].data); - } else { - _gl.texSubImage2D(3553, level, position.x, position.y, glFormat, glType, srcTexture.image); - } - } // Generate mipmaps only when copying level 0 - - if (level === 0 && dstTexture.generateMipmaps) _gl.generateMipmap(3553); - state.unbindTexture(); - }; - this.initTexture = function (texture) { - textures.setTexture2D(texture, 0); - state.unbindTexture(); - }; - if (typeof __THREE_DEVTOOLS__ !== 'undefined') { - __THREE_DEVTOOLS__.dispatchEvent(new CustomEvent('observe', { - detail: this - })); // eslint-disable-line no-undef - } - } - function WebGL1Renderer(parameters) { - WebGLRenderer.call(this, parameters); - } - WebGL1Renderer.prototype = Object.assign(Object.create(WebGLRenderer.prototype), { - constructor: WebGL1Renderer, - isWebGL1Renderer: true - }); - var FogExp2 = /*#__PURE__*/function () { - function FogExp2(color, density) { - Object.defineProperty(this, 'isFogExp2', { - value: true - }); - this.name = ''; - this.color = new Color(color); - this.density = density !== undefined ? density : 0.00025; - } - var _proto = FogExp2.prototype; - _proto.clone = function clone() { - return new FogExp2(this.color, this.density); - }; - _proto.toJSON = function toJSON() - /* meta */ - { - return { - type: 'FogExp2', - color: this.color.getHex(), - density: this.density - }; - }; - return FogExp2; - }(); - var Fog = /*#__PURE__*/function () { - function Fog(color, near, far) { - Object.defineProperty(this, 'isFog', { - value: true - }); - this.name = ''; - this.color = new Color(color); - this.near = near !== undefined ? near : 1; - this.far = far !== undefined ? far : 1000; - } - var _proto = Fog.prototype; - _proto.clone = function clone() { - return new Fog(this.color, this.near, this.far); - }; - _proto.toJSON = function toJSON() - /* meta */ - { - return { - type: 'Fog', - color: this.color.getHex(), - near: this.near, - far: this.far - }; - }; - return Fog; - }(); - var Scene = /*#__PURE__*/function (_Object3D) { - _inheritsLoose(Scene, _Object3D); - function Scene() { - var _this; - _this = _Object3D.call(this) || this; - Object.defineProperty(_assertThisInitialized(_this), 'isScene', { - value: true - }); - _this.type = 'Scene'; - _this.background = null; - _this.environment = null; - _this.fog = null; - _this.overrideMaterial = null; - _this.autoUpdate = true; // checked by the renderer - if (typeof __THREE_DEVTOOLS__ !== 'undefined') { - __THREE_DEVTOOLS__.dispatchEvent(new CustomEvent('observe', { - detail: _assertThisInitialized(_this) - })); // eslint-disable-line no-undef - } - return _this; - } - var _proto = Scene.prototype; - _proto.copy = function copy(source, recursive) { - _Object3D.prototype.copy.call(this, source, recursive); - if (source.background !== null) this.background = source.background.clone(); - if (source.environment !== null) this.environment = source.environment.clone(); - if (source.fog !== null) this.fog = source.fog.clone(); - if (source.overrideMaterial !== null) this.overrideMaterial = source.overrideMaterial.clone(); - this.autoUpdate = source.autoUpdate; - this.matrixAutoUpdate = source.matrixAutoUpdate; - return this; - }; - _proto.toJSON = function toJSON(meta) { - var data = _Object3D.prototype.toJSON.call(this, meta); - if (this.background !== null) data.object.background = this.background.toJSON(meta); - if (this.environment !== null) data.object.environment = this.environment.toJSON(meta); - if (this.fog !== null) data.object.fog = this.fog.toJSON(); - return data; - }; - return Scene; - }(Object3D); - function InterleavedBuffer(array, stride) { - this.array = array; - this.stride = stride; - this.count = array !== undefined ? array.length / stride : 0; - this.usage = StaticDrawUsage; - this.updateRange = { - offset: 0, - count: -1 - }; - this.version = 0; - this.uuid = MathUtils.generateUUID(); - } - Object.defineProperty(InterleavedBuffer.prototype, 'needsUpdate', { - set: function set(value) { - if (value === true) this.version++; - } - }); - Object.assign(InterleavedBuffer.prototype, { - isInterleavedBuffer: true, - onUploadCallback: function onUploadCallback() {}, - setUsage: function setUsage(value) { - this.usage = value; - return this; - }, - copy: function copy(source) { - this.array = new source.array.constructor(source.array); - this.count = source.count; - this.stride = source.stride; - this.usage = source.usage; - return this; - }, - copyAt: function copyAt(index1, attribute, index2) { - index1 *= this.stride; - index2 *= attribute.stride; - for (var i = 0, l = this.stride; i < l; i++) { - this.array[index1 + i] = attribute.array[index2 + i]; - } - return this; - }, - set: function set(value, offset) { - if (offset === void 0) { - offset = 0; - } - this.array.set(value, offset); - return this; - }, - clone: function clone(data) { - if (data.arrayBuffers === undefined) { - data.arrayBuffers = {}; - } - if (this.array.buffer._uuid === undefined) { - this.array.buffer._uuid = MathUtils.generateUUID(); - } - if (data.arrayBuffers[this.array.buffer._uuid] === undefined) { - data.arrayBuffers[this.array.buffer._uuid] = this.array.slice(0).buffer; - } - var array = new this.array.constructor(data.arrayBuffers[this.array.buffer._uuid]); - var ib = new InterleavedBuffer(array, this.stride); - ib.setUsage(this.usage); - return ib; - }, - onUpload: function onUpload(callback) { - this.onUploadCallback = callback; - return this; - }, - toJSON: function toJSON(data) { - if (data.arrayBuffers === undefined) { - data.arrayBuffers = {}; - } // generate UUID for array buffer if necessary - - if (this.array.buffer._uuid === undefined) { - this.array.buffer._uuid = MathUtils.generateUUID(); - } - if (data.arrayBuffers[this.array.buffer._uuid] === undefined) { - data.arrayBuffers[this.array.buffer._uuid] = Array.prototype.slice.call(new Uint32Array(this.array.buffer)); - } // - - return { - uuid: this.uuid, - buffer: this.array.buffer._uuid, - type: this.array.constructor.name, - stride: this.stride - }; - } - }); - var _vector$6 = new Vector3(); - function InterleavedBufferAttribute(interleavedBuffer, itemSize, offset, normalized) { - this.name = ''; - this.data = interleavedBuffer; - this.itemSize = itemSize; - this.offset = offset; - this.normalized = normalized === true; - } - Object.defineProperties(InterleavedBufferAttribute.prototype, { - count: { - get: function get() { - return this.data.count; - } - }, - array: { - get: function get() { - return this.data.array; - } - }, - needsUpdate: { - set: function set(value) { - this.data.needsUpdate = value; - } - } - }); - Object.assign(InterleavedBufferAttribute.prototype, { - isInterleavedBufferAttribute: true, - applyMatrix4: function applyMatrix4(m) { - for (var i = 0, l = this.data.count; i < l; i++) { - _vector$6.x = this.getX(i); - _vector$6.y = this.getY(i); - _vector$6.z = this.getZ(i); - _vector$6.applyMatrix4(m); - this.setXYZ(i, _vector$6.x, _vector$6.y, _vector$6.z); - } - return this; - }, - setX: function setX(index, x) { - this.data.array[index * this.data.stride + this.offset] = x; - return this; - }, - setY: function setY(index, y) { - this.data.array[index * this.data.stride + this.offset + 1] = y; - return this; - }, - setZ: function setZ(index, z) { - this.data.array[index * this.data.stride + this.offset + 2] = z; - return this; - }, - setW: function setW(index, w) { - this.data.array[index * this.data.stride + this.offset + 3] = w; - return this; - }, - getX: function getX(index) { - return this.data.array[index * this.data.stride + this.offset]; - }, - getY: function getY(index) { - return this.data.array[index * this.data.stride + this.offset + 1]; - }, - getZ: function getZ(index) { - return this.data.array[index * this.data.stride + this.offset + 2]; - }, - getW: function getW(index) { - return this.data.array[index * this.data.stride + this.offset + 3]; - }, - setXY: function setXY(index, x, y) { - index = index * this.data.stride + this.offset; - this.data.array[index + 0] = x; - this.data.array[index + 1] = y; - return this; - }, - setXYZ: function setXYZ(index, x, y, z) { - index = index * this.data.stride + this.offset; - this.data.array[index + 0] = x; - this.data.array[index + 1] = y; - this.data.array[index + 2] = z; - return this; - }, - setXYZW: function setXYZW(index, x, y, z, w) { - index = index * this.data.stride + this.offset; - this.data.array[index + 0] = x; - this.data.array[index + 1] = y; - this.data.array[index + 2] = z; - this.data.array[index + 3] = w; - return this; - }, - clone: function clone(data) { - if (data === undefined) { - console.log('THREE.InterleavedBufferAttribute.clone(): Cloning an interlaved buffer attribute will deinterleave buffer data.'); - var array = []; - for (var i = 0; i < this.count; i++) { - var index = i * this.data.stride + this.offset; - for (var j = 0; j < this.itemSize; j++) { - array.push(this.data.array[index + j]); - } - } - return new BufferAttribute(new this.array.constructor(array), this.itemSize, this.normalized); - } else { - if (data.interleavedBuffers === undefined) { - data.interleavedBuffers = {}; - } - if (data.interleavedBuffers[this.data.uuid] === undefined) { - data.interleavedBuffers[this.data.uuid] = this.data.clone(data); - } - return new InterleavedBufferAttribute(data.interleavedBuffers[this.data.uuid], this.itemSize, this.offset, this.normalized); - } - }, - toJSON: function toJSON(data) { - if (data === undefined) { - console.log('THREE.InterleavedBufferAttribute.toJSON(): Serializing an interlaved buffer attribute will deinterleave buffer data.'); - var array = []; - for (var i = 0; i < this.count; i++) { - var index = i * this.data.stride + this.offset; - for (var j = 0; j < this.itemSize; j++) { - array.push(this.data.array[index + j]); - } - } // deinterleave data and save it as an ordinary buffer attribute for now - - return { - itemSize: this.itemSize, - type: this.array.constructor.name, - array: array, - normalized: this.normalized - }; - } else { - // save as true interlaved attribtue - if (data.interleavedBuffers === undefined) { - data.interleavedBuffers = {}; - } - if (data.interleavedBuffers[this.data.uuid] === undefined) { - data.interleavedBuffers[this.data.uuid] = this.data.toJSON(data); - } - return { - isInterleavedBufferAttribute: true, - itemSize: this.itemSize, - data: this.data.uuid, - offset: this.offset, - normalized: this.normalized - }; - } - } - }); - /** - * parameters = { - * color: , - * map: new THREE.Texture( ), - * alphaMap: new THREE.Texture( ), - * rotation: , - * sizeAttenuation: - * } - */ - function SpriteMaterial(parameters) { - Material.call(this); - this.type = 'SpriteMaterial'; - this.color = new Color(0xffffff); - this.map = null; - this.alphaMap = null; - this.rotation = 0; - this.sizeAttenuation = true; - this.transparent = true; - this.setValues(parameters); - } - SpriteMaterial.prototype = Object.create(Material.prototype); - SpriteMaterial.prototype.constructor = SpriteMaterial; - SpriteMaterial.prototype.isSpriteMaterial = true; - SpriteMaterial.prototype.copy = function (source) { - Material.prototype.copy.call(this, source); - this.color.copy(source.color); - this.map = source.map; - this.alphaMap = source.alphaMap; - this.rotation = source.rotation; - this.sizeAttenuation = source.sizeAttenuation; - return this; - }; - var _geometry; - var _intersectPoint = new Vector3(); - var _worldScale = new Vector3(); - var _mvPosition = new Vector3(); - var _alignedPosition = new Vector2(); - var _rotatedPosition = new Vector2(); - var _viewWorldMatrix = new Matrix4(); - var _vA$1 = new Vector3(); - var _vB$1 = new Vector3(); - var _vC$1 = new Vector3(); - var _uvA$1 = new Vector2(); - var _uvB$1 = new Vector2(); - var _uvC$1 = new Vector2(); - function Sprite(material) { - Object3D.call(this); - this.type = 'Sprite'; - if (_geometry === undefined) { - _geometry = new BufferGeometry(); - var float32Array = new Float32Array([-0.5, -0.5, 0, 0, 0, 0.5, -0.5, 0, 1, 0, 0.5, 0.5, 0, 1, 1, -0.5, 0.5, 0, 0, 1]); - var interleavedBuffer = new InterleavedBuffer(float32Array, 5); - _geometry.setIndex([0, 1, 2, 0, 2, 3]); - _geometry.setAttribute('position', new InterleavedBufferAttribute(interleavedBuffer, 3, 0, false)); - _geometry.setAttribute('uv', new InterleavedBufferAttribute(interleavedBuffer, 2, 3, false)); - } - this.geometry = _geometry; - this.material = material !== undefined ? material : new SpriteMaterial(); - this.center = new Vector2(0.5, 0.5); - } - Sprite.prototype = Object.assign(Object.create(Object3D.prototype), { - constructor: Sprite, - isSprite: true, - raycast: function raycast(raycaster, intersects) { - if (raycaster.camera === null) { - console.error('THREE.Sprite: "Raycaster.camera" needs to be set in order to raycast against sprites.'); - } - _worldScale.setFromMatrixScale(this.matrixWorld); - _viewWorldMatrix.copy(raycaster.camera.matrixWorld); - this.modelViewMatrix.multiplyMatrices(raycaster.camera.matrixWorldInverse, this.matrixWorld); - _mvPosition.setFromMatrixPosition(this.modelViewMatrix); - if (raycaster.camera.isPerspectiveCamera && this.material.sizeAttenuation === false) { - _worldScale.multiplyScalar(-_mvPosition.z); - } - var rotation = this.material.rotation; - var sin, cos; - if (rotation !== 0) { - cos = Math.cos(rotation); - sin = Math.sin(rotation); - } - var center = this.center; - transformVertex(_vA$1.set(-0.5, -0.5, 0), _mvPosition, center, _worldScale, sin, cos); - transformVertex(_vB$1.set(0.5, -0.5, 0), _mvPosition, center, _worldScale, sin, cos); - transformVertex(_vC$1.set(0.5, 0.5, 0), _mvPosition, center, _worldScale, sin, cos); - _uvA$1.set(0, 0); - _uvB$1.set(1, 0); - _uvC$1.set(1, 1); // check first triangle - - var intersect = raycaster.ray.intersectTriangle(_vA$1, _vB$1, _vC$1, false, _intersectPoint); - if (intersect === null) { - // check second triangle - transformVertex(_vB$1.set(-0.5, 0.5, 0), _mvPosition, center, _worldScale, sin, cos); - _uvB$1.set(0, 1); - intersect = raycaster.ray.intersectTriangle(_vA$1, _vC$1, _vB$1, false, _intersectPoint); - if (intersect === null) { - return; - } - } - var distance = raycaster.ray.origin.distanceTo(_intersectPoint); - if (distance < raycaster.near || distance > raycaster.far) return; - intersects.push({ - distance: distance, - point: _intersectPoint.clone(), - uv: Triangle.getUV(_intersectPoint, _vA$1, _vB$1, _vC$1, _uvA$1, _uvB$1, _uvC$1, new Vector2()), - face: null, - object: this - }); - }, - copy: function copy(source) { - Object3D.prototype.copy.call(this, source); - if (source.center !== undefined) this.center.copy(source.center); - this.material = source.material; - return this; - } - }); - function transformVertex(vertexPosition, mvPosition, center, scale, sin, cos) { - // compute position in camera space - _alignedPosition.subVectors(vertexPosition, center).addScalar(0.5).multiply(scale); // to check if rotation is not zero - - if (sin !== undefined) { - _rotatedPosition.x = cos * _alignedPosition.x - sin * _alignedPosition.y; - _rotatedPosition.y = sin * _alignedPosition.x + cos * _alignedPosition.y; - } else { - _rotatedPosition.copy(_alignedPosition); - } - vertexPosition.copy(mvPosition); - vertexPosition.x += _rotatedPosition.x; - vertexPosition.y += _rotatedPosition.y; // transform to world space - vertexPosition.applyMatrix4(_viewWorldMatrix); - } - var _v1$4 = new Vector3(); - var _v2$2 = new Vector3(); - function LOD() { - Object3D.call(this); - this._currentLevel = 0; - this.type = 'LOD'; - Object.defineProperties(this, { - levels: { - enumerable: true, - value: [] - } - }); - this.autoUpdate = true; - } - LOD.prototype = Object.assign(Object.create(Object3D.prototype), { - constructor: LOD, - isLOD: true, - copy: function copy(source) { - Object3D.prototype.copy.call(this, source, false); - var levels = source.levels; - for (var i = 0, l = levels.length; i < l; i++) { - var level = levels[i]; - this.addLevel(level.object.clone(), level.distance); - } - this.autoUpdate = source.autoUpdate; - return this; - }, - addLevel: function addLevel(object, distance) { - if (distance === void 0) { - distance = 0; - } - distance = Math.abs(distance); - var levels = this.levels; - var l; - for (l = 0; l < levels.length; l++) { - if (distance < levels[l].distance) { - break; - } - } - levels.splice(l, 0, { - distance: distance, - object: object - }); - this.add(object); - return this; - }, - getCurrentLevel: function getCurrentLevel() { - return this._currentLevel; - }, - getObjectForDistance: function getObjectForDistance(distance) { - var levels = this.levels; - if (levels.length > 0) { - var i, l; - for (i = 1, l = levels.length; i < l; i++) { - if (distance < levels[i].distance) { - break; - } - } - return levels[i - 1].object; - } - return null; - }, - raycast: function raycast(raycaster, intersects) { - var levels = this.levels; - if (levels.length > 0) { - _v1$4.setFromMatrixPosition(this.matrixWorld); - var distance = raycaster.ray.origin.distanceTo(_v1$4); - this.getObjectForDistance(distance).raycast(raycaster, intersects); - } - }, - update: function update(camera) { - var levels = this.levels; - if (levels.length > 1) { - _v1$4.setFromMatrixPosition(camera.matrixWorld); - _v2$2.setFromMatrixPosition(this.matrixWorld); - var distance = _v1$4.distanceTo(_v2$2) / camera.zoom; - levels[0].object.visible = true; - var i, l; - for (i = 1, l = levels.length; i < l; i++) { - if (distance >= levels[i].distance) { - levels[i - 1].object.visible = false; - levels[i].object.visible = true; - } else { - break; - } - } - this._currentLevel = i - 1; - for (; i < l; i++) { - levels[i].object.visible = false; - } - } - }, - toJSON: function toJSON(meta) { - var data = Object3D.prototype.toJSON.call(this, meta); - if (this.autoUpdate === false) data.object.autoUpdate = false; - data.object.levels = []; - var levels = this.levels; - for (var i = 0, l = levels.length; i < l; i++) { - var level = levels[i]; - data.object.levels.push({ - object: level.object.uuid, - distance: level.distance - }); - } - return data; - } - }); - function SkinnedMesh(geometry, material) { - if (geometry && geometry.isGeometry) { - console.error('THREE.SkinnedMesh no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.'); - } - Mesh.call(this, geometry, material); - this.type = 'SkinnedMesh'; - this.bindMode = 'attached'; - this.bindMatrix = new Matrix4(); - this.bindMatrixInverse = new Matrix4(); - } - SkinnedMesh.prototype = Object.assign(Object.create(Mesh.prototype), { - constructor: SkinnedMesh, - isSkinnedMesh: true, - copy: function copy(source) { - Mesh.prototype.copy.call(this, source); - this.bindMode = source.bindMode; - this.bindMatrix.copy(source.bindMatrix); - this.bindMatrixInverse.copy(source.bindMatrixInverse); - this.skeleton = source.skeleton; - return this; - }, - bind: function bind(skeleton, bindMatrix) { - this.skeleton = skeleton; - if (bindMatrix === undefined) { - this.updateMatrixWorld(true); - this.skeleton.calculateInverses(); - bindMatrix = this.matrixWorld; - } - this.bindMatrix.copy(bindMatrix); - this.bindMatrixInverse.copy(bindMatrix).invert(); - }, - pose: function pose() { - this.skeleton.pose(); - }, - normalizeSkinWeights: function normalizeSkinWeights() { - var vector = new Vector4(); - var skinWeight = this.geometry.attributes.skinWeight; - for (var i = 0, l = skinWeight.count; i < l; i++) { - vector.x = skinWeight.getX(i); - vector.y = skinWeight.getY(i); - vector.z = skinWeight.getZ(i); - vector.w = skinWeight.getW(i); - var scale = 1.0 / vector.manhattanLength(); - if (scale !== Infinity) { - vector.multiplyScalar(scale); - } else { - vector.set(1, 0, 0, 0); // do something reasonable - } - skinWeight.setXYZW(i, vector.x, vector.y, vector.z, vector.w); - } - }, - updateMatrixWorld: function updateMatrixWorld(force) { - Mesh.prototype.updateMatrixWorld.call(this, force); - if (this.bindMode === 'attached') { - this.bindMatrixInverse.copy(this.matrixWorld).invert(); - } else if (this.bindMode === 'detached') { - this.bindMatrixInverse.copy(this.bindMatrix).invert(); - } else { - console.warn('THREE.SkinnedMesh: Unrecognized bindMode: ' + this.bindMode); - } - }, - boneTransform: function () { - var basePosition = new Vector3(); - var skinIndex = new Vector4(); - var skinWeight = new Vector4(); - var vector = new Vector3(); - var matrix = new Matrix4(); - return function (index, target) { - var skeleton = this.skeleton; - var geometry = this.geometry; - skinIndex.fromBufferAttribute(geometry.attributes.skinIndex, index); - skinWeight.fromBufferAttribute(geometry.attributes.skinWeight, index); - basePosition.fromBufferAttribute(geometry.attributes.position, index).applyMatrix4(this.bindMatrix); - target.set(0, 0, 0); - for (var i = 0; i < 4; i++) { - var weight = skinWeight.getComponent(i); - if (weight !== 0) { - var boneIndex = skinIndex.getComponent(i); - matrix.multiplyMatrices(skeleton.bones[boneIndex].matrixWorld, skeleton.boneInverses[boneIndex]); - target.addScaledVector(vector.copy(basePosition).applyMatrix4(matrix), weight); - } - } - return target.applyMatrix4(this.bindMatrixInverse); - }; - }() - }); - function Bone() { - Object3D.call(this); - this.type = 'Bone'; - } - Bone.prototype = Object.assign(Object.create(Object3D.prototype), { - constructor: Bone, - isBone: true - }); - var _offsetMatrix = new Matrix4(); - var _identityMatrix = new Matrix4(); - function Skeleton(bones, boneInverses) { - if (bones === void 0) { - bones = []; - } - if (boneInverses === void 0) { - boneInverses = []; - } - this.uuid = MathUtils.generateUUID(); - this.bones = bones.slice(0); - this.boneInverses = boneInverses; - this.boneMatrices = null; - this.boneTexture = null; - this.boneTextureSize = 0; - this.frame = -1; - this.init(); - } - Object.assign(Skeleton.prototype, { - init: function init() { - var bones = this.bones; - var boneInverses = this.boneInverses; - this.boneMatrices = new Float32Array(bones.length * 16); // calculate inverse bone matrices if necessary - if (boneInverses.length === 0) { - this.calculateInverses(); - } else { - // handle special case - if (bones.length !== boneInverses.length) { - console.warn('THREE.Skeleton: Number of inverse bone matrices does not match amount of bones.'); - this.boneInverses = []; - for (var i = 0, il = this.bones.length; i < il; i++) { - this.boneInverses.push(new Matrix4()); - } - } - } - }, - calculateInverses: function calculateInverses() { - this.boneInverses.length = 0; - for (var i = 0, il = this.bones.length; i < il; i++) { - var inverse = new Matrix4(); - if (this.bones[i]) { - inverse.copy(this.bones[i].matrixWorld).invert(); - } - this.boneInverses.push(inverse); - } - }, - pose: function pose() { - // recover the bind-time world matrices - for (var i = 0, il = this.bones.length; i < il; i++) { - var bone = this.bones[i]; - if (bone) { - bone.matrixWorld.copy(this.boneInverses[i]).invert(); - } - } // compute the local matrices, positions, rotations and scales - - for (var _i = 0, _il = this.bones.length; _i < _il; _i++) { - var _bone = this.bones[_i]; - if (_bone) { - if (_bone.parent && _bone.parent.isBone) { - _bone.matrix.copy(_bone.parent.matrixWorld).invert(); - _bone.matrix.multiply(_bone.matrixWorld); - } else { - _bone.matrix.copy(_bone.matrixWorld); - } - _bone.matrix.decompose(_bone.position, _bone.quaternion, _bone.scale); - } - } - }, - update: function update() { - var bones = this.bones; - var boneInverses = this.boneInverses; - var boneMatrices = this.boneMatrices; - var boneTexture = this.boneTexture; // flatten bone matrices to array - for (var i = 0, il = bones.length; i < il; i++) { - // compute the offset between the current and the original transform - var matrix = bones[i] ? bones[i].matrixWorld : _identityMatrix; - _offsetMatrix.multiplyMatrices(matrix, boneInverses[i]); - _offsetMatrix.toArray(boneMatrices, i * 16); - } - if (boneTexture !== null) { - boneTexture.needsUpdate = true; - } - }, - clone: function clone() { - return new Skeleton(this.bones, this.boneInverses); - }, - getBoneByName: function getBoneByName(name) { - for (var i = 0, il = this.bones.length; i < il; i++) { - var bone = this.bones[i]; - if (bone.name === name) { - return bone; - } - } - return undefined; - }, - dispose: function dispose() { - if (this.boneTexture !== null) { - this.boneTexture.dispose(); - this.boneTexture = null; - } - }, - fromJSON: function fromJSON(json, bones) { - this.uuid = json.uuid; - for (var i = 0, l = json.bones.length; i < l; i++) { - var uuid = json.bones[i]; - var bone = bones[uuid]; - if (bone === undefined) { - console.warn('THREE.Skeleton: No bone found with UUID:', uuid); - bone = new Bone(); - } - this.bones.push(bone); - this.boneInverses.push(new Matrix4().fromArray(json.boneInverses[i])); - } - this.init(); - return this; - }, - toJSON: function toJSON() { - var data = { - metadata: { - version: 4.5, - type: 'Skeleton', - generator: 'Skeleton.toJSON' - }, - bones: [], - boneInverses: [] - }; - data.uuid = this.uuid; - var bones = this.bones; - var boneInverses = this.boneInverses; - for (var i = 0, l = bones.length; i < l; i++) { - var bone = bones[i]; - data.bones.push(bone.uuid); - var boneInverse = boneInverses[i]; - data.boneInverses.push(boneInverse.toArray()); - } - return data; - } - }); - var _instanceLocalMatrix = new Matrix4(); - var _instanceWorldMatrix = new Matrix4(); - var _instanceIntersects = []; - var _mesh = new Mesh(); - function InstancedMesh(geometry, material, count) { - Mesh.call(this, geometry, material); - this.instanceMatrix = new BufferAttribute(new Float32Array(count * 16), 16); - this.instanceColor = null; - this.count = count; - this.frustumCulled = false; - } - InstancedMesh.prototype = Object.assign(Object.create(Mesh.prototype), { - constructor: InstancedMesh, - isInstancedMesh: true, - copy: function copy(source) { - Mesh.prototype.copy.call(this, source); - this.instanceMatrix.copy(source.instanceMatrix); - this.count = source.count; - return this; - }, - getColorAt: function getColorAt(index, color) { - color.fromArray(this.instanceColor.array, index * 3); - }, - getMatrixAt: function getMatrixAt(index, matrix) { - matrix.fromArray(this.instanceMatrix.array, index * 16); - }, - raycast: function raycast(raycaster, intersects) { - var matrixWorld = this.matrixWorld; - var raycastTimes = this.count; - _mesh.geometry = this.geometry; - _mesh.material = this.material; - if (_mesh.material === undefined) return; - for (var instanceId = 0; instanceId < raycastTimes; instanceId++) { - // calculate the world matrix for each instance - this.getMatrixAt(instanceId, _instanceLocalMatrix); - _instanceWorldMatrix.multiplyMatrices(matrixWorld, _instanceLocalMatrix); // the mesh represents this single instance - - _mesh.matrixWorld = _instanceWorldMatrix; - _mesh.raycast(raycaster, _instanceIntersects); // process the result of raycast - - for (var i = 0, l = _instanceIntersects.length; i < l; i++) { - var intersect = _instanceIntersects[i]; - intersect.instanceId = instanceId; - intersect.object = this; - intersects.push(intersect); - } - _instanceIntersects.length = 0; - } - }, - setColorAt: function setColorAt(index, color) { - if (this.instanceColor === null) { - this.instanceColor = new BufferAttribute(new Float32Array(this.count * 3), 3); - } - color.toArray(this.instanceColor.array, index * 3); - }, - setMatrixAt: function setMatrixAt(index, matrix) { - matrix.toArray(this.instanceMatrix.array, index * 16); - }, - updateMorphTargets: function updateMorphTargets() {}, - dispose: function dispose() { - this.dispatchEvent({ - type: 'dispose' - }); - } - }); - /** - * parameters = { - * color: , - * opacity: , - * - * linewidth: , - * linecap: "round", - * linejoin: "round" - * } - */ - function LineBasicMaterial(parameters) { - Material.call(this); - this.type = 'LineBasicMaterial'; - this.color = new Color(0xffffff); - this.linewidth = 1; - this.linecap = 'round'; - this.linejoin = 'round'; - this.morphTargets = false; - this.setValues(parameters); - } - LineBasicMaterial.prototype = Object.create(Material.prototype); - LineBasicMaterial.prototype.constructor = LineBasicMaterial; - LineBasicMaterial.prototype.isLineBasicMaterial = true; - LineBasicMaterial.prototype.copy = function (source) { - Material.prototype.copy.call(this, source); - this.color.copy(source.color); - this.linewidth = source.linewidth; - this.linecap = source.linecap; - this.linejoin = source.linejoin; - this.morphTargets = source.morphTargets; - return this; - }; - var _start = new Vector3(); - var _end = new Vector3(); - var _inverseMatrix$1 = new Matrix4(); - var _ray$1 = new Ray(); - var _sphere$2 = new Sphere(); - function Line(geometry, material, mode) { - if (mode === 1) { - console.error('THREE.Line: parameter THREE.LinePieces no longer supported. Use THREE.LineSegments instead.'); - } - Object3D.call(this); - this.type = 'Line'; - this.geometry = geometry !== undefined ? geometry : new BufferGeometry(); - this.material = material !== undefined ? material : new LineBasicMaterial(); - this.updateMorphTargets(); - } - Line.prototype = Object.assign(Object.create(Object3D.prototype), { - constructor: Line, - isLine: true, - copy: function copy(source) { - Object3D.prototype.copy.call(this, source); - this.material = source.material; - this.geometry = source.geometry; - return this; - }, - computeLineDistances: function computeLineDistances() { - var geometry = this.geometry; - if (geometry.isBufferGeometry) { - // we assume non-indexed geometry - if (geometry.index === null) { - var positionAttribute = geometry.attributes.position; - var lineDistances = [0]; - for (var i = 1, l = positionAttribute.count; i < l; i++) { - _start.fromBufferAttribute(positionAttribute, i - 1); - _end.fromBufferAttribute(positionAttribute, i); - lineDistances[i] = lineDistances[i - 1]; - lineDistances[i] += _start.distanceTo(_end); - } - geometry.setAttribute('lineDistance', new Float32BufferAttribute(lineDistances, 1)); - } else { - console.warn('THREE.Line.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.'); - } - } else if (geometry.isGeometry) { - var vertices = geometry.vertices; - var _lineDistances = geometry.lineDistances; - _lineDistances[0] = 0; - for (var _i = 1, _l = vertices.length; _i < _l; _i++) { - _lineDistances[_i] = _lineDistances[_i - 1]; - _lineDistances[_i] += vertices[_i - 1].distanceTo(vertices[_i]); - } - } - return this; - }, - raycast: function raycast(raycaster, intersects) { - var geometry = this.geometry; - var matrixWorld = this.matrixWorld; - var threshold = raycaster.params.Line.threshold; // Checking boundingSphere distance to ray - if (geometry.boundingSphere === null) geometry.computeBoundingSphere(); - _sphere$2.copy(geometry.boundingSphere); - _sphere$2.applyMatrix4(matrixWorld); - _sphere$2.radius += threshold; - if (raycaster.ray.intersectsSphere(_sphere$2) === false) return; // - _inverseMatrix$1.copy(matrixWorld).invert(); - _ray$1.copy(raycaster.ray).applyMatrix4(_inverseMatrix$1); - var localThreshold = threshold / ((this.scale.x + this.scale.y + this.scale.z) / 3); - var localThresholdSq = localThreshold * localThreshold; - var vStart = new Vector3(); - var vEnd = new Vector3(); - var interSegment = new Vector3(); - var interRay = new Vector3(); - var step = this.isLineSegments ? 2 : 1; - if (geometry.isBufferGeometry) { - var index = geometry.index; - var attributes = geometry.attributes; - var positionAttribute = attributes.position; - if (index !== null) { - var indices = index.array; - for (var i = 0, l = indices.length - 1; i < l; i += step) { - var a = indices[i]; - var b = indices[i + 1]; - vStart.fromBufferAttribute(positionAttribute, a); - vEnd.fromBufferAttribute(positionAttribute, b); - var distSq = _ray$1.distanceSqToSegment(vStart, vEnd, interRay, interSegment); - if (distSq > localThresholdSq) continue; - interRay.applyMatrix4(this.matrixWorld); //Move back to world space for distance calculation - var distance = raycaster.ray.origin.distanceTo(interRay); - if (distance < raycaster.near || distance > raycaster.far) continue; - intersects.push({ - distance: distance, - // What do we want? intersection point on the ray or on the segment?? - // point: raycaster.ray.at( distance ), - point: interSegment.clone().applyMatrix4(this.matrixWorld), - index: i, - face: null, - faceIndex: null, - object: this - }); - } - } else { - for (var _i2 = 0, _l2 = positionAttribute.count - 1; _i2 < _l2; _i2 += step) { - vStart.fromBufferAttribute(positionAttribute, _i2); - vEnd.fromBufferAttribute(positionAttribute, _i2 + 1); - var _distSq = _ray$1.distanceSqToSegment(vStart, vEnd, interRay, interSegment); - if (_distSq > localThresholdSq) continue; - interRay.applyMatrix4(this.matrixWorld); //Move back to world space for distance calculation - var _distance = raycaster.ray.origin.distanceTo(interRay); - if (_distance < raycaster.near || _distance > raycaster.far) continue; - intersects.push({ - distance: _distance, - // What do we want? intersection point on the ray or on the segment?? - // point: raycaster.ray.at( distance ), - point: interSegment.clone().applyMatrix4(this.matrixWorld), - index: _i2, - face: null, - faceIndex: null, - object: this - }); - } - } - } else if (geometry.isGeometry) { - var vertices = geometry.vertices; - var nbVertices = vertices.length; - for (var _i3 = 0; _i3 < nbVertices - 1; _i3 += step) { - var _distSq2 = _ray$1.distanceSqToSegment(vertices[_i3], vertices[_i3 + 1], interRay, interSegment); - if (_distSq2 > localThresholdSq) continue; - interRay.applyMatrix4(this.matrixWorld); //Move back to world space for distance calculation - var _distance2 = raycaster.ray.origin.distanceTo(interRay); - if (_distance2 < raycaster.near || _distance2 > raycaster.far) continue; - intersects.push({ - distance: _distance2, - // What do we want? intersection point on the ray or on the segment?? - // point: raycaster.ray.at( distance ), - point: interSegment.clone().applyMatrix4(this.matrixWorld), - index: _i3, - face: null, - faceIndex: null, - object: this - }); - } - } - }, - updateMorphTargets: function updateMorphTargets() { - var geometry = this.geometry; - if (geometry.isBufferGeometry) { - var morphAttributes = geometry.morphAttributes; - var keys = Object.keys(morphAttributes); - if (keys.length > 0) { - var morphAttribute = morphAttributes[keys[0]]; - if (morphAttribute !== undefined) { - this.morphTargetInfluences = []; - this.morphTargetDictionary = {}; - for (var m = 0, ml = morphAttribute.length; m < ml; m++) { - var name = morphAttribute[m].name || String(m); - this.morphTargetInfluences.push(0); - this.morphTargetDictionary[name] = m; - } - } - } - } else { - var morphTargets = geometry.morphTargets; - if (morphTargets !== undefined && morphTargets.length > 0) { - console.error('THREE.Line.updateMorphTargets() does not support THREE.Geometry. Use THREE.BufferGeometry instead.'); - } - } - } - }); - var _start$1 = new Vector3(); - var _end$1 = new Vector3(); - function LineSegments(geometry, material) { - Line.call(this, geometry, material); - this.type = 'LineSegments'; - } - LineSegments.prototype = Object.assign(Object.create(Line.prototype), { - constructor: LineSegments, - isLineSegments: true, - computeLineDistances: function computeLineDistances() { - var geometry = this.geometry; - if (geometry.isBufferGeometry) { - // we assume non-indexed geometry - if (geometry.index === null) { - var positionAttribute = geometry.attributes.position; - var lineDistances = []; - for (var i = 0, l = positionAttribute.count; i < l; i += 2) { - _start$1.fromBufferAttribute(positionAttribute, i); - _end$1.fromBufferAttribute(positionAttribute, i + 1); - lineDistances[i] = i === 0 ? 0 : lineDistances[i - 1]; - lineDistances[i + 1] = lineDistances[i] + _start$1.distanceTo(_end$1); - } - geometry.setAttribute('lineDistance', new Float32BufferAttribute(lineDistances, 1)); - } else { - console.warn('THREE.LineSegments.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.'); - } - } else if (geometry.isGeometry) { - var vertices = geometry.vertices; - var _lineDistances = geometry.lineDistances; - for (var _i = 0, _l = vertices.length; _i < _l; _i += 2) { - _start$1.copy(vertices[_i]); - _end$1.copy(vertices[_i + 1]); - _lineDistances[_i] = _i === 0 ? 0 : _lineDistances[_i - 1]; - _lineDistances[_i + 1] = _lineDistances[_i] + _start$1.distanceTo(_end$1); - } - } - return this; - } - }); - function LineLoop(geometry, material) { - Line.call(this, geometry, material); - this.type = 'LineLoop'; - } - LineLoop.prototype = Object.assign(Object.create(Line.prototype), { - constructor: LineLoop, - isLineLoop: true - }); - /** - * parameters = { - * color: , - * opacity: , - * map: new THREE.Texture( ), - * alphaMap: new THREE.Texture( ), - * - * size: , - * sizeAttenuation: - * - * morphTargets: - * } - */ - function PointsMaterial(parameters) { - Material.call(this); - this.type = 'PointsMaterial'; - this.color = new Color(0xffffff); - this.map = null; - this.alphaMap = null; - this.size = 1; - this.sizeAttenuation = true; - this.morphTargets = false; - this.setValues(parameters); - } - PointsMaterial.prototype = Object.create(Material.prototype); - PointsMaterial.prototype.constructor = PointsMaterial; - PointsMaterial.prototype.isPointsMaterial = true; - PointsMaterial.prototype.copy = function (source) { - Material.prototype.copy.call(this, source); - this.color.copy(source.color); - this.map = source.map; - this.alphaMap = source.alphaMap; - this.size = source.size; - this.sizeAttenuation = source.sizeAttenuation; - this.morphTargets = source.morphTargets; - return this; - }; - var _inverseMatrix$2 = new Matrix4(); - var _ray$2 = new Ray(); - var _sphere$3 = new Sphere(); - var _position$1 = new Vector3(); - function Points(geometry, material) { - Object3D.call(this); - this.type = 'Points'; - this.geometry = geometry !== undefined ? geometry : new BufferGeometry(); - this.material = material !== undefined ? material : new PointsMaterial(); - this.updateMorphTargets(); - } - Points.prototype = Object.assign(Object.create(Object3D.prototype), { - constructor: Points, - isPoints: true, - copy: function copy(source) { - Object3D.prototype.copy.call(this, source); - this.material = source.material; - this.geometry = source.geometry; - return this; - }, - raycast: function raycast(raycaster, intersects) { - var geometry = this.geometry; - var matrixWorld = this.matrixWorld; - var threshold = raycaster.params.Points.threshold; // Checking boundingSphere distance to ray - if (geometry.boundingSphere === null) geometry.computeBoundingSphere(); - _sphere$3.copy(geometry.boundingSphere); - _sphere$3.applyMatrix4(matrixWorld); - _sphere$3.radius += threshold; - if (raycaster.ray.intersectsSphere(_sphere$3) === false) return; // - _inverseMatrix$2.copy(matrixWorld).invert(); - _ray$2.copy(raycaster.ray).applyMatrix4(_inverseMatrix$2); - var localThreshold = threshold / ((this.scale.x + this.scale.y + this.scale.z) / 3); - var localThresholdSq = localThreshold * localThreshold; - if (geometry.isBufferGeometry) { - var index = geometry.index; - var attributes = geometry.attributes; - var positionAttribute = attributes.position; - if (index !== null) { - var indices = index.array; - for (var i = 0, il = indices.length; i < il; i++) { - var a = indices[i]; - _position$1.fromBufferAttribute(positionAttribute, a); - testPoint(_position$1, a, localThresholdSq, matrixWorld, raycaster, intersects, this); - } - } else { - for (var _i = 0, l = positionAttribute.count; _i < l; _i++) { - _position$1.fromBufferAttribute(positionAttribute, _i); - testPoint(_position$1, _i, localThresholdSq, matrixWorld, raycaster, intersects, this); - } - } - } else { - var vertices = geometry.vertices; - for (var _i2 = 0, _l = vertices.length; _i2 < _l; _i2++) { - testPoint(vertices[_i2], _i2, localThresholdSq, matrixWorld, raycaster, intersects, this); - } - } - }, - updateMorphTargets: function updateMorphTargets() { - var geometry = this.geometry; - if (geometry.isBufferGeometry) { - var morphAttributes = geometry.morphAttributes; - var keys = Object.keys(morphAttributes); - if (keys.length > 0) { - var morphAttribute = morphAttributes[keys[0]]; - if (morphAttribute !== undefined) { - this.morphTargetInfluences = []; - this.morphTargetDictionary = {}; - for (var m = 0, ml = morphAttribute.length; m < ml; m++) { - var name = morphAttribute[m].name || String(m); - this.morphTargetInfluences.push(0); - this.morphTargetDictionary[name] = m; - } - } - } - } else { - var morphTargets = geometry.morphTargets; - if (morphTargets !== undefined && morphTargets.length > 0) { - console.error('THREE.Points.updateMorphTargets() does not support THREE.Geometry. Use THREE.BufferGeometry instead.'); - } - } - } - }); - function testPoint(point, index, localThresholdSq, matrixWorld, raycaster, intersects, object) { - var rayPointDistanceSq = _ray$2.distanceSqToPoint(point); - if (rayPointDistanceSq < localThresholdSq) { - var intersectPoint = new Vector3(); - _ray$2.closestPointToPoint(point, intersectPoint); - intersectPoint.applyMatrix4(matrixWorld); - var distance = raycaster.ray.origin.distanceTo(intersectPoint); - if (distance < raycaster.near || distance > raycaster.far) return; - intersects.push({ - distance: distance, - distanceToRay: Math.sqrt(rayPointDistanceSq), - point: intersectPoint, - index: index, - face: null, - object: object - }); - } - } - function VideoTexture(video, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy) { - Texture.call(this, video, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy); - this.format = format !== undefined ? format : RGBFormat; - this.minFilter = minFilter !== undefined ? minFilter : LinearFilter; - this.magFilter = magFilter !== undefined ? magFilter : LinearFilter; - this.generateMipmaps = false; - var scope = this; - function updateVideo() { - scope.needsUpdate = true; - video.requestVideoFrameCallback(updateVideo); - } - if ('requestVideoFrameCallback' in video) { - video.requestVideoFrameCallback(updateVideo); - } - } - VideoTexture.prototype = Object.assign(Object.create(Texture.prototype), { - constructor: VideoTexture, - clone: function clone() { - return new this.constructor(this.image).copy(this); - }, - isVideoTexture: true, - update: function update() { - var video = this.image; - var hasVideoFrameCallback = ('requestVideoFrameCallback' in video); - if (hasVideoFrameCallback === false && video.readyState >= video.HAVE_CURRENT_DATA) { - this.needsUpdate = true; - } - } - }); - function CompressedTexture(mipmaps, width, height, format, type, mapping, wrapS, wrapT, magFilter, minFilter, anisotropy, encoding) { - Texture.call(this, null, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, encoding); - this.image = { - width: width, - height: height - }; - this.mipmaps = mipmaps; // no flipping for cube textures - // (also flipping doesn't work for compressed textures ) - this.flipY = false; // can't generate mipmaps for compressed textures - // mips must be embedded in DDS files - this.generateMipmaps = false; - } - CompressedTexture.prototype = Object.create(Texture.prototype); - CompressedTexture.prototype.constructor = CompressedTexture; - CompressedTexture.prototype.isCompressedTexture = true; - function CanvasTexture(canvas, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy) { - Texture.call(this, canvas, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy); - this.needsUpdate = true; - } - CanvasTexture.prototype = Object.create(Texture.prototype); - CanvasTexture.prototype.constructor = CanvasTexture; - CanvasTexture.prototype.isCanvasTexture = true; - function DepthTexture(width, height, type, mapping, wrapS, wrapT, magFilter, minFilter, anisotropy, format) { - format = format !== undefined ? format : DepthFormat; - if (format !== DepthFormat && format !== DepthStencilFormat) { - throw new Error('DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat'); - } - if (type === undefined && format === DepthFormat) type = UnsignedShortType; - if (type === undefined && format === DepthStencilFormat) type = UnsignedInt248Type; - Texture.call(this, null, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy); - this.image = { - width: width, - height: height - }; - this.magFilter = magFilter !== undefined ? magFilter : NearestFilter; - this.minFilter = minFilter !== undefined ? minFilter : NearestFilter; - this.flipY = false; - this.generateMipmaps = false; - } - DepthTexture.prototype = Object.create(Texture.prototype); - DepthTexture.prototype.constructor = DepthTexture; - DepthTexture.prototype.isDepthTexture = true; - var _geometryId = 0; // Geometry uses even numbers as Id - var _m1$3 = new Matrix4(); - var _obj$1 = new Object3D(); - var _offset$1 = new Vector3(); - function Geometry() { - Object.defineProperty(this, 'id', { - value: _geometryId += 2 - }); - this.uuid = MathUtils.generateUUID(); - this.name = ''; - this.type = 'Geometry'; - this.vertices = []; - this.colors = []; - this.faces = []; - this.faceVertexUvs = [[]]; - this.morphTargets = []; - this.morphNormals = []; - this.skinWeights = []; - this.skinIndices = []; - this.lineDistances = []; - this.boundingBox = null; - this.boundingSphere = null; // update flags - this.elementsNeedUpdate = false; - this.verticesNeedUpdate = false; - this.uvsNeedUpdate = false; - this.normalsNeedUpdate = false; - this.colorsNeedUpdate = false; - this.lineDistancesNeedUpdate = false; - this.groupsNeedUpdate = false; - } - Geometry.prototype = Object.assign(Object.create(EventDispatcher.prototype), { - constructor: Geometry, - isGeometry: true, - applyMatrix4: function applyMatrix4(matrix) { - var normalMatrix = new Matrix3().getNormalMatrix(matrix); - for (var i = 0, il = this.vertices.length; i < il; i++) { - var vertex = this.vertices[i]; - vertex.applyMatrix4(matrix); - } - for (var _i = 0, _il = this.faces.length; _i < _il; _i++) { - var face = this.faces[_i]; - face.normal.applyMatrix3(normalMatrix).normalize(); - for (var j = 0, jl = face.vertexNormals.length; j < jl; j++) { - face.vertexNormals[j].applyMatrix3(normalMatrix).normalize(); - } - } - if (this.boundingBox !== null) { - this.computeBoundingBox(); - } - if (this.boundingSphere !== null) { - this.computeBoundingSphere(); - } - this.verticesNeedUpdate = true; - this.normalsNeedUpdate = true; - return this; - }, - rotateX: function rotateX(angle) { - // rotate geometry around world x-axis - _m1$3.makeRotationX(angle); - this.applyMatrix4(_m1$3); - return this; - }, - rotateY: function rotateY(angle) { - // rotate geometry around world y-axis - _m1$3.makeRotationY(angle); - this.applyMatrix4(_m1$3); - return this; - }, - rotateZ: function rotateZ(angle) { - // rotate geometry around world z-axis - _m1$3.makeRotationZ(angle); - this.applyMatrix4(_m1$3); - return this; - }, - translate: function translate(x, y, z) { - // translate geometry - _m1$3.makeTranslation(x, y, z); - this.applyMatrix4(_m1$3); - return this; - }, - scale: function scale(x, y, z) { - // scale geometry - _m1$3.makeScale(x, y, z); - this.applyMatrix4(_m1$3); - return this; - }, - lookAt: function lookAt(vector) { - _obj$1.lookAt(vector); - _obj$1.updateMatrix(); - this.applyMatrix4(_obj$1.matrix); - return this; - }, - fromBufferGeometry: function fromBufferGeometry(geometry) { - var scope = this; - var index = geometry.index !== null ? geometry.index : undefined; - var attributes = geometry.attributes; - if (attributes.position === undefined) { - console.error('THREE.Geometry.fromBufferGeometry(): Position attribute required for conversion.'); - return this; - } - var position = attributes.position; - var normal = attributes.normal; - var color = attributes.color; - var uv = attributes.uv; - var uv2 = attributes.uv2; - if (uv2 !== undefined) this.faceVertexUvs[1] = []; - for (var i = 0; i < position.count; i++) { - scope.vertices.push(new Vector3().fromBufferAttribute(position, i)); - if (color !== undefined) { - scope.colors.push(new Color().fromBufferAttribute(color, i)); - } - } - function addFace(a, b, c, materialIndex) { - var vertexColors = color === undefined ? [] : [scope.colors[a].clone(), scope.colors[b].clone(), scope.colors[c].clone()]; - var vertexNormals = normal === undefined ? [] : [new Vector3().fromBufferAttribute(normal, a), new Vector3().fromBufferAttribute(normal, b), new Vector3().fromBufferAttribute(normal, c)]; - var face = new Face3(a, b, c, vertexNormals, vertexColors, materialIndex); - scope.faces.push(face); - if (uv !== undefined) { - scope.faceVertexUvs[0].push([new Vector2().fromBufferAttribute(uv, a), new Vector2().fromBufferAttribute(uv, b), new Vector2().fromBufferAttribute(uv, c)]); - } - if (uv2 !== undefined) { - scope.faceVertexUvs[1].push([new Vector2().fromBufferAttribute(uv2, a), new Vector2().fromBufferAttribute(uv2, b), new Vector2().fromBufferAttribute(uv2, c)]); - } - } - var groups = geometry.groups; - if (groups.length > 0) { - for (var _i2 = 0; _i2 < groups.length; _i2++) { - var group = groups[_i2]; - var start = group.start; - var count = group.count; - for (var j = start, jl = start + count; j < jl; j += 3) { - if (index !== undefined) { - addFace(index.getX(j), index.getX(j + 1), index.getX(j + 2), group.materialIndex); - } else { - addFace(j, j + 1, j + 2, group.materialIndex); - } - } - } - } else { - if (index !== undefined) { - for (var _i3 = 0; _i3 < index.count; _i3 += 3) { - addFace(index.getX(_i3), index.getX(_i3 + 1), index.getX(_i3 + 2)); - } - } else { - for (var _i4 = 0; _i4 < position.count; _i4 += 3) { - addFace(_i4, _i4 + 1, _i4 + 2); - } - } - } - this.computeFaceNormals(); - if (geometry.boundingBox !== null) { - this.boundingBox = geometry.boundingBox.clone(); - } - if (geometry.boundingSphere !== null) { - this.boundingSphere = geometry.boundingSphere.clone(); - } - return this; - }, - center: function center() { - this.computeBoundingBox(); - this.boundingBox.getCenter(_offset$1).negate(); - this.translate(_offset$1.x, _offset$1.y, _offset$1.z); - return this; - }, - normalize: function normalize() { - this.computeBoundingSphere(); - var center = this.boundingSphere.center; - var radius = this.boundingSphere.radius; - var s = radius === 0 ? 1 : 1.0 / radius; - var matrix = new Matrix4(); - matrix.set(s, 0, 0, -s * center.x, 0, s, 0, -s * center.y, 0, 0, s, -s * center.z, 0, 0, 0, 1); - this.applyMatrix4(matrix); - return this; - }, - computeFaceNormals: function computeFaceNormals() { - var cb = new Vector3(), - ab = new Vector3(); - for (var f = 0, fl = this.faces.length; f < fl; f++) { - var face = this.faces[f]; - var vA = this.vertices[face.a]; - var vB = this.vertices[face.b]; - var vC = this.vertices[face.c]; - cb.subVectors(vC, vB); - ab.subVectors(vA, vB); - cb.cross(ab); - cb.normalize(); - face.normal.copy(cb); - } - }, - computeVertexNormals: function computeVertexNormals(areaWeighted) { - if (areaWeighted === void 0) { - areaWeighted = true; - } - var vertices = new Array(this.vertices.length); - for (var v = 0, vl = this.vertices.length; v < vl; v++) { - vertices[v] = new Vector3(); - } - if (areaWeighted) { - // vertex normals weighted by triangle areas - // http://www.iquilezles.org/www/articles/normals/normals.htm - var cb = new Vector3(), - ab = new Vector3(); - for (var f = 0, fl = this.faces.length; f < fl; f++) { - var face = this.faces[f]; - var vA = this.vertices[face.a]; - var vB = this.vertices[face.b]; - var vC = this.vertices[face.c]; - cb.subVectors(vC, vB); - ab.subVectors(vA, vB); - cb.cross(ab); - vertices[face.a].add(cb); - vertices[face.b].add(cb); - vertices[face.c].add(cb); - } - } else { - this.computeFaceNormals(); - for (var _f = 0, _fl = this.faces.length; _f < _fl; _f++) { - var _face = this.faces[_f]; - vertices[_face.a].add(_face.normal); - vertices[_face.b].add(_face.normal); - vertices[_face.c].add(_face.normal); - } - } - for (var _v = 0, _vl = this.vertices.length; _v < _vl; _v++) { - vertices[_v].normalize(); - } - for (var _f2 = 0, _fl2 = this.faces.length; _f2 < _fl2; _f2++) { - var _face2 = this.faces[_f2]; - var vertexNormals = _face2.vertexNormals; - if (vertexNormals.length === 3) { - vertexNormals[0].copy(vertices[_face2.a]); - vertexNormals[1].copy(vertices[_face2.b]); - vertexNormals[2].copy(vertices[_face2.c]); - } else { - vertexNormals[0] = vertices[_face2.a].clone(); - vertexNormals[1] = vertices[_face2.b].clone(); - vertexNormals[2] = vertices[_face2.c].clone(); - } - } - if (this.faces.length > 0) { - this.normalsNeedUpdate = true; - } - }, - computeFlatVertexNormals: function computeFlatVertexNormals() { - this.computeFaceNormals(); - for (var f = 0, fl = this.faces.length; f < fl; f++) { - var face = this.faces[f]; - var vertexNormals = face.vertexNormals; - if (vertexNormals.length === 3) { - vertexNormals[0].copy(face.normal); - vertexNormals[1].copy(face.normal); - vertexNormals[2].copy(face.normal); - } else { - vertexNormals[0] = face.normal.clone(); - vertexNormals[1] = face.normal.clone(); - vertexNormals[2] = face.normal.clone(); - } - } - if (this.faces.length > 0) { - this.normalsNeedUpdate = true; - } - }, - computeMorphNormals: function computeMorphNormals() { - // save original normals - // - create temp variables on first access - // otherwise just copy (for faster repeated calls) - for (var f = 0, fl = this.faces.length; f < fl; f++) { - var face = this.faces[f]; - if (!face.__originalFaceNormal) { - face.__originalFaceNormal = face.normal.clone(); - } else { - face.__originalFaceNormal.copy(face.normal); - } - if (!face.__originalVertexNormals) face.__originalVertexNormals = []; - for (var i = 0, il = face.vertexNormals.length; i < il; i++) { - if (!face.__originalVertexNormals[i]) { - face.__originalVertexNormals[i] = face.vertexNormals[i].clone(); - } else { - face.__originalVertexNormals[i].copy(face.vertexNormals[i]); - } - } - } // use temp geometry to compute face and vertex normals for each morph - - var tmpGeo = new Geometry(); - tmpGeo.faces = this.faces; - for (var _i5 = 0, _il2 = this.morphTargets.length; _i5 < _il2; _i5++) { - // create on first access - if (!this.morphNormals[_i5]) { - this.morphNormals[_i5] = {}; - this.morphNormals[_i5].faceNormals = []; - this.morphNormals[_i5].vertexNormals = []; - var dstNormalsFace = this.morphNormals[_i5].faceNormals; - var dstNormalsVertex = this.morphNormals[_i5].vertexNormals; - for (var _f3 = 0, _fl3 = this.faces.length; _f3 < _fl3; _f3++) { - var faceNormal = new Vector3(); - var vertexNormals = { - a: new Vector3(), - b: new Vector3(), - c: new Vector3() - }; - dstNormalsFace.push(faceNormal); - dstNormalsVertex.push(vertexNormals); - } - } - var morphNormals = this.morphNormals[_i5]; // set vertices to morph target - tmpGeo.vertices = this.morphTargets[_i5].vertices; // compute morph normals - tmpGeo.computeFaceNormals(); - tmpGeo.computeVertexNormals(); // store morph normals - for (var _f4 = 0, _fl4 = this.faces.length; _f4 < _fl4; _f4++) { - var _face3 = this.faces[_f4]; - var _faceNormal = morphNormals.faceNormals[_f4]; - var _vertexNormals = morphNormals.vertexNormals[_f4]; - _faceNormal.copy(_face3.normal); - _vertexNormals.a.copy(_face3.vertexNormals[0]); - _vertexNormals.b.copy(_face3.vertexNormals[1]); - _vertexNormals.c.copy(_face3.vertexNormals[2]); - } - } // restore original normals - - for (var _f5 = 0, _fl5 = this.faces.length; _f5 < _fl5; _f5++) { - var _face4 = this.faces[_f5]; - _face4.normal = _face4.__originalFaceNormal; - _face4.vertexNormals = _face4.__originalVertexNormals; - } - }, - computeBoundingBox: function computeBoundingBox() { - if (this.boundingBox === null) { - this.boundingBox = new Box3(); - } - this.boundingBox.setFromPoints(this.vertices); - }, - computeBoundingSphere: function computeBoundingSphere() { - if (this.boundingSphere === null) { - this.boundingSphere = new Sphere(); - } - this.boundingSphere.setFromPoints(this.vertices); - }, - merge: function merge(geometry, matrix, materialIndexOffset) { - if (materialIndexOffset === void 0) { - materialIndexOffset = 0; - } - if (!(geometry && geometry.isGeometry)) { - console.error('THREE.Geometry.merge(): geometry not an instance of THREE.Geometry.', geometry); - return; - } - var normalMatrix; - var vertexOffset = this.vertices.length, - vertices1 = this.vertices, - vertices2 = geometry.vertices, - faces1 = this.faces, - faces2 = geometry.faces, - colors1 = this.colors, - colors2 = geometry.colors; - if (matrix !== undefined) { - normalMatrix = new Matrix3().getNormalMatrix(matrix); - } // vertices - - for (var i = 0, il = vertices2.length; i < il; i++) { - var vertex = vertices2[i]; - var vertexCopy = vertex.clone(); - if (matrix !== undefined) vertexCopy.applyMatrix4(matrix); - vertices1.push(vertexCopy); - } // colors - - for (var _i6 = 0, _il3 = colors2.length; _i6 < _il3; _i6++) { - colors1.push(colors2[_i6].clone()); - } // faces - - for (var _i7 = 0, _il4 = faces2.length; _i7 < _il4; _i7++) { - var face = faces2[_i7]; - var normal = void 0, - color = void 0; - var faceVertexNormals = face.vertexNormals, - faceVertexColors = face.vertexColors; - var faceCopy = new Face3(face.a + vertexOffset, face.b + vertexOffset, face.c + vertexOffset); - faceCopy.normal.copy(face.normal); - if (normalMatrix !== undefined) { - faceCopy.normal.applyMatrix3(normalMatrix).normalize(); - } - for (var j = 0, jl = faceVertexNormals.length; j < jl; j++) { - normal = faceVertexNormals[j].clone(); - if (normalMatrix !== undefined) { - normal.applyMatrix3(normalMatrix).normalize(); - } - faceCopy.vertexNormals.push(normal); - } - faceCopy.color.copy(face.color); - for (var _j = 0, _jl = faceVertexColors.length; _j < _jl; _j++) { - color = faceVertexColors[_j]; - faceCopy.vertexColors.push(color.clone()); - } - faceCopy.materialIndex = face.materialIndex + materialIndexOffset; - faces1.push(faceCopy); - } // uvs - - for (var _i8 = 0, _il5 = geometry.faceVertexUvs.length; _i8 < _il5; _i8++) { - var faceVertexUvs2 = geometry.faceVertexUvs[_i8]; - if (this.faceVertexUvs[_i8] === undefined) this.faceVertexUvs[_i8] = []; - for (var _j2 = 0, _jl2 = faceVertexUvs2.length; _j2 < _jl2; _j2++) { - var uvs2 = faceVertexUvs2[_j2], - uvsCopy = []; - for (var k = 0, kl = uvs2.length; k < kl; k++) { - uvsCopy.push(uvs2[k].clone()); - } - this.faceVertexUvs[_i8].push(uvsCopy); - } - } - }, - mergeMesh: function mergeMesh(mesh) { - if (!(mesh && mesh.isMesh)) { - console.error('THREE.Geometry.mergeMesh(): mesh not an instance of THREE.Mesh.', mesh); - return; - } - if (mesh.matrixAutoUpdate) mesh.updateMatrix(); - this.merge(mesh.geometry, mesh.matrix); - }, - /* - * Checks for duplicate vertices with hashmap. - * Duplicated vertices are removed - * and faces' vertices are updated. - */ - mergeVertices: function mergeVertices(precisionPoints) { - if (precisionPoints === void 0) { - precisionPoints = 4; - } - var verticesMap = {}; // Hashmap for looking up vertices by position coordinates (and making sure they are unique) - var unique = [], - changes = []; - var precision = Math.pow(10, precisionPoints); - for (var i = 0, il = this.vertices.length; i < il; i++) { - var v = this.vertices[i]; - var key = Math.round(v.x * precision) + '_' + Math.round(v.y * precision) + '_' + Math.round(v.z * precision); - if (verticesMap[key] === undefined) { - verticesMap[key] = i; - unique.push(this.vertices[i]); - changes[i] = unique.length - 1; - } else { - //console.log('Duplicate vertex found. ', i, ' could be using ', verticesMap[key]); - changes[i] = changes[verticesMap[key]]; - } - } // if faces are completely degenerate after merging vertices, we - // have to remove them from the geometry. - - var faceIndicesToRemove = []; - for (var _i9 = 0, _il6 = this.faces.length; _i9 < _il6; _i9++) { - var face = this.faces[_i9]; - face.a = changes[face.a]; - face.b = changes[face.b]; - face.c = changes[face.c]; - var indices = [face.a, face.b, face.c]; // if any duplicate vertices are found in a Face3 - // we have to remove the face as nothing can be saved - for (var n = 0; n < 3; n++) { - if (indices[n] === indices[(n + 1) % 3]) { - faceIndicesToRemove.push(_i9); - break; - } - } - } - for (var _i10 = faceIndicesToRemove.length - 1; _i10 >= 0; _i10--) { - var idx = faceIndicesToRemove[_i10]; - this.faces.splice(idx, 1); - for (var j = 0, jl = this.faceVertexUvs.length; j < jl; j++) { - this.faceVertexUvs[j].splice(idx, 1); - } - } // Use unique set of vertices - - var diff = this.vertices.length - unique.length; - this.vertices = unique; - return diff; - }, - setFromPoints: function setFromPoints(points) { - this.vertices = []; - for (var i = 0, l = points.length; i < l; i++) { - var point = points[i]; - this.vertices.push(new Vector3(point.x, point.y, point.z || 0)); - } - return this; - }, - sortFacesByMaterialIndex: function sortFacesByMaterialIndex() { - var faces = this.faces; - var length = faces.length; // tag faces - for (var i = 0; i < length; i++) { - faces[i]._id = i; - } // sort faces - - function materialIndexSort(a, b) { - return a.materialIndex - b.materialIndex; - } - faces.sort(materialIndexSort); // sort uvs - var uvs1 = this.faceVertexUvs[0]; - var uvs2 = this.faceVertexUvs[1]; - var newUvs1, newUvs2; - if (uvs1 && uvs1.length === length) newUvs1 = []; - if (uvs2 && uvs2.length === length) newUvs2 = []; - for (var _i11 = 0; _i11 < length; _i11++) { - var id = faces[_i11]._id; - if (newUvs1) newUvs1.push(uvs1[id]); - if (newUvs2) newUvs2.push(uvs2[id]); - } - if (newUvs1) this.faceVertexUvs[0] = newUvs1; - if (newUvs2) this.faceVertexUvs[1] = newUvs2; - }, - toJSON: function toJSON() { - var data = { - metadata: { - version: 4.5, - type: 'Geometry', - generator: 'Geometry.toJSON' - } - }; // standard Geometry serialization - data.uuid = this.uuid; - data.type = this.type; - if (this.name !== '') data.name = this.name; - if (this.parameters !== undefined) { - var parameters = this.parameters; - for (var key in parameters) { - if (parameters[key] !== undefined) data[key] = parameters[key]; - } - return data; - } - var vertices = []; - for (var i = 0; i < this.vertices.length; i++) { - var vertex = this.vertices[i]; - vertices.push(vertex.x, vertex.y, vertex.z); - } - var faces = []; - var normals = []; - var normalsHash = {}; - var colors = []; - var colorsHash = {}; - var uvs = []; - var uvsHash = {}; - for (var _i12 = 0; _i12 < this.faces.length; _i12++) { - var face = this.faces[_i12]; - var hasMaterial = true; - var hasFaceUv = false; // deprecated - var hasFaceVertexUv = this.faceVertexUvs[0][_i12] !== undefined; - var hasFaceNormal = face.normal.length() > 0; - var hasFaceVertexNormal = face.vertexNormals.length > 0; - var hasFaceColor = face.color.r !== 1 || face.color.g !== 1 || face.color.b !== 1; - var hasFaceVertexColor = face.vertexColors.length > 0; - var faceType = 0; - faceType = setBit(faceType, 0, 0); // isQuad - faceType = setBit(faceType, 1, hasMaterial); - faceType = setBit(faceType, 2, hasFaceUv); - faceType = setBit(faceType, 3, hasFaceVertexUv); - faceType = setBit(faceType, 4, hasFaceNormal); - faceType = setBit(faceType, 5, hasFaceVertexNormal); - faceType = setBit(faceType, 6, hasFaceColor); - faceType = setBit(faceType, 7, hasFaceVertexColor); - faces.push(faceType); - faces.push(face.a, face.b, face.c); - faces.push(face.materialIndex); - if (hasFaceVertexUv) { - var faceVertexUvs = this.faceVertexUvs[0][_i12]; - faces.push(getUvIndex(faceVertexUvs[0]), getUvIndex(faceVertexUvs[1]), getUvIndex(faceVertexUvs[2])); - } - if (hasFaceNormal) { - faces.push(getNormalIndex(face.normal)); - } - if (hasFaceVertexNormal) { - var vertexNormals = face.vertexNormals; - faces.push(getNormalIndex(vertexNormals[0]), getNormalIndex(vertexNormals[1]), getNormalIndex(vertexNormals[2])); - } - if (hasFaceColor) { - faces.push(getColorIndex(face.color)); - } - if (hasFaceVertexColor) { - var vertexColors = face.vertexColors; - faces.push(getColorIndex(vertexColors[0]), getColorIndex(vertexColors[1]), getColorIndex(vertexColors[2])); - } - } - function setBit(value, position, enabled) { - return enabled ? value | 1 << position : value & ~(1 << position); - } - function getNormalIndex(normal) { - var hash = normal.x.toString() + normal.y.toString() + normal.z.toString(); - if (normalsHash[hash] !== undefined) { - return normalsHash[hash]; - } - normalsHash[hash] = normals.length / 3; - normals.push(normal.x, normal.y, normal.z); - return normalsHash[hash]; - } - function getColorIndex(color) { - var hash = color.r.toString() + color.g.toString() + color.b.toString(); - if (colorsHash[hash] !== undefined) { - return colorsHash[hash]; - } - colorsHash[hash] = colors.length; - colors.push(color.getHex()); - return colorsHash[hash]; - } - function getUvIndex(uv) { - var hash = uv.x.toString() + uv.y.toString(); - if (uvsHash[hash] !== undefined) { - return uvsHash[hash]; - } - uvsHash[hash] = uvs.length / 2; - uvs.push(uv.x, uv.y); - return uvsHash[hash]; - } - data.data = {}; - data.data.vertices = vertices; - data.data.normals = normals; - if (colors.length > 0) data.data.colors = colors; - if (uvs.length > 0) data.data.uvs = [uvs]; // temporal backward compatibility - data.data.faces = faces; - return data; - }, - clone: function clone() { - /* - // Handle primitives - const parameters = this.parameters; - if ( parameters !== undefined ) { - const values = []; - for ( const key in parameters ) { - values.push( parameters[ key ] ); - } - const geometry = Object.create( this.constructor.prototype ); - this.constructor.apply( geometry, values ); - return geometry; - } - return new this.constructor().copy( this ); - */ - return new Geometry().copy(this); - }, - copy: function copy(source) { - // reset - this.vertices = []; - this.colors = []; - this.faces = []; - this.faceVertexUvs = [[]]; - this.morphTargets = []; - this.morphNormals = []; - this.skinWeights = []; - this.skinIndices = []; - this.lineDistances = []; - this.boundingBox = null; - this.boundingSphere = null; // name - this.name = source.name; // vertices - var vertices = source.vertices; - for (var i = 0, il = vertices.length; i < il; i++) { - this.vertices.push(vertices[i].clone()); - } // colors - - var colors = source.colors; - for (var _i13 = 0, _il7 = colors.length; _i13 < _il7; _i13++) { - this.colors.push(colors[_i13].clone()); - } // faces - - var faces = source.faces; - for (var _i14 = 0, _il8 = faces.length; _i14 < _il8; _i14++) { - this.faces.push(faces[_i14].clone()); - } // face vertex uvs - - for (var _i15 = 0, _il9 = source.faceVertexUvs.length; _i15 < _il9; _i15++) { - var faceVertexUvs = source.faceVertexUvs[_i15]; - if (this.faceVertexUvs[_i15] === undefined) { - this.faceVertexUvs[_i15] = []; - } - for (var j = 0, jl = faceVertexUvs.length; j < jl; j++) { - var uvs = faceVertexUvs[j], - uvsCopy = []; - for (var k = 0, kl = uvs.length; k < kl; k++) { - var uv = uvs[k]; - uvsCopy.push(uv.clone()); - } - this.faceVertexUvs[_i15].push(uvsCopy); - } - } // morph targets - - var morphTargets = source.morphTargets; - for (var _i16 = 0, _il10 = morphTargets.length; _i16 < _il10; _i16++) { - var morphTarget = {}; - morphTarget.name = morphTargets[_i16].name; // vertices - if (morphTargets[_i16].vertices !== undefined) { - morphTarget.vertices = []; - for (var _j3 = 0, _jl3 = morphTargets[_i16].vertices.length; _j3 < _jl3; _j3++) { - morphTarget.vertices.push(morphTargets[_i16].vertices[_j3].clone()); - } - } // normals - - if (morphTargets[_i16].normals !== undefined) { - morphTarget.normals = []; - for (var _j4 = 0, _jl4 = morphTargets[_i16].normals.length; _j4 < _jl4; _j4++) { - morphTarget.normals.push(morphTargets[_i16].normals[_j4].clone()); - } - } - this.morphTargets.push(morphTarget); - } // morph normals - - var morphNormals = source.morphNormals; - for (var _i17 = 0, _il11 = morphNormals.length; _i17 < _il11; _i17++) { - var morphNormal = {}; // vertex normals - if (morphNormals[_i17].vertexNormals !== undefined) { - morphNormal.vertexNormals = []; - for (var _j5 = 0, _jl5 = morphNormals[_i17].vertexNormals.length; _j5 < _jl5; _j5++) { - var srcVertexNormal = morphNormals[_i17].vertexNormals[_j5]; - var destVertexNormal = {}; - destVertexNormal.a = srcVertexNormal.a.clone(); - destVertexNormal.b = srcVertexNormal.b.clone(); - destVertexNormal.c = srcVertexNormal.c.clone(); - morphNormal.vertexNormals.push(destVertexNormal); - } - } // face normals - - if (morphNormals[_i17].faceNormals !== undefined) { - morphNormal.faceNormals = []; - for (var _j6 = 0, _jl6 = morphNormals[_i17].faceNormals.length; _j6 < _jl6; _j6++) { - morphNormal.faceNormals.push(morphNormals[_i17].faceNormals[_j6].clone()); - } - } - this.morphNormals.push(morphNormal); - } // skin weights - - var skinWeights = source.skinWeights; - for (var _i18 = 0, _il12 = skinWeights.length; _i18 < _il12; _i18++) { - this.skinWeights.push(skinWeights[_i18].clone()); - } // skin indices - - var skinIndices = source.skinIndices; - for (var _i19 = 0, _il13 = skinIndices.length; _i19 < _il13; _i19++) { - this.skinIndices.push(skinIndices[_i19].clone()); - } // line distances - - var lineDistances = source.lineDistances; - for (var _i20 = 0, _il14 = lineDistances.length; _i20 < _il14; _i20++) { - this.lineDistances.push(lineDistances[_i20]); - } // bounding box - - var boundingBox = source.boundingBox; - if (boundingBox !== null) { - this.boundingBox = boundingBox.clone(); - } // bounding sphere - - var boundingSphere = source.boundingSphere; - if (boundingSphere !== null) { - this.boundingSphere = boundingSphere.clone(); - } // update flags - - this.elementsNeedUpdate = source.elementsNeedUpdate; - this.verticesNeedUpdate = source.verticesNeedUpdate; - this.uvsNeedUpdate = source.uvsNeedUpdate; - this.normalsNeedUpdate = source.normalsNeedUpdate; - this.colorsNeedUpdate = source.colorsNeedUpdate; - this.lineDistancesNeedUpdate = source.lineDistancesNeedUpdate; - this.groupsNeedUpdate = source.groupsNeedUpdate; - return this; - }, - dispose: function dispose() { - this.dispatchEvent({ - type: 'dispose' - }); - } - }); - var BoxGeometry = /*#__PURE__*/function (_Geometry) { - _inheritsLoose(BoxGeometry, _Geometry); - function BoxGeometry(width, height, depth, widthSegments, heightSegments, depthSegments) { - var _this; - _this = _Geometry.call(this) || this; - _this.type = 'BoxGeometry'; - _this.parameters = { - width: width, - height: height, - depth: depth, - widthSegments: widthSegments, - heightSegments: heightSegments, - depthSegments: depthSegments - }; - _this.fromBufferGeometry(new BoxBufferGeometry(width, height, depth, widthSegments, heightSegments, depthSegments)); - _this.mergeVertices(); - return _this; - } - return BoxGeometry; - }(Geometry); - var CircleBufferGeometry = /*#__PURE__*/function (_BufferGeometry) { - _inheritsLoose(CircleBufferGeometry, _BufferGeometry); - function CircleBufferGeometry(radius, segments, thetaStart, thetaLength) { - var _this; - if (radius === void 0) { - radius = 1; - } - if (segments === void 0) { - segments = 8; - } - if (thetaStart === void 0) { - thetaStart = 0; - } - if (thetaLength === void 0) { - thetaLength = Math.PI * 2; - } - _this = _BufferGeometry.call(this) || this; - _this.type = 'CircleBufferGeometry'; - _this.parameters = { - radius: radius, - segments: segments, - thetaStart: thetaStart, - thetaLength: thetaLength - }; - segments = Math.max(3, segments); // buffers - var indices = []; - var vertices = []; - var normals = []; - var uvs = []; // helper variables - var vertex = new Vector3(); - var uv = new Vector2(); // center point - vertices.push(0, 0, 0); - normals.push(0, 0, 1); - uvs.push(0.5, 0.5); - for (var s = 0, i = 3; s <= segments; s++, i += 3) { - var segment = thetaStart + s / segments * thetaLength; // vertex - vertex.x = radius * Math.cos(segment); - vertex.y = radius * Math.sin(segment); - vertices.push(vertex.x, vertex.y, vertex.z); // normal - normals.push(0, 0, 1); // uvs - uv.x = (vertices[i] / radius + 1) / 2; - uv.y = (vertices[i + 1] / radius + 1) / 2; - uvs.push(uv.x, uv.y); - } // indices - - for (var _i = 1; _i <= segments; _i++) { - indices.push(_i, _i + 1, 0); - } // build geometry - - _this.setIndex(indices); - _this.setAttribute('position', new Float32BufferAttribute(vertices, 3)); - _this.setAttribute('normal', new Float32BufferAttribute(normals, 3)); - _this.setAttribute('uv', new Float32BufferAttribute(uvs, 2)); - return _this; - } - return CircleBufferGeometry; - }(BufferGeometry); - var CircleGeometry = /*#__PURE__*/function (_Geometry) { - _inheritsLoose(CircleGeometry, _Geometry); - function CircleGeometry(radius, segments, thetaStart, thetaLength) { - var _this; - _this = _Geometry.call(this) || this; - _this.type = 'CircleGeometry'; - _this.parameters = { - radius: radius, - segments: segments, - thetaStart: thetaStart, - thetaLength: thetaLength - }; - _this.fromBufferGeometry(new CircleBufferGeometry(radius, segments, thetaStart, thetaLength)); - _this.mergeVertices(); - return _this; - } - return CircleGeometry; - }(Geometry); - var CylinderBufferGeometry = /*#__PURE__*/function (_BufferGeometry) { - _inheritsLoose(CylinderBufferGeometry, _BufferGeometry); - function CylinderBufferGeometry(radiusTop, radiusBottom, height, radialSegments, heightSegments, openEnded, thetaStart, thetaLength) { - var _this; - if (radiusTop === void 0) { - radiusTop = 1; - } - if (radiusBottom === void 0) { - radiusBottom = 1; - } - if (height === void 0) { - height = 1; - } - if (radialSegments === void 0) { - radialSegments = 8; - } - if (heightSegments === void 0) { - heightSegments = 1; - } - if (openEnded === void 0) { - openEnded = false; - } - if (thetaStart === void 0) { - thetaStart = 0; - } - if (thetaLength === void 0) { - thetaLength = Math.PI * 2; - } - _this = _BufferGeometry.call(this) || this; - _this.type = 'CylinderBufferGeometry'; - _this.parameters = { - radiusTop: radiusTop, - radiusBottom: radiusBottom, - height: height, - radialSegments: radialSegments, - heightSegments: heightSegments, - openEnded: openEnded, - thetaStart: thetaStart, - thetaLength: thetaLength - }; - var scope = _assertThisInitialized(_this); - radialSegments = Math.floor(radialSegments); - heightSegments = Math.floor(heightSegments); // buffers - var indices = []; - var vertices = []; - var normals = []; - var uvs = []; // helper variables - var index = 0; - var indexArray = []; - var halfHeight = height / 2; - var groupStart = 0; // generate geometry - generateTorso(); - if (openEnded === false) { - if (radiusTop > 0) generateCap(true); - if (radiusBottom > 0) generateCap(false); - } // build geometry - - _this.setIndex(indices); - _this.setAttribute('position', new Float32BufferAttribute(vertices, 3)); - _this.setAttribute('normal', new Float32BufferAttribute(normals, 3)); - _this.setAttribute('uv', new Float32BufferAttribute(uvs, 2)); - function generateTorso() { - var normal = new Vector3(); - var vertex = new Vector3(); - var groupCount = 0; // this will be used to calculate the normal - var slope = (radiusBottom - radiusTop) / height; // generate vertices, normals and uvs - for (var y = 0; y <= heightSegments; y++) { - var indexRow = []; - var v = y / heightSegments; // calculate the radius of the current row - var radius = v * (radiusBottom - radiusTop) + radiusTop; - for (var x = 0; x <= radialSegments; x++) { - var u = x / radialSegments; - var theta = u * thetaLength + thetaStart; - var sinTheta = Math.sin(theta); - var cosTheta = Math.cos(theta); // vertex - vertex.x = radius * sinTheta; - vertex.y = -v * height + halfHeight; - vertex.z = radius * cosTheta; - vertices.push(vertex.x, vertex.y, vertex.z); // normal - normal.set(sinTheta, slope, cosTheta).normalize(); - normals.push(normal.x, normal.y, normal.z); // uv - uvs.push(u, 1 - v); // save index of vertex in respective row - indexRow.push(index++); - } // now save vertices of the row in our index array - - indexArray.push(indexRow); - } // generate indices - - for (var _x = 0; _x < radialSegments; _x++) { - for (var _y = 0; _y < heightSegments; _y++) { - // we use the index array to access the correct indices - var a = indexArray[_y][_x]; - var b = indexArray[_y + 1][_x]; - var c = indexArray[_y + 1][_x + 1]; - var d = indexArray[_y][_x + 1]; // faces - indices.push(a, b, d); - indices.push(b, c, d); // update group counter - groupCount += 6; - } - } // add a group to the geometry. this will ensure multi material support - - scope.addGroup(groupStart, groupCount, 0); // calculate new start value for groups - groupStart += groupCount; - } - function generateCap(top) { - // save the index of the first center vertex - var centerIndexStart = index; - var uv = new Vector2(); - var vertex = new Vector3(); - var groupCount = 0; - var radius = top === true ? radiusTop : radiusBottom; - var sign = top === true ? 1 : -1; // first we generate the center vertex data of the cap. - // because the geometry needs one set of uvs per face, - // we must generate a center vertex per face/segment - for (var x = 1; x <= radialSegments; x++) { - // vertex - vertices.push(0, halfHeight * sign, 0); // normal - normals.push(0, sign, 0); // uv - uvs.push(0.5, 0.5); // increase index - index++; - } // save the index of the last center vertex - - var centerIndexEnd = index; // now we generate the surrounding vertices, normals and uvs - for (var _x2 = 0; _x2 <= radialSegments; _x2++) { - var u = _x2 / radialSegments; - var theta = u * thetaLength + thetaStart; - var cosTheta = Math.cos(theta); - var sinTheta = Math.sin(theta); // vertex - vertex.x = radius * sinTheta; - vertex.y = halfHeight * sign; - vertex.z = radius * cosTheta; - vertices.push(vertex.x, vertex.y, vertex.z); // normal - normals.push(0, sign, 0); // uv - uv.x = cosTheta * 0.5 + 0.5; - uv.y = sinTheta * 0.5 * sign + 0.5; - uvs.push(uv.x, uv.y); // increase index - index++; - } // generate indices - - for (var _x3 = 0; _x3 < radialSegments; _x3++) { - var c = centerIndexStart + _x3; - var i = centerIndexEnd + _x3; - if (top === true) { - // face top - indices.push(i, i + 1, c); - } else { - // face bottom - indices.push(i + 1, i, c); - } - groupCount += 3; - } // add a group to the geometry. this will ensure multi material support - - scope.addGroup(groupStart, groupCount, top === true ? 1 : 2); // calculate new start value for groups - groupStart += groupCount; - } - return _this; - } - return CylinderBufferGeometry; - }(BufferGeometry); - var CylinderGeometry = /*#__PURE__*/function (_Geometry) { - _inheritsLoose(CylinderGeometry, _Geometry); - function CylinderGeometry(radiusTop, radiusBottom, height, radialSegments, heightSegments, openEnded, thetaStart, thetaLength) { - var _this; - _this = _Geometry.call(this) || this; - _this.type = 'CylinderGeometry'; - _this.parameters = { - radiusTop: radiusTop, - radiusBottom: radiusBottom, - height: height, - radialSegments: radialSegments, - heightSegments: heightSegments, - openEnded: openEnded, - thetaStart: thetaStart, - thetaLength: thetaLength - }; - _this.fromBufferGeometry(new CylinderBufferGeometry(radiusTop, radiusBottom, height, radialSegments, heightSegments, openEnded, thetaStart, thetaLength)); - _this.mergeVertices(); - return _this; - } - return CylinderGeometry; - }(Geometry); - var ConeGeometry = /*#__PURE__*/function (_CylinderGeometry) { - _inheritsLoose(ConeGeometry, _CylinderGeometry); - function ConeGeometry(radius, height, radialSegments, heightSegments, openEnded, thetaStart, thetaLength) { - var _this; - _this = _CylinderGeometry.call(this, 0, radius, height, radialSegments, heightSegments, openEnded, thetaStart, thetaLength) || this; - _this.type = 'ConeGeometry'; - _this.parameters = { - radius: radius, - height: height, - radialSegments: radialSegments, - heightSegments: heightSegments, - openEnded: openEnded, - thetaStart: thetaStart, - thetaLength: thetaLength - }; - return _this; - } - return ConeGeometry; - }(CylinderGeometry); - var ConeBufferGeometry = /*#__PURE__*/function (_CylinderBufferGeomet) { - _inheritsLoose(ConeBufferGeometry, _CylinderBufferGeomet); - function ConeBufferGeometry(radius, height, radialSegments, heightSegments, openEnded, thetaStart, thetaLength) { - var _this; - if (radius === void 0) { - radius = 1; - } - if (height === void 0) { - height = 1; - } - if (radialSegments === void 0) { - radialSegments = 8; - } - if (heightSegments === void 0) { - heightSegments = 1; - } - if (openEnded === void 0) { - openEnded = false; - } - if (thetaStart === void 0) { - thetaStart = 0; - } - if (thetaLength === void 0) { - thetaLength = Math.PI * 2; - } - _this = _CylinderBufferGeomet.call(this, 0, radius, height, radialSegments, heightSegments, openEnded, thetaStart, thetaLength) || this; - _this.type = 'ConeBufferGeometry'; - _this.parameters = { - radius: radius, - height: height, - radialSegments: radialSegments, - heightSegments: heightSegments, - openEnded: openEnded, - thetaStart: thetaStart, - thetaLength: thetaLength - }; - return _this; - } - return ConeBufferGeometry; - }(CylinderBufferGeometry); - var PolyhedronBufferGeometry = /*#__PURE__*/function (_BufferGeometry) { - _inheritsLoose(PolyhedronBufferGeometry, _BufferGeometry); - function PolyhedronBufferGeometry(vertices, indices, radius, detail) { - var _this; - if (radius === void 0) { - radius = 1; - } - if (detail === void 0) { - detail = 0; - } - _this = _BufferGeometry.call(this) || this; - _this.type = 'PolyhedronBufferGeometry'; - _this.parameters = { - vertices: vertices, - indices: indices, - radius: radius, - detail: detail - }; // default buffer data - var vertexBuffer = []; - var uvBuffer = []; // the subdivision creates the vertex buffer data - subdivide(detail); // all vertices should lie on a conceptual sphere with a given radius - applyRadius(radius); // finally, create the uv data - generateUVs(); // build non-indexed geometry - _this.setAttribute('position', new Float32BufferAttribute(vertexBuffer, 3)); - _this.setAttribute('normal', new Float32BufferAttribute(vertexBuffer.slice(), 3)); - _this.setAttribute('uv', new Float32BufferAttribute(uvBuffer, 2)); - if (detail === 0) { - _this.computeVertexNormals(); // flat normals - } else { - _this.normalizeNormals(); // smooth normals - } // helper functions - - function subdivide(detail) { - var a = new Vector3(); - var b = new Vector3(); - var c = new Vector3(); // iterate over all faces and apply a subdivison with the given detail value - for (var i = 0; i < indices.length; i += 3) { - // get the vertices of the face - getVertexByIndex(indices[i + 0], a); - getVertexByIndex(indices[i + 1], b); - getVertexByIndex(indices[i + 2], c); // perform subdivision - subdivideFace(a, b, c, detail); - } - } - function subdivideFace(a, b, c, detail) { - var cols = detail + 1; // we use this multidimensional array as a data structure for creating the subdivision - var v = []; // construct all of the vertices for this subdivision - for (var i = 0; i <= cols; i++) { - v[i] = []; - var aj = a.clone().lerp(c, i / cols); - var bj = b.clone().lerp(c, i / cols); - var rows = cols - i; - for (var j = 0; j <= rows; j++) { - if (j === 0 && i === cols) { - v[i][j] = aj; - } else { - v[i][j] = aj.clone().lerp(bj, j / rows); - } - } - } // construct all of the faces - - for (var _i = 0; _i < cols; _i++) { - for (var _j = 0; _j < 2 * (cols - _i) - 1; _j++) { - var k = Math.floor(_j / 2); - if (_j % 2 === 0) { - pushVertex(v[_i][k + 1]); - pushVertex(v[_i + 1][k]); - pushVertex(v[_i][k]); - } else { - pushVertex(v[_i][k + 1]); - pushVertex(v[_i + 1][k + 1]); - pushVertex(v[_i + 1][k]); - } - } - } - } - function applyRadius(radius) { - var vertex = new Vector3(); // iterate over the entire buffer and apply the radius to each vertex - for (var i = 0; i < vertexBuffer.length; i += 3) { - vertex.x = vertexBuffer[i + 0]; - vertex.y = vertexBuffer[i + 1]; - vertex.z = vertexBuffer[i + 2]; - vertex.normalize().multiplyScalar(radius); - vertexBuffer[i + 0] = vertex.x; - vertexBuffer[i + 1] = vertex.y; - vertexBuffer[i + 2] = vertex.z; - } - } - function generateUVs() { - var vertex = new Vector3(); - for (var i = 0; i < vertexBuffer.length; i += 3) { - vertex.x = vertexBuffer[i + 0]; - vertex.y = vertexBuffer[i + 1]; - vertex.z = vertexBuffer[i + 2]; - var u = azimuth(vertex) / 2 / Math.PI + 0.5; - var v = inclination(vertex) / Math.PI + 0.5; - uvBuffer.push(u, 1 - v); - } - correctUVs(); - correctSeam(); - } - function correctSeam() { - // handle case when face straddles the seam, see #3269 - for (var i = 0; i < uvBuffer.length; i += 6) { - // uv data of a single face - var x0 = uvBuffer[i + 0]; - var x1 = uvBuffer[i + 2]; - var x2 = uvBuffer[i + 4]; - var max = Math.max(x0, x1, x2); - var min = Math.min(x0, x1, x2); // 0.9 is somewhat arbitrary - if (max > 0.9 && min < 0.1) { - if (x0 < 0.2) uvBuffer[i + 0] += 1; - if (x1 < 0.2) uvBuffer[i + 2] += 1; - if (x2 < 0.2) uvBuffer[i + 4] += 1; - } - } - } - function pushVertex(vertex) { - vertexBuffer.push(vertex.x, vertex.y, vertex.z); - } - function getVertexByIndex(index, vertex) { - var stride = index * 3; - vertex.x = vertices[stride + 0]; - vertex.y = vertices[stride + 1]; - vertex.z = vertices[stride + 2]; - } - function correctUVs() { - var a = new Vector3(); - var b = new Vector3(); - var c = new Vector3(); - var centroid = new Vector3(); - var uvA = new Vector2(); - var uvB = new Vector2(); - var uvC = new Vector2(); - for (var i = 0, j = 0; i < vertexBuffer.length; i += 9, j += 6) { - a.set(vertexBuffer[i + 0], vertexBuffer[i + 1], vertexBuffer[i + 2]); - b.set(vertexBuffer[i + 3], vertexBuffer[i + 4], vertexBuffer[i + 5]); - c.set(vertexBuffer[i + 6], vertexBuffer[i + 7], vertexBuffer[i + 8]); - uvA.set(uvBuffer[j + 0], uvBuffer[j + 1]); - uvB.set(uvBuffer[j + 2], uvBuffer[j + 3]); - uvC.set(uvBuffer[j + 4], uvBuffer[j + 5]); - centroid.copy(a).add(b).add(c).divideScalar(3); - var azi = azimuth(centroid); - correctUV(uvA, j + 0, a, azi); - correctUV(uvB, j + 2, b, azi); - correctUV(uvC, j + 4, c, azi); - } - } - function correctUV(uv, stride, vector, azimuth) { - if (azimuth < 0 && uv.x === 1) { - uvBuffer[stride] = uv.x - 1; - } - if (vector.x === 0 && vector.z === 0) { - uvBuffer[stride] = azimuth / 2 / Math.PI + 0.5; - } - } // Angle around the Y axis, counter-clockwise when looking from above. - - function azimuth(vector) { - return Math.atan2(vector.z, -vector.x); - } // Angle above the XZ plane. - - function inclination(vector) { - return Math.atan2(-vector.y, Math.sqrt(vector.x * vector.x + vector.z * vector.z)); - } - return _this; - } - return PolyhedronBufferGeometry; - }(BufferGeometry); - var DodecahedronBufferGeometry = /*#__PURE__*/function (_PolyhedronBufferGeom) { - _inheritsLoose(DodecahedronBufferGeometry, _PolyhedronBufferGeom); - function DodecahedronBufferGeometry(radius, detail) { - var _this; - if (radius === void 0) { - radius = 1; - } - if (detail === void 0) { - detail = 0; - } - var t = (1 + Math.sqrt(5)) / 2; - var r = 1 / t; - var vertices = [// (±1, ±1, ±1) - -1, -1, -1, -1, -1, 1, -1, 1, -1, -1, 1, 1, 1, -1, -1, 1, -1, 1, 1, 1, -1, 1, 1, 1, // (0, ±1/φ, ±φ) - 0, -r, -t, 0, -r, t, 0, r, -t, 0, r, t, // (±1/φ, ±φ, 0) - -r, -t, 0, -r, t, 0, r, -t, 0, r, t, 0, // (±φ, 0, ±1/φ) - -t, 0, -r, t, 0, -r, -t, 0, r, t, 0, r]; - var indices = [3, 11, 7, 3, 7, 15, 3, 15, 13, 7, 19, 17, 7, 17, 6, 7, 6, 15, 17, 4, 8, 17, 8, 10, 17, 10, 6, 8, 0, 16, 8, 16, 2, 8, 2, 10, 0, 12, 1, 0, 1, 18, 0, 18, 16, 6, 10, 2, 6, 2, 13, 6, 13, 15, 2, 16, 18, 2, 18, 3, 2, 3, 13, 18, 1, 9, 18, 9, 11, 18, 11, 3, 4, 14, 12, 4, 12, 0, 4, 0, 8, 11, 9, 5, 11, 5, 19, 11, 19, 7, 19, 5, 14, 19, 14, 4, 19, 4, 17, 1, 12, 14, 1, 14, 5, 1, 5, 9]; - _this = _PolyhedronBufferGeom.call(this, vertices, indices, radius, detail) || this; - _this.type = 'DodecahedronBufferGeometry'; - _this.parameters = { - radius: radius, - detail: detail - }; - return _this; - } - return DodecahedronBufferGeometry; - }(PolyhedronBufferGeometry); - var DodecahedronGeometry = /*#__PURE__*/function (_Geometry) { - _inheritsLoose(DodecahedronGeometry, _Geometry); - function DodecahedronGeometry(radius, detail) { - var _this; - _this = _Geometry.call(this) || this; - _this.type = 'DodecahedronGeometry'; - _this.parameters = { - radius: radius, - detail: detail - }; - _this.fromBufferGeometry(new DodecahedronBufferGeometry(radius, detail)); - _this.mergeVertices(); - return _this; - } - return DodecahedronGeometry; - }(Geometry); - var _v0$2 = new Vector3(); - var _v1$5 = new Vector3(); - var _normal$1 = new Vector3(); - var _triangle = new Triangle(); - var EdgesGeometry = /*#__PURE__*/function (_BufferGeometry) { - _inheritsLoose(EdgesGeometry, _BufferGeometry); - function EdgesGeometry(geometry, thresholdAngle) { - var _this; - _this = _BufferGeometry.call(this) || this; - _this.type = 'EdgesGeometry'; - _this.parameters = { - thresholdAngle: thresholdAngle - }; - thresholdAngle = thresholdAngle !== undefined ? thresholdAngle : 1; - if (geometry.isGeometry) { - geometry = new BufferGeometry().fromGeometry(geometry); - } - var precisionPoints = 4; - var precision = Math.pow(10, precisionPoints); - var thresholdDot = Math.cos(MathUtils.DEG2RAD * thresholdAngle); - var indexAttr = geometry.getIndex(); - var positionAttr = geometry.getAttribute('position'); - var indexCount = indexAttr ? indexAttr.count : positionAttr.count; - var indexArr = [0, 0, 0]; - var vertKeys = ['a', 'b', 'c']; - var hashes = new Array(3); - var edgeData = {}; - var vertices = []; - for (var i = 0; i < indexCount; i += 3) { - if (indexAttr) { - indexArr[0] = indexAttr.getX(i); - indexArr[1] = indexAttr.getX(i + 1); - indexArr[2] = indexAttr.getX(i + 2); - } else { - indexArr[0] = i; - indexArr[1] = i + 1; - indexArr[2] = i + 2; - } - var a = _triangle.a, - b = _triangle.b, - c = _triangle.c; - a.fromBufferAttribute(positionAttr, indexArr[0]); - b.fromBufferAttribute(positionAttr, indexArr[1]); - c.fromBufferAttribute(positionAttr, indexArr[2]); - _triangle.getNormal(_normal$1); // create hashes for the edge from the vertices - - hashes[0] = Math.round(a.x * precision) + "," + Math.round(a.y * precision) + "," + Math.round(a.z * precision); - hashes[1] = Math.round(b.x * precision) + "," + Math.round(b.y * precision) + "," + Math.round(b.z * precision); - hashes[2] = Math.round(c.x * precision) + "," + Math.round(c.y * precision) + "," + Math.round(c.z * precision); // skip degenerate triangles - if (hashes[0] === hashes[1] || hashes[1] === hashes[2] || hashes[2] === hashes[0]) { - continue; - } // iterate over every edge - - for (var j = 0; j < 3; j++) { - // get the first and next vertex making up the edge - var jNext = (j + 1) % 3; - var vecHash0 = hashes[j]; - var vecHash1 = hashes[jNext]; - var v0 = _triangle[vertKeys[j]]; - var v1 = _triangle[vertKeys[jNext]]; - var hash = vecHash0 + "_" + vecHash1; - var reverseHash = vecHash1 + "_" + vecHash0; - if (reverseHash in edgeData && edgeData[reverseHash]) { - // if we found a sibling edge add it into the vertex array if - // it meets the angle threshold and delete the edge from the map. - if (_normal$1.dot(edgeData[reverseHash].normal) <= thresholdDot) { - vertices.push(v0.x, v0.y, v0.z); - vertices.push(v1.x, v1.y, v1.z); - } - edgeData[reverseHash] = null; - } else if (!(hash in edgeData)) { - // if we've already got an edge here then skip adding a new one - edgeData[hash] = { - index0: indexArr[j], - index1: indexArr[jNext], - normal: _normal$1.clone() - }; - } - } - } // iterate over all remaining, unmatched edges and add them to the vertex array - - for (var key in edgeData) { - if (edgeData[key]) { - var _edgeData$key = edgeData[key], - index0 = _edgeData$key.index0, - index1 = _edgeData$key.index1; - _v0$2.fromBufferAttribute(positionAttr, index0); - _v1$5.fromBufferAttribute(positionAttr, index1); - vertices.push(_v0$2.x, _v0$2.y, _v0$2.z); - vertices.push(_v1$5.x, _v1$5.y, _v1$5.z); - } - } - _this.setAttribute('position', new Float32BufferAttribute(vertices, 3)); - return _this; - } - return EdgesGeometry; - }(BufferGeometry); - /** - * Port from https://github.com/mapbox/earcut (v2.2.2) - */ - var Earcut = { - triangulate: function triangulate(data, holeIndices, dim) { - dim = dim || 2; - var hasHoles = holeIndices && holeIndices.length; - var outerLen = hasHoles ? holeIndices[0] * dim : data.length; - var outerNode = linkedList(data, 0, outerLen, dim, true); - var triangles = []; - if (!outerNode || outerNode.next === outerNode.prev) return triangles; - var minX, minY, maxX, maxY, x, y, invSize; - if (hasHoles) outerNode = eliminateHoles(data, holeIndices, outerNode, dim); // if the shape is not too simple, we'll use z-order curve hash later; calculate polygon bbox - if (data.length > 80 * dim) { - minX = maxX = data[0]; - minY = maxY = data[1]; - for (var i = dim; i < outerLen; i += dim) { - x = data[i]; - y = data[i + 1]; - if (x < minX) minX = x; - if (y < minY) minY = y; - if (x > maxX) maxX = x; - if (y > maxY) maxY = y; - } // minX, minY and invSize are later used to transform coords into integers for z-order calculation - - invSize = Math.max(maxX - minX, maxY - minY); - invSize = invSize !== 0 ? 1 / invSize : 0; - } - earcutLinked(outerNode, triangles, dim, minX, minY, invSize); - return triangles; - } - }; // create a circular doubly linked list from polygon points in the specified winding order - function linkedList(data, start, end, dim, clockwise) { - var i, last; - if (clockwise === signedArea(data, start, end, dim) > 0) { - for (i = start; i < end; i += dim) { - last = insertNode(i, data[i], data[i + 1], last); - } - } else { - for (i = end - dim; i >= start; i -= dim) { - last = insertNode(i, data[i], data[i + 1], last); - } - } - if (last && equals(last, last.next)) { - removeNode(last); - last = last.next; - } - return last; - } // eliminate colinear or duplicate points - - function filterPoints(start, end) { - if (!start) return start; - if (!end) end = start; - var p = start, - again; - do { - again = false; - if (!p.steiner && (equals(p, p.next) || area(p.prev, p, p.next) === 0)) { - removeNode(p); - p = end = p.prev; - if (p === p.next) break; - again = true; - } else { - p = p.next; - } - } while (again || p !== end); - return end; - } // main ear slicing loop which triangulates a polygon (given as a linked list) - - function earcutLinked(ear, triangles, dim, minX, minY, invSize, pass) { - if (!ear) return; // interlink polygon nodes in z-order - if (!pass && invSize) indexCurve(ear, minX, minY, invSize); - var stop = ear, - prev, - next; // iterate through ears, slicing them one by one - while (ear.prev !== ear.next) { - prev = ear.prev; - next = ear.next; - if (invSize ? isEarHashed(ear, minX, minY, invSize) : isEar(ear)) { - // cut off the triangle - triangles.push(prev.i / dim); - triangles.push(ear.i / dim); - triangles.push(next.i / dim); - removeNode(ear); // skipping the next vertex leads to less sliver triangles - ear = next.next; - stop = next.next; - continue; - } - ear = next; // if we looped through the whole remaining polygon and can't find any more ears - if (ear === stop) { - // try filtering points and slicing again - if (!pass) { - earcutLinked(filterPoints(ear), triangles, dim, minX, minY, invSize, 1); // if this didn't work, try curing all small self-intersections locally - } else if (pass === 1) { - ear = cureLocalIntersections(filterPoints(ear), triangles, dim); - earcutLinked(ear, triangles, dim, minX, minY, invSize, 2); // as a last resort, try splitting the remaining polygon into two - } else if (pass === 2) { - splitEarcut(ear, triangles, dim, minX, minY, invSize); - } - break; - } - } - } // check whether a polygon node forms a valid ear with adjacent nodes - - function isEar(ear) { - var a = ear.prev, - b = ear, - c = ear.next; - if (area(a, b, c) >= 0) return false; // reflex, can't be an ear - // now make sure we don't have other points inside the potential ear - var p = ear.next.next; - while (p !== ear.prev) { - if (pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, p.x, p.y) && area(p.prev, p, p.next) >= 0) return false; - p = p.next; - } - return true; - } - function isEarHashed(ear, minX, minY, invSize) { - var a = ear.prev, - b = ear, - c = ear.next; - if (area(a, b, c) >= 0) return false; // reflex, can't be an ear - // triangle bbox; min & max are calculated like this for speed - var minTX = a.x < b.x ? a.x < c.x ? a.x : c.x : b.x < c.x ? b.x : c.x, - minTY = a.y < b.y ? a.y < c.y ? a.y : c.y : b.y < c.y ? b.y : c.y, - maxTX = a.x > b.x ? a.x > c.x ? a.x : c.x : b.x > c.x ? b.x : c.x, - maxTY = a.y > b.y ? a.y > c.y ? a.y : c.y : b.y > c.y ? b.y : c.y; // z-order range for the current triangle bbox; - var minZ = zOrder(minTX, minTY, minX, minY, invSize), - maxZ = zOrder(maxTX, maxTY, minX, minY, invSize); - var p = ear.prevZ, - n = ear.nextZ; // look for points inside the triangle in both directions - while (p && p.z >= minZ && n && n.z <= maxZ) { - if (p !== ear.prev && p !== ear.next && pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, p.x, p.y) && area(p.prev, p, p.next) >= 0) return false; - p = p.prevZ; - if (n !== ear.prev && n !== ear.next && pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, n.x, n.y) && area(n.prev, n, n.next) >= 0) return false; - n = n.nextZ; - } // look for remaining points in decreasing z-order - - while (p && p.z >= minZ) { - if (p !== ear.prev && p !== ear.next && pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, p.x, p.y) && area(p.prev, p, p.next) >= 0) return false; - p = p.prevZ; - } // look for remaining points in increasing z-order - - while (n && n.z <= maxZ) { - if (n !== ear.prev && n !== ear.next && pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, n.x, n.y) && area(n.prev, n, n.next) >= 0) return false; - n = n.nextZ; - } - return true; - } // go through all polygon nodes and cure small local self-intersections - - function cureLocalIntersections(start, triangles, dim) { - var p = start; - do { - var a = p.prev, - b = p.next.next; - if (!equals(a, b) && intersects(a, p, p.next, b) && locallyInside(a, b) && locallyInside(b, a)) { - triangles.push(a.i / dim); - triangles.push(p.i / dim); - triangles.push(b.i / dim); // remove two nodes involved - removeNode(p); - removeNode(p.next); - p = start = b; - } - p = p.next; - } while (p !== start); - return filterPoints(p); - } // try splitting polygon into two and triangulate them independently - - function splitEarcut(start, triangles, dim, minX, minY, invSize) { - // look for a valid diagonal that divides the polygon into two - var a = start; - do { - var b = a.next.next; - while (b !== a.prev) { - if (a.i !== b.i && isValidDiagonal(a, b)) { - // split the polygon in two by the diagonal - var c = splitPolygon(a, b); // filter colinear points around the cuts - a = filterPoints(a, a.next); - c = filterPoints(c, c.next); // run earcut on each half - earcutLinked(a, triangles, dim, minX, minY, invSize); - earcutLinked(c, triangles, dim, minX, minY, invSize); - return; - } - b = b.next; - } - a = a.next; - } while (a !== start); - } // link every hole into the outer loop, producing a single-ring polygon without holes - - function eliminateHoles(data, holeIndices, outerNode, dim) { - var queue = []; - var i, len, start, end, list; - for (i = 0, len = holeIndices.length; i < len; i++) { - start = holeIndices[i] * dim; - end = i < len - 1 ? holeIndices[i + 1] * dim : data.length; - list = linkedList(data, start, end, dim, false); - if (list === list.next) list.steiner = true; - queue.push(getLeftmost(list)); - } - queue.sort(compareX); // process holes from left to right - for (i = 0; i < queue.length; i++) { - eliminateHole(queue[i], outerNode); - outerNode = filterPoints(outerNode, outerNode.next); - } - return outerNode; - } - function compareX(a, b) { - return a.x - b.x; - } // find a bridge between vertices that connects hole with an outer ring and and link it - - function eliminateHole(hole, outerNode) { - outerNode = findHoleBridge(hole, outerNode); - if (outerNode) { - var b = splitPolygon(outerNode, hole); // filter collinear points around the cuts - filterPoints(outerNode, outerNode.next); - filterPoints(b, b.next); - } - } // David Eberly's algorithm for finding a bridge between hole and outer polygon - - function findHoleBridge(hole, outerNode) { - var p = outerNode; - var hx = hole.x; - var hy = hole.y; - var qx = -Infinity, - m; // find a segment intersected by a ray from the hole's leftmost point to the left; - // segment's endpoint with lesser x will be potential connection point - do { - if (hy <= p.y && hy >= p.next.y && p.next.y !== p.y) { - var x = p.x + (hy - p.y) * (p.next.x - p.x) / (p.next.y - p.y); - if (x <= hx && x > qx) { - qx = x; - if (x === hx) { - if (hy === p.y) return p; - if (hy === p.next.y) return p.next; - } - m = p.x < p.next.x ? p : p.next; - } - } - p = p.next; - } while (p !== outerNode); - if (!m) return null; - if (hx === qx) return m; // hole touches outer segment; pick leftmost endpoint - // look for points inside the triangle of hole point, segment intersection and endpoint; - // if there are no points found, we have a valid connection; - // otherwise choose the point of the minimum angle with the ray as connection point - var stop = m, - mx = m.x, - my = m.y; - var tanMin = Infinity, - tan; - p = m; - do { - if (hx >= p.x && p.x >= mx && hx !== p.x && pointInTriangle(hy < my ? hx : qx, hy, mx, my, hy < my ? qx : hx, hy, p.x, p.y)) { - tan = Math.abs(hy - p.y) / (hx - p.x); // tangential - if (locallyInside(p, hole) && (tan < tanMin || tan === tanMin && (p.x > m.x || p.x === m.x && sectorContainsSector(m, p)))) { - m = p; - tanMin = tan; - } - } - p = p.next; - } while (p !== stop); - return m; - } // whether sector in vertex m contains sector in vertex p in the same coordinates - - function sectorContainsSector(m, p) { - return area(m.prev, m, p.prev) < 0 && area(p.next, m, m.next) < 0; - } // interlink polygon nodes in z-order - - function indexCurve(start, minX, minY, invSize) { - var p = start; - do { - if (p.z === null) p.z = zOrder(p.x, p.y, minX, minY, invSize); - p.prevZ = p.prev; - p.nextZ = p.next; - p = p.next; - } while (p !== start); - p.prevZ.nextZ = null; - p.prevZ = null; - sortLinked(p); - } // Simon Tatham's linked list merge sort algorithm - // http://www.chiark.greenend.org.uk/~sgtatham/algorithms/listsort.html - - function sortLinked(list) { - var i, - p, - q, - e, - tail, - numMerges, - pSize, - qSize, - inSize = 1; - do { - p = list; - list = null; - tail = null; - numMerges = 0; - while (p) { - numMerges++; - q = p; - pSize = 0; - for (i = 0; i < inSize; i++) { - pSize++; - q = q.nextZ; - if (!q) break; - } - qSize = inSize; - while (pSize > 0 || qSize > 0 && q) { - if (pSize !== 0 && (qSize === 0 || !q || p.z <= q.z)) { - e = p; - p = p.nextZ; - pSize--; - } else { - e = q; - q = q.nextZ; - qSize--; - } - if (tail) tail.nextZ = e;else list = e; - e.prevZ = tail; - tail = e; - } - p = q; - } - tail.nextZ = null; - inSize *= 2; - } while (numMerges > 1); - return list; - } // z-order of a point given coords and inverse of the longer side of data bbox - - function zOrder(x, y, minX, minY, invSize) { - // coords are transformed into non-negative 15-bit integer range - x = 32767 * (x - minX) * invSize; - y = 32767 * (y - minY) * invSize; - x = (x | x << 8) & 0x00FF00FF; - x = (x | x << 4) & 0x0F0F0F0F; - x = (x | x << 2) & 0x33333333; - x = (x | x << 1) & 0x55555555; - y = (y | y << 8) & 0x00FF00FF; - y = (y | y << 4) & 0x0F0F0F0F; - y = (y | y << 2) & 0x33333333; - y = (y | y << 1) & 0x55555555; - return x | y << 1; - } // find the leftmost node of a polygon ring - - function getLeftmost(start) { - var p = start, - leftmost = start; - do { - if (p.x < leftmost.x || p.x === leftmost.x && p.y < leftmost.y) leftmost = p; - p = p.next; - } while (p !== start); - return leftmost; - } // check if a point lies within a convex triangle - - function pointInTriangle(ax, ay, bx, by, cx, cy, px, py) { - return (cx - px) * (ay - py) - (ax - px) * (cy - py) >= 0 && (ax - px) * (by - py) - (bx - px) * (ay - py) >= 0 && (bx - px) * (cy - py) - (cx - px) * (by - py) >= 0; - } // check if a diagonal between two polygon nodes is valid (lies in polygon interior) - - function isValidDiagonal(a, b) { - return a.next.i !== b.i && a.prev.i !== b.i && !intersectsPolygon(a, b) && ( // dones't intersect other edges - locallyInside(a, b) && locallyInside(b, a) && middleInside(a, b) && ( // locally visible - area(a.prev, a, b.prev) || area(a, b.prev, b)) || // does not create opposite-facing sectors - equals(a, b) && area(a.prev, a, a.next) > 0 && area(b.prev, b, b.next) > 0); // special zero-length case - } // signed area of a triangle - - function area(p, q, r) { - return (q.y - p.y) * (r.x - q.x) - (q.x - p.x) * (r.y - q.y); - } // check if two points are equal - - function equals(p1, p2) { - return p1.x === p2.x && p1.y === p2.y; - } // check if two segments intersect - - function intersects(p1, q1, p2, q2) { - var o1 = sign(area(p1, q1, p2)); - var o2 = sign(area(p1, q1, q2)); - var o3 = sign(area(p2, q2, p1)); - var o4 = sign(area(p2, q2, q1)); - if (o1 !== o2 && o3 !== o4) return true; // general case - if (o1 === 0 && onSegment(p1, p2, q1)) return true; // p1, q1 and p2 are collinear and p2 lies on p1q1 - if (o2 === 0 && onSegment(p1, q2, q1)) return true; // p1, q1 and q2 are collinear and q2 lies on p1q1 - if (o3 === 0 && onSegment(p2, p1, q2)) return true; // p2, q2 and p1 are collinear and p1 lies on p2q2 - if (o4 === 0 && onSegment(p2, q1, q2)) return true; // p2, q2 and q1 are collinear and q1 lies on p2q2 - return false; - } // for collinear points p, q, r, check if point q lies on segment pr - - function onSegment(p, q, r) { - return q.x <= Math.max(p.x, r.x) && q.x >= Math.min(p.x, r.x) && q.y <= Math.max(p.y, r.y) && q.y >= Math.min(p.y, r.y); - } - function sign(num) { - return num > 0 ? 1 : num < 0 ? -1 : 0; - } // check if a polygon diagonal intersects any polygon segments - - function intersectsPolygon(a, b) { - var p = a; - do { - if (p.i !== a.i && p.next.i !== a.i && p.i !== b.i && p.next.i !== b.i && intersects(p, p.next, a, b)) return true; - p = p.next; - } while (p !== a); - return false; - } // check if a polygon diagonal is locally inside the polygon - - function locallyInside(a, b) { - return area(a.prev, a, a.next) < 0 ? area(a, b, a.next) >= 0 && area(a, a.prev, b) >= 0 : area(a, b, a.prev) < 0 || area(a, a.next, b) < 0; - } // check if the middle point of a polygon diagonal is inside the polygon - - function middleInside(a, b) { - var p = a, - inside = false; - var px = (a.x + b.x) / 2, - py = (a.y + b.y) / 2; - do { - if (p.y > py !== p.next.y > py && p.next.y !== p.y && px < (p.next.x - p.x) * (py - p.y) / (p.next.y - p.y) + p.x) inside = !inside; - p = p.next; - } while (p !== a); - return inside; - } // link two polygon vertices with a bridge; if the vertices belong to the same ring, it splits polygon into two; - // if one belongs to the outer ring and another to a hole, it merges it into a single ring - - function splitPolygon(a, b) { - var a2 = new Node(a.i, a.x, a.y), - b2 = new Node(b.i, b.x, b.y), - an = a.next, - bp = b.prev; - a.next = b; - b.prev = a; - a2.next = an; - an.prev = a2; - b2.next = a2; - a2.prev = b2; - bp.next = b2; - b2.prev = bp; - return b2; - } // create a node and optionally link it with previous one (in a circular doubly linked list) - - function insertNode(i, x, y, last) { - var p = new Node(i, x, y); - if (!last) { - p.prev = p; - p.next = p; - } else { - p.next = last.next; - p.prev = last; - last.next.prev = p; - last.next = p; - } - return p; - } - function removeNode(p) { - p.next.prev = p.prev; - p.prev.next = p.next; - if (p.prevZ) p.prevZ.nextZ = p.nextZ; - if (p.nextZ) p.nextZ.prevZ = p.prevZ; - } - function Node(i, x, y) { - // vertex index in coordinates array - this.i = i; // vertex coordinates - this.x = x; - this.y = y; // previous and next vertex nodes in a polygon ring - this.prev = null; - this.next = null; // z-order curve value - this.z = null; // previous and next nodes in z-order - this.prevZ = null; - this.nextZ = null; // indicates whether this is a steiner point - this.steiner = false; - } - function signedArea(data, start, end, dim) { - var sum = 0; - for (var i = start, j = end - dim; i < end; i += dim) { - sum += (data[j] - data[i]) * (data[i + 1] + data[j + 1]); - j = i; - } - return sum; - } - var ShapeUtils = { - // calculate area of the contour polygon - area: function area(contour) { - var n = contour.length; - var a = 0.0; - for (var p = n - 1, q = 0; q < n; p = q++) { - a += contour[p].x * contour[q].y - contour[q].x * contour[p].y; - } - return a * 0.5; - }, - isClockWise: function isClockWise(pts) { - return ShapeUtils.area(pts) < 0; - }, - triangulateShape: function triangulateShape(contour, holes) { - var vertices = []; // flat array of vertices like [ x0,y0, x1,y1, x2,y2, ... ] - var holeIndices = []; // array of hole indices - var faces = []; // final array of vertex indices like [ [ a,b,d ], [ b,c,d ] ] - removeDupEndPts(contour); - addContour(vertices, contour); // - var holeIndex = contour.length; - holes.forEach(removeDupEndPts); - for (var i = 0; i < holes.length; i++) { - holeIndices.push(holeIndex); - holeIndex += holes[i].length; - addContour(vertices, holes[i]); - } // - - var triangles = Earcut.triangulate(vertices, holeIndices); // - for (var _i = 0; _i < triangles.length; _i += 3) { - faces.push(triangles.slice(_i, _i + 3)); - } - return faces; - } - }; - function removeDupEndPts(points) { - var l = points.length; - if (l > 2 && points[l - 1].equals(points[0])) { - points.pop(); - } - } - function addContour(vertices, contour) { - for (var i = 0; i < contour.length; i++) { - vertices.push(contour[i].x); - vertices.push(contour[i].y); - } - } - var ExtrudeBufferGeometry = /*#__PURE__*/function (_BufferGeometry) { - _inheritsLoose(ExtrudeBufferGeometry, _BufferGeometry); - function ExtrudeBufferGeometry(shapes, options) { - var _this; - _this = _BufferGeometry.call(this) || this; - _this.type = 'ExtrudeBufferGeometry'; - _this.parameters = { - shapes: shapes, - options: options - }; - shapes = Array.isArray(shapes) ? shapes : [shapes]; - var scope = _assertThisInitialized(_this); - var verticesArray = []; - var uvArray = []; - for (var i = 0, l = shapes.length; i < l; i++) { - var shape = shapes[i]; - addShape(shape); - } // build geometry - - _this.setAttribute('position', new Float32BufferAttribute(verticesArray, 3)); - _this.setAttribute('uv', new Float32BufferAttribute(uvArray, 2)); - _this.computeVertexNormals(); // functions - - function addShape(shape) { - var placeholder = []; // options - var curveSegments = options.curveSegments !== undefined ? options.curveSegments : 12; - var steps = options.steps !== undefined ? options.steps : 1; - var depth = options.depth !== undefined ? options.depth : 100; - var bevelEnabled = options.bevelEnabled !== undefined ? options.bevelEnabled : true; - var bevelThickness = options.bevelThickness !== undefined ? options.bevelThickness : 6; - var bevelSize = options.bevelSize !== undefined ? options.bevelSize : bevelThickness - 2; - var bevelOffset = options.bevelOffset !== undefined ? options.bevelOffset : 0; - var bevelSegments = options.bevelSegments !== undefined ? options.bevelSegments : 3; - var extrudePath = options.extrudePath; - var uvgen = options.UVGenerator !== undefined ? options.UVGenerator : WorldUVGenerator; // deprecated options - if (options.amount !== undefined) { - console.warn('THREE.ExtrudeBufferGeometry: amount has been renamed to depth.'); - depth = options.amount; - } // - - var extrudePts, - extrudeByPath = false; - var splineTube, binormal, normal, position2; - if (extrudePath) { - extrudePts = extrudePath.getSpacedPoints(steps); - extrudeByPath = true; - bevelEnabled = false; // bevels not supported for path extrusion - // SETUP TNB variables - // TODO1 - have a .isClosed in spline? - splineTube = extrudePath.computeFrenetFrames(steps, false); // console.log(splineTube, 'splineTube', splineTube.normals.length, 'steps', steps, 'extrudePts', extrudePts.length); - binormal = new Vector3(); - normal = new Vector3(); - position2 = new Vector3(); - } // Safeguards if bevels are not enabled - - if (!bevelEnabled) { - bevelSegments = 0; - bevelThickness = 0; - bevelSize = 0; - bevelOffset = 0; - } // Variables initialization - - var shapePoints = shape.extractPoints(curveSegments); - var vertices = shapePoints.shape; - var holes = shapePoints.holes; - var reverse = !ShapeUtils.isClockWise(vertices); - if (reverse) { - vertices = vertices.reverse(); // Maybe we should also check if holes are in the opposite direction, just to be safe ... - for (var h = 0, hl = holes.length; h < hl; h++) { - var ahole = holes[h]; - if (ShapeUtils.isClockWise(ahole)) { - holes[h] = ahole.reverse(); - } - } - } - var faces = ShapeUtils.triangulateShape(vertices, holes); - /* Vertices */ - var contour = vertices; // vertices has all points but contour has only points of circumference - for (var _h = 0, _hl = holes.length; _h < _hl; _h++) { - var _ahole = holes[_h]; - vertices = vertices.concat(_ahole); - } - function scalePt2(pt, vec, size) { - if (!vec) console.error('THREE.ExtrudeGeometry: vec does not exist'); - return vec.clone().multiplyScalar(size).add(pt); - } - var vlen = vertices.length, - flen = faces.length; // Find directions for point movement - function getBevelVec(inPt, inPrev, inNext) { - // computes for inPt the corresponding point inPt' on a new contour - // shifted by 1 unit (length of normalized vector) to the left - // if we walk along contour clockwise, this new contour is outside the old one - // - // inPt' is the intersection of the two lines parallel to the two - // adjacent edges of inPt at a distance of 1 unit on the left side. - var v_trans_x, v_trans_y, shrink_by; // resulting translation vector for inPt - // good reading for geometry algorithms (here: line-line intersection) - // http://geomalgorithms.com/a05-_intersect-1.html - var v_prev_x = inPt.x - inPrev.x, - v_prev_y = inPt.y - inPrev.y; - var v_next_x = inNext.x - inPt.x, - v_next_y = inNext.y - inPt.y; - var v_prev_lensq = v_prev_x * v_prev_x + v_prev_y * v_prev_y; // check for collinear edges - var collinear0 = v_prev_x * v_next_y - v_prev_y * v_next_x; - if (Math.abs(collinear0) > Number.EPSILON) { - // not collinear - // length of vectors for normalizing - var v_prev_len = Math.sqrt(v_prev_lensq); - var v_next_len = Math.sqrt(v_next_x * v_next_x + v_next_y * v_next_y); // shift adjacent points by unit vectors to the left - var ptPrevShift_x = inPrev.x - v_prev_y / v_prev_len; - var ptPrevShift_y = inPrev.y + v_prev_x / v_prev_len; - var ptNextShift_x = inNext.x - v_next_y / v_next_len; - var ptNextShift_y = inNext.y + v_next_x / v_next_len; // scaling factor for v_prev to intersection point - var sf = ((ptNextShift_x - ptPrevShift_x) * v_next_y - (ptNextShift_y - ptPrevShift_y) * v_next_x) / (v_prev_x * v_next_y - v_prev_y * v_next_x); // vector from inPt to intersection point - v_trans_x = ptPrevShift_x + v_prev_x * sf - inPt.x; - v_trans_y = ptPrevShift_y + v_prev_y * sf - inPt.y; // Don't normalize!, otherwise sharp corners become ugly - // but prevent crazy spikes - var v_trans_lensq = v_trans_x * v_trans_x + v_trans_y * v_trans_y; - if (v_trans_lensq <= 2) { - return new Vector2(v_trans_x, v_trans_y); - } else { - shrink_by = Math.sqrt(v_trans_lensq / 2); - } - } else { - // handle special case of collinear edges - var direction_eq = false; // assumes: opposite - if (v_prev_x > Number.EPSILON) { - if (v_next_x > Number.EPSILON) { - direction_eq = true; - } - } else { - if (v_prev_x < -Number.EPSILON) { - if (v_next_x < -Number.EPSILON) { - direction_eq = true; - } - } else { - if (Math.sign(v_prev_y) === Math.sign(v_next_y)) { - direction_eq = true; - } - } - } - if (direction_eq) { - // console.log("Warning: lines are a straight sequence"); - v_trans_x = -v_prev_y; - v_trans_y = v_prev_x; - shrink_by = Math.sqrt(v_prev_lensq); - } else { - // console.log("Warning: lines are a straight spike"); - v_trans_x = v_prev_x; - v_trans_y = v_prev_y; - shrink_by = Math.sqrt(v_prev_lensq / 2); - } - } - return new Vector2(v_trans_x / shrink_by, v_trans_y / shrink_by); - } - var contourMovements = []; - for (var _i = 0, il = contour.length, j = il - 1, k = _i + 1; _i < il; _i++, j++, k++) { - if (j === il) j = 0; - if (k === il) k = 0; // (j)---(i)---(k) - // console.log('i,j,k', i, j , k) - contourMovements[_i] = getBevelVec(contour[_i], contour[j], contour[k]); - } - var holesMovements = []; - var oneHoleMovements, - verticesMovements = contourMovements.concat(); - for (var _h2 = 0, _hl2 = holes.length; _h2 < _hl2; _h2++) { - var _ahole2 = holes[_h2]; - oneHoleMovements = []; - for (var _i2 = 0, _il = _ahole2.length, _j = _il - 1, _k = _i2 + 1; _i2 < _il; _i2++, _j++, _k++) { - if (_j === _il) _j = 0; - if (_k === _il) _k = 0; // (j)---(i)---(k) - oneHoleMovements[_i2] = getBevelVec(_ahole2[_i2], _ahole2[_j], _ahole2[_k]); - } - holesMovements.push(oneHoleMovements); - verticesMovements = verticesMovements.concat(oneHoleMovements); - } // Loop bevelSegments, 1 for the front, 1 for the back - - for (var b = 0; b < bevelSegments; b++) { - //for ( b = bevelSegments; b > 0; b -- ) { - var t = b / bevelSegments; - var z = bevelThickness * Math.cos(t * Math.PI / 2); - var _bs = bevelSize * Math.sin(t * Math.PI / 2) + bevelOffset; // contract shape - - for (var _i3 = 0, _il2 = contour.length; _i3 < _il2; _i3++) { - var vert = scalePt2(contour[_i3], contourMovements[_i3], _bs); - v(vert.x, vert.y, -z); - } // expand holes - - for (var _h3 = 0, _hl3 = holes.length; _h3 < _hl3; _h3++) { - var _ahole3 = holes[_h3]; - oneHoleMovements = holesMovements[_h3]; - for (var _i4 = 0, _il3 = _ahole3.length; _i4 < _il3; _i4++) { - var _vert = scalePt2(_ahole3[_i4], oneHoleMovements[_i4], _bs); - v(_vert.x, _vert.y, -z); - } - } - } - var bs = bevelSize + bevelOffset; // Back facing vertices - for (var _i5 = 0; _i5 < vlen; _i5++) { - var _vert2 = bevelEnabled ? scalePt2(vertices[_i5], verticesMovements[_i5], bs) : vertices[_i5]; - if (!extrudeByPath) { - v(_vert2.x, _vert2.y, 0); - } else { - // v( vert.x, vert.y + extrudePts[ 0 ].y, extrudePts[ 0 ].x ); - normal.copy(splineTube.normals[0]).multiplyScalar(_vert2.x); - binormal.copy(splineTube.binormals[0]).multiplyScalar(_vert2.y); - position2.copy(extrudePts[0]).add(normal).add(binormal); - v(position2.x, position2.y, position2.z); - } - } // Add stepped vertices... - // Including front facing vertices - - for (var s = 1; s <= steps; s++) { - for (var _i6 = 0; _i6 < vlen; _i6++) { - var _vert3 = bevelEnabled ? scalePt2(vertices[_i6], verticesMovements[_i6], bs) : vertices[_i6]; - if (!extrudeByPath) { - v(_vert3.x, _vert3.y, depth / steps * s); - } else { - // v( vert.x, vert.y + extrudePts[ s - 1 ].y, extrudePts[ s - 1 ].x ); - normal.copy(splineTube.normals[s]).multiplyScalar(_vert3.x); - binormal.copy(splineTube.binormals[s]).multiplyScalar(_vert3.y); - position2.copy(extrudePts[s]).add(normal).add(binormal); - v(position2.x, position2.y, position2.z); - } - } - } // Add bevel segments planes - //for ( b = 1; b <= bevelSegments; b ++ ) { - - for (var _b = bevelSegments - 1; _b >= 0; _b--) { - var _t = _b / bevelSegments; - var _z = bevelThickness * Math.cos(_t * Math.PI / 2); - var _bs2 = bevelSize * Math.sin(_t * Math.PI / 2) + bevelOffset; // contract shape - - for (var _i7 = 0, _il4 = contour.length; _i7 < _il4; _i7++) { - var _vert4 = scalePt2(contour[_i7], contourMovements[_i7], _bs2); - v(_vert4.x, _vert4.y, depth + _z); - } // expand holes - - for (var _h4 = 0, _hl4 = holes.length; _h4 < _hl4; _h4++) { - var _ahole4 = holes[_h4]; - oneHoleMovements = holesMovements[_h4]; - for (var _i8 = 0, _il5 = _ahole4.length; _i8 < _il5; _i8++) { - var _vert5 = scalePt2(_ahole4[_i8], oneHoleMovements[_i8], _bs2); - if (!extrudeByPath) { - v(_vert5.x, _vert5.y, depth + _z); - } else { - v(_vert5.x, _vert5.y + extrudePts[steps - 1].y, extrudePts[steps - 1].x + _z); - } - } - } - } - /* Faces */ - // Top and bottom faces - - buildLidFaces(); // Sides faces - buildSideFaces(); ///// Internal functions - function buildLidFaces() { - var start = verticesArray.length / 3; - if (bevelEnabled) { - var layer = 0; // steps + 1 - var offset = vlen * layer; // Bottom faces - for (var _i9 = 0; _i9 < flen; _i9++) { - var face = faces[_i9]; - f3(face[2] + offset, face[1] + offset, face[0] + offset); - } - layer = steps + bevelSegments * 2; - offset = vlen * layer; // Top faces - for (var _i10 = 0; _i10 < flen; _i10++) { - var _face = faces[_i10]; - f3(_face[0] + offset, _face[1] + offset, _face[2] + offset); - } - } else { - // Bottom faces - for (var _i11 = 0; _i11 < flen; _i11++) { - var _face2 = faces[_i11]; - f3(_face2[2], _face2[1], _face2[0]); - } // Top faces - - for (var _i12 = 0; _i12 < flen; _i12++) { - var _face3 = faces[_i12]; - f3(_face3[0] + vlen * steps, _face3[1] + vlen * steps, _face3[2] + vlen * steps); - } - } - scope.addGroup(start, verticesArray.length / 3 - start, 0); - } // Create faces for the z-sides of the shape - - function buildSideFaces() { - var start = verticesArray.length / 3; - var layeroffset = 0; - sidewalls(contour, layeroffset); - layeroffset += contour.length; - for (var _h5 = 0, _hl5 = holes.length; _h5 < _hl5; _h5++) { - var _ahole5 = holes[_h5]; - sidewalls(_ahole5, layeroffset); //, true - layeroffset += _ahole5.length; - } - scope.addGroup(start, verticesArray.length / 3 - start, 1); - } - function sidewalls(contour, layeroffset) { - var i = contour.length; - while (--i >= 0) { - var _j2 = i; - var _k2 = i - 1; - if (_k2 < 0) _k2 = contour.length - 1; //console.log('b', i,j, i-1, k,vertices.length); - for (var _s = 0, sl = steps + bevelSegments * 2; _s < sl; _s++) { - var slen1 = vlen * _s; - var slen2 = vlen * (_s + 1); - var a = layeroffset + _j2 + slen1, - _b2 = layeroffset + _k2 + slen1, - c = layeroffset + _k2 + slen2, - d = layeroffset + _j2 + slen2; - f4(a, _b2, c, d); - } - } - } - function v(x, y, z) { - placeholder.push(x); - placeholder.push(y); - placeholder.push(z); - } - function f3(a, b, c) { - addVertex(a); - addVertex(b); - addVertex(c); - var nextIndex = verticesArray.length / 3; - var uvs = uvgen.generateTopUV(scope, verticesArray, nextIndex - 3, nextIndex - 2, nextIndex - 1); - addUV(uvs[0]); - addUV(uvs[1]); - addUV(uvs[2]); - } - function f4(a, b, c, d) { - addVertex(a); - addVertex(b); - addVertex(d); - addVertex(b); - addVertex(c); - addVertex(d); - var nextIndex = verticesArray.length / 3; - var uvs = uvgen.generateSideWallUV(scope, verticesArray, nextIndex - 6, nextIndex - 3, nextIndex - 2, nextIndex - 1); - addUV(uvs[0]); - addUV(uvs[1]); - addUV(uvs[3]); - addUV(uvs[1]); - addUV(uvs[2]); - addUV(uvs[3]); - } - function addVertex(index) { - verticesArray.push(placeholder[index * 3 + 0]); - verticesArray.push(placeholder[index * 3 + 1]); - verticesArray.push(placeholder[index * 3 + 2]); - } - function addUV(vector2) { - uvArray.push(vector2.x); - uvArray.push(vector2.y); - } - } - return _this; - } - var _proto = ExtrudeBufferGeometry.prototype; - _proto.toJSON = function toJSON() { - var data = BufferGeometry.prototype.toJSON.call(this); - var shapes = this.parameters.shapes; - var options = this.parameters.options; - return _toJSON(shapes, options, data); - }; - return ExtrudeBufferGeometry; - }(BufferGeometry); - var WorldUVGenerator = { - generateTopUV: function generateTopUV(geometry, vertices, indexA, indexB, indexC) { - var a_x = vertices[indexA * 3]; - var a_y = vertices[indexA * 3 + 1]; - var b_x = vertices[indexB * 3]; - var b_y = vertices[indexB * 3 + 1]; - var c_x = vertices[indexC * 3]; - var c_y = vertices[indexC * 3 + 1]; - return [new Vector2(a_x, a_y), new Vector2(b_x, b_y), new Vector2(c_x, c_y)]; - }, - generateSideWallUV: function generateSideWallUV(geometry, vertices, indexA, indexB, indexC, indexD) { - var a_x = vertices[indexA * 3]; - var a_y = vertices[indexA * 3 + 1]; - var a_z = vertices[indexA * 3 + 2]; - var b_x = vertices[indexB * 3]; - var b_y = vertices[indexB * 3 + 1]; - var b_z = vertices[indexB * 3 + 2]; - var c_x = vertices[indexC * 3]; - var c_y = vertices[indexC * 3 + 1]; - var c_z = vertices[indexC * 3 + 2]; - var d_x = vertices[indexD * 3]; - var d_y = vertices[indexD * 3 + 1]; - var d_z = vertices[indexD * 3 + 2]; - if (Math.abs(a_y - b_y) < 0.01) { - return [new Vector2(a_x, 1 - a_z), new Vector2(b_x, 1 - b_z), new Vector2(c_x, 1 - c_z), new Vector2(d_x, 1 - d_z)]; - } else { - return [new Vector2(a_y, 1 - a_z), new Vector2(b_y, 1 - b_z), new Vector2(c_y, 1 - c_z), new Vector2(d_y, 1 - d_z)]; - } - } - }; - function _toJSON(shapes, options, data) { - data.shapes = []; - if (Array.isArray(shapes)) { - for (var i = 0, l = shapes.length; i < l; i++) { - var shape = shapes[i]; - data.shapes.push(shape.uuid); - } - } else { - data.shapes.push(shapes.uuid); - } - if (options.extrudePath !== undefined) data.options.extrudePath = options.extrudePath.toJSON(); - return data; - } - var ExtrudeGeometry = /*#__PURE__*/function (_Geometry) { - _inheritsLoose(ExtrudeGeometry, _Geometry); - function ExtrudeGeometry(shapes, options) { - var _this; - _this = _Geometry.call(this) || this; - _this.type = 'ExtrudeGeometry'; - _this.parameters = { - shapes: shapes, - options: options - }; - _this.fromBufferGeometry(new ExtrudeBufferGeometry(shapes, options)); - _this.mergeVertices(); - return _this; - } - var _proto = ExtrudeGeometry.prototype; - _proto.toJSON = function toJSON() { - var data = _Geometry.prototype.toJSON.call(this); - var shapes = this.parameters.shapes; - var options = this.parameters.options; - return _toJSON$1(shapes, options, data); - }; - return ExtrudeGeometry; - }(Geometry); - function _toJSON$1(shapes, options, data) { - data.shapes = []; - if (Array.isArray(shapes)) { - for (var i = 0, l = shapes.length; i < l; i++) { - var shape = shapes[i]; - data.shapes.push(shape.uuid); - } - } else { - data.shapes.push(shapes.uuid); - } - if (options.extrudePath !== undefined) data.options.extrudePath = options.extrudePath.toJSON(); - return data; - } - var IcosahedronBufferGeometry = /*#__PURE__*/function (_PolyhedronBufferGeom) { - _inheritsLoose(IcosahedronBufferGeometry, _PolyhedronBufferGeom); - function IcosahedronBufferGeometry(radius, detail) { - var _this; - if (radius === void 0) { - radius = 1; - } - if (detail === void 0) { - detail = 0; - } - var t = (1 + Math.sqrt(5)) / 2; - var vertices = [-1, t, 0, 1, t, 0, -1, -t, 0, 1, -t, 0, 0, -1, t, 0, 1, t, 0, -1, -t, 0, 1, -t, t, 0, -1, t, 0, 1, -t, 0, -1, -t, 0, 1]; - var indices = [0, 11, 5, 0, 5, 1, 0, 1, 7, 0, 7, 10, 0, 10, 11, 1, 5, 9, 5, 11, 4, 11, 10, 2, 10, 7, 6, 7, 1, 8, 3, 9, 4, 3, 4, 2, 3, 2, 6, 3, 6, 8, 3, 8, 9, 4, 9, 5, 2, 4, 11, 6, 2, 10, 8, 6, 7, 9, 8, 1]; - _this = _PolyhedronBufferGeom.call(this, vertices, indices, radius, detail) || this; - _this.type = 'IcosahedronBufferGeometry'; - _this.parameters = { - radius: radius, - detail: detail - }; - return _this; - } - return IcosahedronBufferGeometry; - }(PolyhedronBufferGeometry); - var IcosahedronGeometry = /*#__PURE__*/function (_Geometry) { - _inheritsLoose(IcosahedronGeometry, _Geometry); - function IcosahedronGeometry(radius, detail) { - var _this; - _this = _Geometry.call(this) || this; - _this.type = 'IcosahedronGeometry'; - _this.parameters = { - radius: radius, - detail: detail - }; - _this.fromBufferGeometry(new IcosahedronBufferGeometry(radius, detail)); - _this.mergeVertices(); - return _this; - } - return IcosahedronGeometry; - }(Geometry); - var LatheBufferGeometry = /*#__PURE__*/function (_BufferGeometry) { - _inheritsLoose(LatheBufferGeometry, _BufferGeometry); - function LatheBufferGeometry(points, segments, phiStart, phiLength) { - var _this; - if (segments === void 0) { - segments = 12; - } - if (phiStart === void 0) { - phiStart = 0; - } - if (phiLength === void 0) { - phiLength = Math.PI * 2; - } - _this = _BufferGeometry.call(this) || this; - _this.type = 'LatheBufferGeometry'; - _this.parameters = { - points: points, - segments: segments, - phiStart: phiStart, - phiLength: phiLength - }; - segments = Math.floor(segments); // clamp phiLength so it's in range of [ 0, 2PI ] - phiLength = MathUtils.clamp(phiLength, 0, Math.PI * 2); // buffers - var indices = []; - var vertices = []; - var uvs = []; // helper variables - var inverseSegments = 1.0 / segments; - var vertex = new Vector3(); - var uv = new Vector2(); // generate vertices and uvs - for (var i = 0; i <= segments; i++) { - var phi = phiStart + i * inverseSegments * phiLength; - var sin = Math.sin(phi); - var cos = Math.cos(phi); - for (var j = 0; j <= points.length - 1; j++) { - // vertex - vertex.x = points[j].x * sin; - vertex.y = points[j].y; - vertex.z = points[j].x * cos; - vertices.push(vertex.x, vertex.y, vertex.z); // uv - uv.x = i / segments; - uv.y = j / (points.length - 1); - uvs.push(uv.x, uv.y); - } - } // indices - - for (var _i = 0; _i < segments; _i++) { - for (var _j = 0; _j < points.length - 1; _j++) { - var base = _j + _i * points.length; - var a = base; - var b = base + points.length; - var c = base + points.length + 1; - var d = base + 1; // faces - indices.push(a, b, d); - indices.push(b, c, d); - } - } // build geometry - - _this.setIndex(indices); - _this.setAttribute('position', new Float32BufferAttribute(vertices, 3)); - _this.setAttribute('uv', new Float32BufferAttribute(uvs, 2)); // generate normals - - _this.computeVertexNormals(); // if the geometry is closed, we need to average the normals along the seam. - // because the corresponding vertices are identical (but still have different UVs). - - if (phiLength === Math.PI * 2) { - var normals = _this.attributes.normal.array; - var n1 = new Vector3(); - var n2 = new Vector3(); - var n = new Vector3(); // this is the buffer offset for the last line of vertices - var _base = segments * points.length * 3; - for (var _i2 = 0, _j2 = 0; _i2 < points.length; _i2++, _j2 += 3) { - // select the normal of the vertex in the first line - n1.x = normals[_j2 + 0]; - n1.y = normals[_j2 + 1]; - n1.z = normals[_j2 + 2]; // select the normal of the vertex in the last line - n2.x = normals[_base + _j2 + 0]; - n2.y = normals[_base + _j2 + 1]; - n2.z = normals[_base + _j2 + 2]; // average normals - n.addVectors(n1, n2).normalize(); // assign the new values to both normals - normals[_j2 + 0] = normals[_base + _j2 + 0] = n.x; - normals[_j2 + 1] = normals[_base + _j2 + 1] = n.y; - normals[_j2 + 2] = normals[_base + _j2 + 2] = n.z; - } - } - return _this; - } - return LatheBufferGeometry; - }(BufferGeometry); - var LatheGeometry = /*#__PURE__*/function (_Geometry) { - _inheritsLoose(LatheGeometry, _Geometry); - function LatheGeometry(points, segments, phiStart, phiLength) { - var _this; - _this = _Geometry.call(this) || this; - _this.type = 'LatheGeometry'; - _this.parameters = { - points: points, - segments: segments, - phiStart: phiStart, - phiLength: phiLength - }; - _this.fromBufferGeometry(new LatheBufferGeometry(points, segments, phiStart, phiLength)); - _this.mergeVertices(); - return _this; - } - return LatheGeometry; - }(Geometry); - var OctahedronBufferGeometry = /*#__PURE__*/function (_PolyhedronBufferGeom) { - _inheritsLoose(OctahedronBufferGeometry, _PolyhedronBufferGeom); - function OctahedronBufferGeometry(radius, detail) { - var _this; - if (radius === void 0) { - radius = 1; - } - if (detail === void 0) { - detail = 0; - } - var vertices = [1, 0, 0, -1, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 1, 0, 0, -1]; - var indices = [0, 2, 4, 0, 4, 3, 0, 3, 5, 0, 5, 2, 1, 2, 5, 1, 5, 3, 1, 3, 4, 1, 4, 2]; - _this = _PolyhedronBufferGeom.call(this, vertices, indices, radius, detail) || this; - _this.type = 'OctahedronBufferGeometry'; - _this.parameters = { - radius: radius, - detail: detail - }; - return _this; - } - return OctahedronBufferGeometry; - }(PolyhedronBufferGeometry); - var OctahedronGeometry = /*#__PURE__*/function (_Geometry) { - _inheritsLoose(OctahedronGeometry, _Geometry); - function OctahedronGeometry(radius, detail) { - var _this; - _this = _Geometry.call(this) || this; - _this.type = 'OctahedronGeometry'; - _this.parameters = { - radius: radius, - detail: detail - }; - _this.fromBufferGeometry(new OctahedronBufferGeometry(radius, detail)); - _this.mergeVertices(); - return _this; - } - return OctahedronGeometry; - }(Geometry); - /** - * Parametric Surfaces Geometry - * based on the brilliant article by @prideout https://prideout.net/blog/old/blog/index.html@p=44.html - */ - function ParametricBufferGeometry(func, slices, stacks) { - BufferGeometry.call(this); - this.type = 'ParametricBufferGeometry'; - this.parameters = { - func: func, - slices: slices, - stacks: stacks - }; // buffers - var indices = []; - var vertices = []; - var normals = []; - var uvs = []; - var EPS = 0.00001; - var normal = new Vector3(); - var p0 = new Vector3(), - p1 = new Vector3(); - var pu = new Vector3(), - pv = new Vector3(); - if (func.length < 3) { - console.error('THREE.ParametricGeometry: Function must now modify a Vector3 as third parameter.'); - } // generate vertices, normals and uvs - - var sliceCount = slices + 1; - for (var i = 0; i <= stacks; i++) { - var v = i / stacks; - for (var j = 0; j <= slices; j++) { - var u = j / slices; // vertex - func(u, v, p0); - vertices.push(p0.x, p0.y, p0.z); // normal - // approximate tangent vectors via finite differences - if (u - EPS >= 0) { - func(u - EPS, v, p1); - pu.subVectors(p0, p1); - } else { - func(u + EPS, v, p1); - pu.subVectors(p1, p0); - } - if (v - EPS >= 0) { - func(u, v - EPS, p1); - pv.subVectors(p0, p1); - } else { - func(u, v + EPS, p1); - pv.subVectors(p1, p0); - } // cross product of tangent vectors returns surface normal - - normal.crossVectors(pu, pv).normalize(); - normals.push(normal.x, normal.y, normal.z); // uv - uvs.push(u, v); - } - } // generate indices - - for (var _i = 0; _i < stacks; _i++) { - for (var _j = 0; _j < slices; _j++) { - var a = _i * sliceCount + _j; - var b = _i * sliceCount + _j + 1; - var c = (_i + 1) * sliceCount + _j + 1; - var d = (_i + 1) * sliceCount + _j; // faces one and two - indices.push(a, b, d); - indices.push(b, c, d); - } - } // build geometry - - this.setIndex(indices); - this.setAttribute('position', new Float32BufferAttribute(vertices, 3)); - this.setAttribute('normal', new Float32BufferAttribute(normals, 3)); - this.setAttribute('uv', new Float32BufferAttribute(uvs, 2)); - } - ParametricBufferGeometry.prototype = Object.create(BufferGeometry.prototype); - ParametricBufferGeometry.prototype.constructor = ParametricBufferGeometry; - /** - * Parametric Surfaces Geometry - * based on the brilliant article by @prideout https://prideout.net/blog/old/blog/index.html@p=44.html - */ - function ParametricGeometry(func, slices, stacks) { - Geometry.call(this); - this.type = 'ParametricGeometry'; - this.parameters = { - func: func, - slices: slices, - stacks: stacks - }; - this.fromBufferGeometry(new ParametricBufferGeometry(func, slices, stacks)); - this.mergeVertices(); - } - ParametricGeometry.prototype = Object.create(Geometry.prototype); - ParametricGeometry.prototype.constructor = ParametricGeometry; - var PlaneGeometry = /*#__PURE__*/function (_Geometry) { - _inheritsLoose(PlaneGeometry, _Geometry); - function PlaneGeometry(width, height, widthSegments, heightSegments) { - var _this; - _this = _Geometry.call(this) || this; - _this.type = 'PlaneGeometry'; - _this.parameters = { - width: width, - height: height, - widthSegments: widthSegments, - heightSegments: heightSegments - }; - _this.fromBufferGeometry(new PlaneBufferGeometry(width, height, widthSegments, heightSegments)); - _this.mergeVertices(); - return _this; - } - return PlaneGeometry; - }(Geometry); - var PolyhedronGeometry = /*#__PURE__*/function (_Geometry) { - _inheritsLoose(PolyhedronGeometry, _Geometry); - function PolyhedronGeometry(vertices, indices, radius, detail) { - var _this; - _this = _Geometry.call(this) || this; - _this.type = 'PolyhedronGeometry'; - _this.parameters = { - vertices: vertices, - indices: indices, - radius: radius, - detail: detail - }; - _this.fromBufferGeometry(new PolyhedronBufferGeometry(vertices, indices, radius, detail)); - _this.mergeVertices(); - return _this; - } - return PolyhedronGeometry; - }(Geometry); - var RingBufferGeometry = /*#__PURE__*/function (_BufferGeometry) { - _inheritsLoose(RingBufferGeometry, _BufferGeometry); - function RingBufferGeometry(innerRadius, outerRadius, thetaSegments, phiSegments, thetaStart, thetaLength) { - var _this; - if (innerRadius === void 0) { - innerRadius = 0.5; - } - if (outerRadius === void 0) { - outerRadius = 1; - } - if (thetaSegments === void 0) { - thetaSegments = 8; - } - if (phiSegments === void 0) { - phiSegments = 1; - } - if (thetaStart === void 0) { - thetaStart = 0; - } - if (thetaLength === void 0) { - thetaLength = Math.PI * 2; - } - _this = _BufferGeometry.call(this) || this; - _this.type = 'RingBufferGeometry'; - _this.parameters = { - innerRadius: innerRadius, - outerRadius: outerRadius, - thetaSegments: thetaSegments, - phiSegments: phiSegments, - thetaStart: thetaStart, - thetaLength: thetaLength - }; - thetaSegments = Math.max(3, thetaSegments); - phiSegments = Math.max(1, phiSegments); // buffers - var indices = []; - var vertices = []; - var normals = []; - var uvs = []; // some helper variables - var radius = innerRadius; - var radiusStep = (outerRadius - innerRadius) / phiSegments; - var vertex = new Vector3(); - var uv = new Vector2(); // generate vertices, normals and uvs - for (var j = 0; j <= phiSegments; j++) { - for (var i = 0; i <= thetaSegments; i++) { - // values are generate from the inside of the ring to the outside - var segment = thetaStart + i / thetaSegments * thetaLength; // vertex - vertex.x = radius * Math.cos(segment); - vertex.y = radius * Math.sin(segment); - vertices.push(vertex.x, vertex.y, vertex.z); // normal - normals.push(0, 0, 1); // uv - uv.x = (vertex.x / outerRadius + 1) / 2; - uv.y = (vertex.y / outerRadius + 1) / 2; - uvs.push(uv.x, uv.y); - } // increase the radius for next row of vertices - - radius += radiusStep; - } // indices - - for (var _j = 0; _j < phiSegments; _j++) { - var thetaSegmentLevel = _j * (thetaSegments + 1); - for (var _i = 0; _i < thetaSegments; _i++) { - var _segment = _i + thetaSegmentLevel; - var a = _segment; - var b = _segment + thetaSegments + 1; - var c = _segment + thetaSegments + 2; - var d = _segment + 1; // faces - indices.push(a, b, d); - indices.push(b, c, d); - } - } // build geometry - - _this.setIndex(indices); - _this.setAttribute('position', new Float32BufferAttribute(vertices, 3)); - _this.setAttribute('normal', new Float32BufferAttribute(normals, 3)); - _this.setAttribute('uv', new Float32BufferAttribute(uvs, 2)); - return _this; - } - return RingBufferGeometry; - }(BufferGeometry); - var RingGeometry = /*#__PURE__*/function (_Geometry) { - _inheritsLoose(RingGeometry, _Geometry); - function RingGeometry(innerRadius, outerRadius, thetaSegments, phiSegments, thetaStart, thetaLength) { - var _this; - _this = _Geometry.call(this) || this; - _this.type = 'RingGeometry'; - _this.parameters = { - innerRadius: innerRadius, - outerRadius: outerRadius, - thetaSegments: thetaSegments, - phiSegments: phiSegments, - thetaStart: thetaStart, - thetaLength: thetaLength - }; - _this.fromBufferGeometry(new RingBufferGeometry(innerRadius, outerRadius, thetaSegments, phiSegments, thetaStart, thetaLength)); - _this.mergeVertices(); - return _this; - } - return RingGeometry; - }(Geometry); - var ShapeBufferGeometry = /*#__PURE__*/function (_BufferGeometry) { - _inheritsLoose(ShapeBufferGeometry, _BufferGeometry); - function ShapeBufferGeometry(shapes, curveSegments) { - var _this; - if (curveSegments === void 0) { - curveSegments = 12; - } - _this = _BufferGeometry.call(this) || this; - _this.type = 'ShapeBufferGeometry'; - _this.parameters = { - shapes: shapes, - curveSegments: curveSegments - }; // buffers - var indices = []; - var vertices = []; - var normals = []; - var uvs = []; // helper variables - var groupStart = 0; - var groupCount = 0; // allow single and array values for "shapes" parameter - if (Array.isArray(shapes) === false) { - addShape(shapes); - } else { - for (var i = 0; i < shapes.length; i++) { - addShape(shapes[i]); - _this.addGroup(groupStart, groupCount, i); // enables MultiMaterial support - - groupStart += groupCount; - groupCount = 0; - } - } // build geometry - - _this.setIndex(indices); - _this.setAttribute('position', new Float32BufferAttribute(vertices, 3)); - _this.setAttribute('normal', new Float32BufferAttribute(normals, 3)); - _this.setAttribute('uv', new Float32BufferAttribute(uvs, 2)); // helper functions - - function addShape(shape) { - var indexOffset = vertices.length / 3; - var points = shape.extractPoints(curveSegments); - var shapeVertices = points.shape; - var shapeHoles = points.holes; // check direction of vertices - if (ShapeUtils.isClockWise(shapeVertices) === false) { - shapeVertices = shapeVertices.reverse(); - } - for (var _i = 0, l = shapeHoles.length; _i < l; _i++) { - var shapeHole = shapeHoles[_i]; - if (ShapeUtils.isClockWise(shapeHole) === true) { - shapeHoles[_i] = shapeHole.reverse(); - } - } - var faces = ShapeUtils.triangulateShape(shapeVertices, shapeHoles); // join vertices of inner and outer paths to a single array - for (var _i2 = 0, _l = shapeHoles.length; _i2 < _l; _i2++) { - var _shapeHole = shapeHoles[_i2]; - shapeVertices = shapeVertices.concat(_shapeHole); - } // vertices, normals, uvs - - for (var _i3 = 0, _l2 = shapeVertices.length; _i3 < _l2; _i3++) { - var vertex = shapeVertices[_i3]; - vertices.push(vertex.x, vertex.y, 0); - normals.push(0, 0, 1); - uvs.push(vertex.x, vertex.y); // world uvs - } // incides - - for (var _i4 = 0, _l3 = faces.length; _i4 < _l3; _i4++) { - var face = faces[_i4]; - var a = face[0] + indexOffset; - var b = face[1] + indexOffset; - var c = face[2] + indexOffset; - indices.push(a, b, c); - groupCount += 3; - } - } - return _this; - } - var _proto = ShapeBufferGeometry.prototype; - _proto.toJSON = function toJSON() { - var data = BufferGeometry.prototype.toJSON.call(this); - var shapes = this.parameters.shapes; - return _toJSON$2(shapes, data); - }; - return ShapeBufferGeometry; - }(BufferGeometry); - function _toJSON$2(shapes, data) { - data.shapes = []; - if (Array.isArray(shapes)) { - for (var i = 0, l = shapes.length; i < l; i++) { - var shape = shapes[i]; - data.shapes.push(shape.uuid); - } - } else { - data.shapes.push(shapes.uuid); - } - return data; - } - var ShapeGeometry = /*#__PURE__*/function (_Geometry) { - _inheritsLoose(ShapeGeometry, _Geometry); - function ShapeGeometry(shapes, curveSegments) { - var _this; - _this = _Geometry.call(this) || this; - _this.type = 'ShapeGeometry'; - if (typeof curveSegments === 'object') { - console.warn('THREE.ShapeGeometry: Options parameter has been removed.'); - curveSegments = curveSegments.curveSegments; - } - _this.parameters = { - shapes: shapes, - curveSegments: curveSegments - }; - _this.fromBufferGeometry(new ShapeBufferGeometry(shapes, curveSegments)); - _this.mergeVertices(); - return _this; - } - var _proto = ShapeGeometry.prototype; - _proto.toJSON = function toJSON() { - var data = Geometry.prototype.toJSON.call(this); - var shapes = this.parameters.shapes; - return _toJSON$3(shapes, data); - }; - return ShapeGeometry; - }(Geometry); - function _toJSON$3(shapes, data) { - data.shapes = []; - if (Array.isArray(shapes)) { - for (var i = 0, l = shapes.length; i < l; i++) { - var shape = shapes[i]; - data.shapes.push(shape.uuid); - } - } else { - data.shapes.push(shapes.uuid); - } - return data; - } - var SphereBufferGeometry = /*#__PURE__*/function (_BufferGeometry) { - _inheritsLoose(SphereBufferGeometry, _BufferGeometry); - function SphereBufferGeometry(radius, widthSegments, heightSegments, phiStart, phiLength, thetaStart, thetaLength) { - var _this; - if (radius === void 0) { - radius = 1; - } - if (widthSegments === void 0) { - widthSegments = 8; - } - if (heightSegments === void 0) { - heightSegments = 6; - } - if (phiStart === void 0) { - phiStart = 0; - } - if (phiLength === void 0) { - phiLength = Math.PI * 2; - } - if (thetaStart === void 0) { - thetaStart = 0; - } - if (thetaLength === void 0) { - thetaLength = Math.PI; - } - _this = _BufferGeometry.call(this) || this; - _this.type = 'SphereBufferGeometry'; - _this.parameters = { - radius: radius, - widthSegments: widthSegments, - heightSegments: heightSegments, - phiStart: phiStart, - phiLength: phiLength, - thetaStart: thetaStart, - thetaLength: thetaLength - }; - widthSegments = Math.max(3, Math.floor(widthSegments)); - heightSegments = Math.max(2, Math.floor(heightSegments)); - var thetaEnd = Math.min(thetaStart + thetaLength, Math.PI); - var index = 0; - var grid = []; - var vertex = new Vector3(); - var normal = new Vector3(); // buffers - var indices = []; - var vertices = []; - var normals = []; - var uvs = []; // generate vertices, normals and uvs - for (var iy = 0; iy <= heightSegments; iy++) { - var verticesRow = []; - var v = iy / heightSegments; // special case for the poles - var uOffset = 0; - if (iy == 0 && thetaStart == 0) { - uOffset = 0.5 / widthSegments; - } else if (iy == heightSegments && thetaEnd == Math.PI) { - uOffset = -0.5 / widthSegments; - } - for (var ix = 0; ix <= widthSegments; ix++) { - var u = ix / widthSegments; // vertex - vertex.x = -radius * Math.cos(phiStart + u * phiLength) * Math.sin(thetaStart + v * thetaLength); - vertex.y = radius * Math.cos(thetaStart + v * thetaLength); - vertex.z = radius * Math.sin(phiStart + u * phiLength) * Math.sin(thetaStart + v * thetaLength); - vertices.push(vertex.x, vertex.y, vertex.z); // normal - normal.copy(vertex).normalize(); - normals.push(normal.x, normal.y, normal.z); // uv - uvs.push(u + uOffset, 1 - v); - verticesRow.push(index++); - } - grid.push(verticesRow); - } // indices - - for (var _iy = 0; _iy < heightSegments; _iy++) { - for (var _ix = 0; _ix < widthSegments; _ix++) { - var a = grid[_iy][_ix + 1]; - var b = grid[_iy][_ix]; - var c = grid[_iy + 1][_ix]; - var d = grid[_iy + 1][_ix + 1]; - if (_iy !== 0 || thetaStart > 0) indices.push(a, b, d); - if (_iy !== heightSegments - 1 || thetaEnd < Math.PI) indices.push(b, c, d); - } - } // build geometry - - _this.setIndex(indices); - _this.setAttribute('position', new Float32BufferAttribute(vertices, 3)); - _this.setAttribute('normal', new Float32BufferAttribute(normals, 3)); - _this.setAttribute('uv', new Float32BufferAttribute(uvs, 2)); - return _this; - } - return SphereBufferGeometry; - }(BufferGeometry); - var SphereGeometry = /*#__PURE__*/function (_Geometry) { - _inheritsLoose(SphereGeometry, _Geometry); - function SphereGeometry(radius, widthSegments, heightSegments, phiStart, phiLength, thetaStart, thetaLength) { - var _this; - _this = _Geometry.call(this) || this; - _this.type = 'SphereGeometry'; - _this.parameters = { - radius: radius, - widthSegments: widthSegments, - heightSegments: heightSegments, - phiStart: phiStart, - phiLength: phiLength, - thetaStart: thetaStart, - thetaLength: thetaLength - }; - _this.fromBufferGeometry(new SphereBufferGeometry(radius, widthSegments, heightSegments, phiStart, phiLength, thetaStart, thetaLength)); - _this.mergeVertices(); - return _this; - } - return SphereGeometry; - }(Geometry); - var TetrahedronBufferGeometry = /*#__PURE__*/function (_PolyhedronBufferGeom) { - _inheritsLoose(TetrahedronBufferGeometry, _PolyhedronBufferGeom); - function TetrahedronBufferGeometry(radius, detail) { - var _this; - if (radius === void 0) { - radius = 1; - } - if (detail === void 0) { - detail = 0; - } - var vertices = [1, 1, 1, -1, -1, 1, -1, 1, -1, 1, -1, -1]; - var indices = [2, 1, 0, 0, 3, 2, 1, 3, 0, 2, 3, 1]; - _this = _PolyhedronBufferGeom.call(this, vertices, indices, radius, detail) || this; - _this.type = 'TetrahedronBufferGeometry'; - _this.parameters = { - radius: radius, - detail: detail - }; - return _this; - } - return TetrahedronBufferGeometry; - }(PolyhedronBufferGeometry); - var TetrahedronGeometry = /*#__PURE__*/function (_Geometry) { - _inheritsLoose(TetrahedronGeometry, _Geometry); - function TetrahedronGeometry(radius, detail) { - var _this; - _this = _Geometry.call(this) || this; - _this.type = 'TetrahedronGeometry'; - _this.parameters = { - radius: radius, - detail: detail - }; - _this.fromBufferGeometry(new TetrahedronBufferGeometry(radius, detail)); - _this.mergeVertices(); - return _this; - } - return TetrahedronGeometry; - }(Geometry); - var TextBufferGeometry = /*#__PURE__*/function (_ExtrudeBufferGeometr) { - _inheritsLoose(TextBufferGeometry, _ExtrudeBufferGeometr); - function TextBufferGeometry(text, parameters) { - var _this; - if (parameters === void 0) { - parameters = {}; - } - var font = parameters.font; - if (!(font && font.isFont)) { - console.error('THREE.TextGeometry: font parameter is not an instance of THREE.Font.'); - return new BufferGeometry() || _assertThisInitialized(_this); - } - var shapes = font.generateShapes(text, parameters.size); // translate parameters to ExtrudeGeometry API - parameters.depth = parameters.height !== undefined ? parameters.height : 50; // defaults - if (parameters.bevelThickness === undefined) parameters.bevelThickness = 10; - if (parameters.bevelSize === undefined) parameters.bevelSize = 8; - if (parameters.bevelEnabled === undefined) parameters.bevelEnabled = false; - _this = _ExtrudeBufferGeometr.call(this, shapes, parameters) || this; - _this.type = 'TextBufferGeometry'; - return _this; - } - return TextBufferGeometry; - }(ExtrudeBufferGeometry); - var TextGeometry = /*#__PURE__*/function (_Geometry) { - _inheritsLoose(TextGeometry, _Geometry); - function TextGeometry(text, parameters) { - var _this; - _this = _Geometry.call(this) || this; - _this.type = 'TextGeometry'; - _this.parameters = { - text: text, - parameters: parameters - }; - _this.fromBufferGeometry(new TextBufferGeometry(text, parameters)); - _this.mergeVertices(); - return _this; - } - return TextGeometry; - }(Geometry); - var TorusBufferGeometry = /*#__PURE__*/function (_BufferGeometry) { - _inheritsLoose(TorusBufferGeometry, _BufferGeometry); - function TorusBufferGeometry(radius, tube, radialSegments, tubularSegments, arc) { - var _this; - if (radius === void 0) { - radius = 1; - } - if (tube === void 0) { - tube = 0.4; - } - if (radialSegments === void 0) { - radialSegments = 8; - } - if (tubularSegments === void 0) { - tubularSegments = 6; - } - if (arc === void 0) { - arc = Math.PI * 2; - } - _this = _BufferGeometry.call(this) || this; - _this.type = 'TorusBufferGeometry'; - _this.parameters = { - radius: radius, - tube: tube, - radialSegments: radialSegments, - tubularSegments: tubularSegments, - arc: arc - }; - radialSegments = Math.floor(radialSegments); - tubularSegments = Math.floor(tubularSegments); // buffers - var indices = []; - var vertices = []; - var normals = []; - var uvs = []; // helper variables - var center = new Vector3(); - var vertex = new Vector3(); - var normal = new Vector3(); // generate vertices, normals and uvs - for (var j = 0; j <= radialSegments; j++) { - for (var i = 0; i <= tubularSegments; i++) { - var u = i / tubularSegments * arc; - var v = j / radialSegments * Math.PI * 2; // vertex - vertex.x = (radius + tube * Math.cos(v)) * Math.cos(u); - vertex.y = (radius + tube * Math.cos(v)) * Math.sin(u); - vertex.z = tube * Math.sin(v); - vertices.push(vertex.x, vertex.y, vertex.z); // normal - center.x = radius * Math.cos(u); - center.y = radius * Math.sin(u); - normal.subVectors(vertex, center).normalize(); - normals.push(normal.x, normal.y, normal.z); // uv - uvs.push(i / tubularSegments); - uvs.push(j / radialSegments); - } - } // generate indices - - for (var _j = 1; _j <= radialSegments; _j++) { - for (var _i = 1; _i <= tubularSegments; _i++) { - // indices - var a = (tubularSegments + 1) * _j + _i - 1; - var b = (tubularSegments + 1) * (_j - 1) + _i - 1; - var c = (tubularSegments + 1) * (_j - 1) + _i; - var d = (tubularSegments + 1) * _j + _i; // faces - indices.push(a, b, d); - indices.push(b, c, d); - } - } // build geometry - - _this.setIndex(indices); - _this.setAttribute('position', new Float32BufferAttribute(vertices, 3)); - _this.setAttribute('normal', new Float32BufferAttribute(normals, 3)); - _this.setAttribute('uv', new Float32BufferAttribute(uvs, 2)); - return _this; - } - return TorusBufferGeometry; - }(BufferGeometry); - var TorusGeometry = /*#__PURE__*/function (_Geometry) { - _inheritsLoose(TorusGeometry, _Geometry); - function TorusGeometry(radius, tube, radialSegments, tubularSegments, arc) { - var _this; - _this = _Geometry.call(this) || this; - _this.type = 'TorusGeometry'; - _this.parameters = { - radius: radius, - tube: tube, - radialSegments: radialSegments, - tubularSegments: tubularSegments, - arc: arc - }; - _this.fromBufferGeometry(new TorusBufferGeometry(radius, tube, radialSegments, tubularSegments, arc)); - _this.mergeVertices(); - return _this; - } - return TorusGeometry; - }(Geometry); - var TorusKnotBufferGeometry = /*#__PURE__*/function (_BufferGeometry) { - _inheritsLoose(TorusKnotBufferGeometry, _BufferGeometry); - function TorusKnotBufferGeometry(radius, tube, tubularSegments, radialSegments, p, q) { - var _this; - if (radius === void 0) { - radius = 1; - } - if (tube === void 0) { - tube = 0.4; - } - if (tubularSegments === void 0) { - tubularSegments = 64; - } - if (radialSegments === void 0) { - radialSegments = 8; - } - if (p === void 0) { - p = 2; - } - if (q === void 0) { - q = 3; - } - _this = _BufferGeometry.call(this) || this; - _this.type = 'TorusKnotBufferGeometry'; - _this.parameters = { - radius: radius, - tube: tube, - tubularSegments: tubularSegments, - radialSegments: radialSegments, - p: p, - q: q - }; - tubularSegments = Math.floor(tubularSegments); - radialSegments = Math.floor(radialSegments); // buffers - var indices = []; - var vertices = []; - var normals = []; - var uvs = []; // helper variables - var vertex = new Vector3(); - var normal = new Vector3(); - var P1 = new Vector3(); - var P2 = new Vector3(); - var B = new Vector3(); - var T = new Vector3(); - var N = new Vector3(); // generate vertices, normals and uvs - for (var i = 0; i <= tubularSegments; ++i) { - // the radian "u" is used to calculate the position on the torus curve of the current tubular segement - var u = i / tubularSegments * p * Math.PI * 2; // now we calculate two points. P1 is our current position on the curve, P2 is a little farther ahead. - // these points are used to create a special "coordinate space", which is necessary to calculate the correct vertex positions - calculatePositionOnCurve(u, p, q, radius, P1); - calculatePositionOnCurve(u + 0.01, p, q, radius, P2); // calculate orthonormal basis - T.subVectors(P2, P1); - N.addVectors(P2, P1); - B.crossVectors(T, N); - N.crossVectors(B, T); // normalize B, N. T can be ignored, we don't use it - B.normalize(); - N.normalize(); - for (var j = 0; j <= radialSegments; ++j) { - // now calculate the vertices. they are nothing more than an extrusion of the torus curve. - // because we extrude a shape in the xy-plane, there is no need to calculate a z-value. - var v = j / radialSegments * Math.PI * 2; - var cx = -tube * Math.cos(v); - var cy = tube * Math.sin(v); // now calculate the final vertex position. - // first we orient the extrusion with our basis vectos, then we add it to the current position on the curve - vertex.x = P1.x + (cx * N.x + cy * B.x); - vertex.y = P1.y + (cx * N.y + cy * B.y); - vertex.z = P1.z + (cx * N.z + cy * B.z); - vertices.push(vertex.x, vertex.y, vertex.z); // normal (P1 is always the center/origin of the extrusion, thus we can use it to calculate the normal) - normal.subVectors(vertex, P1).normalize(); - normals.push(normal.x, normal.y, normal.z); // uv - uvs.push(i / tubularSegments); - uvs.push(j / radialSegments); - } - } // generate indices - - for (var _j = 1; _j <= tubularSegments; _j++) { - for (var _i = 1; _i <= radialSegments; _i++) { - // indices - var a = (radialSegments + 1) * (_j - 1) + (_i - 1); - var b = (radialSegments + 1) * _j + (_i - 1); - var c = (radialSegments + 1) * _j + _i; - var d = (radialSegments + 1) * (_j - 1) + _i; // faces - indices.push(a, b, d); - indices.push(b, c, d); - } - } // build geometry - - _this.setIndex(indices); - _this.setAttribute('position', new Float32BufferAttribute(vertices, 3)); - _this.setAttribute('normal', new Float32BufferAttribute(normals, 3)); - _this.setAttribute('uv', new Float32BufferAttribute(uvs, 2)); // this function calculates the current position on the torus curve - - function calculatePositionOnCurve(u, p, q, radius, position) { - var cu = Math.cos(u); - var su = Math.sin(u); - var quOverP = q / p * u; - var cs = Math.cos(quOverP); - position.x = radius * (2 + cs) * 0.5 * cu; - position.y = radius * (2 + cs) * su * 0.5; - position.z = radius * Math.sin(quOverP) * 0.5; - } - return _this; - } - return TorusKnotBufferGeometry; - }(BufferGeometry); - var TorusKnotGeometry = /*#__PURE__*/function (_Geometry) { - _inheritsLoose(TorusKnotGeometry, _Geometry); - function TorusKnotGeometry(radius, tube, tubularSegments, radialSegments, p, q, heightScale) { - var _this; - _this = _Geometry.call(this) || this; - _this.type = 'TorusKnotGeometry'; - _this.parameters = { - radius: radius, - tube: tube, - tubularSegments: tubularSegments, - radialSegments: radialSegments, - p: p, - q: q - }; - if (heightScale !== undefined) console.warn('THREE.TorusKnotGeometry: heightScale has been deprecated. Use .scale( x, y, z ) instead.'); - _this.fromBufferGeometry(new TorusKnotBufferGeometry(radius, tube, tubularSegments, radialSegments, p, q)); - _this.mergeVertices(); - return _this; - } - return TorusKnotGeometry; - }(Geometry); - var TubeBufferGeometry = /*#__PURE__*/function (_BufferGeometry) { - _inheritsLoose(TubeBufferGeometry, _BufferGeometry); - function TubeBufferGeometry(path, tubularSegments, radius, radialSegments, closed) { - var _this; - if (tubularSegments === void 0) { - tubularSegments = 64; - } - if (radius === void 0) { - radius = 1; - } - if (radialSegments === void 0) { - radialSegments = 8; - } - if (closed === void 0) { - closed = false; - } - _this = _BufferGeometry.call(this) || this; - _this.type = 'TubeBufferGeometry'; - _this.parameters = { - path: path, - tubularSegments: tubularSegments, - radius: radius, - radialSegments: radialSegments, - closed: closed - }; - var frames = path.computeFrenetFrames(tubularSegments, closed); // expose internals - _this.tangents = frames.tangents; - _this.normals = frames.normals; - _this.binormals = frames.binormals; // helper variables - var vertex = new Vector3(); - var normal = new Vector3(); - var uv = new Vector2(); - var P = new Vector3(); // buffer - var vertices = []; - var normals = []; - var uvs = []; - var indices = []; // create buffer data - generateBufferData(); // build geometry - _this.setIndex(indices); - _this.setAttribute('position', new Float32BufferAttribute(vertices, 3)); - _this.setAttribute('normal', new Float32BufferAttribute(normals, 3)); - _this.setAttribute('uv', new Float32BufferAttribute(uvs, 2)); // functions - - function generateBufferData() { - for (var i = 0; i < tubularSegments; i++) { - generateSegment(i); - } // if the geometry is not closed, generate the last row of vertices and normals - // at the regular position on the given path - // - // if the geometry is closed, duplicate the first row of vertices and normals (uvs will differ) - - generateSegment(closed === false ? tubularSegments : 0); // uvs are generated in a separate function. - // this makes it easy compute correct values for closed geometries - generateUVs(); // finally create faces - generateIndices(); - } - function generateSegment(i) { - // we use getPointAt to sample evenly distributed points from the given path - P = path.getPointAt(i / tubularSegments, P); // retrieve corresponding normal and binormal - var N = frames.normals[i]; - var B = frames.binormals[i]; // generate normals and vertices for the current segment - for (var j = 0; j <= radialSegments; j++) { - var v = j / radialSegments * Math.PI * 2; - var sin = Math.sin(v); - var cos = -Math.cos(v); // normal - normal.x = cos * N.x + sin * B.x; - normal.y = cos * N.y + sin * B.y; - normal.z = cos * N.z + sin * B.z; - normal.normalize(); - normals.push(normal.x, normal.y, normal.z); // vertex - vertex.x = P.x + radius * normal.x; - vertex.y = P.y + radius * normal.y; - vertex.z = P.z + radius * normal.z; - vertices.push(vertex.x, vertex.y, vertex.z); - } - } - function generateIndices() { - for (var j = 1; j <= tubularSegments; j++) { - for (var i = 1; i <= radialSegments; i++) { - var a = (radialSegments + 1) * (j - 1) + (i - 1); - var b = (radialSegments + 1) * j + (i - 1); - var c = (radialSegments + 1) * j + i; - var d = (radialSegments + 1) * (j - 1) + i; // faces - indices.push(a, b, d); - indices.push(b, c, d); - } - } - } - function generateUVs() { - for (var i = 0; i <= tubularSegments; i++) { - for (var j = 0; j <= radialSegments; j++) { - uv.x = i / tubularSegments; - uv.y = j / radialSegments; - uvs.push(uv.x, uv.y); - } - } - } - return _this; - } - var _proto = TubeBufferGeometry.prototype; - _proto.toJSON = function toJSON() { - var data = BufferGeometry.prototype.toJSON.call(this); - data.path = this.parameters.path.toJSON(); - return data; - }; - return TubeBufferGeometry; - }(BufferGeometry); - var TubeGeometry = /*#__PURE__*/function (_Geometry) { - _inheritsLoose(TubeGeometry, _Geometry); - function TubeGeometry(path, tubularSegments, radius, radialSegments, closed, taper) { - var _this; - _this = _Geometry.call(this) || this; - _this.type = 'TubeGeometry'; - _this.parameters = { - path: path, - tubularSegments: tubularSegments, - radius: radius, - radialSegments: radialSegments, - closed: closed - }; - if (taper !== undefined) console.warn('THREE.TubeGeometry: taper has been removed.'); - var bufferGeometry = new TubeBufferGeometry(path, tubularSegments, radius, radialSegments, closed); // expose internals - _this.tangents = bufferGeometry.tangents; - _this.normals = bufferGeometry.normals; - _this.binormals = bufferGeometry.binormals; // create geometry - _this.fromBufferGeometry(bufferGeometry); - _this.mergeVertices(); - return _this; - } - return TubeGeometry; - }(Geometry); - var WireframeGeometry = /*#__PURE__*/function (_BufferGeometry) { - _inheritsLoose(WireframeGeometry, _BufferGeometry); - function WireframeGeometry(geometry) { - var _this; - _this = _BufferGeometry.call(this) || this; - _this.type = 'WireframeGeometry'; // buffer - var vertices = []; // helper variables - var edge = [0, 0], - edges = {}; - var keys = ['a', 'b', 'c']; // different logic for Geometry and BufferGeometry - if (geometry && geometry.isGeometry) { - // create a data structure that contains all edges without duplicates - var faces = geometry.faces; - for (var i = 0, l = faces.length; i < l; i++) { - var face = faces[i]; - for (var j = 0; j < 3; j++) { - var edge1 = face[keys[j]]; - var edge2 = face[keys[(j + 1) % 3]]; - edge[0] = Math.min(edge1, edge2); // sorting prevents duplicates - edge[1] = Math.max(edge1, edge2); - var key = edge[0] + ',' + edge[1]; - if (edges[key] === undefined) { - edges[key] = { - index1: edge[0], - index2: edge[1] - }; - } - } - } // generate vertices - - for (var _key in edges) { - var e = edges[_key]; - var vertex = geometry.vertices[e.index1]; - vertices.push(vertex.x, vertex.y, vertex.z); - vertex = geometry.vertices[e.index2]; - vertices.push(vertex.x, vertex.y, vertex.z); - } - } else if (geometry && geometry.isBufferGeometry) { - var _vertex = new Vector3(); - if (geometry.index !== null) { - // indexed BufferGeometry - var position = geometry.attributes.position; - var indices = geometry.index; - var groups = geometry.groups; - if (groups.length === 0) { - groups = [{ - start: 0, - count: indices.count, - materialIndex: 0 - }]; - } // create a data structure that contains all eges without duplicates - - for (var o = 0, ol = groups.length; o < ol; ++o) { - var group = groups[o]; - var start = group.start; - var count = group.count; - for (var _i = start, _l = start + count; _i < _l; _i += 3) { - for (var _j = 0; _j < 3; _j++) { - var _edge = indices.getX(_i + _j); - var _edge2 = indices.getX(_i + (_j + 1) % 3); - edge[0] = Math.min(_edge, _edge2); // sorting prevents duplicates - edge[1] = Math.max(_edge, _edge2); - var _key2 = edge[0] + ',' + edge[1]; - if (edges[_key2] === undefined) { - edges[_key2] = { - index1: edge[0], - index2: edge[1] - }; - } - } - } - } // generate vertices - - for (var _key3 in edges) { - var _e = edges[_key3]; - _vertex.fromBufferAttribute(position, _e.index1); - vertices.push(_vertex.x, _vertex.y, _vertex.z); - _vertex.fromBufferAttribute(position, _e.index2); - vertices.push(_vertex.x, _vertex.y, _vertex.z); - } - } else { - // non-indexed BufferGeometry - var _position = geometry.attributes.position; - for (var _i2 = 0, _l2 = _position.count / 3; _i2 < _l2; _i2++) { - for (var _j2 = 0; _j2 < 3; _j2++) { - // three edges per triangle, an edge is represented as (index1, index2) - // e.g. the first triangle has the following edges: (0,1),(1,2),(2,0) - var index1 = 3 * _i2 + _j2; - _vertex.fromBufferAttribute(_position, index1); - vertices.push(_vertex.x, _vertex.y, _vertex.z); - var index2 = 3 * _i2 + (_j2 + 1) % 3; - _vertex.fromBufferAttribute(_position, index2); - vertices.push(_vertex.x, _vertex.y, _vertex.z); - } - } - } - } // build geometry - - _this.setAttribute('position', new Float32BufferAttribute(vertices, 3)); - return _this; - } - return WireframeGeometry; - }(BufferGeometry); - var Geometries = /*#__PURE__*/Object.freeze({ - __proto__: null, - BoxGeometry: BoxGeometry, - BoxBufferGeometry: BoxBufferGeometry, - CircleGeometry: CircleGeometry, - CircleBufferGeometry: CircleBufferGeometry, - ConeGeometry: ConeGeometry, - ConeBufferGeometry: ConeBufferGeometry, - CylinderGeometry: CylinderGeometry, - CylinderBufferGeometry: CylinderBufferGeometry, - DodecahedronGeometry: DodecahedronGeometry, - DodecahedronBufferGeometry: DodecahedronBufferGeometry, - EdgesGeometry: EdgesGeometry, - ExtrudeGeometry: ExtrudeGeometry, - ExtrudeBufferGeometry: ExtrudeBufferGeometry, - IcosahedronGeometry: IcosahedronGeometry, - IcosahedronBufferGeometry: IcosahedronBufferGeometry, - LatheGeometry: LatheGeometry, - LatheBufferGeometry: LatheBufferGeometry, - OctahedronGeometry: OctahedronGeometry, - OctahedronBufferGeometry: OctahedronBufferGeometry, - ParametricGeometry: ParametricGeometry, - ParametricBufferGeometry: ParametricBufferGeometry, - PlaneGeometry: PlaneGeometry, - PlaneBufferGeometry: PlaneBufferGeometry, - PolyhedronGeometry: PolyhedronGeometry, - PolyhedronBufferGeometry: PolyhedronBufferGeometry, - RingGeometry: RingGeometry, - RingBufferGeometry: RingBufferGeometry, - ShapeGeometry: ShapeGeometry, - ShapeBufferGeometry: ShapeBufferGeometry, - SphereGeometry: SphereGeometry, - SphereBufferGeometry: SphereBufferGeometry, - TetrahedronGeometry: TetrahedronGeometry, - TetrahedronBufferGeometry: TetrahedronBufferGeometry, - TextGeometry: TextGeometry, - TextBufferGeometry: TextBufferGeometry, - TorusGeometry: TorusGeometry, - TorusBufferGeometry: TorusBufferGeometry, - TorusKnotGeometry: TorusKnotGeometry, - TorusKnotBufferGeometry: TorusKnotBufferGeometry, - TubeGeometry: TubeGeometry, - TubeBufferGeometry: TubeBufferGeometry, - WireframeGeometry: WireframeGeometry - }); - /** - * parameters = { - * color: - * } - */ - function ShadowMaterial(parameters) { - Material.call(this); - this.type = 'ShadowMaterial'; - this.color = new Color(0x000000); - this.transparent = true; - this.setValues(parameters); - } - ShadowMaterial.prototype = Object.create(Material.prototype); - ShadowMaterial.prototype.constructor = ShadowMaterial; - ShadowMaterial.prototype.isShadowMaterial = true; - ShadowMaterial.prototype.copy = function (source) { - Material.prototype.copy.call(this, source); - this.color.copy(source.color); - return this; - }; - function RawShaderMaterial(parameters) { - ShaderMaterial.call(this, parameters); - this.type = 'RawShaderMaterial'; - } - RawShaderMaterial.prototype = Object.create(ShaderMaterial.prototype); - RawShaderMaterial.prototype.constructor = RawShaderMaterial; - RawShaderMaterial.prototype.isRawShaderMaterial = true; - /** - * parameters = { - * color: , - * roughness: , - * metalness: , - * opacity: , - * - * map: new THREE.Texture( ), - * - * lightMap: new THREE.Texture( ), - * lightMapIntensity: - * - * aoMap: new THREE.Texture( ), - * aoMapIntensity: - * - * emissive: , - * emissiveIntensity: - * emissiveMap: new THREE.Texture( ), - * - * bumpMap: new THREE.Texture( ), - * bumpScale: , - * - * normalMap: new THREE.Texture( ), - * normalMapType: THREE.TangentSpaceNormalMap, - * normalScale: , - * - * displacementMap: new THREE.Texture( ), - * displacementScale: , - * displacementBias: , - * - * roughnessMap: new THREE.Texture( ), - * - * metalnessMap: new THREE.Texture( ), - * - * alphaMap: new THREE.Texture( ), - * - * envMap: new THREE.CubeTexture( [posx, negx, posy, negy, posz, negz] ), - * envMapIntensity: - * - * refractionRatio: , - * - * wireframe: , - * wireframeLinewidth: , - * - * skinning: , - * morphTargets: , - * morphNormals: - * } - */ - function MeshStandardMaterial(parameters) { - Material.call(this); - this.defines = { - 'STANDARD': '' - }; - this.type = 'MeshStandardMaterial'; - this.color = new Color(0xffffff); // diffuse - this.roughness = 1.0; - this.metalness = 0.0; - this.map = null; - this.lightMap = null; - this.lightMapIntensity = 1.0; - this.aoMap = null; - this.aoMapIntensity = 1.0; - this.emissive = new Color(0x000000); - this.emissiveIntensity = 1.0; - this.emissiveMap = null; - this.bumpMap = null; - this.bumpScale = 1; - this.normalMap = null; - this.normalMapType = TangentSpaceNormalMap; - this.normalScale = new Vector2(1, 1); - this.displacementMap = null; - this.displacementScale = 1; - this.displacementBias = 0; - this.roughnessMap = null; - this.metalnessMap = null; - this.alphaMap = null; - this.envMap = null; - this.envMapIntensity = 1.0; - this.refractionRatio = 0.98; - this.wireframe = false; - this.wireframeLinewidth = 1; - this.wireframeLinecap = 'round'; - this.wireframeLinejoin = 'round'; - this.skinning = false; - this.morphTargets = false; - this.morphNormals = false; - this.vertexTangents = false; - this.setValues(parameters); - } - MeshStandardMaterial.prototype = Object.create(Material.prototype); - MeshStandardMaterial.prototype.constructor = MeshStandardMaterial; - MeshStandardMaterial.prototype.isMeshStandardMaterial = true; - MeshStandardMaterial.prototype.copy = function (source) { - Material.prototype.copy.call(this, source); - this.defines = { - 'STANDARD': '' - }; - this.color.copy(source.color); - this.roughness = source.roughness; - this.metalness = source.metalness; - this.map = source.map; - this.lightMap = source.lightMap; - this.lightMapIntensity = source.lightMapIntensity; - this.aoMap = source.aoMap; - this.aoMapIntensity = source.aoMapIntensity; - this.emissive.copy(source.emissive); - this.emissiveMap = source.emissiveMap; - this.emissiveIntensity = source.emissiveIntensity; - this.bumpMap = source.bumpMap; - this.bumpScale = source.bumpScale; - this.normalMap = source.normalMap; - this.normalMapType = source.normalMapType; - this.normalScale.copy(source.normalScale); - this.displacementMap = source.displacementMap; - this.displacementScale = source.displacementScale; - this.displacementBias = source.displacementBias; - this.roughnessMap = source.roughnessMap; - this.metalnessMap = source.metalnessMap; - this.alphaMap = source.alphaMap; - this.envMap = source.envMap; - this.envMapIntensity = source.envMapIntensity; - this.refractionRatio = source.refractionRatio; - this.wireframe = source.wireframe; - this.wireframeLinewidth = source.wireframeLinewidth; - this.wireframeLinecap = source.wireframeLinecap; - this.wireframeLinejoin = source.wireframeLinejoin; - this.skinning = source.skinning; - this.morphTargets = source.morphTargets; - this.morphNormals = source.morphNormals; - this.vertexTangents = source.vertexTangents; - return this; - }; - /** - * parameters = { - * clearcoat: , - * clearcoatMap: new THREE.Texture( ), - * clearcoatRoughness: , - * clearcoatRoughnessMap: new THREE.Texture( ), - * clearcoatNormalScale: , - * clearcoatNormalMap: new THREE.Texture( ), - * - * reflectivity: , - * ior: , - * - * sheen: , - * - * transmission: , - * transmissionMap: new THREE.Texture( ) - * } - */ - function MeshPhysicalMaterial(parameters) { - MeshStandardMaterial.call(this); - this.defines = { - 'STANDARD': '', - 'PHYSICAL': '' - }; - this.type = 'MeshPhysicalMaterial'; - this.clearcoat = 0.0; - this.clearcoatMap = null; - this.clearcoatRoughness = 0.0; - this.clearcoatRoughnessMap = null; - this.clearcoatNormalScale = new Vector2(1, 1); - this.clearcoatNormalMap = null; - this.reflectivity = 0.5; // maps to F0 = 0.04 - Object.defineProperty(this, 'ior', { - get: function get() { - return (1 + 0.4 * this.reflectivity) / (1 - 0.4 * this.reflectivity); - }, - set: function set(ior) { - this.reflectivity = MathUtils.clamp(2.5 * (ior - 1) / (ior + 1), 0, 1); - } - }); - this.sheen = null; // null will disable sheen bsdf - this.transmission = 0.0; - this.transmissionMap = null; - this.setValues(parameters); - } - MeshPhysicalMaterial.prototype = Object.create(MeshStandardMaterial.prototype); - MeshPhysicalMaterial.prototype.constructor = MeshPhysicalMaterial; - MeshPhysicalMaterial.prototype.isMeshPhysicalMaterial = true; - MeshPhysicalMaterial.prototype.copy = function (source) { - MeshStandardMaterial.prototype.copy.call(this, source); - this.defines = { - 'STANDARD': '', - 'PHYSICAL': '' - }; - this.clearcoat = source.clearcoat; - this.clearcoatMap = source.clearcoatMap; - this.clearcoatRoughness = source.clearcoatRoughness; - this.clearcoatRoughnessMap = source.clearcoatRoughnessMap; - this.clearcoatNormalMap = source.clearcoatNormalMap; - this.clearcoatNormalScale.copy(source.clearcoatNormalScale); - this.reflectivity = source.reflectivity; - if (source.sheen) { - this.sheen = (this.sheen || new Color()).copy(source.sheen); - } else { - this.sheen = null; - } - this.transmission = source.transmission; - this.transmissionMap = source.transmissionMap; - return this; - }; - /** - * parameters = { - * color: , - * specular: , - * shininess: , - * opacity: , - * - * map: new THREE.Texture( ), - * - * lightMap: new THREE.Texture( ), - * lightMapIntensity: - * - * aoMap: new THREE.Texture( ), - * aoMapIntensity: - * - * emissive: , - * emissiveIntensity: - * emissiveMap: new THREE.Texture( ), - * - * bumpMap: new THREE.Texture( ), - * bumpScale: , - * - * normalMap: new THREE.Texture( ), - * normalMapType: THREE.TangentSpaceNormalMap, - * normalScale: , - * - * displacementMap: new THREE.Texture( ), - * displacementScale: , - * displacementBias: , - * - * specularMap: new THREE.Texture( ), - * - * alphaMap: new THREE.Texture( ), - * - * envMap: new THREE.CubeTexture( [posx, negx, posy, negy, posz, negz] ), - * combine: THREE.MultiplyOperation, - * reflectivity: , - * refractionRatio: , - * - * wireframe: , - * wireframeLinewidth: , - * - * skinning: , - * morphTargets: , - * morphNormals: - * } - */ - function MeshPhongMaterial(parameters) { - Material.call(this); - this.type = 'MeshPhongMaterial'; - this.color = new Color(0xffffff); // diffuse - this.specular = new Color(0x111111); - this.shininess = 30; - this.map = null; - this.lightMap = null; - this.lightMapIntensity = 1.0; - this.aoMap = null; - this.aoMapIntensity = 1.0; - this.emissive = new Color(0x000000); - this.emissiveIntensity = 1.0; - this.emissiveMap = null; - this.bumpMap = null; - this.bumpScale = 1; - this.normalMap = null; - this.normalMapType = TangentSpaceNormalMap; - this.normalScale = new Vector2(1, 1); - this.displacementMap = null; - this.displacementScale = 1; - this.displacementBias = 0; - this.specularMap = null; - this.alphaMap = null; - this.envMap = null; - this.combine = MultiplyOperation; - this.reflectivity = 1; - this.refractionRatio = 0.98; - this.wireframe = false; - this.wireframeLinewidth = 1; - this.wireframeLinecap = 'round'; - this.wireframeLinejoin = 'round'; - this.skinning = false; - this.morphTargets = false; - this.morphNormals = false; - this.setValues(parameters); - } - MeshPhongMaterial.prototype = Object.create(Material.prototype); - MeshPhongMaterial.prototype.constructor = MeshPhongMaterial; - MeshPhongMaterial.prototype.isMeshPhongMaterial = true; - MeshPhongMaterial.prototype.copy = function (source) { - Material.prototype.copy.call(this, source); - this.color.copy(source.color); - this.specular.copy(source.specular); - this.shininess = source.shininess; - this.map = source.map; - this.lightMap = source.lightMap; - this.lightMapIntensity = source.lightMapIntensity; - this.aoMap = source.aoMap; - this.aoMapIntensity = source.aoMapIntensity; - this.emissive.copy(source.emissive); - this.emissiveMap = source.emissiveMap; - this.emissiveIntensity = source.emissiveIntensity; - this.bumpMap = source.bumpMap; - this.bumpScale = source.bumpScale; - this.normalMap = source.normalMap; - this.normalMapType = source.normalMapType; - this.normalScale.copy(source.normalScale); - this.displacementMap = source.displacementMap; - this.displacementScale = source.displacementScale; - this.displacementBias = source.displacementBias; - this.specularMap = source.specularMap; - this.alphaMap = source.alphaMap; - this.envMap = source.envMap; - this.combine = source.combine; - this.reflectivity = source.reflectivity; - this.refractionRatio = source.refractionRatio; - this.wireframe = source.wireframe; - this.wireframeLinewidth = source.wireframeLinewidth; - this.wireframeLinecap = source.wireframeLinecap; - this.wireframeLinejoin = source.wireframeLinejoin; - this.skinning = source.skinning; - this.morphTargets = source.morphTargets; - this.morphNormals = source.morphNormals; - return this; - }; - /** - * parameters = { - * color: , - * - * map: new THREE.Texture( ), - * gradientMap: new THREE.Texture( ), - * - * lightMap: new THREE.Texture( ), - * lightMapIntensity: - * - * aoMap: new THREE.Texture( ), - * aoMapIntensity: - * - * emissive: , - * emissiveIntensity: - * emissiveMap: new THREE.Texture( ), - * - * bumpMap: new THREE.Texture( ), - * bumpScale: , - * - * normalMap: new THREE.Texture( ), - * normalMapType: THREE.TangentSpaceNormalMap, - * normalScale: , - * - * displacementMap: new THREE.Texture( ), - * displacementScale: , - * displacementBias: , - * - * alphaMap: new THREE.Texture( ), - * - * wireframe: , - * wireframeLinewidth: , - * - * skinning: , - * morphTargets: , - * morphNormals: - * } - */ - function MeshToonMaterial(parameters) { - Material.call(this); - this.defines = { - 'TOON': '' - }; - this.type = 'MeshToonMaterial'; - this.color = new Color(0xffffff); - this.map = null; - this.gradientMap = null; - this.lightMap = null; - this.lightMapIntensity = 1.0; - this.aoMap = null; - this.aoMapIntensity = 1.0; - this.emissive = new Color(0x000000); - this.emissiveIntensity = 1.0; - this.emissiveMap = null; - this.bumpMap = null; - this.bumpScale = 1; - this.normalMap = null; - this.normalMapType = TangentSpaceNormalMap; - this.normalScale = new Vector2(1, 1); - this.displacementMap = null; - this.displacementScale = 1; - this.displacementBias = 0; - this.alphaMap = null; - this.wireframe = false; - this.wireframeLinewidth = 1; - this.wireframeLinecap = 'round'; - this.wireframeLinejoin = 'round'; - this.skinning = false; - this.morphTargets = false; - this.morphNormals = false; - this.setValues(parameters); - } - MeshToonMaterial.prototype = Object.create(Material.prototype); - MeshToonMaterial.prototype.constructor = MeshToonMaterial; - MeshToonMaterial.prototype.isMeshToonMaterial = true; - MeshToonMaterial.prototype.copy = function (source) { - Material.prototype.copy.call(this, source); - this.color.copy(source.color); - this.map = source.map; - this.gradientMap = source.gradientMap; - this.lightMap = source.lightMap; - this.lightMapIntensity = source.lightMapIntensity; - this.aoMap = source.aoMap; - this.aoMapIntensity = source.aoMapIntensity; - this.emissive.copy(source.emissive); - this.emissiveMap = source.emissiveMap; - this.emissiveIntensity = source.emissiveIntensity; - this.bumpMap = source.bumpMap; - this.bumpScale = source.bumpScale; - this.normalMap = source.normalMap; - this.normalMapType = source.normalMapType; - this.normalScale.copy(source.normalScale); - this.displacementMap = source.displacementMap; - this.displacementScale = source.displacementScale; - this.displacementBias = source.displacementBias; - this.alphaMap = source.alphaMap; - this.wireframe = source.wireframe; - this.wireframeLinewidth = source.wireframeLinewidth; - this.wireframeLinecap = source.wireframeLinecap; - this.wireframeLinejoin = source.wireframeLinejoin; - this.skinning = source.skinning; - this.morphTargets = source.morphTargets; - this.morphNormals = source.morphNormals; - return this; - }; - /** - * parameters = { - * opacity: , - * - * bumpMap: new THREE.Texture( ), - * bumpScale: , - * - * normalMap: new THREE.Texture( ), - * normalMapType: THREE.TangentSpaceNormalMap, - * normalScale: , - * - * displacementMap: new THREE.Texture( ), - * displacementScale: , - * displacementBias: , - * - * wireframe: , - * wireframeLinewidth: - * - * skinning: , - * morphTargets: , - * morphNormals: - * } - */ - function MeshNormalMaterial(parameters) { - Material.call(this); - this.type = 'MeshNormalMaterial'; - this.bumpMap = null; - this.bumpScale = 1; - this.normalMap = null; - this.normalMapType = TangentSpaceNormalMap; - this.normalScale = new Vector2(1, 1); - this.displacementMap = null; - this.displacementScale = 1; - this.displacementBias = 0; - this.wireframe = false; - this.wireframeLinewidth = 1; - this.fog = false; - this.skinning = false; - this.morphTargets = false; - this.morphNormals = false; - this.setValues(parameters); - } - MeshNormalMaterial.prototype = Object.create(Material.prototype); - MeshNormalMaterial.prototype.constructor = MeshNormalMaterial; - MeshNormalMaterial.prototype.isMeshNormalMaterial = true; - MeshNormalMaterial.prototype.copy = function (source) { - Material.prototype.copy.call(this, source); - this.bumpMap = source.bumpMap; - this.bumpScale = source.bumpScale; - this.normalMap = source.normalMap; - this.normalMapType = source.normalMapType; - this.normalScale.copy(source.normalScale); - this.displacementMap = source.displacementMap; - this.displacementScale = source.displacementScale; - this.displacementBias = source.displacementBias; - this.wireframe = source.wireframe; - this.wireframeLinewidth = source.wireframeLinewidth; - this.skinning = source.skinning; - this.morphTargets = source.morphTargets; - this.morphNormals = source.morphNormals; - return this; - }; - /** - * parameters = { - * color: , - * opacity: , - * - * map: new THREE.Texture( ), - * - * lightMap: new THREE.Texture( ), - * lightMapIntensity: - * - * aoMap: new THREE.Texture( ), - * aoMapIntensity: - * - * emissive: , - * emissiveIntensity: - * emissiveMap: new THREE.Texture( ), - * - * specularMap: new THREE.Texture( ), - * - * alphaMap: new THREE.Texture( ), - * - * envMap: new THREE.CubeTexture( [posx, negx, posy, negy, posz, negz] ), - * combine: THREE.Multiply, - * reflectivity: , - * refractionRatio: , - * - * wireframe: , - * wireframeLinewidth: , - * - * skinning: , - * morphTargets: , - * morphNormals: - * } - */ - function MeshLambertMaterial(parameters) { - Material.call(this); - this.type = 'MeshLambertMaterial'; - this.color = new Color(0xffffff); // diffuse - this.map = null; - this.lightMap = null; - this.lightMapIntensity = 1.0; - this.aoMap = null; - this.aoMapIntensity = 1.0; - this.emissive = new Color(0x000000); - this.emissiveIntensity = 1.0; - this.emissiveMap = null; - this.specularMap = null; - this.alphaMap = null; - this.envMap = null; - this.combine = MultiplyOperation; - this.reflectivity = 1; - this.refractionRatio = 0.98; - this.wireframe = false; - this.wireframeLinewidth = 1; - this.wireframeLinecap = 'round'; - this.wireframeLinejoin = 'round'; - this.skinning = false; - this.morphTargets = false; - this.morphNormals = false; - this.setValues(parameters); - } - MeshLambertMaterial.prototype = Object.create(Material.prototype); - MeshLambertMaterial.prototype.constructor = MeshLambertMaterial; - MeshLambertMaterial.prototype.isMeshLambertMaterial = true; - MeshLambertMaterial.prototype.copy = function (source) { - Material.prototype.copy.call(this, source); - this.color.copy(source.color); - this.map = source.map; - this.lightMap = source.lightMap; - this.lightMapIntensity = source.lightMapIntensity; - this.aoMap = source.aoMap; - this.aoMapIntensity = source.aoMapIntensity; - this.emissive.copy(source.emissive); - this.emissiveMap = source.emissiveMap; - this.emissiveIntensity = source.emissiveIntensity; - this.specularMap = source.specularMap; - this.alphaMap = source.alphaMap; - this.envMap = source.envMap; - this.combine = source.combine; - this.reflectivity = source.reflectivity; - this.refractionRatio = source.refractionRatio; - this.wireframe = source.wireframe; - this.wireframeLinewidth = source.wireframeLinewidth; - this.wireframeLinecap = source.wireframeLinecap; - this.wireframeLinejoin = source.wireframeLinejoin; - this.skinning = source.skinning; - this.morphTargets = source.morphTargets; - this.morphNormals = source.morphNormals; - return this; - }; - /** - * parameters = { - * color: , - * opacity: , - * - * matcap: new THREE.Texture( ), - * - * map: new THREE.Texture( ), - * - * bumpMap: new THREE.Texture( ), - * bumpScale: , - * - * normalMap: new THREE.Texture( ), - * normalMapType: THREE.TangentSpaceNormalMap, - * normalScale: , - * - * displacementMap: new THREE.Texture( ), - * displacementScale: , - * displacementBias: , - * - * alphaMap: new THREE.Texture( ), - * - * skinning: , - * morphTargets: , - * morphNormals: - * } - */ - function MeshMatcapMaterial(parameters) { - Material.call(this); - this.defines = { - 'MATCAP': '' - }; - this.type = 'MeshMatcapMaterial'; - this.color = new Color(0xffffff); // diffuse - this.matcap = null; - this.map = null; - this.bumpMap = null; - this.bumpScale = 1; - this.normalMap = null; - this.normalMapType = TangentSpaceNormalMap; - this.normalScale = new Vector2(1, 1); - this.displacementMap = null; - this.displacementScale = 1; - this.displacementBias = 0; - this.alphaMap = null; - this.skinning = false; - this.morphTargets = false; - this.morphNormals = false; - this.setValues(parameters); - } - MeshMatcapMaterial.prototype = Object.create(Material.prototype); - MeshMatcapMaterial.prototype.constructor = MeshMatcapMaterial; - MeshMatcapMaterial.prototype.isMeshMatcapMaterial = true; - MeshMatcapMaterial.prototype.copy = function (source) { - Material.prototype.copy.call(this, source); - this.defines = { - 'MATCAP': '' - }; - this.color.copy(source.color); - this.matcap = source.matcap; - this.map = source.map; - this.bumpMap = source.bumpMap; - this.bumpScale = source.bumpScale; - this.normalMap = source.normalMap; - this.normalMapType = source.normalMapType; - this.normalScale.copy(source.normalScale); - this.displacementMap = source.displacementMap; - this.displacementScale = source.displacementScale; - this.displacementBias = source.displacementBias; - this.alphaMap = source.alphaMap; - this.skinning = source.skinning; - this.morphTargets = source.morphTargets; - this.morphNormals = source.morphNormals; - return this; - }; - /** - * parameters = { - * color: , - * opacity: , - * - * linewidth: , - * - * scale: , - * dashSize: , - * gapSize: - * } - */ - function LineDashedMaterial(parameters) { - LineBasicMaterial.call(this); - this.type = 'LineDashedMaterial'; - this.scale = 1; - this.dashSize = 3; - this.gapSize = 1; - this.setValues(parameters); - } - LineDashedMaterial.prototype = Object.create(LineBasicMaterial.prototype); - LineDashedMaterial.prototype.constructor = LineDashedMaterial; - LineDashedMaterial.prototype.isLineDashedMaterial = true; - LineDashedMaterial.prototype.copy = function (source) { - LineBasicMaterial.prototype.copy.call(this, source); - this.scale = source.scale; - this.dashSize = source.dashSize; - this.gapSize = source.gapSize; - return this; - }; - var Materials = /*#__PURE__*/Object.freeze({ - __proto__: null, - ShadowMaterial: ShadowMaterial, - SpriteMaterial: SpriteMaterial, - RawShaderMaterial: RawShaderMaterial, - ShaderMaterial: ShaderMaterial, - PointsMaterial: PointsMaterial, - MeshPhysicalMaterial: MeshPhysicalMaterial, - MeshStandardMaterial: MeshStandardMaterial, - MeshPhongMaterial: MeshPhongMaterial, - MeshToonMaterial: MeshToonMaterial, - MeshNormalMaterial: MeshNormalMaterial, - MeshLambertMaterial: MeshLambertMaterial, - MeshDepthMaterial: MeshDepthMaterial, - MeshDistanceMaterial: MeshDistanceMaterial, - MeshBasicMaterial: MeshBasicMaterial, - MeshMatcapMaterial: MeshMatcapMaterial, - LineDashedMaterial: LineDashedMaterial, - LineBasicMaterial: LineBasicMaterial, - Material: Material - }); - var AnimationUtils = { - // same as Array.prototype.slice, but also works on typed arrays - arraySlice: function arraySlice(array, from, to) { - if (AnimationUtils.isTypedArray(array)) { - // in ios9 array.subarray(from, undefined) will return empty array - // but array.subarray(from) or array.subarray(from, len) is correct - return new array.constructor(array.subarray(from, to !== undefined ? to : array.length)); - } - return array.slice(from, to); - }, - // converts an array to a specific type - convertArray: function convertArray(array, type, forceClone) { - if (!array || // let 'undefined' and 'null' pass - !forceClone && array.constructor === type) return array; - if (typeof type.BYTES_PER_ELEMENT === 'number') { - return new type(array); // create typed array - } - return Array.prototype.slice.call(array); // create Array - }, - isTypedArray: function isTypedArray(object) { - return ArrayBuffer.isView(object) && !(object instanceof DataView); - }, - // returns an array by which times and values can be sorted - getKeyframeOrder: function getKeyframeOrder(times) { - function compareTime(i, j) { - return times[i] - times[j]; - } - var n = times.length; - var result = new Array(n); - for (var i = 0; i !== n; ++i) { - result[i] = i; - } - result.sort(compareTime); - return result; - }, - // uses the array previously returned by 'getKeyframeOrder' to sort data - sortedArray: function sortedArray(values, stride, order) { - var nValues = values.length; - var result = new values.constructor(nValues); - for (var i = 0, dstOffset = 0; dstOffset !== nValues; ++i) { - var srcOffset = order[i] * stride; - for (var j = 0; j !== stride; ++j) { - result[dstOffset++] = values[srcOffset + j]; - } - } - return result; - }, - // function for parsing AOS keyframe formats - flattenJSON: function flattenJSON(jsonKeys, times, values, valuePropertyName) { - var i = 1, - key = jsonKeys[0]; - while (key !== undefined && key[valuePropertyName] === undefined) { - key = jsonKeys[i++]; - } - if (key === undefined) return; // no data - var value = key[valuePropertyName]; - if (value === undefined) return; // no data - if (Array.isArray(value)) { - do { - value = key[valuePropertyName]; - if (value !== undefined) { - times.push(key.time); - values.push.apply(values, value); // push all elements - } - key = jsonKeys[i++]; - } while (key !== undefined); - } else if (value.toArray !== undefined) { - // ...assume THREE.Math-ish - do { - value = key[valuePropertyName]; - if (value !== undefined) { - times.push(key.time); - value.toArray(values, values.length); - } - key = jsonKeys[i++]; - } while (key !== undefined); - } else { - // otherwise push as-is - do { - value = key[valuePropertyName]; - if (value !== undefined) { - times.push(key.time); - values.push(value); - } - key = jsonKeys[i++]; - } while (key !== undefined); - } - }, - subclip: function subclip(sourceClip, name, startFrame, endFrame, fps) { - if (fps === void 0) { - fps = 30; - } - var clip = sourceClip.clone(); - clip.name = name; - var tracks = []; - for (var i = 0; i < clip.tracks.length; ++i) { - var track = clip.tracks[i]; - var valueSize = track.getValueSize(); - var times = []; - var values = []; - for (var j = 0; j < track.times.length; ++j) { - var frame = track.times[j] * fps; - if (frame < startFrame || frame >= endFrame) continue; - times.push(track.times[j]); - for (var k = 0; k < valueSize; ++k) { - values.push(track.values[j * valueSize + k]); - } - } - if (times.length === 0) continue; - track.times = AnimationUtils.convertArray(times, track.times.constructor); - track.values = AnimationUtils.convertArray(values, track.values.constructor); - tracks.push(track); - } - clip.tracks = tracks; // find minimum .times value across all tracks in the trimmed clip - var minStartTime = Infinity; - for (var _i = 0; _i < clip.tracks.length; ++_i) { - if (minStartTime > clip.tracks[_i].times[0]) { - minStartTime = clip.tracks[_i].times[0]; - } - } // shift all tracks such that clip begins at t=0 - - for (var _i2 = 0; _i2 < clip.tracks.length; ++_i2) { - clip.tracks[_i2].shift(-1 * minStartTime); - } - clip.resetDuration(); - return clip; - }, - makeClipAdditive: function makeClipAdditive(targetClip, referenceFrame, referenceClip, fps) { - if (referenceFrame === void 0) { - referenceFrame = 0; - } - if (referenceClip === void 0) { - referenceClip = targetClip; - } - if (fps === void 0) { - fps = 30; - } - if (fps <= 0) fps = 30; - var numTracks = referenceClip.tracks.length; - var referenceTime = referenceFrame / fps; // Make each track's values relative to the values at the reference frame - var _loop = function _loop(i) { - var referenceTrack = referenceClip.tracks[i]; - var referenceTrackType = referenceTrack.ValueTypeName; // Skip this track if it's non-numeric - if (referenceTrackType === 'bool' || referenceTrackType === 'string') return "continue"; // Find the track in the target clip whose name and type matches the reference track - var targetTrack = targetClip.tracks.find(function (track) { - return track.name === referenceTrack.name && track.ValueTypeName === referenceTrackType; - }); - if (targetTrack === undefined) return "continue"; - var referenceOffset = 0; - var referenceValueSize = referenceTrack.getValueSize(); - if (referenceTrack.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline) { - referenceOffset = referenceValueSize / 3; - } - var targetOffset = 0; - var targetValueSize = targetTrack.getValueSize(); - if (targetTrack.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline) { - targetOffset = targetValueSize / 3; - } - var lastIndex = referenceTrack.times.length - 1; - var referenceValue = void 0; // Find the value to subtract out of the track - if (referenceTime <= referenceTrack.times[0]) { - // Reference frame is earlier than the first keyframe, so just use the first keyframe - var startIndex = referenceOffset; - var endIndex = referenceValueSize - referenceOffset; - referenceValue = AnimationUtils.arraySlice(referenceTrack.values, startIndex, endIndex); - } else if (referenceTime >= referenceTrack.times[lastIndex]) { - // Reference frame is after the last keyframe, so just use the last keyframe - var _startIndex = lastIndex * referenceValueSize + referenceOffset; - var _endIndex = _startIndex + referenceValueSize - referenceOffset; - referenceValue = AnimationUtils.arraySlice(referenceTrack.values, _startIndex, _endIndex); - } else { - // Interpolate to the reference value - var interpolant = referenceTrack.createInterpolant(); - var _startIndex2 = referenceOffset; - var _endIndex2 = referenceValueSize - referenceOffset; - interpolant.evaluate(referenceTime); - referenceValue = AnimationUtils.arraySlice(interpolant.resultBuffer, _startIndex2, _endIndex2); - } // Conjugate the quaternion - - if (referenceTrackType === 'quaternion') { - var referenceQuat = new Quaternion().fromArray(referenceValue).normalize().conjugate(); - referenceQuat.toArray(referenceValue); - } // Subtract the reference value from all of the track values - - var numTimes = targetTrack.times.length; - for (var j = 0; j < numTimes; ++j) { - var valueStart = j * targetValueSize + targetOffset; - if (referenceTrackType === 'quaternion') { - // Multiply the conjugate for quaternion track types - Quaternion.multiplyQuaternionsFlat(targetTrack.values, valueStart, referenceValue, 0, targetTrack.values, valueStart); - } else { - var valueEnd = targetValueSize - targetOffset * 2; // Subtract each value for all other numeric track types - for (var k = 0; k < valueEnd; ++k) { - targetTrack.values[valueStart + k] -= referenceValue[k]; - } - } - } - }; - for (var i = 0; i < numTracks; ++i) { - var _ret = _loop(i); - if (_ret === "continue") continue; - } - targetClip.blendMode = AdditiveAnimationBlendMode; - return targetClip; - } - }; - /** - * Abstract base class of interpolants over parametric samples. - * - * The parameter domain is one dimensional, typically the time or a path - * along a curve defined by the data. - * - * The sample values can have any dimensionality and derived classes may - * apply special interpretations to the data. - * - * This class provides the interval seek in a Template Method, deferring - * the actual interpolation to derived classes. - * - * Time complexity is O(1) for linear access crossing at most two points - * and O(log N) for random access, where N is the number of positions. - * - * References: - * - * http://www.oodesign.com/template-method-pattern.html - * - */ - function Interpolant(parameterPositions, sampleValues, sampleSize, resultBuffer) { - this.parameterPositions = parameterPositions; - this._cachedIndex = 0; - this.resultBuffer = resultBuffer !== undefined ? resultBuffer : new sampleValues.constructor(sampleSize); - this.sampleValues = sampleValues; - this.valueSize = sampleSize; - } - Object.assign(Interpolant.prototype, { - evaluate: function evaluate(t) { - var pp = this.parameterPositions; - var i1 = this._cachedIndex, - t1 = pp[i1], - t0 = pp[i1 - 1]; - validate_interval: { - seek: { - var right; - linear_scan: { - //- See http://jsperf.com/comparison-to-undefined/3 - //- slower code: - //- - //- if ( t >= t1 || t1 === undefined ) { - forward_scan: if (!(t < t1)) { - for (var giveUpAt = i1 + 2;;) { - if (t1 === undefined) { - if (t < t0) break forward_scan; // after end - i1 = pp.length; - this._cachedIndex = i1; - return this.afterEnd_(i1 - 1, t, t0); - } - if (i1 === giveUpAt) break; // this loop - t0 = t1; - t1 = pp[++i1]; - if (t < t1) { - // we have arrived at the sought interval - break seek; - } - } // prepare binary search on the right side of the index - - right = pp.length; - break linear_scan; - } //- slower code: - //- if ( t < t0 || t0 === undefined ) { - - if (!(t >= t0)) { - // looping? - var t1global = pp[1]; - if (t < t1global) { - i1 = 2; // + 1, using the scan for the details - t0 = t1global; - } // linear reverse scan - - for (var _giveUpAt = i1 - 2;;) { - if (t0 === undefined) { - // before start - this._cachedIndex = 0; - return this.beforeStart_(0, t, t1); - } - if (i1 === _giveUpAt) break; // this loop - t1 = t0; - t0 = pp[--i1 - 1]; - if (t >= t0) { - // we have arrived at the sought interval - break seek; - } - } // prepare binary search on the left side of the index - - right = i1; - i1 = 0; - break linear_scan; - } // the interval is valid - - break validate_interval; - } // linear scan - // binary search - - while (i1 < right) { - var mid = i1 + right >>> 1; - if (t < pp[mid]) { - right = mid; - } else { - i1 = mid + 1; - } - } - t1 = pp[i1]; - t0 = pp[i1 - 1]; // check boundary cases, again - if (t0 === undefined) { - this._cachedIndex = 0; - return this.beforeStart_(0, t, t1); - } - if (t1 === undefined) { - i1 = pp.length; - this._cachedIndex = i1; - return this.afterEnd_(i1 - 1, t0, t); - } - } // seek - - this._cachedIndex = i1; - this.intervalChanged_(i1, t0, t1); - } // validate_interval - - return this.interpolate_(i1, t0, t, t1); - }, - settings: null, - // optional, subclass-specific settings structure - // Note: The indirection allows central control of many interpolants. - // --- Protected interface - DefaultSettings_: {}, - getSettings_: function getSettings_() { - return this.settings || this.DefaultSettings_; - }, - copySampleValue_: function copySampleValue_(index) { - // copies a sample value to the result buffer - var result = this.resultBuffer, - values = this.sampleValues, - stride = this.valueSize, - offset = index * stride; - for (var i = 0; i !== stride; ++i) { - result[i] = values[offset + i]; - } - return result; - }, - // Template methods for derived classes: - interpolate_: function interpolate_() - /* i1, t0, t, t1 */ - { - throw new Error('call to abstract method'); // implementations shall return this.resultBuffer - }, - intervalChanged_: function intervalChanged_() - /* i1, t0, t1 */ - {// empty - } - }); // DECLARE ALIAS AFTER assign prototype - Object.assign(Interpolant.prototype, { - //( 0, t, t0 ), returns this.resultBuffer - beforeStart_: Interpolant.prototype.copySampleValue_, - //( N-1, tN-1, t ), returns this.resultBuffer - afterEnd_: Interpolant.prototype.copySampleValue_ - }); - /** - * Fast and simple cubic spline interpolant. - * - * It was derived from a Hermitian construction setting the first derivative - * at each sample position to the linear slope between neighboring positions - * over their parameter interval. - */ - function CubicInterpolant(parameterPositions, sampleValues, sampleSize, resultBuffer) { - Interpolant.call(this, parameterPositions, sampleValues, sampleSize, resultBuffer); - this._weightPrev = -0; - this._offsetPrev = -0; - this._weightNext = -0; - this._offsetNext = -0; - } - CubicInterpolant.prototype = Object.assign(Object.create(Interpolant.prototype), { - constructor: CubicInterpolant, - DefaultSettings_: { - endingStart: ZeroCurvatureEnding, - endingEnd: ZeroCurvatureEnding - }, - intervalChanged_: function intervalChanged_(i1, t0, t1) { - var pp = this.parameterPositions; - var iPrev = i1 - 2, - iNext = i1 + 1, - tPrev = pp[iPrev], - tNext = pp[iNext]; - if (tPrev === undefined) { - switch (this.getSettings_().endingStart) { - case ZeroSlopeEnding: - // f'(t0) = 0 - iPrev = i1; - tPrev = 2 * t0 - t1; - break; - case WrapAroundEnding: - // use the other end of the curve - iPrev = pp.length - 2; - tPrev = t0 + pp[iPrev] - pp[iPrev + 1]; - break; - default: - // ZeroCurvatureEnding - // f''(t0) = 0 a.k.a. Natural Spline - iPrev = i1; - tPrev = t1; - } - } - if (tNext === undefined) { - switch (this.getSettings_().endingEnd) { - case ZeroSlopeEnding: - // f'(tN) = 0 - iNext = i1; - tNext = 2 * t1 - t0; - break; - case WrapAroundEnding: - // use the other end of the curve - iNext = 1; - tNext = t1 + pp[1] - pp[0]; - break; - default: - // ZeroCurvatureEnding - // f''(tN) = 0, a.k.a. Natural Spline - iNext = i1 - 1; - tNext = t0; - } - } - var halfDt = (t1 - t0) * 0.5, - stride = this.valueSize; - this._weightPrev = halfDt / (t0 - tPrev); - this._weightNext = halfDt / (tNext - t1); - this._offsetPrev = iPrev * stride; - this._offsetNext = iNext * stride; - }, - interpolate_: function interpolate_(i1, t0, t, t1) { - var result = this.resultBuffer, - values = this.sampleValues, - stride = this.valueSize, - o1 = i1 * stride, - o0 = o1 - stride, - oP = this._offsetPrev, - oN = this._offsetNext, - wP = this._weightPrev, - wN = this._weightNext, - p = (t - t0) / (t1 - t0), - pp = p * p, - ppp = pp * p; // evaluate polynomials - var sP = -wP * ppp + 2 * wP * pp - wP * p; - var s0 = (1 + wP) * ppp + (-1.5 - 2 * wP) * pp + (-0.5 + wP) * p + 1; - var s1 = (-1 - wN) * ppp + (1.5 + wN) * pp + 0.5 * p; - var sN = wN * ppp - wN * pp; // combine data linearly - for (var i = 0; i !== stride; ++i) { - result[i] = sP * values[oP + i] + s0 * values[o0 + i] + s1 * values[o1 + i] + sN * values[oN + i]; - } - return result; - } - }); - function LinearInterpolant(parameterPositions, sampleValues, sampleSize, resultBuffer) { - Interpolant.call(this, parameterPositions, sampleValues, sampleSize, resultBuffer); - } - LinearInterpolant.prototype = Object.assign(Object.create(Interpolant.prototype), { - constructor: LinearInterpolant, - interpolate_: function interpolate_(i1, t0, t, t1) { - var result = this.resultBuffer, - values = this.sampleValues, - stride = this.valueSize, - offset1 = i1 * stride, - offset0 = offset1 - stride, - weight1 = (t - t0) / (t1 - t0), - weight0 = 1 - weight1; - for (var i = 0; i !== stride; ++i) { - result[i] = values[offset0 + i] * weight0 + values[offset1 + i] * weight1; - } - return result; - } - }); - /** - * - * Interpolant that evaluates to the sample value at the position preceeding - * the parameter. - */ - function DiscreteInterpolant(parameterPositions, sampleValues, sampleSize, resultBuffer) { - Interpolant.call(this, parameterPositions, sampleValues, sampleSize, resultBuffer); - } - DiscreteInterpolant.prototype = Object.assign(Object.create(Interpolant.prototype), { - constructor: DiscreteInterpolant, - interpolate_: function interpolate_(i1 - /*, t0, t, t1 */ - ) { - return this.copySampleValue_(i1 - 1); - } - }); - function KeyframeTrack(name, times, values, interpolation) { - if (name === undefined) throw new Error('THREE.KeyframeTrack: track name is undefined'); - if (times === undefined || times.length === 0) throw new Error('THREE.KeyframeTrack: no keyframes in track named ' + name); - this.name = name; - this.times = AnimationUtils.convertArray(times, this.TimeBufferType); - this.values = AnimationUtils.convertArray(values, this.ValueBufferType); - this.setInterpolation(interpolation || this.DefaultInterpolation); - } // Static methods - - Object.assign(KeyframeTrack, { - // Serialization (in static context, because of constructor invocation - // and automatic invocation of .toJSON): - toJSON: function toJSON(track) { - var trackType = track.constructor; - var json; // derived classes can define a static toJSON method - if (trackType.toJSON !== undefined) { - json = trackType.toJSON(track); - } else { - // by default, we assume the data can be serialized as-is - json = { - 'name': track.name, - 'times': AnimationUtils.convertArray(track.times, Array), - 'values': AnimationUtils.convertArray(track.values, Array) - }; - var interpolation = track.getInterpolation(); - if (interpolation !== track.DefaultInterpolation) { - json.interpolation = interpolation; - } - } - json.type = track.ValueTypeName; // mandatory - return json; - } - }); - Object.assign(KeyframeTrack.prototype, { - constructor: KeyframeTrack, - TimeBufferType: Float32Array, - ValueBufferType: Float32Array, - DefaultInterpolation: InterpolateLinear, - InterpolantFactoryMethodDiscrete: function InterpolantFactoryMethodDiscrete(result) { - return new DiscreteInterpolant(this.times, this.values, this.getValueSize(), result); - }, - InterpolantFactoryMethodLinear: function InterpolantFactoryMethodLinear(result) { - return new LinearInterpolant(this.times, this.values, this.getValueSize(), result); - }, - InterpolantFactoryMethodSmooth: function InterpolantFactoryMethodSmooth(result) { - return new CubicInterpolant(this.times, this.values, this.getValueSize(), result); - }, - setInterpolation: function setInterpolation(interpolation) { - var factoryMethod; - switch (interpolation) { - case InterpolateDiscrete: - factoryMethod = this.InterpolantFactoryMethodDiscrete; - break; - case InterpolateLinear: - factoryMethod = this.InterpolantFactoryMethodLinear; - break; - case InterpolateSmooth: - factoryMethod = this.InterpolantFactoryMethodSmooth; - break; - } - if (factoryMethod === undefined) { - var message = 'unsupported interpolation for ' + this.ValueTypeName + ' keyframe track named ' + this.name; - if (this.createInterpolant === undefined) { - // fall back to default, unless the default itself is messed up - if (interpolation !== this.DefaultInterpolation) { - this.setInterpolation(this.DefaultInterpolation); - } else { - throw new Error(message); // fatal, in this case - } - } - console.warn('THREE.KeyframeTrack:', message); - return this; - } - this.createInterpolant = factoryMethod; - return this; - }, - getInterpolation: function getInterpolation() { - switch (this.createInterpolant) { - case this.InterpolantFactoryMethodDiscrete: - return InterpolateDiscrete; - case this.InterpolantFactoryMethodLinear: - return InterpolateLinear; - case this.InterpolantFactoryMethodSmooth: - return InterpolateSmooth; - } - }, - getValueSize: function getValueSize() { - return this.values.length / this.times.length; - }, - // move all keyframes either forwards or backwards in time - shift: function shift(timeOffset) { - if (timeOffset !== 0.0) { - var times = this.times; - for (var i = 0, n = times.length; i !== n; ++i) { - times[i] += timeOffset; - } - } - return this; - }, - // scale all keyframe times by a factor (useful for frame <-> seconds conversions) - scale: function scale(timeScale) { - if (timeScale !== 1.0) { - var times = this.times; - for (var i = 0, n = times.length; i !== n; ++i) { - times[i] *= timeScale; - } - } - return this; - }, - // removes keyframes before and after animation without changing any values within the range [startTime, endTime]. - // IMPORTANT: We do not shift around keys to the start of the track time, because for interpolated keys this will change their values - trim: function trim(startTime, endTime) { - var times = this.times, - nKeys = times.length; - var from = 0, - to = nKeys - 1; - while (from !== nKeys && times[from] < startTime) { - ++from; - } - while (to !== -1 && times[to] > endTime) { - --to; - } - ++to; // inclusive -> exclusive bound - if (from !== 0 || to !== nKeys) { - // empty tracks are forbidden, so keep at least one keyframe - if (from >= to) { - to = Math.max(to, 1); - from = to - 1; - } - var stride = this.getValueSize(); - this.times = AnimationUtils.arraySlice(times, from, to); - this.values = AnimationUtils.arraySlice(this.values, from * stride, to * stride); - } - return this; - }, - // ensure we do not get a GarbageInGarbageOut situation, make sure tracks are at least minimally viable - validate: function validate() { - var valid = true; - var valueSize = this.getValueSize(); - if (valueSize - Math.floor(valueSize) !== 0) { - console.error('THREE.KeyframeTrack: Invalid value size in track.', this); - valid = false; - } - var times = this.times, - values = this.values, - nKeys = times.length; - if (nKeys === 0) { - console.error('THREE.KeyframeTrack: Track is empty.', this); - valid = false; - } - var prevTime = null; - for (var i = 0; i !== nKeys; i++) { - var currTime = times[i]; - if (typeof currTime === 'number' && isNaN(currTime)) { - console.error('THREE.KeyframeTrack: Time is not a valid number.', this, i, currTime); - valid = false; - break; - } - if (prevTime !== null && prevTime > currTime) { - console.error('THREE.KeyframeTrack: Out of order keys.', this, i, currTime, prevTime); - valid = false; - break; - } - prevTime = currTime; - } - if (values !== undefined) { - if (AnimationUtils.isTypedArray(values)) { - for (var _i = 0, n = values.length; _i !== n; ++_i) { - var value = values[_i]; - if (isNaN(value)) { - console.error('THREE.KeyframeTrack: Value is not a valid number.', this, _i, value); - valid = false; - break; - } - } - } - } - return valid; - }, - // removes equivalent sequential keys as common in morph target sequences - // (0,0,0,0,1,1,1,0,0,0,0,0,0,0) --> (0,0,1,1,0,0) - optimize: function optimize() { - // times or values may be shared with other tracks, so overwriting is unsafe - var times = AnimationUtils.arraySlice(this.times), - values = AnimationUtils.arraySlice(this.values), - stride = this.getValueSize(), - smoothInterpolation = this.getInterpolation() === InterpolateSmooth, - lastIndex = times.length - 1; - var writeIndex = 1; - for (var i = 1; i < lastIndex; ++i) { - var keep = false; - var time = times[i]; - var timeNext = times[i + 1]; // remove adjacent keyframes scheduled at the same time - if (time !== timeNext && (i !== 1 || time !== time[0])) { - if (!smoothInterpolation) { - // remove unnecessary keyframes same as their neighbors - var offset = i * stride, - offsetP = offset - stride, - offsetN = offset + stride; - for (var j = 0; j !== stride; ++j) { - var value = values[offset + j]; - if (value !== values[offsetP + j] || value !== values[offsetN + j]) { - keep = true; - break; - } - } - } else { - keep = true; - } - } // in-place compaction - - if (keep) { - if (i !== writeIndex) { - times[writeIndex] = times[i]; - var readOffset = i * stride, - writeOffset = writeIndex * stride; - for (var _j = 0; _j !== stride; ++_j) { - values[writeOffset + _j] = values[readOffset + _j]; - } - } - ++writeIndex; - } - } // flush last keyframe (compaction looks ahead) - - if (lastIndex > 0) { - times[writeIndex] = times[lastIndex]; - for (var _readOffset = lastIndex * stride, _writeOffset = writeIndex * stride, _j2 = 0; _j2 !== stride; ++_j2) { - values[_writeOffset + _j2] = values[_readOffset + _j2]; - } - ++writeIndex; - } - if (writeIndex !== times.length) { - this.times = AnimationUtils.arraySlice(times, 0, writeIndex); - this.values = AnimationUtils.arraySlice(values, 0, writeIndex * stride); - } else { - this.times = times; - this.values = values; - } - return this; - }, - clone: function clone() { - var times = AnimationUtils.arraySlice(this.times, 0); - var values = AnimationUtils.arraySlice(this.values, 0); - var TypedKeyframeTrack = this.constructor; - var track = new TypedKeyframeTrack(this.name, times, values); // Interpolant argument to constructor is not saved, so copy the factory method directly. - track.createInterpolant = this.createInterpolant; - return track; - } - }); - /** - * A Track of Boolean keyframe values. - */ - function BooleanKeyframeTrack(name, times, values) { - KeyframeTrack.call(this, name, times, values); - } - BooleanKeyframeTrack.prototype = Object.assign(Object.create(KeyframeTrack.prototype), { - constructor: BooleanKeyframeTrack, - ValueTypeName: 'bool', - ValueBufferType: Array, - DefaultInterpolation: InterpolateDiscrete, - InterpolantFactoryMethodLinear: undefined, - InterpolantFactoryMethodSmooth: undefined // Note: Actually this track could have a optimized / compressed - // representation of a single value and a custom interpolant that - // computes "firstValue ^ isOdd( index )". - }); - /** - * A Track of keyframe values that represent color. - */ - function ColorKeyframeTrack(name, times, values, interpolation) { - KeyframeTrack.call(this, name, times, values, interpolation); - } - ColorKeyframeTrack.prototype = Object.assign(Object.create(KeyframeTrack.prototype), { - constructor: ColorKeyframeTrack, - ValueTypeName: 'color' // ValueBufferType is inherited - // DefaultInterpolation is inherited - // Note: Very basic implementation and nothing special yet. - // However, this is the place for color space parameterization. - }); - /** - * A Track of numeric keyframe values. - */ - function NumberKeyframeTrack(name, times, values, interpolation) { - KeyframeTrack.call(this, name, times, values, interpolation); - } - NumberKeyframeTrack.prototype = Object.assign(Object.create(KeyframeTrack.prototype), { - constructor: NumberKeyframeTrack, - ValueTypeName: 'number' // ValueBufferType is inherited - // DefaultInterpolation is inherited - }); - /** - * Spherical linear unit quaternion interpolant. - */ - function QuaternionLinearInterpolant(parameterPositions, sampleValues, sampleSize, resultBuffer) { - Interpolant.call(this, parameterPositions, sampleValues, sampleSize, resultBuffer); - } - QuaternionLinearInterpolant.prototype = Object.assign(Object.create(Interpolant.prototype), { - constructor: QuaternionLinearInterpolant, - interpolate_: function interpolate_(i1, t0, t, t1) { - var result = this.resultBuffer, - values = this.sampleValues, - stride = this.valueSize, - alpha = (t - t0) / (t1 - t0); - var offset = i1 * stride; - for (var end = offset + stride; offset !== end; offset += 4) { - Quaternion.slerpFlat(result, 0, values, offset - stride, values, offset, alpha); - } - return result; - } - }); - /** - * A Track of quaternion keyframe values. - */ - function QuaternionKeyframeTrack(name, times, values, interpolation) { - KeyframeTrack.call(this, name, times, values, interpolation); - } - QuaternionKeyframeTrack.prototype = Object.assign(Object.create(KeyframeTrack.prototype), { - constructor: QuaternionKeyframeTrack, - ValueTypeName: 'quaternion', - // ValueBufferType is inherited - DefaultInterpolation: InterpolateLinear, - InterpolantFactoryMethodLinear: function InterpolantFactoryMethodLinear(result) { - return new QuaternionLinearInterpolant(this.times, this.values, this.getValueSize(), result); - }, - InterpolantFactoryMethodSmooth: undefined // not yet implemented - }); - /** - * A Track that interpolates Strings - */ - function StringKeyframeTrack(name, times, values, interpolation) { - KeyframeTrack.call(this, name, times, values, interpolation); - } - StringKeyframeTrack.prototype = Object.assign(Object.create(KeyframeTrack.prototype), { - constructor: StringKeyframeTrack, - ValueTypeName: 'string', - ValueBufferType: Array, - DefaultInterpolation: InterpolateDiscrete, - InterpolantFactoryMethodLinear: undefined, - InterpolantFactoryMethodSmooth: undefined - }); - /** - * A Track of vectored keyframe values. - */ - function VectorKeyframeTrack(name, times, values, interpolation) { - KeyframeTrack.call(this, name, times, values, interpolation); - } - VectorKeyframeTrack.prototype = Object.assign(Object.create(KeyframeTrack.prototype), { - constructor: VectorKeyframeTrack, - ValueTypeName: 'vector' // ValueBufferType is inherited - // DefaultInterpolation is inherited - }); - function AnimationClip(name, duration, tracks, blendMode) { - this.name = name; - this.tracks = tracks; - this.duration = duration !== undefined ? duration : -1; - this.blendMode = blendMode !== undefined ? blendMode : NormalAnimationBlendMode; - this.uuid = MathUtils.generateUUID(); // this means it should figure out its duration by scanning the tracks - if (this.duration < 0) { - this.resetDuration(); - } - } - function getTrackTypeForValueTypeName(typeName) { - switch (typeName.toLowerCase()) { - case 'scalar': - case 'double': - case 'float': - case 'number': - case 'integer': - return NumberKeyframeTrack; - case 'vector': - case 'vector2': - case 'vector3': - case 'vector4': - return VectorKeyframeTrack; - case 'color': - return ColorKeyframeTrack; - case 'quaternion': - return QuaternionKeyframeTrack; - case 'bool': - case 'boolean': - return BooleanKeyframeTrack; - case 'string': - return StringKeyframeTrack; - } - throw new Error('THREE.KeyframeTrack: Unsupported typeName: ' + typeName); - } - function parseKeyframeTrack(json) { - if (json.type === undefined) { - throw new Error('THREE.KeyframeTrack: track type undefined, can not parse'); - } - var trackType = getTrackTypeForValueTypeName(json.type); - if (json.times === undefined) { - var times = [], - values = []; - AnimationUtils.flattenJSON(json.keys, times, values, 'value'); - json.times = times; - json.values = values; - } // derived classes can define a static parse method - - if (trackType.parse !== undefined) { - return trackType.parse(json); - } else { - // by default, we assume a constructor compatible with the base - return new trackType(json.name, json.times, json.values, json.interpolation); - } - } - Object.assign(AnimationClip, { - parse: function parse(json) { - var tracks = [], - jsonTracks = json.tracks, - frameTime = 1.0 / (json.fps || 1.0); - for (var i = 0, n = jsonTracks.length; i !== n; ++i) { - tracks.push(parseKeyframeTrack(jsonTracks[i]).scale(frameTime)); - } - var clip = new AnimationClip(json.name, json.duration, tracks, json.blendMode); - clip.uuid = json.uuid; - return clip; - }, - toJSON: function toJSON(clip) { - var tracks = [], - clipTracks = clip.tracks; - var json = { - 'name': clip.name, - 'duration': clip.duration, - 'tracks': tracks, - 'uuid': clip.uuid, - 'blendMode': clip.blendMode - }; - for (var i = 0, n = clipTracks.length; i !== n; ++i) { - tracks.push(KeyframeTrack.toJSON(clipTracks[i])); - } - return json; - }, - CreateFromMorphTargetSequence: function CreateFromMorphTargetSequence(name, morphTargetSequence, fps, noLoop) { - var numMorphTargets = morphTargetSequence.length; - var tracks = []; - for (var i = 0; i < numMorphTargets; i++) { - var times = []; - var values = []; - times.push((i + numMorphTargets - 1) % numMorphTargets, i, (i + 1) % numMorphTargets); - values.push(0, 1, 0); - var order = AnimationUtils.getKeyframeOrder(times); - times = AnimationUtils.sortedArray(times, 1, order); - values = AnimationUtils.sortedArray(values, 1, order); // if there is a key at the first frame, duplicate it as the - // last frame as well for perfect loop. - if (!noLoop && times[0] === 0) { - times.push(numMorphTargets); - values.push(values[0]); - } - tracks.push(new NumberKeyframeTrack('.morphTargetInfluences[' + morphTargetSequence[i].name + ']', times, values).scale(1.0 / fps)); - } - return new AnimationClip(name, -1, tracks); - }, - findByName: function findByName(objectOrClipArray, name) { - var clipArray = objectOrClipArray; - if (!Array.isArray(objectOrClipArray)) { - var o = objectOrClipArray; - clipArray = o.geometry && o.geometry.animations || o.animations; - } - for (var i = 0; i < clipArray.length; i++) { - if (clipArray[i].name === name) { - return clipArray[i]; - } - } - return null; - }, - CreateClipsFromMorphTargetSequences: function CreateClipsFromMorphTargetSequences(morphTargets, fps, noLoop) { - var animationToMorphTargets = {}; // tested with https://regex101.com/ on trick sequences - // such flamingo_flyA_003, flamingo_run1_003, crdeath0059 - var pattern = /^([\w-]*?)([\d]+)$/; // sort morph target names into animation groups based - // patterns like Walk_001, Walk_002, Run_001, Run_002 - for (var i = 0, il = morphTargets.length; i < il; i++) { - var morphTarget = morphTargets[i]; - var parts = morphTarget.name.match(pattern); - if (parts && parts.length > 1) { - var name = parts[1]; - var animationMorphTargets = animationToMorphTargets[name]; - if (!animationMorphTargets) { - animationToMorphTargets[name] = animationMorphTargets = []; - } - animationMorphTargets.push(morphTarget); - } - } - var clips = []; - for (var _name in animationToMorphTargets) { - clips.push(AnimationClip.CreateFromMorphTargetSequence(_name, animationToMorphTargets[_name], fps, noLoop)); - } - return clips; - }, - // parse the animation.hierarchy format - parseAnimation: function parseAnimation(animation, bones) { - if (!animation) { - console.error('THREE.AnimationClip: No animation in JSONLoader data.'); - return null; - } - var addNonemptyTrack = function addNonemptyTrack(trackType, trackName, animationKeys, propertyName, destTracks) { - // only return track if there are actually keys. - if (animationKeys.length !== 0) { - var times = []; - var values = []; - AnimationUtils.flattenJSON(animationKeys, times, values, propertyName); // empty keys are filtered out, so check again - if (times.length !== 0) { - destTracks.push(new trackType(trackName, times, values)); - } - } - }; - var tracks = []; - var clipName = animation.name || 'default'; - var fps = animation.fps || 30; - var blendMode = animation.blendMode; // automatic length determination in AnimationClip. - var duration = animation.length || -1; - var hierarchyTracks = animation.hierarchy || []; - for (var h = 0; h < hierarchyTracks.length; h++) { - var animationKeys = hierarchyTracks[h].keys; // skip empty tracks - if (!animationKeys || animationKeys.length === 0) continue; // process morph targets - if (animationKeys[0].morphTargets) { - // figure out all morph targets used in this track - var morphTargetNames = {}; - var k = void 0; - for (k = 0; k < animationKeys.length; k++) { - if (animationKeys[k].morphTargets) { - for (var m = 0; m < animationKeys[k].morphTargets.length; m++) { - morphTargetNames[animationKeys[k].morphTargets[m]] = -1; - } - } - } // create a track for each morph target with all zero - // morphTargetInfluences except for the keys in which - // the morphTarget is named. - - for (var morphTargetName in morphTargetNames) { - var times = []; - var values = []; - for (var _m = 0; _m !== animationKeys[k].morphTargets.length; ++_m) { - var animationKey = animationKeys[k]; - times.push(animationKey.time); - values.push(animationKey.morphTarget === morphTargetName ? 1 : 0); - } - tracks.push(new NumberKeyframeTrack('.morphTargetInfluence[' + morphTargetName + ']', times, values)); - } - duration = morphTargetNames.length * (fps || 1.0); - } else { - // ...assume skeletal animation - var boneName = '.bones[' + bones[h].name + ']'; - addNonemptyTrack(VectorKeyframeTrack, boneName + '.position', animationKeys, 'pos', tracks); - addNonemptyTrack(QuaternionKeyframeTrack, boneName + '.quaternion', animationKeys, 'rot', tracks); - addNonemptyTrack(VectorKeyframeTrack, boneName + '.scale', animationKeys, 'scl', tracks); - } - } - if (tracks.length === 0) { - return null; - } - var clip = new AnimationClip(clipName, duration, tracks, blendMode); - return clip; - } - }); - Object.assign(AnimationClip.prototype, { - resetDuration: function resetDuration() { - var tracks = this.tracks; - var duration = 0; - for (var i = 0, n = tracks.length; i !== n; ++i) { - var track = this.tracks[i]; - duration = Math.max(duration, track.times[track.times.length - 1]); - } - this.duration = duration; - return this; - }, - trim: function trim() { - for (var i = 0; i < this.tracks.length; i++) { - this.tracks[i].trim(0, this.duration); - } - return this; - }, - validate: function validate() { - var valid = true; - for (var i = 0; i < this.tracks.length; i++) { - valid = valid && this.tracks[i].validate(); - } - return valid; - }, - optimize: function optimize() { - for (var i = 0; i < this.tracks.length; i++) { - this.tracks[i].optimize(); - } - return this; - }, - clone: function clone() { - var tracks = []; - for (var i = 0; i < this.tracks.length; i++) { - tracks.push(this.tracks[i].clone()); - } - return new AnimationClip(this.name, this.duration, tracks, this.blendMode); - }, - toJSON: function toJSON() { - return AnimationClip.toJSON(this); - } - }); - var Cache = { - enabled: false, - files: {}, - add: function add(key, file) { - if (this.enabled === false) return; // console.log( 'THREE.Cache', 'Adding key:', key ); - this.files[key] = file; - }, - get: function get(key) { - if (this.enabled === false) return; // console.log( 'THREE.Cache', 'Checking key:', key ); - return this.files[key]; - }, - remove: function remove(key) { - delete this.files[key]; - }, - clear: function clear() { - this.files = {}; - } - }; - function LoadingManager(onLoad, onProgress, onError) { - var scope = this; - var isLoading = false; - var itemsLoaded = 0; - var itemsTotal = 0; - var urlModifier = undefined; - var handlers = []; // Refer to #5689 for the reason why we don't set .onStart - // in the constructor - this.onStart = undefined; - this.onLoad = onLoad; - this.onProgress = onProgress; - this.onError = onError; - this.itemStart = function (url) { - itemsTotal++; - if (isLoading === false) { - if (scope.onStart !== undefined) { - scope.onStart(url, itemsLoaded, itemsTotal); - } - } - isLoading = true; - }; - this.itemEnd = function (url) { - itemsLoaded++; - if (scope.onProgress !== undefined) { - scope.onProgress(url, itemsLoaded, itemsTotal); - } - if (itemsLoaded === itemsTotal) { - isLoading = false; - if (scope.onLoad !== undefined) { - scope.onLoad(); - } - } - }; - this.itemError = function (url) { - if (scope.onError !== undefined) { - scope.onError(url); - } - }; - this.resolveURL = function (url) { - if (urlModifier) { - return urlModifier(url); - } - return url; - }; - this.setURLModifier = function (transform) { - urlModifier = transform; - return this; - }; - this.addHandler = function (regex, loader) { - handlers.push(regex, loader); - return this; - }; - this.removeHandler = function (regex) { - var index = handlers.indexOf(regex); - if (index !== -1) { - handlers.splice(index, 2); - } - return this; - }; - this.getHandler = function (file) { - for (var i = 0, l = handlers.length; i < l; i += 2) { - var regex = handlers[i]; - var loader = handlers[i + 1]; - if (regex.global) regex.lastIndex = 0; // see #17920 - if (regex.test(file)) { - return loader; - } - } - return null; - }; - } - var DefaultLoadingManager = new LoadingManager(); - function Loader(manager) { - this.manager = manager !== undefined ? manager : DefaultLoadingManager; - this.crossOrigin = 'anonymous'; - this.withCredentials = false; - this.path = ''; - this.resourcePath = ''; - this.requestHeader = {}; - } - Object.assign(Loader.prototype, { - load: function load() - /* url, onLoad, onProgress, onError */ - {}, - loadAsync: function loadAsync(url, onProgress) { - var scope = this; - return new Promise(function (resolve, reject) { - scope.load(url, resolve, onProgress, reject); - }); - }, - parse: function parse() - /* data */ - {}, - setCrossOrigin: function setCrossOrigin(crossOrigin) { - this.crossOrigin = crossOrigin; - return this; - }, - setWithCredentials: function setWithCredentials(value) { - this.withCredentials = value; - return this; - }, - setPath: function setPath(path) { - this.path = path; - return this; - }, - setResourcePath: function setResourcePath(resourcePath) { - this.resourcePath = resourcePath; - return this; - }, - setRequestHeader: function setRequestHeader(requestHeader) { - this.requestHeader = requestHeader; - return this; - } - }); - var loading = {}; - function FileLoader(manager) { - Loader.call(this, manager); - } - FileLoader.prototype = Object.assign(Object.create(Loader.prototype), { - constructor: FileLoader, - load: function load(url, onLoad, onProgress, onError) { - if (url === undefined) url = ''; - if (this.path !== undefined) url = this.path + url; - url = this.manager.resolveURL(url); - var scope = this; - var cached = Cache.get(url); - if (cached !== undefined) { - scope.manager.itemStart(url); - setTimeout(function () { - if (onLoad) onLoad(cached); - scope.manager.itemEnd(url); - }, 0); - return cached; - } // Check if request is duplicate - - if (loading[url] !== undefined) { - loading[url].push({ - onLoad: onLoad, - onProgress: onProgress, - onError: onError - }); - return; - } // Check for data: URI - - var dataUriRegex = /^data:(.*?)(;base64)?,(.*)$/; - var dataUriRegexResult = url.match(dataUriRegex); - var request; // Safari can not handle Data URIs through XMLHttpRequest so process manually - if (dataUriRegexResult) { - var mimeType = dataUriRegexResult[1]; - var isBase64 = !!dataUriRegexResult[2]; - var data = dataUriRegexResult[3]; - data = decodeURIComponent(data); - if (isBase64) data = atob(data); - try { - var response; - var responseType = (this.responseType || '').toLowerCase(); - switch (responseType) { - case 'arraybuffer': - case 'blob': - var view = new Uint8Array(data.length); - for (var i = 0; i < data.length; i++) { - view[i] = data.charCodeAt(i); - } - if (responseType === 'blob') { - response = new Blob([view.buffer], { - type: mimeType - }); - } else { - response = view.buffer; - } - break; - case 'document': - var parser = new DOMParser(); - response = parser.parseFromString(data, mimeType); - break; - case 'json': - response = JSON.parse(data); - break; - default: - // 'text' or other - response = data; - break; - } // Wait for next browser tick like standard XMLHttpRequest event dispatching does - - setTimeout(function () { - if (onLoad) onLoad(response); - scope.manager.itemEnd(url); - }, 0); - } catch (error) { - // Wait for next browser tick like standard XMLHttpRequest event dispatching does - setTimeout(function () { - if (onError) onError(error); - scope.manager.itemError(url); - scope.manager.itemEnd(url); - }, 0); - } - } else { - // Initialise array for duplicate requests - loading[url] = []; - loading[url].push({ - onLoad: onLoad, - onProgress: onProgress, - onError: onError - }); - request = new XMLHttpRequest(); - request.open('GET', url, true); - request.addEventListener('load', function (event) { - var response = this.response; - var callbacks = loading[url]; - delete loading[url]; - if (this.status === 200 || this.status === 0) { - // Some browsers return HTTP Status 0 when using non-http protocol - // e.g. 'file://' or 'data://'. Handle as success. - if (this.status === 0) console.warn('THREE.FileLoader: HTTP Status 0 received.'); // Add to cache only on HTTP success, so that we do not cache - // error response bodies as proper responses to requests. - Cache.add(url, response); - for (var _i = 0, il = callbacks.length; _i < il; _i++) { - var callback = callbacks[_i]; - if (callback.onLoad) callback.onLoad(response); - } - scope.manager.itemEnd(url); - } else { - for (var _i2 = 0, _il = callbacks.length; _i2 < _il; _i2++) { - var _callback = callbacks[_i2]; - if (_callback.onError) _callback.onError(event); - } - scope.manager.itemError(url); - scope.manager.itemEnd(url); - } - }, false); - request.addEventListener('progress', function (event) { - var callbacks = loading[url]; - for (var _i3 = 0, il = callbacks.length; _i3 < il; _i3++) { - var callback = callbacks[_i3]; - if (callback.onProgress) callback.onProgress(event); - } - }, false); - request.addEventListener('error', function (event) { - var callbacks = loading[url]; - delete loading[url]; - for (var _i4 = 0, il = callbacks.length; _i4 < il; _i4++) { - var callback = callbacks[_i4]; - if (callback.onError) callback.onError(event); - } - scope.manager.itemError(url); - scope.manager.itemEnd(url); - }, false); - request.addEventListener('abort', function (event) { - var callbacks = loading[url]; - delete loading[url]; - for (var _i5 = 0, il = callbacks.length; _i5 < il; _i5++) { - var callback = callbacks[_i5]; - if (callback.onError) callback.onError(event); - } - scope.manager.itemError(url); - scope.manager.itemEnd(url); - }, false); - if (this.responseType !== undefined) request.responseType = this.responseType; - if (this.withCredentials !== undefined) request.withCredentials = this.withCredentials; - if (request.overrideMimeType) request.overrideMimeType(this.mimeType !== undefined ? this.mimeType : 'text/plain'); - for (var header in this.requestHeader) { - request.setRequestHeader(header, this.requestHeader[header]); - } - request.send(null); - } - scope.manager.itemStart(url); - return request; - }, - setResponseType: function setResponseType(value) { - this.responseType = value; - return this; - }, - setMimeType: function setMimeType(value) { - this.mimeType = value; - return this; - } - }); - function AnimationLoader(manager) { - Loader.call(this, manager); - } - AnimationLoader.prototype = Object.assign(Object.create(Loader.prototype), { - constructor: AnimationLoader, - load: function load(url, onLoad, onProgress, onError) { - var scope = this; - var loader = new FileLoader(scope.manager); - loader.setPath(scope.path); - loader.setRequestHeader(scope.requestHeader); - loader.setWithCredentials(scope.withCredentials); - loader.load(url, function (text) { - try { - onLoad(scope.parse(JSON.parse(text))); - } catch (e) { - if (onError) { - onError(e); - } else { - console.error(e); - } - scope.manager.itemError(url); - } - }, onProgress, onError); - }, - parse: function parse(json) { - var animations = []; - for (var i = 0; i < json.length; i++) { - var clip = AnimationClip.parse(json[i]); - animations.push(clip); - } - return animations; - } - }); - /** - * Abstract Base class to block based textures loader (dds, pvr, ...) - * - * Sub classes have to implement the parse() method which will be used in load(). - */ - function CompressedTextureLoader(manager) { - Loader.call(this, manager); - } - CompressedTextureLoader.prototype = Object.assign(Object.create(Loader.prototype), { - constructor: CompressedTextureLoader, - load: function load(url, onLoad, onProgress, onError) { - var scope = this; - var images = []; - var texture = new CompressedTexture(); - var loader = new FileLoader(this.manager); - loader.setPath(this.path); - loader.setResponseType('arraybuffer'); - loader.setRequestHeader(this.requestHeader); - loader.setWithCredentials(scope.withCredentials); - var loaded = 0; - function loadTexture(i) { - loader.load(url[i], function (buffer) { - var texDatas = scope.parse(buffer, true); - images[i] = { - width: texDatas.width, - height: texDatas.height, - format: texDatas.format, - mipmaps: texDatas.mipmaps - }; - loaded += 1; - if (loaded === 6) { - if (texDatas.mipmapCount === 1) texture.minFilter = LinearFilter; - texture.image = images; - texture.format = texDatas.format; - texture.needsUpdate = true; - if (onLoad) onLoad(texture); - } - }, onProgress, onError); - } - if (Array.isArray(url)) { - for (var i = 0, il = url.length; i < il; ++i) { - loadTexture(i); - } - } else { - // compressed cubemap texture stored in a single DDS file - loader.load(url, function (buffer) { - var texDatas = scope.parse(buffer, true); - if (texDatas.isCubemap) { - var faces = texDatas.mipmaps.length / texDatas.mipmapCount; - for (var f = 0; f < faces; f++) { - images[f] = { - mipmaps: [] - }; - for (var _i = 0; _i < texDatas.mipmapCount; _i++) { - images[f].mipmaps.push(texDatas.mipmaps[f * texDatas.mipmapCount + _i]); - images[f].format = texDatas.format; - images[f].width = texDatas.width; - images[f].height = texDatas.height; - } - } - texture.image = images; - } else { - texture.image.width = texDatas.width; - texture.image.height = texDatas.height; - texture.mipmaps = texDatas.mipmaps; - } - if (texDatas.mipmapCount === 1) { - texture.minFilter = LinearFilter; - } - texture.format = texDatas.format; - texture.needsUpdate = true; - if (onLoad) onLoad(texture); - }, onProgress, onError); - } - return texture; - } - }); - function ImageLoader(manager) { - Loader.call(this, manager); - } - ImageLoader.prototype = Object.assign(Object.create(Loader.prototype), { - constructor: ImageLoader, - load: function load(url, onLoad, onProgress, onError) { - if (this.path !== undefined) url = this.path + url; - url = this.manager.resolveURL(url); - var scope = this; - var cached = Cache.get(url); - if (cached !== undefined) { - scope.manager.itemStart(url); - setTimeout(function () { - if (onLoad) onLoad(cached); - scope.manager.itemEnd(url); - }, 0); - return cached; - } - var image = document.createElementNS('http://www.w3.org/1999/xhtml', 'img'); - function onImageLoad() { - image.removeEventListener('load', onImageLoad, false); - image.removeEventListener('error', onImageError, false); - Cache.add(url, this); - if (onLoad) onLoad(this); - scope.manager.itemEnd(url); - } - function onImageError(event) { - image.removeEventListener('load', onImageLoad, false); - image.removeEventListener('error', onImageError, false); - if (onError) onError(event); - scope.manager.itemError(url); - scope.manager.itemEnd(url); - } - image.addEventListener('load', onImageLoad, false); - image.addEventListener('error', onImageError, false); - if (url.substr(0, 5) !== 'data:') { - if (this.crossOrigin !== undefined) image.crossOrigin = this.crossOrigin; - } - scope.manager.itemStart(url); - image.src = url; - return image; - } - }); - function CubeTextureLoader(manager) { - Loader.call(this, manager); - } - CubeTextureLoader.prototype = Object.assign(Object.create(Loader.prototype), { - constructor: CubeTextureLoader, - load: function load(urls, onLoad, onProgress, onError) { - var texture = new CubeTexture(); - var loader = new ImageLoader(this.manager); - loader.setCrossOrigin(this.crossOrigin); - loader.setPath(this.path); - var loaded = 0; - function loadTexture(i) { - loader.load(urls[i], function (image) { - texture.images[i] = image; - loaded++; - if (loaded === 6) { - texture.needsUpdate = true; - if (onLoad) onLoad(texture); - } - }, undefined, onError); - } - for (var i = 0; i < urls.length; ++i) { - loadTexture(i); - } - return texture; - } - }); - /** - * Abstract Base class to load generic binary textures formats (rgbe, hdr, ...) - * - * Sub classes have to implement the parse() method which will be used in load(). - */ - function DataTextureLoader(manager) { - Loader.call(this, manager); - } - DataTextureLoader.prototype = Object.assign(Object.create(Loader.prototype), { - constructor: DataTextureLoader, - load: function load(url, onLoad, onProgress, onError) { - var scope = this; - var texture = new DataTexture(); - var loader = new FileLoader(this.manager); - loader.setResponseType('arraybuffer'); - loader.setRequestHeader(this.requestHeader); - loader.setPath(this.path); - loader.setWithCredentials(scope.withCredentials); - loader.load(url, function (buffer) { - var texData = scope.parse(buffer); - if (!texData) return; - if (texData.image !== undefined) { - texture.image = texData.image; - } else if (texData.data !== undefined) { - texture.image.width = texData.width; - texture.image.height = texData.height; - texture.image.data = texData.data; - } - texture.wrapS = texData.wrapS !== undefined ? texData.wrapS : ClampToEdgeWrapping; - texture.wrapT = texData.wrapT !== undefined ? texData.wrapT : ClampToEdgeWrapping; - texture.magFilter = texData.magFilter !== undefined ? texData.magFilter : LinearFilter; - texture.minFilter = texData.minFilter !== undefined ? texData.minFilter : LinearFilter; - texture.anisotropy = texData.anisotropy !== undefined ? texData.anisotropy : 1; - if (texData.format !== undefined) { - texture.format = texData.format; - } - if (texData.type !== undefined) { - texture.type = texData.type; - } - if (texData.mipmaps !== undefined) { - texture.mipmaps = texData.mipmaps; - texture.minFilter = LinearMipmapLinearFilter; // presumably... - } - if (texData.mipmapCount === 1) { - texture.minFilter = LinearFilter; - } - texture.needsUpdate = true; - if (onLoad) onLoad(texture, texData); - }, onProgress, onError); - return texture; - } - }); - function TextureLoader(manager) { - Loader.call(this, manager); - } - TextureLoader.prototype = Object.assign(Object.create(Loader.prototype), { - constructor: TextureLoader, - load: function load(url, onLoad, onProgress, onError) { - var texture = new Texture(); - var loader = new ImageLoader(this.manager); - loader.setCrossOrigin(this.crossOrigin); - loader.setPath(this.path); - loader.load(url, function (image) { - texture.image = image; // JPEGs can't have an alpha channel, so memory can be saved by storing them as RGB. - var isJPEG = url.search(/\.jpe?g($|\?)/i) > 0 || url.search(/^data\:image\/jpeg/) === 0; - texture.format = isJPEG ? RGBFormat : RGBAFormat; - texture.needsUpdate = true; - if (onLoad !== undefined) { - onLoad(texture); - } - }, onProgress, onError); - return texture; - } - }); - /** - * Extensible curve object. - * - * Some common of curve methods: - * .getPoint( t, optionalTarget ), .getTangent( t, optionalTarget ) - * .getPointAt( u, optionalTarget ), .getTangentAt( u, optionalTarget ) - * .getPoints(), .getSpacedPoints() - * .getLength() - * .updateArcLengths() - * - * This following curves inherit from THREE.Curve: - * - * -- 2D curves -- - * THREE.ArcCurve - * THREE.CubicBezierCurve - * THREE.EllipseCurve - * THREE.LineCurve - * THREE.QuadraticBezierCurve - * THREE.SplineCurve - * - * -- 3D curves -- - * THREE.CatmullRomCurve3 - * THREE.CubicBezierCurve3 - * THREE.LineCurve3 - * THREE.QuadraticBezierCurve3 - * - * A series of curves can be represented as a THREE.CurvePath. - * - **/ - function Curve() { - this.type = 'Curve'; - this.arcLengthDivisions = 200; - } - Object.assign(Curve.prototype, { - // Virtual base class method to overwrite and implement in subclasses - // - t [0 .. 1] - getPoint: function getPoint() - /* t, optionalTarget */ - { - console.warn('THREE.Curve: .getPoint() not implemented.'); - return null; - }, - // Get point at relative position in curve according to arc length - // - u [0 .. 1] - getPointAt: function getPointAt(u, optionalTarget) { - var t = this.getUtoTmapping(u); - return this.getPoint(t, optionalTarget); - }, - // Get sequence of points using getPoint( t ) - getPoints: function getPoints(divisions) { - if (divisions === void 0) { - divisions = 5; - } - var points = []; - for (var d = 0; d <= divisions; d++) { - points.push(this.getPoint(d / divisions)); - } - return points; - }, - // Get sequence of points using getPointAt( u ) - getSpacedPoints: function getSpacedPoints(divisions) { - if (divisions === void 0) { - divisions = 5; - } - var points = []; - for (var d = 0; d <= divisions; d++) { - points.push(this.getPointAt(d / divisions)); - } - return points; - }, - // Get total curve arc length - getLength: function getLength() { - var lengths = this.getLengths(); - return lengths[lengths.length - 1]; - }, - // Get list of cumulative segment lengths - getLengths: function getLengths(divisions) { - if (divisions === undefined) divisions = this.arcLengthDivisions; - if (this.cacheArcLengths && this.cacheArcLengths.length === divisions + 1 && !this.needsUpdate) { - return this.cacheArcLengths; - } - this.needsUpdate = false; - var cache = []; - var current, - last = this.getPoint(0); - var sum = 0; - cache.push(0); - for (var p = 1; p <= divisions; p++) { - current = this.getPoint(p / divisions); - sum += current.distanceTo(last); - cache.push(sum); - last = current; - } - this.cacheArcLengths = cache; - return cache; // { sums: cache, sum: sum }; Sum is in the last element. - }, - updateArcLengths: function updateArcLengths() { - this.needsUpdate = true; - this.getLengths(); - }, - // Given u ( 0 .. 1 ), get a t to find p. This gives you points which are equidistant - getUtoTmapping: function getUtoTmapping(u, distance) { - var arcLengths = this.getLengths(); - var i = 0; - var il = arcLengths.length; - var targetArcLength; // The targeted u distance value to get - if (distance) { - targetArcLength = distance; - } else { - targetArcLength = u * arcLengths[il - 1]; - } // binary search for the index with largest value smaller than target u distance - - var low = 0, - high = il - 1, - comparison; - while (low <= high) { - i = Math.floor(low + (high - low) / 2); // less likely to overflow, though probably not issue here, JS doesn't really have integers, all numbers are floats - comparison = arcLengths[i] - targetArcLength; - if (comparison < 0) { - low = i + 1; - } else if (comparison > 0) { - high = i - 1; - } else { - high = i; - break; // DONE - } - } - i = high; - if (arcLengths[i] === targetArcLength) { - return i / (il - 1); - } // we could get finer grain at lengths, or use simple interpolation between two points - - var lengthBefore = arcLengths[i]; - var lengthAfter = arcLengths[i + 1]; - var segmentLength = lengthAfter - lengthBefore; // determine where we are between the 'before' and 'after' points - var segmentFraction = (targetArcLength - lengthBefore) / segmentLength; // add that fractional amount to t - var t = (i + segmentFraction) / (il - 1); - return t; - }, - // Returns a unit vector tangent at t - // In case any sub curve does not implement its tangent derivation, - // 2 points a small delta apart will be used to find its gradient - // which seems to give a reasonable approximation - getTangent: function getTangent(t, optionalTarget) { - var delta = 0.0001; - var t1 = t - delta; - var t2 = t + delta; // Capping in case of danger - if (t1 < 0) t1 = 0; - if (t2 > 1) t2 = 1; - var pt1 = this.getPoint(t1); - var pt2 = this.getPoint(t2); - var tangent = optionalTarget || (pt1.isVector2 ? new Vector2() : new Vector3()); - tangent.copy(pt2).sub(pt1).normalize(); - return tangent; - }, - getTangentAt: function getTangentAt(u, optionalTarget) { - var t = this.getUtoTmapping(u); - return this.getTangent(t, optionalTarget); - }, - computeFrenetFrames: function computeFrenetFrames(segments, closed) { - // see http://www.cs.indiana.edu/pub/techreports/TR425.pdf - var normal = new Vector3(); - var tangents = []; - var normals = []; - var binormals = []; - var vec = new Vector3(); - var mat = new Matrix4(); // compute the tangent vectors for each segment on the curve - for (var i = 0; i <= segments; i++) { - var u = i / segments; - tangents[i] = this.getTangentAt(u, new Vector3()); - tangents[i].normalize(); - } // select an initial normal vector perpendicular to the first tangent vector, - // and in the direction of the minimum tangent xyz component - - normals[0] = new Vector3(); - binormals[0] = new Vector3(); - var min = Number.MAX_VALUE; - var tx = Math.abs(tangents[0].x); - var ty = Math.abs(tangents[0].y); - var tz = Math.abs(tangents[0].z); - if (tx <= min) { - min = tx; - normal.set(1, 0, 0); - } - if (ty <= min) { - min = ty; - normal.set(0, 1, 0); - } - if (tz <= min) { - normal.set(0, 0, 1); - } - vec.crossVectors(tangents[0], normal).normalize(); - normals[0].crossVectors(tangents[0], vec); - binormals[0].crossVectors(tangents[0], normals[0]); // compute the slowly-varying normal and binormal vectors for each segment on the curve - for (var _i = 1; _i <= segments; _i++) { - normals[_i] = normals[_i - 1].clone(); - binormals[_i] = binormals[_i - 1].clone(); - vec.crossVectors(tangents[_i - 1], tangents[_i]); - if (vec.length() > Number.EPSILON) { - vec.normalize(); - var theta = Math.acos(MathUtils.clamp(tangents[_i - 1].dot(tangents[_i]), -1, 1)); // clamp for floating pt errors - normals[_i].applyMatrix4(mat.makeRotationAxis(vec, theta)); - } - binormals[_i].crossVectors(tangents[_i], normals[_i]); - } // if the curve is closed, postprocess the vectors so the first and last normal vectors are the same - - if (closed === true) { - var _theta = Math.acos(MathUtils.clamp(normals[0].dot(normals[segments]), -1, 1)); - _theta /= segments; - if (tangents[0].dot(vec.crossVectors(normals[0], normals[segments])) > 0) { - _theta = -_theta; - } - for (var _i2 = 1; _i2 <= segments; _i2++) { - // twist a little... - normals[_i2].applyMatrix4(mat.makeRotationAxis(tangents[_i2], _theta * _i2)); - binormals[_i2].crossVectors(tangents[_i2], normals[_i2]); - } - } - return { - tangents: tangents, - normals: normals, - binormals: binormals - }; - }, - clone: function clone() { - return new this.constructor().copy(this); - }, - copy: function copy(source) { - this.arcLengthDivisions = source.arcLengthDivisions; - return this; - }, - toJSON: function toJSON() { - var data = { - metadata: { - version: 4.5, - type: 'Curve', - generator: 'Curve.toJSON' - } - }; - data.arcLengthDivisions = this.arcLengthDivisions; - data.type = this.type; - return data; - }, - fromJSON: function fromJSON(json) { - this.arcLengthDivisions = json.arcLengthDivisions; - return this; - } - }); - function EllipseCurve(aX, aY, xRadius, yRadius, aStartAngle, aEndAngle, aClockwise, aRotation) { - Curve.call(this); - this.type = 'EllipseCurve'; - this.aX = aX || 0; - this.aY = aY || 0; - this.xRadius = xRadius || 1; - this.yRadius = yRadius || 1; - this.aStartAngle = aStartAngle || 0; - this.aEndAngle = aEndAngle || 2 * Math.PI; - this.aClockwise = aClockwise || false; - this.aRotation = aRotation || 0; - } - EllipseCurve.prototype = Object.create(Curve.prototype); - EllipseCurve.prototype.constructor = EllipseCurve; - EllipseCurve.prototype.isEllipseCurve = true; - EllipseCurve.prototype.getPoint = function (t, optionalTarget) { - var point = optionalTarget || new Vector2(); - var twoPi = Math.PI * 2; - var deltaAngle = this.aEndAngle - this.aStartAngle; - var samePoints = Math.abs(deltaAngle) < Number.EPSILON; // ensures that deltaAngle is 0 .. 2 PI - while (deltaAngle < 0) { - deltaAngle += twoPi; - } - while (deltaAngle > twoPi) { - deltaAngle -= twoPi; - } - if (deltaAngle < Number.EPSILON) { - if (samePoints) { - deltaAngle = 0; - } else { - deltaAngle = twoPi; - } - } - if (this.aClockwise === true && !samePoints) { - if (deltaAngle === twoPi) { - deltaAngle = -twoPi; - } else { - deltaAngle = deltaAngle - twoPi; - } - } - var angle = this.aStartAngle + t * deltaAngle; - var x = this.aX + this.xRadius * Math.cos(angle); - var y = this.aY + this.yRadius * Math.sin(angle); - if (this.aRotation !== 0) { - var cos = Math.cos(this.aRotation); - var sin = Math.sin(this.aRotation); - var tx = x - this.aX; - var ty = y - this.aY; // Rotate the point about the center of the ellipse. - x = tx * cos - ty * sin + this.aX; - y = tx * sin + ty * cos + this.aY; - } - return point.set(x, y); - }; - EllipseCurve.prototype.copy = function (source) { - Curve.prototype.copy.call(this, source); - this.aX = source.aX; - this.aY = source.aY; - this.xRadius = source.xRadius; - this.yRadius = source.yRadius; - this.aStartAngle = source.aStartAngle; - this.aEndAngle = source.aEndAngle; - this.aClockwise = source.aClockwise; - this.aRotation = source.aRotation; - return this; - }; - EllipseCurve.prototype.toJSON = function () { - var data = Curve.prototype.toJSON.call(this); - data.aX = this.aX; - data.aY = this.aY; - data.xRadius = this.xRadius; - data.yRadius = this.yRadius; - data.aStartAngle = this.aStartAngle; - data.aEndAngle = this.aEndAngle; - data.aClockwise = this.aClockwise; - data.aRotation = this.aRotation; - return data; - }; - EllipseCurve.prototype.fromJSON = function (json) { - Curve.prototype.fromJSON.call(this, json); - this.aX = json.aX; - this.aY = json.aY; - this.xRadius = json.xRadius; - this.yRadius = json.yRadius; - this.aStartAngle = json.aStartAngle; - this.aEndAngle = json.aEndAngle; - this.aClockwise = json.aClockwise; - this.aRotation = json.aRotation; - return this; - }; - function ArcCurve(aX, aY, aRadius, aStartAngle, aEndAngle, aClockwise) { - EllipseCurve.call(this, aX, aY, aRadius, aRadius, aStartAngle, aEndAngle, aClockwise); - this.type = 'ArcCurve'; - } - ArcCurve.prototype = Object.create(EllipseCurve.prototype); - ArcCurve.prototype.constructor = ArcCurve; - ArcCurve.prototype.isArcCurve = true; - /** - * Centripetal CatmullRom Curve - which is useful for avoiding - * cusps and self-intersections in non-uniform catmull rom curves. - * http://www.cemyuksel.com/research/catmullrom_param/catmullrom.pdf - * - * curve.type accepts centripetal(default), chordal and catmullrom - * curve.tension is used for catmullrom which defaults to 0.5 - */ - /* - Based on an optimized c++ solution in - - http://stackoverflow.com/questions/9489736/catmull-rom-curve-with-no-cusps-and-no-self-intersections/ - - http://ideone.com/NoEbVM - This CubicPoly class could be used for reusing some variables and calculations, - but for three.js curve use, it could be possible inlined and flatten into a single function call - which can be placed in CurveUtils. - */ - function CubicPoly() { - var c0 = 0, - c1 = 0, - c2 = 0, - c3 = 0; - /* - * Compute coefficients for a cubic polynomial - * p(s) = c0 + c1*s + c2*s^2 + c3*s^3 - * such that - * p(0) = x0, p(1) = x1 - * and - * p'(0) = t0, p'(1) = t1. - */ - function init(x0, x1, t0, t1) { - c0 = x0; - c1 = t0; - c2 = -3 * x0 + 3 * x1 - 2 * t0 - t1; - c3 = 2 * x0 - 2 * x1 + t0 + t1; - } - return { - initCatmullRom: function initCatmullRom(x0, x1, x2, x3, tension) { - init(x1, x2, tension * (x2 - x0), tension * (x3 - x1)); - }, - initNonuniformCatmullRom: function initNonuniformCatmullRom(x0, x1, x2, x3, dt0, dt1, dt2) { - // compute tangents when parameterized in [t1,t2] - var t1 = (x1 - x0) / dt0 - (x2 - x0) / (dt0 + dt1) + (x2 - x1) / dt1; - var t2 = (x2 - x1) / dt1 - (x3 - x1) / (dt1 + dt2) + (x3 - x2) / dt2; // rescale tangents for parametrization in [0,1] - t1 *= dt1; - t2 *= dt1; - init(x1, x2, t1, t2); - }, - calc: function calc(t) { - var t2 = t * t; - var t3 = t2 * t; - return c0 + c1 * t + c2 * t2 + c3 * t3; - } - }; - } // - - var tmp = new Vector3(); - var px = new CubicPoly(), - py = new CubicPoly(), - pz = new CubicPoly(); - function CatmullRomCurve3(points, closed, curveType, tension) { - if (points === void 0) { - points = []; - } - if (closed === void 0) { - closed = false; - } - if (curveType === void 0) { - curveType = 'centripetal'; - } - if (tension === void 0) { - tension = 0.5; - } - Curve.call(this); - this.type = 'CatmullRomCurve3'; - this.points = points; - this.closed = closed; - this.curveType = curveType; - this.tension = tension; - } - CatmullRomCurve3.prototype = Object.create(Curve.prototype); - CatmullRomCurve3.prototype.constructor = CatmullRomCurve3; - CatmullRomCurve3.prototype.isCatmullRomCurve3 = true; - CatmullRomCurve3.prototype.getPoint = function (t, optionalTarget) { - if (optionalTarget === void 0) { - optionalTarget = new Vector3(); - } - var point = optionalTarget; - var points = this.points; - var l = points.length; - var p = (l - (this.closed ? 0 : 1)) * t; - var intPoint = Math.floor(p); - var weight = p - intPoint; - if (this.closed) { - intPoint += intPoint > 0 ? 0 : (Math.floor(Math.abs(intPoint) / l) + 1) * l; - } else if (weight === 0 && intPoint === l - 1) { - intPoint = l - 2; - weight = 1; - } - var p0, p3; // 4 points (p1 & p2 defined below) - if (this.closed || intPoint > 0) { - p0 = points[(intPoint - 1) % l]; - } else { - // extrapolate first point - tmp.subVectors(points[0], points[1]).add(points[0]); - p0 = tmp; - } - var p1 = points[intPoint % l]; - var p2 = points[(intPoint + 1) % l]; - if (this.closed || intPoint + 2 < l) { - p3 = points[(intPoint + 2) % l]; - } else { - // extrapolate last point - tmp.subVectors(points[l - 1], points[l - 2]).add(points[l - 1]); - p3 = tmp; - } - if (this.curveType === 'centripetal' || this.curveType === 'chordal') { - // init Centripetal / Chordal Catmull-Rom - var pow = this.curveType === 'chordal' ? 0.5 : 0.25; - var dt0 = Math.pow(p0.distanceToSquared(p1), pow); - var dt1 = Math.pow(p1.distanceToSquared(p2), pow); - var dt2 = Math.pow(p2.distanceToSquared(p3), pow); // safety check for repeated points - if (dt1 < 1e-4) dt1 = 1.0; - if (dt0 < 1e-4) dt0 = dt1; - if (dt2 < 1e-4) dt2 = dt1; - px.initNonuniformCatmullRom(p0.x, p1.x, p2.x, p3.x, dt0, dt1, dt2); - py.initNonuniformCatmullRom(p0.y, p1.y, p2.y, p3.y, dt0, dt1, dt2); - pz.initNonuniformCatmullRom(p0.z, p1.z, p2.z, p3.z, dt0, dt1, dt2); - } else if (this.curveType === 'catmullrom') { - px.initCatmullRom(p0.x, p1.x, p2.x, p3.x, this.tension); - py.initCatmullRom(p0.y, p1.y, p2.y, p3.y, this.tension); - pz.initCatmullRom(p0.z, p1.z, p2.z, p3.z, this.tension); - } - point.set(px.calc(weight), py.calc(weight), pz.calc(weight)); - return point; - }; - CatmullRomCurve3.prototype.copy = function (source) { - Curve.prototype.copy.call(this, source); - this.points = []; - for (var i = 0, l = source.points.length; i < l; i++) { - var point = source.points[i]; - this.points.push(point.clone()); - } - this.closed = source.closed; - this.curveType = source.curveType; - this.tension = source.tension; - return this; - }; - CatmullRomCurve3.prototype.toJSON = function () { - var data = Curve.prototype.toJSON.call(this); - data.points = []; - for (var i = 0, l = this.points.length; i < l; i++) { - var point = this.points[i]; - data.points.push(point.toArray()); - } - data.closed = this.closed; - data.curveType = this.curveType; - data.tension = this.tension; - return data; - }; - CatmullRomCurve3.prototype.fromJSON = function (json) { - Curve.prototype.fromJSON.call(this, json); - this.points = []; - for (var i = 0, l = json.points.length; i < l; i++) { - var point = json.points[i]; - this.points.push(new Vector3().fromArray(point)); - } - this.closed = json.closed; - this.curveType = json.curveType; - this.tension = json.tension; - return this; - }; - /** - * Bezier Curves formulas obtained from - * http://en.wikipedia.org/wiki/Bézier_curve - */ - function CatmullRom(t, p0, p1, p2, p3) { - var v0 = (p2 - p0) * 0.5; - var v1 = (p3 - p1) * 0.5; - var t2 = t * t; - var t3 = t * t2; - return (2 * p1 - 2 * p2 + v0 + v1) * t3 + (-3 * p1 + 3 * p2 - 2 * v0 - v1) * t2 + v0 * t + p1; - } // - - function QuadraticBezierP0(t, p) { - var k = 1 - t; - return k * k * p; - } - function QuadraticBezierP1(t, p) { - return 2 * (1 - t) * t * p; - } - function QuadraticBezierP2(t, p) { - return t * t * p; - } - function QuadraticBezier(t, p0, p1, p2) { - return QuadraticBezierP0(t, p0) + QuadraticBezierP1(t, p1) + QuadraticBezierP2(t, p2); - } // - - function CubicBezierP0(t, p) { - var k = 1 - t; - return k * k * k * p; - } - function CubicBezierP1(t, p) { - var k = 1 - t; - return 3 * k * k * t * p; - } - function CubicBezierP2(t, p) { - return 3 * (1 - t) * t * t * p; - } - function CubicBezierP3(t, p) { - return t * t * t * p; - } - function CubicBezier(t, p0, p1, p2, p3) { - return CubicBezierP0(t, p0) + CubicBezierP1(t, p1) + CubicBezierP2(t, p2) + CubicBezierP3(t, p3); - } - function CubicBezierCurve(v0, v1, v2, v3) { - if (v0 === void 0) { - v0 = new Vector2(); - } - if (v1 === void 0) { - v1 = new Vector2(); - } - if (v2 === void 0) { - v2 = new Vector2(); - } - if (v3 === void 0) { - v3 = new Vector2(); - } - Curve.call(this); - this.type = 'CubicBezierCurve'; - this.v0 = v0; - this.v1 = v1; - this.v2 = v2; - this.v3 = v3; - } - CubicBezierCurve.prototype = Object.create(Curve.prototype); - CubicBezierCurve.prototype.constructor = CubicBezierCurve; - CubicBezierCurve.prototype.isCubicBezierCurve = true; - CubicBezierCurve.prototype.getPoint = function (t, optionalTarget) { - if (optionalTarget === void 0) { - optionalTarget = new Vector2(); - } - var point = optionalTarget; - var v0 = this.v0, - v1 = this.v1, - v2 = this.v2, - v3 = this.v3; - point.set(CubicBezier(t, v0.x, v1.x, v2.x, v3.x), CubicBezier(t, v0.y, v1.y, v2.y, v3.y)); - return point; - }; - CubicBezierCurve.prototype.copy = function (source) { - Curve.prototype.copy.call(this, source); - this.v0.copy(source.v0); - this.v1.copy(source.v1); - this.v2.copy(source.v2); - this.v3.copy(source.v3); - return this; - }; - CubicBezierCurve.prototype.toJSON = function () { - var data = Curve.prototype.toJSON.call(this); - data.v0 = this.v0.toArray(); - data.v1 = this.v1.toArray(); - data.v2 = this.v2.toArray(); - data.v3 = this.v3.toArray(); - return data; - }; - CubicBezierCurve.prototype.fromJSON = function (json) { - Curve.prototype.fromJSON.call(this, json); - this.v0.fromArray(json.v0); - this.v1.fromArray(json.v1); - this.v2.fromArray(json.v2); - this.v3.fromArray(json.v3); - return this; - }; - function CubicBezierCurve3(v0, v1, v2, v3) { - if (v0 === void 0) { - v0 = new Vector3(); - } - if (v1 === void 0) { - v1 = new Vector3(); - } - if (v2 === void 0) { - v2 = new Vector3(); - } - if (v3 === void 0) { - v3 = new Vector3(); - } - Curve.call(this); - this.type = 'CubicBezierCurve3'; - this.v0 = v0; - this.v1 = v1; - this.v2 = v2; - this.v3 = v3; - } - CubicBezierCurve3.prototype = Object.create(Curve.prototype); - CubicBezierCurve3.prototype.constructor = CubicBezierCurve3; - CubicBezierCurve3.prototype.isCubicBezierCurve3 = true; - CubicBezierCurve3.prototype.getPoint = function (t, optionalTarget) { - if (optionalTarget === void 0) { - optionalTarget = new Vector3(); - } - var point = optionalTarget; - var v0 = this.v0, - v1 = this.v1, - v2 = this.v2, - v3 = this.v3; - point.set(CubicBezier(t, v0.x, v1.x, v2.x, v3.x), CubicBezier(t, v0.y, v1.y, v2.y, v3.y), CubicBezier(t, v0.z, v1.z, v2.z, v3.z)); - return point; - }; - CubicBezierCurve3.prototype.copy = function (source) { - Curve.prototype.copy.call(this, source); - this.v0.copy(source.v0); - this.v1.copy(source.v1); - this.v2.copy(source.v2); - this.v3.copy(source.v3); - return this; - }; - CubicBezierCurve3.prototype.toJSON = function () { - var data = Curve.prototype.toJSON.call(this); - data.v0 = this.v0.toArray(); - data.v1 = this.v1.toArray(); - data.v2 = this.v2.toArray(); - data.v3 = this.v3.toArray(); - return data; - }; - CubicBezierCurve3.prototype.fromJSON = function (json) { - Curve.prototype.fromJSON.call(this, json); - this.v0.fromArray(json.v0); - this.v1.fromArray(json.v1); - this.v2.fromArray(json.v2); - this.v3.fromArray(json.v3); - return this; - }; - function LineCurve(v1, v2) { - if (v1 === void 0) { - v1 = new Vector2(); - } - if (v2 === void 0) { - v2 = new Vector2(); - } - Curve.call(this); - this.type = 'LineCurve'; - this.v1 = v1; - this.v2 = v2; - } - LineCurve.prototype = Object.create(Curve.prototype); - LineCurve.prototype.constructor = LineCurve; - LineCurve.prototype.isLineCurve = true; - LineCurve.prototype.getPoint = function (t, optionalTarget) { - if (optionalTarget === void 0) { - optionalTarget = new Vector2(); - } - var point = optionalTarget; - if (t === 1) { - point.copy(this.v2); - } else { - point.copy(this.v2).sub(this.v1); - point.multiplyScalar(t).add(this.v1); - } - return point; - }; // Line curve is linear, so we can overwrite default getPointAt - - LineCurve.prototype.getPointAt = function (u, optionalTarget) { - return this.getPoint(u, optionalTarget); - }; - LineCurve.prototype.getTangent = function (t, optionalTarget) { - var tangent = optionalTarget || new Vector2(); - tangent.copy(this.v2).sub(this.v1).normalize(); - return tangent; - }; - LineCurve.prototype.copy = function (source) { - Curve.prototype.copy.call(this, source); - this.v1.copy(source.v1); - this.v2.copy(source.v2); - return this; - }; - LineCurve.prototype.toJSON = function () { - var data = Curve.prototype.toJSON.call(this); - data.v1 = this.v1.toArray(); - data.v2 = this.v2.toArray(); - return data; - }; - LineCurve.prototype.fromJSON = function (json) { - Curve.prototype.fromJSON.call(this, json); - this.v1.fromArray(json.v1); - this.v2.fromArray(json.v2); - return this; - }; - function LineCurve3(v1, v2) { - if (v1 === void 0) { - v1 = new Vector3(); - } - if (v2 === void 0) { - v2 = new Vector3(); - } - Curve.call(this); - this.type = 'LineCurve3'; - this.v1 = v1; - this.v2 = v2; - } - LineCurve3.prototype = Object.create(Curve.prototype); - LineCurve3.prototype.constructor = LineCurve3; - LineCurve3.prototype.isLineCurve3 = true; - LineCurve3.prototype.getPoint = function (t, optionalTarget) { - if (optionalTarget === void 0) { - optionalTarget = new Vector3(); - } - var point = optionalTarget; - if (t === 1) { - point.copy(this.v2); - } else { - point.copy(this.v2).sub(this.v1); - point.multiplyScalar(t).add(this.v1); - } - return point; - }; // Line curve is linear, so we can overwrite default getPointAt - - LineCurve3.prototype.getPointAt = function (u, optionalTarget) { - return this.getPoint(u, optionalTarget); - }; - LineCurve3.prototype.copy = function (source) { - Curve.prototype.copy.call(this, source); - this.v1.copy(source.v1); - this.v2.copy(source.v2); - return this; - }; - LineCurve3.prototype.toJSON = function () { - var data = Curve.prototype.toJSON.call(this); - data.v1 = this.v1.toArray(); - data.v2 = this.v2.toArray(); - return data; - }; - LineCurve3.prototype.fromJSON = function (json) { - Curve.prototype.fromJSON.call(this, json); - this.v1.fromArray(json.v1); - this.v2.fromArray(json.v2); - return this; - }; - function QuadraticBezierCurve(v0, v1, v2) { - if (v0 === void 0) { - v0 = new Vector2(); - } - if (v1 === void 0) { - v1 = new Vector2(); - } - if (v2 === void 0) { - v2 = new Vector2(); - } - Curve.call(this); - this.type = 'QuadraticBezierCurve'; - this.v0 = v0; - this.v1 = v1; - this.v2 = v2; - } - QuadraticBezierCurve.prototype = Object.create(Curve.prototype); - QuadraticBezierCurve.prototype.constructor = QuadraticBezierCurve; - QuadraticBezierCurve.prototype.isQuadraticBezierCurve = true; - QuadraticBezierCurve.prototype.getPoint = function (t, optionalTarget) { - if (optionalTarget === void 0) { - optionalTarget = new Vector2(); - } - var point = optionalTarget; - var v0 = this.v0, - v1 = this.v1, - v2 = this.v2; - point.set(QuadraticBezier(t, v0.x, v1.x, v2.x), QuadraticBezier(t, v0.y, v1.y, v2.y)); - return point; - }; - QuadraticBezierCurve.prototype.copy = function (source) { - Curve.prototype.copy.call(this, source); - this.v0.copy(source.v0); - this.v1.copy(source.v1); - this.v2.copy(source.v2); - return this; - }; - QuadraticBezierCurve.prototype.toJSON = function () { - var data = Curve.prototype.toJSON.call(this); - data.v0 = this.v0.toArray(); - data.v1 = this.v1.toArray(); - data.v2 = this.v2.toArray(); - return data; - }; - QuadraticBezierCurve.prototype.fromJSON = function (json) { - Curve.prototype.fromJSON.call(this, json); - this.v0.fromArray(json.v0); - this.v1.fromArray(json.v1); - this.v2.fromArray(json.v2); - return this; - }; - function QuadraticBezierCurve3(v0, v1, v2) { - if (v0 === void 0) { - v0 = new Vector3(); - } - if (v1 === void 0) { - v1 = new Vector3(); - } - if (v2 === void 0) { - v2 = new Vector3(); - } - Curve.call(this); - this.type = 'QuadraticBezierCurve3'; - this.v0 = v0; - this.v1 = v1; - this.v2 = v2; - } - QuadraticBezierCurve3.prototype = Object.create(Curve.prototype); - QuadraticBezierCurve3.prototype.constructor = QuadraticBezierCurve3; - QuadraticBezierCurve3.prototype.isQuadraticBezierCurve3 = true; - QuadraticBezierCurve3.prototype.getPoint = function (t, optionalTarget) { - if (optionalTarget === void 0) { - optionalTarget = new Vector3(); - } - var point = optionalTarget; - var v0 = this.v0, - v1 = this.v1, - v2 = this.v2; - point.set(QuadraticBezier(t, v0.x, v1.x, v2.x), QuadraticBezier(t, v0.y, v1.y, v2.y), QuadraticBezier(t, v0.z, v1.z, v2.z)); - return point; - }; - QuadraticBezierCurve3.prototype.copy = function (source) { - Curve.prototype.copy.call(this, source); - this.v0.copy(source.v0); - this.v1.copy(source.v1); - this.v2.copy(source.v2); - return this; - }; - QuadraticBezierCurve3.prototype.toJSON = function () { - var data = Curve.prototype.toJSON.call(this); - data.v0 = this.v0.toArray(); - data.v1 = this.v1.toArray(); - data.v2 = this.v2.toArray(); - return data; - }; - QuadraticBezierCurve3.prototype.fromJSON = function (json) { - Curve.prototype.fromJSON.call(this, json); - this.v0.fromArray(json.v0); - this.v1.fromArray(json.v1); - this.v2.fromArray(json.v2); - return this; - }; - function SplineCurve(points) { - if (points === void 0) { - points = []; - } - Curve.call(this); - this.type = 'SplineCurve'; - this.points = points; - } - SplineCurve.prototype = Object.create(Curve.prototype); - SplineCurve.prototype.constructor = SplineCurve; - SplineCurve.prototype.isSplineCurve = true; - SplineCurve.prototype.getPoint = function (t, optionalTarget) { - if (optionalTarget === void 0) { - optionalTarget = new Vector2(); - } - var point = optionalTarget; - var points = this.points; - var p = (points.length - 1) * t; - var intPoint = Math.floor(p); - var weight = p - intPoint; - var p0 = points[intPoint === 0 ? intPoint : intPoint - 1]; - var p1 = points[intPoint]; - var p2 = points[intPoint > points.length - 2 ? points.length - 1 : intPoint + 1]; - var p3 = points[intPoint > points.length - 3 ? points.length - 1 : intPoint + 2]; - point.set(CatmullRom(weight, p0.x, p1.x, p2.x, p3.x), CatmullRom(weight, p0.y, p1.y, p2.y, p3.y)); - return point; - }; - SplineCurve.prototype.copy = function (source) { - Curve.prototype.copy.call(this, source); - this.points = []; - for (var i = 0, l = source.points.length; i < l; i++) { - var point = source.points[i]; - this.points.push(point.clone()); - } - return this; - }; - SplineCurve.prototype.toJSON = function () { - var data = Curve.prototype.toJSON.call(this); - data.points = []; - for (var i = 0, l = this.points.length; i < l; i++) { - var point = this.points[i]; - data.points.push(point.toArray()); - } - return data; - }; - SplineCurve.prototype.fromJSON = function (json) { - Curve.prototype.fromJSON.call(this, json); - this.points = []; - for (var i = 0, l = json.points.length; i < l; i++) { - var point = json.points[i]; - this.points.push(new Vector2().fromArray(point)); - } - return this; - }; - var Curves = /*#__PURE__*/Object.freeze({ - __proto__: null, - ArcCurve: ArcCurve, - CatmullRomCurve3: CatmullRomCurve3, - CubicBezierCurve: CubicBezierCurve, - CubicBezierCurve3: CubicBezierCurve3, - EllipseCurve: EllipseCurve, - LineCurve: LineCurve, - LineCurve3: LineCurve3, - QuadraticBezierCurve: QuadraticBezierCurve, - QuadraticBezierCurve3: QuadraticBezierCurve3, - SplineCurve: SplineCurve - }); - /************************************************************** - * Curved Path - a curve path is simply a array of connected - * curves, but retains the api of a curve - **************************************************************/ - function CurvePath() { - Curve.call(this); - this.type = 'CurvePath'; - this.curves = []; - this.autoClose = false; // Automatically closes the path - } - CurvePath.prototype = Object.assign(Object.create(Curve.prototype), { - constructor: CurvePath, - add: function add(curve) { - this.curves.push(curve); - }, - closePath: function closePath() { - // Add a line curve if start and end of lines are not connected - var startPoint = this.curves[0].getPoint(0); - var endPoint = this.curves[this.curves.length - 1].getPoint(1); - if (!startPoint.equals(endPoint)) { - this.curves.push(new LineCurve(endPoint, startPoint)); - } - }, - // To get accurate point with reference to - // entire path distance at time t, - // following has to be done: - // 1. Length of each sub path have to be known - // 2. Locate and identify type of curve - // 3. Get t for the curve - // 4. Return curve.getPointAt(t') - getPoint: function getPoint(t) { - var d = t * this.getLength(); - var curveLengths = this.getCurveLengths(); - var i = 0; // To think about boundaries points. - while (i < curveLengths.length) { - if (curveLengths[i] >= d) { - var diff = curveLengths[i] - d; - var curve = this.curves[i]; - var segmentLength = curve.getLength(); - var u = segmentLength === 0 ? 0 : 1 - diff / segmentLength; - return curve.getPointAt(u); - } - i++; - } - return null; // loop where sum != 0, sum > d , sum+1 1 && !points[points.length - 1].equals(points[0])) { - points.push(points[0]); - } - return points; - }, - copy: function copy(source) { - Curve.prototype.copy.call(this, source); - this.curves = []; - for (var i = 0, l = source.curves.length; i < l; i++) { - var curve = source.curves[i]; - this.curves.push(curve.clone()); - } - this.autoClose = source.autoClose; - return this; - }, - toJSON: function toJSON() { - var data = Curve.prototype.toJSON.call(this); - data.autoClose = this.autoClose; - data.curves = []; - for (var i = 0, l = this.curves.length; i < l; i++) { - var curve = this.curves[i]; - data.curves.push(curve.toJSON()); - } - return data; - }, - fromJSON: function fromJSON(json) { - Curve.prototype.fromJSON.call(this, json); - this.autoClose = json.autoClose; - this.curves = []; - for (var i = 0, l = json.curves.length; i < l; i++) { - var curve = json.curves[i]; - this.curves.push(new Curves[curve.type]().fromJSON(curve)); - } - return this; - } - }); - function Path(points) { - CurvePath.call(this); - this.type = 'Path'; - this.currentPoint = new Vector2(); - if (points) { - this.setFromPoints(points); - } - } - Path.prototype = Object.assign(Object.create(CurvePath.prototype), { - constructor: Path, - setFromPoints: function setFromPoints(points) { - this.moveTo(points[0].x, points[0].y); - for (var i = 1, l = points.length; i < l; i++) { - this.lineTo(points[i].x, points[i].y); - } - return this; - }, - moveTo: function moveTo(x, y) { - this.currentPoint.set(x, y); // TODO consider referencing vectors instead of copying? - return this; - }, - lineTo: function lineTo(x, y) { - var curve = new LineCurve(this.currentPoint.clone(), new Vector2(x, y)); - this.curves.push(curve); - this.currentPoint.set(x, y); - return this; - }, - quadraticCurveTo: function quadraticCurveTo(aCPx, aCPy, aX, aY) { - var curve = new QuadraticBezierCurve(this.currentPoint.clone(), new Vector2(aCPx, aCPy), new Vector2(aX, aY)); - this.curves.push(curve); - this.currentPoint.set(aX, aY); - return this; - }, - bezierCurveTo: function bezierCurveTo(aCP1x, aCP1y, aCP2x, aCP2y, aX, aY) { - var curve = new CubicBezierCurve(this.currentPoint.clone(), new Vector2(aCP1x, aCP1y), new Vector2(aCP2x, aCP2y), new Vector2(aX, aY)); - this.curves.push(curve); - this.currentPoint.set(aX, aY); - return this; - }, - splineThru: function splineThru(pts - /*Array of Vector*/ - ) { - var npts = [this.currentPoint.clone()].concat(pts); - var curve = new SplineCurve(npts); - this.curves.push(curve); - this.currentPoint.copy(pts[pts.length - 1]); - return this; - }, - arc: function arc(aX, aY, aRadius, aStartAngle, aEndAngle, aClockwise) { - var x0 = this.currentPoint.x; - var y0 = this.currentPoint.y; - this.absarc(aX + x0, aY + y0, aRadius, aStartAngle, aEndAngle, aClockwise); - return this; - }, - absarc: function absarc(aX, aY, aRadius, aStartAngle, aEndAngle, aClockwise) { - this.absellipse(aX, aY, aRadius, aRadius, aStartAngle, aEndAngle, aClockwise); - return this; - }, - ellipse: function ellipse(aX, aY, xRadius, yRadius, aStartAngle, aEndAngle, aClockwise, aRotation) { - var x0 = this.currentPoint.x; - var y0 = this.currentPoint.y; - this.absellipse(aX + x0, aY + y0, xRadius, yRadius, aStartAngle, aEndAngle, aClockwise, aRotation); - return this; - }, - absellipse: function absellipse(aX, aY, xRadius, yRadius, aStartAngle, aEndAngle, aClockwise, aRotation) { - var curve = new EllipseCurve(aX, aY, xRadius, yRadius, aStartAngle, aEndAngle, aClockwise, aRotation); - if (this.curves.length > 0) { - // if a previous curve is present, attempt to join - var firstPoint = curve.getPoint(0); - if (!firstPoint.equals(this.currentPoint)) { - this.lineTo(firstPoint.x, firstPoint.y); - } - } - this.curves.push(curve); - var lastPoint = curve.getPoint(1); - this.currentPoint.copy(lastPoint); - return this; - }, - copy: function copy(source) { - CurvePath.prototype.copy.call(this, source); - this.currentPoint.copy(source.currentPoint); - return this; - }, - toJSON: function toJSON() { - var data = CurvePath.prototype.toJSON.call(this); - data.currentPoint = this.currentPoint.toArray(); - return data; - }, - fromJSON: function fromJSON(json) { - CurvePath.prototype.fromJSON.call(this, json); - this.currentPoint.fromArray(json.currentPoint); - return this; - } - }); - function Shape(points) { - Path.call(this, points); - this.uuid = MathUtils.generateUUID(); - this.type = 'Shape'; - this.holes = []; - } - Shape.prototype = Object.assign(Object.create(Path.prototype), { - constructor: Shape, - getPointsHoles: function getPointsHoles(divisions) { - var holesPts = []; - for (var i = 0, l = this.holes.length; i < l; i++) { - holesPts[i] = this.holes[i].getPoints(divisions); - } - return holesPts; - }, - // get points of shape and holes (keypoints based on segments parameter) - extractPoints: function extractPoints(divisions) { - return { - shape: this.getPoints(divisions), - holes: this.getPointsHoles(divisions) - }; - }, - copy: function copy(source) { - Path.prototype.copy.call(this, source); - this.holes = []; - for (var i = 0, l = source.holes.length; i < l; i++) { - var hole = source.holes[i]; - this.holes.push(hole.clone()); - } - return this; - }, - toJSON: function toJSON() { - var data = Path.prototype.toJSON.call(this); - data.uuid = this.uuid; - data.holes = []; - for (var i = 0, l = this.holes.length; i < l; i++) { - var hole = this.holes[i]; - data.holes.push(hole.toJSON()); - } - return data; - }, - fromJSON: function fromJSON(json) { - Path.prototype.fromJSON.call(this, json); - this.uuid = json.uuid; - this.holes = []; - for (var i = 0, l = json.holes.length; i < l; i++) { - var hole = json.holes[i]; - this.holes.push(new Path().fromJSON(hole)); - } - return this; - } - }); - function Light(color, intensity) { - if (intensity === void 0) { - intensity = 1; - } - Object3D.call(this); - this.type = 'Light'; - this.color = new Color(color); - this.intensity = intensity; - } - Light.prototype = Object.assign(Object.create(Object3D.prototype), { - constructor: Light, - isLight: true, - copy: function copy(source) { - Object3D.prototype.copy.call(this, source); - this.color.copy(source.color); - this.intensity = source.intensity; - return this; - }, - toJSON: function toJSON(meta) { - var data = Object3D.prototype.toJSON.call(this, meta); - data.object.color = this.color.getHex(); - data.object.intensity = this.intensity; - if (this.groundColor !== undefined) data.object.groundColor = this.groundColor.getHex(); - if (this.distance !== undefined) data.object.distance = this.distance; - if (this.angle !== undefined) data.object.angle = this.angle; - if (this.decay !== undefined) data.object.decay = this.decay; - if (this.penumbra !== undefined) data.object.penumbra = this.penumbra; - if (this.shadow !== undefined) data.object.shadow = this.shadow.toJSON(); - return data; - } - }); - function HemisphereLight(skyColor, groundColor, intensity) { - Light.call(this, skyColor, intensity); - this.type = 'HemisphereLight'; - this.position.copy(Object3D.DefaultUp); - this.updateMatrix(); - this.groundColor = new Color(groundColor); - } - HemisphereLight.prototype = Object.assign(Object.create(Light.prototype), { - constructor: HemisphereLight, - isHemisphereLight: true, - copy: function copy(source) { - Light.prototype.copy.call(this, source); - this.groundColor.copy(source.groundColor); - return this; - } - }); - function LightShadow(camera) { - this.camera = camera; - this.bias = 0; - this.normalBias = 0; - this.radius = 1; - this.mapSize = new Vector2(512, 512); - this.map = null; - this.mapPass = null; - this.matrix = new Matrix4(); - this.autoUpdate = true; - this.needsUpdate = false; - this._frustum = new Frustum(); - this._frameExtents = new Vector2(1, 1); - this._viewportCount = 1; - this._viewports = [new Vector4(0, 0, 1, 1)]; - } - Object.assign(LightShadow.prototype, { - _projScreenMatrix: new Matrix4(), - _lightPositionWorld: new Vector3(), - _lookTarget: new Vector3(), - getViewportCount: function getViewportCount() { - return this._viewportCount; - }, - getFrustum: function getFrustum() { - return this._frustum; - }, - updateMatrices: function updateMatrices(light) { - var shadowCamera = this.camera, - shadowMatrix = this.matrix, - projScreenMatrix = this._projScreenMatrix, - lookTarget = this._lookTarget, - lightPositionWorld = this._lightPositionWorld; - lightPositionWorld.setFromMatrixPosition(light.matrixWorld); - shadowCamera.position.copy(lightPositionWorld); - lookTarget.setFromMatrixPosition(light.target.matrixWorld); - shadowCamera.lookAt(lookTarget); - shadowCamera.updateMatrixWorld(); - projScreenMatrix.multiplyMatrices(shadowCamera.projectionMatrix, shadowCamera.matrixWorldInverse); - this._frustum.setFromProjectionMatrix(projScreenMatrix); - shadowMatrix.set(0.5, 0.0, 0.0, 0.5, 0.0, 0.5, 0.0, 0.5, 0.0, 0.0, 0.5, 0.5, 0.0, 0.0, 0.0, 1.0); - shadowMatrix.multiply(shadowCamera.projectionMatrix); - shadowMatrix.multiply(shadowCamera.matrixWorldInverse); - }, - getViewport: function getViewport(viewportIndex) { - return this._viewports[viewportIndex]; - }, - getFrameExtents: function getFrameExtents() { - return this._frameExtents; - }, - copy: function copy(source) { - this.camera = source.camera.clone(); - this.bias = source.bias; - this.radius = source.radius; - this.mapSize.copy(source.mapSize); - return this; - }, - clone: function clone() { - return new this.constructor().copy(this); - }, - toJSON: function toJSON() { - var object = {}; - if (this.bias !== 0) object.bias = this.bias; - if (this.normalBias !== 0) object.normalBias = this.normalBias; - if (this.radius !== 1) object.radius = this.radius; - if (this.mapSize.x !== 512 || this.mapSize.y !== 512) object.mapSize = this.mapSize.toArray(); - object.camera = this.camera.toJSON(false).object; - delete object.camera.matrix; - return object; - } - }); - function SpotLightShadow() { - LightShadow.call(this, new PerspectiveCamera(50, 1, 0.5, 500)); - this.focus = 1; - } - SpotLightShadow.prototype = Object.assign(Object.create(LightShadow.prototype), { - constructor: SpotLightShadow, - isSpotLightShadow: true, - updateMatrices: function updateMatrices(light) { - var camera = this.camera; - var fov = MathUtils.RAD2DEG * 2 * light.angle * this.focus; - var aspect = this.mapSize.width / this.mapSize.height; - var far = light.distance || camera.far; - if (fov !== camera.fov || aspect !== camera.aspect || far !== camera.far) { - camera.fov = fov; - camera.aspect = aspect; - camera.far = far; - camera.updateProjectionMatrix(); - } - LightShadow.prototype.updateMatrices.call(this, light); - } - }); - function SpotLight(color, intensity, distance, angle, penumbra, decay) { - Light.call(this, color, intensity); - this.type = 'SpotLight'; - this.position.copy(Object3D.DefaultUp); - this.updateMatrix(); - this.target = new Object3D(); - Object.defineProperty(this, 'power', { - get: function get() { - // intensity = power per solid angle. - // ref: equation (17) from https://seblagarde.files.wordpress.com/2015/07/course_notes_moving_frostbite_to_pbr_v32.pdf - return this.intensity * Math.PI; - }, - set: function set(power) { - // intensity = power per solid angle. - // ref: equation (17) from https://seblagarde.files.wordpress.com/2015/07/course_notes_moving_frostbite_to_pbr_v32.pdf - this.intensity = power / Math.PI; - } - }); - this.distance = distance !== undefined ? distance : 0; - this.angle = angle !== undefined ? angle : Math.PI / 3; - this.penumbra = penumbra !== undefined ? penumbra : 0; - this.decay = decay !== undefined ? decay : 1; // for physically correct lights, should be 2. - this.shadow = new SpotLightShadow(); - } - SpotLight.prototype = Object.assign(Object.create(Light.prototype), { - constructor: SpotLight, - isSpotLight: true, - copy: function copy(source) { - Light.prototype.copy.call(this, source); - this.distance = source.distance; - this.angle = source.angle; - this.penumbra = source.penumbra; - this.decay = source.decay; - this.target = source.target.clone(); - this.shadow = source.shadow.clone(); - return this; - } - }); - function PointLightShadow() { - LightShadow.call(this, new PerspectiveCamera(90, 1, 0.5, 500)); - this._frameExtents = new Vector2(4, 2); - this._viewportCount = 6; - this._viewports = [// These viewports map a cube-map onto a 2D texture with the - // following orientation: - // - // xzXZ - // y Y - // - // X - Positive x direction - // x - Negative x direction - // Y - Positive y direction - // y - Negative y direction - // Z - Positive z direction - // z - Negative z direction - // positive X - new Vector4(2, 1, 1, 1), // negative X - new Vector4(0, 1, 1, 1), // positive Z - new Vector4(3, 1, 1, 1), // negative Z - new Vector4(1, 1, 1, 1), // positive Y - new Vector4(3, 0, 1, 1), // negative Y - new Vector4(1, 0, 1, 1)]; - this._cubeDirections = [new Vector3(1, 0, 0), new Vector3(-1, 0, 0), new Vector3(0, 0, 1), new Vector3(0, 0, -1), new Vector3(0, 1, 0), new Vector3(0, -1, 0)]; - this._cubeUps = [new Vector3(0, 1, 0), new Vector3(0, 1, 0), new Vector3(0, 1, 0), new Vector3(0, 1, 0), new Vector3(0, 0, 1), new Vector3(0, 0, -1)]; - } - PointLightShadow.prototype = Object.assign(Object.create(LightShadow.prototype), { - constructor: PointLightShadow, - isPointLightShadow: true, - updateMatrices: function updateMatrices(light, viewportIndex) { - if (viewportIndex === void 0) { - viewportIndex = 0; - } - var camera = this.camera, - shadowMatrix = this.matrix, - lightPositionWorld = this._lightPositionWorld, - lookTarget = this._lookTarget, - projScreenMatrix = this._projScreenMatrix; - lightPositionWorld.setFromMatrixPosition(light.matrixWorld); - camera.position.copy(lightPositionWorld); - lookTarget.copy(camera.position); - lookTarget.add(this._cubeDirections[viewportIndex]); - camera.up.copy(this._cubeUps[viewportIndex]); - camera.lookAt(lookTarget); - camera.updateMatrixWorld(); - shadowMatrix.makeTranslation(-lightPositionWorld.x, -lightPositionWorld.y, -lightPositionWorld.z); - projScreenMatrix.multiplyMatrices(camera.projectionMatrix, camera.matrixWorldInverse); - this._frustum.setFromProjectionMatrix(projScreenMatrix); - } - }); - function PointLight(color, intensity, distance, decay) { - Light.call(this, color, intensity); - this.type = 'PointLight'; - Object.defineProperty(this, 'power', { - get: function get() { - // intensity = power per solid angle. - // ref: equation (15) from https://seblagarde.files.wordpress.com/2015/07/course_notes_moving_frostbite_to_pbr_v32.pdf - return this.intensity * 4 * Math.PI; - }, - set: function set(power) { - // intensity = power per solid angle. - // ref: equation (15) from https://seblagarde.files.wordpress.com/2015/07/course_notes_moving_frostbite_to_pbr_v32.pdf - this.intensity = power / (4 * Math.PI); - } - }); - this.distance = distance !== undefined ? distance : 0; - this.decay = decay !== undefined ? decay : 1; // for physically correct lights, should be 2. - this.shadow = new PointLightShadow(); - } - PointLight.prototype = Object.assign(Object.create(Light.prototype), { - constructor: PointLight, - isPointLight: true, - copy: function copy(source) { - Light.prototype.copy.call(this, source); - this.distance = source.distance; - this.decay = source.decay; - this.shadow = source.shadow.clone(); - return this; - } - }); - function OrthographicCamera(left, right, top, bottom, near, far) { - Camera.call(this); - this.type = 'OrthographicCamera'; - this.zoom = 1; - this.view = null; - this.left = left !== undefined ? left : -1; - this.right = right !== undefined ? right : 1; - this.top = top !== undefined ? top : 1; - this.bottom = bottom !== undefined ? bottom : -1; - this.near = near !== undefined ? near : 0.1; - this.far = far !== undefined ? far : 2000; - this.updateProjectionMatrix(); - } - OrthographicCamera.prototype = Object.assign(Object.create(Camera.prototype), { - constructor: OrthographicCamera, - isOrthographicCamera: true, - copy: function copy(source, recursive) { - Camera.prototype.copy.call(this, source, recursive); - this.left = source.left; - this.right = source.right; - this.top = source.top; - this.bottom = source.bottom; - this.near = source.near; - this.far = source.far; - this.zoom = source.zoom; - this.view = source.view === null ? null : Object.assign({}, source.view); - return this; - }, - setViewOffset: function setViewOffset(fullWidth, fullHeight, x, y, width, height) { - if (this.view === null) { - this.view = { - enabled: true, - fullWidth: 1, - fullHeight: 1, - offsetX: 0, - offsetY: 0, - width: 1, - height: 1 - }; - } - this.view.enabled = true; - this.view.fullWidth = fullWidth; - this.view.fullHeight = fullHeight; - this.view.offsetX = x; - this.view.offsetY = y; - this.view.width = width; - this.view.height = height; - this.updateProjectionMatrix(); - }, - clearViewOffset: function clearViewOffset() { - if (this.view !== null) { - this.view.enabled = false; - } - this.updateProjectionMatrix(); - }, - updateProjectionMatrix: function updateProjectionMatrix() { - var dx = (this.right - this.left) / (2 * this.zoom); - var dy = (this.top - this.bottom) / (2 * this.zoom); - var cx = (this.right + this.left) / 2; - var cy = (this.top + this.bottom) / 2; - var left = cx - dx; - var right = cx + dx; - var top = cy + dy; - var bottom = cy - dy; - if (this.view !== null && this.view.enabled) { - var scaleW = (this.right - this.left) / this.view.fullWidth / this.zoom; - var scaleH = (this.top - this.bottom) / this.view.fullHeight / this.zoom; - left += scaleW * this.view.offsetX; - right = left + scaleW * this.view.width; - top -= scaleH * this.view.offsetY; - bottom = top - scaleH * this.view.height; - } - this.projectionMatrix.makeOrthographic(left, right, top, bottom, this.near, this.far); - this.projectionMatrixInverse.copy(this.projectionMatrix).invert(); - }, - toJSON: function toJSON(meta) { - var data = Object3D.prototype.toJSON.call(this, meta); - data.object.zoom = this.zoom; - data.object.left = this.left; - data.object.right = this.right; - data.object.top = this.top; - data.object.bottom = this.bottom; - data.object.near = this.near; - data.object.far = this.far; - if (this.view !== null) data.object.view = Object.assign({}, this.view); - return data; - } - }); - function DirectionalLightShadow() { - LightShadow.call(this, new OrthographicCamera(-5, 5, 5, -5, 0.5, 500)); - } - DirectionalLightShadow.prototype = Object.assign(Object.create(LightShadow.prototype), { - constructor: DirectionalLightShadow, - isDirectionalLightShadow: true, - updateMatrices: function updateMatrices(light) { - LightShadow.prototype.updateMatrices.call(this, light); - } - }); - function DirectionalLight(color, intensity) { - Light.call(this, color, intensity); - this.type = 'DirectionalLight'; - this.position.copy(Object3D.DefaultUp); - this.updateMatrix(); - this.target = new Object3D(); - this.shadow = new DirectionalLightShadow(); - } - DirectionalLight.prototype = Object.assign(Object.create(Light.prototype), { - constructor: DirectionalLight, - isDirectionalLight: true, - copy: function copy(source) { - Light.prototype.copy.call(this, source); - this.target = source.target.clone(); - this.shadow = source.shadow.clone(); - return this; - } - }); - function AmbientLight(color, intensity) { - Light.call(this, color, intensity); - this.type = 'AmbientLight'; - } - AmbientLight.prototype = Object.assign(Object.create(Light.prototype), { - constructor: AmbientLight, - isAmbientLight: true - }); - function RectAreaLight(color, intensity, width, height) { - Light.call(this, color, intensity); - this.type = 'RectAreaLight'; - this.width = width !== undefined ? width : 10; - this.height = height !== undefined ? height : 10; - } - RectAreaLight.prototype = Object.assign(Object.create(Light.prototype), { - constructor: RectAreaLight, - isRectAreaLight: true, - copy: function copy(source) { - Light.prototype.copy.call(this, source); - this.width = source.width; - this.height = source.height; - return this; - }, - toJSON: function toJSON(meta) { - var data = Light.prototype.toJSON.call(this, meta); - data.object.width = this.width; - data.object.height = this.height; - return data; - } - }); - /** - * Primary reference: - * https://graphics.stanford.edu/papers/envmap/envmap.pdf - * - * Secondary reference: - * https://www.ppsloan.org/publications/StupidSH36.pdf - */ - // 3-band SH defined by 9 coefficients - var SphericalHarmonics3 = /*#__PURE__*/function () { - function SphericalHarmonics3() { - Object.defineProperty(this, 'isSphericalHarmonics3', { - value: true - }); - this.coefficients = []; - for (var i = 0; i < 9; i++) { - this.coefficients.push(new Vector3()); - } - } - var _proto = SphericalHarmonics3.prototype; - _proto.set = function set(coefficients) { - for (var i = 0; i < 9; i++) { - this.coefficients[i].copy(coefficients[i]); - } - return this; - }; - _proto.zero = function zero() { - for (var i = 0; i < 9; i++) { - this.coefficients[i].set(0, 0, 0); - } - return this; - } // get the radiance in the direction of the normal - // target is a Vector3 - ; - _proto.getAt = function getAt(normal, target) { - // normal is assumed to be unit length - var x = normal.x, - y = normal.y, - z = normal.z; - var coeff = this.coefficients; // band 0 - target.copy(coeff[0]).multiplyScalar(0.282095); // band 1 - target.addScaledVector(coeff[1], 0.488603 * y); - target.addScaledVector(coeff[2], 0.488603 * z); - target.addScaledVector(coeff[3], 0.488603 * x); // band 2 - target.addScaledVector(coeff[4], 1.092548 * (x * y)); - target.addScaledVector(coeff[5], 1.092548 * (y * z)); - target.addScaledVector(coeff[6], 0.315392 * (3.0 * z * z - 1.0)); - target.addScaledVector(coeff[7], 1.092548 * (x * z)); - target.addScaledVector(coeff[8], 0.546274 * (x * x - y * y)); - return target; - } // get the irradiance (radiance convolved with cosine lobe) in the direction of the normal - // target is a Vector3 - // https://graphics.stanford.edu/papers/envmap/envmap.pdf - ; - _proto.getIrradianceAt = function getIrradianceAt(normal, target) { - // normal is assumed to be unit length - var x = normal.x, - y = normal.y, - z = normal.z; - var coeff = this.coefficients; // band 0 - target.copy(coeff[0]).multiplyScalar(0.886227); // π * 0.282095 - // band 1 - target.addScaledVector(coeff[1], 2.0 * 0.511664 * y); // ( 2 * π / 3 ) * 0.488603 - target.addScaledVector(coeff[2], 2.0 * 0.511664 * z); - target.addScaledVector(coeff[3], 2.0 * 0.511664 * x); // band 2 - target.addScaledVector(coeff[4], 2.0 * 0.429043 * x * y); // ( π / 4 ) * 1.092548 - target.addScaledVector(coeff[5], 2.0 * 0.429043 * y * z); - target.addScaledVector(coeff[6], 0.743125 * z * z - 0.247708); // ( π / 4 ) * 0.315392 * 3 - target.addScaledVector(coeff[7], 2.0 * 0.429043 * x * z); - target.addScaledVector(coeff[8], 0.429043 * (x * x - y * y)); // ( π / 4 ) * 0.546274 - return target; - }; - _proto.add = function add(sh) { - for (var i = 0; i < 9; i++) { - this.coefficients[i].add(sh.coefficients[i]); - } - return this; - }; - _proto.addScaledSH = function addScaledSH(sh, s) { - for (var i = 0; i < 9; i++) { - this.coefficients[i].addScaledVector(sh.coefficients[i], s); - } - return this; - }; - _proto.scale = function scale(s) { - for (var i = 0; i < 9; i++) { - this.coefficients[i].multiplyScalar(s); - } - return this; - }; - _proto.lerp = function lerp(sh, alpha) { - for (var i = 0; i < 9; i++) { - this.coefficients[i].lerp(sh.coefficients[i], alpha); - } - return this; - }; - _proto.equals = function equals(sh) { - for (var i = 0; i < 9; i++) { - if (!this.coefficients[i].equals(sh.coefficients[i])) { - return false; - } - } - return true; - }; - _proto.copy = function copy(sh) { - return this.set(sh.coefficients); - }; - _proto.clone = function clone() { - return new this.constructor().copy(this); - }; - _proto.fromArray = function fromArray(array, offset) { - if (offset === void 0) { - offset = 0; - } - var coefficients = this.coefficients; - for (var i = 0; i < 9; i++) { - coefficients[i].fromArray(array, offset + i * 3); - } - return this; - }; - _proto.toArray = function toArray(array, offset) { - if (array === void 0) { - array = []; - } - if (offset === void 0) { - offset = 0; - } - var coefficients = this.coefficients; - for (var i = 0; i < 9; i++) { - coefficients[i].toArray(array, offset + i * 3); - } - return array; - } // evaluate the basis functions - // shBasis is an Array[ 9 ] - ; - SphericalHarmonics3.getBasisAt = function getBasisAt(normal, shBasis) { - // normal is assumed to be unit length - var x = normal.x, - y = normal.y, - z = normal.z; // band 0 - shBasis[0] = 0.282095; // band 1 - shBasis[1] = 0.488603 * y; - shBasis[2] = 0.488603 * z; - shBasis[3] = 0.488603 * x; // band 2 - shBasis[4] = 1.092548 * x * y; - shBasis[5] = 1.092548 * y * z; - shBasis[6] = 0.315392 * (3 * z * z - 1); - shBasis[7] = 1.092548 * x * z; - shBasis[8] = 0.546274 * (x * x - y * y); - }; - return SphericalHarmonics3; - }(); - function LightProbe(sh, intensity) { - Light.call(this, undefined, intensity); - this.type = 'LightProbe'; - this.sh = sh !== undefined ? sh : new SphericalHarmonics3(); - } - LightProbe.prototype = Object.assign(Object.create(Light.prototype), { - constructor: LightProbe, - isLightProbe: true, - copy: function copy(source) { - Light.prototype.copy.call(this, source); - this.sh.copy(source.sh); - return this; - }, - fromJSON: function fromJSON(json) { - this.intensity = json.intensity; // TODO: Move this bit to Light.fromJSON(); - this.sh.fromArray(json.sh); - return this; - }, - toJSON: function toJSON(meta) { - var data = Light.prototype.toJSON.call(this, meta); - data.object.sh = this.sh.toArray(); - return data; - } - }); - function MaterialLoader(manager) { - Loader.call(this, manager); - this.textures = {}; - } - MaterialLoader.prototype = Object.assign(Object.create(Loader.prototype), { - constructor: MaterialLoader, - load: function load(url, onLoad, onProgress, onError) { - var scope = this; - var loader = new FileLoader(scope.manager); - loader.setPath(scope.path); - loader.setRequestHeader(scope.requestHeader); - loader.setWithCredentials(scope.withCredentials); - loader.load(url, function (text) { - try { - onLoad(scope.parse(JSON.parse(text))); - } catch (e) { - if (onError) { - onError(e); - } else { - console.error(e); - } - scope.manager.itemError(url); - } - }, onProgress, onError); - }, - parse: function parse(json) { - var textures = this.textures; - function getTexture(name) { - if (textures[name] === undefined) { - console.warn('THREE.MaterialLoader: Undefined texture', name); - } - return textures[name]; - } - var material = new Materials[json.type](); - if (json.uuid !== undefined) material.uuid = json.uuid; - if (json.name !== undefined) material.name = json.name; - if (json.color !== undefined && material.color !== undefined) material.color.setHex(json.color); - if (json.roughness !== undefined) material.roughness = json.roughness; - if (json.metalness !== undefined) material.metalness = json.metalness; - if (json.sheen !== undefined) material.sheen = new Color().setHex(json.sheen); - if (json.emissive !== undefined && material.emissive !== undefined) material.emissive.setHex(json.emissive); - if (json.specular !== undefined && material.specular !== undefined) material.specular.setHex(json.specular); - if (json.shininess !== undefined) material.shininess = json.shininess; - if (json.clearcoat !== undefined) material.clearcoat = json.clearcoat; - if (json.clearcoatRoughness !== undefined) material.clearcoatRoughness = json.clearcoatRoughness; - if (json.fog !== undefined) material.fog = json.fog; - if (json.flatShading !== undefined) material.flatShading = json.flatShading; - if (json.blending !== undefined) material.blending = json.blending; - if (json.combine !== undefined) material.combine = json.combine; - if (json.side !== undefined) material.side = json.side; - if (json.opacity !== undefined) material.opacity = json.opacity; - if (json.transparent !== undefined) material.transparent = json.transparent; - if (json.alphaTest !== undefined) material.alphaTest = json.alphaTest; - if (json.depthTest !== undefined) material.depthTest = json.depthTest; - if (json.depthWrite !== undefined) material.depthWrite = json.depthWrite; - if (json.colorWrite !== undefined) material.colorWrite = json.colorWrite; - if (json.stencilWrite !== undefined) material.stencilWrite = json.stencilWrite; - if (json.stencilWriteMask !== undefined) material.stencilWriteMask = json.stencilWriteMask; - if (json.stencilFunc !== undefined) material.stencilFunc = json.stencilFunc; - if (json.stencilRef !== undefined) material.stencilRef = json.stencilRef; - if (json.stencilFuncMask !== undefined) material.stencilFuncMask = json.stencilFuncMask; - if (json.stencilFail !== undefined) material.stencilFail = json.stencilFail; - if (json.stencilZFail !== undefined) material.stencilZFail = json.stencilZFail; - if (json.stencilZPass !== undefined) material.stencilZPass = json.stencilZPass; - if (json.wireframe !== undefined) material.wireframe = json.wireframe; - if (json.wireframeLinewidth !== undefined) material.wireframeLinewidth = json.wireframeLinewidth; - if (json.wireframeLinecap !== undefined) material.wireframeLinecap = json.wireframeLinecap; - if (json.wireframeLinejoin !== undefined) material.wireframeLinejoin = json.wireframeLinejoin; - if (json.rotation !== undefined) material.rotation = json.rotation; - if (json.linewidth !== 1) material.linewidth = json.linewidth; - if (json.dashSize !== undefined) material.dashSize = json.dashSize; - if (json.gapSize !== undefined) material.gapSize = json.gapSize; - if (json.scale !== undefined) material.scale = json.scale; - if (json.polygonOffset !== undefined) material.polygonOffset = json.polygonOffset; - if (json.polygonOffsetFactor !== undefined) material.polygonOffsetFactor = json.polygonOffsetFactor; - if (json.polygonOffsetUnits !== undefined) material.polygonOffsetUnits = json.polygonOffsetUnits; - if (json.skinning !== undefined) material.skinning = json.skinning; - if (json.morphTargets !== undefined) material.morphTargets = json.morphTargets; - if (json.morphNormals !== undefined) material.morphNormals = json.morphNormals; - if (json.dithering !== undefined) material.dithering = json.dithering; - if (json.vertexTangents !== undefined) material.vertexTangents = json.vertexTangents; - if (json.visible !== undefined) material.visible = json.visible; - if (json.toneMapped !== undefined) material.toneMapped = json.toneMapped; - if (json.userData !== undefined) material.userData = json.userData; - if (json.vertexColors !== undefined) { - if (typeof json.vertexColors === 'number') { - material.vertexColors = json.vertexColors > 0 ? true : false; - } else { - material.vertexColors = json.vertexColors; - } - } // Shader Material - - if (json.uniforms !== undefined) { - for (var name in json.uniforms) { - var uniform = json.uniforms[name]; - material.uniforms[name] = {}; - switch (uniform.type) { - case 't': - material.uniforms[name].value = getTexture(uniform.value); - break; - case 'c': - material.uniforms[name].value = new Color().setHex(uniform.value); - break; - case 'v2': - material.uniforms[name].value = new Vector2().fromArray(uniform.value); - break; - case 'v3': - material.uniforms[name].value = new Vector3().fromArray(uniform.value); - break; - case 'v4': - material.uniforms[name].value = new Vector4().fromArray(uniform.value); - break; - case 'm3': - material.uniforms[name].value = new Matrix3().fromArray(uniform.value); - break; - case 'm4': - material.uniforms[name].value = new Matrix4().fromArray(uniform.value); - break; - default: - material.uniforms[name].value = uniform.value; - } - } - } - if (json.defines !== undefined) material.defines = json.defines; - if (json.vertexShader !== undefined) material.vertexShader = json.vertexShader; - if (json.fragmentShader !== undefined) material.fragmentShader = json.fragmentShader; - if (json.extensions !== undefined) { - for (var key in json.extensions) { - material.extensions[key] = json.extensions[key]; - } - } // Deprecated - - if (json.shading !== undefined) material.flatShading = json.shading === 1; // THREE.FlatShading - // for PointsMaterial - if (json.size !== undefined) material.size = json.size; - if (json.sizeAttenuation !== undefined) material.sizeAttenuation = json.sizeAttenuation; // maps - if (json.map !== undefined) material.map = getTexture(json.map); - if (json.matcap !== undefined) material.matcap = getTexture(json.matcap); - if (json.alphaMap !== undefined) material.alphaMap = getTexture(json.alphaMap); - if (json.bumpMap !== undefined) material.bumpMap = getTexture(json.bumpMap); - if (json.bumpScale !== undefined) material.bumpScale = json.bumpScale; - if (json.normalMap !== undefined) material.normalMap = getTexture(json.normalMap); - if (json.normalMapType !== undefined) material.normalMapType = json.normalMapType; - if (json.normalScale !== undefined) { - var normalScale = json.normalScale; - if (Array.isArray(normalScale) === false) { - // Blender exporter used to export a scalar. See #7459 - normalScale = [normalScale, normalScale]; - } - material.normalScale = new Vector2().fromArray(normalScale); - } - if (json.displacementMap !== undefined) material.displacementMap = getTexture(json.displacementMap); - if (json.displacementScale !== undefined) material.displacementScale = json.displacementScale; - if (json.displacementBias !== undefined) material.displacementBias = json.displacementBias; - if (json.roughnessMap !== undefined) material.roughnessMap = getTexture(json.roughnessMap); - if (json.metalnessMap !== undefined) material.metalnessMap = getTexture(json.metalnessMap); - if (json.emissiveMap !== undefined) material.emissiveMap = getTexture(json.emissiveMap); - if (json.emissiveIntensity !== undefined) material.emissiveIntensity = json.emissiveIntensity; - if (json.specularMap !== undefined) material.specularMap = getTexture(json.specularMap); - if (json.envMap !== undefined) material.envMap = getTexture(json.envMap); - if (json.envMapIntensity !== undefined) material.envMapIntensity = json.envMapIntensity; - if (json.reflectivity !== undefined) material.reflectivity = json.reflectivity; - if (json.refractionRatio !== undefined) material.refractionRatio = json.refractionRatio; - if (json.lightMap !== undefined) material.lightMap = getTexture(json.lightMap); - if (json.lightMapIntensity !== undefined) material.lightMapIntensity = json.lightMapIntensity; - if (json.aoMap !== undefined) material.aoMap = getTexture(json.aoMap); - if (json.aoMapIntensity !== undefined) material.aoMapIntensity = json.aoMapIntensity; - if (json.gradientMap !== undefined) material.gradientMap = getTexture(json.gradientMap); - if (json.clearcoatMap !== undefined) material.clearcoatMap = getTexture(json.clearcoatMap); - if (json.clearcoatRoughnessMap !== undefined) material.clearcoatRoughnessMap = getTexture(json.clearcoatRoughnessMap); - if (json.clearcoatNormalMap !== undefined) material.clearcoatNormalMap = getTexture(json.clearcoatNormalMap); - if (json.clearcoatNormalScale !== undefined) material.clearcoatNormalScale = new Vector2().fromArray(json.clearcoatNormalScale); - if (json.transmission !== undefined) material.transmission = json.transmission; - if (json.transmissionMap !== undefined) material.transmissionMap = getTexture(json.transmissionMap); - return material; - }, - setTextures: function setTextures(value) { - this.textures = value; - return this; - } - }); - var LoaderUtils = { - decodeText: function decodeText(array) { - if (typeof TextDecoder !== 'undefined') { - return new TextDecoder().decode(array); - } // Avoid the String.fromCharCode.apply(null, array) shortcut, which - // throws a "maximum call stack size exceeded" error for large arrays. - - var s = ''; - for (var i = 0, il = array.length; i < il; i++) { - // Implicitly assumes little-endian. - s += String.fromCharCode(array[i]); - } - try { - // merges multi-byte utf-8 characters. - return decodeURIComponent(escape(s)); - } catch (e) { - // see #16358 - return s; - } - }, - extractUrlBase: function extractUrlBase(url) { - var index = url.lastIndexOf('/'); - if (index === -1) return './'; - return url.substr(0, index + 1); - } - }; - function InstancedBufferGeometry() { - BufferGeometry.call(this); - this.type = 'InstancedBufferGeometry'; - this.instanceCount = Infinity; - } - InstancedBufferGeometry.prototype = Object.assign(Object.create(BufferGeometry.prototype), { - constructor: InstancedBufferGeometry, - isInstancedBufferGeometry: true, - copy: function copy(source) { - BufferGeometry.prototype.copy.call(this, source); - this.instanceCount = source.instanceCount; - return this; - }, - clone: function clone() { - return new this.constructor().copy(this); - }, - toJSON: function toJSON() { - var data = BufferGeometry.prototype.toJSON.call(this); - data.instanceCount = this.instanceCount; - data.isInstancedBufferGeometry = true; - return data; - } - }); - function InstancedBufferAttribute(array, itemSize, normalized, meshPerAttribute) { - if (typeof normalized === 'number') { - meshPerAttribute = normalized; - normalized = false; - console.error('THREE.InstancedBufferAttribute: The constructor now expects normalized as the third argument.'); - } - BufferAttribute.call(this, array, itemSize, normalized); - this.meshPerAttribute = meshPerAttribute || 1; - } - InstancedBufferAttribute.prototype = Object.assign(Object.create(BufferAttribute.prototype), { - constructor: InstancedBufferAttribute, - isInstancedBufferAttribute: true, - copy: function copy(source) { - BufferAttribute.prototype.copy.call(this, source); - this.meshPerAttribute = source.meshPerAttribute; - return this; - }, - toJSON: function toJSON() { - var data = BufferAttribute.prototype.toJSON.call(this); - data.meshPerAttribute = this.meshPerAttribute; - data.isInstancedBufferAttribute = true; - return data; - } - }); - function BufferGeometryLoader(manager) { - Loader.call(this, manager); - } - BufferGeometryLoader.prototype = Object.assign(Object.create(Loader.prototype), { - constructor: BufferGeometryLoader, - load: function load(url, onLoad, onProgress, onError) { - var scope = this; - var loader = new FileLoader(scope.manager); - loader.setPath(scope.path); - loader.setRequestHeader(scope.requestHeader); - loader.setWithCredentials(scope.withCredentials); - loader.load(url, function (text) { - try { - onLoad(scope.parse(JSON.parse(text))); - } catch (e) { - if (onError) { - onError(e); - } else { - console.error(e); - } - scope.manager.itemError(url); - } - }, onProgress, onError); - }, - parse: function parse(json) { - var interleavedBufferMap = {}; - var arrayBufferMap = {}; - function getInterleavedBuffer(json, uuid) { - if (interleavedBufferMap[uuid] !== undefined) return interleavedBufferMap[uuid]; - var interleavedBuffers = json.interleavedBuffers; - var interleavedBuffer = interleavedBuffers[uuid]; - var buffer = getArrayBuffer(json, interleavedBuffer.buffer); - var array = getTypedArray(interleavedBuffer.type, buffer); - var ib = new InterleavedBuffer(array, interleavedBuffer.stride); - ib.uuid = interleavedBuffer.uuid; - interleavedBufferMap[uuid] = ib; - return ib; - } - function getArrayBuffer(json, uuid) { - if (arrayBufferMap[uuid] !== undefined) return arrayBufferMap[uuid]; - var arrayBuffers = json.arrayBuffers; - var arrayBuffer = arrayBuffers[uuid]; - var ab = new Uint32Array(arrayBuffer).buffer; - arrayBufferMap[uuid] = ab; - return ab; - } - var geometry = json.isInstancedBufferGeometry ? new InstancedBufferGeometry() : new BufferGeometry(); - var index = json.data.index; - if (index !== undefined) { - var typedArray = getTypedArray(index.type, index.array); - geometry.setIndex(new BufferAttribute(typedArray, 1)); - } - var attributes = json.data.attributes; - for (var key in attributes) { - var attribute = attributes[key]; - var bufferAttribute = void 0; - if (attribute.isInterleavedBufferAttribute) { - var interleavedBuffer = getInterleavedBuffer(json.data, attribute.data); - bufferAttribute = new InterleavedBufferAttribute(interleavedBuffer, attribute.itemSize, attribute.offset, attribute.normalized); - } else { - var _typedArray = getTypedArray(attribute.type, attribute.array); - var bufferAttributeConstr = attribute.isInstancedBufferAttribute ? InstancedBufferAttribute : BufferAttribute; - bufferAttribute = new bufferAttributeConstr(_typedArray, attribute.itemSize, attribute.normalized); - } - if (attribute.name !== undefined) bufferAttribute.name = attribute.name; - geometry.setAttribute(key, bufferAttribute); - } - var morphAttributes = json.data.morphAttributes; - if (morphAttributes) { - for (var _key in morphAttributes) { - var attributeArray = morphAttributes[_key]; - var array = []; - for (var i = 0, il = attributeArray.length; i < il; i++) { - var _attribute = attributeArray[i]; - var _bufferAttribute = void 0; - if (_attribute.isInterleavedBufferAttribute) { - var _interleavedBuffer = getInterleavedBuffer(json.data, _attribute.data); - _bufferAttribute = new InterleavedBufferAttribute(_interleavedBuffer, _attribute.itemSize, _attribute.offset, _attribute.normalized); - } else { - var _typedArray2 = getTypedArray(_attribute.type, _attribute.array); - _bufferAttribute = new BufferAttribute(_typedArray2, _attribute.itemSize, _attribute.normalized); - } - if (_attribute.name !== undefined) _bufferAttribute.name = _attribute.name; - array.push(_bufferAttribute); - } - geometry.morphAttributes[_key] = array; - } - } - var morphTargetsRelative = json.data.morphTargetsRelative; - if (morphTargetsRelative) { - geometry.morphTargetsRelative = true; - } - var groups = json.data.groups || json.data.drawcalls || json.data.offsets; - if (groups !== undefined) { - for (var _i = 0, n = groups.length; _i !== n; ++_i) { - var group = groups[_i]; - geometry.addGroup(group.start, group.count, group.materialIndex); - } - } - var boundingSphere = json.data.boundingSphere; - if (boundingSphere !== undefined) { - var center = new Vector3(); - if (boundingSphere.center !== undefined) { - center.fromArray(boundingSphere.center); - } - geometry.boundingSphere = new Sphere(center, boundingSphere.radius); - } - if (json.name) geometry.name = json.name; - if (json.userData) geometry.userData = json.userData; - return geometry; - } - }); - var ObjectLoader = /*#__PURE__*/function (_Loader) { - _inheritsLoose(ObjectLoader, _Loader); - function ObjectLoader(manager) { - return _Loader.call(this, manager) || this; - } - var _proto = ObjectLoader.prototype; - _proto.load = function load(url, onLoad, onProgress, onError) { - var scope = this; - var path = this.path === '' ? LoaderUtils.extractUrlBase(url) : this.path; - this.resourcePath = this.resourcePath || path; - var loader = new FileLoader(this.manager); - loader.setPath(this.path); - loader.setRequestHeader(this.requestHeader); - loader.setWithCredentials(this.withCredentials); - loader.load(url, function (text) { - var json = null; - try { - json = JSON.parse(text); - } catch (error) { - if (onError !== undefined) onError(error); - console.error('THREE:ObjectLoader: Can\'t parse ' + url + '.', error.message); - return; - } - var metadata = json.metadata; - if (metadata === undefined || metadata.type === undefined || metadata.type.toLowerCase() === 'geometry') { - console.error('THREE.ObjectLoader: Can\'t load ' + url); - return; - } - scope.parse(json, onLoad); - }, onProgress, onError); - }; - _proto.parse = function parse(json, onLoad) { - var animations = this.parseAnimations(json.animations); - var shapes = this.parseShapes(json.shapes); - var geometries = this.parseGeometries(json.geometries, shapes); - var images = this.parseImages(json.images, function () { - if (onLoad !== undefined) onLoad(object); - }); - var textures = this.parseTextures(json.textures, images); - var materials = this.parseMaterials(json.materials, textures); - var object = this.parseObject(json.object, geometries, materials, animations); - var skeletons = this.parseSkeletons(json.skeletons, object); - this.bindSkeletons(object, skeletons); // - if (onLoad !== undefined) { - var hasImages = false; - for (var uuid in images) { - if (images[uuid] instanceof HTMLImageElement) { - hasImages = true; - break; - } - } - if (hasImages === false) onLoad(object); - } - return object; - }; - _proto.parseShapes = function parseShapes(json) { - var shapes = {}; - if (json !== undefined) { - for (var i = 0, l = json.length; i < l; i++) { - var shape = new Shape().fromJSON(json[i]); - shapes[shape.uuid] = shape; - } - } - return shapes; - }; - _proto.parseSkeletons = function parseSkeletons(json, object) { - var skeletons = {}; - var bones = {}; // generate bone lookup table - object.traverse(function (child) { - if (child.isBone) bones[child.uuid] = child; - }); // create skeletons - if (json !== undefined) { - for (var i = 0, l = json.length; i < l; i++) { - var skeleton = new Skeleton().fromJSON(json[i], bones); - skeletons[skeleton.uuid] = skeleton; - } - } - return skeletons; - }; - _proto.parseGeometries = function parseGeometries(json, shapes) { - var geometries = {}; - var geometryShapes; - if (json !== undefined) { - var bufferGeometryLoader = new BufferGeometryLoader(); - for (var i = 0, l = json.length; i < l; i++) { - var geometry = void 0; - var data = json[i]; - switch (data.type) { - case 'PlaneGeometry': - case 'PlaneBufferGeometry': - geometry = new Geometries[data.type](data.width, data.height, data.widthSegments, data.heightSegments); - break; - case 'BoxGeometry': - case 'BoxBufferGeometry': - case 'CubeGeometry': - // backwards compatible - geometry = new Geometries[data.type](data.width, data.height, data.depth, data.widthSegments, data.heightSegments, data.depthSegments); - break; - case 'CircleGeometry': - case 'CircleBufferGeometry': - geometry = new Geometries[data.type](data.radius, data.segments, data.thetaStart, data.thetaLength); - break; - case 'CylinderGeometry': - case 'CylinderBufferGeometry': - geometry = new Geometries[data.type](data.radiusTop, data.radiusBottom, data.height, data.radialSegments, data.heightSegments, data.openEnded, data.thetaStart, data.thetaLength); - break; - case 'ConeGeometry': - case 'ConeBufferGeometry': - geometry = new Geometries[data.type](data.radius, data.height, data.radialSegments, data.heightSegments, data.openEnded, data.thetaStart, data.thetaLength); - break; - case 'SphereGeometry': - case 'SphereBufferGeometry': - geometry = new Geometries[data.type](data.radius, data.widthSegments, data.heightSegments, data.phiStart, data.phiLength, data.thetaStart, data.thetaLength); - break; - case 'DodecahedronGeometry': - case 'DodecahedronBufferGeometry': - case 'IcosahedronGeometry': - case 'IcosahedronBufferGeometry': - case 'OctahedronGeometry': - case 'OctahedronBufferGeometry': - case 'TetrahedronGeometry': - case 'TetrahedronBufferGeometry': - geometry = new Geometries[data.type](data.radius, data.detail); - break; - case 'RingGeometry': - case 'RingBufferGeometry': - geometry = new Geometries[data.type](data.innerRadius, data.outerRadius, data.thetaSegments, data.phiSegments, data.thetaStart, data.thetaLength); - break; - case 'TorusGeometry': - case 'TorusBufferGeometry': - geometry = new Geometries[data.type](data.radius, data.tube, data.radialSegments, data.tubularSegments, data.arc); - break; - case 'TorusKnotGeometry': - case 'TorusKnotBufferGeometry': - geometry = new Geometries[data.type](data.radius, data.tube, data.tubularSegments, data.radialSegments, data.p, data.q); - break; - case 'TubeGeometry': - case 'TubeBufferGeometry': - // This only works for built-in curves (e.g. CatmullRomCurve3). - // User defined curves or instances of CurvePath will not be deserialized. - geometry = new Geometries[data.type](new Curves[data.path.type]().fromJSON(data.path), data.tubularSegments, data.radius, data.radialSegments, data.closed); - break; - case 'LatheGeometry': - case 'LatheBufferGeometry': - geometry = new Geometries[data.type](data.points, data.segments, data.phiStart, data.phiLength); - break; - case 'PolyhedronGeometry': - case 'PolyhedronBufferGeometry': - geometry = new Geometries[data.type](data.vertices, data.indices, data.radius, data.details); - break; - case 'ShapeGeometry': - case 'ShapeBufferGeometry': - geometryShapes = []; - for (var j = 0, jl = data.shapes.length; j < jl; j++) { - var shape = shapes[data.shapes[j]]; - geometryShapes.push(shape); - } - geometry = new Geometries[data.type](geometryShapes, data.curveSegments); - break; - case 'ExtrudeGeometry': - case 'ExtrudeBufferGeometry': - geometryShapes = []; - for (var _j = 0, _jl = data.shapes.length; _j < _jl; _j++) { - var _shape = shapes[data.shapes[_j]]; - geometryShapes.push(_shape); - } - var extrudePath = data.options.extrudePath; - if (extrudePath !== undefined) { - data.options.extrudePath = new Curves[extrudePath.type]().fromJSON(extrudePath); - } - geometry = new Geometries[data.type](geometryShapes, data.options); - break; - case 'BufferGeometry': - case 'InstancedBufferGeometry': - geometry = bufferGeometryLoader.parse(data); - break; - case 'Geometry': - console.error('THREE.ObjectLoader: Loading "Geometry" is not supported anymore.'); - break; - default: - console.warn('THREE.ObjectLoader: Unsupported geometry type "' + data.type + '"'); - continue; - } - geometry.uuid = data.uuid; - if (data.name !== undefined) geometry.name = data.name; - if (geometry.isBufferGeometry === true && data.userData !== undefined) geometry.userData = data.userData; - geometries[data.uuid] = geometry; - } - } - return geometries; - }; - _proto.parseMaterials = function parseMaterials(json, textures) { - var cache = {}; // MultiMaterial - var materials = {}; - if (json !== undefined) { - var loader = new MaterialLoader(); - loader.setTextures(textures); - for (var i = 0, l = json.length; i < l; i++) { - var data = json[i]; - if (data.type === 'MultiMaterial') { - // Deprecated - var array = []; - for (var j = 0; j < data.materials.length; j++) { - var material = data.materials[j]; - if (cache[material.uuid] === undefined) { - cache[material.uuid] = loader.parse(material); - } - array.push(cache[material.uuid]); - } - materials[data.uuid] = array; - } else { - if (cache[data.uuid] === undefined) { - cache[data.uuid] = loader.parse(data); - } - materials[data.uuid] = cache[data.uuid]; - } - } - } - return materials; - }; - _proto.parseAnimations = function parseAnimations(json) { - var animations = {}; - if (json !== undefined) { - for (var i = 0; i < json.length; i++) { - var data = json[i]; - var clip = AnimationClip.parse(data); - animations[clip.uuid] = clip; - } - } - return animations; - }; - _proto.parseImages = function parseImages(json, onLoad) { - var scope = this; - var images = {}; - var loader; - function loadImage(url) { - scope.manager.itemStart(url); - return loader.load(url, function () { - scope.manager.itemEnd(url); - }, undefined, function () { - scope.manager.itemError(url); - scope.manager.itemEnd(url); - }); - } - function deserializeImage(image) { - if (typeof image === 'string') { - var url = image; - var path = /^(\/\/)|([a-z]+:(\/\/)?)/i.test(url) ? url : scope.resourcePath + url; - return loadImage(path); - } else { - if (image.data) { - return { - data: getTypedArray(image.type, image.data), - width: image.width, - height: image.height - }; - } else { - return null; - } - } - } - if (json !== undefined && json.length > 0) { - var manager = new LoadingManager(onLoad); - loader = new ImageLoader(manager); - loader.setCrossOrigin(this.crossOrigin); - for (var i = 0, il = json.length; i < il; i++) { - var image = json[i]; - var url = image.url; - if (Array.isArray(url)) { - // load array of images e.g CubeTexture - images[image.uuid] = []; - for (var j = 0, jl = url.length; j < jl; j++) { - var currentUrl = url[j]; - var deserializedImage = deserializeImage(currentUrl); - if (deserializedImage !== null) { - if (deserializedImage instanceof HTMLImageElement) { - images[image.uuid].push(deserializedImage); - } else { - // special case: handle array of data textures for cube textures - images[image.uuid].push(new DataTexture(deserializedImage.data, deserializedImage.width, deserializedImage.height)); - } - } - } - } else { - // load single image - var _deserializedImage = deserializeImage(image.url); - if (_deserializedImage !== null) { - images[image.uuid] = _deserializedImage; - } - } - } - } - return images; - }; - _proto.parseTextures = function parseTextures(json, images) { - function parseConstant(value, type) { - if (typeof value === 'number') return value; - console.warn('THREE.ObjectLoader.parseTexture: Constant should be in numeric form.', value); - return type[value]; - } - var textures = {}; - if (json !== undefined) { - for (var i = 0, l = json.length; i < l; i++) { - var data = json[i]; - if (data.image === undefined) { - console.warn('THREE.ObjectLoader: No "image" specified for', data.uuid); - } - if (images[data.image] === undefined) { - console.warn('THREE.ObjectLoader: Undefined image', data.image); - } - var texture = void 0; - var image = images[data.image]; - if (Array.isArray(image)) { - texture = new CubeTexture(image); - if (image.length === 6) texture.needsUpdate = true; - } else { - if (image && image.data) { - texture = new DataTexture(image.data, image.width, image.height); - } else { - texture = new Texture(image); - } - if (image) texture.needsUpdate = true; // textures can have undefined image data - } - texture.uuid = data.uuid; - if (data.name !== undefined) texture.name = data.name; - if (data.mapping !== undefined) texture.mapping = parseConstant(data.mapping, TEXTURE_MAPPING); - if (data.offset !== undefined) texture.offset.fromArray(data.offset); - if (data.repeat !== undefined) texture.repeat.fromArray(data.repeat); - if (data.center !== undefined) texture.center.fromArray(data.center); - if (data.rotation !== undefined) texture.rotation = data.rotation; - if (data.wrap !== undefined) { - texture.wrapS = parseConstant(data.wrap[0], TEXTURE_WRAPPING); - texture.wrapT = parseConstant(data.wrap[1], TEXTURE_WRAPPING); - } - if (data.format !== undefined) texture.format = data.format; - if (data.type !== undefined) texture.type = data.type; - if (data.encoding !== undefined) texture.encoding = data.encoding; - if (data.minFilter !== undefined) texture.minFilter = parseConstant(data.minFilter, TEXTURE_FILTER); - if (data.magFilter !== undefined) texture.magFilter = parseConstant(data.magFilter, TEXTURE_FILTER); - if (data.anisotropy !== undefined) texture.anisotropy = data.anisotropy; - if (data.flipY !== undefined) texture.flipY = data.flipY; - if (data.premultiplyAlpha !== undefined) texture.premultiplyAlpha = data.premultiplyAlpha; - if (data.unpackAlignment !== undefined) texture.unpackAlignment = data.unpackAlignment; - textures[data.uuid] = texture; - } - } - return textures; - }; - _proto.parseObject = function parseObject(data, geometries, materials, animations) { - var object; - function getGeometry(name) { - if (geometries[name] === undefined) { - console.warn('THREE.ObjectLoader: Undefined geometry', name); - } - return geometries[name]; - } - function getMaterial(name) { - if (name === undefined) return undefined; - if (Array.isArray(name)) { - var array = []; - for (var i = 0, l = name.length; i < l; i++) { - var uuid = name[i]; - if (materials[uuid] === undefined) { - console.warn('THREE.ObjectLoader: Undefined material', uuid); - } - array.push(materials[uuid]); - } - return array; - } - if (materials[name] === undefined) { - console.warn('THREE.ObjectLoader: Undefined material', name); - } - return materials[name]; - } - var geometry, material; - switch (data.type) { - case 'Scene': - object = new Scene(); - if (data.background !== undefined) { - if (Number.isInteger(data.background)) { - object.background = new Color(data.background); - } - } - if (data.fog !== undefined) { - if (data.fog.type === 'Fog') { - object.fog = new Fog(data.fog.color, data.fog.near, data.fog.far); - } else if (data.fog.type === 'FogExp2') { - object.fog = new FogExp2(data.fog.color, data.fog.density); - } - } - break; - case 'PerspectiveCamera': - object = new PerspectiveCamera(data.fov, data.aspect, data.near, data.far); - if (data.focus !== undefined) object.focus = data.focus; - if (data.zoom !== undefined) object.zoom = data.zoom; - if (data.filmGauge !== undefined) object.filmGauge = data.filmGauge; - if (data.filmOffset !== undefined) object.filmOffset = data.filmOffset; - if (data.view !== undefined) object.view = Object.assign({}, data.view); - break; - case 'OrthographicCamera': - object = new OrthographicCamera(data.left, data.right, data.top, data.bottom, data.near, data.far); - if (data.zoom !== undefined) object.zoom = data.zoom; - if (data.view !== undefined) object.view = Object.assign({}, data.view); - break; - case 'AmbientLight': - object = new AmbientLight(data.color, data.intensity); - break; - case 'DirectionalLight': - object = new DirectionalLight(data.color, data.intensity); - break; - case 'PointLight': - object = new PointLight(data.color, data.intensity, data.distance, data.decay); - break; - case 'RectAreaLight': - object = new RectAreaLight(data.color, data.intensity, data.width, data.height); - break; - case 'SpotLight': - object = new SpotLight(data.color, data.intensity, data.distance, data.angle, data.penumbra, data.decay); - break; - case 'HemisphereLight': - object = new HemisphereLight(data.color, data.groundColor, data.intensity); - break; - case 'LightProbe': - object = new LightProbe().fromJSON(data); - break; - case 'SkinnedMesh': - geometry = getGeometry(data.geometry); - material = getMaterial(data.material); - object = new SkinnedMesh(geometry, material); - if (data.bindMode !== undefined) object.bindMode = data.bindMode; - if (data.bindMatrix !== undefined) object.bindMatrix.fromArray(data.bindMatrix); - if (data.skeleton !== undefined) object.skeleton = data.skeleton; - break; - case 'Mesh': - geometry = getGeometry(data.geometry); - material = getMaterial(data.material); - object = new Mesh(geometry, material); - break; - case 'InstancedMesh': - geometry = getGeometry(data.geometry); - material = getMaterial(data.material); - var count = data.count; - var instanceMatrix = data.instanceMatrix; - object = new InstancedMesh(geometry, material, count); - object.instanceMatrix = new BufferAttribute(new Float32Array(instanceMatrix.array), 16); - break; - case 'LOD': - object = new LOD(); - break; - case 'Line': - object = new Line(getGeometry(data.geometry), getMaterial(data.material), data.mode); - break; - case 'LineLoop': - object = new LineLoop(getGeometry(data.geometry), getMaterial(data.material)); - break; - case 'LineSegments': - object = new LineSegments(getGeometry(data.geometry), getMaterial(data.material)); - break; - case 'PointCloud': - case 'Points': - object = new Points(getGeometry(data.geometry), getMaterial(data.material)); - break; - case 'Sprite': - object = new Sprite(getMaterial(data.material)); - break; - case 'Group': - object = new Group(); - break; - case 'Bone': - object = new Bone(); - break; - default: - object = new Object3D(); - } - object.uuid = data.uuid; - if (data.name !== undefined) object.name = data.name; - if (data.matrix !== undefined) { - object.matrix.fromArray(data.matrix); - if (data.matrixAutoUpdate !== undefined) object.matrixAutoUpdate = data.matrixAutoUpdate; - if (object.matrixAutoUpdate) object.matrix.decompose(object.position, object.quaternion, object.scale); - } else { - if (data.position !== undefined) object.position.fromArray(data.position); - if (data.rotation !== undefined) object.rotation.fromArray(data.rotation); - if (data.quaternion !== undefined) object.quaternion.fromArray(data.quaternion); - if (data.scale !== undefined) object.scale.fromArray(data.scale); - } - if (data.castShadow !== undefined) object.castShadow = data.castShadow; - if (data.receiveShadow !== undefined) object.receiveShadow = data.receiveShadow; - if (data.shadow) { - if (data.shadow.bias !== undefined) object.shadow.bias = data.shadow.bias; - if (data.shadow.normalBias !== undefined) object.shadow.normalBias = data.shadow.normalBias; - if (data.shadow.radius !== undefined) object.shadow.radius = data.shadow.radius; - if (data.shadow.mapSize !== undefined) object.shadow.mapSize.fromArray(data.shadow.mapSize); - if (data.shadow.camera !== undefined) object.shadow.camera = this.parseObject(data.shadow.camera); - } - if (data.visible !== undefined) object.visible = data.visible; - if (data.frustumCulled !== undefined) object.frustumCulled = data.frustumCulled; - if (data.renderOrder !== undefined) object.renderOrder = data.renderOrder; - if (data.userData !== undefined) object.userData = data.userData; - if (data.layers !== undefined) object.layers.mask = data.layers; - if (data.children !== undefined) { - var children = data.children; - for (var i = 0; i < children.length; i++) { - object.add(this.parseObject(children[i], geometries, materials, animations)); - } - } - if (data.animations !== undefined) { - var objectAnimations = data.animations; - for (var _i = 0; _i < objectAnimations.length; _i++) { - var uuid = objectAnimations[_i]; - object.animations.push(animations[uuid]); - } - } - if (data.type === 'LOD') { - if (data.autoUpdate !== undefined) object.autoUpdate = data.autoUpdate; - var levels = data.levels; - for (var l = 0; l < levels.length; l++) { - var level = levels[l]; - var child = object.getObjectByProperty('uuid', level.object); - if (child !== undefined) { - object.addLevel(child, level.distance); - } - } - } - return object; - }; - _proto.bindSkeletons = function bindSkeletons(object, skeletons) { - if (Object.keys(skeletons).length === 0) return; - object.traverse(function (child) { - if (child.isSkinnedMesh === true && child.skeleton !== undefined) { - var skeleton = skeletons[child.skeleton]; - if (skeleton === undefined) { - console.warn('THREE.ObjectLoader: No skeleton found with UUID:', child.skeleton); - } else { - child.bind(skeleton, child.bindMatrix); - } - } - }); - } - /* DEPRECATED */ - ; - _proto.setTexturePath = function setTexturePath(value) { - console.warn('THREE.ObjectLoader: .setTexturePath() has been renamed to .setResourcePath().'); - return this.setResourcePath(value); - }; - return ObjectLoader; - }(Loader); - var TEXTURE_MAPPING = { - UVMapping: UVMapping, - CubeReflectionMapping: CubeReflectionMapping, - CubeRefractionMapping: CubeRefractionMapping, - EquirectangularReflectionMapping: EquirectangularReflectionMapping, - EquirectangularRefractionMapping: EquirectangularRefractionMapping, - CubeUVReflectionMapping: CubeUVReflectionMapping, - CubeUVRefractionMapping: CubeUVRefractionMapping - }; - var TEXTURE_WRAPPING = { - RepeatWrapping: RepeatWrapping, - ClampToEdgeWrapping: ClampToEdgeWrapping, - MirroredRepeatWrapping: MirroredRepeatWrapping - }; - var TEXTURE_FILTER = { - NearestFilter: NearestFilter, - NearestMipmapNearestFilter: NearestMipmapNearestFilter, - NearestMipmapLinearFilter: NearestMipmapLinearFilter, - LinearFilter: LinearFilter, - LinearMipmapNearestFilter: LinearMipmapNearestFilter, - LinearMipmapLinearFilter: LinearMipmapLinearFilter - }; - function ImageBitmapLoader(manager) { - if (typeof createImageBitmap === 'undefined') { - console.warn('THREE.ImageBitmapLoader: createImageBitmap() not supported.'); - } - if (typeof fetch === 'undefined') { - console.warn('THREE.ImageBitmapLoader: fetch() not supported.'); - } - Loader.call(this, manager); - this.options = { - premultiplyAlpha: 'none' - }; - } - ImageBitmapLoader.prototype = Object.assign(Object.create(Loader.prototype), { - constructor: ImageBitmapLoader, - isImageBitmapLoader: true, - setOptions: function setOptions(options) { - this.options = options; - return this; - }, - load: function load(url, onLoad, onProgress, onError) { - if (url === undefined) url = ''; - if (this.path !== undefined) url = this.path + url; - url = this.manager.resolveURL(url); - var scope = this; - var cached = Cache.get(url); - if (cached !== undefined) { - scope.manager.itemStart(url); - setTimeout(function () { - if (onLoad) onLoad(cached); - scope.manager.itemEnd(url); - }, 0); - return cached; - } - var fetchOptions = {}; - fetchOptions.credentials = this.crossOrigin === 'anonymous' ? 'same-origin' : 'include'; - fetch(url, fetchOptions).then(function (res) { - return res.blob(); - }).then(function (blob) { - return createImageBitmap(blob, scope.options); - }).then(function (imageBitmap) { - Cache.add(url, imageBitmap); - if (onLoad) onLoad(imageBitmap); - scope.manager.itemEnd(url); - }).catch(function (e) { - if (onError) onError(e); - scope.manager.itemError(url); - scope.manager.itemEnd(url); - }); - scope.manager.itemStart(url); - } - }); - function ShapePath() { - this.type = 'ShapePath'; - this.color = new Color(); - this.subPaths = []; - this.currentPath = null; - } - Object.assign(ShapePath.prototype, { - moveTo: function moveTo(x, y) { - this.currentPath = new Path(); - this.subPaths.push(this.currentPath); - this.currentPath.moveTo(x, y); - return this; - }, - lineTo: function lineTo(x, y) { - this.currentPath.lineTo(x, y); - return this; - }, - quadraticCurveTo: function quadraticCurveTo(aCPx, aCPy, aX, aY) { - this.currentPath.quadraticCurveTo(aCPx, aCPy, aX, aY); - return this; - }, - bezierCurveTo: function bezierCurveTo(aCP1x, aCP1y, aCP2x, aCP2y, aX, aY) { - this.currentPath.bezierCurveTo(aCP1x, aCP1y, aCP2x, aCP2y, aX, aY); - return this; - }, - splineThru: function splineThru(pts) { - this.currentPath.splineThru(pts); - return this; - }, - toShapes: function toShapes(isCCW, noHoles) { - function toShapesNoHoles(inSubpaths) { - var shapes = []; - for (var i = 0, l = inSubpaths.length; i < l; i++) { - var _tmpPath = inSubpaths[i]; - var _tmpShape = new Shape(); - _tmpShape.curves = _tmpPath.curves; - shapes.push(_tmpShape); - } - return shapes; - } - function isPointInsidePolygon(inPt, inPolygon) { - var polyLen = inPolygon.length; // inPt on polygon contour => immediate success or - // toggling of inside/outside at every single! intersection point of an edge - // with the horizontal line through inPt, left of inPt - // not counting lowerY endpoints of edges and whole edges on that line - var inside = false; - for (var p = polyLen - 1, q = 0; q < polyLen; p = q++) { - var edgeLowPt = inPolygon[p]; - var edgeHighPt = inPolygon[q]; - var edgeDx = edgeHighPt.x - edgeLowPt.x; - var edgeDy = edgeHighPt.y - edgeLowPt.y; - if (Math.abs(edgeDy) > Number.EPSILON) { - // not parallel - if (edgeDy < 0) { - edgeLowPt = inPolygon[q]; - edgeDx = -edgeDx; - edgeHighPt = inPolygon[p]; - edgeDy = -edgeDy; - } - if (inPt.y < edgeLowPt.y || inPt.y > edgeHighPt.y) continue; - if (inPt.y === edgeLowPt.y) { - if (inPt.x === edgeLowPt.x) return true; // inPt is on contour ? - // continue; // no intersection or edgeLowPt => doesn't count !!! - } else { - var perpEdge = edgeDy * (inPt.x - edgeLowPt.x) - edgeDx * (inPt.y - edgeLowPt.y); - if (perpEdge === 0) return true; // inPt is on contour ? - if (perpEdge < 0) continue; - inside = !inside; // true intersection left of inPt - } - } else { - // parallel or collinear - if (inPt.y !== edgeLowPt.y) continue; // parallel - // edge lies on the same horizontal line as inPt - if (edgeHighPt.x <= inPt.x && inPt.x <= edgeLowPt.x || edgeLowPt.x <= inPt.x && inPt.x <= edgeHighPt.x) return true; // inPt: Point on contour ! - // continue; - } - } - return inside; - } - var isClockWise = ShapeUtils.isClockWise; - var subPaths = this.subPaths; - if (subPaths.length === 0) return []; - if (noHoles === true) return toShapesNoHoles(subPaths); - var solid, tmpPath, tmpShape; - var shapes = []; - if (subPaths.length === 1) { - tmpPath = subPaths[0]; - tmpShape = new Shape(); - tmpShape.curves = tmpPath.curves; - shapes.push(tmpShape); - return shapes; - } - var holesFirst = !isClockWise(subPaths[0].getPoints()); - holesFirst = isCCW ? !holesFirst : holesFirst; // console.log("Holes first", holesFirst); - var betterShapeHoles = []; - var newShapes = []; - var newShapeHoles = []; - var mainIdx = 0; - var tmpPoints; - newShapes[mainIdx] = undefined; - newShapeHoles[mainIdx] = []; - for (var i = 0, l = subPaths.length; i < l; i++) { - tmpPath = subPaths[i]; - tmpPoints = tmpPath.getPoints(); - solid = isClockWise(tmpPoints); - solid = isCCW ? !solid : solid; - if (solid) { - if (!holesFirst && newShapes[mainIdx]) mainIdx++; - newShapes[mainIdx] = { - s: new Shape(), - p: tmpPoints - }; - newShapes[mainIdx].s.curves = tmpPath.curves; - if (holesFirst) mainIdx++; - newShapeHoles[mainIdx] = []; //console.log('cw', i); - } else { - newShapeHoles[mainIdx].push({ - h: tmpPath, - p: tmpPoints[0] - }); //console.log('ccw', i); - } - } // only Holes? -> probably all Shapes with wrong orientation - - if (!newShapes[0]) return toShapesNoHoles(subPaths); - if (newShapes.length > 1) { - var ambiguous = false; - var toChange = []; - for (var sIdx = 0, sLen = newShapes.length; sIdx < sLen; sIdx++) { - betterShapeHoles[sIdx] = []; - } - for (var _sIdx = 0, _sLen = newShapes.length; _sIdx < _sLen; _sIdx++) { - var sho = newShapeHoles[_sIdx]; - for (var hIdx = 0; hIdx < sho.length; hIdx++) { - var ho = sho[hIdx]; - var hole_unassigned = true; - for (var s2Idx = 0; s2Idx < newShapes.length; s2Idx++) { - if (isPointInsidePolygon(ho.p, newShapes[s2Idx].p)) { - if (_sIdx !== s2Idx) toChange.push({ - froms: _sIdx, - tos: s2Idx, - hole: hIdx - }); - if (hole_unassigned) { - hole_unassigned = false; - betterShapeHoles[s2Idx].push(ho); - } else { - ambiguous = true; - } - } - } - if (hole_unassigned) { - betterShapeHoles[_sIdx].push(ho); - } - } - } // console.log("ambiguous: ", ambiguous); - - if (toChange.length > 0) { - // console.log("to change: ", toChange); - if (!ambiguous) newShapeHoles = betterShapeHoles; - } - } - var tmpHoles; - for (var _i = 0, il = newShapes.length; _i < il; _i++) { - tmpShape = newShapes[_i].s; - shapes.push(tmpShape); - tmpHoles = newShapeHoles[_i]; - for (var j = 0, jl = tmpHoles.length; j < jl; j++) { - tmpShape.holes.push(tmpHoles[j].h); - } - } //console.log("shape", shapes); - - return shapes; - } - }); - function Font(data) { - this.type = 'Font'; - this.data = data; - } - Object.assign(Font.prototype, { - isFont: true, - generateShapes: function generateShapes(text, size) { - if (size === void 0) { - size = 100; - } - var shapes = []; - var paths = createPaths(text, size, this.data); - for (var p = 0, pl = paths.length; p < pl; p++) { - Array.prototype.push.apply(shapes, paths[p].toShapes()); - } - return shapes; - } - }); - function createPaths(text, size, data) { - var chars = Array.from ? Array.from(text) : String(text).split(''); // workaround for IE11, see #13988 - var scale = size / data.resolution; - var line_height = (data.boundingBox.yMax - data.boundingBox.yMin + data.underlineThickness) * scale; - var paths = []; - var offsetX = 0, - offsetY = 0; - for (var i = 0; i < chars.length; i++) { - var char = chars[i]; - if (char === '\n') { - offsetX = 0; - offsetY -= line_height; - } else { - var ret = createPath(char, scale, offsetX, offsetY, data); - offsetX += ret.offsetX; - paths.push(ret.path); - } - } - return paths; - } - function createPath(char, scale, offsetX, offsetY, data) { - var glyph = data.glyphs[char] || data.glyphs['?']; - if (!glyph) { - console.error('THREE.Font: character "' + char + '" does not exists in font family ' + data.familyName + '.'); - return; - } - var path = new ShapePath(); - var x, y, cpx, cpy, cpx1, cpy1, cpx2, cpy2; - if (glyph.o) { - var outline = glyph._cachedOutline || (glyph._cachedOutline = glyph.o.split(' ')); - for (var i = 0, l = outline.length; i < l;) { - var action = outline[i++]; - switch (action) { - case 'm': - // moveTo - x = outline[i++] * scale + offsetX; - y = outline[i++] * scale + offsetY; - path.moveTo(x, y); - break; - case 'l': - // lineTo - x = outline[i++] * scale + offsetX; - y = outline[i++] * scale + offsetY; - path.lineTo(x, y); - break; - case 'q': - // quadraticCurveTo - cpx = outline[i++] * scale + offsetX; - cpy = outline[i++] * scale + offsetY; - cpx1 = outline[i++] * scale + offsetX; - cpy1 = outline[i++] * scale + offsetY; - path.quadraticCurveTo(cpx1, cpy1, cpx, cpy); - break; - case 'b': - // bezierCurveTo - cpx = outline[i++] * scale + offsetX; - cpy = outline[i++] * scale + offsetY; - cpx1 = outline[i++] * scale + offsetX; - cpy1 = outline[i++] * scale + offsetY; - cpx2 = outline[i++] * scale + offsetX; - cpy2 = outline[i++] * scale + offsetY; - path.bezierCurveTo(cpx1, cpy1, cpx2, cpy2, cpx, cpy); - break; - } - } - } - return { - offsetX: glyph.ha * scale, - path: path - }; - } - function FontLoader(manager) { - Loader.call(this, manager); - } - FontLoader.prototype = Object.assign(Object.create(Loader.prototype), { - constructor: FontLoader, - load: function load(url, onLoad, onProgress, onError) { - var scope = this; - var loader = new FileLoader(this.manager); - loader.setPath(this.path); - loader.setRequestHeader(this.requestHeader); - loader.setWithCredentials(scope.withCredentials); - loader.load(url, function (text) { - var json; - try { - json = JSON.parse(text); - } catch (e) { - console.warn('THREE.FontLoader: typeface.js support is being deprecated. Use typeface.json instead.'); - json = JSON.parse(text.substring(65, text.length - 2)); - } - var font = scope.parse(json); - if (onLoad) onLoad(font); - }, onProgress, onError); - }, - parse: function parse(json) { - return new Font(json); - } - }); - var _context; - var AudioContext = { - getContext: function getContext() { - if (_context === undefined) { - _context = new (window.AudioContext || window.webkitAudioContext)(); - } - return _context; - }, - setContext: function setContext(value) { - _context = value; - } - }; - function AudioLoader(manager) { - Loader.call(this, manager); - } - AudioLoader.prototype = Object.assign(Object.create(Loader.prototype), { - constructor: AudioLoader, - load: function load(url, onLoad, onProgress, onError) { - var scope = this; - var loader = new FileLoader(scope.manager); - loader.setResponseType('arraybuffer'); - loader.setPath(scope.path); - loader.setRequestHeader(scope.requestHeader); - loader.setWithCredentials(scope.withCredentials); - loader.load(url, function (buffer) { - try { - // Create a copy of the buffer. The `decodeAudioData` method - // detaches the buffer when complete, preventing reuse. - var bufferCopy = buffer.slice(0); - var context = AudioContext.getContext(); - context.decodeAudioData(bufferCopy, function (audioBuffer) { - onLoad(audioBuffer); - }); - } catch (e) { - if (onError) { - onError(e); - } else { - console.error(e); - } - scope.manager.itemError(url); - } - }, onProgress, onError); - } - }); - function HemisphereLightProbe(skyColor, groundColor, intensity) { - LightProbe.call(this, undefined, intensity); - var color1 = new Color().set(skyColor); - var color2 = new Color().set(groundColor); - var sky = new Vector3(color1.r, color1.g, color1.b); - var ground = new Vector3(color2.r, color2.g, color2.b); // without extra factor of PI in the shader, should = 1 / Math.sqrt( Math.PI ); - var c0 = Math.sqrt(Math.PI); - var c1 = c0 * Math.sqrt(0.75); - this.sh.coefficients[0].copy(sky).add(ground).multiplyScalar(c0); - this.sh.coefficients[1].copy(sky).sub(ground).multiplyScalar(c1); - } - HemisphereLightProbe.prototype = Object.assign(Object.create(LightProbe.prototype), { - constructor: HemisphereLightProbe, - isHemisphereLightProbe: true, - copy: function copy(source) { - // modifying colors not currently supported - LightProbe.prototype.copy.call(this, source); - return this; - }, - toJSON: function toJSON(meta) { - var data = LightProbe.prototype.toJSON.call(this, meta); // data.sh = this.sh.toArray(); // todo - return data; - } - }); - function AmbientLightProbe(color, intensity) { - LightProbe.call(this, undefined, intensity); - var color1 = new Color().set(color); // without extra factor of PI in the shader, would be 2 / Math.sqrt( Math.PI ); - this.sh.coefficients[0].set(color1.r, color1.g, color1.b).multiplyScalar(2 * Math.sqrt(Math.PI)); - } - AmbientLightProbe.prototype = Object.assign(Object.create(LightProbe.prototype), { - constructor: AmbientLightProbe, - isAmbientLightProbe: true, - copy: function copy(source) { - // modifying color not currently supported - LightProbe.prototype.copy.call(this, source); - return this; - }, - toJSON: function toJSON(meta) { - var data = LightProbe.prototype.toJSON.call(this, meta); // data.sh = this.sh.toArray(); // todo - return data; - } - }); - var _eyeRight = new Matrix4(); - var _eyeLeft = new Matrix4(); - function StereoCamera() { - this.type = 'StereoCamera'; - this.aspect = 1; - this.eyeSep = 0.064; - this.cameraL = new PerspectiveCamera(); - this.cameraL.layers.enable(1); - this.cameraL.matrixAutoUpdate = false; - this.cameraR = new PerspectiveCamera(); - this.cameraR.layers.enable(2); - this.cameraR.matrixAutoUpdate = false; - this._cache = { - focus: null, - fov: null, - aspect: null, - near: null, - far: null, - zoom: null, - eyeSep: null - }; - } - Object.assign(StereoCamera.prototype, { - update: function update(camera) { - var cache = this._cache; - var needsUpdate = cache.focus !== camera.focus || cache.fov !== camera.fov || cache.aspect !== camera.aspect * this.aspect || cache.near !== camera.near || cache.far !== camera.far || cache.zoom !== camera.zoom || cache.eyeSep !== this.eyeSep; - if (needsUpdate) { - cache.focus = camera.focus; - cache.fov = camera.fov; - cache.aspect = camera.aspect * this.aspect; - cache.near = camera.near; - cache.far = camera.far; - cache.zoom = camera.zoom; - cache.eyeSep = this.eyeSep; // Off-axis stereoscopic effect based on - // http://paulbourke.net/stereographics/stereorender/ - var projectionMatrix = camera.projectionMatrix.clone(); - var eyeSepHalf = cache.eyeSep / 2; - var eyeSepOnProjection = eyeSepHalf * cache.near / cache.focus; - var ymax = cache.near * Math.tan(MathUtils.DEG2RAD * cache.fov * 0.5) / cache.zoom; - var xmin, xmax; // translate xOffset - _eyeLeft.elements[12] = -eyeSepHalf; - _eyeRight.elements[12] = eyeSepHalf; // for left eye - xmin = -ymax * cache.aspect + eyeSepOnProjection; - xmax = ymax * cache.aspect + eyeSepOnProjection; - projectionMatrix.elements[0] = 2 * cache.near / (xmax - xmin); - projectionMatrix.elements[8] = (xmax + xmin) / (xmax - xmin); - this.cameraL.projectionMatrix.copy(projectionMatrix); // for right eye - xmin = -ymax * cache.aspect - eyeSepOnProjection; - xmax = ymax * cache.aspect - eyeSepOnProjection; - projectionMatrix.elements[0] = 2 * cache.near / (xmax - xmin); - projectionMatrix.elements[8] = (xmax + xmin) / (xmax - xmin); - this.cameraR.projectionMatrix.copy(projectionMatrix); - } - this.cameraL.matrixWorld.copy(camera.matrixWorld).multiply(_eyeLeft); - this.cameraR.matrixWorld.copy(camera.matrixWorld).multiply(_eyeRight); - } - }); - var Clock = /*#__PURE__*/function () { - function Clock(autoStart) { - this.autoStart = autoStart !== undefined ? autoStart : true; - this.startTime = 0; - this.oldTime = 0; - this.elapsedTime = 0; - this.running = false; - } - var _proto = Clock.prototype; - _proto.start = function start() { - this.startTime = now(); - this.oldTime = this.startTime; - this.elapsedTime = 0; - this.running = true; - }; - _proto.stop = function stop() { - this.getElapsedTime(); - this.running = false; - this.autoStart = false; - }; - _proto.getElapsedTime = function getElapsedTime() { - this.getDelta(); - return this.elapsedTime; - }; - _proto.getDelta = function getDelta() { - var diff = 0; - if (this.autoStart && !this.running) { - this.start(); - return 0; - } - if (this.running) { - var newTime = now(); - diff = (newTime - this.oldTime) / 1000; - this.oldTime = newTime; - this.elapsedTime += diff; - } - return diff; - }; - return Clock; - }(); - function now() { - return (typeof performance === 'undefined' ? Date : performance).now(); // see #10732 - } - var _position$2 = /*@__PURE__*/new Vector3(); - var _quaternion$3 = /*@__PURE__*/new Quaternion(); - var _scale$1 = /*@__PURE__*/new Vector3(); - var _orientation = /*@__PURE__*/new Vector3(); - var AudioListener = /*#__PURE__*/function (_Object3D) { - _inheritsLoose(AudioListener, _Object3D); - function AudioListener() { - var _this; - _this = _Object3D.call(this) || this; - _this.type = 'AudioListener'; - _this.context = AudioContext.getContext(); - _this.gain = _this.context.createGain(); - _this.gain.connect(_this.context.destination); - _this.filter = null; - _this.timeDelta = 0; // private - _this._clock = new Clock(); - return _this; - } - var _proto = AudioListener.prototype; - _proto.getInput = function getInput() { - return this.gain; - }; - _proto.removeFilter = function removeFilter() { - if (this.filter !== null) { - this.gain.disconnect(this.filter); - this.filter.disconnect(this.context.destination); - this.gain.connect(this.context.destination); - this.filter = null; - } - return this; - }; - _proto.getFilter = function getFilter() { - return this.filter; - }; - _proto.setFilter = function setFilter(value) { - if (this.filter !== null) { - this.gain.disconnect(this.filter); - this.filter.disconnect(this.context.destination); - } else { - this.gain.disconnect(this.context.destination); - } - this.filter = value; - this.gain.connect(this.filter); - this.filter.connect(this.context.destination); - return this; - }; - _proto.getMasterVolume = function getMasterVolume() { - return this.gain.gain.value; - }; - _proto.setMasterVolume = function setMasterVolume(value) { - this.gain.gain.setTargetAtTime(value, this.context.currentTime, 0.01); - return this; - }; - _proto.updateMatrixWorld = function updateMatrixWorld(force) { - _Object3D.prototype.updateMatrixWorld.call(this, force); - var listener = this.context.listener; - var up = this.up; - this.timeDelta = this._clock.getDelta(); - this.matrixWorld.decompose(_position$2, _quaternion$3, _scale$1); - _orientation.set(0, 0, -1).applyQuaternion(_quaternion$3); - if (listener.positionX) { - // code path for Chrome (see #14393) - var endTime = this.context.currentTime + this.timeDelta; - listener.positionX.linearRampToValueAtTime(_position$2.x, endTime); - listener.positionY.linearRampToValueAtTime(_position$2.y, endTime); - listener.positionZ.linearRampToValueAtTime(_position$2.z, endTime); - listener.forwardX.linearRampToValueAtTime(_orientation.x, endTime); - listener.forwardY.linearRampToValueAtTime(_orientation.y, endTime); - listener.forwardZ.linearRampToValueAtTime(_orientation.z, endTime); - listener.upX.linearRampToValueAtTime(up.x, endTime); - listener.upY.linearRampToValueAtTime(up.y, endTime); - listener.upZ.linearRampToValueAtTime(up.z, endTime); - } else { - listener.setPosition(_position$2.x, _position$2.y, _position$2.z); - listener.setOrientation(_orientation.x, _orientation.y, _orientation.z, up.x, up.y, up.z); - } - }; - return AudioListener; - }(Object3D); - var Audio = /*#__PURE__*/function (_Object3D) { - _inheritsLoose(Audio, _Object3D); - function Audio(listener) { - var _this; - _this = _Object3D.call(this) || this; - _this.type = 'Audio'; - _this.listener = listener; - _this.context = listener.context; - _this.gain = _this.context.createGain(); - _this.gain.connect(listener.getInput()); - _this.autoplay = false; - _this.buffer = null; - _this.detune = 0; - _this.loop = false; - _this.loopStart = 0; - _this.loopEnd = 0; - _this.offset = 0; - _this.duration = undefined; - _this.playbackRate = 1; - _this.isPlaying = false; - _this.hasPlaybackControl = true; - _this.source = null; - _this.sourceType = 'empty'; - _this._startedAt = 0; - _this._progress = 0; - _this._connected = false; - _this.filters = []; - return _this; - } - var _proto = Audio.prototype; - _proto.getOutput = function getOutput() { - return this.gain; - }; - _proto.setNodeSource = function setNodeSource(audioNode) { - this.hasPlaybackControl = false; - this.sourceType = 'audioNode'; - this.source = audioNode; - this.connect(); - return this; - }; - _proto.setMediaElementSource = function setMediaElementSource(mediaElement) { - this.hasPlaybackControl = false; - this.sourceType = 'mediaNode'; - this.source = this.context.createMediaElementSource(mediaElement); - this.connect(); - return this; - }; - _proto.setMediaStreamSource = function setMediaStreamSource(mediaStream) { - this.hasPlaybackControl = false; - this.sourceType = 'mediaStreamNode'; - this.source = this.context.createMediaStreamSource(mediaStream); - this.connect(); - return this; - }; - _proto.setBuffer = function setBuffer(audioBuffer) { - this.buffer = audioBuffer; - this.sourceType = 'buffer'; - if (this.autoplay) this.play(); - return this; - }; - _proto.play = function play(delay) { - if (delay === void 0) { - delay = 0; - } - if (this.isPlaying === true) { - console.warn('THREE.Audio: Audio is already playing.'); - return; - } - if (this.hasPlaybackControl === false) { - console.warn('THREE.Audio: this Audio has no playback control.'); - return; - } - this._startedAt = this.context.currentTime + delay; - var source = this.context.createBufferSource(); - source.buffer = this.buffer; - source.loop = this.loop; - source.loopStart = this.loopStart; - source.loopEnd = this.loopEnd; - source.onended = this.onEnded.bind(this); - source.start(this._startedAt, this._progress + this.offset, this.duration); - this.isPlaying = true; - this.source = source; - this.setDetune(this.detune); - this.setPlaybackRate(this.playbackRate); - return this.connect(); - }; - _proto.pause = function pause() { - if (this.hasPlaybackControl === false) { - console.warn('THREE.Audio: this Audio has no playback control.'); - return; - } - if (this.isPlaying === true) { - // update current progress - this._progress += Math.max(this.context.currentTime - this._startedAt, 0) * this.playbackRate; - if (this.loop === true) { - // ensure _progress does not exceed duration with looped audios - this._progress = this._progress % (this.duration || this.buffer.duration); - } - this.source.stop(); - this.source.onended = null; - this.isPlaying = false; - } - return this; - }; - _proto.stop = function stop() { - if (this.hasPlaybackControl === false) { - console.warn('THREE.Audio: this Audio has no playback control.'); - return; - } - this._progress = 0; - this.source.stop(); - this.source.onended = null; - this.isPlaying = false; - return this; - }; - _proto.connect = function connect() { - if (this.filters.length > 0) { - this.source.connect(this.filters[0]); - for (var i = 1, l = this.filters.length; i < l; i++) { - this.filters[i - 1].connect(this.filters[i]); - } - this.filters[this.filters.length - 1].connect(this.getOutput()); - } else { - this.source.connect(this.getOutput()); - } - this._connected = true; - return this; - }; - _proto.disconnect = function disconnect() { - if (this.filters.length > 0) { - this.source.disconnect(this.filters[0]); - for (var i = 1, l = this.filters.length; i < l; i++) { - this.filters[i - 1].disconnect(this.filters[i]); - } - this.filters[this.filters.length - 1].disconnect(this.getOutput()); - } else { - this.source.disconnect(this.getOutput()); - } - this._connected = false; - return this; - }; - _proto.getFilters = function getFilters() { - return this.filters; - }; - _proto.setFilters = function setFilters(value) { - if (!value) value = []; - if (this._connected === true) { - this.disconnect(); - this.filters = value.slice(); - this.connect(); - } else { - this.filters = value.slice(); - } - return this; - }; - _proto.setDetune = function setDetune(value) { - this.detune = value; - if (this.source.detune === undefined) return; // only set detune when available - if (this.isPlaying === true) { - this.source.detune.setTargetAtTime(this.detune, this.context.currentTime, 0.01); - } - return this; - }; - _proto.getDetune = function getDetune() { - return this.detune; - }; - _proto.getFilter = function getFilter() { - return this.getFilters()[0]; - }; - _proto.setFilter = function setFilter(filter) { - return this.setFilters(filter ? [filter] : []); - }; - _proto.setPlaybackRate = function setPlaybackRate(value) { - if (this.hasPlaybackControl === false) { - console.warn('THREE.Audio: this Audio has no playback control.'); - return; - } - this.playbackRate = value; - if (this.isPlaying === true) { - this.source.playbackRate.setTargetAtTime(this.playbackRate, this.context.currentTime, 0.01); - } - return this; - }; - _proto.getPlaybackRate = function getPlaybackRate() { - return this.playbackRate; - }; - _proto.onEnded = function onEnded() { - this.isPlaying = false; - }; - _proto.getLoop = function getLoop() { - if (this.hasPlaybackControl === false) { - console.warn('THREE.Audio: this Audio has no playback control.'); - return false; - } - return this.loop; - }; - _proto.setLoop = function setLoop(value) { - if (this.hasPlaybackControl === false) { - console.warn('THREE.Audio: this Audio has no playback control.'); - return; - } - this.loop = value; - if (this.isPlaying === true) { - this.source.loop = this.loop; - } - return this; - }; - _proto.setLoopStart = function setLoopStart(value) { - this.loopStart = value; - return this; - }; - _proto.setLoopEnd = function setLoopEnd(value) { - this.loopEnd = value; - return this; - }; - _proto.getVolume = function getVolume() { - return this.gain.gain.value; - }; - _proto.setVolume = function setVolume(value) { - this.gain.gain.setTargetAtTime(value, this.context.currentTime, 0.01); - return this; - }; - return Audio; - }(Object3D); - var _position$3 = /*@__PURE__*/new Vector3(); - var _quaternion$4 = /*@__PURE__*/new Quaternion(); - var _scale$2 = /*@__PURE__*/new Vector3(); - var _orientation$1 = /*@__PURE__*/new Vector3(); - var PositionalAudio = /*#__PURE__*/function (_Audio) { - _inheritsLoose(PositionalAudio, _Audio); - function PositionalAudio(listener) { - var _this; - _this = _Audio.call(this, listener) || this; - _this.panner = _this.context.createPanner(); - _this.panner.panningModel = 'HRTF'; - _this.panner.connect(_this.gain); - return _this; - } - var _proto = PositionalAudio.prototype; - _proto.getOutput = function getOutput() { - return this.panner; - }; - _proto.getRefDistance = function getRefDistance() { - return this.panner.refDistance; - }; - _proto.setRefDistance = function setRefDistance(value) { - this.panner.refDistance = value; - return this; - }; - _proto.getRolloffFactor = function getRolloffFactor() { - return this.panner.rolloffFactor; - }; - _proto.setRolloffFactor = function setRolloffFactor(value) { - this.panner.rolloffFactor = value; - return this; - }; - _proto.getDistanceModel = function getDistanceModel() { - return this.panner.distanceModel; - }; - _proto.setDistanceModel = function setDistanceModel(value) { - this.panner.distanceModel = value; - return this; - }; - _proto.getMaxDistance = function getMaxDistance() { - return this.panner.maxDistance; - }; - _proto.setMaxDistance = function setMaxDistance(value) { - this.panner.maxDistance = value; - return this; - }; - _proto.setDirectionalCone = function setDirectionalCone(coneInnerAngle, coneOuterAngle, coneOuterGain) { - this.panner.coneInnerAngle = coneInnerAngle; - this.panner.coneOuterAngle = coneOuterAngle; - this.panner.coneOuterGain = coneOuterGain; - return this; - }; - _proto.updateMatrixWorld = function updateMatrixWorld(force) { - _Audio.prototype.updateMatrixWorld.call(this, force); - if (this.hasPlaybackControl === true && this.isPlaying === false) return; - this.matrixWorld.decompose(_position$3, _quaternion$4, _scale$2); - _orientation$1.set(0, 0, 1).applyQuaternion(_quaternion$4); - var panner = this.panner; - if (panner.positionX) { - // code path for Chrome and Firefox (see #14393) - var endTime = this.context.currentTime + this.listener.timeDelta; - panner.positionX.linearRampToValueAtTime(_position$3.x, endTime); - panner.positionY.linearRampToValueAtTime(_position$3.y, endTime); - panner.positionZ.linearRampToValueAtTime(_position$3.z, endTime); - panner.orientationX.linearRampToValueAtTime(_orientation$1.x, endTime); - panner.orientationY.linearRampToValueAtTime(_orientation$1.y, endTime); - panner.orientationZ.linearRampToValueAtTime(_orientation$1.z, endTime); - } else { - panner.setPosition(_position$3.x, _position$3.y, _position$3.z); - panner.setOrientation(_orientation$1.x, _orientation$1.y, _orientation$1.z); - } - }; - return PositionalAudio; - }(Audio); - var AudioAnalyser = /*#__PURE__*/function () { - function AudioAnalyser(audio, fftSize) { - if (fftSize === void 0) { - fftSize = 2048; - } - this.analyser = audio.context.createAnalyser(); - this.analyser.fftSize = fftSize; - this.data = new Uint8Array(this.analyser.frequencyBinCount); - audio.getOutput().connect(this.analyser); - } - var _proto = AudioAnalyser.prototype; - _proto.getFrequencyData = function getFrequencyData() { - this.analyser.getByteFrequencyData(this.data); - return this.data; - }; - _proto.getAverageFrequency = function getAverageFrequency() { - var value = 0; - var data = this.getFrequencyData(); - for (var i = 0; i < data.length; i++) { - value += data[i]; - } - return value / data.length; - }; - return AudioAnalyser; - }(); - function PropertyMixer(binding, typeName, valueSize) { - this.binding = binding; - this.valueSize = valueSize; - var mixFunction, mixFunctionAdditive, setIdentity; // buffer layout: [ incoming | accu0 | accu1 | orig | addAccu | (optional work) ] - // - // interpolators can use .buffer as their .result - // the data then goes to 'incoming' - // - // 'accu0' and 'accu1' are used frame-interleaved for - // the cumulative result and are compared to detect - // changes - // - // 'orig' stores the original state of the property - // - // 'add' is used for additive cumulative results - // - // 'work' is optional and is only present for quaternion types. It is used - // to store intermediate quaternion multiplication results - switch (typeName) { - case 'quaternion': - mixFunction = this._slerp; - mixFunctionAdditive = this._slerpAdditive; - setIdentity = this._setAdditiveIdentityQuaternion; - this.buffer = new Float64Array(valueSize * 6); - this._workIndex = 5; - break; - case 'string': - case 'bool': - mixFunction = this._select; // Use the regular mix function and for additive on these types, - // additive is not relevant for non-numeric types - mixFunctionAdditive = this._select; - setIdentity = this._setAdditiveIdentityOther; - this.buffer = new Array(valueSize * 5); - break; - default: - mixFunction = this._lerp; - mixFunctionAdditive = this._lerpAdditive; - setIdentity = this._setAdditiveIdentityNumeric; - this.buffer = new Float64Array(valueSize * 5); - } - this._mixBufferRegion = mixFunction; - this._mixBufferRegionAdditive = mixFunctionAdditive; - this._setIdentity = setIdentity; - this._origIndex = 3; - this._addIndex = 4; - this.cumulativeWeight = 0; - this.cumulativeWeightAdditive = 0; - this.useCount = 0; - this.referenceCount = 0; - } - Object.assign(PropertyMixer.prototype, { - // accumulate data in the 'incoming' region into 'accu' - accumulate: function accumulate(accuIndex, weight) { - // note: happily accumulating nothing when weight = 0, the caller knows - // the weight and shouldn't have made the call in the first place - var buffer = this.buffer, - stride = this.valueSize, - offset = accuIndex * stride + stride; - var currentWeight = this.cumulativeWeight; - if (currentWeight === 0) { - // accuN := incoming * weight - for (var i = 0; i !== stride; ++i) { - buffer[offset + i] = buffer[i]; - } - currentWeight = weight; - } else { - // accuN := accuN + incoming * weight - currentWeight += weight; - var mix = weight / currentWeight; - this._mixBufferRegion(buffer, offset, 0, mix, stride); - } - this.cumulativeWeight = currentWeight; - }, - // accumulate data in the 'incoming' region into 'add' - accumulateAdditive: function accumulateAdditive(weight) { - var buffer = this.buffer, - stride = this.valueSize, - offset = stride * this._addIndex; - if (this.cumulativeWeightAdditive === 0) { - // add = identity - this._setIdentity(); - } // add := add + incoming * weight - - this._mixBufferRegionAdditive(buffer, offset, 0, weight, stride); - this.cumulativeWeightAdditive += weight; - }, - // apply the state of 'accu' to the binding when accus differ - apply: function apply(accuIndex) { - var stride = this.valueSize, - buffer = this.buffer, - offset = accuIndex * stride + stride, - weight = this.cumulativeWeight, - weightAdditive = this.cumulativeWeightAdditive, - binding = this.binding; - this.cumulativeWeight = 0; - this.cumulativeWeightAdditive = 0; - if (weight < 1) { - // accuN := accuN + original * ( 1 - cumulativeWeight ) - var originalValueOffset = stride * this._origIndex; - this._mixBufferRegion(buffer, offset, originalValueOffset, 1 - weight, stride); - } - if (weightAdditive > 0) { - // accuN := accuN + additive accuN - this._mixBufferRegionAdditive(buffer, offset, this._addIndex * stride, 1, stride); - } - for (var i = stride, e = stride + stride; i !== e; ++i) { - if (buffer[i] !== buffer[i + stride]) { - // value has changed -> update scene graph - binding.setValue(buffer, offset); - break; - } - } - }, - // remember the state of the bound property and copy it to both accus - saveOriginalState: function saveOriginalState() { - var binding = this.binding; - var buffer = this.buffer, - stride = this.valueSize, - originalValueOffset = stride * this._origIndex; - binding.getValue(buffer, originalValueOffset); // accu[0..1] := orig -- initially detect changes against the original - for (var i = stride, e = originalValueOffset; i !== e; ++i) { - buffer[i] = buffer[originalValueOffset + i % stride]; - } // Add to identity for additive - - this._setIdentity(); - this.cumulativeWeight = 0; - this.cumulativeWeightAdditive = 0; - }, - // apply the state previously taken via 'saveOriginalState' to the binding - restoreOriginalState: function restoreOriginalState() { - var originalValueOffset = this.valueSize * 3; - this.binding.setValue(this.buffer, originalValueOffset); - }, - _setAdditiveIdentityNumeric: function _setAdditiveIdentityNumeric() { - var startIndex = this._addIndex * this.valueSize; - var endIndex = startIndex + this.valueSize; - for (var i = startIndex; i < endIndex; i++) { - this.buffer[i] = 0; - } - }, - _setAdditiveIdentityQuaternion: function _setAdditiveIdentityQuaternion() { - this._setAdditiveIdentityNumeric(); - this.buffer[this._addIndex * this.valueSize + 3] = 1; - }, - _setAdditiveIdentityOther: function _setAdditiveIdentityOther() { - var startIndex = this._origIndex * this.valueSize; - var targetIndex = this._addIndex * this.valueSize; - for (var i = 0; i < this.valueSize; i++) { - this.buffer[targetIndex + i] = this.buffer[startIndex + i]; - } - }, - // mix functions - _select: function _select(buffer, dstOffset, srcOffset, t, stride) { - if (t >= 0.5) { - for (var i = 0; i !== stride; ++i) { - buffer[dstOffset + i] = buffer[srcOffset + i]; - } - } - }, - _slerp: function _slerp(buffer, dstOffset, srcOffset, t) { - Quaternion.slerpFlat(buffer, dstOffset, buffer, dstOffset, buffer, srcOffset, t); - }, - _slerpAdditive: function _slerpAdditive(buffer, dstOffset, srcOffset, t, stride) { - var workOffset = this._workIndex * stride; // Store result in intermediate buffer offset - Quaternion.multiplyQuaternionsFlat(buffer, workOffset, buffer, dstOffset, buffer, srcOffset); // Slerp to the intermediate result - Quaternion.slerpFlat(buffer, dstOffset, buffer, dstOffset, buffer, workOffset, t); - }, - _lerp: function _lerp(buffer, dstOffset, srcOffset, t, stride) { - var s = 1 - t; - for (var i = 0; i !== stride; ++i) { - var j = dstOffset + i; - buffer[j] = buffer[j] * s + buffer[srcOffset + i] * t; - } - }, - _lerpAdditive: function _lerpAdditive(buffer, dstOffset, srcOffset, t, stride) { - for (var i = 0; i !== stride; ++i) { - var j = dstOffset + i; - buffer[j] = buffer[j] + buffer[srcOffset + i] * t; - } - } - }); - // Characters [].:/ are reserved for track binding syntax. - var _RESERVED_CHARS_RE = '\\[\\]\\.:\\/'; - var _reservedRe = new RegExp('[' + _RESERVED_CHARS_RE + ']', 'g'); // Attempts to allow node names from any language. ES5's `\w` regexp matches - // only latin characters, and the unicode \p{L} is not yet supported. So - // instead, we exclude reserved characters and match everything else. - - var _wordChar = '[^' + _RESERVED_CHARS_RE + ']'; - var _wordCharOrDot = '[^' + _RESERVED_CHARS_RE.replace('\\.', '') + ']'; // Parent directories, delimited by '/' or ':'. Currently unused, but must - // be matched to parse the rest of the track name. - - var _directoryRe = /((?:WC+[\/:])*)/.source.replace('WC', _wordChar); // Target node. May contain word characters (a-zA-Z0-9_) and '.' or '-'. - - var _nodeRe = /(WCOD+)?/.source.replace('WCOD', _wordCharOrDot); // Object on target node, and accessor. May not contain reserved - // characters. Accessor may contain any character except closing bracket. - - var _objectRe = /(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace('WC', _wordChar); // Property and accessor. May not contain reserved characters. Accessor may - // contain any non-bracket characters. - - var _propertyRe = /\.(WC+)(?:\[(.+)\])?/.source.replace('WC', _wordChar); - var _trackRe = new RegExp('' + '^' + _directoryRe + _nodeRe + _objectRe + _propertyRe + '$'); - var _supportedObjectNames = ['material', 'materials', 'bones']; - function Composite(targetGroup, path, optionalParsedPath) { - var parsedPath = optionalParsedPath || PropertyBinding.parseTrackName(path); - this._targetGroup = targetGroup; - this._bindings = targetGroup.subscribe_(path, parsedPath); - } - Object.assign(Composite.prototype, { - getValue: function getValue(array, offset) { - this.bind(); // bind all binding - var firstValidIndex = this._targetGroup.nCachedObjects_, - binding = this._bindings[firstValidIndex]; // and only call .getValue on the first - if (binding !== undefined) binding.getValue(array, offset); - }, - setValue: function setValue(array, offset) { - var bindings = this._bindings; - for (var i = this._targetGroup.nCachedObjects_, n = bindings.length; i !== n; ++i) { - bindings[i].setValue(array, offset); - } - }, - bind: function bind() { - var bindings = this._bindings; - for (var i = this._targetGroup.nCachedObjects_, n = bindings.length; i !== n; ++i) { - bindings[i].bind(); - } - }, - unbind: function unbind() { - var bindings = this._bindings; - for (var i = this._targetGroup.nCachedObjects_, n = bindings.length; i !== n; ++i) { - bindings[i].unbind(); - } - } - }); - function PropertyBinding(rootNode, path, parsedPath) { - this.path = path; - this.parsedPath = parsedPath || PropertyBinding.parseTrackName(path); - this.node = PropertyBinding.findNode(rootNode, this.parsedPath.nodeName) || rootNode; - this.rootNode = rootNode; - } - Object.assign(PropertyBinding, { - Composite: Composite, - create: function create(root, path, parsedPath) { - if (!(root && root.isAnimationObjectGroup)) { - return new PropertyBinding(root, path, parsedPath); - } else { - return new PropertyBinding.Composite(root, path, parsedPath); - } - }, - /** - * Replaces spaces with underscores and removes unsupported characters from - * node names, to ensure compatibility with parseTrackName(). - * - * @param {string} name Node name to be sanitized. - * @return {string} - */ - sanitizeNodeName: function sanitizeNodeName(name) { - return name.replace(/\s/g, '_').replace(_reservedRe, ''); - }, - parseTrackName: function parseTrackName(trackName) { - var matches = _trackRe.exec(trackName); - if (!matches) { - throw new Error('PropertyBinding: Cannot parse trackName: ' + trackName); - } - var results = { - // directoryName: matches[ 1 ], // (tschw) currently unused - nodeName: matches[2], - objectName: matches[3], - objectIndex: matches[4], - propertyName: matches[5], - // required - propertyIndex: matches[6] - }; - var lastDot = results.nodeName && results.nodeName.lastIndexOf('.'); - if (lastDot !== undefined && lastDot !== -1) { - var objectName = results.nodeName.substring(lastDot + 1); // Object names must be checked against an allowlist. Otherwise, there - // is no way to parse 'foo.bar.baz': 'baz' must be a property, but - // 'bar' could be the objectName, or part of a nodeName (which can - // include '.' characters). - if (_supportedObjectNames.indexOf(objectName) !== -1) { - results.nodeName = results.nodeName.substring(0, lastDot); - results.objectName = objectName; - } - } - if (results.propertyName === null || results.propertyName.length === 0) { - throw new Error('PropertyBinding: can not parse propertyName from trackName: ' + trackName); - } - return results; - }, - findNode: function findNode(root, nodeName) { - if (!nodeName || nodeName === '' || nodeName === '.' || nodeName === -1 || nodeName === root.name || nodeName === root.uuid) { - return root; - } // search into skeleton bones. - - if (root.skeleton) { - var bone = root.skeleton.getBoneByName(nodeName); - if (bone !== undefined) { - return bone; - } - } // search into node subtree. - - if (root.children) { - var searchNodeSubtree = function searchNodeSubtree(children) { - for (var i = 0; i < children.length; i++) { - var childNode = children[i]; - if (childNode.name === nodeName || childNode.uuid === nodeName) { - return childNode; - } - var result = searchNodeSubtree(childNode.children); - if (result) return result; - } - return null; - }; - var subTreeNode = searchNodeSubtree(root.children); - if (subTreeNode) { - return subTreeNode; - } - } - return null; - } - }); - Object.assign(PropertyBinding.prototype, { - // prototype, continued - // these are used to "bind" a nonexistent property - _getValue_unavailable: function _getValue_unavailable() {}, - _setValue_unavailable: function _setValue_unavailable() {}, - BindingType: { - Direct: 0, - EntireArray: 1, - ArrayElement: 2, - HasFromToArray: 3 - }, - Versioning: { - None: 0, - NeedsUpdate: 1, - MatrixWorldNeedsUpdate: 2 - }, - GetterByBindingType: [function getValue_direct(buffer, offset) { - buffer[offset] = this.node[this.propertyName]; - }, function getValue_array(buffer, offset) { - var source = this.resolvedProperty; - for (var i = 0, n = source.length; i !== n; ++i) { - buffer[offset++] = source[i]; - } - }, function getValue_arrayElement(buffer, offset) { - buffer[offset] = this.resolvedProperty[this.propertyIndex]; - }, function getValue_toArray(buffer, offset) { - this.resolvedProperty.toArray(buffer, offset); - }], - SetterByBindingTypeAndVersioning: [[// Direct - function setValue_direct(buffer, offset) { - this.targetObject[this.propertyName] = buffer[offset]; - }, function setValue_direct_setNeedsUpdate(buffer, offset) { - this.targetObject[this.propertyName] = buffer[offset]; - this.targetObject.needsUpdate = true; - }, function setValue_direct_setMatrixWorldNeedsUpdate(buffer, offset) { - this.targetObject[this.propertyName] = buffer[offset]; - this.targetObject.matrixWorldNeedsUpdate = true; - }], [// EntireArray - function setValue_array(buffer, offset) { - var dest = this.resolvedProperty; - for (var i = 0, n = dest.length; i !== n; ++i) { - dest[i] = buffer[offset++]; - } - }, function setValue_array_setNeedsUpdate(buffer, offset) { - var dest = this.resolvedProperty; - for (var i = 0, n = dest.length; i !== n; ++i) { - dest[i] = buffer[offset++]; - } - this.targetObject.needsUpdate = true; - }, function setValue_array_setMatrixWorldNeedsUpdate(buffer, offset) { - var dest = this.resolvedProperty; - for (var i = 0, n = dest.length; i !== n; ++i) { - dest[i] = buffer[offset++]; - } - this.targetObject.matrixWorldNeedsUpdate = true; - }], [// ArrayElement - function setValue_arrayElement(buffer, offset) { - this.resolvedProperty[this.propertyIndex] = buffer[offset]; - }, function setValue_arrayElement_setNeedsUpdate(buffer, offset) { - this.resolvedProperty[this.propertyIndex] = buffer[offset]; - this.targetObject.needsUpdate = true; - }, function setValue_arrayElement_setMatrixWorldNeedsUpdate(buffer, offset) { - this.resolvedProperty[this.propertyIndex] = buffer[offset]; - this.targetObject.matrixWorldNeedsUpdate = true; - }], [// HasToFromArray - function setValue_fromArray(buffer, offset) { - this.resolvedProperty.fromArray(buffer, offset); - }, function setValue_fromArray_setNeedsUpdate(buffer, offset) { - this.resolvedProperty.fromArray(buffer, offset); - this.targetObject.needsUpdate = true; - }, function setValue_fromArray_setMatrixWorldNeedsUpdate(buffer, offset) { - this.resolvedProperty.fromArray(buffer, offset); - this.targetObject.matrixWorldNeedsUpdate = true; - }]], - getValue: function getValue_unbound(targetArray, offset) { - this.bind(); - this.getValue(targetArray, offset); // Note: This class uses a State pattern on a per-method basis: - // 'bind' sets 'this.getValue' / 'setValue' and shadows the - // prototype version of these methods with one that represents - // the bound state. When the property is not found, the methods - // become no-ops. - }, - setValue: function getValue_unbound(sourceArray, offset) { - this.bind(); - this.setValue(sourceArray, offset); - }, - // create getter / setter pair for a property in the scene graph - bind: function bind() { - var targetObject = this.node; - var parsedPath = this.parsedPath; - var objectName = parsedPath.objectName; - var propertyName = parsedPath.propertyName; - var propertyIndex = parsedPath.propertyIndex; - if (!targetObject) { - targetObject = PropertyBinding.findNode(this.rootNode, parsedPath.nodeName) || this.rootNode; - this.node = targetObject; - } // set fail state so we can just 'return' on error - - this.getValue = this._getValue_unavailable; - this.setValue = this._setValue_unavailable; // ensure there is a value node - if (!targetObject) { - console.error('THREE.PropertyBinding: Trying to update node for track: ' + this.path + ' but it wasn\'t found.'); - return; - } - if (objectName) { - var objectIndex = parsedPath.objectIndex; // special cases were we need to reach deeper into the hierarchy to get the face materials.... - switch (objectName) { - case 'materials': - if (!targetObject.material) { - console.error('THREE.PropertyBinding: Can not bind to material as node does not have a material.', this); - return; - } - if (!targetObject.material.materials) { - console.error('THREE.PropertyBinding: Can not bind to material.materials as node.material does not have a materials array.', this); - return; - } - targetObject = targetObject.material.materials; - break; - case 'bones': - if (!targetObject.skeleton) { - console.error('THREE.PropertyBinding: Can not bind to bones as node does not have a skeleton.', this); - return; - } // potential future optimization: skip this if propertyIndex is already an integer - // and convert the integer string to a true integer. - - targetObject = targetObject.skeleton.bones; // support resolving morphTarget names into indices. - for (var i = 0; i < targetObject.length; i++) { - if (targetObject[i].name === objectIndex) { - objectIndex = i; - break; - } - } - break; - default: - if (targetObject[objectName] === undefined) { - console.error('THREE.PropertyBinding: Can not bind to objectName of node undefined.', this); - return; - } - targetObject = targetObject[objectName]; - } - if (objectIndex !== undefined) { - if (targetObject[objectIndex] === undefined) { - console.error('THREE.PropertyBinding: Trying to bind to objectIndex of objectName, but is undefined.', this, targetObject); - return; - } - targetObject = targetObject[objectIndex]; - } - } // resolve property - - var nodeProperty = targetObject[propertyName]; - if (nodeProperty === undefined) { - var nodeName = parsedPath.nodeName; - console.error('THREE.PropertyBinding: Trying to update property for track: ' + nodeName + '.' + propertyName + ' but it wasn\'t found.', targetObject); - return; - } // determine versioning scheme - - var versioning = this.Versioning.None; - this.targetObject = targetObject; - if (targetObject.needsUpdate !== undefined) { - // material - versioning = this.Versioning.NeedsUpdate; - } else if (targetObject.matrixWorldNeedsUpdate !== undefined) { - // node transform - versioning = this.Versioning.MatrixWorldNeedsUpdate; - } // determine how the property gets bound - - var bindingType = this.BindingType.Direct; - if (propertyIndex !== undefined) { - // access a sub element of the property array (only primitives are supported right now) - if (propertyName === 'morphTargetInfluences') { - // potential optimization, skip this if propertyIndex is already an integer, and convert the integer string to a true integer. - // support resolving morphTarget names into indices. - if (!targetObject.geometry) { - console.error('THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.', this); - return; - } - if (targetObject.geometry.isBufferGeometry) { - if (!targetObject.geometry.morphAttributes) { - console.error('THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.morphAttributes.', this); - return; - } - if (targetObject.morphTargetDictionary[propertyIndex] !== undefined) { - propertyIndex = targetObject.morphTargetDictionary[propertyIndex]; - } - } else { - console.error('THREE.PropertyBinding: Can not bind to morphTargetInfluences on THREE.Geometry. Use THREE.BufferGeometry instead.', this); - return; - } - } - bindingType = this.BindingType.ArrayElement; - this.resolvedProperty = nodeProperty; - this.propertyIndex = propertyIndex; - } else if (nodeProperty.fromArray !== undefined && nodeProperty.toArray !== undefined) { - // must use copy for Object3D.Euler/Quaternion - bindingType = this.BindingType.HasFromToArray; - this.resolvedProperty = nodeProperty; - } else if (Array.isArray(nodeProperty)) { - bindingType = this.BindingType.EntireArray; - this.resolvedProperty = nodeProperty; - } else { - this.propertyName = propertyName; - } // select getter / setter - - this.getValue = this.GetterByBindingType[bindingType]; - this.setValue = this.SetterByBindingTypeAndVersioning[bindingType][versioning]; - }, - unbind: function unbind() { - this.node = null; // back to the prototype version of getValue / setValue - // note: avoiding to mutate the shape of 'this' via 'delete' - this.getValue = this._getValue_unbound; - this.setValue = this._setValue_unbound; - } - }); // DECLARE ALIAS AFTER assign prototype - Object.assign(PropertyBinding.prototype, { - // initial state of these methods that calls 'bind' - _getValue_unbound: PropertyBinding.prototype.getValue, - _setValue_unbound: PropertyBinding.prototype.setValue - }); - /** - * - * A group of objects that receives a shared animation state. - * - * Usage: - * - * - Add objects you would otherwise pass as 'root' to the - * constructor or the .clipAction method of AnimationMixer. - * - * - Instead pass this object as 'root'. - * - * - You can also add and remove objects later when the mixer - * is running. - * - * Note: - * - * Objects of this class appear as one object to the mixer, - * so cache control of the individual objects must be done - * on the group. - * - * Limitation: - * - * - The animated properties must be compatible among the - * all objects in the group. - * - * - A single property can either be controlled through a - * target group or directly, but not both. - */ - function AnimationObjectGroup() { - this.uuid = MathUtils.generateUUID(); // cached objects followed by the active ones - this._objects = Array.prototype.slice.call(arguments); - this.nCachedObjects_ = 0; // threshold - // note: read by PropertyBinding.Composite - var indices = {}; - this._indicesByUUID = indices; // for bookkeeping - for (var i = 0, n = arguments.length; i !== n; ++i) { - indices[arguments[i].uuid] = i; - } - this._paths = []; // inside: string - this._parsedPaths = []; // inside: { we don't care, here } - this._bindings = []; // inside: Array< PropertyBinding > - this._bindingsIndicesByPath = {}; // inside: indices in these arrays - var scope = this; - this.stats = { - objects: { - get total() { - return scope._objects.length; - }, - get inUse() { - return this.total - scope.nCachedObjects_; - } - }, - get bindingsPerObject() { - return scope._bindings.length; - } - }; - } - Object.assign(AnimationObjectGroup.prototype, { - isAnimationObjectGroup: true, - add: function add() { - var objects = this._objects, - indicesByUUID = this._indicesByUUID, - paths = this._paths, - parsedPaths = this._parsedPaths, - bindings = this._bindings, - nBindings = bindings.length; - var knownObject = undefined, - nObjects = objects.length, - nCachedObjects = this.nCachedObjects_; - for (var i = 0, n = arguments.length; i !== n; ++i) { - var object = arguments[i], - uuid = object.uuid; - var index = indicesByUUID[uuid]; - if (index === undefined) { - // unknown object -> add it to the ACTIVE region - index = nObjects++; - indicesByUUID[uuid] = index; - objects.push(object); // accounting is done, now do the same for all bindings - for (var j = 0, m = nBindings; j !== m; ++j) { - bindings[j].push(new PropertyBinding(object, paths[j], parsedPaths[j])); - } - } else if (index < nCachedObjects) { - knownObject = objects[index]; // move existing object to the ACTIVE region - var firstActiveIndex = --nCachedObjects, - lastCachedObject = objects[firstActiveIndex]; - indicesByUUID[lastCachedObject.uuid] = index; - objects[index] = lastCachedObject; - indicesByUUID[uuid] = firstActiveIndex; - objects[firstActiveIndex] = object; // accounting is done, now do the same for all bindings - for (var _j = 0, _m = nBindings; _j !== _m; ++_j) { - var bindingsForPath = bindings[_j], - lastCached = bindingsForPath[firstActiveIndex]; - var binding = bindingsForPath[index]; - bindingsForPath[index] = lastCached; - if (binding === undefined) { - // since we do not bother to create new bindings - // for objects that are cached, the binding may - // or may not exist - binding = new PropertyBinding(object, paths[_j], parsedPaths[_j]); - } - bindingsForPath[firstActiveIndex] = binding; - } - } else if (objects[index] !== knownObject) { - console.error('THREE.AnimationObjectGroup: Different objects with the same UUID ' + 'detected. Clean the caches or recreate your infrastructure when reloading scenes.'); - } // else the object is already where we want it to be - } // for arguments - - this.nCachedObjects_ = nCachedObjects; - }, - remove: function remove() { - var objects = this._objects, - indicesByUUID = this._indicesByUUID, - bindings = this._bindings, - nBindings = bindings.length; - var nCachedObjects = this.nCachedObjects_; - for (var i = 0, n = arguments.length; i !== n; ++i) { - var object = arguments[i], - uuid = object.uuid, - index = indicesByUUID[uuid]; - if (index !== undefined && index >= nCachedObjects) { - // move existing object into the CACHED region - var lastCachedIndex = nCachedObjects++, - firstActiveObject = objects[lastCachedIndex]; - indicesByUUID[firstActiveObject.uuid] = index; - objects[index] = firstActiveObject; - indicesByUUID[uuid] = lastCachedIndex; - objects[lastCachedIndex] = object; // accounting is done, now do the same for all bindings - for (var j = 0, m = nBindings; j !== m; ++j) { - var bindingsForPath = bindings[j], - firstActive = bindingsForPath[lastCachedIndex], - binding = bindingsForPath[index]; - bindingsForPath[index] = firstActive; - bindingsForPath[lastCachedIndex] = binding; - } - } - } // for arguments - - this.nCachedObjects_ = nCachedObjects; - }, - // remove & forget - uncache: function uncache() { - var objects = this._objects, - indicesByUUID = this._indicesByUUID, - bindings = this._bindings, - nBindings = bindings.length; - var nCachedObjects = this.nCachedObjects_, - nObjects = objects.length; - for (var i = 0, n = arguments.length; i !== n; ++i) { - var object = arguments[i], - uuid = object.uuid, - index = indicesByUUID[uuid]; - if (index !== undefined) { - delete indicesByUUID[uuid]; - if (index < nCachedObjects) { - // object is cached, shrink the CACHED region - var firstActiveIndex = --nCachedObjects, - lastCachedObject = objects[firstActiveIndex], - lastIndex = --nObjects, - lastObject = objects[lastIndex]; // last cached object takes this object's place - indicesByUUID[lastCachedObject.uuid] = index; - objects[index] = lastCachedObject; // last object goes to the activated slot and pop - indicesByUUID[lastObject.uuid] = firstActiveIndex; - objects[firstActiveIndex] = lastObject; - objects.pop(); // accounting is done, now do the same for all bindings - for (var j = 0, m = nBindings; j !== m; ++j) { - var bindingsForPath = bindings[j], - lastCached = bindingsForPath[firstActiveIndex], - last = bindingsForPath[lastIndex]; - bindingsForPath[index] = lastCached; - bindingsForPath[firstActiveIndex] = last; - bindingsForPath.pop(); - } - } else { - // object is active, just swap with the last and pop - var _lastIndex = --nObjects, - _lastObject = objects[_lastIndex]; - if (_lastIndex > 0) { - indicesByUUID[_lastObject.uuid] = index; - } - objects[index] = _lastObject; - objects.pop(); // accounting is done, now do the same for all bindings - for (var _j2 = 0, _m2 = nBindings; _j2 !== _m2; ++_j2) { - var _bindingsForPath = bindings[_j2]; - _bindingsForPath[index] = _bindingsForPath[_lastIndex]; - _bindingsForPath.pop(); - } - } // cached or active - } // if object is known - } // for arguments - - this.nCachedObjects_ = nCachedObjects; - }, - // Internal interface used by befriended PropertyBinding.Composite: - subscribe_: function subscribe_(path, parsedPath) { - // returns an array of bindings for the given path that is changed - // according to the contained objects in the group - var indicesByPath = this._bindingsIndicesByPath; - var index = indicesByPath[path]; - var bindings = this._bindings; - if (index !== undefined) return bindings[index]; - var paths = this._paths, - parsedPaths = this._parsedPaths, - objects = this._objects, - nObjects = objects.length, - nCachedObjects = this.nCachedObjects_, - bindingsForPath = new Array(nObjects); - index = bindings.length; - indicesByPath[path] = index; - paths.push(path); - parsedPaths.push(parsedPath); - bindings.push(bindingsForPath); - for (var i = nCachedObjects, n = objects.length; i !== n; ++i) { - var object = objects[i]; - bindingsForPath[i] = new PropertyBinding(object, path, parsedPath); - } - return bindingsForPath; - }, - unsubscribe_: function unsubscribe_(path) { - // tells the group to forget about a property path and no longer - // update the array previously obtained with 'subscribe_' - var indicesByPath = this._bindingsIndicesByPath, - index = indicesByPath[path]; - if (index !== undefined) { - var paths = this._paths, - parsedPaths = this._parsedPaths, - bindings = this._bindings, - lastBindingsIndex = bindings.length - 1, - lastBindings = bindings[lastBindingsIndex], - lastBindingsPath = path[lastBindingsIndex]; - indicesByPath[lastBindingsPath] = index; - bindings[index] = lastBindings; - bindings.pop(); - parsedPaths[index] = parsedPaths[lastBindingsIndex]; - parsedPaths.pop(); - paths[index] = paths[lastBindingsIndex]; - paths.pop(); - } - } - }); - var AnimationAction = /*#__PURE__*/function () { - function AnimationAction(mixer, clip, localRoot, blendMode) { - if (localRoot === void 0) { - localRoot = null; - } - if (blendMode === void 0) { - blendMode = clip.blendMode; - } - this._mixer = mixer; - this._clip = clip; - this._localRoot = localRoot; - this.blendMode = blendMode; - var tracks = clip.tracks, - nTracks = tracks.length, - interpolants = new Array(nTracks); - var interpolantSettings = { - endingStart: ZeroCurvatureEnding, - endingEnd: ZeroCurvatureEnding - }; - for (var i = 0; i !== nTracks; ++i) { - var interpolant = tracks[i].createInterpolant(null); - interpolants[i] = interpolant; - interpolant.settings = interpolantSettings; - } - this._interpolantSettings = interpolantSettings; - this._interpolants = interpolants; // bound by the mixer - // inside: PropertyMixer (managed by the mixer) - this._propertyBindings = new Array(nTracks); - this._cacheIndex = null; // for the memory manager - this._byClipCacheIndex = null; // for the memory manager - this._timeScaleInterpolant = null; - this._weightInterpolant = null; - this.loop = LoopRepeat; - this._loopCount = -1; // global mixer time when the action is to be started - // it's set back to 'null' upon start of the action - this._startTime = null; // scaled local time of the action - // gets clamped or wrapped to 0..clip.duration according to loop - this.time = 0; - this.timeScale = 1; - this._effectiveTimeScale = 1; - this.weight = 1; - this._effectiveWeight = 1; - this.repetitions = Infinity; // no. of repetitions when looping - this.paused = false; // true -> zero effective time scale - this.enabled = true; // false -> zero effective weight - this.clampWhenFinished = false; // keep feeding the last frame? - this.zeroSlopeAtStart = true; // for smooth interpolation w/o separate - this.zeroSlopeAtEnd = true; // clips for start, loop and end - } // State & Scheduling - - var _proto = AnimationAction.prototype; - _proto.play = function play() { - this._mixer._activateAction(this); - return this; - }; - _proto.stop = function stop() { - this._mixer._deactivateAction(this); - return this.reset(); - }; - _proto.reset = function reset() { - this.paused = false; - this.enabled = true; - this.time = 0; // restart clip - this._loopCount = -1; // forget previous loops - this._startTime = null; // forget scheduling - return this.stopFading().stopWarping(); - }; - _proto.isRunning = function isRunning() { - return this.enabled && !this.paused && this.timeScale !== 0 && this._startTime === null && this._mixer._isActiveAction(this); - } // return true when play has been called - ; - _proto.isScheduled = function isScheduled() { - return this._mixer._isActiveAction(this); - }; - _proto.startAt = function startAt(time) { - this._startTime = time; - return this; - }; - _proto.setLoop = function setLoop(mode, repetitions) { - this.loop = mode; - this.repetitions = repetitions; - return this; - } // Weight - // set the weight stopping any scheduled fading - // although .enabled = false yields an effective weight of zero, this - // method does *not* change .enabled, because it would be confusing - ; - _proto.setEffectiveWeight = function setEffectiveWeight(weight) { - this.weight = weight; // note: same logic as when updated at runtime - this._effectiveWeight = this.enabled ? weight : 0; - return this.stopFading(); - } // return the weight considering fading and .enabled - ; - _proto.getEffectiveWeight = function getEffectiveWeight() { - return this._effectiveWeight; - }; - _proto.fadeIn = function fadeIn(duration) { - return this._scheduleFading(duration, 0, 1); - }; - _proto.fadeOut = function fadeOut(duration) { - return this._scheduleFading(duration, 1, 0); - }; - _proto.crossFadeFrom = function crossFadeFrom(fadeOutAction, duration, warp) { - fadeOutAction.fadeOut(duration); - this.fadeIn(duration); - if (warp) { - var fadeInDuration = this._clip.duration, - fadeOutDuration = fadeOutAction._clip.duration, - startEndRatio = fadeOutDuration / fadeInDuration, - endStartRatio = fadeInDuration / fadeOutDuration; - fadeOutAction.warp(1.0, startEndRatio, duration); - this.warp(endStartRatio, 1.0, duration); - } - return this; - }; - _proto.crossFadeTo = function crossFadeTo(fadeInAction, duration, warp) { - return fadeInAction.crossFadeFrom(this, duration, warp); - }; - _proto.stopFading = function stopFading() { - var weightInterpolant = this._weightInterpolant; - if (weightInterpolant !== null) { - this._weightInterpolant = null; - this._mixer._takeBackControlInterpolant(weightInterpolant); - } - return this; - } // Time Scale Control - // set the time scale stopping any scheduled warping - // although .paused = true yields an effective time scale of zero, this - // method does *not* change .paused, because it would be confusing - ; - _proto.setEffectiveTimeScale = function setEffectiveTimeScale(timeScale) { - this.timeScale = timeScale; - this._effectiveTimeScale = this.paused ? 0 : timeScale; - return this.stopWarping(); - } // return the time scale considering warping and .paused - ; - _proto.getEffectiveTimeScale = function getEffectiveTimeScale() { - return this._effectiveTimeScale; - }; - _proto.setDuration = function setDuration(duration) { - this.timeScale = this._clip.duration / duration; - return this.stopWarping(); - }; - _proto.syncWith = function syncWith(action) { - this.time = action.time; - this.timeScale = action.timeScale; - return this.stopWarping(); - }; - _proto.halt = function halt(duration) { - return this.warp(this._effectiveTimeScale, 0, duration); - }; - _proto.warp = function warp(startTimeScale, endTimeScale, duration) { - var mixer = this._mixer, - now = mixer.time, - timeScale = this.timeScale; - var interpolant = this._timeScaleInterpolant; - if (interpolant === null) { - interpolant = mixer._lendControlInterpolant(); - this._timeScaleInterpolant = interpolant; - } - var times = interpolant.parameterPositions, - values = interpolant.sampleValues; - times[0] = now; - times[1] = now + duration; - values[0] = startTimeScale / timeScale; - values[1] = endTimeScale / timeScale; - return this; - }; - _proto.stopWarping = function stopWarping() { - var timeScaleInterpolant = this._timeScaleInterpolant; - if (timeScaleInterpolant !== null) { - this._timeScaleInterpolant = null; - this._mixer._takeBackControlInterpolant(timeScaleInterpolant); - } - return this; - } // Object Accessors - ; - _proto.getMixer = function getMixer() { - return this._mixer; - }; - _proto.getClip = function getClip() { - return this._clip; - }; - _proto.getRoot = function getRoot() { - return this._localRoot || this._mixer._root; - } // Interna - ; - _proto._update = function _update(time, deltaTime, timeDirection, accuIndex) { - // called by the mixer - if (!this.enabled) { - // call ._updateWeight() to update ._effectiveWeight - this._updateWeight(time); - return; - } - var startTime = this._startTime; - if (startTime !== null) { - // check for scheduled start of action - var timeRunning = (time - startTime) * timeDirection; - if (timeRunning < 0 || timeDirection === 0) { - return; // yet to come / don't decide when delta = 0 - } // start - - this._startTime = null; // unschedule - deltaTime = timeDirection * timeRunning; - } // apply time scale and advance time - - deltaTime *= this._updateTimeScale(time); - var clipTime = this._updateTime(deltaTime); // note: _updateTime may disable the action resulting in - // an effective weight of 0 - - var weight = this._updateWeight(time); - if (weight > 0) { - var _interpolants = this._interpolants; - var propertyMixers = this._propertyBindings; - switch (this.blendMode) { - case AdditiveAnimationBlendMode: - for (var j = 0, m = _interpolants.length; j !== m; ++j) { - _interpolants[j].evaluate(clipTime); - propertyMixers[j].accumulateAdditive(weight); - } - break; - case NormalAnimationBlendMode: - default: - for (var _j = 0, _m = _interpolants.length; _j !== _m; ++_j) { - _interpolants[_j].evaluate(clipTime); - propertyMixers[_j].accumulate(accuIndex, weight); - } - } - } - }; - _proto._updateWeight = function _updateWeight(time) { - var weight = 0; - if (this.enabled) { - weight = this.weight; - var interpolant = this._weightInterpolant; - if (interpolant !== null) { - var interpolantValue = interpolant.evaluate(time)[0]; - weight *= interpolantValue; - if (time > interpolant.parameterPositions[1]) { - this.stopFading(); - if (interpolantValue === 0) { - // faded out, disable - this.enabled = false; - } - } - } - } - this._effectiveWeight = weight; - return weight; - }; - _proto._updateTimeScale = function _updateTimeScale(time) { - var timeScale = 0; - if (!this.paused) { - timeScale = this.timeScale; - var interpolant = this._timeScaleInterpolant; - if (interpolant !== null) { - var interpolantValue = interpolant.evaluate(time)[0]; - timeScale *= interpolantValue; - if (time > interpolant.parameterPositions[1]) { - this.stopWarping(); - if (timeScale === 0) { - // motion has halted, pause - this.paused = true; - } else { - // warp done - apply final time scale - this.timeScale = timeScale; - } - } - } - } - this._effectiveTimeScale = timeScale; - return timeScale; - }; - _proto._updateTime = function _updateTime(deltaTime) { - var duration = this._clip.duration; - var loop = this.loop; - var time = this.time + deltaTime; - var loopCount = this._loopCount; - var pingPong = loop === LoopPingPong; - if (deltaTime === 0) { - if (loopCount === -1) return time; - return pingPong && (loopCount & 1) === 1 ? duration - time : time; - } - if (loop === LoopOnce) { - if (loopCount === -1) { - // just started - this._loopCount = 0; - this._setEndings(true, true, false); - } - handle_stop: { - if (time >= duration) { - time = duration; - } else if (time < 0) { - time = 0; - } else { - this.time = time; - break handle_stop; - } - if (this.clampWhenFinished) this.paused = true;else this.enabled = false; - this.time = time; - this._mixer.dispatchEvent({ - type: 'finished', - action: this, - direction: deltaTime < 0 ? -1 : 1 - }); - } - } else { - // repetitive Repeat or PingPong - if (loopCount === -1) { - // just started - if (deltaTime >= 0) { - loopCount = 0; - this._setEndings(true, this.repetitions === 0, pingPong); - } else { - // when looping in reverse direction, the initial - // transition through zero counts as a repetition, - // so leave loopCount at -1 - this._setEndings(this.repetitions === 0, true, pingPong); - } - } - if (time >= duration || time < 0) { - // wrap around - var loopDelta = Math.floor(time / duration); // signed - time -= duration * loopDelta; - loopCount += Math.abs(loopDelta); - var pending = this.repetitions - loopCount; - if (pending <= 0) { - // have to stop (switch state, clamp time, fire event) - if (this.clampWhenFinished) this.paused = true;else this.enabled = false; - time = deltaTime > 0 ? duration : 0; - this.time = time; - this._mixer.dispatchEvent({ - type: 'finished', - action: this, - direction: deltaTime > 0 ? 1 : -1 - }); - } else { - // keep running - if (pending === 1) { - // entering the last round - var atStart = deltaTime < 0; - this._setEndings(atStart, !atStart, pingPong); - } else { - this._setEndings(false, false, pingPong); - } - this._loopCount = loopCount; - this.time = time; - this._mixer.dispatchEvent({ - type: 'loop', - action: this, - loopDelta: loopDelta - }); - } - } else { - this.time = time; - } - if (pingPong && (loopCount & 1) === 1) { - // invert time for the "pong round" - return duration - time; - } - } - return time; - }; - _proto._setEndings = function _setEndings(atStart, atEnd, pingPong) { - var settings = this._interpolantSettings; - if (pingPong) { - settings.endingStart = ZeroSlopeEnding; - settings.endingEnd = ZeroSlopeEnding; - } else { - // assuming for LoopOnce atStart == atEnd == true - if (atStart) { - settings.endingStart = this.zeroSlopeAtStart ? ZeroSlopeEnding : ZeroCurvatureEnding; - } else { - settings.endingStart = WrapAroundEnding; - } - if (atEnd) { - settings.endingEnd = this.zeroSlopeAtEnd ? ZeroSlopeEnding : ZeroCurvatureEnding; - } else { - settings.endingEnd = WrapAroundEnding; - } - } - }; - _proto._scheduleFading = function _scheduleFading(duration, weightNow, weightThen) { - var mixer = this._mixer, - now = mixer.time; - var interpolant = this._weightInterpolant; - if (interpolant === null) { - interpolant = mixer._lendControlInterpolant(); - this._weightInterpolant = interpolant; - } - var times = interpolant.parameterPositions, - values = interpolant.sampleValues; - times[0] = now; - values[0] = weightNow; - times[1] = now + duration; - values[1] = weightThen; - return this; - }; - return AnimationAction; - }(); - function AnimationMixer(root) { - this._root = root; - this._initMemoryManager(); - this._accuIndex = 0; - this.time = 0; - this.timeScale = 1.0; - } - AnimationMixer.prototype = Object.assign(Object.create(EventDispatcher.prototype), { - constructor: AnimationMixer, - _bindAction: function _bindAction(action, prototypeAction) { - var root = action._localRoot || this._root, - tracks = action._clip.tracks, - nTracks = tracks.length, - bindings = action._propertyBindings, - interpolants = action._interpolants, - rootUuid = root.uuid, - bindingsByRoot = this._bindingsByRootAndName; - var bindingsByName = bindingsByRoot[rootUuid]; - if (bindingsByName === undefined) { - bindingsByName = {}; - bindingsByRoot[rootUuid] = bindingsByName; - } - for (var i = 0; i !== nTracks; ++i) { - var track = tracks[i], - trackName = track.name; - var binding = bindingsByName[trackName]; - if (binding !== undefined) { - bindings[i] = binding; - } else { - binding = bindings[i]; - if (binding !== undefined) { - // existing binding, make sure the cache knows - if (binding._cacheIndex === null) { - ++binding.referenceCount; - this._addInactiveBinding(binding, rootUuid, trackName); - } - continue; - } - var path = prototypeAction && prototypeAction._propertyBindings[i].binding.parsedPath; - binding = new PropertyMixer(PropertyBinding.create(root, trackName, path), track.ValueTypeName, track.getValueSize()); - ++binding.referenceCount; - this._addInactiveBinding(binding, rootUuid, trackName); - bindings[i] = binding; - } - interpolants[i].resultBuffer = binding.buffer; - } - }, - _activateAction: function _activateAction(action) { - if (!this._isActiveAction(action)) { - if (action._cacheIndex === null) { - // this action has been forgotten by the cache, but the user - // appears to be still using it -> rebind - var rootUuid = (action._localRoot || this._root).uuid, - clipUuid = action._clip.uuid, - actionsForClip = this._actionsByClip[clipUuid]; - this._bindAction(action, actionsForClip && actionsForClip.knownActions[0]); - this._addInactiveAction(action, clipUuid, rootUuid); - } - var bindings = action._propertyBindings; // increment reference counts / sort out state - for (var i = 0, n = bindings.length; i !== n; ++i) { - var binding = bindings[i]; - if (binding.useCount++ === 0) { - this._lendBinding(binding); - binding.saveOriginalState(); - } - } - this._lendAction(action); - } - }, - _deactivateAction: function _deactivateAction(action) { - if (this._isActiveAction(action)) { - var bindings = action._propertyBindings; // decrement reference counts / sort out state - for (var i = 0, n = bindings.length; i !== n; ++i) { - var binding = bindings[i]; - if (--binding.useCount === 0) { - binding.restoreOriginalState(); - this._takeBackBinding(binding); - } - } - this._takeBackAction(action); - } - }, - // Memory manager - _initMemoryManager: function _initMemoryManager() { - this._actions = []; // 'nActiveActions' followed by inactive ones - this._nActiveActions = 0; - this._actionsByClip = {}; // inside: - // { - // knownActions: Array< AnimationAction > - used as prototypes - // actionByRoot: AnimationAction - lookup - // } - this._bindings = []; // 'nActiveBindings' followed by inactive ones - this._nActiveBindings = 0; - this._bindingsByRootAndName = {}; // inside: Map< name, PropertyMixer > - this._controlInterpolants = []; // same game as above - this._nActiveControlInterpolants = 0; - var scope = this; - this.stats = { - actions: { - get total() { - return scope._actions.length; - }, - get inUse() { - return scope._nActiveActions; - } - }, - bindings: { - get total() { - return scope._bindings.length; - }, - get inUse() { - return scope._nActiveBindings; - } - }, - controlInterpolants: { - get total() { - return scope._controlInterpolants.length; - }, - get inUse() { - return scope._nActiveControlInterpolants; - } - } - }; - }, - // Memory management for AnimationAction objects - _isActiveAction: function _isActiveAction(action) { - var index = action._cacheIndex; - return index !== null && index < this._nActiveActions; - }, - _addInactiveAction: function _addInactiveAction(action, clipUuid, rootUuid) { - var actions = this._actions, - actionsByClip = this._actionsByClip; - var actionsForClip = actionsByClip[clipUuid]; - if (actionsForClip === undefined) { - actionsForClip = { - knownActions: [action], - actionByRoot: {} - }; - action._byClipCacheIndex = 0; - actionsByClip[clipUuid] = actionsForClip; - } else { - var knownActions = actionsForClip.knownActions; - action._byClipCacheIndex = knownActions.length; - knownActions.push(action); - } - action._cacheIndex = actions.length; - actions.push(action); - actionsForClip.actionByRoot[rootUuid] = action; - }, - _removeInactiveAction: function _removeInactiveAction(action) { - var actions = this._actions, - lastInactiveAction = actions[actions.length - 1], - cacheIndex = action._cacheIndex; - lastInactiveAction._cacheIndex = cacheIndex; - actions[cacheIndex] = lastInactiveAction; - actions.pop(); - action._cacheIndex = null; - var clipUuid = action._clip.uuid, - actionsByClip = this._actionsByClip, - actionsForClip = actionsByClip[clipUuid], - knownActionsForClip = actionsForClip.knownActions, - lastKnownAction = knownActionsForClip[knownActionsForClip.length - 1], - byClipCacheIndex = action._byClipCacheIndex; - lastKnownAction._byClipCacheIndex = byClipCacheIndex; - knownActionsForClip[byClipCacheIndex] = lastKnownAction; - knownActionsForClip.pop(); - action._byClipCacheIndex = null; - var actionByRoot = actionsForClip.actionByRoot, - rootUuid = (action._localRoot || this._root).uuid; - delete actionByRoot[rootUuid]; - if (knownActionsForClip.length === 0) { - delete actionsByClip[clipUuid]; - } - this._removeInactiveBindingsForAction(action); - }, - _removeInactiveBindingsForAction: function _removeInactiveBindingsForAction(action) { - var bindings = action._propertyBindings; - for (var i = 0, n = bindings.length; i !== n; ++i) { - var binding = bindings[i]; - if (--binding.referenceCount === 0) { - this._removeInactiveBinding(binding); - } - } - }, - _lendAction: function _lendAction(action) { - // [ active actions | inactive actions ] - // [ active actions >| inactive actions ] - // s a - // <-swap-> - // a s - var actions = this._actions, - prevIndex = action._cacheIndex, - lastActiveIndex = this._nActiveActions++, - firstInactiveAction = actions[lastActiveIndex]; - action._cacheIndex = lastActiveIndex; - actions[lastActiveIndex] = action; - firstInactiveAction._cacheIndex = prevIndex; - actions[prevIndex] = firstInactiveAction; - }, - _takeBackAction: function _takeBackAction(action) { - // [ active actions | inactive actions ] - // [ active actions |< inactive actions ] - // a s - // <-swap-> - // s a - var actions = this._actions, - prevIndex = action._cacheIndex, - firstInactiveIndex = --this._nActiveActions, - lastActiveAction = actions[firstInactiveIndex]; - action._cacheIndex = firstInactiveIndex; - actions[firstInactiveIndex] = action; - lastActiveAction._cacheIndex = prevIndex; - actions[prevIndex] = lastActiveAction; - }, - // Memory management for PropertyMixer objects - _addInactiveBinding: function _addInactiveBinding(binding, rootUuid, trackName) { - var bindingsByRoot = this._bindingsByRootAndName, - bindings = this._bindings; - var bindingByName = bindingsByRoot[rootUuid]; - if (bindingByName === undefined) { - bindingByName = {}; - bindingsByRoot[rootUuid] = bindingByName; - } - bindingByName[trackName] = binding; - binding._cacheIndex = bindings.length; - bindings.push(binding); - }, - _removeInactiveBinding: function _removeInactiveBinding(binding) { - var bindings = this._bindings, - propBinding = binding.binding, - rootUuid = propBinding.rootNode.uuid, - trackName = propBinding.path, - bindingsByRoot = this._bindingsByRootAndName, - bindingByName = bindingsByRoot[rootUuid], - lastInactiveBinding = bindings[bindings.length - 1], - cacheIndex = binding._cacheIndex; - lastInactiveBinding._cacheIndex = cacheIndex; - bindings[cacheIndex] = lastInactiveBinding; - bindings.pop(); - delete bindingByName[trackName]; - if (Object.keys(bindingByName).length === 0) { - delete bindingsByRoot[rootUuid]; - } - }, - _lendBinding: function _lendBinding(binding) { - var bindings = this._bindings, - prevIndex = binding._cacheIndex, - lastActiveIndex = this._nActiveBindings++, - firstInactiveBinding = bindings[lastActiveIndex]; - binding._cacheIndex = lastActiveIndex; - bindings[lastActiveIndex] = binding; - firstInactiveBinding._cacheIndex = prevIndex; - bindings[prevIndex] = firstInactiveBinding; - }, - _takeBackBinding: function _takeBackBinding(binding) { - var bindings = this._bindings, - prevIndex = binding._cacheIndex, - firstInactiveIndex = --this._nActiveBindings, - lastActiveBinding = bindings[firstInactiveIndex]; - binding._cacheIndex = firstInactiveIndex; - bindings[firstInactiveIndex] = binding; - lastActiveBinding._cacheIndex = prevIndex; - bindings[prevIndex] = lastActiveBinding; - }, - // Memory management of Interpolants for weight and time scale - _lendControlInterpolant: function _lendControlInterpolant() { - var interpolants = this._controlInterpolants, - lastActiveIndex = this._nActiveControlInterpolants++; - var interpolant = interpolants[lastActiveIndex]; - if (interpolant === undefined) { - interpolant = new LinearInterpolant(new Float32Array(2), new Float32Array(2), 1, this._controlInterpolantsResultBuffer); - interpolant.__cacheIndex = lastActiveIndex; - interpolants[lastActiveIndex] = interpolant; - } - return interpolant; - }, - _takeBackControlInterpolant: function _takeBackControlInterpolant(interpolant) { - var interpolants = this._controlInterpolants, - prevIndex = interpolant.__cacheIndex, - firstInactiveIndex = --this._nActiveControlInterpolants, - lastActiveInterpolant = interpolants[firstInactiveIndex]; - interpolant.__cacheIndex = firstInactiveIndex; - interpolants[firstInactiveIndex] = interpolant; - lastActiveInterpolant.__cacheIndex = prevIndex; - interpolants[prevIndex] = lastActiveInterpolant; - }, - _controlInterpolantsResultBuffer: new Float32Array(1), - // return an action for a clip optionally using a custom root target - // object (this method allocates a lot of dynamic memory in case a - // previously unknown clip/root combination is specified) - clipAction: function clipAction(clip, optionalRoot, blendMode) { - var root = optionalRoot || this._root, - rootUuid = root.uuid; - var clipObject = typeof clip === 'string' ? AnimationClip.findByName(root, clip) : clip; - var clipUuid = clipObject !== null ? clipObject.uuid : clip; - var actionsForClip = this._actionsByClip[clipUuid]; - var prototypeAction = null; - if (blendMode === undefined) { - if (clipObject !== null) { - blendMode = clipObject.blendMode; - } else { - blendMode = NormalAnimationBlendMode; - } - } - if (actionsForClip !== undefined) { - var existingAction = actionsForClip.actionByRoot[rootUuid]; - if (existingAction !== undefined && existingAction.blendMode === blendMode) { - return existingAction; - } // we know the clip, so we don't have to parse all - // the bindings again but can just copy - - prototypeAction = actionsForClip.knownActions[0]; // also, take the clip from the prototype action - if (clipObject === null) clipObject = prototypeAction._clip; - } // clip must be known when specified via string - - if (clipObject === null) return null; // allocate all resources required to run it - var newAction = new AnimationAction(this, clipObject, optionalRoot, blendMode); - this._bindAction(newAction, prototypeAction); // and make the action known to the memory manager - - this._addInactiveAction(newAction, clipUuid, rootUuid); - return newAction; - }, - // get an existing action - existingAction: function existingAction(clip, optionalRoot) { - var root = optionalRoot || this._root, - rootUuid = root.uuid, - clipObject = typeof clip === 'string' ? AnimationClip.findByName(root, clip) : clip, - clipUuid = clipObject ? clipObject.uuid : clip, - actionsForClip = this._actionsByClip[clipUuid]; - if (actionsForClip !== undefined) { - return actionsForClip.actionByRoot[rootUuid] || null; - } - return null; - }, - // deactivates all previously scheduled actions - stopAllAction: function stopAllAction() { - var actions = this._actions, - nActions = this._nActiveActions; - for (var i = nActions - 1; i >= 0; --i) { - actions[i].stop(); - } - return this; - }, - // advance the time and update apply the animation - update: function update(deltaTime) { - deltaTime *= this.timeScale; - var actions = this._actions, - nActions = this._nActiveActions, - time = this.time += deltaTime, - timeDirection = Math.sign(deltaTime), - accuIndex = this._accuIndex ^= 1; // run active actions - for (var i = 0; i !== nActions; ++i) { - var action = actions[i]; - action._update(time, deltaTime, timeDirection, accuIndex); - } // update scene graph - - var bindings = this._bindings, - nBindings = this._nActiveBindings; - for (var _i = 0; _i !== nBindings; ++_i) { - bindings[_i].apply(accuIndex); - } - return this; - }, - // Allows you to seek to a specific time in an animation. - setTime: function setTime(timeInSeconds) { - this.time = 0; // Zero out time attribute for AnimationMixer object; - for (var i = 0; i < this._actions.length; i++) { - this._actions[i].time = 0; // Zero out time attribute for all associated AnimationAction objects. - } - return this.update(timeInSeconds); // Update used to set exact time. Returns "this" AnimationMixer object. - }, - // return this mixer's root target object - getRoot: function getRoot() { - return this._root; - }, - // free all resources specific to a particular clip - uncacheClip: function uncacheClip(clip) { - var actions = this._actions, - clipUuid = clip.uuid, - actionsByClip = this._actionsByClip, - actionsForClip = actionsByClip[clipUuid]; - if (actionsForClip !== undefined) { - // note: just calling _removeInactiveAction would mess up the - // iteration state and also require updating the state we can - // just throw away - var actionsToRemove = actionsForClip.knownActions; - for (var i = 0, n = actionsToRemove.length; i !== n; ++i) { - var action = actionsToRemove[i]; - this._deactivateAction(action); - var cacheIndex = action._cacheIndex, - lastInactiveAction = actions[actions.length - 1]; - action._cacheIndex = null; - action._byClipCacheIndex = null; - lastInactiveAction._cacheIndex = cacheIndex; - actions[cacheIndex] = lastInactiveAction; - actions.pop(); - this._removeInactiveBindingsForAction(action); - } - delete actionsByClip[clipUuid]; - } - }, - // free all resources specific to a particular root target object - uncacheRoot: function uncacheRoot(root) { - var rootUuid = root.uuid, - actionsByClip = this._actionsByClip; - for (var clipUuid in actionsByClip) { - var actionByRoot = actionsByClip[clipUuid].actionByRoot, - action = actionByRoot[rootUuid]; - if (action !== undefined) { - this._deactivateAction(action); - this._removeInactiveAction(action); - } - } - var bindingsByRoot = this._bindingsByRootAndName, - bindingByName = bindingsByRoot[rootUuid]; - if (bindingByName !== undefined) { - for (var trackName in bindingByName) { - var binding = bindingByName[trackName]; - binding.restoreOriginalState(); - this._removeInactiveBinding(binding); - } - } - }, - // remove a targeted clip from the cache - uncacheAction: function uncacheAction(clip, optionalRoot) { - var action = this.existingAction(clip, optionalRoot); - if (action !== null) { - this._deactivateAction(action); - this._removeInactiveAction(action); - } - } - }); - var Uniform = /*#__PURE__*/function () { - function Uniform(value) { - if (typeof value === 'string') { - console.warn('THREE.Uniform: Type parameter is no longer needed.'); - value = arguments[1]; - } - this.value = value; - } - var _proto = Uniform.prototype; - _proto.clone = function clone() { - return new Uniform(this.value.clone === undefined ? this.value : this.value.clone()); - }; - return Uniform; - }(); - function InstancedInterleavedBuffer(array, stride, meshPerAttribute) { - InterleavedBuffer.call(this, array, stride); - this.meshPerAttribute = meshPerAttribute || 1; - } - InstancedInterleavedBuffer.prototype = Object.assign(Object.create(InterleavedBuffer.prototype), { - constructor: InstancedInterleavedBuffer, - isInstancedInterleavedBuffer: true, - copy: function copy(source) { - InterleavedBuffer.prototype.copy.call(this, source); - this.meshPerAttribute = source.meshPerAttribute; - return this; - }, - clone: function clone(data) { - var ib = InterleavedBuffer.prototype.clone.call(this, data); - ib.meshPerAttribute = this.meshPerAttribute; - return ib; - }, - toJSON: function toJSON(data) { - var json = InterleavedBuffer.prototype.toJSON.call(this, data); - json.isInstancedInterleavedBuffer = true; - json.meshPerAttribute = this.meshPerAttribute; - return json; - } - }); - function GLBufferAttribute(buffer, type, itemSize, elementSize, count) { - this.buffer = buffer; - this.type = type; - this.itemSize = itemSize; - this.elementSize = elementSize; - this.count = count; - this.version = 0; - } - Object.defineProperty(GLBufferAttribute.prototype, 'needsUpdate', { - set: function set(value) { - if (value === true) this.version++; - } - }); - Object.assign(GLBufferAttribute.prototype, { - isGLBufferAttribute: true, - setBuffer: function setBuffer(buffer) { - this.buffer = buffer; - return this; - }, - setType: function setType(type, elementSize) { - this.type = type; - this.elementSize = elementSize; - return this; - }, - setItemSize: function setItemSize(itemSize) { - this.itemSize = itemSize; - return this; - }, - setCount: function setCount(count) { - this.count = count; - return this; - } - }); - function Raycaster(origin, direction, near, far) { - this.ray = new Ray(origin, direction); // direction is assumed to be normalized (for accurate distance calculations) - this.near = near || 0; - this.far = far || Infinity; - this.camera = null; - this.layers = new Layers(); - this.params = { - Mesh: {}, - Line: { - threshold: 1 - }, - LOD: {}, - Points: { - threshold: 1 - }, - Sprite: {} - }; - Object.defineProperties(this.params, { - PointCloud: { - get: function get() { - console.warn('THREE.Raycaster: params.PointCloud has been renamed to params.Points.'); - return this.Points; - } - } - }); - } - function ascSort(a, b) { - return a.distance - b.distance; - } - function _intersectObject(object, raycaster, intersects, recursive) { - if (object.layers.test(raycaster.layers)) { - object.raycast(raycaster, intersects); - } - if (recursive === true) { - var children = object.children; - for (var i = 0, l = children.length; i < l; i++) { - _intersectObject(children[i], raycaster, intersects, true); - } - } - } - Object.assign(Raycaster.prototype, { - set: function set(origin, direction) { - // direction is assumed to be normalized (for accurate distance calculations) - this.ray.set(origin, direction); - }, - setFromCamera: function setFromCamera(coords, camera) { - if (camera && camera.isPerspectiveCamera) { - this.ray.origin.setFromMatrixPosition(camera.matrixWorld); - this.ray.direction.set(coords.x, coords.y, 0.5).unproject(camera).sub(this.ray.origin).normalize(); - this.camera = camera; - } else if (camera && camera.isOrthographicCamera) { - this.ray.origin.set(coords.x, coords.y, (camera.near + camera.far) / (camera.near - camera.far)).unproject(camera); // set origin in plane of camera - this.ray.direction.set(0, 0, -1).transformDirection(camera.matrixWorld); - this.camera = camera; - } else { - console.error('THREE.Raycaster: Unsupported camera type.'); - } - }, - intersectObject: function intersectObject(object, recursive, optionalTarget) { - var intersects = optionalTarget || []; - _intersectObject(object, this, intersects, recursive); - intersects.sort(ascSort); - return intersects; - }, - intersectObjects: function intersectObjects(objects, recursive, optionalTarget) { - var intersects = optionalTarget || []; - if (Array.isArray(objects) === false) { - console.warn('THREE.Raycaster.intersectObjects: objects is not an Array.'); - return intersects; - } - for (var i = 0, l = objects.length; i < l; i++) { - _intersectObject(objects[i], this, intersects, recursive); - } - intersects.sort(ascSort); - return intersects; - } - }); - /** - * Ref: https://en.wikipedia.org/wiki/Spherical_coordinate_system - * - * The polar angle (phi) is measured from the positive y-axis. The positive y-axis is up. - * The azimuthal angle (theta) is measured from the positive z-axis. - */ - var Spherical = /*#__PURE__*/function () { - function Spherical(radius, phi, theta) { - if (radius === void 0) { - radius = 1; - } - if (phi === void 0) { - phi = 0; - } - if (theta === void 0) { - theta = 0; - } - this.radius = radius; - this.phi = phi; // polar angle - this.theta = theta; // azimuthal angle - return this; - } - var _proto = Spherical.prototype; - _proto.set = function set(radius, phi, theta) { - this.radius = radius; - this.phi = phi; - this.theta = theta; - return this; - }; - _proto.clone = function clone() { - return new this.constructor().copy(this); - }; - _proto.copy = function copy(other) { - this.radius = other.radius; - this.phi = other.phi; - this.theta = other.theta; - return this; - } // restrict phi to be betwee EPS and PI-EPS - ; - _proto.makeSafe = function makeSafe() { - var EPS = 0.000001; - this.phi = Math.max(EPS, Math.min(Math.PI - EPS, this.phi)); - return this; - }; - _proto.setFromVector3 = function setFromVector3(v) { - return this.setFromCartesianCoords(v.x, v.y, v.z); - }; - _proto.setFromCartesianCoords = function setFromCartesianCoords(x, y, z) { - this.radius = Math.sqrt(x * x + y * y + z * z); - if (this.radius === 0) { - this.theta = 0; - this.phi = 0; - } else { - this.theta = Math.atan2(x, z); - this.phi = Math.acos(MathUtils.clamp(y / this.radius, -1, 1)); - } - return this; - }; - return Spherical; - }(); - /** - * Ref: https://en.wikipedia.org/wiki/Cylindrical_coordinate_system - */ - var Cylindrical = /*#__PURE__*/function () { - function Cylindrical(radius, theta, y) { - this.radius = radius !== undefined ? radius : 1.0; // distance from the origin to a point in the x-z plane - this.theta = theta !== undefined ? theta : 0; // counterclockwise angle in the x-z plane measured in radians from the positive z-axis - this.y = y !== undefined ? y : 0; // height above the x-z plane - return this; - } - var _proto = Cylindrical.prototype; - _proto.set = function set(radius, theta, y) { - this.radius = radius; - this.theta = theta; - this.y = y; - return this; - }; - _proto.clone = function clone() { - return new this.constructor().copy(this); - }; - _proto.copy = function copy(other) { - this.radius = other.radius; - this.theta = other.theta; - this.y = other.y; - return this; - }; - _proto.setFromVector3 = function setFromVector3(v) { - return this.setFromCartesianCoords(v.x, v.y, v.z); - }; - _proto.setFromCartesianCoords = function setFromCartesianCoords(x, y, z) { - this.radius = Math.sqrt(x * x + z * z); - this.theta = Math.atan2(x, z); - this.y = y; - return this; - }; - return Cylindrical; - }(); - var _vector$7 = /*@__PURE__*/new Vector2(); - var Box2 = /*#__PURE__*/function () { - function Box2(min, max) { - Object.defineProperty(this, 'isBox2', { - value: true - }); - this.min = min !== undefined ? min : new Vector2(+Infinity, +Infinity); - this.max = max !== undefined ? max : new Vector2(-Infinity, -Infinity); - } - var _proto = Box2.prototype; - _proto.set = function set(min, max) { - this.min.copy(min); - this.max.copy(max); - return this; - }; - _proto.setFromPoints = function setFromPoints(points) { - this.makeEmpty(); - for (var i = 0, il = points.length; i < il; i++) { - this.expandByPoint(points[i]); - } - return this; - }; - _proto.setFromCenterAndSize = function setFromCenterAndSize(center, size) { - var halfSize = _vector$7.copy(size).multiplyScalar(0.5); - this.min.copy(center).sub(halfSize); - this.max.copy(center).add(halfSize); - return this; - }; - _proto.clone = function clone() { - return new this.constructor().copy(this); - }; - _proto.copy = function copy(box) { - this.min.copy(box.min); - this.max.copy(box.max); - return this; - }; - _proto.makeEmpty = function makeEmpty() { - this.min.x = this.min.y = +Infinity; - this.max.x = this.max.y = -Infinity; - return this; - }; - _proto.isEmpty = function isEmpty() { - // this is a more robust check for empty than ( volume <= 0 ) because volume can get positive with two negative axes - return this.max.x < this.min.x || this.max.y < this.min.y; - }; - _proto.getCenter = function getCenter(target) { - if (target === undefined) { - console.warn('THREE.Box2: .getCenter() target is now required'); - target = new Vector2(); - } - return this.isEmpty() ? target.set(0, 0) : target.addVectors(this.min, this.max).multiplyScalar(0.5); - }; - _proto.getSize = function getSize(target) { - if (target === undefined) { - console.warn('THREE.Box2: .getSize() target is now required'); - target = new Vector2(); - } - return this.isEmpty() ? target.set(0, 0) : target.subVectors(this.max, this.min); - }; - _proto.expandByPoint = function expandByPoint(point) { - this.min.min(point); - this.max.max(point); - return this; - }; - _proto.expandByVector = function expandByVector(vector) { - this.min.sub(vector); - this.max.add(vector); - return this; - }; - _proto.expandByScalar = function expandByScalar(scalar) { - this.min.addScalar(-scalar); - this.max.addScalar(scalar); - return this; - }; - _proto.containsPoint = function containsPoint(point) { - return point.x < this.min.x || point.x > this.max.x || point.y < this.min.y || point.y > this.max.y ? false : true; - }; - _proto.containsBox = function containsBox(box) { - return this.min.x <= box.min.x && box.max.x <= this.max.x && this.min.y <= box.min.y && box.max.y <= this.max.y; - }; - _proto.getParameter = function getParameter(point, target) { - // This can potentially have a divide by zero if the box - // has a size dimension of 0. - if (target === undefined) { - console.warn('THREE.Box2: .getParameter() target is now required'); - target = new Vector2(); - } - return target.set((point.x - this.min.x) / (this.max.x - this.min.x), (point.y - this.min.y) / (this.max.y - this.min.y)); - }; - _proto.intersectsBox = function intersectsBox(box) { - // using 4 splitting planes to rule out intersections - return box.max.x < this.min.x || box.min.x > this.max.x || box.max.y < this.min.y || box.min.y > this.max.y ? false : true; - }; - _proto.clampPoint = function clampPoint(point, target) { - if (target === undefined) { - console.warn('THREE.Box2: .clampPoint() target is now required'); - target = new Vector2(); - } - return target.copy(point).clamp(this.min, this.max); - }; - _proto.distanceToPoint = function distanceToPoint(point) { - var clampedPoint = _vector$7.copy(point).clamp(this.min, this.max); - return clampedPoint.sub(point).length(); - }; - _proto.intersect = function intersect(box) { - this.min.max(box.min); - this.max.min(box.max); - return this; - }; - _proto.union = function union(box) { - this.min.min(box.min); - this.max.max(box.max); - return this; - }; - _proto.translate = function translate(offset) { - this.min.add(offset); - this.max.add(offset); - return this; - }; - _proto.equals = function equals(box) { - return box.min.equals(this.min) && box.max.equals(this.max); - }; - return Box2; - }(); - var _startP = /*@__PURE__*/new Vector3(); - var _startEnd = /*@__PURE__*/new Vector3(); - var Line3 = /*#__PURE__*/function () { - function Line3(start, end) { - this.start = start !== undefined ? start : new Vector3(); - this.end = end !== undefined ? end : new Vector3(); - } - var _proto = Line3.prototype; - _proto.set = function set(start, end) { - this.start.copy(start); - this.end.copy(end); - return this; - }; - _proto.clone = function clone() { - return new this.constructor().copy(this); - }; - _proto.copy = function copy(line) { - this.start.copy(line.start); - this.end.copy(line.end); - return this; - }; - _proto.getCenter = function getCenter(target) { - if (target === undefined) { - console.warn('THREE.Line3: .getCenter() target is now required'); - target = new Vector3(); - } - return target.addVectors(this.start, this.end).multiplyScalar(0.5); - }; - _proto.delta = function delta(target) { - if (target === undefined) { - console.warn('THREE.Line3: .delta() target is now required'); - target = new Vector3(); - } - return target.subVectors(this.end, this.start); - }; - _proto.distanceSq = function distanceSq() { - return this.start.distanceToSquared(this.end); - }; - _proto.distance = function distance() { - return this.start.distanceTo(this.end); - }; - _proto.at = function at(t, target) { - if (target === undefined) { - console.warn('THREE.Line3: .at() target is now required'); - target = new Vector3(); - } - return this.delta(target).multiplyScalar(t).add(this.start); - }; - _proto.closestPointToPointParameter = function closestPointToPointParameter(point, clampToLine) { - _startP.subVectors(point, this.start); - _startEnd.subVectors(this.end, this.start); - var startEnd2 = _startEnd.dot(_startEnd); - var startEnd_startP = _startEnd.dot(_startP); - var t = startEnd_startP / startEnd2; - if (clampToLine) { - t = MathUtils.clamp(t, 0, 1); - } - return t; - }; - _proto.closestPointToPoint = function closestPointToPoint(point, clampToLine, target) { - var t = this.closestPointToPointParameter(point, clampToLine); - if (target === undefined) { - console.warn('THREE.Line3: .closestPointToPoint() target is now required'); - target = new Vector3(); - } - return this.delta(target).multiplyScalar(t).add(this.start); - }; - _proto.applyMatrix4 = function applyMatrix4(matrix) { - this.start.applyMatrix4(matrix); - this.end.applyMatrix4(matrix); - return this; - }; - _proto.equals = function equals(line) { - return line.start.equals(this.start) && line.end.equals(this.end); - }; - return Line3; - }(); - function ImmediateRenderObject(material) { - Object3D.call(this); - this.material = material; - this.render = function () - /* renderCallback */ - {}; - this.hasPositions = false; - this.hasNormals = false; - this.hasColors = false; - this.hasUvs = false; - this.positionArray = null; - this.normalArray = null; - this.colorArray = null; - this.uvArray = null; - this.count = 0; - } - ImmediateRenderObject.prototype = Object.create(Object3D.prototype); - ImmediateRenderObject.prototype.constructor = ImmediateRenderObject; - ImmediateRenderObject.prototype.isImmediateRenderObject = true; - var _vector$8 = /*@__PURE__*/new Vector3(); - var SpotLightHelper = /*#__PURE__*/function (_Object3D) { - _inheritsLoose(SpotLightHelper, _Object3D); - function SpotLightHelper(light, color) { - var _this; - _this = _Object3D.call(this) || this; - _this.light = light; - _this.light.updateMatrixWorld(); - _this.matrix = light.matrixWorld; - _this.matrixAutoUpdate = false; - _this.color = color; - var geometry = new BufferGeometry(); - var positions = [0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, -1, 1]; - for (var i = 0, j = 1, l = 32; i < l; i++, j++) { - var p1 = i / l * Math.PI * 2; - var p2 = j / l * Math.PI * 2; - positions.push(Math.cos(p1), Math.sin(p1), 1, Math.cos(p2), Math.sin(p2), 1); - } - geometry.setAttribute('position', new Float32BufferAttribute(positions, 3)); - var material = new LineBasicMaterial({ - fog: false, - toneMapped: false - }); - _this.cone = new LineSegments(geometry, material); - _this.add(_this.cone); - _this.update(); - return _this; - } - var _proto = SpotLightHelper.prototype; - _proto.dispose = function dispose() { - this.cone.geometry.dispose(); - this.cone.material.dispose(); - }; - _proto.update = function update() { - this.light.updateMatrixWorld(); - var coneLength = this.light.distance ? this.light.distance : 1000; - var coneWidth = coneLength * Math.tan(this.light.angle); - this.cone.scale.set(coneWidth, coneWidth, coneLength); - _vector$8.setFromMatrixPosition(this.light.target.matrixWorld); - this.cone.lookAt(_vector$8); - if (this.color !== undefined) { - this.cone.material.color.set(this.color); - } else { - this.cone.material.color.copy(this.light.color); - } - }; - return SpotLightHelper; - }(Object3D); - var _vector$9 = /*@__PURE__*/new Vector3(); - var _boneMatrix = /*@__PURE__*/new Matrix4(); - var _matrixWorldInv = /*@__PURE__*/new Matrix4(); - var SkeletonHelper = /*#__PURE__*/function (_LineSegments) { - _inheritsLoose(SkeletonHelper, _LineSegments); - function SkeletonHelper(object) { - var _this; - var bones = getBoneList(object); - var geometry = new BufferGeometry(); - var vertices = []; - var colors = []; - var color1 = new Color(0, 0, 1); - var color2 = new Color(0, 1, 0); - for (var i = 0; i < bones.length; i++) { - var bone = bones[i]; - if (bone.parent && bone.parent.isBone) { - vertices.push(0, 0, 0); - vertices.push(0, 0, 0); - colors.push(color1.r, color1.g, color1.b); - colors.push(color2.r, color2.g, color2.b); - } - } - geometry.setAttribute('position', new Float32BufferAttribute(vertices, 3)); - geometry.setAttribute('color', new Float32BufferAttribute(colors, 3)); - var material = new LineBasicMaterial({ - vertexColors: true, - depthTest: false, - depthWrite: false, - toneMapped: false, - transparent: true - }); - _this = _LineSegments.call(this, geometry, material) || this; - _this.type = 'SkeletonHelper'; - _this.isSkeletonHelper = true; - _this.root = object; - _this.bones = bones; - _this.matrix = object.matrixWorld; - _this.matrixAutoUpdate = false; - return _this; - } - var _proto = SkeletonHelper.prototype; - _proto.updateMatrixWorld = function updateMatrixWorld(force) { - var bones = this.bones; - var geometry = this.geometry; - var position = geometry.getAttribute('position'); - _matrixWorldInv.copy(this.root.matrixWorld).invert(); - for (var i = 0, j = 0; i < bones.length; i++) { - var bone = bones[i]; - if (bone.parent && bone.parent.isBone) { - _boneMatrix.multiplyMatrices(_matrixWorldInv, bone.matrixWorld); - _vector$9.setFromMatrixPosition(_boneMatrix); - position.setXYZ(j, _vector$9.x, _vector$9.y, _vector$9.z); - _boneMatrix.multiplyMatrices(_matrixWorldInv, bone.parent.matrixWorld); - _vector$9.setFromMatrixPosition(_boneMatrix); - position.setXYZ(j + 1, _vector$9.x, _vector$9.y, _vector$9.z); - j += 2; - } - } - geometry.getAttribute('position').needsUpdate = true; - _LineSegments.prototype.updateMatrixWorld.call(this, force); - }; - return SkeletonHelper; - }(LineSegments); - function getBoneList(object) { - var boneList = []; - if (object && object.isBone) { - boneList.push(object); - } - for (var i = 0; i < object.children.length; i++) { - boneList.push.apply(boneList, getBoneList(object.children[i])); - } - return boneList; - } - var PointLightHelper = /*#__PURE__*/function (_Mesh) { - _inheritsLoose(PointLightHelper, _Mesh); - function PointLightHelper(light, sphereSize, color) { - var _this; - var geometry = new SphereBufferGeometry(sphereSize, 4, 2); - var material = new MeshBasicMaterial({ - wireframe: true, - fog: false, - toneMapped: false - }); - _this = _Mesh.call(this, geometry, material) || this; - _this.light = light; - _this.light.updateMatrixWorld(); - _this.color = color; - _this.type = 'PointLightHelper'; - _this.matrix = _this.light.matrixWorld; - _this.matrixAutoUpdate = false; - _this.update(); - /* - // TODO: delete this comment? - const distanceGeometry = new THREE.IcosahedronBufferGeometry( 1, 2 ); - const distanceMaterial = new THREE.MeshBasicMaterial( { color: hexColor, fog: false, wireframe: true, opacity: 0.1, transparent: true } ); - this.lightSphere = new THREE.Mesh( bulbGeometry, bulbMaterial ); - this.lightDistance = new THREE.Mesh( distanceGeometry, distanceMaterial ); - const d = light.distance; - if ( d === 0.0 ) { - this.lightDistance.visible = false; - } else { - this.lightDistance.scale.set( d, d, d ); - } - this.add( this.lightDistance ); - */ - - return _this; - } - var _proto = PointLightHelper.prototype; - _proto.dispose = function dispose() { - this.geometry.dispose(); - this.material.dispose(); - }; - _proto.update = function update() { - if (this.color !== undefined) { - this.material.color.set(this.color); - } else { - this.material.color.copy(this.light.color); - } - /* - const d = this.light.distance; - if ( d === 0.0 ) { - this.lightDistance.visible = false; - } else { - this.lightDistance.visible = true; - this.lightDistance.scale.set( d, d, d ); - } - */ - }; - return PointLightHelper; - }(Mesh); - var _vector$a = /*@__PURE__*/new Vector3(); - var _color1 = /*@__PURE__*/new Color(); - var _color2 = /*@__PURE__*/new Color(); - var HemisphereLightHelper = /*#__PURE__*/function (_Object3D) { - _inheritsLoose(HemisphereLightHelper, _Object3D); - function HemisphereLightHelper(light, size, color) { - var _this; - _this = _Object3D.call(this) || this; - _this.light = light; - _this.light.updateMatrixWorld(); - _this.matrix = light.matrixWorld; - _this.matrixAutoUpdate = false; - _this.color = color; - var geometry = new OctahedronBufferGeometry(size); - geometry.rotateY(Math.PI * 0.5); - _this.material = new MeshBasicMaterial({ - wireframe: true, - fog: false, - toneMapped: false - }); - if (_this.color === undefined) _this.material.vertexColors = true; - var position = geometry.getAttribute('position'); - var colors = new Float32Array(position.count * 3); - geometry.setAttribute('color', new BufferAttribute(colors, 3)); - _this.add(new Mesh(geometry, _this.material)); - _this.update(); - return _this; - } - var _proto = HemisphereLightHelper.prototype; - _proto.dispose = function dispose() { - this.children[0].geometry.dispose(); - this.children[0].material.dispose(); - }; - _proto.update = function update() { - var mesh = this.children[0]; - if (this.color !== undefined) { - this.material.color.set(this.color); - } else { - var colors = mesh.geometry.getAttribute('color'); - _color1.copy(this.light.color); - _color2.copy(this.light.groundColor); - for (var i = 0, l = colors.count; i < l; i++) { - var color = i < l / 2 ? _color1 : _color2; - colors.setXYZ(i, color.r, color.g, color.b); - } - colors.needsUpdate = true; - } - mesh.lookAt(_vector$a.setFromMatrixPosition(this.light.matrixWorld).negate()); - }; - return HemisphereLightHelper; - }(Object3D); - var GridHelper = /*#__PURE__*/function (_LineSegments) { - _inheritsLoose(GridHelper, _LineSegments); - function GridHelper(size, divisions, color1, color2) { - var _this; - if (size === void 0) { - size = 10; - } - if (divisions === void 0) { - divisions = 10; - } - if (color1 === void 0) { - color1 = 0x444444; - } - if (color2 === void 0) { - color2 = 0x888888; - } - color1 = new Color(color1); - color2 = new Color(color2); - var center = divisions / 2; - var step = size / divisions; - var halfSize = size / 2; - var vertices = [], - colors = []; - for (var i = 0, j = 0, k = -halfSize; i <= divisions; i++, k += step) { - vertices.push(-halfSize, 0, k, halfSize, 0, k); - vertices.push(k, 0, -halfSize, k, 0, halfSize); - var color = i === center ? color1 : color2; - color.toArray(colors, j); - j += 3; - color.toArray(colors, j); - j += 3; - color.toArray(colors, j); - j += 3; - color.toArray(colors, j); - j += 3; - } - var geometry = new BufferGeometry(); - geometry.setAttribute('position', new Float32BufferAttribute(vertices, 3)); - geometry.setAttribute('color', new Float32BufferAttribute(colors, 3)); - var material = new LineBasicMaterial({ - vertexColors: true, - toneMapped: false - }); - _this = _LineSegments.call(this, geometry, material) || this; - _this.type = 'GridHelper'; - return _this; - } - return GridHelper; - }(LineSegments); - var PolarGridHelper = /*#__PURE__*/function (_LineSegments) { - _inheritsLoose(PolarGridHelper, _LineSegments); - function PolarGridHelper(radius, radials, circles, divisions, color1, color2) { - var _this; - if (radius === void 0) { - radius = 10; - } - if (radials === void 0) { - radials = 16; - } - if (circles === void 0) { - circles = 8; - } - if (divisions === void 0) { - divisions = 64; - } - if (color1 === void 0) { - color1 = 0x444444; - } - if (color2 === void 0) { - color2 = 0x888888; - } - color1 = new Color(color1); - color2 = new Color(color2); - var vertices = []; - var colors = []; // create the radials - for (var i = 0; i <= radials; i++) { - var v = i / radials * (Math.PI * 2); - var x = Math.sin(v) * radius; - var z = Math.cos(v) * radius; - vertices.push(0, 0, 0); - vertices.push(x, 0, z); - var color = i & 1 ? color1 : color2; - colors.push(color.r, color.g, color.b); - colors.push(color.r, color.g, color.b); - } // create the circles - - for (var _i = 0; _i <= circles; _i++) { - var _color = _i & 1 ? color1 : color2; - var r = radius - radius / circles * _i; - for (var j = 0; j < divisions; j++) { - // first vertex - var _v = j / divisions * (Math.PI * 2); - var _x = Math.sin(_v) * r; - var _z = Math.cos(_v) * r; - vertices.push(_x, 0, _z); - colors.push(_color.r, _color.g, _color.b); // second vertex - _v = (j + 1) / divisions * (Math.PI * 2); - _x = Math.sin(_v) * r; - _z = Math.cos(_v) * r; - vertices.push(_x, 0, _z); - colors.push(_color.r, _color.g, _color.b); - } - } - var geometry = new BufferGeometry(); - geometry.setAttribute('position', new Float32BufferAttribute(vertices, 3)); - geometry.setAttribute('color', new Float32BufferAttribute(colors, 3)); - var material = new LineBasicMaterial({ - vertexColors: true, - toneMapped: false - }); - _this = _LineSegments.call(this, geometry, material) || this; - _this.type = 'PolarGridHelper'; - return _this; - } - return PolarGridHelper; - }(LineSegments); - var _v1$6 = /*@__PURE__*/new Vector3(); - var _v2$3 = /*@__PURE__*/new Vector3(); - var _v3$1 = /*@__PURE__*/new Vector3(); - var DirectionalLightHelper = /*#__PURE__*/function (_Object3D) { - _inheritsLoose(DirectionalLightHelper, _Object3D); - function DirectionalLightHelper(light, size, color) { - var _this; - _this = _Object3D.call(this) || this; - _this.light = light; - _this.light.updateMatrixWorld(); - _this.matrix = light.matrixWorld; - _this.matrixAutoUpdate = false; - _this.color = color; - if (size === undefined) size = 1; - var geometry = new BufferGeometry(); - geometry.setAttribute('position', new Float32BufferAttribute([-size, size, 0, size, size, 0, size, -size, 0, -size, -size, 0, -size, size, 0], 3)); - var material = new LineBasicMaterial({ - fog: false, - toneMapped: false - }); - _this.lightPlane = new Line(geometry, material); - _this.add(_this.lightPlane); - geometry = new BufferGeometry(); - geometry.setAttribute('position', new Float32BufferAttribute([0, 0, 0, 0, 0, 1], 3)); - _this.targetLine = new Line(geometry, material); - _this.add(_this.targetLine); - _this.update(); - return _this; - } - var _proto = DirectionalLightHelper.prototype; - _proto.dispose = function dispose() { - this.lightPlane.geometry.dispose(); - this.lightPlane.material.dispose(); - this.targetLine.geometry.dispose(); - this.targetLine.material.dispose(); - }; - _proto.update = function update() { - _v1$6.setFromMatrixPosition(this.light.matrixWorld); - _v2$3.setFromMatrixPosition(this.light.target.matrixWorld); - _v3$1.subVectors(_v2$3, _v1$6); - this.lightPlane.lookAt(_v2$3); - if (this.color !== undefined) { - this.lightPlane.material.color.set(this.color); - this.targetLine.material.color.set(this.color); - } else { - this.lightPlane.material.color.copy(this.light.color); - this.targetLine.material.color.copy(this.light.color); - } - this.targetLine.lookAt(_v2$3); - this.targetLine.scale.z = _v3$1.length(); - }; - return DirectionalLightHelper; - }(Object3D); - var _vector$b = /*@__PURE__*/new Vector3(); - var _camera = /*@__PURE__*/new Camera(); - /** - * - shows frustum, line of sight and up of the camera - * - suitable for fast updates - * - based on frustum visualization in lightgl.js shadowmap example - * http://evanw.github.com/lightgl.js/tests/shadowmap.html - */ - - var CameraHelper = /*#__PURE__*/function (_LineSegments) { - _inheritsLoose(CameraHelper, _LineSegments); - function CameraHelper(camera) { - var _this; - var geometry = new BufferGeometry(); - var material = new LineBasicMaterial({ - color: 0xffffff, - vertexColors: true, - toneMapped: false - }); - var vertices = []; - var colors = []; - var pointMap = {}; // colors - var colorFrustum = new Color(0xffaa00); - var colorCone = new Color(0xff0000); - var colorUp = new Color(0x00aaff); - var colorTarget = new Color(0xffffff); - var colorCross = new Color(0x333333); // near - addLine('n1', 'n2', colorFrustum); - addLine('n2', 'n4', colorFrustum); - addLine('n4', 'n3', colorFrustum); - addLine('n3', 'n1', colorFrustum); // far - addLine('f1', 'f2', colorFrustum); - addLine('f2', 'f4', colorFrustum); - addLine('f4', 'f3', colorFrustum); - addLine('f3', 'f1', colorFrustum); // sides - addLine('n1', 'f1', colorFrustum); - addLine('n2', 'f2', colorFrustum); - addLine('n3', 'f3', colorFrustum); - addLine('n4', 'f4', colorFrustum); // cone - addLine('p', 'n1', colorCone); - addLine('p', 'n2', colorCone); - addLine('p', 'n3', colorCone); - addLine('p', 'n4', colorCone); // up - addLine('u1', 'u2', colorUp); - addLine('u2', 'u3', colorUp); - addLine('u3', 'u1', colorUp); // target - addLine('c', 't', colorTarget); - addLine('p', 'c', colorCross); // cross - addLine('cn1', 'cn2', colorCross); - addLine('cn3', 'cn4', colorCross); - addLine('cf1', 'cf2', colorCross); - addLine('cf3', 'cf4', colorCross); - function addLine(a, b, color) { - addPoint(a, color); - addPoint(b, color); - } - function addPoint(id, color) { - vertices.push(0, 0, 0); - colors.push(color.r, color.g, color.b); - if (pointMap[id] === undefined) { - pointMap[id] = []; - } - pointMap[id].push(vertices.length / 3 - 1); - } - geometry.setAttribute('position', new Float32BufferAttribute(vertices, 3)); - geometry.setAttribute('color', new Float32BufferAttribute(colors, 3)); - _this = _LineSegments.call(this, geometry, material) || this; - _this.type = 'CameraHelper'; - _this.camera = camera; - if (_this.camera.updateProjectionMatrix) _this.camera.updateProjectionMatrix(); - _this.matrix = camera.matrixWorld; - _this.matrixAutoUpdate = false; - _this.pointMap = pointMap; - _this.update(); - return _this; - } - var _proto = CameraHelper.prototype; - _proto.update = function update() { - var geometry = this.geometry; - var pointMap = this.pointMap; - var w = 1, - h = 1; // we need just camera projection matrix inverse - // world matrix must be identity - _camera.projectionMatrixInverse.copy(this.camera.projectionMatrixInverse); // center / target - - setPoint('c', pointMap, geometry, _camera, 0, 0, -1); - setPoint('t', pointMap, geometry, _camera, 0, 0, 1); // near - setPoint('n1', pointMap, geometry, _camera, -w, -h, -1); - setPoint('n2', pointMap, geometry, _camera, w, -h, -1); - setPoint('n3', pointMap, geometry, _camera, -w, h, -1); - setPoint('n4', pointMap, geometry, _camera, w, h, -1); // far - setPoint('f1', pointMap, geometry, _camera, -w, -h, 1); - setPoint('f2', pointMap, geometry, _camera, w, -h, 1); - setPoint('f3', pointMap, geometry, _camera, -w, h, 1); - setPoint('f4', pointMap, geometry, _camera, w, h, 1); // up - setPoint('u1', pointMap, geometry, _camera, w * 0.7, h * 1.1, -1); - setPoint('u2', pointMap, geometry, _camera, -w * 0.7, h * 1.1, -1); - setPoint('u3', pointMap, geometry, _camera, 0, h * 2, -1); // cross - setPoint('cf1', pointMap, geometry, _camera, -w, 0, 1); - setPoint('cf2', pointMap, geometry, _camera, w, 0, 1); - setPoint('cf3', pointMap, geometry, _camera, 0, -h, 1); - setPoint('cf4', pointMap, geometry, _camera, 0, h, 1); - setPoint('cn1', pointMap, geometry, _camera, -w, 0, -1); - setPoint('cn2', pointMap, geometry, _camera, w, 0, -1); - setPoint('cn3', pointMap, geometry, _camera, 0, -h, -1); - setPoint('cn4', pointMap, geometry, _camera, 0, h, -1); - geometry.getAttribute('position').needsUpdate = true; - }; - return CameraHelper; - }(LineSegments); - function setPoint(point, pointMap, geometry, camera, x, y, z) { - _vector$b.set(x, y, z).unproject(camera); - var points = pointMap[point]; - if (points !== undefined) { - var position = geometry.getAttribute('position'); - for (var i = 0, l = points.length; i < l; i++) { - position.setXYZ(points[i], _vector$b.x, _vector$b.y, _vector$b.z); - } - } - } - var _box$3 = /*@__PURE__*/new Box3(); - var BoxHelper = /*#__PURE__*/function (_LineSegments) { - _inheritsLoose(BoxHelper, _LineSegments); - function BoxHelper(object, color) { - var _this; - if (color === void 0) { - color = 0xffff00; - } - var indices = new Uint16Array([0, 1, 1, 2, 2, 3, 3, 0, 4, 5, 5, 6, 6, 7, 7, 4, 0, 4, 1, 5, 2, 6, 3, 7]); - var positions = new Float32Array(8 * 3); - var geometry = new BufferGeometry(); - geometry.setIndex(new BufferAttribute(indices, 1)); - geometry.setAttribute('position', new BufferAttribute(positions, 3)); - _this = _LineSegments.call(this, geometry, new LineBasicMaterial({ - color: color, - toneMapped: false - })) || this; - _this.object = object; - _this.type = 'BoxHelper'; - _this.matrixAutoUpdate = false; - _this.update(); - return _this; - } - var _proto = BoxHelper.prototype; - _proto.update = function update(object) { - if (object !== undefined) { - console.warn('THREE.BoxHelper: .update() has no longer arguments.'); - } - if (this.object !== undefined) { - _box$3.setFromObject(this.object); - } - if (_box$3.isEmpty()) return; - var min = _box$3.min; - var max = _box$3.max; - /* - 5____4 - 1/___0/| - | 6__|_7 - 2/___3/ - 0: max.x, max.y, max.z - 1: min.x, max.y, max.z - 2: min.x, min.y, max.z - 3: max.x, min.y, max.z - 4: max.x, max.y, min.z - 5: min.x, max.y, min.z - 6: min.x, min.y, min.z - 7: max.x, min.y, min.z - */ - var position = this.geometry.attributes.position; - var array = position.array; - array[0] = max.x; - array[1] = max.y; - array[2] = max.z; - array[3] = min.x; - array[4] = max.y; - array[5] = max.z; - array[6] = min.x; - array[7] = min.y; - array[8] = max.z; - array[9] = max.x; - array[10] = min.y; - array[11] = max.z; - array[12] = max.x; - array[13] = max.y; - array[14] = min.z; - array[15] = min.x; - array[16] = max.y; - array[17] = min.z; - array[18] = min.x; - array[19] = min.y; - array[20] = min.z; - array[21] = max.x; - array[22] = min.y; - array[23] = min.z; - position.needsUpdate = true; - this.geometry.computeBoundingSphere(); - }; - _proto.setFromObject = function setFromObject(object) { - this.object = object; - this.update(); - return this; - }; - _proto.copy = function copy(source) { - LineSegments.prototype.copy.call(this, source); - this.object = source.object; - return this; - }; - return BoxHelper; - }(LineSegments); - var Box3Helper = /*#__PURE__*/function (_LineSegments) { - _inheritsLoose(Box3Helper, _LineSegments); - function Box3Helper(box, color) { - var _this; - if (color === void 0) { - color = 0xffff00; - } - var indices = new Uint16Array([0, 1, 1, 2, 2, 3, 3, 0, 4, 5, 5, 6, 6, 7, 7, 4, 0, 4, 1, 5, 2, 6, 3, 7]); - var positions = [1, 1, 1, -1, 1, 1, -1, -1, 1, 1, -1, 1, 1, 1, -1, -1, 1, -1, -1, -1, -1, 1, -1, -1]; - var geometry = new BufferGeometry(); - geometry.setIndex(new BufferAttribute(indices, 1)); - geometry.setAttribute('position', new Float32BufferAttribute(positions, 3)); - _this = _LineSegments.call(this, geometry, new LineBasicMaterial({ - color: color, - toneMapped: false - })) || this; - _this.box = box; - _this.type = 'Box3Helper'; - _this.geometry.computeBoundingSphere(); - return _this; - } - var _proto = Box3Helper.prototype; - _proto.updateMatrixWorld = function updateMatrixWorld(force) { - var box = this.box; - if (box.isEmpty()) return; - box.getCenter(this.position); - box.getSize(this.scale); - this.scale.multiplyScalar(0.5); - _LineSegments.prototype.updateMatrixWorld.call(this, force); - }; - return Box3Helper; - }(LineSegments); - var PlaneHelper = /*#__PURE__*/function (_Line) { - _inheritsLoose(PlaneHelper, _Line); - function PlaneHelper(plane, size, hex) { - var _this; - if (size === void 0) { - size = 1; - } - if (hex === void 0) { - hex = 0xffff00; - } - var color = hex; - var positions = [1, -1, 1, -1, 1, 1, -1, -1, 1, 1, 1, 1, -1, 1, 1, -1, -1, 1, 1, -1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0]; - var geometry = new BufferGeometry(); - geometry.setAttribute('position', new Float32BufferAttribute(positions, 3)); - geometry.computeBoundingSphere(); - _this = _Line.call(this, geometry, new LineBasicMaterial({ - color: color, - toneMapped: false - })) || this; - _this.type = 'PlaneHelper'; - _this.plane = plane; - _this.size = size; - var positions2 = [1, 1, 1, -1, 1, 1, -1, -1, 1, 1, 1, 1, -1, -1, 1, 1, -1, 1]; - var geometry2 = new BufferGeometry(); - geometry2.setAttribute('position', new Float32BufferAttribute(positions2, 3)); - geometry2.computeBoundingSphere(); - _this.add(new Mesh(geometry2, new MeshBasicMaterial({ - color: color, - opacity: 0.2, - transparent: true, - depthWrite: false, - toneMapped: false - }))); - return _this; - } - var _proto = PlaneHelper.prototype; - _proto.updateMatrixWorld = function updateMatrixWorld(force) { - var scale = -this.plane.constant; - if (Math.abs(scale) < 1e-8) scale = 1e-8; // sign does not matter - this.scale.set(0.5 * this.size, 0.5 * this.size, scale); - this.children[0].material.side = scale < 0 ? BackSide : FrontSide; // renderer flips side when determinant < 0; flipping not wanted here - this.lookAt(this.plane.normal); - _Line.prototype.updateMatrixWorld.call(this, force); - }; - return PlaneHelper; - }(Line); - var _axis = /*@__PURE__*/new Vector3(); - var _lineGeometry, _coneGeometry; - var ArrowHelper = /*#__PURE__*/function (_Object3D) { - _inheritsLoose(ArrowHelper, _Object3D); - function ArrowHelper(dir, origin, length, color, headLength, headWidth) { - var _this; - _this = _Object3D.call(this) || this; // dir is assumed to be normalized - _this.type = 'ArrowHelper'; - if (dir === undefined) dir = new Vector3(0, 0, 1); - if (origin === undefined) origin = new Vector3(0, 0, 0); - if (length === undefined) length = 1; - if (color === undefined) color = 0xffff00; - if (headLength === undefined) headLength = 0.2 * length; - if (headWidth === undefined) headWidth = 0.2 * headLength; - if (_lineGeometry === undefined) { - _lineGeometry = new BufferGeometry(); - _lineGeometry.setAttribute('position', new Float32BufferAttribute([0, 0, 0, 0, 1, 0], 3)); - _coneGeometry = new CylinderBufferGeometry(0, 0.5, 1, 5, 1); - _coneGeometry.translate(0, -0.5, 0); - } - _this.position.copy(origin); - _this.line = new Line(_lineGeometry, new LineBasicMaterial({ - color: color, - toneMapped: false - })); - _this.line.matrixAutoUpdate = false; - _this.add(_this.line); - _this.cone = new Mesh(_coneGeometry, new MeshBasicMaterial({ - color: color, - toneMapped: false - })); - _this.cone.matrixAutoUpdate = false; - _this.add(_this.cone); - _this.setDirection(dir); - _this.setLength(length, headLength, headWidth); - return _this; - } - var _proto = ArrowHelper.prototype; - _proto.setDirection = function setDirection(dir) { - // dir is assumed to be normalized - if (dir.y > 0.99999) { - this.quaternion.set(0, 0, 0, 1); - } else if (dir.y < -0.99999) { - this.quaternion.set(1, 0, 0, 0); - } else { - _axis.set(dir.z, 0, -dir.x).normalize(); - var radians = Math.acos(dir.y); - this.quaternion.setFromAxisAngle(_axis, radians); - } - }; - _proto.setLength = function setLength(length, headLength, headWidth) { - if (headLength === undefined) headLength = 0.2 * length; - if (headWidth === undefined) headWidth = 0.2 * headLength; - this.line.scale.set(1, Math.max(0.0001, length - headLength), 1); // see #17458 - this.line.updateMatrix(); - this.cone.scale.set(headWidth, headLength, headWidth); - this.cone.position.y = length; - this.cone.updateMatrix(); - }; - _proto.setColor = function setColor(color) { - this.line.material.color.set(color); - this.cone.material.color.set(color); - }; - _proto.copy = function copy(source) { - _Object3D.prototype.copy.call(this, source, false); - this.line.copy(source.line); - this.cone.copy(source.cone); - return this; - }; - return ArrowHelper; - }(Object3D); - var AxesHelper = /*#__PURE__*/function (_LineSegments) { - _inheritsLoose(AxesHelper, _LineSegments); - function AxesHelper(size) { - var _this; - if (size === void 0) { - size = 1; - } - var vertices = [0, 0, 0, size, 0, 0, 0, 0, 0, 0, size, 0, 0, 0, 0, 0, 0, size]; - var colors = [1, 0, 0, 1, 0.6, 0, 0, 1, 0, 0.6, 1, 0, 0, 0, 1, 0, 0.6, 1]; - var geometry = new BufferGeometry(); - geometry.setAttribute('position', new Float32BufferAttribute(vertices, 3)); - geometry.setAttribute('color', new Float32BufferAttribute(colors, 3)); - var material = new LineBasicMaterial({ - vertexColors: true, - toneMapped: false - }); - _this = _LineSegments.call(this, geometry, material) || this; - _this.type = 'AxesHelper'; - return _this; - } - return AxesHelper; - }(LineSegments); - var _floatView = new Float32Array(1); - var _int32View = new Int32Array(_floatView.buffer); - var DataUtils = { - // Converts float32 to float16 (stored as uint16 value). - toHalfFloat: function toHalfFloat(val) { - // Source: http://gamedev.stackexchange.com/questions/17326/conversion-of-a-number-from-single-precision-floating-point-representation-to-a/17410#17410 - /* This method is faster than the OpenEXR implementation (very often - * used, eg. in Ogre), with the additional benefit of rounding, inspired - * by James Tursa?s half-precision code. */ - _floatView[0] = val; - var x = _int32View[0]; - var bits = x >> 16 & 0x8000; - /* Get the sign */ - var m = x >> 12 & 0x07ff; - /* Keep one extra bit for rounding */ - var e = x >> 23 & 0xff; - /* Using int is faster here */ - /* If zero, or denormal, or exponent underflows too much for a denormal - * half, return signed zero. */ - if (e < 103) return bits; - /* If NaN, return NaN. If Inf or exponent overflow, return Inf. */ - if (e > 142) { - bits |= 0x7c00; - /* If exponent was 0xff and one mantissa bit was set, it means NaN, - * not Inf, so make sure we set one mantissa bit too. */ - bits |= (e == 255 ? 0 : 1) && x & 0x007fffff; - return bits; - } - /* If exponent underflows but not too much, return a denormal */ - - if (e < 113) { - m |= 0x0800; - /* Extra rounding may overflow and set mantissa to 0 and exponent - * to 1, which is OK. */ - bits |= (m >> 114 - e) + (m >> 113 - e & 1); - return bits; - } - bits |= e - 112 << 10 | m >> 1; - /* Extra rounding. An overflow will set mantissa to 0 and increment - * the exponent, which is OK. */ - bits += m & 1; - return bits; - } - }; - var _ENCODINGS; - var LOD_MIN = 4; - var LOD_MAX = 8; - var SIZE_MAX = Math.pow(2, LOD_MAX); // The standard deviations (radians) associated with the extra mips. These are - // chosen to approximate a Trowbridge-Reitz distribution function times the - // geometric shadowing function. These sigma values squared must match the - // variance #defines in cube_uv_reflection_fragment.glsl.js. - var EXTRA_LOD_SIGMA = [0.125, 0.215, 0.35, 0.446, 0.526, 0.582]; - var TOTAL_LODS = LOD_MAX - LOD_MIN + 1 + EXTRA_LOD_SIGMA.length; // The maximum length of the blur for loop. Smaller sigmas will use fewer - // samples and exit early, but not recompile the shader. - var MAX_SAMPLES = 20; - var ENCODINGS = (_ENCODINGS = {}, _ENCODINGS[LinearEncoding] = 0, _ENCODINGS[sRGBEncoding] = 1, _ENCODINGS[RGBEEncoding] = 2, _ENCODINGS[RGBM7Encoding] = 3, _ENCODINGS[RGBM16Encoding] = 4, _ENCODINGS[RGBDEncoding] = 5, _ENCODINGS[GammaEncoding] = 6, _ENCODINGS); - var _flatCamera = /*@__PURE__*/new OrthographicCamera(); - var _createPlanes2 = /*@__PURE__*/_createPlanes(), - _lodPlanes = _createPlanes2._lodPlanes, - _sizeLods = _createPlanes2._sizeLods, - _sigmas = _createPlanes2._sigmas; - var _clearColor = /*@__PURE__*/new Color(); - var _oldTarget = null; // Golden Ratio - var PHI = (1 + Math.sqrt(5)) / 2; - var INV_PHI = 1 / PHI; // Vertices of a dodecahedron (except the opposites, which represent the - // same axis), used as axis directions evenly spread on a sphere. - var _axisDirections = [/*@__PURE__*/new Vector3(1, 1, 1), /*@__PURE__*/new Vector3(-1, 1, 1), /*@__PURE__*/new Vector3(1, 1, -1), /*@__PURE__*/new Vector3(-1, 1, -1), /*@__PURE__*/new Vector3(0, PHI, INV_PHI), /*@__PURE__*/new Vector3(0, PHI, -INV_PHI), /*@__PURE__*/new Vector3(INV_PHI, 0, PHI), /*@__PURE__*/new Vector3(-INV_PHI, 0, PHI), /*@__PURE__*/new Vector3(PHI, INV_PHI, 0), /*@__PURE__*/new Vector3(-PHI, INV_PHI, 0)]; - /** - * This class generates a Prefiltered, Mipmapped Radiance Environment Map - * (PMREM) from a cubeMap environment texture. This allows different levels of - * blur to be quickly accessed based on material roughness. It is packed into a - * special CubeUV format that allows us to perform custom interpolation so that - * we can support nonlinear formats such as RGBE. Unlike a traditional mipmap - * chain, it only goes down to the LOD_MIN level (above), and then creates extra - * even more filtered 'mips' at the same LOD_MIN resolution, associated with - * higher roughness levels. In this way we maintain resolution to smoothly - * interpolate diffuse lighting while limiting sampling computation. - */ - var PMREMGenerator = /*#__PURE__*/function () { - function PMREMGenerator(renderer) { - this._renderer = renderer; - this._pingPongRenderTarget = null; - this._blurMaterial = _getBlurShader(MAX_SAMPLES); - this._equirectShader = null; - this._cubemapShader = null; - this._compileMaterial(this._blurMaterial); - } - /** - * Generates a PMREM from a supplied Scene, which can be faster than using an - * image if networking bandwidth is low. Optional sigma specifies a blur radius - * in radians to be applied to the scene before PMREM generation. Optional near - * and far planes ensure the scene is rendered in its entirety (the cubeCamera - * is placed at the origin). - */ - - var _proto = PMREMGenerator.prototype; - _proto.fromScene = function fromScene(scene, sigma, near, far) { - if (sigma === void 0) { - sigma = 0; - } - if (near === void 0) { - near = 0.1; - } - if (far === void 0) { - far = 100; - } - _oldTarget = this._renderer.getRenderTarget(); - var cubeUVRenderTarget = this._allocateTargets(); - this._sceneToCubeUV(scene, near, far, cubeUVRenderTarget); - if (sigma > 0) { - this._blur(cubeUVRenderTarget, 0, 0, sigma); - } - this._applyPMREM(cubeUVRenderTarget); - this._cleanup(cubeUVRenderTarget); - return cubeUVRenderTarget; - } - /** - * Generates a PMREM from an equirectangular texture, which can be either LDR - * (RGBFormat) or HDR (RGBEFormat). The ideal input image size is 1k (1024 x 512), - * as this matches best with the 256 x 256 cubemap output. - */ - ; - _proto.fromEquirectangular = function fromEquirectangular(equirectangular) { - return this._fromTexture(equirectangular); - } - /** - * Generates a PMREM from an cubemap texture, which can be either LDR - * (RGBFormat) or HDR (RGBEFormat). The ideal input cube size is 256 x 256, - * as this matches best with the 256 x 256 cubemap output. - */ - ; - _proto.fromCubemap = function fromCubemap(cubemap) { - return this._fromTexture(cubemap); - } - /** - * Pre-compiles the cubemap shader. You can get faster start-up by invoking this method during - * your texture's network fetch for increased concurrency. - */ - ; - _proto.compileCubemapShader = function compileCubemapShader() { - if (this._cubemapShader === null) { - this._cubemapShader = _getCubemapShader(); - this._compileMaterial(this._cubemapShader); - } - } - /** - * Pre-compiles the equirectangular shader. You can get faster start-up by invoking this method during - * your texture's network fetch for increased concurrency. - */ - ; - _proto.compileEquirectangularShader = function compileEquirectangularShader() { - if (this._equirectShader === null) { - this._equirectShader = _getEquirectShader(); - this._compileMaterial(this._equirectShader); - } - } - /** - * Disposes of the PMREMGenerator's internal memory. Note that PMREMGenerator is a static class, - * so you should not need more than one PMREMGenerator object. If you do, calling dispose() on - * one of them will cause any others to also become unusable. - */ - ; - _proto.dispose = function dispose() { - this._blurMaterial.dispose(); - if (this._cubemapShader !== null) this._cubemapShader.dispose(); - if (this._equirectShader !== null) this._equirectShader.dispose(); - for (var i = 0; i < _lodPlanes.length; i++) { - _lodPlanes[i].dispose(); - } - } // private interface - ; - _proto._cleanup = function _cleanup(outputTarget) { - this._pingPongRenderTarget.dispose(); - this._renderer.setRenderTarget(_oldTarget); - outputTarget.scissorTest = false; - _setViewport(outputTarget, 0, 0, outputTarget.width, outputTarget.height); - }; - _proto._fromTexture = function _fromTexture(texture) { - _oldTarget = this._renderer.getRenderTarget(); - var cubeUVRenderTarget = this._allocateTargets(texture); - this._textureToCubeUV(texture, cubeUVRenderTarget); - this._applyPMREM(cubeUVRenderTarget); - this._cleanup(cubeUVRenderTarget); - return cubeUVRenderTarget; - }; - _proto._allocateTargets = function _allocateTargets(texture) { - // warning: null texture is valid - var params = { - magFilter: NearestFilter, - minFilter: NearestFilter, - generateMipmaps: false, - type: UnsignedByteType, - format: RGBEFormat, - encoding: _isLDR(texture) ? texture.encoding : RGBEEncoding, - depthBuffer: false - }; - var cubeUVRenderTarget = _createRenderTarget(params); - cubeUVRenderTarget.depthBuffer = texture ? false : true; - this._pingPongRenderTarget = _createRenderTarget(params); - return cubeUVRenderTarget; - }; - _proto._compileMaterial = function _compileMaterial(material) { - var tmpMesh = new Mesh(_lodPlanes[0], material); - this._renderer.compile(tmpMesh, _flatCamera); - }; - _proto._sceneToCubeUV = function _sceneToCubeUV(scene, near, far, cubeUVRenderTarget) { - var fov = 90; - var aspect = 1; - var cubeCamera = new PerspectiveCamera(fov, aspect, near, far); - var upSign = [1, -1, 1, 1, 1, 1]; - var forwardSign = [1, 1, 1, -1, -1, -1]; - var renderer = this._renderer; - var outputEncoding = renderer.outputEncoding; - var toneMapping = renderer.toneMapping; - renderer.getClearColor(_clearColor); - var clearAlpha = renderer.getClearAlpha(); - renderer.toneMapping = NoToneMapping; - renderer.outputEncoding = LinearEncoding; - var background = scene.background; - if (background && background.isColor) { - background.convertSRGBToLinear(); // Convert linear to RGBE - var maxComponent = Math.max(background.r, background.g, background.b); - var fExp = Math.min(Math.max(Math.ceil(Math.log2(maxComponent)), -128.0), 127.0); - background = background.multiplyScalar(Math.pow(2.0, -fExp)); - var alpha = (fExp + 128.0) / 255.0; - renderer.setClearColor(background, alpha); - scene.background = null; - } - for (var i = 0; i < 6; i++) { - var col = i % 3; - if (col == 0) { - cubeCamera.up.set(0, upSign[i], 0); - cubeCamera.lookAt(forwardSign[i], 0, 0); - } else if (col == 1) { - cubeCamera.up.set(0, 0, upSign[i]); - cubeCamera.lookAt(0, forwardSign[i], 0); - } else { - cubeCamera.up.set(0, upSign[i], 0); - cubeCamera.lookAt(0, 0, forwardSign[i]); - } - _setViewport(cubeUVRenderTarget, col * SIZE_MAX, i > 2 ? SIZE_MAX : 0, SIZE_MAX, SIZE_MAX); - renderer.setRenderTarget(cubeUVRenderTarget); - renderer.render(scene, cubeCamera); - } - renderer.toneMapping = toneMapping; - renderer.outputEncoding = outputEncoding; - renderer.setClearColor(_clearColor, clearAlpha); - }; - _proto._textureToCubeUV = function _textureToCubeUV(texture, cubeUVRenderTarget) { - var renderer = this._renderer; - if (texture.isCubeTexture) { - if (this._cubemapShader == null) { - this._cubemapShader = _getCubemapShader(); - } - } else { - if (this._equirectShader == null) { - this._equirectShader = _getEquirectShader(); - } - } - var material = texture.isCubeTexture ? this._cubemapShader : this._equirectShader; - var mesh = new Mesh(_lodPlanes[0], material); - var uniforms = material.uniforms; - uniforms['envMap'].value = texture; - if (!texture.isCubeTexture) { - uniforms['texelSize'].value.set(1.0 / texture.image.width, 1.0 / texture.image.height); - } - uniforms['inputEncoding'].value = ENCODINGS[texture.encoding]; - uniforms['outputEncoding'].value = ENCODINGS[cubeUVRenderTarget.texture.encoding]; - _setViewport(cubeUVRenderTarget, 0, 0, 3 * SIZE_MAX, 2 * SIZE_MAX); - renderer.setRenderTarget(cubeUVRenderTarget); - renderer.render(mesh, _flatCamera); - }; - _proto._applyPMREM = function _applyPMREM(cubeUVRenderTarget) { - var renderer = this._renderer; - var autoClear = renderer.autoClear; - renderer.autoClear = false; - for (var i = 1; i < TOTAL_LODS; i++) { - var sigma = Math.sqrt(_sigmas[i] * _sigmas[i] - _sigmas[i - 1] * _sigmas[i - 1]); - var poleAxis = _axisDirections[(i - 1) % _axisDirections.length]; - this._blur(cubeUVRenderTarget, i - 1, i, sigma, poleAxis); - } - renderer.autoClear = autoClear; - } - /** - * This is a two-pass Gaussian blur for a cubemap. Normally this is done - * vertically and horizontally, but this breaks down on a cube. Here we apply - * the blur latitudinally (around the poles), and then longitudinally (towards - * the poles) to approximate the orthogonally-separable blur. It is least - * accurate at the poles, but still does a decent job. - */ - ; - _proto._blur = function _blur(cubeUVRenderTarget, lodIn, lodOut, sigma, poleAxis) { - var pingPongRenderTarget = this._pingPongRenderTarget; - this._halfBlur(cubeUVRenderTarget, pingPongRenderTarget, lodIn, lodOut, sigma, 'latitudinal', poleAxis); - this._halfBlur(pingPongRenderTarget, cubeUVRenderTarget, lodOut, lodOut, sigma, 'longitudinal', poleAxis); - }; - _proto._halfBlur = function _halfBlur(targetIn, targetOut, lodIn, lodOut, sigmaRadians, direction, poleAxis) { - var renderer = this._renderer; - var blurMaterial = this._blurMaterial; - if (direction !== 'latitudinal' && direction !== 'longitudinal') { - console.error('blur direction must be either latitudinal or longitudinal!'); - } // Number of standard deviations at which to cut off the discrete approximation. - - var STANDARD_DEVIATIONS = 3; - var blurMesh = new Mesh(_lodPlanes[lodOut], blurMaterial); - var blurUniforms = blurMaterial.uniforms; - var pixels = _sizeLods[lodIn] - 1; - var radiansPerPixel = isFinite(sigmaRadians) ? Math.PI / (2 * pixels) : 2 * Math.PI / (2 * MAX_SAMPLES - 1); - var sigmaPixels = sigmaRadians / radiansPerPixel; - var samples = isFinite(sigmaRadians) ? 1 + Math.floor(STANDARD_DEVIATIONS * sigmaPixels) : MAX_SAMPLES; - if (samples > MAX_SAMPLES) { - console.warn("sigmaRadians, " + sigmaRadians + ", is too large and will clip, as it requested " + samples + " samples when the maximum is set to " + MAX_SAMPLES); - } - var weights = []; - var sum = 0; - for (var i = 0; i < MAX_SAMPLES; ++i) { - var _x = i / sigmaPixels; - var weight = Math.exp(-_x * _x / 2); - weights.push(weight); - if (i == 0) { - sum += weight; - } else if (i < samples) { - sum += 2 * weight; - } - } - for (var _i = 0; _i < weights.length; _i++) { - weights[_i] = weights[_i] / sum; - } - blurUniforms['envMap'].value = targetIn.texture; - blurUniforms['samples'].value = samples; - blurUniforms['weights'].value = weights; - blurUniforms['latitudinal'].value = direction === 'latitudinal'; - if (poleAxis) { - blurUniforms['poleAxis'].value = poleAxis; - } - blurUniforms['dTheta'].value = radiansPerPixel; - blurUniforms['mipInt'].value = LOD_MAX - lodIn; - blurUniforms['inputEncoding'].value = ENCODINGS[targetIn.texture.encoding]; - blurUniforms['outputEncoding'].value = ENCODINGS[targetIn.texture.encoding]; - var outputSize = _sizeLods[lodOut]; - var x = 3 * Math.max(0, SIZE_MAX - 2 * outputSize); - var y = (lodOut === 0 ? 0 : 2 * SIZE_MAX) + 2 * outputSize * (lodOut > LOD_MAX - LOD_MIN ? lodOut - LOD_MAX + LOD_MIN : 0); - _setViewport(targetOut, x, y, 3 * outputSize, 2 * outputSize); - renderer.setRenderTarget(targetOut); - renderer.render(blurMesh, _flatCamera); - }; - return PMREMGenerator; - }(); - function _isLDR(texture) { - if (texture === undefined || texture.type !== UnsignedByteType) return false; - return texture.encoding === LinearEncoding || texture.encoding === sRGBEncoding || texture.encoding === GammaEncoding; - } - function _createPlanes() { - var _lodPlanes = []; - var _sizeLods = []; - var _sigmas = []; - var lod = LOD_MAX; - for (var i = 0; i < TOTAL_LODS; i++) { - var sizeLod = Math.pow(2, lod); - _sizeLods.push(sizeLod); - var sigma = 1.0 / sizeLod; - if (i > LOD_MAX - LOD_MIN) { - sigma = EXTRA_LOD_SIGMA[i - LOD_MAX + LOD_MIN - 1]; - } else if (i == 0) { - sigma = 0; - } - _sigmas.push(sigma); - var texelSize = 1.0 / (sizeLod - 1); - var min = -texelSize / 2; - var max = 1 + texelSize / 2; - var uv1 = [min, min, max, min, max, max, min, min, max, max, min, max]; - var cubeFaces = 6; - var vertices = 6; - var positionSize = 3; - var uvSize = 2; - var faceIndexSize = 1; - var position = new Float32Array(positionSize * vertices * cubeFaces); - var uv = new Float32Array(uvSize * vertices * cubeFaces); - var faceIndex = new Float32Array(faceIndexSize * vertices * cubeFaces); - for (var face = 0; face < cubeFaces; face++) { - var x = face % 3 * 2 / 3 - 1; - var y = face > 2 ? 0 : -1; - var coordinates = [x, y, 0, x + 2 / 3, y, 0, x + 2 / 3, y + 1, 0, x, y, 0, x + 2 / 3, y + 1, 0, x, y + 1, 0]; - position.set(coordinates, positionSize * vertices * face); - uv.set(uv1, uvSize * vertices * face); - var fill = [face, face, face, face, face, face]; - faceIndex.set(fill, faceIndexSize * vertices * face); - } - var planes = new BufferGeometry(); - planes.setAttribute('position', new BufferAttribute(position, positionSize)); - planes.setAttribute('uv', new BufferAttribute(uv, uvSize)); - planes.setAttribute('faceIndex', new BufferAttribute(faceIndex, faceIndexSize)); - _lodPlanes.push(planes); - if (lod > LOD_MIN) { - lod--; - } - } - return { - _lodPlanes: _lodPlanes, - _sizeLods: _sizeLods, - _sigmas: _sigmas - }; - } - function _createRenderTarget(params) { - var cubeUVRenderTarget = new WebGLRenderTarget(3 * SIZE_MAX, 3 * SIZE_MAX, params); - cubeUVRenderTarget.texture.mapping = CubeUVReflectionMapping; - cubeUVRenderTarget.texture.name = 'PMREM.cubeUv'; - cubeUVRenderTarget.scissorTest = true; - return cubeUVRenderTarget; - } - function _setViewport(target, x, y, width, height) { - target.viewport.set(x, y, width, height); - target.scissor.set(x, y, width, height); - } - function _getBlurShader(maxSamples) { - var weights = new Float32Array(maxSamples); - var poleAxis = new Vector3(0, 1, 0); - var shaderMaterial = new RawShaderMaterial({ - name: 'SphericalGaussianBlur', - defines: { - 'n': maxSamples - }, - uniforms: { - 'envMap': { - value: null - }, - 'samples': { - value: 1 - }, - 'weights': { - value: weights - }, - 'latitudinal': { - value: false - }, - 'dTheta': { - value: 0 - }, - 'mipInt': { - value: 0 - }, - 'poleAxis': { - value: poleAxis - }, - 'inputEncoding': { - value: ENCODINGS[LinearEncoding] - }, - 'outputEncoding': { - value: ENCODINGS[LinearEncoding] - } - }, - vertexShader: _getCommonVertexShader(), - fragmentShader: - /* glsl */ - "\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\t\t\tuniform int samples;\n\t\t\tuniform float weights[ n ];\n\t\t\tuniform bool latitudinal;\n\t\t\tuniform float dTheta;\n\t\t\tuniform float mipInt;\n\t\t\tuniform vec3 poleAxis;\n\n\t\t\t" + _getEncodings() + "\n\n\t\t\t#define ENVMAP_TYPE_CUBE_UV\n\t\t\t#include \n\n\t\t\tvec3 getSample( float theta, vec3 axis ) {\n\n\t\t\t\tfloat cosTheta = cos( theta );\n\t\t\t\t// Rodrigues' axis-angle rotation\n\t\t\t\tvec3 sampleDirection = vOutputDirection * cosTheta\n\t\t\t\t\t+ cross( axis, vOutputDirection ) * sin( theta )\n\t\t\t\t\t+ axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta );\n\n\t\t\t\treturn bilinearCubeUV( envMap, sampleDirection, mipInt );\n\n\t\t\t}\n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection );\n\n\t\t\t\tif ( all( equal( axis, vec3( 0.0 ) ) ) ) {\n\n\t\t\t\t\taxis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x );\n\n\t\t\t\t}\n\n\t\t\t\taxis = normalize( axis );\n\n\t\t\t\tgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t\t\t\tgl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis );\n\n\t\t\t\tfor ( int i = 1; i < n; i++ ) {\n\n\t\t\t\t\tif ( i >= samples ) {\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfloat theta = dTheta * float( i );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( theta, axis );\n\n\t\t\t\t}\n\n\t\t\t\tgl_FragColor = linearToOutputTexel( gl_FragColor );\n\n\t\t\t}\n\t\t", - blending: NoBlending, - depthTest: false, - depthWrite: false - }); - return shaderMaterial; - } - function _getEquirectShader() { - var texelSize = new Vector2(1, 1); - var shaderMaterial = new RawShaderMaterial({ - name: 'EquirectangularToCubeUV', - uniforms: { - 'envMap': { - value: null - }, - 'texelSize': { - value: texelSize - }, - 'inputEncoding': { - value: ENCODINGS[LinearEncoding] - }, - 'outputEncoding': { - value: ENCODINGS[LinearEncoding] - } - }, - vertexShader: _getCommonVertexShader(), - fragmentShader: - /* glsl */ - "\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\t\t\tuniform vec2 texelSize;\n\n\t\t\t" + _getEncodings() + "\n\n\t\t\t#include \n\n\t\t\tvoid main() {\n\n\t\t\t\tgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\n\t\t\t\tvec3 outputDirection = normalize( vOutputDirection );\n\t\t\t\tvec2 uv = equirectUv( outputDirection );\n\n\t\t\t\tvec2 f = fract( uv / texelSize - 0.5 );\n\t\t\t\tuv -= f * texelSize;\n\t\t\t\tvec3 tl = envMapTexelToLinear( texture2D ( envMap, uv ) ).rgb;\n\t\t\t\tuv.x += texelSize.x;\n\t\t\t\tvec3 tr = envMapTexelToLinear( texture2D ( envMap, uv ) ).rgb;\n\t\t\t\tuv.y += texelSize.y;\n\t\t\t\tvec3 br = envMapTexelToLinear( texture2D ( envMap, uv ) ).rgb;\n\t\t\t\tuv.x -= texelSize.x;\n\t\t\t\tvec3 bl = envMapTexelToLinear( texture2D ( envMap, uv ) ).rgb;\n\n\t\t\t\tvec3 tm = mix( tl, tr, f.x );\n\t\t\t\tvec3 bm = mix( bl, br, f.x );\n\t\t\t\tgl_FragColor.rgb = mix( tm, bm, f.y );\n\n\t\t\t\tgl_FragColor = linearToOutputTexel( gl_FragColor );\n\n\t\t\t}\n\t\t", - blending: NoBlending, - depthTest: false, - depthWrite: false - }); - return shaderMaterial; - } - function _getCubemapShader() { - var shaderMaterial = new RawShaderMaterial({ - name: 'CubemapToCubeUV', - uniforms: { - 'envMap': { - value: null - }, - 'inputEncoding': { - value: ENCODINGS[LinearEncoding] - }, - 'outputEncoding': { - value: ENCODINGS[LinearEncoding] - } - }, - vertexShader: _getCommonVertexShader(), - fragmentShader: - /* glsl */ - "\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform samplerCube envMap;\n\n\t\t\t" + _getEncodings() + "\n\n\t\t\tvoid main() {\n\n\t\t\t\tgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t\t\t\tgl_FragColor.rgb = envMapTexelToLinear( textureCube( envMap, vec3( - vOutputDirection.x, vOutputDirection.yz ) ) ).rgb;\n\t\t\t\tgl_FragColor = linearToOutputTexel( gl_FragColor );\n\n\t\t\t}\n\t\t", - blending: NoBlending, - depthTest: false, - depthWrite: false - }); - return shaderMaterial; - } - function _getCommonVertexShader() { - return ( - /* glsl */ - "\n\n\t\tprecision mediump float;\n\t\tprecision mediump int;\n\n\t\tattribute vec3 position;\n\t\tattribute vec2 uv;\n\t\tattribute float faceIndex;\n\n\t\tvarying vec3 vOutputDirection;\n\n\t\t// RH coordinate system; PMREM face-indexing convention\n\t\tvec3 getDirection( vec2 uv, float face ) {\n\n\t\t\tuv = 2.0 * uv - 1.0;\n\n\t\t\tvec3 direction = vec3( uv, 1.0 );\n\n\t\t\tif ( face == 0.0 ) {\n\n\t\t\t\tdirection = direction.zyx; // ( 1, v, u ) pos x\n\n\t\t\t} else if ( face == 1.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xz *= -1.0; // ( -u, 1, -v ) pos y\n\n\t\t\t} else if ( face == 2.0 ) {\n\n\t\t\t\tdirection.x *= -1.0; // ( -u, v, 1 ) pos z\n\n\t\t\t} else if ( face == 3.0 ) {\n\n\t\t\t\tdirection = direction.zyx;\n\t\t\t\tdirection.xz *= -1.0; // ( -1, v, -u ) neg x\n\n\t\t\t} else if ( face == 4.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xy *= -1.0; // ( -u, -1, v ) neg y\n\n\t\t\t} else if ( face == 5.0 ) {\n\n\t\t\t\tdirection.z *= -1.0; // ( u, v, -1 ) neg z\n\n\t\t\t}\n\n\t\t\treturn direction;\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\tvOutputDirection = getDirection( uv, faceIndex );\n\t\t\tgl_Position = vec4( position, 1.0 );\n\n\t\t}\n\t" - ); - } - function _getEncodings() { - return ( - /* glsl */ - "\n\n\t\tuniform int inputEncoding;\n\t\tuniform int outputEncoding;\n\n\t\t#include \n\n\t\tvec4 inputTexelToLinear( vec4 value ) {\n\n\t\t\tif ( inputEncoding == 0 ) {\n\n\t\t\t\treturn value;\n\n\t\t\t} else if ( inputEncoding == 1 ) {\n\n\t\t\t\treturn sRGBToLinear( value );\n\n\t\t\t} else if ( inputEncoding == 2 ) {\n\n\t\t\t\treturn RGBEToLinear( value );\n\n\t\t\t} else if ( inputEncoding == 3 ) {\n\n\t\t\t\treturn RGBMToLinear( value, 7.0 );\n\n\t\t\t} else if ( inputEncoding == 4 ) {\n\n\t\t\t\treturn RGBMToLinear( value, 16.0 );\n\n\t\t\t} else if ( inputEncoding == 5 ) {\n\n\t\t\t\treturn RGBDToLinear( value, 256.0 );\n\n\t\t\t} else {\n\n\t\t\t\treturn GammaToLinear( value, 2.2 );\n\n\t\t\t}\n\n\t\t}\n\n\t\tvec4 linearToOutputTexel( vec4 value ) {\n\n\t\t\tif ( outputEncoding == 0 ) {\n\n\t\t\t\treturn value;\n\n\t\t\t} else if ( outputEncoding == 1 ) {\n\n\t\t\t\treturn LinearTosRGB( value );\n\n\t\t\t} else if ( outputEncoding == 2 ) {\n\n\t\t\t\treturn LinearToRGBE( value );\n\n\t\t\t} else if ( outputEncoding == 3 ) {\n\n\t\t\t\treturn LinearToRGBM( value, 7.0 );\n\n\t\t\t} else if ( outputEncoding == 4 ) {\n\n\t\t\t\treturn LinearToRGBM( value, 16.0 );\n\n\t\t\t} else if ( outputEncoding == 5 ) {\n\n\t\t\t\treturn LinearToRGBD( value, 256.0 );\n\n\t\t\t} else {\n\n\t\t\t\treturn LinearToGamma( value, 2.2 );\n\n\t\t\t}\n\n\t\t}\n\n\t\tvec4 envMapTexelToLinear( vec4 color ) {\n\n\t\t\treturn inputTexelToLinear( color );\n\n\t\t}\n\t" - ); - } - function Face4(a, b, c, d, normal, color, materialIndex) { - console.warn('THREE.Face4 has been removed. A THREE.Face3 will be created instead.'); - return new Face3(a, b, c, normal, color, materialIndex); - } - var LineStrip = 0; - var LinePieces = 1; - var NoColors = 0; - var FaceColors = 1; - var VertexColors = 2; - function MeshFaceMaterial(materials) { - console.warn('THREE.MeshFaceMaterial has been removed. Use an Array instead.'); - return materials; - } - function MultiMaterial(materials) { - if (materials === void 0) { - materials = []; - } - console.warn('THREE.MultiMaterial has been removed. Use an Array instead.'); - materials.isMultiMaterial = true; - materials.materials = materials; - materials.clone = function () { - return materials.slice(); - }; - return materials; - } - function PointCloud(geometry, material) { - console.warn('THREE.PointCloud has been renamed to THREE.Points.'); - return new Points(geometry, material); - } - function Particle(material) { - console.warn('THREE.Particle has been renamed to THREE.Sprite.'); - return new Sprite(material); - } - function ParticleSystem(geometry, material) { - console.warn('THREE.ParticleSystem has been renamed to THREE.Points.'); - return new Points(geometry, material); - } - function PointCloudMaterial(parameters) { - console.warn('THREE.PointCloudMaterial has been renamed to THREE.PointsMaterial.'); - return new PointsMaterial(parameters); - } - function ParticleBasicMaterial(parameters) { - console.warn('THREE.ParticleBasicMaterial has been renamed to THREE.PointsMaterial.'); - return new PointsMaterial(parameters); - } - function ParticleSystemMaterial(parameters) { - console.warn('THREE.ParticleSystemMaterial has been renamed to THREE.PointsMaterial.'); - return new PointsMaterial(parameters); - } - function Vertex(x, y, z) { - console.warn('THREE.Vertex has been removed. Use THREE.Vector3 instead.'); - return new Vector3(x, y, z); - } // - function DynamicBufferAttribute(array, itemSize) { - console.warn('THREE.DynamicBufferAttribute has been removed. Use new THREE.BufferAttribute().setUsage( THREE.DynamicDrawUsage ) instead.'); - return new BufferAttribute(array, itemSize).setUsage(DynamicDrawUsage); - } - function Int8Attribute(array, itemSize) { - console.warn('THREE.Int8Attribute has been removed. Use new THREE.Int8BufferAttribute() instead.'); - return new Int8BufferAttribute(array, itemSize); - } - function Uint8Attribute(array, itemSize) { - console.warn('THREE.Uint8Attribute has been removed. Use new THREE.Uint8BufferAttribute() instead.'); - return new Uint8BufferAttribute(array, itemSize); - } - function Uint8ClampedAttribute(array, itemSize) { - console.warn('THREE.Uint8ClampedAttribute has been removed. Use new THREE.Uint8ClampedBufferAttribute() instead.'); - return new Uint8ClampedBufferAttribute(array, itemSize); - } - function Int16Attribute(array, itemSize) { - console.warn('THREE.Int16Attribute has been removed. Use new THREE.Int16BufferAttribute() instead.'); - return new Int16BufferAttribute(array, itemSize); - } - function Uint16Attribute(array, itemSize) { - console.warn('THREE.Uint16Attribute has been removed. Use new THREE.Uint16BufferAttribute() instead.'); - return new Uint16BufferAttribute(array, itemSize); - } - function Int32Attribute(array, itemSize) { - console.warn('THREE.Int32Attribute has been removed. Use new THREE.Int32BufferAttribute() instead.'); - return new Int32BufferAttribute(array, itemSize); - } - function Uint32Attribute(array, itemSize) { - console.warn('THREE.Uint32Attribute has been removed. Use new THREE.Uint32BufferAttribute() instead.'); - return new Uint32BufferAttribute(array, itemSize); - } - function Float32Attribute(array, itemSize) { - console.warn('THREE.Float32Attribute has been removed. Use new THREE.Float32BufferAttribute() instead.'); - return new Float32BufferAttribute(array, itemSize); - } - function Float64Attribute(array, itemSize) { - console.warn('THREE.Float64Attribute has been removed. Use new THREE.Float64BufferAttribute() instead.'); - return new Float64BufferAttribute(array, itemSize); - } // - Curve.create = function (construct, getPoint) { - console.log('THREE.Curve.create() has been deprecated'); - construct.prototype = Object.create(Curve.prototype); - construct.prototype.constructor = construct; - construct.prototype.getPoint = getPoint; - return construct; - }; // - - Object.assign(CurvePath.prototype, { - createPointsGeometry: function createPointsGeometry(divisions) { - console.warn('THREE.CurvePath: .createPointsGeometry() has been removed. Use new THREE.Geometry().setFromPoints( points ) instead.'); // generate geometry from path points (for Line or Points objects) - var pts = this.getPoints(divisions); - return this.createGeometry(pts); - }, - createSpacedPointsGeometry: function createSpacedPointsGeometry(divisions) { - console.warn('THREE.CurvePath: .createSpacedPointsGeometry() has been removed. Use new THREE.Geometry().setFromPoints( points ) instead.'); // generate geometry from equidistant sampling along the path - var pts = this.getSpacedPoints(divisions); - return this.createGeometry(pts); - }, - createGeometry: function createGeometry(points) { - console.warn('THREE.CurvePath: .createGeometry() has been removed. Use new THREE.Geometry().setFromPoints( points ) instead.'); - var geometry = new Geometry(); - for (var i = 0, l = points.length; i < l; i++) { - var point = points[i]; - geometry.vertices.push(new Vector3(point.x, point.y, point.z || 0)); - } - return geometry; - } - }); // - Object.assign(Path.prototype, { - fromPoints: function fromPoints(points) { - console.warn('THREE.Path: .fromPoints() has been renamed to .setFromPoints().'); - return this.setFromPoints(points); - } - }); // - function ClosedSplineCurve3(points) { - console.warn('THREE.ClosedSplineCurve3 has been deprecated. Use THREE.CatmullRomCurve3 instead.'); - CatmullRomCurve3.call(this, points); - this.type = 'catmullrom'; - this.closed = true; - } - ClosedSplineCurve3.prototype = Object.create(CatmullRomCurve3.prototype); // - function SplineCurve3(points) { - console.warn('THREE.SplineCurve3 has been deprecated. Use THREE.CatmullRomCurve3 instead.'); - CatmullRomCurve3.call(this, points); - this.type = 'catmullrom'; - } - SplineCurve3.prototype = Object.create(CatmullRomCurve3.prototype); // - function Spline(points) { - console.warn('THREE.Spline has been removed. Use THREE.CatmullRomCurve3 instead.'); - CatmullRomCurve3.call(this, points); - this.type = 'catmullrom'; - } - Spline.prototype = Object.create(CatmullRomCurve3.prototype); - Object.assign(Spline.prototype, { - initFromArray: function initFromArray() - /* a */ - { - console.error('THREE.Spline: .initFromArray() has been removed.'); - }, - getControlPointsArray: function getControlPointsArray() - /* optionalTarget */ - { - console.error('THREE.Spline: .getControlPointsArray() has been removed.'); - }, - reparametrizeByArcLength: function reparametrizeByArcLength() - /* samplingCoef */ - { - console.error('THREE.Spline: .reparametrizeByArcLength() has been removed.'); - } - }); // - function AxisHelper(size) { - console.warn('THREE.AxisHelper has been renamed to THREE.AxesHelper.'); - return new AxesHelper(size); - } - function BoundingBoxHelper(object, color) { - console.warn('THREE.BoundingBoxHelper has been deprecated. Creating a THREE.BoxHelper instead.'); - return new BoxHelper(object, color); - } - function EdgesHelper(object, hex) { - console.warn('THREE.EdgesHelper has been removed. Use THREE.EdgesGeometry instead.'); - return new LineSegments(new EdgesGeometry(object.geometry), new LineBasicMaterial({ - color: hex !== undefined ? hex : 0xffffff - })); - } - GridHelper.prototype.setColors = function () { - console.error('THREE.GridHelper: setColors() has been deprecated, pass them in the constructor instead.'); - }; - SkeletonHelper.prototype.update = function () { - console.error('THREE.SkeletonHelper: update() no longer needs to be called.'); - }; - function WireframeHelper(object, hex) { - console.warn('THREE.WireframeHelper has been removed. Use THREE.WireframeGeometry instead.'); - return new LineSegments(new WireframeGeometry(object.geometry), new LineBasicMaterial({ - color: hex !== undefined ? hex : 0xffffff - })); - } // - Object.assign(Loader.prototype, { - extractUrlBase: function extractUrlBase(url) { - console.warn('THREE.Loader: .extractUrlBase() has been deprecated. Use THREE.LoaderUtils.extractUrlBase() instead.'); - return LoaderUtils.extractUrlBase(url); - } - }); - Loader.Handlers = { - add: function add() - /* regex, loader */ - { - console.error('THREE.Loader: Handlers.add() has been removed. Use LoadingManager.addHandler() instead.'); - }, - get: function get() - /* file */ - { - console.error('THREE.Loader: Handlers.get() has been removed. Use LoadingManager.getHandler() instead.'); - } - }; - function XHRLoader(manager) { - console.warn('THREE.XHRLoader has been renamed to THREE.FileLoader.'); - return new FileLoader(manager); - } - function BinaryTextureLoader(manager) { - console.warn('THREE.BinaryTextureLoader has been renamed to THREE.DataTextureLoader.'); - return new DataTextureLoader(manager); - } // - Object.assign(Box2.prototype, { - center: function center(optionalTarget) { - console.warn('THREE.Box2: .center() has been renamed to .getCenter().'); - return this.getCenter(optionalTarget); - }, - empty: function empty() { - console.warn('THREE.Box2: .empty() has been renamed to .isEmpty().'); - return this.isEmpty(); - }, - isIntersectionBox: function isIntersectionBox(box) { - console.warn('THREE.Box2: .isIntersectionBox() has been renamed to .intersectsBox().'); - return this.intersectsBox(box); - }, - size: function size(optionalTarget) { - console.warn('THREE.Box2: .size() has been renamed to .getSize().'); - return this.getSize(optionalTarget); - } - }); - Object.assign(Box3.prototype, { - center: function center(optionalTarget) { - console.warn('THREE.Box3: .center() has been renamed to .getCenter().'); - return this.getCenter(optionalTarget); - }, - empty: function empty() { - console.warn('THREE.Box3: .empty() has been renamed to .isEmpty().'); - return this.isEmpty(); - }, - isIntersectionBox: function isIntersectionBox(box) { - console.warn('THREE.Box3: .isIntersectionBox() has been renamed to .intersectsBox().'); - return this.intersectsBox(box); - }, - isIntersectionSphere: function isIntersectionSphere(sphere) { - console.warn('THREE.Box3: .isIntersectionSphere() has been renamed to .intersectsSphere().'); - return this.intersectsSphere(sphere); - }, - size: function size(optionalTarget) { - console.warn('THREE.Box3: .size() has been renamed to .getSize().'); - return this.getSize(optionalTarget); - } - }); - Object.assign(Sphere.prototype, { - empty: function empty() { - console.warn('THREE.Sphere: .empty() has been renamed to .isEmpty().'); - return this.isEmpty(); - } - }); - Frustum.prototype.setFromMatrix = function (m) { - console.warn('THREE.Frustum: .setFromMatrix() has been renamed to .setFromProjectionMatrix().'); - return this.setFromProjectionMatrix(m); - }; - Line3.prototype.center = function (optionalTarget) { - console.warn('THREE.Line3: .center() has been renamed to .getCenter().'); - return this.getCenter(optionalTarget); - }; - Object.assign(MathUtils, { - random16: function random16() { - console.warn('THREE.Math: .random16() has been deprecated. Use Math.random() instead.'); - return Math.random(); - }, - nearestPowerOfTwo: function nearestPowerOfTwo(value) { - console.warn('THREE.Math: .nearestPowerOfTwo() has been renamed to .floorPowerOfTwo().'); - return MathUtils.floorPowerOfTwo(value); - }, - nextPowerOfTwo: function nextPowerOfTwo(value) { - console.warn('THREE.Math: .nextPowerOfTwo() has been renamed to .ceilPowerOfTwo().'); - return MathUtils.ceilPowerOfTwo(value); - } - }); - Object.assign(Matrix3.prototype, { - flattenToArrayOffset: function flattenToArrayOffset(array, offset) { - console.warn('THREE.Matrix3: .flattenToArrayOffset() has been deprecated. Use .toArray() instead.'); - return this.toArray(array, offset); - }, - multiplyVector3: function multiplyVector3(vector) { - console.warn('THREE.Matrix3: .multiplyVector3() has been removed. Use vector.applyMatrix3( matrix ) instead.'); - return vector.applyMatrix3(this); - }, - multiplyVector3Array: function multiplyVector3Array() - /* a */ - { - console.error('THREE.Matrix3: .multiplyVector3Array() has been removed.'); - }, - applyToBufferAttribute: function applyToBufferAttribute(attribute) { - console.warn('THREE.Matrix3: .applyToBufferAttribute() has been removed. Use attribute.applyMatrix3( matrix ) instead.'); - return attribute.applyMatrix3(this); - }, - applyToVector3Array: function applyToVector3Array() - /* array, offset, length */ - { - console.error('THREE.Matrix3: .applyToVector3Array() has been removed.'); - }, - getInverse: function getInverse(matrix) { - console.warn('THREE.Matrix3: .getInverse() has been removed. Use matrixInv.copy( matrix ).invert(); instead.'); - return this.copy(matrix).invert(); - } - }); - Object.assign(Matrix4.prototype, { - extractPosition: function extractPosition(m) { - console.warn('THREE.Matrix4: .extractPosition() has been renamed to .copyPosition().'); - return this.copyPosition(m); - }, - flattenToArrayOffset: function flattenToArrayOffset(array, offset) { - console.warn('THREE.Matrix4: .flattenToArrayOffset() has been deprecated. Use .toArray() instead.'); - return this.toArray(array, offset); - }, - getPosition: function getPosition() { - console.warn('THREE.Matrix4: .getPosition() has been removed. Use Vector3.setFromMatrixPosition( matrix ) instead.'); - return new Vector3().setFromMatrixColumn(this, 3); - }, - setRotationFromQuaternion: function setRotationFromQuaternion(q) { - console.warn('THREE.Matrix4: .setRotationFromQuaternion() has been renamed to .makeRotationFromQuaternion().'); - return this.makeRotationFromQuaternion(q); - }, - multiplyToArray: function multiplyToArray() { - console.warn('THREE.Matrix4: .multiplyToArray() has been removed.'); - }, - multiplyVector3: function multiplyVector3(vector) { - console.warn('THREE.Matrix4: .multiplyVector3() has been removed. Use vector.applyMatrix4( matrix ) instead.'); - return vector.applyMatrix4(this); - }, - multiplyVector4: function multiplyVector4(vector) { - console.warn('THREE.Matrix4: .multiplyVector4() has been removed. Use vector.applyMatrix4( matrix ) instead.'); - return vector.applyMatrix4(this); - }, - multiplyVector3Array: function multiplyVector3Array() - /* a */ - { - console.error('THREE.Matrix4: .multiplyVector3Array() has been removed.'); - }, - rotateAxis: function rotateAxis(v) { - console.warn('THREE.Matrix4: .rotateAxis() has been removed. Use Vector3.transformDirection( matrix ) instead.'); - v.transformDirection(this); - }, - crossVector: function crossVector(vector) { - console.warn('THREE.Matrix4: .crossVector() has been removed. Use vector.applyMatrix4( matrix ) instead.'); - return vector.applyMatrix4(this); - }, - translate: function translate() { - console.error('THREE.Matrix4: .translate() has been removed.'); - }, - rotateX: function rotateX() { - console.error('THREE.Matrix4: .rotateX() has been removed.'); - }, - rotateY: function rotateY() { - console.error('THREE.Matrix4: .rotateY() has been removed.'); - }, - rotateZ: function rotateZ() { - console.error('THREE.Matrix4: .rotateZ() has been removed.'); - }, - rotateByAxis: function rotateByAxis() { - console.error('THREE.Matrix4: .rotateByAxis() has been removed.'); - }, - applyToBufferAttribute: function applyToBufferAttribute(attribute) { - console.warn('THREE.Matrix4: .applyToBufferAttribute() has been removed. Use attribute.applyMatrix4( matrix ) instead.'); - return attribute.applyMatrix4(this); - }, - applyToVector3Array: function applyToVector3Array() - /* array, offset, length */ - { - console.error('THREE.Matrix4: .applyToVector3Array() has been removed.'); - }, - makeFrustum: function makeFrustum(left, right, bottom, top, near, far) { - console.warn('THREE.Matrix4: .makeFrustum() has been removed. Use .makePerspective( left, right, top, bottom, near, far ) instead.'); - return this.makePerspective(left, right, top, bottom, near, far); - }, - getInverse: function getInverse(matrix) { - console.warn('THREE.Matrix4: .getInverse() has been removed. Use matrixInv.copy( matrix ).invert(); instead.'); - return this.copy(matrix).invert(); - } - }); - Plane.prototype.isIntersectionLine = function (line) { - console.warn('THREE.Plane: .isIntersectionLine() has been renamed to .intersectsLine().'); - return this.intersectsLine(line); - }; - Object.assign(Quaternion.prototype, { - multiplyVector3: function multiplyVector3(vector) { - console.warn('THREE.Quaternion: .multiplyVector3() has been removed. Use is now vector.applyQuaternion( quaternion ) instead.'); - return vector.applyQuaternion(this); - }, - inverse: function inverse() { - console.warn('THREE.Quaternion: .inverse() has been renamed to invert().'); - return this.invert(); - } - }); - Object.assign(Ray.prototype, { - isIntersectionBox: function isIntersectionBox(box) { - console.warn('THREE.Ray: .isIntersectionBox() has been renamed to .intersectsBox().'); - return this.intersectsBox(box); - }, - isIntersectionPlane: function isIntersectionPlane(plane) { - console.warn('THREE.Ray: .isIntersectionPlane() has been renamed to .intersectsPlane().'); - return this.intersectsPlane(plane); - }, - isIntersectionSphere: function isIntersectionSphere(sphere) { - console.warn('THREE.Ray: .isIntersectionSphere() has been renamed to .intersectsSphere().'); - return this.intersectsSphere(sphere); - } - }); - Object.assign(Triangle.prototype, { - area: function area() { - console.warn('THREE.Triangle: .area() has been renamed to .getArea().'); - return this.getArea(); - }, - barycoordFromPoint: function barycoordFromPoint(point, target) { - console.warn('THREE.Triangle: .barycoordFromPoint() has been renamed to .getBarycoord().'); - return this.getBarycoord(point, target); - }, - midpoint: function midpoint(target) { - console.warn('THREE.Triangle: .midpoint() has been renamed to .getMidpoint().'); - return this.getMidpoint(target); - }, - normal: function normal(target) { - console.warn('THREE.Triangle: .normal() has been renamed to .getNormal().'); - return this.getNormal(target); - }, - plane: function plane(target) { - console.warn('THREE.Triangle: .plane() has been renamed to .getPlane().'); - return this.getPlane(target); - } - }); - Object.assign(Triangle, { - barycoordFromPoint: function barycoordFromPoint(point, a, b, c, target) { - console.warn('THREE.Triangle: .barycoordFromPoint() has been renamed to .getBarycoord().'); - return Triangle.getBarycoord(point, a, b, c, target); - }, - normal: function normal(a, b, c, target) { - console.warn('THREE.Triangle: .normal() has been renamed to .getNormal().'); - return Triangle.getNormal(a, b, c, target); - } - }); - Object.assign(Shape.prototype, { - extractAllPoints: function extractAllPoints(divisions) { - console.warn('THREE.Shape: .extractAllPoints() has been removed. Use .extractPoints() instead.'); - return this.extractPoints(divisions); - }, - extrude: function extrude(options) { - console.warn('THREE.Shape: .extrude() has been removed. Use ExtrudeGeometry() instead.'); - return new ExtrudeGeometry(this, options); - }, - makeGeometry: function makeGeometry(options) { - console.warn('THREE.Shape: .makeGeometry() has been removed. Use ShapeGeometry() instead.'); - return new ShapeGeometry(this, options); - } - }); - Object.assign(Vector2.prototype, { - fromAttribute: function fromAttribute(attribute, index, offset) { - console.warn('THREE.Vector2: .fromAttribute() has been renamed to .fromBufferAttribute().'); - return this.fromBufferAttribute(attribute, index, offset); - }, - distanceToManhattan: function distanceToManhattan(v) { - console.warn('THREE.Vector2: .distanceToManhattan() has been renamed to .manhattanDistanceTo().'); - return this.manhattanDistanceTo(v); - }, - lengthManhattan: function lengthManhattan() { - console.warn('THREE.Vector2: .lengthManhattan() has been renamed to .manhattanLength().'); - return this.manhattanLength(); - } - }); - Object.assign(Vector3.prototype, { - setEulerFromRotationMatrix: function setEulerFromRotationMatrix() { - console.error('THREE.Vector3: .setEulerFromRotationMatrix() has been removed. Use Euler.setFromRotationMatrix() instead.'); - }, - setEulerFromQuaternion: function setEulerFromQuaternion() { - console.error('THREE.Vector3: .setEulerFromQuaternion() has been removed. Use Euler.setFromQuaternion() instead.'); - }, - getPositionFromMatrix: function getPositionFromMatrix(m) { - console.warn('THREE.Vector3: .getPositionFromMatrix() has been renamed to .setFromMatrixPosition().'); - return this.setFromMatrixPosition(m); - }, - getScaleFromMatrix: function getScaleFromMatrix(m) { - console.warn('THREE.Vector3: .getScaleFromMatrix() has been renamed to .setFromMatrixScale().'); - return this.setFromMatrixScale(m); - }, - getColumnFromMatrix: function getColumnFromMatrix(index, matrix) { - console.warn('THREE.Vector3: .getColumnFromMatrix() has been renamed to .setFromMatrixColumn().'); - return this.setFromMatrixColumn(matrix, index); - }, - applyProjection: function applyProjection(m) { - console.warn('THREE.Vector3: .applyProjection() has been removed. Use .applyMatrix4( m ) instead.'); - return this.applyMatrix4(m); - }, - fromAttribute: function fromAttribute(attribute, index, offset) { - console.warn('THREE.Vector3: .fromAttribute() has been renamed to .fromBufferAttribute().'); - return this.fromBufferAttribute(attribute, index, offset); - }, - distanceToManhattan: function distanceToManhattan(v) { - console.warn('THREE.Vector3: .distanceToManhattan() has been renamed to .manhattanDistanceTo().'); - return this.manhattanDistanceTo(v); - }, - lengthManhattan: function lengthManhattan() { - console.warn('THREE.Vector3: .lengthManhattan() has been renamed to .manhattanLength().'); - return this.manhattanLength(); - } - }); - Object.assign(Vector4.prototype, { - fromAttribute: function fromAttribute(attribute, index, offset) { - console.warn('THREE.Vector4: .fromAttribute() has been renamed to .fromBufferAttribute().'); - return this.fromBufferAttribute(attribute, index, offset); - }, - lengthManhattan: function lengthManhattan() { - console.warn('THREE.Vector4: .lengthManhattan() has been renamed to .manhattanLength().'); - return this.manhattanLength(); - } - }); // - Object.assign(Geometry.prototype, { - computeTangents: function computeTangents() { - console.error('THREE.Geometry: .computeTangents() has been removed.'); - }, - computeLineDistances: function computeLineDistances() { - console.error('THREE.Geometry: .computeLineDistances() has been removed. Use THREE.Line.computeLineDistances() instead.'); - }, - applyMatrix: function applyMatrix(matrix) { - console.warn('THREE.Geometry: .applyMatrix() has been renamed to .applyMatrix4().'); - return this.applyMatrix4(matrix); - } - }); - Object.assign(Object3D.prototype, { - getChildByName: function getChildByName(name) { - console.warn('THREE.Object3D: .getChildByName() has been renamed to .getObjectByName().'); - return this.getObjectByName(name); - }, - renderDepth: function renderDepth() { - console.warn('THREE.Object3D: .renderDepth has been removed. Use .renderOrder, instead.'); - }, - translate: function translate(distance, axis) { - console.warn('THREE.Object3D: .translate() has been removed. Use .translateOnAxis( axis, distance ) instead.'); - return this.translateOnAxis(axis, distance); - }, - getWorldRotation: function getWorldRotation() { - console.error('THREE.Object3D: .getWorldRotation() has been removed. Use THREE.Object3D.getWorldQuaternion( target ) instead.'); - }, - applyMatrix: function applyMatrix(matrix) { - console.warn('THREE.Object3D: .applyMatrix() has been renamed to .applyMatrix4().'); - return this.applyMatrix4(matrix); - } - }); - Object.defineProperties(Object3D.prototype, { - eulerOrder: { - get: function get() { - console.warn('THREE.Object3D: .eulerOrder is now .rotation.order.'); - return this.rotation.order; - }, - set: function set(value) { - console.warn('THREE.Object3D: .eulerOrder is now .rotation.order.'); - this.rotation.order = value; - } - }, - useQuaternion: { - get: function get() { - console.warn('THREE.Object3D: .useQuaternion has been removed. The library now uses quaternions by default.'); - }, - set: function set() { - console.warn('THREE.Object3D: .useQuaternion has been removed. The library now uses quaternions by default.'); - } - } - }); - Object.assign(Mesh.prototype, { - setDrawMode: function setDrawMode() { - console.error('THREE.Mesh: .setDrawMode() has been removed. The renderer now always assumes THREE.TrianglesDrawMode. Transform your geometry via BufferGeometryUtils.toTrianglesDrawMode() if necessary.'); - } - }); - Object.defineProperties(Mesh.prototype, { - drawMode: { - get: function get() { - console.error('THREE.Mesh: .drawMode has been removed. The renderer now always assumes THREE.TrianglesDrawMode.'); - return TrianglesDrawMode; - }, - set: function set() { - console.error('THREE.Mesh: .drawMode has been removed. The renderer now always assumes THREE.TrianglesDrawMode. Transform your geometry via BufferGeometryUtils.toTrianglesDrawMode() if necessary.'); - } - } - }); - Object.defineProperties(LOD.prototype, { - objects: { - get: function get() { - console.warn('THREE.LOD: .objects has been renamed to .levels.'); - return this.levels; - } - } - }); - Object.defineProperty(Skeleton.prototype, 'useVertexTexture', { - get: function get() { - console.warn('THREE.Skeleton: useVertexTexture has been removed.'); - }, - set: function set() { - console.warn('THREE.Skeleton: useVertexTexture has been removed.'); - } - }); - SkinnedMesh.prototype.initBones = function () { - console.error('THREE.SkinnedMesh: initBones() has been removed.'); - }; - Object.defineProperty(Curve.prototype, '__arcLengthDivisions', { - get: function get() { - console.warn('THREE.Curve: .__arcLengthDivisions is now .arcLengthDivisions.'); - return this.arcLengthDivisions; - }, - set: function set(value) { - console.warn('THREE.Curve: .__arcLengthDivisions is now .arcLengthDivisions.'); - this.arcLengthDivisions = value; - } - }); // - PerspectiveCamera.prototype.setLens = function (focalLength, filmGauge) { - console.warn('THREE.PerspectiveCamera.setLens is deprecated. ' + 'Use .setFocalLength and .filmGauge for a photographic setup.'); - if (filmGauge !== undefined) this.filmGauge = filmGauge; - this.setFocalLength(focalLength); - }; // - - Object.defineProperties(Light.prototype, { - onlyShadow: { - set: function set() { - console.warn('THREE.Light: .onlyShadow has been removed.'); - } - }, - shadowCameraFov: { - set: function set(value) { - console.warn('THREE.Light: .shadowCameraFov is now .shadow.camera.fov.'); - this.shadow.camera.fov = value; - } - }, - shadowCameraLeft: { - set: function set(value) { - console.warn('THREE.Light: .shadowCameraLeft is now .shadow.camera.left.'); - this.shadow.camera.left = value; - } - }, - shadowCameraRight: { - set: function set(value) { - console.warn('THREE.Light: .shadowCameraRight is now .shadow.camera.right.'); - this.shadow.camera.right = value; - } - }, - shadowCameraTop: { - set: function set(value) { - console.warn('THREE.Light: .shadowCameraTop is now .shadow.camera.top.'); - this.shadow.camera.top = value; - } - }, - shadowCameraBottom: { - set: function set(value) { - console.warn('THREE.Light: .shadowCameraBottom is now .shadow.camera.bottom.'); - this.shadow.camera.bottom = value; - } - }, - shadowCameraNear: { - set: function set(value) { - console.warn('THREE.Light: .shadowCameraNear is now .shadow.camera.near.'); - this.shadow.camera.near = value; - } - }, - shadowCameraFar: { - set: function set(value) { - console.warn('THREE.Light: .shadowCameraFar is now .shadow.camera.far.'); - this.shadow.camera.far = value; - } - }, - shadowCameraVisible: { - set: function set() { - console.warn('THREE.Light: .shadowCameraVisible has been removed. Use new THREE.CameraHelper( light.shadow.camera ) instead.'); - } - }, - shadowBias: { - set: function set(value) { - console.warn('THREE.Light: .shadowBias is now .shadow.bias.'); - this.shadow.bias = value; - } - }, - shadowDarkness: { - set: function set() { - console.warn('THREE.Light: .shadowDarkness has been removed.'); - } - }, - shadowMapWidth: { - set: function set(value) { - console.warn('THREE.Light: .shadowMapWidth is now .shadow.mapSize.width.'); - this.shadow.mapSize.width = value; - } - }, - shadowMapHeight: { - set: function set(value) { - console.warn('THREE.Light: .shadowMapHeight is now .shadow.mapSize.height.'); - this.shadow.mapSize.height = value; - } - } - }); // - Object.defineProperties(BufferAttribute.prototype, { - length: { - get: function get() { - console.warn('THREE.BufferAttribute: .length has been deprecated. Use .count instead.'); - return this.array.length; - } - }, - dynamic: { - get: function get() { - console.warn('THREE.BufferAttribute: .dynamic has been deprecated. Use .usage instead.'); - return this.usage === DynamicDrawUsage; - }, - set: function set() - /* value */ - { - console.warn('THREE.BufferAttribute: .dynamic has been deprecated. Use .usage instead.'); - this.setUsage(DynamicDrawUsage); - } - } - }); - Object.assign(BufferAttribute.prototype, { - setDynamic: function setDynamic(value) { - console.warn('THREE.BufferAttribute: .setDynamic() has been deprecated. Use .setUsage() instead.'); - this.setUsage(value === true ? DynamicDrawUsage : StaticDrawUsage); - return this; - }, - copyIndicesArray: function copyIndicesArray() - /* indices */ - { - console.error('THREE.BufferAttribute: .copyIndicesArray() has been removed.'); - }, - setArray: function setArray() - /* array */ - { - console.error('THREE.BufferAttribute: .setArray has been removed. Use BufferGeometry .setAttribute to replace/resize attribute buffers'); - } - }); - Object.assign(BufferGeometry.prototype, { - addIndex: function addIndex(index) { - console.warn('THREE.BufferGeometry: .addIndex() has been renamed to .setIndex().'); - this.setIndex(index); - }, - addAttribute: function addAttribute(name, attribute) { - console.warn('THREE.BufferGeometry: .addAttribute() has been renamed to .setAttribute().'); - if (!(attribute && attribute.isBufferAttribute) && !(attribute && attribute.isInterleavedBufferAttribute)) { - console.warn('THREE.BufferGeometry: .addAttribute() now expects ( name, attribute ).'); - return this.setAttribute(name, new BufferAttribute(arguments[1], arguments[2])); - } - if (name === 'index') { - console.warn('THREE.BufferGeometry.addAttribute: Use .setIndex() for index attribute.'); - this.setIndex(attribute); - return this; - } - return this.setAttribute(name, attribute); - }, - addDrawCall: function addDrawCall(start, count, indexOffset) { - if (indexOffset !== undefined) { - console.warn('THREE.BufferGeometry: .addDrawCall() no longer supports indexOffset.'); - } - console.warn('THREE.BufferGeometry: .addDrawCall() is now .addGroup().'); - this.addGroup(start, count); - }, - clearDrawCalls: function clearDrawCalls() { - console.warn('THREE.BufferGeometry: .clearDrawCalls() is now .clearGroups().'); - this.clearGroups(); - }, - computeTangents: function computeTangents() { - console.warn('THREE.BufferGeometry: .computeTangents() has been removed.'); - }, - computeOffsets: function computeOffsets() { - console.warn('THREE.BufferGeometry: .computeOffsets() has been removed.'); - }, - removeAttribute: function removeAttribute(name) { - console.warn('THREE.BufferGeometry: .removeAttribute() has been renamed to .deleteAttribute().'); - return this.deleteAttribute(name); - }, - applyMatrix: function applyMatrix(matrix) { - console.warn('THREE.BufferGeometry: .applyMatrix() has been renamed to .applyMatrix4().'); - return this.applyMatrix4(matrix); - } - }); - Object.defineProperties(BufferGeometry.prototype, { - drawcalls: { - get: function get() { - console.error('THREE.BufferGeometry: .drawcalls has been renamed to .groups.'); - return this.groups; - } - }, - offsets: { - get: function get() { - console.warn('THREE.BufferGeometry: .offsets has been renamed to .groups.'); - return this.groups; - } - } - }); - Object.defineProperties(InstancedBufferGeometry.prototype, { - maxInstancedCount: { - get: function get() { - console.warn('THREE.InstancedBufferGeometry: .maxInstancedCount has been renamed to .instanceCount.'); - return this.instanceCount; - }, - set: function set(value) { - console.warn('THREE.InstancedBufferGeometry: .maxInstancedCount has been renamed to .instanceCount.'); - this.instanceCount = value; - } - } - }); - Object.defineProperties(Raycaster.prototype, { - linePrecision: { - get: function get() { - console.warn('THREE.Raycaster: .linePrecision has been deprecated. Use .params.Line.threshold instead.'); - return this.params.Line.threshold; - }, - set: function set(value) { - console.warn('THREE.Raycaster: .linePrecision has been deprecated. Use .params.Line.threshold instead.'); - this.params.Line.threshold = value; - } - } - }); - Object.defineProperties(InterleavedBuffer.prototype, { - dynamic: { - get: function get() { - console.warn('THREE.InterleavedBuffer: .length has been deprecated. Use .usage instead.'); - return this.usage === DynamicDrawUsage; - }, - set: function set(value) { - console.warn('THREE.InterleavedBuffer: .length has been deprecated. Use .usage instead.'); - this.setUsage(value); - } - } - }); - Object.assign(InterleavedBuffer.prototype, { - setDynamic: function setDynamic(value) { - console.warn('THREE.InterleavedBuffer: .setDynamic() has been deprecated. Use .setUsage() instead.'); - this.setUsage(value === true ? DynamicDrawUsage : StaticDrawUsage); - return this; - }, - setArray: function setArray() - /* array */ - { - console.error('THREE.InterleavedBuffer: .setArray has been removed. Use BufferGeometry .setAttribute to replace/resize attribute buffers'); - } - }); // - Object.assign(ExtrudeBufferGeometry.prototype, { - getArrays: function getArrays() { - console.error('THREE.ExtrudeBufferGeometry: .getArrays() has been removed.'); - }, - addShapeList: function addShapeList() { - console.error('THREE.ExtrudeBufferGeometry: .addShapeList() has been removed.'); - }, - addShape: function addShape() { - console.error('THREE.ExtrudeBufferGeometry: .addShape() has been removed.'); - } - }); // - Object.assign(Scene.prototype, { - dispose: function dispose() { - console.error('THREE.Scene: .dispose() has been removed.'); - } - }); // - Object.defineProperties(Uniform.prototype, { - dynamic: { - set: function set() { - console.warn('THREE.Uniform: .dynamic has been removed. Use object.onBeforeRender() instead.'); - } - }, - onUpdate: { - value: function value() { - console.warn('THREE.Uniform: .onUpdate() has been removed. Use object.onBeforeRender() instead.'); - return this; - } - } - }); // - Object.defineProperties(Material.prototype, { - wrapAround: { - get: function get() { - console.warn('THREE.Material: .wrapAround has been removed.'); - }, - set: function set() { - console.warn('THREE.Material: .wrapAround has been removed.'); - } - }, - overdraw: { - get: function get() { - console.warn('THREE.Material: .overdraw has been removed.'); - }, - set: function set() { - console.warn('THREE.Material: .overdraw has been removed.'); - } - }, - wrapRGB: { - get: function get() { - console.warn('THREE.Material: .wrapRGB has been removed.'); - return new Color(); - } - }, - shading: { - get: function get() { - console.error('THREE.' + this.type + ': .shading has been removed. Use the boolean .flatShading instead.'); - }, - set: function set(value) { - console.warn('THREE.' + this.type + ': .shading has been removed. Use the boolean .flatShading instead.'); - this.flatShading = value === FlatShading; - } - }, - stencilMask: { - get: function get() { - console.warn('THREE.' + this.type + ': .stencilMask has been removed. Use .stencilFuncMask instead.'); - return this.stencilFuncMask; - }, - set: function set(value) { - console.warn('THREE.' + this.type + ': .stencilMask has been removed. Use .stencilFuncMask instead.'); - this.stencilFuncMask = value; - } - } - }); - Object.defineProperties(MeshPhongMaterial.prototype, { - metal: { - get: function get() { - console.warn('THREE.MeshPhongMaterial: .metal has been removed. Use THREE.MeshStandardMaterial instead.'); - return false; - }, - set: function set() { - console.warn('THREE.MeshPhongMaterial: .metal has been removed. Use THREE.MeshStandardMaterial instead'); - } - } - }); - Object.defineProperties(MeshPhysicalMaterial.prototype, { - transparency: { - get: function get() { - console.warn('THREE.MeshPhysicalMaterial: .transparency has been renamed to .transmission.'); - return this.transmission; - }, - set: function set(value) { - console.warn('THREE.MeshPhysicalMaterial: .transparency has been renamed to .transmission.'); - this.transmission = value; - } - } - }); - Object.defineProperties(ShaderMaterial.prototype, { - derivatives: { - get: function get() { - console.warn('THREE.ShaderMaterial: .derivatives has been moved to .extensions.derivatives.'); - return this.extensions.derivatives; - }, - set: function set(value) { - console.warn('THREE. ShaderMaterial: .derivatives has been moved to .extensions.derivatives.'); - this.extensions.derivatives = value; - } - } - }); // - Object.assign(WebGLRenderer.prototype, { - clearTarget: function clearTarget(renderTarget, color, depth, stencil) { - console.warn('THREE.WebGLRenderer: .clearTarget() has been deprecated. Use .setRenderTarget() and .clear() instead.'); - this.setRenderTarget(renderTarget); - this.clear(color, depth, stencil); - }, - animate: function animate(callback) { - console.warn('THREE.WebGLRenderer: .animate() is now .setAnimationLoop().'); - this.setAnimationLoop(callback); - }, - getCurrentRenderTarget: function getCurrentRenderTarget() { - console.warn('THREE.WebGLRenderer: .getCurrentRenderTarget() is now .getRenderTarget().'); - return this.getRenderTarget(); - }, - getMaxAnisotropy: function getMaxAnisotropy() { - console.warn('THREE.WebGLRenderer: .getMaxAnisotropy() is now .capabilities.getMaxAnisotropy().'); - return this.capabilities.getMaxAnisotropy(); - }, - getPrecision: function getPrecision() { - console.warn('THREE.WebGLRenderer: .getPrecision() is now .capabilities.precision.'); - return this.capabilities.precision; - }, - resetGLState: function resetGLState() { - console.warn('THREE.WebGLRenderer: .resetGLState() is now .state.reset().'); - return this.state.reset(); - }, - supportsFloatTextures: function supportsFloatTextures() { - console.warn('THREE.WebGLRenderer: .supportsFloatTextures() is now .extensions.get( \'OES_texture_float\' ).'); - return this.extensions.get('OES_texture_float'); - }, - supportsHalfFloatTextures: function supportsHalfFloatTextures() { - console.warn('THREE.WebGLRenderer: .supportsHalfFloatTextures() is now .extensions.get( \'OES_texture_half_float\' ).'); - return this.extensions.get('OES_texture_half_float'); - }, - supportsStandardDerivatives: function supportsStandardDerivatives() { - console.warn('THREE.WebGLRenderer: .supportsStandardDerivatives() is now .extensions.get( \'OES_standard_derivatives\' ).'); - return this.extensions.get('OES_standard_derivatives'); - }, - supportsCompressedTextureS3TC: function supportsCompressedTextureS3TC() { - console.warn('THREE.WebGLRenderer: .supportsCompressedTextureS3TC() is now .extensions.get( \'WEBGL_compressed_texture_s3tc\' ).'); - return this.extensions.get('WEBGL_compressed_texture_s3tc'); - }, - supportsCompressedTexturePVRTC: function supportsCompressedTexturePVRTC() { - console.warn('THREE.WebGLRenderer: .supportsCompressedTexturePVRTC() is now .extensions.get( \'WEBGL_compressed_texture_pvrtc\' ).'); - return this.extensions.get('WEBGL_compressed_texture_pvrtc'); - }, - supportsBlendMinMax: function supportsBlendMinMax() { - console.warn('THREE.WebGLRenderer: .supportsBlendMinMax() is now .extensions.get( \'EXT_blend_minmax\' ).'); - return this.extensions.get('EXT_blend_minmax'); - }, - supportsVertexTextures: function supportsVertexTextures() { - console.warn('THREE.WebGLRenderer: .supportsVertexTextures() is now .capabilities.vertexTextures.'); - return this.capabilities.vertexTextures; - }, - supportsInstancedArrays: function supportsInstancedArrays() { - console.warn('THREE.WebGLRenderer: .supportsInstancedArrays() is now .extensions.get( \'ANGLE_instanced_arrays\' ).'); - return this.extensions.get('ANGLE_instanced_arrays'); - }, - enableScissorTest: function enableScissorTest(boolean) { - console.warn('THREE.WebGLRenderer: .enableScissorTest() is now .setScissorTest().'); - this.setScissorTest(boolean); - }, - initMaterial: function initMaterial() { - console.warn('THREE.WebGLRenderer: .initMaterial() has been removed.'); - }, - addPrePlugin: function addPrePlugin() { - console.warn('THREE.WebGLRenderer: .addPrePlugin() has been removed.'); - }, - addPostPlugin: function addPostPlugin() { - console.warn('THREE.WebGLRenderer: .addPostPlugin() has been removed.'); - }, - updateShadowMap: function updateShadowMap() { - console.warn('THREE.WebGLRenderer: .updateShadowMap() has been removed.'); - }, - setFaceCulling: function setFaceCulling() { - console.warn('THREE.WebGLRenderer: .setFaceCulling() has been removed.'); - }, - allocTextureUnit: function allocTextureUnit() { - console.warn('THREE.WebGLRenderer: .allocTextureUnit() has been removed.'); - }, - setTexture: function setTexture() { - console.warn('THREE.WebGLRenderer: .setTexture() has been removed.'); - }, - setTexture2D: function setTexture2D() { - console.warn('THREE.WebGLRenderer: .setTexture2D() has been removed.'); - }, - setTextureCube: function setTextureCube() { - console.warn('THREE.WebGLRenderer: .setTextureCube() has been removed.'); - }, - getActiveMipMapLevel: function getActiveMipMapLevel() { - console.warn('THREE.WebGLRenderer: .getActiveMipMapLevel() is now .getActiveMipmapLevel().'); - return this.getActiveMipmapLevel(); - } - }); - Object.defineProperties(WebGLRenderer.prototype, { - shadowMapEnabled: { - get: function get() { - return this.shadowMap.enabled; - }, - set: function set(value) { - console.warn('THREE.WebGLRenderer: .shadowMapEnabled is now .shadowMap.enabled.'); - this.shadowMap.enabled = value; - } - }, - shadowMapType: { - get: function get() { - return this.shadowMap.type; - }, - set: function set(value) { - console.warn('THREE.WebGLRenderer: .shadowMapType is now .shadowMap.type.'); - this.shadowMap.type = value; - } - }, - shadowMapCullFace: { - get: function get() { - console.warn('THREE.WebGLRenderer: .shadowMapCullFace has been removed. Set Material.shadowSide instead.'); - return undefined; - }, - set: function set() - /* value */ - { - console.warn('THREE.WebGLRenderer: .shadowMapCullFace has been removed. Set Material.shadowSide instead.'); - } - }, - context: { - get: function get() { - console.warn('THREE.WebGLRenderer: .context has been removed. Use .getContext() instead.'); - return this.getContext(); - } - }, - vr: { - get: function get() { - console.warn('THREE.WebGLRenderer: .vr has been renamed to .xr'); - return this.xr; - } - }, - gammaInput: { - get: function get() { - console.warn('THREE.WebGLRenderer: .gammaInput has been removed. Set the encoding for textures via Texture.encoding instead.'); - return false; - }, - set: function set() { - console.warn('THREE.WebGLRenderer: .gammaInput has been removed. Set the encoding for textures via Texture.encoding instead.'); - } - }, - gammaOutput: { - get: function get() { - console.warn('THREE.WebGLRenderer: .gammaOutput has been removed. Set WebGLRenderer.outputEncoding instead.'); - return false; - }, - set: function set(value) { - console.warn('THREE.WebGLRenderer: .gammaOutput has been removed. Set WebGLRenderer.outputEncoding instead.'); - this.outputEncoding = value === true ? sRGBEncoding : LinearEncoding; - } - }, - toneMappingWhitePoint: { - get: function get() { - console.warn('THREE.WebGLRenderer: .toneMappingWhitePoint has been removed.'); - return 1.0; - }, - set: function set() { - console.warn('THREE.WebGLRenderer: .toneMappingWhitePoint has been removed.'); - } - } - }); - Object.defineProperties(WebGLShadowMap.prototype, { - cullFace: { - get: function get() { - console.warn('THREE.WebGLRenderer: .shadowMap.cullFace has been removed. Set Material.shadowSide instead.'); - return undefined; - }, - set: function set() - /* cullFace */ - { - console.warn('THREE.WebGLRenderer: .shadowMap.cullFace has been removed. Set Material.shadowSide instead.'); - } - }, - renderReverseSided: { - get: function get() { - console.warn('THREE.WebGLRenderer: .shadowMap.renderReverseSided has been removed. Set Material.shadowSide instead.'); - return undefined; - }, - set: function set() { - console.warn('THREE.WebGLRenderer: .shadowMap.renderReverseSided has been removed. Set Material.shadowSide instead.'); - } - }, - renderSingleSided: { - get: function get() { - console.warn('THREE.WebGLRenderer: .shadowMap.renderSingleSided has been removed. Set Material.shadowSide instead.'); - return undefined; - }, - set: function set() { - console.warn('THREE.WebGLRenderer: .shadowMap.renderSingleSided has been removed. Set Material.shadowSide instead.'); - } - } - }); - function WebGLRenderTargetCube(width, height, options) { - console.warn('THREE.WebGLRenderTargetCube( width, height, options ) is now WebGLCubeRenderTarget( size, options ).'); - return new WebGLCubeRenderTarget(width, options); - } // - Object.defineProperties(WebGLRenderTarget.prototype, { - wrapS: { - get: function get() { - console.warn('THREE.WebGLRenderTarget: .wrapS is now .texture.wrapS.'); - return this.texture.wrapS; - }, - set: function set(value) { - console.warn('THREE.WebGLRenderTarget: .wrapS is now .texture.wrapS.'); - this.texture.wrapS = value; - } - }, - wrapT: { - get: function get() { - console.warn('THREE.WebGLRenderTarget: .wrapT is now .texture.wrapT.'); - return this.texture.wrapT; - }, - set: function set(value) { - console.warn('THREE.WebGLRenderTarget: .wrapT is now .texture.wrapT.'); - this.texture.wrapT = value; - } - }, - magFilter: { - get: function get() { - console.warn('THREE.WebGLRenderTarget: .magFilter is now .texture.magFilter.'); - return this.texture.magFilter; - }, - set: function set(value) { - console.warn('THREE.WebGLRenderTarget: .magFilter is now .texture.magFilter.'); - this.texture.magFilter = value; - } - }, - minFilter: { - get: function get() { - console.warn('THREE.WebGLRenderTarget: .minFilter is now .texture.minFilter.'); - return this.texture.minFilter; - }, - set: function set(value) { - console.warn('THREE.WebGLRenderTarget: .minFilter is now .texture.minFilter.'); - this.texture.minFilter = value; - } - }, - anisotropy: { - get: function get() { - console.warn('THREE.WebGLRenderTarget: .anisotropy is now .texture.anisotropy.'); - return this.texture.anisotropy; - }, - set: function set(value) { - console.warn('THREE.WebGLRenderTarget: .anisotropy is now .texture.anisotropy.'); - this.texture.anisotropy = value; - } - }, - offset: { - get: function get() { - console.warn('THREE.WebGLRenderTarget: .offset is now .texture.offset.'); - return this.texture.offset; - }, - set: function set(value) { - console.warn('THREE.WebGLRenderTarget: .offset is now .texture.offset.'); - this.texture.offset = value; - } - }, - repeat: { - get: function get() { - console.warn('THREE.WebGLRenderTarget: .repeat is now .texture.repeat.'); - return this.texture.repeat; - }, - set: function set(value) { - console.warn('THREE.WebGLRenderTarget: .repeat is now .texture.repeat.'); - this.texture.repeat = value; - } - }, - format: { - get: function get() { - console.warn('THREE.WebGLRenderTarget: .format is now .texture.format.'); - return this.texture.format; - }, - set: function set(value) { - console.warn('THREE.WebGLRenderTarget: .format is now .texture.format.'); - this.texture.format = value; - } - }, - type: { - get: function get() { - console.warn('THREE.WebGLRenderTarget: .type is now .texture.type.'); - return this.texture.type; - }, - set: function set(value) { - console.warn('THREE.WebGLRenderTarget: .type is now .texture.type.'); - this.texture.type = value; - } - }, - generateMipmaps: { - get: function get() { - console.warn('THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps.'); - return this.texture.generateMipmaps; - }, - set: function set(value) { - console.warn('THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps.'); - this.texture.generateMipmaps = value; - } - } - }); // - Object.defineProperties(Audio.prototype, { - load: { - value: function value(file) { - console.warn('THREE.Audio: .load has been deprecated. Use THREE.AudioLoader instead.'); - var scope = this; - var audioLoader = new AudioLoader(); - audioLoader.load(file, function (buffer) { - scope.setBuffer(buffer); - }); - return this; - } - }, - startTime: { - set: function set() { - console.warn('THREE.Audio: .startTime is now .play( delay ).'); - } - } - }); - AudioAnalyser.prototype.getData = function () { - console.warn('THREE.AudioAnalyser: .getData() is now .getFrequencyData().'); - return this.getFrequencyData(); - }; // - - CubeCamera.prototype.updateCubeMap = function (renderer, scene) { - console.warn('THREE.CubeCamera: .updateCubeMap() is now .update().'); - return this.update(renderer, scene); - }; - CubeCamera.prototype.clear = function (renderer, color, depth, stencil) { - console.warn('THREE.CubeCamera: .clear() is now .renderTarget.clear().'); - return this.renderTarget.clear(renderer, color, depth, stencil); - }; // - - var GeometryUtils = { - merge: function merge(geometry1, geometry2, materialIndexOffset) { - console.warn('THREE.GeometryUtils: .merge() has been moved to Geometry. Use geometry.merge( geometry2, matrix, materialIndexOffset ) instead.'); - var matrix; - if (geometry2.isMesh) { - geometry2.matrixAutoUpdate && geometry2.updateMatrix(); - matrix = geometry2.matrix; - geometry2 = geometry2.geometry; - } - geometry1.merge(geometry2, matrix, materialIndexOffset); - }, - center: function center(geometry) { - console.warn('THREE.GeometryUtils: .center() has been moved to Geometry. Use geometry.center() instead.'); - return geometry.center(); - } - }; - ImageUtils.crossOrigin = undefined; - ImageUtils.loadTexture = function (url, mapping, onLoad, onError) { - console.warn('THREE.ImageUtils.loadTexture has been deprecated. Use THREE.TextureLoader() instead.'); - var loader = new TextureLoader(); - loader.setCrossOrigin(this.crossOrigin); - var texture = loader.load(url, onLoad, undefined, onError); - if (mapping) texture.mapping = mapping; - return texture; - }; - ImageUtils.loadTextureCube = function (urls, mapping, onLoad, onError) { - console.warn('THREE.ImageUtils.loadTextureCube has been deprecated. Use THREE.CubeTextureLoader() instead.'); - var loader = new CubeTextureLoader(); - loader.setCrossOrigin(this.crossOrigin); - var texture = loader.load(urls, onLoad, undefined, onError); - if (mapping) texture.mapping = mapping; - return texture; - }; - ImageUtils.loadCompressedTexture = function () { - console.error('THREE.ImageUtils.loadCompressedTexture has been removed. Use THREE.DDSLoader instead.'); - }; - ImageUtils.loadCompressedTextureCube = function () { - console.error('THREE.ImageUtils.loadCompressedTextureCube has been removed. Use THREE.DDSLoader instead.'); - }; // - - function CanvasRenderer() { - console.error('THREE.CanvasRenderer has been removed'); - } // - function JSONLoader() { - console.error('THREE.JSONLoader has been removed.'); - } // - var SceneUtils = { - createMultiMaterialObject: function createMultiMaterialObject() - /* geometry, materials */ - { - console.error('THREE.SceneUtils has been moved to /examples/jsm/utils/SceneUtils.js'); - }, - detach: function detach() - /* child, parent, scene */ - { - console.error('THREE.SceneUtils has been moved to /examples/jsm/utils/SceneUtils.js'); - }, - attach: function attach() - /* child, scene, parent */ - { - console.error('THREE.SceneUtils has been moved to /examples/jsm/utils/SceneUtils.js'); - } - }; // - function LensFlare() { - console.error('THREE.LensFlare has been moved to /examples/jsm/objects/Lensflare.js'); - } - if (typeof __THREE_DEVTOOLS__ !== 'undefined') { - /* eslint-disable no-undef */ - __THREE_DEVTOOLS__.dispatchEvent(new CustomEvent('register', { - detail: { - revision: REVISION - } - })); - /* eslint-enable no-undef */ - } - exports.ACESFilmicToneMapping = ACESFilmicToneMapping; - exports.AddEquation = AddEquation; - exports.AddOperation = AddOperation; - exports.AdditiveAnimationBlendMode = AdditiveAnimationBlendMode; - exports.AdditiveBlending = AdditiveBlending; - exports.AlphaFormat = AlphaFormat; - exports.AlwaysDepth = AlwaysDepth; - exports.AlwaysStencilFunc = AlwaysStencilFunc; - exports.AmbientLight = AmbientLight; - exports.AmbientLightProbe = AmbientLightProbe; - exports.AnimationClip = AnimationClip; - exports.AnimationLoader = AnimationLoader; - exports.AnimationMixer = AnimationMixer; - exports.AnimationObjectGroup = AnimationObjectGroup; - exports.AnimationUtils = AnimationUtils; - exports.ArcCurve = ArcCurve; - exports.ArrayCamera = ArrayCamera; - exports.ArrowHelper = ArrowHelper; - exports.Audio = Audio; - exports.AudioAnalyser = AudioAnalyser; - exports.AudioContext = AudioContext; - exports.AudioListener = AudioListener; - exports.AudioLoader = AudioLoader; - exports.AxesHelper = AxesHelper; - exports.AxisHelper = AxisHelper; - exports.BackSide = BackSide; - exports.BasicDepthPacking = BasicDepthPacking; - exports.BasicShadowMap = BasicShadowMap; - exports.BinaryTextureLoader = BinaryTextureLoader; - exports.Bone = Bone; - exports.BooleanKeyframeTrack = BooleanKeyframeTrack; - exports.BoundingBoxHelper = BoundingBoxHelper; - exports.Box2 = Box2; - exports.Box3 = Box3; - exports.Box3Helper = Box3Helper; - exports.BoxBufferGeometry = BoxBufferGeometry; - exports.BoxGeometry = BoxGeometry; - exports.BoxHelper = BoxHelper; - exports.BufferAttribute = BufferAttribute; - exports.BufferGeometry = BufferGeometry; - exports.BufferGeometryLoader = BufferGeometryLoader; - exports.ByteType = ByteType; - exports.Cache = Cache; - exports.Camera = Camera; - exports.CameraHelper = CameraHelper; - exports.CanvasRenderer = CanvasRenderer; - exports.CanvasTexture = CanvasTexture; - exports.CatmullRomCurve3 = CatmullRomCurve3; - exports.CineonToneMapping = CineonToneMapping; - exports.CircleBufferGeometry = CircleBufferGeometry; - exports.CircleGeometry = CircleGeometry; - exports.ClampToEdgeWrapping = ClampToEdgeWrapping; - exports.Clock = Clock; - exports.ClosedSplineCurve3 = ClosedSplineCurve3; - exports.Color = Color; - exports.ColorKeyframeTrack = ColorKeyframeTrack; - exports.CompressedTexture = CompressedTexture; - exports.CompressedTextureLoader = CompressedTextureLoader; - exports.ConeBufferGeometry = ConeBufferGeometry; - exports.ConeGeometry = ConeGeometry; - exports.CubeCamera = CubeCamera; - exports.CubeGeometry = BoxGeometry; - exports.CubeReflectionMapping = CubeReflectionMapping; - exports.CubeRefractionMapping = CubeRefractionMapping; - exports.CubeTexture = CubeTexture; - exports.CubeTextureLoader = CubeTextureLoader; - exports.CubeUVReflectionMapping = CubeUVReflectionMapping; - exports.CubeUVRefractionMapping = CubeUVRefractionMapping; - exports.CubicBezierCurve = CubicBezierCurve; - exports.CubicBezierCurve3 = CubicBezierCurve3; - exports.CubicInterpolant = CubicInterpolant; - exports.CullFaceBack = CullFaceBack; - exports.CullFaceFront = CullFaceFront; - exports.CullFaceFrontBack = CullFaceFrontBack; - exports.CullFaceNone = CullFaceNone; - exports.Curve = Curve; - exports.CurvePath = CurvePath; - exports.CustomBlending = CustomBlending; - exports.CustomToneMapping = CustomToneMapping; - exports.CylinderBufferGeometry = CylinderBufferGeometry; - exports.CylinderGeometry = CylinderGeometry; - exports.Cylindrical = Cylindrical; - exports.DataTexture = DataTexture; - exports.DataTexture2DArray = DataTexture2DArray; - exports.DataTexture3D = DataTexture3D; - exports.DataTextureLoader = DataTextureLoader; - exports.DataUtils = DataUtils; - exports.DecrementStencilOp = DecrementStencilOp; - exports.DecrementWrapStencilOp = DecrementWrapStencilOp; - exports.DefaultLoadingManager = DefaultLoadingManager; - exports.DepthFormat = DepthFormat; - exports.DepthStencilFormat = DepthStencilFormat; - exports.DepthTexture = DepthTexture; - exports.DirectionalLight = DirectionalLight; - exports.DirectionalLightHelper = DirectionalLightHelper; - exports.DiscreteInterpolant = DiscreteInterpolant; - exports.DodecahedronBufferGeometry = DodecahedronBufferGeometry; - exports.DodecahedronGeometry = DodecahedronGeometry; - exports.DoubleSide = DoubleSide; - exports.DstAlphaFactor = DstAlphaFactor; - exports.DstColorFactor = DstColorFactor; - exports.DynamicBufferAttribute = DynamicBufferAttribute; - exports.DynamicCopyUsage = DynamicCopyUsage; - exports.DynamicDrawUsage = DynamicDrawUsage; - exports.DynamicReadUsage = DynamicReadUsage; - exports.EdgesGeometry = EdgesGeometry; - exports.EdgesHelper = EdgesHelper; - exports.EllipseCurve = EllipseCurve; - exports.EqualDepth = EqualDepth; - exports.EqualStencilFunc = EqualStencilFunc; - exports.EquirectangularReflectionMapping = EquirectangularReflectionMapping; - exports.EquirectangularRefractionMapping = EquirectangularRefractionMapping; - exports.Euler = Euler; - exports.EventDispatcher = EventDispatcher; - exports.ExtrudeBufferGeometry = ExtrudeBufferGeometry; - exports.ExtrudeGeometry = ExtrudeGeometry; - exports.Face3 = Face3; - exports.Face4 = Face4; - exports.FaceColors = FaceColors; - exports.FileLoader = FileLoader; - exports.FlatShading = FlatShading; - exports.Float16BufferAttribute = Float16BufferAttribute; - exports.Float32Attribute = Float32Attribute; - exports.Float32BufferAttribute = Float32BufferAttribute; - exports.Float64Attribute = Float64Attribute; - exports.Float64BufferAttribute = Float64BufferAttribute; - exports.FloatType = FloatType; - exports.Fog = Fog; - exports.FogExp2 = FogExp2; - exports.Font = Font; - exports.FontLoader = FontLoader; - exports.FrontSide = FrontSide; - exports.Frustum = Frustum; - exports.GLBufferAttribute = GLBufferAttribute; - exports.GLSL1 = GLSL1; - exports.GLSL3 = GLSL3; - exports.GammaEncoding = GammaEncoding; - exports.Geometry = Geometry; - exports.GeometryUtils = GeometryUtils; - exports.GreaterDepth = GreaterDepth; - exports.GreaterEqualDepth = GreaterEqualDepth; - exports.GreaterEqualStencilFunc = GreaterEqualStencilFunc; - exports.GreaterStencilFunc = GreaterStencilFunc; - exports.GridHelper = GridHelper; - exports.Group = Group; - exports.HalfFloatType = HalfFloatType; - exports.HemisphereLight = HemisphereLight; - exports.HemisphereLightHelper = HemisphereLightHelper; - exports.HemisphereLightProbe = HemisphereLightProbe; - exports.IcosahedronBufferGeometry = IcosahedronBufferGeometry; - exports.IcosahedronGeometry = IcosahedronGeometry; - exports.ImageBitmapLoader = ImageBitmapLoader; - exports.ImageLoader = ImageLoader; - exports.ImageUtils = ImageUtils; - exports.ImmediateRenderObject = ImmediateRenderObject; - exports.IncrementStencilOp = IncrementStencilOp; - exports.IncrementWrapStencilOp = IncrementWrapStencilOp; - exports.InstancedBufferAttribute = InstancedBufferAttribute; - exports.InstancedBufferGeometry = InstancedBufferGeometry; - exports.InstancedInterleavedBuffer = InstancedInterleavedBuffer; - exports.InstancedMesh = InstancedMesh; - exports.Int16Attribute = Int16Attribute; - exports.Int16BufferAttribute = Int16BufferAttribute; - exports.Int32Attribute = Int32Attribute; - exports.Int32BufferAttribute = Int32BufferAttribute; - exports.Int8Attribute = Int8Attribute; - exports.Int8BufferAttribute = Int8BufferAttribute; - exports.IntType = IntType; - exports.InterleavedBuffer = InterleavedBuffer; - exports.InterleavedBufferAttribute = InterleavedBufferAttribute; - exports.Interpolant = Interpolant; - exports.InterpolateDiscrete = InterpolateDiscrete; - exports.InterpolateLinear = InterpolateLinear; - exports.InterpolateSmooth = InterpolateSmooth; - exports.InvertStencilOp = InvertStencilOp; - exports.JSONLoader = JSONLoader; - exports.KeepStencilOp = KeepStencilOp; - exports.KeyframeTrack = KeyframeTrack; - exports.LOD = LOD; - exports.LatheBufferGeometry = LatheBufferGeometry; - exports.LatheGeometry = LatheGeometry; - exports.Layers = Layers; - exports.LensFlare = LensFlare; - exports.LessDepth = LessDepth; - exports.LessEqualDepth = LessEqualDepth; - exports.LessEqualStencilFunc = LessEqualStencilFunc; - exports.LessStencilFunc = LessStencilFunc; - exports.Light = Light; - exports.LightProbe = LightProbe; - exports.Line = Line; - exports.Line3 = Line3; - exports.LineBasicMaterial = LineBasicMaterial; - exports.LineCurve = LineCurve; - exports.LineCurve3 = LineCurve3; - exports.LineDashedMaterial = LineDashedMaterial; - exports.LineLoop = LineLoop; - exports.LinePieces = LinePieces; - exports.LineSegments = LineSegments; - exports.LineStrip = LineStrip; - exports.LinearEncoding = LinearEncoding; - exports.LinearFilter = LinearFilter; - exports.LinearInterpolant = LinearInterpolant; - exports.LinearMipMapLinearFilter = LinearMipMapLinearFilter; - exports.LinearMipMapNearestFilter = LinearMipMapNearestFilter; - exports.LinearMipmapLinearFilter = LinearMipmapLinearFilter; - exports.LinearMipmapNearestFilter = LinearMipmapNearestFilter; - exports.LinearToneMapping = LinearToneMapping; - exports.Loader = Loader; - exports.LoaderUtils = LoaderUtils; - exports.LoadingManager = LoadingManager; - exports.LogLuvEncoding = LogLuvEncoding; - exports.LoopOnce = LoopOnce; - exports.LoopPingPong = LoopPingPong; - exports.LoopRepeat = LoopRepeat; - exports.LuminanceAlphaFormat = LuminanceAlphaFormat; - exports.LuminanceFormat = LuminanceFormat; - exports.MOUSE = MOUSE; - exports.Material = Material; - exports.MaterialLoader = MaterialLoader; - exports.Math = MathUtils; - exports.MathUtils = MathUtils; - exports.Matrix3 = Matrix3; - exports.Matrix4 = Matrix4; - exports.MaxEquation = MaxEquation; - exports.Mesh = Mesh; - exports.MeshBasicMaterial = MeshBasicMaterial; - exports.MeshDepthMaterial = MeshDepthMaterial; - exports.MeshDistanceMaterial = MeshDistanceMaterial; - exports.MeshFaceMaterial = MeshFaceMaterial; - exports.MeshLambertMaterial = MeshLambertMaterial; - exports.MeshMatcapMaterial = MeshMatcapMaterial; - exports.MeshNormalMaterial = MeshNormalMaterial; - exports.MeshPhongMaterial = MeshPhongMaterial; - exports.MeshPhysicalMaterial = MeshPhysicalMaterial; - exports.MeshStandardMaterial = MeshStandardMaterial; - exports.MeshToonMaterial = MeshToonMaterial; - exports.MinEquation = MinEquation; - exports.MirroredRepeatWrapping = MirroredRepeatWrapping; - exports.MixOperation = MixOperation; - exports.MultiMaterial = MultiMaterial; - exports.MultiplyBlending = MultiplyBlending; - exports.MultiplyOperation = MultiplyOperation; - exports.NearestFilter = NearestFilter; - exports.NearestMipMapLinearFilter = NearestMipMapLinearFilter; - exports.NearestMipMapNearestFilter = NearestMipMapNearestFilter; - exports.NearestMipmapLinearFilter = NearestMipmapLinearFilter; - exports.NearestMipmapNearestFilter = NearestMipmapNearestFilter; - exports.NeverDepth = NeverDepth; - exports.NeverStencilFunc = NeverStencilFunc; - exports.NoBlending = NoBlending; - exports.NoColors = NoColors; - exports.NoToneMapping = NoToneMapping; - exports.NormalAnimationBlendMode = NormalAnimationBlendMode; - exports.NormalBlending = NormalBlending; - exports.NotEqualDepth = NotEqualDepth; - exports.NotEqualStencilFunc = NotEqualStencilFunc; - exports.NumberKeyframeTrack = NumberKeyframeTrack; - exports.Object3D = Object3D; - exports.ObjectLoader = ObjectLoader; - exports.ObjectSpaceNormalMap = ObjectSpaceNormalMap; - exports.OctahedronBufferGeometry = OctahedronBufferGeometry; - exports.OctahedronGeometry = OctahedronGeometry; - exports.OneFactor = OneFactor; - exports.OneMinusDstAlphaFactor = OneMinusDstAlphaFactor; - exports.OneMinusDstColorFactor = OneMinusDstColorFactor; - exports.OneMinusSrcAlphaFactor = OneMinusSrcAlphaFactor; - exports.OneMinusSrcColorFactor = OneMinusSrcColorFactor; - exports.OrthographicCamera = OrthographicCamera; - exports.PCFShadowMap = PCFShadowMap; - exports.PCFSoftShadowMap = PCFSoftShadowMap; - exports.PMREMGenerator = PMREMGenerator; - exports.ParametricBufferGeometry = ParametricBufferGeometry; - exports.ParametricGeometry = ParametricGeometry; - exports.Particle = Particle; - exports.ParticleBasicMaterial = ParticleBasicMaterial; - exports.ParticleSystem = ParticleSystem; - exports.ParticleSystemMaterial = ParticleSystemMaterial; - exports.Path = Path; - exports.PerspectiveCamera = PerspectiveCamera; - exports.Plane = Plane; - exports.PlaneBufferGeometry = PlaneBufferGeometry; - exports.PlaneGeometry = PlaneGeometry; - exports.PlaneHelper = PlaneHelper; - exports.PointCloud = PointCloud; - exports.PointCloudMaterial = PointCloudMaterial; - exports.PointLight = PointLight; - exports.PointLightHelper = PointLightHelper; - exports.Points = Points; - exports.PointsMaterial = PointsMaterial; - exports.PolarGridHelper = PolarGridHelper; - exports.PolyhedronBufferGeometry = PolyhedronBufferGeometry; - exports.PolyhedronGeometry = PolyhedronGeometry; - exports.PositionalAudio = PositionalAudio; - exports.PropertyBinding = PropertyBinding; - exports.PropertyMixer = PropertyMixer; - exports.QuadraticBezierCurve = QuadraticBezierCurve; - exports.QuadraticBezierCurve3 = QuadraticBezierCurve3; - exports.Quaternion = Quaternion; - exports.QuaternionKeyframeTrack = QuaternionKeyframeTrack; - exports.QuaternionLinearInterpolant = QuaternionLinearInterpolant; - exports.REVISION = REVISION; - exports.RGBADepthPacking = RGBADepthPacking; - exports.RGBAFormat = RGBAFormat; - exports.RGBAIntegerFormat = RGBAIntegerFormat; - exports.RGBA_ASTC_10x10_Format = RGBA_ASTC_10x10_Format; - exports.RGBA_ASTC_10x5_Format = RGBA_ASTC_10x5_Format; - exports.RGBA_ASTC_10x6_Format = RGBA_ASTC_10x6_Format; - exports.RGBA_ASTC_10x8_Format = RGBA_ASTC_10x8_Format; - exports.RGBA_ASTC_12x10_Format = RGBA_ASTC_12x10_Format; - exports.RGBA_ASTC_12x12_Format = RGBA_ASTC_12x12_Format; - exports.RGBA_ASTC_4x4_Format = RGBA_ASTC_4x4_Format; - exports.RGBA_ASTC_5x4_Format = RGBA_ASTC_5x4_Format; - exports.RGBA_ASTC_5x5_Format = RGBA_ASTC_5x5_Format; - exports.RGBA_ASTC_6x5_Format = RGBA_ASTC_6x5_Format; - exports.RGBA_ASTC_6x6_Format = RGBA_ASTC_6x6_Format; - exports.RGBA_ASTC_8x5_Format = RGBA_ASTC_8x5_Format; - exports.RGBA_ASTC_8x6_Format = RGBA_ASTC_8x6_Format; - exports.RGBA_ASTC_8x8_Format = RGBA_ASTC_8x8_Format; - exports.RGBA_BPTC_Format = RGBA_BPTC_Format; - exports.RGBA_ETC2_EAC_Format = RGBA_ETC2_EAC_Format; - exports.RGBA_PVRTC_2BPPV1_Format = RGBA_PVRTC_2BPPV1_Format; - exports.RGBA_PVRTC_4BPPV1_Format = RGBA_PVRTC_4BPPV1_Format; - exports.RGBA_S3TC_DXT1_Format = RGBA_S3TC_DXT1_Format; - exports.RGBA_S3TC_DXT3_Format = RGBA_S3TC_DXT3_Format; - exports.RGBA_S3TC_DXT5_Format = RGBA_S3TC_DXT5_Format; - exports.RGBDEncoding = RGBDEncoding; - exports.RGBEEncoding = RGBEEncoding; - exports.RGBEFormat = RGBEFormat; - exports.RGBFormat = RGBFormat; - exports.RGBIntegerFormat = RGBIntegerFormat; - exports.RGBM16Encoding = RGBM16Encoding; - exports.RGBM7Encoding = RGBM7Encoding; - exports.RGB_ETC1_Format = RGB_ETC1_Format; - exports.RGB_ETC2_Format = RGB_ETC2_Format; - exports.RGB_PVRTC_2BPPV1_Format = RGB_PVRTC_2BPPV1_Format; - exports.RGB_PVRTC_4BPPV1_Format = RGB_PVRTC_4BPPV1_Format; - exports.RGB_S3TC_DXT1_Format = RGB_S3TC_DXT1_Format; - exports.RGFormat = RGFormat; - exports.RGIntegerFormat = RGIntegerFormat; - exports.RawShaderMaterial = RawShaderMaterial; - exports.Ray = Ray; - exports.Raycaster = Raycaster; - exports.RectAreaLight = RectAreaLight; - exports.RedFormat = RedFormat; - exports.RedIntegerFormat = RedIntegerFormat; - exports.ReinhardToneMapping = ReinhardToneMapping; - exports.RepeatWrapping = RepeatWrapping; - exports.ReplaceStencilOp = ReplaceStencilOp; - exports.ReverseSubtractEquation = ReverseSubtractEquation; - exports.RingBufferGeometry = RingBufferGeometry; - exports.RingGeometry = RingGeometry; - exports.SRGB8_ALPHA8_ASTC_10x10_Format = SRGB8_ALPHA8_ASTC_10x10_Format; - exports.SRGB8_ALPHA8_ASTC_10x5_Format = SRGB8_ALPHA8_ASTC_10x5_Format; - exports.SRGB8_ALPHA8_ASTC_10x6_Format = SRGB8_ALPHA8_ASTC_10x6_Format; - exports.SRGB8_ALPHA8_ASTC_10x8_Format = SRGB8_ALPHA8_ASTC_10x8_Format; - exports.SRGB8_ALPHA8_ASTC_12x10_Format = SRGB8_ALPHA8_ASTC_12x10_Format; - exports.SRGB8_ALPHA8_ASTC_12x12_Format = SRGB8_ALPHA8_ASTC_12x12_Format; - exports.SRGB8_ALPHA8_ASTC_4x4_Format = SRGB8_ALPHA8_ASTC_4x4_Format; - exports.SRGB8_ALPHA8_ASTC_5x4_Format = SRGB8_ALPHA8_ASTC_5x4_Format; - exports.SRGB8_ALPHA8_ASTC_5x5_Format = SRGB8_ALPHA8_ASTC_5x5_Format; - exports.SRGB8_ALPHA8_ASTC_6x5_Format = SRGB8_ALPHA8_ASTC_6x5_Format; - exports.SRGB8_ALPHA8_ASTC_6x6_Format = SRGB8_ALPHA8_ASTC_6x6_Format; - exports.SRGB8_ALPHA8_ASTC_8x5_Format = SRGB8_ALPHA8_ASTC_8x5_Format; - exports.SRGB8_ALPHA8_ASTC_8x6_Format = SRGB8_ALPHA8_ASTC_8x6_Format; - exports.SRGB8_ALPHA8_ASTC_8x8_Format = SRGB8_ALPHA8_ASTC_8x8_Format; - exports.Scene = Scene; - exports.SceneUtils = SceneUtils; - exports.ShaderChunk = ShaderChunk; - exports.ShaderLib = ShaderLib; - exports.ShaderMaterial = ShaderMaterial; - exports.ShadowMaterial = ShadowMaterial; - exports.Shape = Shape; - exports.ShapeBufferGeometry = ShapeBufferGeometry; - exports.ShapeGeometry = ShapeGeometry; - exports.ShapePath = ShapePath; - exports.ShapeUtils = ShapeUtils; - exports.ShortType = ShortType; - exports.Skeleton = Skeleton; - exports.SkeletonHelper = SkeletonHelper; - exports.SkinnedMesh = SkinnedMesh; - exports.SmoothShading = SmoothShading; - exports.Sphere = Sphere; - exports.SphereBufferGeometry = SphereBufferGeometry; - exports.SphereGeometry = SphereGeometry; - exports.Spherical = Spherical; - exports.SphericalHarmonics3 = SphericalHarmonics3; - exports.Spline = Spline; - exports.SplineCurve = SplineCurve; - exports.SplineCurve3 = SplineCurve3; - exports.SpotLight = SpotLight; - exports.SpotLightHelper = SpotLightHelper; - exports.Sprite = Sprite; - exports.SpriteMaterial = SpriteMaterial; - exports.SrcAlphaFactor = SrcAlphaFactor; - exports.SrcAlphaSaturateFactor = SrcAlphaSaturateFactor; - exports.SrcColorFactor = SrcColorFactor; - exports.StaticCopyUsage = StaticCopyUsage; - exports.StaticDrawUsage = StaticDrawUsage; - exports.StaticReadUsage = StaticReadUsage; - exports.StereoCamera = StereoCamera; - exports.StreamCopyUsage = StreamCopyUsage; - exports.StreamDrawUsage = StreamDrawUsage; - exports.StreamReadUsage = StreamReadUsage; - exports.StringKeyframeTrack = StringKeyframeTrack; - exports.SubtractEquation = SubtractEquation; - exports.SubtractiveBlending = SubtractiveBlending; - exports.TOUCH = TOUCH; - exports.TangentSpaceNormalMap = TangentSpaceNormalMap; - exports.TetrahedronBufferGeometry = TetrahedronBufferGeometry; - exports.TetrahedronGeometry = TetrahedronGeometry; - exports.TextBufferGeometry = TextBufferGeometry; - exports.TextGeometry = TextGeometry; - exports.Texture = Texture; - exports.TextureLoader = TextureLoader; - exports.TorusBufferGeometry = TorusBufferGeometry; - exports.TorusGeometry = TorusGeometry; - exports.TorusKnotBufferGeometry = TorusKnotBufferGeometry; - exports.TorusKnotGeometry = TorusKnotGeometry; - exports.Triangle = Triangle; - exports.TriangleFanDrawMode = TriangleFanDrawMode; - exports.TriangleStripDrawMode = TriangleStripDrawMode; - exports.TrianglesDrawMode = TrianglesDrawMode; - exports.TubeBufferGeometry = TubeBufferGeometry; - exports.TubeGeometry = TubeGeometry; - exports.UVMapping = UVMapping; - exports.Uint16Attribute = Uint16Attribute; - exports.Uint16BufferAttribute = Uint16BufferAttribute; - exports.Uint32Attribute = Uint32Attribute; - exports.Uint32BufferAttribute = Uint32BufferAttribute; - exports.Uint8Attribute = Uint8Attribute; - exports.Uint8BufferAttribute = Uint8BufferAttribute; - exports.Uint8ClampedAttribute = Uint8ClampedAttribute; - exports.Uint8ClampedBufferAttribute = Uint8ClampedBufferAttribute; - exports.Uniform = Uniform; - exports.UniformsLib = UniformsLib; - exports.UniformsUtils = UniformsUtils; - exports.UnsignedByteType = UnsignedByteType; - exports.UnsignedInt248Type = UnsignedInt248Type; - exports.UnsignedIntType = UnsignedIntType; - exports.UnsignedShort4444Type = UnsignedShort4444Type; - exports.UnsignedShort5551Type = UnsignedShort5551Type; - exports.UnsignedShort565Type = UnsignedShort565Type; - exports.UnsignedShortType = UnsignedShortType; - exports.VSMShadowMap = VSMShadowMap; - exports.Vector2 = Vector2; - exports.Vector3 = Vector3; - exports.Vector4 = Vector4; - exports.VectorKeyframeTrack = VectorKeyframeTrack; - exports.Vertex = Vertex; - exports.VertexColors = VertexColors; - exports.VideoTexture = VideoTexture; - exports.WebGL1Renderer = WebGL1Renderer; - exports.WebGLCubeRenderTarget = WebGLCubeRenderTarget; - exports.WebGLMultisampleRenderTarget = WebGLMultisampleRenderTarget; - exports.WebGLRenderTarget = WebGLRenderTarget; - exports.WebGLRenderTargetCube = WebGLRenderTargetCube; - exports.WebGLRenderer = WebGLRenderer; - exports.WebGLUtils = WebGLUtils; - exports.WireframeGeometry = WireframeGeometry; - exports.WireframeHelper = WireframeHelper; - exports.WrapAroundEnding = WrapAroundEnding; - exports.XHRLoader = XHRLoader; - exports.ZeroCurvatureEnding = ZeroCurvatureEnding; - exports.ZeroFactor = ZeroFactor; - exports.ZeroSlopeEnding = ZeroSlopeEnding; - exports.ZeroStencilOp = ZeroStencilOp; - exports.sRGBEncoding = sRGBEncoding; - Object.defineProperty(exports, '__esModule', { value: true }); -}))); -/** - * @author mrdoob / http://mrdoob.com/ - */ -THREE.CSS2DObject = function ( element ) { - THREE.Object3D.call( this ); - this.element = element; - this.element.style.position = 'absolute'; -}; -THREE.CSS2DObject.prototype = Object.create( THREE.Object3D.prototype ); -THREE.CSS2DObject.prototype.constructor = THREE.CSS2DObject; -// -THREE.CSS2DRenderer = function () { - //console.log( 'THREE.CSS2DRenderer', THREE.REVISION ); - var _width, _height; - var _widthHalf, _heightHalf; - var perc_H = "-50%"; //自定义横向和纵向移动百分比 - var vector = new THREE.Vector3(); - var viewMatrix = new THREE.Matrix4(); - var viewProjectionMatrix = new THREE.Matrix4(); - var cache = { - objects: new WeakMap() - }; - var domElement = document.createElement( 'div' ); - domElement.style.overflow = 'hidden'; - this.domElement = domElement; - this.getSize = function () { - return { - width: _width, - height: _height - }; - }; - this.setSize = function ( width, height,perc_h="-50%") { - _width = width; - _height = height; - perc_H = perc_h; - _widthHalf = _width / 2; - _heightHalf = _height / 2; - domElement.style.width = width + 'px'; - domElement.style.height = height + 'px'; - }; - this.renderObject = function ( object, camera ) { - if ( object instanceof THREE.CSS2DObject) { - vector.setFromMatrixPosition( object.matrixWorld ); - vector.applyMatrix4( viewProjectionMatrix ); - var element = object.element; - var style = 'translate('+perc_H+',-100%) translate(' + ( vector.x * _widthHalf + _widthHalf ) + 'px,' + ( - vector.y * _heightHalf + _heightHalf ) + 'px)'; - element.style.WebkitTransform = style; - element.style.MozTransform = style; - element.style.oTransform = style; - element.style.transform = style; - //element.style.display = ( object.visible && vector.z >= - 1 && vector.z <= 1 ) ? '' : 'none'; - var objectData = { - distanceToCameraSquared: getDistanceToSquared( camera, object ) - }; - cache.objects.set( object, objectData ); - if ( element.parentNode !== domElement ) { - domElement.appendChild( element ); - } - } - for ( var i = 0, l = object.children.length; i < l; i ++ ) { - this.renderObject( object.children[ i ], camera ); - } - }; - var getDistanceToSquared = function () { - var a = new THREE.Vector3(); - var b = new THREE.Vector3(); - return function ( object1, object2 ) { - a.setFromMatrixPosition( object1.matrixWorld ); - b.setFromMatrixPosition( object2.matrixWorld ); - return a.distanceToSquared( b ); - }; - }(); - var filterAndFlatten = function ( scene ) { - var result = []; - scene.traverse( function ( object ) { - if ( object instanceof THREE.CSS2DObject ) result.push( object ); - } ); - return result; - }; - this.zOrder = function ( scene ) { - var sorted = filterAndFlatten( scene ).sort( function ( a, b ) { - var distanceA = cache.objects.get( a ).distanceToCameraSquared; - var distanceB = cache.objects.get( b ).distanceToCameraSquared; - return distanceA - distanceB; - } ); - var zMax = sorted.length; - for ( var i = 0, l = sorted.length; i < l; i ++ ) { - sorted[ i ].element.style.zIndex = sorted[ i ].element.style.zIndex || zMax - i; - } - }; - this.render = function ( scene, camera ) { - scene.updateMatrixWorld(); - if ( camera.parent === null ) camera.updateMatrixWorld(); - viewMatrix.copy( camera.matrixWorldInverse ); - viewProjectionMatrix.multiplyMatrices( camera.projectionMatrix, viewMatrix ); - }; -}; -THREE.GLTFLoader = ( function () { - function GLTFLoader( manager ) { - THREE.Loader.call( this, manager ); - this.dracoLoader = null; - this.ddsLoader = null; - this.ktx2Loader = null; - this.meshoptDecoder = null; - this.pluginCallbacks = []; - this.register( function ( parser ) { - return new GLTFMaterialsClearcoatExtension( parser ); - } ); - this.register( function ( parser ) { - return new GLTFTextureBasisUExtension( parser ); - } ); - this.register( function ( parser ) { - return new GLTFTextureWebPExtension( parser ); - } ); - this.register( function ( parser ) { - return new GLTFMaterialsTransmissionExtension( parser ); - } ); - this.register( function ( parser ) { - return new GLTFLightsExtension( parser ); - } ); - this.register( function ( parser ) { - return new GLTFMeshoptCompression( parser ); - } ); - } - GLTFLoader.prototype = Object.assign( Object.create( THREE.Loader.prototype ), { - constructor: GLTFLoader, - load: function ( url, onLoad, onProgress, onError ) { - var scope = this; - var resourcePath; - if ( this.resourcePath !== '' ) { - resourcePath = this.resourcePath; - } else if ( this.path !== '' ) { - resourcePath = this.path; - } else { - resourcePath = THREE.LoaderUtils.extractUrlBase( url ); - } - // Tells the LoadingManager to track an extra item, which resolves after - // the model is fully loaded. This means the count of items loaded will - // be incorrect, but ensures manager.onLoad() does not fire early. - this.manager.itemStart( url ); - var _onError = function ( e ) { - if ( onError ) { - onError( e ); - } else { - console.error( e ); - } - scope.manager.itemError( url ); - scope.manager.itemEnd( url ); - }; - var loader = new THREE.FileLoader( this.manager ); - loader.setPath( this.path ); - loader.setResponseType( 'arraybuffer' ); - loader.setRequestHeader( this.requestHeader ); - loader.setWithCredentials( this.withCredentials ); - loader.load( url, function ( data ) { - try { - scope.parse( data, resourcePath, function ( gltf ) { - onLoad( gltf ); - scope.manager.itemEnd( url ); - }, _onError ); - } catch ( e ) { - _onError( e ); - } - }, onProgress, _onError ); - }, - setDRACOLoader: function ( dracoLoader ) { - this.dracoLoader = dracoLoader; - return this; - }, - setDDSLoader: function ( ddsLoader ) { - this.ddsLoader = ddsLoader; - return this; - }, - setKTX2Loader: function ( ktx2Loader ) { - this.ktx2Loader = ktx2Loader; - return this; - }, - setMeshoptDecoder: function ( meshoptDecoder ) { - this.meshoptDecoder = meshoptDecoder; - return this; - }, - register: function ( callback ) { - if ( this.pluginCallbacks.indexOf( callback ) === - 1 ) { - this.pluginCallbacks.push( callback ); - } - return this; - }, - unregister: function ( callback ) { - if ( this.pluginCallbacks.indexOf( callback ) !== - 1 ) { - this.pluginCallbacks.splice( this.pluginCallbacks.indexOf( callback ), 1 ); - } - return this; - }, - parse: function ( data, path, onLoad, onError ) { - var content; - var extensions = {}; - var plugins = {}; - if ( typeof data === 'string' ) { - content = data; - } else { - var magic = THREE.LoaderUtils.decodeText( new Uint8Array( data, 0, 4 ) ); - if ( magic === BINARY_EXTENSION_HEADER_MAGIC ) { - try { - extensions[ EXTENSIONS.KHR_BINARY_GLTF ] = new GLTFBinaryExtension( data ); - } catch ( error ) { - if ( onError ) onError( error ); - return; - } - content = extensions[ EXTENSIONS.KHR_BINARY_GLTF ].content; - } else { - content = THREE.LoaderUtils.decodeText( new Uint8Array( data ) ); - } - } - var json = JSON.parse( content ); - if ( json.asset === undefined || json.asset.version[ 0 ] < 2 ) { - if ( onError ) onError( new Error( 'THREE.GLTFLoader: Unsupported asset. glTF versions >=2.0 are supported.' ) ); - return; - } - var parser = new GLTFParser( json, { - path: path || this.resourcePath || '', - crossOrigin: this.crossOrigin, - manager: this.manager, - ktx2Loader: this.ktx2Loader, - meshoptDecoder: this.meshoptDecoder - } ); - parser.fileLoader.setRequestHeader( this.requestHeader ); - for ( var i = 0; i < this.pluginCallbacks.length; i ++ ) { - var plugin = this.pluginCallbacks[ i ]( parser ); - plugins[ plugin.name ] = plugin; - // Workaround to avoid determining as unknown extension - // in addUnknownExtensionsToUserData(). - // Remove this workaround if we move all the existing - // extension handlers to plugin system - extensions[ plugin.name ] = true; - } - if ( json.extensionsUsed ) { - for ( var i = 0; i < json.extensionsUsed.length; ++ i ) { - var extensionName = json.extensionsUsed[ i ]; - var extensionsRequired = json.extensionsRequired || []; - switch ( extensionName ) { - case EXTENSIONS.KHR_MATERIALS_UNLIT: - extensions[ extensionName ] = new GLTFMaterialsUnlitExtension(); - break; - case EXTENSIONS.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS: - extensions[ extensionName ] = new GLTFMaterialsPbrSpecularGlossinessExtension(); - break; - case EXTENSIONS.KHR_DRACO_MESH_COMPRESSION: - extensions[ extensionName ] = new GLTFDracoMeshCompressionExtension( json, this.dracoLoader ); - break; - case EXTENSIONS.MSFT_TEXTURE_DDS: - extensions[ extensionName ] = new GLTFTextureDDSExtension( this.ddsLoader ); - break; - case EXTENSIONS.KHR_TEXTURE_TRANSFORM: - extensions[ extensionName ] = new GLTFTextureTransformExtension(); - break; - case EXTENSIONS.KHR_MESH_QUANTIZATION: - extensions[ extensionName ] = new GLTFMeshQuantizationExtension(); - break; - default: - if ( extensionsRequired.indexOf( extensionName ) >= 0 && plugins[ extensionName ] === undefined ) { - console.warn( 'THREE.GLTFLoader: Unknown extension "' + extensionName + '".' ); - } - } - } - } - parser.setExtensions( extensions ); - parser.setPlugins( plugins ); - parser.parse( onLoad, onError ); - } - } ); - /* GLTFREGISTRY */ - function GLTFRegistry() { - var objects = {}; - return { - get: function ( key ) { - return objects[ key ]; - }, - add: function ( key, object ) { - objects[ key ] = object; - }, - remove: function ( key ) { - delete objects[ key ]; - }, - removeAll: function () { - objects = {}; - } - }; - } - /*********************************/ - /********** EXTENSIONS ***********/ - /*********************************/ - var EXTENSIONS = { - KHR_BINARY_GLTF: 'KHR_binary_glTF', - KHR_DRACO_MESH_COMPRESSION: 'KHR_draco_mesh_compression', - KHR_LIGHTS_PUNCTUAL: 'KHR_lights_punctual', - KHR_MATERIALS_CLEARCOAT: 'KHR_materials_clearcoat', - KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS: 'KHR_materials_pbrSpecularGlossiness', - KHR_MATERIALS_TRANSMISSION: 'KHR_materials_transmission', - KHR_MATERIALS_UNLIT: 'KHR_materials_unlit', - KHR_TEXTURE_BASISU: 'KHR_texture_basisu', - KHR_TEXTURE_TRANSFORM: 'KHR_texture_transform', - KHR_MESH_QUANTIZATION: 'KHR_mesh_quantization', - EXT_TEXTURE_WEBP: 'EXT_texture_webp', - EXT_MESHOPT_COMPRESSION: 'EXT_meshopt_compression', - MSFT_TEXTURE_DDS: 'MSFT_texture_dds' - }; - /** - * DDS Texture Extension - * - * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Vendor/MSFT_texture_dds - * - */ - function GLTFTextureDDSExtension( ddsLoader ) { - if ( ! ddsLoader ) { - throw new Error( 'THREE.GLTFLoader: Attempting to load .dds texture without importing THREE.DDSLoader' ); - } - this.name = EXTENSIONS.MSFT_TEXTURE_DDS; - this.ddsLoader = ddsLoader; - } - /** - * Punctual Lights Extension - * - * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_lights_punctual - */ - function GLTFLightsExtension( parser ) { - this.parser = parser; - this.name = EXTENSIONS.KHR_LIGHTS_PUNCTUAL; - // Object3D instance caches - this.cache = { refs: {}, uses: {} }; - } - GLTFLightsExtension.prototype._markDefs = function () { - var parser = this.parser; - var nodeDefs = this.parser.json.nodes || []; - for ( var nodeIndex = 0, nodeLength = nodeDefs.length; nodeIndex < nodeLength; nodeIndex ++ ) { - var nodeDef = nodeDefs[ nodeIndex ]; - if ( nodeDef.extensions - && nodeDef.extensions[ this.name ] - && nodeDef.extensions[ this.name ].light !== undefined ) { - parser._addNodeRef( this.cache, nodeDef.extensions[ this.name ].light ); - } - } - }; - GLTFLightsExtension.prototype._loadLight = function ( lightIndex ) { - var parser = this.parser; - var cacheKey = 'light:' + lightIndex; - var dependency = parser.cache.get( cacheKey ); - if ( dependency ) return dependency; - var json = parser.json; - var extensions = ( json.extensions && json.extensions[ this.name ] ) || {}; - var lightDefs = extensions.lights || []; - var lightDef = lightDefs[ lightIndex ]; - var lightNode; - var color = new THREE.Color( 0xffffff ); - if ( lightDef.color !== undefined ) color.fromArray( lightDef.color ); - var range = lightDef.range !== undefined ? lightDef.range : 0; - switch ( lightDef.type ) { - case 'directional': - lightNode = new THREE.DirectionalLight( color ); - lightNode.target.position.set( 0, 0, - 1 ); - lightNode.add( lightNode.target ); - break; - case 'point': - lightNode = new THREE.PointLight( color ); - lightNode.distance = range; - break; - case 'spot': - lightNode = new THREE.SpotLight( color ); - lightNode.distance = range; - // Handle spotlight properties. - lightDef.spot = lightDef.spot || {}; - lightDef.spot.innerConeAngle = lightDef.spot.innerConeAngle !== undefined ? lightDef.spot.innerConeAngle : 0; - lightDef.spot.outerConeAngle = lightDef.spot.outerConeAngle !== undefined ? lightDef.spot.outerConeAngle : Math.PI / 4.0; - lightNode.angle = lightDef.spot.outerConeAngle; - lightNode.penumbra = 1.0 - lightDef.spot.innerConeAngle / lightDef.spot.outerConeAngle; - lightNode.target.position.set( 0, 0, - 1 ); - lightNode.add( lightNode.target ); - break; - default: - throw new Error( 'THREE.GLTFLoader: Unexpected light type, "' + lightDef.type + '".' ); - } - // Some lights (e.g. spot) default to a position other than the origin. Reset the position - // here, because node-level parsing will only override position if explicitly specified. - lightNode.position.set( 0, 0, 0 ); - lightNode.decay = 2; - if ( lightDef.intensity !== undefined ) lightNode.intensity = lightDef.intensity; - lightNode.name = parser.createUniqueName( lightDef.name || ( 'light_' + lightIndex ) ); - dependency = Promise.resolve( lightNode ); - parser.cache.add( cacheKey, dependency ); - return dependency; - }; - GLTFLightsExtension.prototype.createNodeAttachment = function ( nodeIndex ) { - var self = this; - var parser = this.parser; - var json = parser.json; - var nodeDef = json.nodes[ nodeIndex ]; - var lightDef = ( nodeDef.extensions && nodeDef.extensions[ this.name ] ) || {}; - var lightIndex = lightDef.light; - if ( lightIndex === undefined ) return null; - return this._loadLight( lightIndex ).then( function ( light ) { - return parser._getNodeRef( self.cache, lightIndex, light ); - } ); - }; - /** - * Unlit Materials Extension - * - * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_unlit - */ - function GLTFMaterialsUnlitExtension() { - this.name = EXTENSIONS.KHR_MATERIALS_UNLIT; - } - GLTFMaterialsUnlitExtension.prototype.getMaterialType = function () { - return THREE.MeshBasicMaterial; - }; - GLTFMaterialsUnlitExtension.prototype.extendParams = function ( materialParams, materialDef, parser ) { - var pending = []; - materialParams.color = new THREE.Color( 1.0, 1.0, 1.0 ); - materialParams.opacity = 1.0; - var metallicRoughness = materialDef.pbrMetallicRoughness; - if ( metallicRoughness ) { - if ( Array.isArray( metallicRoughness.baseColorFactor ) ) { - var array = metallicRoughness.baseColorFactor; - materialParams.color.fromArray( array ); - materialParams.opacity = array[ 3 ]; - } - if ( metallicRoughness.baseColorTexture !== undefined ) { - pending.push( parser.assignTexture( materialParams, 'map', metallicRoughness.baseColorTexture ) ); - } - } - return Promise.all( pending ); - }; - /** - * Clearcoat Materials Extension - * - * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_clearcoat - */ - function GLTFMaterialsClearcoatExtension( parser ) { - this.parser = parser; - this.name = EXTENSIONS.KHR_MATERIALS_CLEARCOAT; - } - GLTFMaterialsClearcoatExtension.prototype.getMaterialType = function ( materialIndex ) { - var parser = this.parser; - var materialDef = parser.json.materials[ materialIndex ]; - if ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) return null; - return THREE.MeshPhysicalMaterial; - }; - GLTFMaterialsClearcoatExtension.prototype.extendMaterialParams = function ( materialIndex, materialParams ) { - var parser = this.parser; - var materialDef = parser.json.materials[ materialIndex ]; - if ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) { - return Promise.resolve(); - } - var pending = []; - var extension = materialDef.extensions[ this.name ]; - if ( extension.clearcoatFactor !== undefined ) { - materialParams.clearcoat = extension.clearcoatFactor; - } - if ( extension.clearcoatTexture !== undefined ) { - pending.push( parser.assignTexture( materialParams, 'clearcoatMap', extension.clearcoatTexture ) ); - } - if ( extension.clearcoatRoughnessFactor !== undefined ) { - materialParams.clearcoatRoughness = extension.clearcoatRoughnessFactor; - } - if ( extension.clearcoatRoughnessTexture !== undefined ) { - pending.push( parser.assignTexture( materialParams, 'clearcoatRoughnessMap', extension.clearcoatRoughnessTexture ) ); - } - if ( extension.clearcoatNormalTexture !== undefined ) { - pending.push( parser.assignTexture( materialParams, 'clearcoatNormalMap', extension.clearcoatNormalTexture ) ); - if ( extension.clearcoatNormalTexture.scale !== undefined ) { - var scale = extension.clearcoatNormalTexture.scale; - materialParams.clearcoatNormalScale = new THREE.Vector2( scale, scale ); - } - } - return Promise.all( pending ); - }; - /** - * Transmission Materials Extension - * - * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_transmission - * Draft: https://github.com/KhronosGroup/glTF/pull/1698 - */ - function GLTFMaterialsTransmissionExtension( parser ) { - this.parser = parser; - this.name = EXTENSIONS.KHR_MATERIALS_TRANSMISSION; - } - GLTFMaterialsTransmissionExtension.prototype.getMaterialType = function ( materialIndex ) { - var parser = this.parser; - var materialDef = parser.json.materials[ materialIndex ]; - if ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) return null; - return THREE.MeshPhysicalMaterial; - }; - GLTFMaterialsTransmissionExtension.prototype.extendMaterialParams = function ( materialIndex, materialParams ) { - var parser = this.parser; - var materialDef = parser.json.materials[ materialIndex ]; - if ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) { - return Promise.resolve(); - } - var pending = []; - var extension = materialDef.extensions[ this.name ]; - if ( extension.transmissionFactor !== undefined ) { - materialParams.transmission = extension.transmissionFactor; - } - if ( extension.transmissionTexture !== undefined ) { - pending.push( parser.assignTexture( materialParams, 'transmissionMap', extension.transmissionTexture ) ); - } - return Promise.all( pending ); - }; - /** - * BasisU Texture Extension - * - * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_texture_basisu - */ - function GLTFTextureBasisUExtension( parser ) { - this.parser = parser; - this.name = EXTENSIONS.KHR_TEXTURE_BASISU; - } - GLTFTextureBasisUExtension.prototype.loadTexture = function ( textureIndex ) { - var parser = this.parser; - var json = parser.json; - var textureDef = json.textures[ textureIndex ]; - if ( ! textureDef.extensions || ! textureDef.extensions[ this.name ] ) { - return null; - } - var extension = textureDef.extensions[ this.name ]; - var source = json.images[ extension.source ]; - var loader = parser.options.ktx2Loader; - if ( ! loader ) { - if ( json.extensionsRequired && json.extensionsRequired.indexOf( this.name ) >= 0 ) { - throw new Error( 'THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures' ); - } else { - // Assumes that the extension is optional and that a fallback texture is present - return null; - } - } - return parser.loadTextureImage( textureIndex, source, loader ); - }; - /** - * WebP Texture Extension - * - * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Vendor/EXT_texture_webp - */ - function GLTFTextureWebPExtension( parser ) { - this.parser = parser; - this.name = EXTENSIONS.EXT_TEXTURE_WEBP; - this.isSupported = null; - } - GLTFTextureWebPExtension.prototype.loadTexture = function ( textureIndex ) { - var name = this.name; - var parser = this.parser; - var json = parser.json; - var textureDef = json.textures[ textureIndex ]; - if ( ! textureDef.extensions || ! textureDef.extensions[ name ] ) { - return null; - } - var extension = textureDef.extensions[ name ]; - var source = json.images[ extension.source ]; - var loader = source.uri ? parser.options.manager.getHandler( source.uri ) : parser.textureLoader; - return this.detectSupport().then( function ( isSupported ) { - if ( isSupported ) return parser.loadTextureImage( textureIndex, source, loader ); - if ( json.extensionsRequired && json.extensionsRequired.indexOf( name ) >= 0 ) { - throw new Error( 'THREE.GLTFLoader: WebP required by asset but unsupported.' ); - } - // Fall back to PNG or JPEG. - return parser.loadTexture( textureIndex ); - } ); - }; - GLTFTextureWebPExtension.prototype.detectSupport = function () { - if ( ! this.isSupported ) { - this.isSupported = new Promise( function ( resolve ) { - var image = new Image(); - // Lossy test image. Support for lossy images doesn't guarantee support for all - // WebP images, unfortunately. - image.src = 'data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA'; - image.onload = image.onerror = function () { - resolve( image.height === 1 ); - }; - } ); - } - return this.isSupported; - }; - /** - * meshopt BufferView Compression Extension - * - * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Vendor/EXT_meshopt_compression - */ - function GLTFMeshoptCompression( parser ) { - this.name = EXTENSIONS.EXT_MESHOPT_COMPRESSION; - this.parser = parser; - } - GLTFMeshoptCompression.prototype.loadBufferView = function ( index ) { - var json = this.parser.json; - var bufferView = json.bufferViews[ index ]; - if ( bufferView.extensions && bufferView.extensions[ this.name ] ) { - var extensionDef = bufferView.extensions[ this.name ]; - var buffer = this.parser.getDependency( 'buffer', extensionDef.buffer ); - var decoder = this.parser.options.meshoptDecoder; - if ( ! decoder || ! decoder.supported ) { - if ( json.extensionsRequired && json.extensionsRequired.indexOf( this.name ) >= 0 ) { - throw new Error( 'THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files' ); - } else { - // Assumes that the extension is optional and that fallback buffer data is present - return null; - } - } - return Promise.all( [ buffer, decoder.ready ] ).then( function ( res ) { - var byteOffset = extensionDef.byteOffset || 0; - var byteLength = extensionDef.byteLength || 0; - var count = extensionDef.count; - var stride = extensionDef.byteStride; - var result = new ArrayBuffer( count * stride ); - var source = new Uint8Array( res[ 0 ], byteOffset, byteLength ); - decoder.decodeGltfBuffer( new Uint8Array( result ), count, stride, source, extensionDef.mode, extensionDef.filter ); - return result; - } ); - } else { - return null; - } - }; - /* BINARY EXTENSION */ - var BINARY_EXTENSION_HEADER_MAGIC = 'glTF'; - var BINARY_EXTENSION_HEADER_LENGTH = 12; - var BINARY_EXTENSION_CHUNK_TYPES = { JSON: 0x4E4F534A, BIN: 0x004E4942 }; - function GLTFBinaryExtension( data ) { - this.name = EXTENSIONS.KHR_BINARY_GLTF; - this.content = null; - this.body = null; - var headerView = new DataView( data, 0, BINARY_EXTENSION_HEADER_LENGTH ); - this.header = { - magic: THREE.LoaderUtils.decodeText( new Uint8Array( data.slice( 0, 4 ) ) ), - version: headerView.getUint32( 4, true ), - length: headerView.getUint32( 8, true ) - }; - if ( this.header.magic !== BINARY_EXTENSION_HEADER_MAGIC ) { - throw new Error( 'THREE.GLTFLoader: Unsupported glTF-Binary header.' ); - } else if ( this.header.version < 2.0 ) { - throw new Error( 'THREE.GLTFLoader: Legacy binary file detected.' ); - } - var chunkView = new DataView( data, BINARY_EXTENSION_HEADER_LENGTH ); - var chunkIndex = 0; - while ( chunkIndex < chunkView.byteLength ) { - var chunkLength = chunkView.getUint32( chunkIndex, true ); - chunkIndex += 4; - var chunkType = chunkView.getUint32( chunkIndex, true ); - chunkIndex += 4; - if ( chunkType === BINARY_EXTENSION_CHUNK_TYPES.JSON ) { - var contentArray = new Uint8Array( data, BINARY_EXTENSION_HEADER_LENGTH + chunkIndex, chunkLength ); - this.content = THREE.LoaderUtils.decodeText( contentArray ); - } else if ( chunkType === BINARY_EXTENSION_CHUNK_TYPES.BIN ) { - var byteOffset = BINARY_EXTENSION_HEADER_LENGTH + chunkIndex; - this.body = data.slice( byteOffset, byteOffset + chunkLength ); - } - // Clients must ignore chunks with unknown types. - chunkIndex += chunkLength; - } - if ( this.content === null ) { - throw new Error( 'THREE.GLTFLoader: JSON content not found.' ); - } - } - /** - * DRACO Mesh Compression Extension - * - * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_draco_mesh_compression - */ - function GLTFDracoMeshCompressionExtension( json, dracoLoader ) { - if ( ! dracoLoader ) { - throw new Error( 'THREE.GLTFLoader: No DRACOLoader instance provided.' ); - } - this.name = EXTENSIONS.KHR_DRACO_MESH_COMPRESSION; - this.json = json; - this.dracoLoader = dracoLoader; - this.dracoLoader.preload(); - } - GLTFDracoMeshCompressionExtension.prototype.decodePrimitive = function ( primitive, parser ) { - var json = this.json; - var dracoLoader = this.dracoLoader; - var bufferViewIndex = primitive.extensions[ this.name ].bufferView; - var gltfAttributeMap = primitive.extensions[ this.name ].attributes; - var threeAttributeMap = {}; - var attributeNormalizedMap = {}; - var attributeTypeMap = {}; - for ( var attributeName in gltfAttributeMap ) { - var threeAttributeName = ATTRIBUTES[ attributeName ] || attributeName.toLowerCase(); - threeAttributeMap[ threeAttributeName ] = gltfAttributeMap[ attributeName ]; - } - for ( attributeName in primitive.attributes ) { - var threeAttributeName = ATTRIBUTES[ attributeName ] || attributeName.toLowerCase(); - if ( gltfAttributeMap[ attributeName ] !== undefined ) { - var accessorDef = json.accessors[ primitive.attributes[ attributeName ] ]; - var componentType = WEBGL_COMPONENT_TYPES[ accessorDef.componentType ]; - attributeTypeMap[ threeAttributeName ] = componentType; - attributeNormalizedMap[ threeAttributeName ] = accessorDef.normalized === true; - } - } - return parser.getDependency( 'bufferView', bufferViewIndex ).then( function ( bufferView ) { - return new Promise( function ( resolve ) { - dracoLoader.decodeDracoFile( bufferView, function ( geometry ) { - for ( var attributeName in geometry.attributes ) { - var attribute = geometry.attributes[ attributeName ]; - var normalized = attributeNormalizedMap[ attributeName ]; - if ( normalized !== undefined ) attribute.normalized = normalized; - } - resolve( geometry ); - }, threeAttributeMap, attributeTypeMap ); - } ); - } ); - }; - /** - * Texture Transform Extension - * - * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_texture_transform - */ - function GLTFTextureTransformExtension() { - this.name = EXTENSIONS.KHR_TEXTURE_TRANSFORM; - } - GLTFTextureTransformExtension.prototype.extendTexture = function ( texture, transform ) { - texture = texture.clone(); - if ( transform.offset !== undefined ) { - texture.offset.fromArray( transform.offset ); - } - if ( transform.rotation !== undefined ) { - texture.rotation = transform.rotation; - } - if ( transform.scale !== undefined ) { - texture.repeat.fromArray( transform.scale ); - } - if ( transform.texCoord !== undefined ) { - console.warn( 'THREE.GLTFLoader: Custom UV sets in "' + this.name + '" extension not yet supported.' ); - } - texture.needsUpdate = true; - return texture; - }; - /** - * Specular-Glossiness Extension - * - * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_pbrSpecularGlossiness - */ - /** - * A sub class of THREE.StandardMaterial with some of the functionality - * changed via the `onBeforeCompile` callback - * @pailhead - */ - function GLTFMeshStandardSGMaterial( params ) { - THREE.MeshStandardMaterial.call( this ); - this.isGLTFSpecularGlossinessMaterial = true; - //various chunks that need replacing - var specularMapParsFragmentChunk = [ - '#ifdef USE_SPECULARMAP', - ' uniform sampler2D specularMap;', - '#endif' - ].join( '\n' ); - var glossinessMapParsFragmentChunk = [ - '#ifdef USE_GLOSSINESSMAP', - ' uniform sampler2D glossinessMap;', - '#endif' - ].join( '\n' ); - var specularMapFragmentChunk = [ - 'vec3 specularFactor = specular;', - '#ifdef USE_SPECULARMAP', - ' vec4 texelSpecular = texture2D( specularMap, vUv );', - ' texelSpecular = sRGBToLinear( texelSpecular );', - ' // reads channel RGB, compatible with a glTF Specular-Glossiness (RGBA) texture', - ' specularFactor *= texelSpecular.rgb;', - '#endif' - ].join( '\n' ); - var glossinessMapFragmentChunk = [ - 'float glossinessFactor = glossiness;', - '#ifdef USE_GLOSSINESSMAP', - ' vec4 texelGlossiness = texture2D( glossinessMap, vUv );', - ' // reads channel A, compatible with a glTF Specular-Glossiness (RGBA) texture', - ' glossinessFactor *= texelGlossiness.a;', - '#endif' - ].join( '\n' ); - var lightPhysicalFragmentChunk = [ - 'PhysicalMaterial material;', - 'material.diffuseColor = diffuseColor.rgb * ( 1. - max( specularFactor.r, max( specularFactor.g, specularFactor.b ) ) );', - 'vec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );', - 'float geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );', - 'material.specularRoughness = max( 1.0 - glossinessFactor, 0.0525 ); // 0.0525 corresponds to the base mip of a 256 cubemap.', - 'material.specularRoughness += geometryRoughness;', - 'material.specularRoughness = min( material.specularRoughness, 1.0 );', - 'material.specularColor = specularFactor;', - ].join( '\n' ); - var uniforms = { - specular: { value: new THREE.Color().setHex( 0xffffff ) }, - glossiness: { value: 1 }, - specularMap: { value: null }, - glossinessMap: { value: null } - }; - this._extraUniforms = uniforms; - this.onBeforeCompile = function ( shader ) { - for ( var uniformName in uniforms ) { - shader.uniforms[ uniformName ] = uniforms[ uniformName ]; - } - shader.fragmentShader = shader.fragmentShader - .replace( 'uniform float roughness;', 'uniform vec3 specular;' ) - .replace( 'uniform float metalness;', 'uniform float glossiness;' ) - .replace( '#include ', specularMapParsFragmentChunk ) - .replace( '#include ', glossinessMapParsFragmentChunk ) - .replace( '#include ', specularMapFragmentChunk ) - .replace( '#include ', glossinessMapFragmentChunk ) - .replace( '#include ', lightPhysicalFragmentChunk ); - }; - Object.defineProperties( this, { - specular: { - get: function () { - return uniforms.specular.value; - }, - set: function ( v ) { - uniforms.specular.value = v; - } - }, - specularMap: { - get: function () { - return uniforms.specularMap.value; - }, - set: function ( v ) { - uniforms.specularMap.value = v; - if ( v ) { - this.defines.USE_SPECULARMAP = ''; // USE_UV is set by the renderer for specular maps - } else { - delete this.defines.USE_SPECULARMAP; - } - } - }, - glossiness: { - get: function () { - return uniforms.glossiness.value; - }, - set: function ( v ) { - uniforms.glossiness.value = v; - } - }, - glossinessMap: { - get: function () { - return uniforms.glossinessMap.value; - }, - set: function ( v ) { - uniforms.glossinessMap.value = v; - if ( v ) { - this.defines.USE_GLOSSINESSMAP = ''; - this.defines.USE_UV = ''; - } else { - delete this.defines.USE_GLOSSINESSMAP; - delete this.defines.USE_UV; - } - } - } - } ); - delete this.metalness; - delete this.roughness; - delete this.metalnessMap; - delete this.roughnessMap; - this.setValues( params ); - } - GLTFMeshStandardSGMaterial.prototype = Object.create( THREE.MeshStandardMaterial.prototype ); - GLTFMeshStandardSGMaterial.prototype.constructor = GLTFMeshStandardSGMaterial; - GLTFMeshStandardSGMaterial.prototype.copy = function ( source ) { - THREE.MeshStandardMaterial.prototype.copy.call( this, source ); - this.specularMap = source.specularMap; - this.specular.copy( source.specular ); - this.glossinessMap = source.glossinessMap; - this.glossiness = source.glossiness; - delete this.metalness; - delete this.roughness; - delete this.metalnessMap; - delete this.roughnessMap; - return this; - }; - function GLTFMaterialsPbrSpecularGlossinessExtension() { - return { - name: EXTENSIONS.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS, - specularGlossinessParams: [ - 'color', - 'map', - 'lightMap', - 'lightMapIntensity', - 'aoMap', - 'aoMapIntensity', - 'emissive', - 'emissiveIntensity', - 'emissiveMap', - 'bumpMap', - 'bumpScale', - 'normalMap', - 'normalMapType', - 'displacementMap', - 'displacementScale', - 'displacementBias', - 'specularMap', - 'specular', - 'glossinessMap', - 'glossiness', - 'alphaMap', - 'envMap', - 'envMapIntensity', - 'refractionRatio', - ], - getMaterialType: function () { - return GLTFMeshStandardSGMaterial; - }, - extendParams: function ( materialParams, materialDef, parser ) { - var pbrSpecularGlossiness = materialDef.extensions[ this.name ]; - materialParams.color = new THREE.Color( 1.0, 1.0, 1.0 ); - materialParams.opacity = 1.0; - var pending = []; - if ( Array.isArray( pbrSpecularGlossiness.diffuseFactor ) ) { - var array = pbrSpecularGlossiness.diffuseFactor; - materialParams.color.fromArray( array ); - materialParams.opacity = array[ 3 ]; - } - if ( pbrSpecularGlossiness.diffuseTexture !== undefined ) { - pending.push( parser.assignTexture( materialParams, 'map', pbrSpecularGlossiness.diffuseTexture ) ); - } - materialParams.emissive = new THREE.Color( 0.0, 0.0, 0.0 ); - materialParams.glossiness = pbrSpecularGlossiness.glossinessFactor !== undefined ? pbrSpecularGlossiness.glossinessFactor : 1.0; - materialParams.specular = new THREE.Color( 1.0, 1.0, 1.0 ); - if ( Array.isArray( pbrSpecularGlossiness.specularFactor ) ) { - materialParams.specular.fromArray( pbrSpecularGlossiness.specularFactor ); - } - if ( pbrSpecularGlossiness.specularGlossinessTexture !== undefined ) { - var specGlossMapDef = pbrSpecularGlossiness.specularGlossinessTexture; - pending.push( parser.assignTexture( materialParams, 'glossinessMap', specGlossMapDef ) ); - pending.push( parser.assignTexture( materialParams, 'specularMap', specGlossMapDef ) ); - } - return Promise.all( pending ); - }, - createMaterial: function ( materialParams ) { - var material = new GLTFMeshStandardSGMaterial( materialParams ); - material.fog = true; - material.color = materialParams.color; - material.map = materialParams.map === undefined ? null : materialParams.map; - material.lightMap = null; - material.lightMapIntensity = 1.0; - material.aoMap = materialParams.aoMap === undefined ? null : materialParams.aoMap; - material.aoMapIntensity = 1.0; - material.emissive = materialParams.emissive; - material.emissiveIntensity = 1.0; - material.emissiveMap = materialParams.emissiveMap === undefined ? null : materialParams.emissiveMap; - material.bumpMap = materialParams.bumpMap === undefined ? null : materialParams.bumpMap; - material.bumpScale = 1; - material.normalMap = materialParams.normalMap === undefined ? null : materialParams.normalMap; - material.normalMapType = THREE.TangentSpaceNormalMap; - if ( materialParams.normalScale ) material.normalScale = materialParams.normalScale; - material.displacementMap = null; - material.displacementScale = 1; - material.displacementBias = 0; - material.specularMap = materialParams.specularMap === undefined ? null : materialParams.specularMap; - material.specular = materialParams.specular; - material.glossinessMap = materialParams.glossinessMap === undefined ? null : materialParams.glossinessMap; - material.glossiness = materialParams.glossiness; - material.alphaMap = null; - material.envMap = materialParams.envMap === undefined ? null : materialParams.envMap; - material.envMapIntensity = 1.0; - material.refractionRatio = 0.98; - return material; - }, - }; - } - /** - * Mesh Quantization Extension - * - * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_mesh_quantization - */ - function GLTFMeshQuantizationExtension() { - this.name = EXTENSIONS.KHR_MESH_QUANTIZATION; - } - /*********************************/ - /********** INTERPOLATION ********/ - /*********************************/ - // Spline Interpolation - // Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#appendix-c-spline-interpolation - function GLTFCubicSplineInterpolant( parameterPositions, sampleValues, sampleSize, resultBuffer ) { - THREE.Interpolant.call( this, parameterPositions, sampleValues, sampleSize, resultBuffer ); - } - GLTFCubicSplineInterpolant.prototype = Object.create( THREE.Interpolant.prototype ); - GLTFCubicSplineInterpolant.prototype.constructor = GLTFCubicSplineInterpolant; - GLTFCubicSplineInterpolant.prototype.copySampleValue_ = function ( index ) { - // Copies a sample value to the result buffer. See description of glTF - // CUBICSPLINE values layout in interpolate_() function below. - var result = this.resultBuffer, - values = this.sampleValues, - valueSize = this.valueSize, - offset = index * valueSize * 3 + valueSize; - for ( var i = 0; i !== valueSize; i ++ ) { - result[ i ] = values[ offset + i ]; - } - return result; - }; - GLTFCubicSplineInterpolant.prototype.beforeStart_ = GLTFCubicSplineInterpolant.prototype.copySampleValue_; - GLTFCubicSplineInterpolant.prototype.afterEnd_ = GLTFCubicSplineInterpolant.prototype.copySampleValue_; - GLTFCubicSplineInterpolant.prototype.interpolate_ = function ( i1, t0, t, t1 ) { - var result = this.resultBuffer; - var values = this.sampleValues; - var stride = this.valueSize; - var stride2 = stride * 2; - var stride3 = stride * 3; - var td = t1 - t0; - var p = ( t - t0 ) / td; - var pp = p * p; - var ppp = pp * p; - var offset1 = i1 * stride3; - var offset0 = offset1 - stride3; - var s2 = - 2 * ppp + 3 * pp; - var s3 = ppp - pp; - var s0 = 1 - s2; - var s1 = s3 - pp + p; - // Layout of keyframe output values for CUBICSPLINE animations: - // [ inTangent_1, splineVertex_1, outTangent_1, inTangent_2, splineVertex_2, ... ] - for ( var i = 0; i !== stride; i ++ ) { - var p0 = values[ offset0 + i + stride ]; // splineVertex_k - var m0 = values[ offset0 + i + stride2 ] * td; // outTangent_k * (t_k+1 - t_k) - var p1 = values[ offset1 + i + stride ]; // splineVertex_k+1 - var m1 = values[ offset1 + i ] * td; // inTangent_k+1 * (t_k+1 - t_k) - result[ i ] = s0 * p0 + s1 * m0 + s2 * p1 + s3 * m1; - } - return result; - }; - /*********************************/ - /********** INTERNALS ************/ - /*********************************/ - /* CONSTANTS */ - var WEBGL_CONSTANTS = { - FLOAT: 5126, - //FLOAT_MAT2: 35674, - FLOAT_MAT3: 35675, - FLOAT_MAT4: 35676, - FLOAT_VEC2: 35664, - FLOAT_VEC3: 35665, - FLOAT_VEC4: 35666, - LINEAR: 9729, - REPEAT: 10497, - SAMPLER_2D: 35678, - POINTS: 0, - LINES: 1, - LINE_LOOP: 2, - LINE_STRIP: 3, - TRIANGLES: 4, - TRIANGLE_STRIP: 5, - TRIANGLE_FAN: 6, - UNSIGNED_BYTE: 5121, - UNSIGNED_SHORT: 5123 - }; - var WEBGL_COMPONENT_TYPES = { - 5120: Int8Array, - 5121: Uint8Array, - 5122: Int16Array, - 5123: Uint16Array, - 5125: Uint32Array, - 5126: Float32Array - }; - var WEBGL_FILTERS = { - 9728: THREE.NearestFilter, - 9729: THREE.LinearFilter, - 9984: THREE.NearestMipmapNearestFilter, - 9985: THREE.LinearMipmapNearestFilter, - 9986: THREE.NearestMipmapLinearFilter, - 9987: THREE.LinearMipmapLinearFilter - }; - var WEBGL_WRAPPINGS = { - 33071: THREE.ClampToEdgeWrapping, - 33648: THREE.MirroredRepeatWrapping, - 10497: THREE.RepeatWrapping - }; - var WEBGL_TYPE_SIZES = { - 'SCALAR': 1, - 'VEC2': 2, - 'VEC3': 3, - 'VEC4': 4, - 'MAT2': 4, - 'MAT3': 9, - 'MAT4': 16 - }; - var ATTRIBUTES = { - POSITION: 'position', - NORMAL: 'normal', - TANGENT: 'tangent', - TEXCOORD_0: 'uv', - TEXCOORD_1: 'uv2', - COLOR_0: 'color', - WEIGHTS_0: 'skinWeight', - JOINTS_0: 'skinIndex', - }; - var PATH_PROPERTIES = { - scale: 'scale', - translation: 'position', - rotation: 'quaternion', - weights: 'morphTargetInfluences' - }; - var INTERPOLATION = { - CUBICSPLINE: undefined, // We use a custom interpolant (GLTFCubicSplineInterpolation) for CUBICSPLINE tracks. Each - // keyframe track will be initialized with a default interpolation type, then modified. - LINEAR: THREE.InterpolateLinear, - STEP: THREE.InterpolateDiscrete - }; - var ALPHA_MODES = { - OPAQUE: 'OPAQUE', - MASK: 'MASK', - BLEND: 'BLEND' - }; - /* UTILITY FUNCTIONS */ - function resolveURL( url, path ) { - // Invalid URL - if ( typeof url !== 'string' || url === '' ) return ''; - // Host Relative URL - if ( /^https?:\/\//i.test( path ) && /^\//.test( url ) ) { - path = path.replace( /(^https?:\/\/[^\/]+).*/i, '$1' ); - } - // Absolute URL http://,https://,// - if ( /^(https?:)?\/\//i.test( url ) ) return url; - // Data URI - if ( /^data:.*,.*$/i.test( url ) ) return url; - // Blob URL - if ( /^blob:.*$/i.test( url ) ) return url; - // Relative URL - return path + url; - } - /** - * Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#default-material - */ - function createDefaultMaterial( cache ) { - if ( cache[ 'DefaultMaterial' ] === undefined ) { - cache[ 'DefaultMaterial' ] = new THREE.MeshStandardMaterial( { - color: 0xFFFFFF, - emissive: 0x000000, - metalness: 1, - roughness: 1, - transparent: false, - depthTest: true, - side: THREE.FrontSide - } ); - } - return cache[ 'DefaultMaterial' ]; - } - function addUnknownExtensionsToUserData( knownExtensions, object, objectDef ) { - // Add unknown glTF extensions to an object's userData. - for ( var name in objectDef.extensions ) { - if ( knownExtensions[ name ] === undefined ) { - object.userData.gltfExtensions = object.userData.gltfExtensions || {}; - object.userData.gltfExtensions[ name ] = objectDef.extensions[ name ]; - } - } - } - /** - * @param {THREE.Object3D|THREE.Material|THREE.BufferGeometry} object - * @param {GLTF.definition} gltfDef - */ - function assignExtrasToUserData( object, gltfDef ) { - if ( gltfDef.extras !== undefined ) { - if ( typeof gltfDef.extras === 'object' ) { - Object.assign( object.userData, gltfDef.extras ); - } else { - console.warn( 'THREE.GLTFLoader: Ignoring primitive type .extras, ' + gltfDef.extras ); - } - } - } - /** - * Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#morph-targets - * - * @param {THREE.BufferGeometry} geometry - * @param {Array} targets - * @param {GLTFParser} parser - * @return {Promise} - */ - function addMorphTargets( geometry, targets, parser ) { - var hasMorphPosition = false; - var hasMorphNormal = false; - for ( var i = 0, il = targets.length; i < il; i ++ ) { - var target = targets[ i ]; - if ( target.POSITION !== undefined ) hasMorphPosition = true; - if ( target.NORMAL !== undefined ) hasMorphNormal = true; - if ( hasMorphPosition && hasMorphNormal ) break; - } - if ( ! hasMorphPosition && ! hasMorphNormal ) return Promise.resolve( geometry ); - var pendingPositionAccessors = []; - var pendingNormalAccessors = []; - for ( var i = 0, il = targets.length; i < il; i ++ ) { - var target = targets[ i ]; - if ( hasMorphPosition ) { - var pendingAccessor = target.POSITION !== undefined - ? parser.getDependency( 'accessor', target.POSITION ) - : geometry.attributes.position; - pendingPositionAccessors.push( pendingAccessor ); - } - if ( hasMorphNormal ) { - var pendingAccessor = target.NORMAL !== undefined - ? parser.getDependency( 'accessor', target.NORMAL ) - : geometry.attributes.normal; - pendingNormalAccessors.push( pendingAccessor ); - } - } - return Promise.all( [ - Promise.all( pendingPositionAccessors ), - Promise.all( pendingNormalAccessors ) - ] ).then( function ( accessors ) { - var morphPositions = accessors[ 0 ]; - var morphNormals = accessors[ 1 ]; - if ( hasMorphPosition ) geometry.morphAttributes.position = morphPositions; - if ( hasMorphNormal ) geometry.morphAttributes.normal = morphNormals; - geometry.morphTargetsRelative = true; - return geometry; - } ); - } - /** - * @param {THREE.Mesh} mesh - * @param {GLTF.Mesh} meshDef - */ - function updateMorphTargets( mesh, meshDef ) { - mesh.updateMorphTargets(); - if ( meshDef.weights !== undefined ) { - for ( var i = 0, il = meshDef.weights.length; i < il; i ++ ) { - mesh.morphTargetInfluences[ i ] = meshDef.weights[ i ]; - } - } - // .extras has user-defined data, so check that .extras.targetNames is an array. - if ( meshDef.extras && Array.isArray( meshDef.extras.targetNames ) ) { - var targetNames = meshDef.extras.targetNames; - if ( mesh.morphTargetInfluences.length === targetNames.length ) { - mesh.morphTargetDictionary = {}; - for ( var i = 0, il = targetNames.length; i < il; i ++ ) { - mesh.morphTargetDictionary[ targetNames[ i ] ] = i; - } - } else { - console.warn( 'THREE.GLTFLoader: Invalid extras.targetNames length. Ignoring names.' ); - } - } - } - function createPrimitiveKey( primitiveDef ) { - var dracoExtension = primitiveDef.extensions && primitiveDef.extensions[ EXTENSIONS.KHR_DRACO_MESH_COMPRESSION ]; - var geometryKey; - if ( dracoExtension ) { - geometryKey = 'draco:' + dracoExtension.bufferView - + ':' + dracoExtension.indices - + ':' + createAttributesKey( dracoExtension.attributes ); - } else { - geometryKey = primitiveDef.indices + ':' + createAttributesKey( primitiveDef.attributes ) + ':' + primitiveDef.mode; - } - return geometryKey; - } - function createAttributesKey( attributes ) { - var attributesKey = ''; - var keys = Object.keys( attributes ).sort(); - for ( var i = 0, il = keys.length; i < il; i ++ ) { - attributesKey += keys[ i ] + ':' + attributes[ keys[ i ] ] + ';'; - } - return attributesKey; - } - /* GLTF PARSER */ - function GLTFParser( json, options ) { - this.json = json || {}; - this.extensions = {}; - this.plugins = {}; - this.options = options || {}; - // loader object cache - this.cache = new GLTFRegistry(); - // associations between Three.js objects and glTF elements - this.associations = new Map(); - // BufferGeometry caching - this.primitiveCache = {}; - // Object3D instance caches - this.meshCache = { refs: {}, uses: {} }; - this.cameraCache = { refs: {}, uses: {} }; - this.lightCache = { refs: {}, uses: {} }; - // Track node names, to ensure no duplicates - this.nodeNamesUsed = {}; - // Use an ImageBitmapLoader if imageBitmaps are supported. Moves much of the - // expensive work of uploading a texture to the GPU off the main thread. - if ( typeof createImageBitmap !== 'undefined' && /Firefox/.test( navigator.userAgent ) === false ) { - this.textureLoader = new THREE.ImageBitmapLoader( this.options.manager ); - } else { - this.textureLoader = new THREE.TextureLoader( this.options.manager ); - } - this.textureLoader.setCrossOrigin( this.options.crossOrigin ); - this.fileLoader = new THREE.FileLoader( this.options.manager ); - this.fileLoader.setResponseType( 'arraybuffer' ); - if ( this.options.crossOrigin === 'use-credentials' ) { - this.fileLoader.setWithCredentials( true ); - } - } - GLTFParser.prototype.setExtensions = function ( extensions ) { - this.extensions = extensions; - }; - GLTFParser.prototype.setPlugins = function ( plugins ) { - this.plugins = plugins; - }; - GLTFParser.prototype.parse = function ( onLoad, onError ) { - var parser = this; - var json = this.json; - var extensions = this.extensions; - // Clear the loader cache - this.cache.removeAll(); - // Mark the special nodes/meshes in json for efficient parse - this._invokeAll( function ( ext ) { - return ext._markDefs && ext._markDefs(); - } ); - Promise.all( [ - this.getDependencies( 'scene' ), - this.getDependencies( 'animation' ), - this.getDependencies( 'camera' ), - ] ).then( function ( dependencies ) { - var result = { - scene: dependencies[ 0 ][ json.scene || 0 ], - scenes: dependencies[ 0 ], - animations: dependencies[ 1 ], - cameras: dependencies[ 2 ], - asset: json.asset, - parser: parser, - userData: {} - }; - addUnknownExtensionsToUserData( extensions, result, json ); - assignExtrasToUserData( result, json ); - onLoad( result ); - } ).catch( onError ); - }; - /** - * Marks the special nodes/meshes in json for efficient parse. - */ - GLTFParser.prototype._markDefs = function () { - var nodeDefs = this.json.nodes || []; - var skinDefs = this.json.skins || []; - var meshDefs = this.json.meshes || []; - // Nothing in the node definition indicates whether it is a Bone or an - // Object3D. Use the skins' joint references to mark bones. - for ( var skinIndex = 0, skinLength = skinDefs.length; skinIndex < skinLength; skinIndex ++ ) { - var joints = skinDefs[ skinIndex ].joints; - for ( var i = 0, il = joints.length; i < il; i ++ ) { - nodeDefs[ joints[ i ] ].isBone = true; - } - } - // Iterate over all nodes, marking references to shared resources, - // as well as skeleton joints. - for ( var nodeIndex = 0, nodeLength = nodeDefs.length; nodeIndex < nodeLength; nodeIndex ++ ) { - var nodeDef = nodeDefs[ nodeIndex ]; - if ( nodeDef.mesh !== undefined ) { - this._addNodeRef( this.meshCache, nodeDef.mesh ); - // Nothing in the mesh definition indicates whether it is - // a SkinnedMesh or Mesh. Use the node's mesh reference - // to mark SkinnedMesh if node has skin. - if ( nodeDef.skin !== undefined ) { - meshDefs[ nodeDef.mesh ].isSkinnedMesh = true; - } - } - if ( nodeDef.camera !== undefined ) { - this._addNodeRef( this.cameraCache, nodeDef.camera ); - } - } - }; - /** - * Counts references to shared node / Object3D resources. These resources - * can be reused, or "instantiated", at multiple nodes in the scene - * hierarchy. Mesh, Camera, and Light instances are instantiated and must - * be marked. Non-scenegraph resources (like Materials, Geometries, and - * Textures) can be reused directly and are not marked here. - * - * Example: CesiumMilkTruck sample model reuses "Wheel" meshes. - */ - GLTFParser.prototype._addNodeRef = function ( cache, index ) { - if ( index === undefined ) return; - if ( cache.refs[ index ] === undefined ) { - cache.refs[ index ] = cache.uses[ index ] = 0; - } - cache.refs[ index ] ++; - }; - /** Returns a reference to a shared resource, cloning it if necessary. */ - GLTFParser.prototype._getNodeRef = function ( cache, index, object ) { - if ( cache.refs[ index ] <= 1 ) return object; - var ref = object.clone(); - ref.name += '_instance_' + ( cache.uses[ index ] ++ ); - return ref; - }; - GLTFParser.prototype._invokeOne = function ( func ) { - var extensions = Object.values( this.plugins ); - extensions.push( this ); - for ( var i = 0; i < extensions.length; i ++ ) { - var result = func( extensions[ i ] ); - if ( result ) return result; - } - }; - GLTFParser.prototype._invokeAll = function ( func ) { - var extensions = Object.values( this.plugins ); - extensions.unshift( this ); - var pending = []; - for ( var i = 0; i < extensions.length; i ++ ) { - var result = func( extensions[ i ] ); - if ( result ) pending.push( result ); - } - return pending; - }; - /** - * Requests the specified dependency asynchronously, with caching. - * @param {string} type - * @param {number} index - * @return {Promise} - */ - GLTFParser.prototype.getDependency = function ( type, index ) { - var cacheKey = type + ':' + index; - var dependency = this.cache.get( cacheKey ); - if ( ! dependency ) { - switch ( type ) { - case 'scene': - dependency = this.loadScene( index ); - break; - case 'node': - dependency = this.loadNode( index ); - break; - case 'mesh': - dependency = this._invokeOne( function ( ext ) { - return ext.loadMesh && ext.loadMesh( index ); - } ); - break; - case 'accessor': - dependency = this.loadAccessor( index ); - break; - case 'bufferView': - dependency = this._invokeOne( function ( ext ) { - return ext.loadBufferView && ext.loadBufferView( index ); - } ); - break; - case 'buffer': - dependency = this.loadBuffer( index ); - break; - case 'material': - dependency = this._invokeOne( function ( ext ) { - return ext.loadMaterial && ext.loadMaterial( index ); - } ); - break; - case 'texture': - dependency = this._invokeOne( function ( ext ) { - return ext.loadTexture && ext.loadTexture( index ); - } ); - break; - case 'skin': - dependency = this.loadSkin( index ); - break; - case 'animation': - dependency = this.loadAnimation( index ); - break; - case 'camera': - dependency = this.loadCamera( index ); - break; - default: - throw new Error( 'Unknown type: ' + type ); - } - this.cache.add( cacheKey, dependency ); - } - return dependency; - }; - /** - * Requests all dependencies of the specified type asynchronously, with caching. - * @param {string} type - * @return {Promise>} - */ - GLTFParser.prototype.getDependencies = function ( type ) { - var dependencies = this.cache.get( type ); - if ( ! dependencies ) { - var parser = this; - var defs = this.json[ type + ( type === 'mesh' ? 'es' : 's' ) ] || []; - dependencies = Promise.all( defs.map( function ( def, index ) { - return parser.getDependency( type, index ); - } ) ); - this.cache.add( type, dependencies ); - } - return dependencies; - }; - /** - * Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#buffers-and-buffer-views - * @param {number} bufferIndex - * @return {Promise} - */ - GLTFParser.prototype.loadBuffer = function ( bufferIndex ) { - var bufferDef = this.json.buffers[ bufferIndex ]; - var loader = this.fileLoader; - if ( bufferDef.type && bufferDef.type !== 'arraybuffer' ) { - throw new Error( 'THREE.GLTFLoader: ' + bufferDef.type + ' buffer type is not supported.' ); - } - // If present, GLB container is required to be the first buffer. - if ( bufferDef.uri === undefined && bufferIndex === 0 ) { - return Promise.resolve( this.extensions[ EXTENSIONS.KHR_BINARY_GLTF ].body ); - } - var options = this.options; - return new Promise( function ( resolve, reject ) { - loader.load( resolveURL( bufferDef.uri, options.path ), resolve, undefined, function () { - reject( new Error( 'THREE.GLTFLoader: Failed to load buffer "' + bufferDef.uri + '".' ) ); - } ); - } ); - }; - /** - * Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#buffers-and-buffer-views - * @param {number} bufferViewIndex - * @return {Promise} - */ - GLTFParser.prototype.loadBufferView = function ( bufferViewIndex ) { - var bufferViewDef = this.json.bufferViews[ bufferViewIndex ]; - return this.getDependency( 'buffer', bufferViewDef.buffer ).then( function ( buffer ) { - var byteLength = bufferViewDef.byteLength || 0; - var byteOffset = bufferViewDef.byteOffset || 0; - return buffer.slice( byteOffset, byteOffset + byteLength ); - } ); - }; - /** - * Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#accessors - * @param {number} accessorIndex - * @return {Promise} - */ - GLTFParser.prototype.loadAccessor = function ( accessorIndex ) { - var parser = this; - var json = this.json; - var accessorDef = this.json.accessors[ accessorIndex ]; - if ( accessorDef.bufferView === undefined && accessorDef.sparse === undefined ) { - // Ignore empty accessors, which may be used to declare runtime - // information about attributes coming from another source (e.g. Draco - // compression extension). - return Promise.resolve( null ); - } - var pendingBufferViews = []; - if ( accessorDef.bufferView !== undefined ) { - pendingBufferViews.push( this.getDependency( 'bufferView', accessorDef.bufferView ) ); - } else { - pendingBufferViews.push( null ); - } - if ( accessorDef.sparse !== undefined ) { - pendingBufferViews.push( this.getDependency( 'bufferView', accessorDef.sparse.indices.bufferView ) ); - pendingBufferViews.push( this.getDependency( 'bufferView', accessorDef.sparse.values.bufferView ) ); - } - return Promise.all( pendingBufferViews ).then( function ( bufferViews ) { - var bufferView = bufferViews[ 0 ]; - var itemSize = WEBGL_TYPE_SIZES[ accessorDef.type ]; - var TypedArray = WEBGL_COMPONENT_TYPES[ accessorDef.componentType ]; - // For VEC3: itemSize is 3, elementBytes is 4, itemBytes is 12. - var elementBytes = TypedArray.BYTES_PER_ELEMENT; - var itemBytes = elementBytes * itemSize; - var byteOffset = accessorDef.byteOffset || 0; - var byteStride = accessorDef.bufferView !== undefined ? json.bufferViews[ accessorDef.bufferView ].byteStride : undefined; - var normalized = accessorDef.normalized === true; - var array, bufferAttribute; - // The buffer is not interleaved if the stride is the item size in bytes. - if ( byteStride && byteStride !== itemBytes ) { - // Each "slice" of the buffer, as defined by 'count' elements of 'byteStride' bytes, gets its own InterleavedBuffer - // This makes sure that IBA.count reflects accessor.count properly - var ibSlice = Math.floor( byteOffset / byteStride ); - var ibCacheKey = 'InterleavedBuffer:' + accessorDef.bufferView + ':' + accessorDef.componentType + ':' + ibSlice + ':' + accessorDef.count; - var ib = parser.cache.get( ibCacheKey ); - if ( ! ib ) { - array = new TypedArray( bufferView, ibSlice * byteStride, accessorDef.count * byteStride / elementBytes ); - // Integer parameters to IB/IBA are in array elements, not bytes. - ib = new THREE.InterleavedBuffer( array, byteStride / elementBytes ); - parser.cache.add( ibCacheKey, ib ); - } - bufferAttribute = new THREE.InterleavedBufferAttribute( ib, itemSize, ( byteOffset % byteStride ) / elementBytes, normalized ); - } else { - if ( bufferView === null ) { - array = new TypedArray( accessorDef.count * itemSize ); - } else { - array = new TypedArray( bufferView, byteOffset, accessorDef.count * itemSize ); - } - bufferAttribute = new THREE.BufferAttribute( array, itemSize, normalized ); - } - // https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#sparse-accessors - if ( accessorDef.sparse !== undefined ) { - var itemSizeIndices = WEBGL_TYPE_SIZES.SCALAR; - var TypedArrayIndices = WEBGL_COMPONENT_TYPES[ accessorDef.sparse.indices.componentType ]; - var byteOffsetIndices = accessorDef.sparse.indices.byteOffset || 0; - var byteOffsetValues = accessorDef.sparse.values.byteOffset || 0; - var sparseIndices = new TypedArrayIndices( bufferViews[ 1 ], byteOffsetIndices, accessorDef.sparse.count * itemSizeIndices ); - var sparseValues = new TypedArray( bufferViews[ 2 ], byteOffsetValues, accessorDef.sparse.count * itemSize ); - if ( bufferView !== null ) { - // Avoid modifying the original ArrayBuffer, if the bufferView wasn't initialized with zeroes. - bufferAttribute = new THREE.BufferAttribute( bufferAttribute.array.slice(), bufferAttribute.itemSize, bufferAttribute.normalized ); - } - for ( var i = 0, il = sparseIndices.length; i < il; i ++ ) { - var index = sparseIndices[ i ]; - bufferAttribute.setX( index, sparseValues[ i * itemSize ] ); - if ( itemSize >= 2 ) bufferAttribute.setY( index, sparseValues[ i * itemSize + 1 ] ); - if ( itemSize >= 3 ) bufferAttribute.setZ( index, sparseValues[ i * itemSize + 2 ] ); - if ( itemSize >= 4 ) bufferAttribute.setW( index, sparseValues[ i * itemSize + 3 ] ); - if ( itemSize >= 5 ) throw new Error( 'THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.' ); - } - } - return bufferAttribute; - } ); - }; - /** - * Specification: https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#textures - * @param {number} textureIndex - * @return {Promise} - */ - GLTFParser.prototype.loadTexture = function ( textureIndex ) { - var parser = this; - var json = this.json; - var options = this.options; - var textureDef = json.textures[ textureIndex ]; - var textureExtensions = textureDef.extensions || {}; - var source; - if ( textureExtensions[ EXTENSIONS.MSFT_TEXTURE_DDS ] ) { - source = json.images[ textureExtensions[ EXTENSIONS.MSFT_TEXTURE_DDS ].source ]; - } else { - source = json.images[ textureDef.source ]; - } - var loader; - if ( source.uri ) { - loader = options.manager.getHandler( source.uri ); - } - if ( ! loader ) { - loader = textureExtensions[ EXTENSIONS.MSFT_TEXTURE_DDS ] - ? parser.extensions[ EXTENSIONS.MSFT_TEXTURE_DDS ].ddsLoader - : this.textureLoader; - } - return this.loadTextureImage( textureIndex, source, loader ); - }; - GLTFParser.prototype.loadTextureImage = function ( textureIndex, source, loader ) { - var parser = this; - var json = this.json; - var options = this.options; - var textureDef = json.textures[ textureIndex ]; - var URL = self.URL || self.webkitURL; - var sourceURI = source.uri; - var isObjectURL = false; - var hasAlpha = true; - if ( source.mimeType === 'image/jpeg' ) hasAlpha = false; - if ( source.bufferView !== undefined ) { - // Load binary image data from bufferView, if provided. - sourceURI = parser.getDependency( 'bufferView', source.bufferView ).then( function ( bufferView ) { - if ( source.mimeType === 'image/png' ) { - // Inspect the PNG 'IHDR' chunk to determine whether the image could have an - // alpha channel. This check is conservative — the image could have an alpha - // channel with all values == 1, and the indexed type (colorType == 3) only - // sometimes contains alpha. - // - // https://en.wikipedia.org/wiki/Portable_Network_Graphics#File_header - var colorType = new DataView( bufferView, 25, 1 ).getUint8( 0, false ); - hasAlpha = colorType === 6 || colorType === 4 || colorType === 3; - } - isObjectURL = true; - var blob = new Blob( [ bufferView ], { type: source.mimeType } ); - sourceURI = URL.createObjectURL( blob ); - return sourceURI; - } ); - } - return Promise.resolve( sourceURI ).then( function ( sourceURI ) { - return new Promise( function ( resolve, reject ) { - var onLoad = resolve; - if ( loader.isImageBitmapLoader === true ) { - onLoad = function ( imageBitmap ) { - resolve( new THREE.CanvasTexture( imageBitmap ) ); - }; - } - loader.load( resolveURL( sourceURI, options.path ), onLoad, undefined, reject ); - } ); - } ).then( function ( texture ) { - // Clean up resources and configure Texture. - if ( isObjectURL === true ) { - URL.revokeObjectURL( sourceURI ); - } - texture.flipY = false; - if ( textureDef.name ) texture.name = textureDef.name; - // When there is definitely no alpha channel in the texture, set RGBFormat to save space. - if ( ! hasAlpha ) texture.format = THREE.RGBFormat; - var samplers = json.samplers || {}; - var sampler = samplers[ textureDef.sampler ] || {}; - texture.magFilter = WEBGL_FILTERS[ sampler.magFilter ] || THREE.LinearFilter; - texture.minFilter = WEBGL_FILTERS[ sampler.minFilter ] || THREE.LinearMipmapLinearFilter; - texture.wrapS = WEBGL_WRAPPINGS[ sampler.wrapS ] || THREE.RepeatWrapping; - texture.wrapT = WEBGL_WRAPPINGS[ sampler.wrapT ] || THREE.RepeatWrapping; - parser.associations.set( texture, { - type: 'textures', - index: textureIndex - } ); - return texture; - } ); - }; - /** - * Asynchronously assigns a texture to the given material parameters. - * @param {Object} materialParams - * @param {string} mapName - * @param {Object} mapDef - * @return {Promise} - */ - GLTFParser.prototype.assignTexture = function ( materialParams, mapName, mapDef ) { - var parser = this; - return this.getDependency( 'texture', mapDef.index ).then( function ( texture ) { - // Materials sample aoMap from UV set 1 and other maps from UV set 0 - this can't be configured - // However, we will copy UV set 0 to UV set 1 on demand for aoMap - if ( mapDef.texCoord !== undefined && mapDef.texCoord != 0 && ! ( mapName === 'aoMap' && mapDef.texCoord == 1 ) ) { - console.warn( 'THREE.GLTFLoader: Custom UV set ' + mapDef.texCoord + ' for texture ' + mapName + ' not yet supported.' ); - } - if ( parser.extensions[ EXTENSIONS.KHR_TEXTURE_TRANSFORM ] ) { - var transform = mapDef.extensions !== undefined ? mapDef.extensions[ EXTENSIONS.KHR_TEXTURE_TRANSFORM ] : undefined; - if ( transform ) { - var gltfReference = parser.associations.get( texture ); - texture = parser.extensions[ EXTENSIONS.KHR_TEXTURE_TRANSFORM ].extendTexture( texture, transform ); - parser.associations.set( texture, gltfReference ); - } - } - materialParams[ mapName ] = texture; - } ); - }; - /** - * Assigns final material to a Mesh, Line, or Points instance. The instance - * already has a material (generated from the glTF material options alone) - * but reuse of the same glTF material may require multiple threejs materials - * to accomodate different primitive types, defines, etc. New materials will - * be created if necessary, and reused from a cache. - * @param {THREE.Object3D} mesh Mesh, Line, or Points instance. - */ - GLTFParser.prototype.assignFinalMaterial = function ( mesh ) { - var geometry = mesh.geometry; - var material = mesh.material; - var useVertexTangents = geometry.attributes.tangent !== undefined; - var useVertexColors = geometry.attributes.color !== undefined; - var useFlatShading = geometry.attributes.normal === undefined; - var useSkinning = mesh.isSkinnedMesh === true; - var useMorphTargets = Object.keys( geometry.morphAttributes ).length > 0; - var useMorphNormals = useMorphTargets && geometry.morphAttributes.normal !== undefined; - if ( mesh.isPoints ) { - var cacheKey = 'PointsMaterial:' + material.uuid; - var pointsMaterial = this.cache.get( cacheKey ); - if ( ! pointsMaterial ) { - pointsMaterial = new THREE.PointsMaterial(); - THREE.Material.prototype.copy.call( pointsMaterial, material ); - pointsMaterial.color.copy( material.color ); - pointsMaterial.map = material.map; - pointsMaterial.sizeAttenuation = false; // glTF spec says points should be 1px - this.cache.add( cacheKey, pointsMaterial ); - } - material = pointsMaterial; - } else if ( mesh.isLine ) { - var cacheKey = 'LineBasicMaterial:' + material.uuid; - var lineMaterial = this.cache.get( cacheKey ); - if ( ! lineMaterial ) { - lineMaterial = new THREE.LineBasicMaterial(); - THREE.Material.prototype.copy.call( lineMaterial, material ); - lineMaterial.color.copy( material.color ); - this.cache.add( cacheKey, lineMaterial ); - } - material = lineMaterial; - } - // Clone the material if it will be modified - if ( useVertexTangents || useVertexColors || useFlatShading || useSkinning || useMorphTargets ) { - var cacheKey = 'ClonedMaterial:' + material.uuid + ':'; - if ( material.isGLTFSpecularGlossinessMaterial ) cacheKey += 'specular-glossiness:'; - if ( useSkinning ) cacheKey += 'skinning:'; - if ( useVertexTangents ) cacheKey += 'vertex-tangents:'; - if ( useVertexColors ) cacheKey += 'vertex-colors:'; - if ( useFlatShading ) cacheKey += 'flat-shading:'; - if ( useMorphTargets ) cacheKey += 'morph-targets:'; - if ( useMorphNormals ) cacheKey += 'morph-normals:'; - var cachedMaterial = this.cache.get( cacheKey ); - if ( ! cachedMaterial ) { - cachedMaterial = material.clone(); - if ( useSkinning ) cachedMaterial.skinning = true; - if ( useVertexTangents ) cachedMaterial.vertexTangents = true; - if ( useVertexColors ) cachedMaterial.vertexColors = true; - if ( useFlatShading ) cachedMaterial.flatShading = true; - if ( useMorphTargets ) cachedMaterial.morphTargets = true; - if ( useMorphNormals ) cachedMaterial.morphNormals = true; - this.cache.add( cacheKey, cachedMaterial ); - this.associations.set( cachedMaterial, this.associations.get( material ) ); - } - material = cachedMaterial; - } - // workarounds for mesh and geometry - if ( material.aoMap && geometry.attributes.uv2 === undefined && geometry.attributes.uv !== undefined ) { - geometry.setAttribute( 'uv2', geometry.attributes.uv ); - } - // https://github.com/mrdoob/three.js/issues/11438#issuecomment-507003995 - if ( material.normalScale && ! useVertexTangents ) { - material.normalScale.y = - material.normalScale.y; - } - if ( material.clearcoatNormalScale && ! useVertexTangents ) { - material.clearcoatNormalScale.y = - material.clearcoatNormalScale.y; - } - mesh.material = material; - }; - GLTFParser.prototype.getMaterialType = function ( /* materialIndex */ ) { - return THREE.MeshStandardMaterial; - }; - /** - * Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#materials - * @param {number} materialIndex - * @return {Promise} - */ - GLTFParser.prototype.loadMaterial = function ( materialIndex ) { - var parser = this; - var json = this.json; - var extensions = this.extensions; - var materialDef = json.materials[ materialIndex ]; - var materialType; - var materialParams = {}; - var materialExtensions = materialDef.extensions || {}; - var pending = []; - if ( materialExtensions[ EXTENSIONS.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS ] ) { - var sgExtension = extensions[ EXTENSIONS.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS ]; - materialType = sgExtension.getMaterialType(); - pending.push( sgExtension.extendParams( materialParams, materialDef, parser ) ); - } else if ( materialExtensions[ EXTENSIONS.KHR_MATERIALS_UNLIT ] ) { - var kmuExtension = extensions[ EXTENSIONS.KHR_MATERIALS_UNLIT ]; - materialType = kmuExtension.getMaterialType(); - pending.push( kmuExtension.extendParams( materialParams, materialDef, parser ) ); - } else { - // Specification: - // https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#metallic-roughness-material - var metallicRoughness = materialDef.pbrMetallicRoughness || {}; - materialParams.color = new THREE.Color( 1.0, 1.0, 1.0 ); - materialParams.opacity = 1.0; - if ( Array.isArray( metallicRoughness.baseColorFactor ) ) { - var array = metallicRoughness.baseColorFactor; - materialParams.color.fromArray( array ); - materialParams.opacity = array[ 3 ]; - } - if ( metallicRoughness.baseColorTexture !== undefined ) { - pending.push( parser.assignTexture( materialParams, 'map', metallicRoughness.baseColorTexture ) ); - } - materialParams.metalness = metallicRoughness.metallicFactor !== undefined ? metallicRoughness.metallicFactor : 1.0; - materialParams.roughness = metallicRoughness.roughnessFactor !== undefined ? metallicRoughness.roughnessFactor : 1.0; - if ( metallicRoughness.metallicRoughnessTexture !== undefined ) { - pending.push( parser.assignTexture( materialParams, 'metalnessMap', metallicRoughness.metallicRoughnessTexture ) ); - pending.push( parser.assignTexture( materialParams, 'roughnessMap', metallicRoughness.metallicRoughnessTexture ) ); - } - materialType = this._invokeOne( function ( ext ) { - return ext.getMaterialType && ext.getMaterialType( materialIndex ); - } ); - pending.push( Promise.all( this._invokeAll( function ( ext ) { - return ext.extendMaterialParams && ext.extendMaterialParams( materialIndex, materialParams ); - } ) ) ); - } - if ( materialDef.doubleSided === true ) { - materialParams.side = THREE.DoubleSide; - } - var alphaMode = materialDef.alphaMode || ALPHA_MODES.OPAQUE; - if ( alphaMode === ALPHA_MODES.BLEND ) { - materialParams.transparent = true; - // See: https://github.com/mrdoob/three.js/issues/17706 - materialParams.depthWrite = false; - } else { - materialParams.transparent = false; - if ( alphaMode === ALPHA_MODES.MASK ) { - materialParams.alphaTest = materialDef.alphaCutoff !== undefined ? materialDef.alphaCutoff : 0.5; - } - } - if ( materialDef.normalTexture !== undefined && materialType !== THREE.MeshBasicMaterial ) { - pending.push( parser.assignTexture( materialParams, 'normalMap', materialDef.normalTexture ) ); - materialParams.normalScale = new THREE.Vector2( 1, 1 ); - if ( materialDef.normalTexture.scale !== undefined ) { - materialParams.normalScale.set( materialDef.normalTexture.scale, materialDef.normalTexture.scale ); - } - } - if ( materialDef.occlusionTexture !== undefined && materialType !== THREE.MeshBasicMaterial ) { - pending.push( parser.assignTexture( materialParams, 'aoMap', materialDef.occlusionTexture ) ); - if ( materialDef.occlusionTexture.strength !== undefined ) { - materialParams.aoMapIntensity = materialDef.occlusionTexture.strength; - } - } - if ( materialDef.emissiveFactor !== undefined && materialType !== THREE.MeshBasicMaterial ) { - materialParams.emissive = new THREE.Color().fromArray( materialDef.emissiveFactor ); - } - if ( materialDef.emissiveTexture !== undefined && materialType !== THREE.MeshBasicMaterial ) { - pending.push( parser.assignTexture( materialParams, 'emissiveMap', materialDef.emissiveTexture ) ); - } - return Promise.all( pending ).then( function () { - var material; - if ( materialType === GLTFMeshStandardSGMaterial ) { - material = extensions[ EXTENSIONS.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS ].createMaterial( materialParams ); - } else { - material = new materialType( materialParams ); - } - if ( materialDef.name ) material.name = materialDef.name; - // baseColorTexture, emissiveTexture, and specularGlossinessTexture use sRGB encoding. - if ( material.map ) material.map.encoding = THREE.sRGBEncoding; - if ( material.emissiveMap ) material.emissiveMap.encoding = THREE.sRGBEncoding; - assignExtrasToUserData( material, materialDef ); - parser.associations.set( material, { type: 'materials', index: materialIndex } ); - if ( materialDef.extensions ) addUnknownExtensionsToUserData( extensions, material, materialDef ); - return material; - } ); - }; - /** When Object3D instances are targeted by animation, they need unique names. */ - GLTFParser.prototype.createUniqueName = function ( originalName ) { - var name = THREE.PropertyBinding.sanitizeNodeName( originalName || '' ); - for ( var i = 1; this.nodeNamesUsed[ name ]; ++ i ) { - name = originalName + '_' + i; - } - this.nodeNamesUsed[ name ] = true; - return name; - }; - /** - * @param {THREE.BufferGeometry} geometry - * @param {GLTF.Primitive} primitiveDef - * @param {GLTFParser} parser - */ - function computeBounds( geometry, primitiveDef, parser ) { - var attributes = primitiveDef.attributes; - var box = new THREE.Box3(); - if ( attributes.POSITION !== undefined ) { - var accessor = parser.json.accessors[ attributes.POSITION ]; - var min = accessor.min; - var max = accessor.max; - // glTF requires 'min' and 'max', but VRM (which extends glTF) currently ignores that requirement. - if ( min !== undefined && max !== undefined ) { - box.set( - new THREE.Vector3( min[ 0 ], min[ 1 ], min[ 2 ] ), - new THREE.Vector3( max[ 0 ], max[ 1 ], max[ 2 ] ) ); - } else { - console.warn( 'THREE.GLTFLoader: Missing min/max properties for accessor POSITION.' ); - return; - } - } else { - return; - } - var targets = primitiveDef.targets; - if ( targets !== undefined ) { - var maxDisplacement = new THREE.Vector3(); - var vector = new THREE.Vector3(); - for ( var i = 0, il = targets.length; i < il; i ++ ) { - var target = targets[ i ]; - if ( target.POSITION !== undefined ) { - var accessor = parser.json.accessors[ target.POSITION ]; - var min = accessor.min; - var max = accessor.max; - // glTF requires 'min' and 'max', but VRM (which extends glTF) currently ignores that requirement. - if ( min !== undefined && max !== undefined ) { - // we need to get max of absolute components because target weight is [-1,1] - vector.setX( Math.max( Math.abs( min[ 0 ] ), Math.abs( max[ 0 ] ) ) ); - vector.setY( Math.max( Math.abs( min[ 1 ] ), Math.abs( max[ 1 ] ) ) ); - vector.setZ( Math.max( Math.abs( min[ 2 ] ), Math.abs( max[ 2 ] ) ) ); - // Note: this assumes that the sum of all weights is at most 1. This isn't quite correct - it's more conservative - // to assume that each target can have a max weight of 1. However, for some use cases - notably, when morph targets - // are used to implement key-frame animations and as such only two are active at a time - this results in very large - // boxes. So for now we make a box that's sometimes a touch too small but is hopefully mostly of reasonable size. - maxDisplacement.max( vector ); - } else { - console.warn( 'THREE.GLTFLoader: Missing min/max properties for accessor POSITION.' ); - } - } - } - // As per comment above this box isn't conservative, but has a reasonable size for a very large number of morph targets. - box.expandByVector( maxDisplacement ); - } - geometry.boundingBox = box; - var sphere = new THREE.Sphere(); - box.getCenter( sphere.center ); - sphere.radius = box.min.distanceTo( box.max ) / 2; - geometry.boundingSphere = sphere; - } - /** - * @param {THREE.BufferGeometry} geometry - * @param {GLTF.Primitive} primitiveDef - * @param {GLTFParser} parser - * @return {Promise} - */ - function addPrimitiveAttributes( geometry, primitiveDef, parser ) { - var attributes = primitiveDef.attributes; - var pending = []; - function assignAttributeAccessor( accessorIndex, attributeName ) { - return parser.getDependency( 'accessor', accessorIndex ) - .then( function ( accessor ) { - geometry.setAttribute( attributeName, accessor ); - } ); - } - for ( var gltfAttributeName in attributes ) { - var threeAttributeName = ATTRIBUTES[ gltfAttributeName ] || gltfAttributeName.toLowerCase(); - // Skip attributes already provided by e.g. Draco extension. - if ( threeAttributeName in geometry.attributes ) continue; - pending.push( assignAttributeAccessor( attributes[ gltfAttributeName ], threeAttributeName ) ); - } - if ( primitiveDef.indices !== undefined && ! geometry.index ) { - var accessor = parser.getDependency( 'accessor', primitiveDef.indices ).then( function ( accessor ) { - geometry.setIndex( accessor ); - } ); - pending.push( accessor ); - } - assignExtrasToUserData( geometry, primitiveDef ); - computeBounds( geometry, primitiveDef, parser ); - return Promise.all( pending ).then( function () { - return primitiveDef.targets !== undefined - ? addMorphTargets( geometry, primitiveDef.targets, parser ) - : geometry; - } ); - } - /** - * @param {THREE.BufferGeometry} geometry - * @param {Number} drawMode - * @return {THREE.BufferGeometry} - */ - function toTrianglesDrawMode( geometry, drawMode ) { - var index = geometry.getIndex(); - // generate index if not present - if ( index === null ) { - var indices = []; - var position = geometry.getAttribute( 'position' ); - if ( position !== undefined ) { - for ( var i = 0; i < position.count; i ++ ) { - indices.push( i ); - } - geometry.setIndex( indices ); - index = geometry.getIndex(); - } else { - console.error( 'THREE.GLTFLoader.toTrianglesDrawMode(): Undefined position attribute. Processing not possible.' ); - return geometry; - } - } - // - var numberOfTriangles = index.count - 2; - var newIndices = []; - if ( drawMode === THREE.TriangleFanDrawMode ) { - // gl.TRIANGLE_FAN - for ( var i = 1; i <= numberOfTriangles; i ++ ) { - newIndices.push( index.getX( 0 ) ); - newIndices.push( index.getX( i ) ); - newIndices.push( index.getX( i + 1 ) ); - } - } else { - // gl.TRIANGLE_STRIP - for ( var i = 0; i < numberOfTriangles; i ++ ) { - if ( i % 2 === 0 ) { - newIndices.push( index.getX( i ) ); - newIndices.push( index.getX( i + 1 ) ); - newIndices.push( index.getX( i + 2 ) ); - - } else { - newIndices.push( index.getX( i + 2 ) ); - newIndices.push( index.getX( i + 1 ) ); - newIndices.push( index.getX( i ) ); - } - } - } - if ( ( newIndices.length / 3 ) !== numberOfTriangles ) { - console.error( 'THREE.GLTFLoader.toTrianglesDrawMode(): Unable to generate correct amount of triangles.' ); - } - // build final geometry - var newGeometry = geometry.clone(); - newGeometry.setIndex( newIndices ); - return newGeometry; - } - /** - * Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#geometry - * - * Creates BufferGeometries from primitives. - * - * @param {Array} primitives - * @return {Promise>} - */ - GLTFParser.prototype.loadGeometries = function ( primitives ) { - var parser = this; - var extensions = this.extensions; - var cache = this.primitiveCache; - function createDracoPrimitive( primitive ) { - return extensions[ EXTENSIONS.KHR_DRACO_MESH_COMPRESSION ] - .decodePrimitive( primitive, parser ) - .then( function ( geometry ) { - return addPrimitiveAttributes( geometry, primitive, parser ); - } ); - } - var pending = []; - for ( var i = 0, il = primitives.length; i < il; i ++ ) { - var primitive = primitives[ i ]; - var cacheKey = createPrimitiveKey( primitive ); - // See if we've already created this geometry - var cached = cache[ cacheKey ]; - if ( cached ) { - // Use the cached geometry if it exists - pending.push( cached.promise ); - } else { - var geometryPromise; - if ( primitive.extensions && primitive.extensions[ EXTENSIONS.KHR_DRACO_MESH_COMPRESSION ] ) { - // Use DRACO geometry if available - geometryPromise = createDracoPrimitive( primitive ); - } else { - // Otherwise create a new geometry - geometryPromise = addPrimitiveAttributes( new THREE.BufferGeometry(), primitive, parser ); - } - // Cache this geometry - cache[ cacheKey ] = { primitive: primitive, promise: geometryPromise }; - pending.push( geometryPromise ); - } - } - return Promise.all( pending ); - }; - /** - * Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#meshes - * @param {number} meshIndex - * @return {Promise} - */ - GLTFParser.prototype.loadMesh = function ( meshIndex ) { - var parser = this; - var json = this.json; - var extensions = this.extensions; - var meshDef = json.meshes[ meshIndex ]; - var primitives = meshDef.primitives; - var pending = []; - for ( var i = 0, il = primitives.length; i < il; i ++ ) { - var material = primitives[ i ].material === undefined - ? createDefaultMaterial( this.cache ) - : this.getDependency( 'material', primitives[ i ].material ); - pending.push( material ); - } - pending.push( parser.loadGeometries( primitives ) ); - return Promise.all( pending ).then( function ( results ) { - var materials = results.slice( 0, results.length - 1 ); - var geometries = results[ results.length - 1 ]; - var meshes = []; - for ( var i = 0, il = geometries.length; i < il; i ++ ) { - var geometry = geometries[ i ]; - var primitive = primitives[ i ]; - // 1. create Mesh - var mesh; - var material = materials[ i ]; - if ( primitive.mode === WEBGL_CONSTANTS.TRIANGLES || - primitive.mode === WEBGL_CONSTANTS.TRIANGLE_STRIP || - primitive.mode === WEBGL_CONSTANTS.TRIANGLE_FAN || - primitive.mode === undefined ) { - // .isSkinnedMesh isn't in glTF spec. See ._markDefs() - mesh = meshDef.isSkinnedMesh === true - ? new THREE.SkinnedMesh( geometry, material ) - : new THREE.Mesh( geometry, material ); - if ( mesh.isSkinnedMesh === true && ! mesh.geometry.attributes.skinWeight.normalized ) { - // we normalize floating point skin weight array to fix malformed assets (see #15319) - // it's important to skip this for non-float32 data since normalizeSkinWeights assumes non-normalized inputs - mesh.normalizeSkinWeights(); - } - if ( primitive.mode === WEBGL_CONSTANTS.TRIANGLE_STRIP ) { - mesh.geometry = toTrianglesDrawMode( mesh.geometry, THREE.TriangleStripDrawMode ); - } else if ( primitive.mode === WEBGL_CONSTANTS.TRIANGLE_FAN ) { - mesh.geometry = toTrianglesDrawMode( mesh.geometry, THREE.TriangleFanDrawMode ); - } - } else if ( primitive.mode === WEBGL_CONSTANTS.LINES ) { - mesh = new THREE.LineSegments( geometry, material ); - } else if ( primitive.mode === WEBGL_CONSTANTS.LINE_STRIP ) { - mesh = new THREE.Line( geometry, material ); - } else if ( primitive.mode === WEBGL_CONSTANTS.LINE_LOOP ) { - mesh = new THREE.LineLoop( geometry, material ); - } else if ( primitive.mode === WEBGL_CONSTANTS.POINTS ) { - mesh = new THREE.Points( geometry, material ); - } else { - throw new Error( 'THREE.GLTFLoader: Primitive mode unsupported: ' + primitive.mode ); - } - if ( Object.keys( mesh.geometry.morphAttributes ).length > 0 ) { - updateMorphTargets( mesh, meshDef ); - } - mesh.name = parser.createUniqueName( meshDef.name || ( 'mesh_' + meshIndex ) ); - assignExtrasToUserData( mesh, meshDef ); - if ( primitive.extensions ) addUnknownExtensionsToUserData( extensions, mesh, primitive ); - parser.assignFinalMaterial( mesh ); - meshes.push( mesh ); - } - if ( meshes.length === 1 ) { - return meshes[ 0 ]; - } - var group = new THREE.Group(); - for ( var i = 0, il = meshes.length; i < il; i ++ ) { - group.add( meshes[ i ] ); - } - return group; - } ); - }; - /** - * Specification: https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#cameras - * @param {number} cameraIndex - * @return {Promise} - */ - GLTFParser.prototype.loadCamera = function ( cameraIndex ) { - var camera; - var cameraDef = this.json.cameras[ cameraIndex ]; - var params = cameraDef[ cameraDef.type ]; - if ( ! params ) { - console.warn( 'THREE.GLTFLoader: Missing camera parameters.' ); - return; - } - if ( cameraDef.type === 'perspective' ) { - camera = new THREE.PerspectiveCamera( THREE.MathUtils.radToDeg( params.yfov ), params.aspectRatio || 1, params.znear || 1, params.zfar || 2e6 ); - } else if ( cameraDef.type === 'orthographic' ) { - camera = new THREE.OrthographicCamera( - params.xmag, params.xmag, params.ymag, - params.ymag, params.znear, params.zfar ); - } - if ( cameraDef.name ) camera.name = this.createUniqueName( cameraDef.name ); - assignExtrasToUserData( camera, cameraDef ); - return Promise.resolve( camera ); - }; - /** - * Specification: https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#skins - * @param {number} skinIndex - * @return {Promise} - */ - GLTFParser.prototype.loadSkin = function ( skinIndex ) { - var skinDef = this.json.skins[ skinIndex ]; - var skinEntry = { joints: skinDef.joints }; - if ( skinDef.inverseBindMatrices === undefined ) { - return Promise.resolve( skinEntry ); - } - return this.getDependency( 'accessor', skinDef.inverseBindMatrices ).then( function ( accessor ) { - skinEntry.inverseBindMatrices = accessor; - return skinEntry; - } ); - }; - /** - * Specification: https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#animations - * @param {number} animationIndex - * @return {Promise} - */ - GLTFParser.prototype.loadAnimation = function ( animationIndex ) { - var json = this.json; - var animationDef = json.animations[ animationIndex ]; - var pendingNodes = []; - var pendingInputAccessors = []; - var pendingOutputAccessors = []; - var pendingSamplers = []; - var pendingTargets = []; - for ( var i = 0, il = animationDef.channels.length; i < il; i ++ ) { - var channel = animationDef.channels[ i ]; - var sampler = animationDef.samplers[ channel.sampler ]; - var target = channel.target; - var name = target.node !== undefined ? target.node : target.id; // NOTE: target.id is deprecated. - var input = animationDef.parameters !== undefined ? animationDef.parameters[ sampler.input ] : sampler.input; - var output = animationDef.parameters !== undefined ? animationDef.parameters[ sampler.output ] : sampler.output; - pendingNodes.push( this.getDependency( 'node', name ) ); - pendingInputAccessors.push( this.getDependency( 'accessor', input ) ); - pendingOutputAccessors.push( this.getDependency( 'accessor', output ) ); - pendingSamplers.push( sampler ); - pendingTargets.push( target ); - } - return Promise.all( [ - Promise.all( pendingNodes ), - Promise.all( pendingInputAccessors ), - Promise.all( pendingOutputAccessors ), - Promise.all( pendingSamplers ), - Promise.all( pendingTargets ) - ] ).then( function ( dependencies ) { - var nodes = dependencies[ 0 ]; - var inputAccessors = dependencies[ 1 ]; - var outputAccessors = dependencies[ 2 ]; - var samplers = dependencies[ 3 ]; - var targets = dependencies[ 4 ]; - var tracks = []; - for ( var i = 0, il = nodes.length; i < il; i ++ ) { - var node = nodes[ i ]; - var inputAccessor = inputAccessors[ i ]; - var outputAccessor = outputAccessors[ i ]; - var sampler = samplers[ i ]; - var target = targets[ i ]; - if ( node === undefined ) continue; - node.updateMatrix(); - node.matrixAutoUpdate = true; - var TypedKeyframeTrack; - switch ( PATH_PROPERTIES[ target.path ] ) { - case PATH_PROPERTIES.weights: - TypedKeyframeTrack = THREE.NumberKeyframeTrack; - break; - case PATH_PROPERTIES.rotation: - TypedKeyframeTrack = THREE.QuaternionKeyframeTrack; - break; - case PATH_PROPERTIES.position: - case PATH_PROPERTIES.scale: - default: - TypedKeyframeTrack = THREE.VectorKeyframeTrack; - break; - } - var targetName = node.name ? node.name : node.uuid; - var interpolation = sampler.interpolation !== undefined ? INTERPOLATION[ sampler.interpolation ] : THREE.InterpolateLinear; - var targetNames = []; - if ( PATH_PROPERTIES[ target.path ] === PATH_PROPERTIES.weights ) { - // Node may be a THREE.Group (glTF mesh with several primitives) or a THREE.Mesh. - node.traverse( function ( object ) { - if ( object.isMesh === true && object.morphTargetInfluences ) { - targetNames.push( object.name ? object.name : object.uuid ); - } - } ); - } else { - targetNames.push( targetName ); - } - var outputArray = outputAccessor.array; - if ( outputAccessor.normalized ) { - var scale; - if ( outputArray.constructor === Int8Array ) { - scale = 1 / 127; - } else if ( outputArray.constructor === Uint8Array ) { - scale = 1 / 255; - } else if ( outputArray.constructor == Int16Array ) { - scale = 1 / 32767; - } else if ( outputArray.constructor === Uint16Array ) { - scale = 1 / 65535; - } else { - throw new Error( 'THREE.GLTFLoader: Unsupported output accessor component type.' ); - } - var scaled = new Float32Array( outputArray.length ); - for ( var j = 0, jl = outputArray.length; j < jl; j ++ ) { - scaled[ j ] = outputArray[ j ] * scale; - } - outputArray = scaled; - } - for ( var j = 0, jl = targetNames.length; j < jl; j ++ ) { - var track = new TypedKeyframeTrack( - targetNames[ j ] + '.' + PATH_PROPERTIES[ target.path ], - inputAccessor.array, - outputArray, - interpolation - ); - // Override interpolation with custom factory method. - if ( sampler.interpolation === 'CUBICSPLINE' ) { - track.createInterpolant = function InterpolantFactoryMethodGLTFCubicSpline( result ) { - // A CUBICSPLINE keyframe in glTF has three output values for each input value, - // representing inTangent, splineVertex, and outTangent. As a result, track.getValueSize() - // must be divided by three to get the interpolant's sampleSize argument. - return new GLTFCubicSplineInterpolant( this.times, this.values, this.getValueSize() / 3, result ); - }; - // Mark as CUBICSPLINE. `track.getInterpolation()` doesn't support custom interpolants. - track.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline = true; - } - tracks.push( track ); - } - } - var name = animationDef.name ? animationDef.name : 'animation_' + animationIndex; - return new THREE.AnimationClip( name, undefined, tracks ); - } ); - }; - /** - * Specification: https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#nodes-and-hierarchy - * @param {number} nodeIndex - * @return {Promise} - */ - GLTFParser.prototype.loadNode = function ( nodeIndex ) { - var json = this.json; - var extensions = this.extensions; - var parser = this; - var nodeDef = json.nodes[ nodeIndex ]; - // reserve node's name before its dependencies, so the root has the intended name. - var nodeName = nodeDef.name ? parser.createUniqueName( nodeDef.name ) : ''; - return ( function () { - var pending = []; - if ( nodeDef.mesh !== undefined ) { - pending.push( parser.getDependency( 'mesh', nodeDef.mesh ).then( function ( mesh ) { - var node = parser._getNodeRef( parser.meshCache, nodeDef.mesh, mesh ); - // if weights are provided on the node, override weights on the mesh. - if ( nodeDef.weights !== undefined ) { - node.traverse( function ( o ) { - if ( ! o.isMesh ) return; - for ( var i = 0, il = nodeDef.weights.length; i < il; i ++ ) { - o.morphTargetInfluences[ i ] = nodeDef.weights[ i ]; - } - } ); - } - return node; - } ) ); - } - if ( nodeDef.camera !== undefined ) { - pending.push( parser.getDependency( 'camera', nodeDef.camera ).then( function ( camera ) { - return parser._getNodeRef( parser.cameraCache, nodeDef.camera, camera ); - } ) ); - } - parser._invokeAll( function ( ext ) { - return ext.createNodeAttachment && ext.createNodeAttachment( nodeIndex ); - } ).forEach( function ( promise ) { - pending.push( promise ); - } ); - return Promise.all( pending ); - }() ).then( function ( objects ) { - var node; - // .isBone isn't in glTF spec. See ._markDefs - if ( nodeDef.isBone === true ) { - node = new THREE.Bone(); - } else if ( objects.length > 1 ) { - node = new THREE.Group(); - } else if ( objects.length === 1 ) { - node = objects[ 0 ]; - } else { - node = new THREE.Object3D(); - } - if ( node !== objects[ 0 ] ) { - for ( var i = 0, il = objects.length; i < il; i ++ ) { - node.add( objects[ i ] ); - } - } - if ( nodeDef.name ) { - node.userData.name = nodeDef.name; - node.name = nodeName; - } - assignExtrasToUserData( node, nodeDef ); - if ( nodeDef.extensions ) addUnknownExtensionsToUserData( extensions, node, nodeDef ); - if ( nodeDef.matrix !== undefined ) { - var matrix = new THREE.Matrix4(); - matrix.fromArray( nodeDef.matrix ); - node.applyMatrix4( matrix ); - } else { - if ( nodeDef.translation !== undefined ) { - node.position.fromArray( nodeDef.translation ); - } - if ( nodeDef.rotation !== undefined ) { - node.quaternion.fromArray( nodeDef.rotation ); - } - if ( nodeDef.scale !== undefined ) { - node.scale.fromArray( nodeDef.scale ); - } - } - parser.associations.set( node, { type: 'nodes', index: nodeIndex } ); - return node; - } ); - }; - /** - * Specification: https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#scenes - * @param {number} sceneIndex - * @return {Promise} - */ - GLTFParser.prototype.loadScene = function () { - // scene node hierachy builder - function buildNodeHierachy( nodeId, parentObject, json, parser ) { - var nodeDef = json.nodes[ nodeId ]; - return parser.getDependency( 'node', nodeId ).then( function ( node ) { - if ( nodeDef.skin === undefined ) return node; - // build skeleton here as well - var skinEntry; - return parser.getDependency( 'skin', nodeDef.skin ).then( function ( skin ) { - skinEntry = skin; - var pendingJoints = []; - for ( var i = 0, il = skinEntry.joints.length; i < il; i ++ ) { - pendingJoints.push( parser.getDependency( 'node', skinEntry.joints[ i ] ) ); - } - return Promise.all( pendingJoints ); - } ).then( function ( jointNodes ) { - node.traverse( function ( mesh ) { - if ( ! mesh.isMesh ) return; - var bones = []; - var boneInverses = []; - for ( var j = 0, jl = jointNodes.length; j < jl; j ++ ) { - var jointNode = jointNodes[ j ]; - if ( jointNode ) { - bones.push( jointNode ); - var mat = new THREE.Matrix4(); - if ( skinEntry.inverseBindMatrices !== undefined ) { - mat.fromArray( skinEntry.inverseBindMatrices.array, j * 16 ); - } - boneInverses.push( mat ); - } else { - console.warn( 'THREE.GLTFLoader: Joint "%s" could not be found.', skinEntry.joints[ j ] ); - } - } - mesh.bind( new THREE.Skeleton( bones, boneInverses ), mesh.matrixWorld ); - } ); - return node; - } ); - } ).then( function ( node ) { - // build node hierachy - parentObject.add( node ); - var pending = []; - if ( nodeDef.children ) { - var children = nodeDef.children; - for ( var i = 0, il = children.length; i < il; i ++ ) { - var child = children[ i ]; - pending.push( buildNodeHierachy( child, node, json, parser ) ); - } - } - return Promise.all( pending ); - } ); - } - return function loadScene( sceneIndex ) { - var json = this.json; - var extensions = this.extensions; - var sceneDef = this.json.scenes[ sceneIndex ]; - var parser = this; - // Loader returns Group, not Scene. - // See: https://github.com/mrdoob/three.js/issues/18342#issuecomment-578981172 - var scene = new THREE.Group(); - if ( sceneDef.name ) scene.name = parser.createUniqueName( sceneDef.name ); - assignExtrasToUserData( scene, sceneDef ); - if ( sceneDef.extensions ) addUnknownExtensionsToUserData( extensions, scene, sceneDef ); - var nodeIds = sceneDef.nodes || []; - var pending = []; - for ( var i = 0, il = nodeIds.length; i < il; i ++ ) { - pending.push( buildNodeHierachy( nodeIds[ i ], scene, json, parser ) ); - } - return Promise.all( pending ).then( function () { - return scene; - } ); - }; - }(); - return GLTFLoader; -} )(); -THREE.SVGLoader = function ( manager ) { - THREE.Loader.call( this, manager ); - // Default dots per inch - this.defaultDPI = 90; - // Accepted units: 'mm', 'cm', 'in', 'pt', 'pc', 'px' - this.defaultUnit = 'px'; -}; -THREE.SVGLoader.prototype = Object.assign( Object.create( THREE.Loader.prototype ), { - constructor: THREE.SVGLoader, - load: function ( url, onLoad, onProgress, onError ) { - var scope = this; - var loader = new THREE.FileLoader( scope.manager ); - loader.setPath( scope.path ); - loader.setRequestHeader( scope.requestHeader ); - loader.setWithCredentials( scope.withCredentials ); - loader.load( url, function ( text ) { - try { - onLoad( scope.parse( text ) ); - } catch ( e ) { - if ( onError ) { - onError( e ); - } else { - console.error( e ); - } - scope.manager.itemError( url ); - } - }, onProgress, onError ); - }, - parse: function ( text ) { - var scope = this; - function parseNode( node, style ) { - if ( node.nodeType !== 1 ) return; - var transform = getNodeTransform( node ); - var traverseChildNodes = true; - var path = null; - switch ( node.nodeName ) { - case 'svg': - break; - case 'style': - parseCSSStylesheet( node ); - break; - case 'g': - style = parseStyle( node, style ); - break; - case 'path': - style = parseStyle( node, style ); - if ( node.hasAttribute( 'd' ) ) path = parsePathNode( node ); - break; - case 'rect': - style = parseStyle( node, style ); - path = parseRectNode( node ); - break; - case 'polygon': - style = parseStyle( node, style ); - path = parsePolygonNode( node ); - break; - case 'polyline': - style = parseStyle( node, style ); - path = parsePolylineNode( node ); - break; - case 'circle': - style = parseStyle( node, style ); - path = parseCircleNode( node ); - break; - case 'ellipse': - style = parseStyle( node, style ); - path = parseEllipseNode( node ); - break; - case 'line': - style = parseStyle( node, style ); - path = parseLineNode( node ); - break; - case 'defs': - traverseChildNodes = false; - break; - case 'use': - style = parseStyle( node, style ); - var usedNodeId = node.href.baseVal.substring( 1 ); - var usedNode = node.viewportElement.getElementById( usedNodeId ); - if ( usedNode ) { - parseNode( usedNode, style ); - } else { - console.warn( 'SVGLoader: \'use node\' references non-existent node id: ' + usedNodeId ); - } - break; - default: - // console.log( node ); - } - if ( path ) { - if ( style.fill !== undefined && style.fill !== 'none' ) { - path.color.setStyle( style.fill ); - } - transformPath( path, currentTransform ); - paths.push( path ); - path.userData = { node: node, style: style }; - } - if ( traverseChildNodes ) { - var nodes = node.childNodes; - for ( var i = 0; i < nodes.length; i ++ ) { - parseNode( nodes[ i ], style ); - } - } - if ( transform ) { - transformStack.pop(); - if ( transformStack.length > 0 ) { - currentTransform.copy( transformStack[ transformStack.length - 1 ] ); - } else { - currentTransform.identity(); - } - } - } - function parsePathNode( node ) { - var path = new THREE.ShapePath(); - var point = new THREE.Vector2(); - var control = new THREE.Vector2(); - var firstPoint = new THREE.Vector2(); - var isFirstPoint = true; - var doSetFirstPoint = false; - var d = node.getAttribute( 'd' ); - // console.log( d ); - var commands = d.match( /[a-df-z][^a-df-z]*/ig ); - for ( var i = 0, l = commands.length; i < l; i ++ ) { - var command = commands[ i ]; - var type = command.charAt( 0 ); - var data = command.substr( 1 ).trim(); - if ( isFirstPoint === true ) { - doSetFirstPoint = true; - isFirstPoint = false; - } - switch ( type ) { - case 'M': - var numbers = parseFloats( data ); - for ( var j = 0, jl = numbers.length; j < jl; j += 2 ) { - point.x = numbers[ j + 0 ]; - point.y = numbers[ j + 1 ]; - control.x = point.x; - control.y = point.y; - if ( j === 0 ) { - path.moveTo( point.x, point.y ); - } else { - path.lineTo( point.x, point.y ); - } - if ( j === 0 && doSetFirstPoint === true ) firstPoint.copy( point ); - } - break; - case 'H': - var numbers = parseFloats( data ); - for ( var j = 0, jl = numbers.length; j < jl; j ++ ) { - point.x = numbers[ j ]; - control.x = point.x; - control.y = point.y; - path.lineTo( point.x, point.y ); - if ( j === 0 && doSetFirstPoint === true ) firstPoint.copy( point ); - } - break; - case 'V': - var numbers = parseFloats( data ); - for ( var j = 0, jl = numbers.length; j < jl; j ++ ) { - point.y = numbers[ j ]; - control.x = point.x; - control.y = point.y; - path.lineTo( point.x, point.y ); - if ( j === 0 && doSetFirstPoint === true ) firstPoint.copy( point ); - } - break; - case 'L': - var numbers = parseFloats( data ); - for ( var j = 0, jl = numbers.length; j < jl; j += 2 ) { - point.x = numbers[ j + 0 ]; - point.y = numbers[ j + 1 ]; - control.x = point.x; - control.y = point.y; - path.lineTo( point.x, point.y ); - if ( j === 0 && doSetFirstPoint === true ) firstPoint.copy( point ); - } - break; - case 'C': - var numbers = parseFloats( data ); - for ( var j = 0, jl = numbers.length; j < jl; j += 6 ) { - path.bezierCurveTo( - numbers[ j + 0 ], - numbers[ j + 1 ], - numbers[ j + 2 ], - numbers[ j + 3 ], - numbers[ j + 4 ], - numbers[ j + 5 ] - ); - control.x = numbers[ j + 2 ]; - control.y = numbers[ j + 3 ]; - point.x = numbers[ j + 4 ]; - point.y = numbers[ j + 5 ]; - if ( j === 0 && doSetFirstPoint === true ) firstPoint.copy( point ); - } - break; - case 'S': - var numbers = parseFloats( data ); - for ( var j = 0, jl = numbers.length; j < jl; j += 4 ) { - path.bezierCurveTo( - getReflection( point.x, control.x ), - getReflection( point.y, control.y ), - numbers[ j + 0 ], - numbers[ j + 1 ], - numbers[ j + 2 ], - numbers[ j + 3 ] - ); - control.x = numbers[ j + 0 ]; - control.y = numbers[ j + 1 ]; - point.x = numbers[ j + 2 ]; - point.y = numbers[ j + 3 ]; - if ( j === 0 && doSetFirstPoint === true ) firstPoint.copy( point ); - } - break; - case 'Q': - var numbers = parseFloats( data ); - for ( var j = 0, jl = numbers.length; j < jl; j += 4 ) { - path.quadraticCurveTo( - numbers[ j + 0 ], - numbers[ j + 1 ], - numbers[ j + 2 ], - numbers[ j + 3 ] - ); - control.x = numbers[ j + 0 ]; - control.y = numbers[ j + 1 ]; - point.x = numbers[ j + 2 ]; - point.y = numbers[ j + 3 ]; - if ( j === 0 && doSetFirstPoint === true ) firstPoint.copy( point ); - } - break; - case 'T': - var numbers = parseFloats( data ); - for ( var j = 0, jl = numbers.length; j < jl; j += 2 ) { - var rx = getReflection( point.x, control.x ); - var ry = getReflection( point.y, control.y ); - path.quadraticCurveTo( - rx, - ry, - numbers[ j + 0 ], - numbers[ j + 1 ] - ); - control.x = rx; - control.y = ry; - point.x = numbers[ j + 0 ]; - point.y = numbers[ j + 1 ]; - if ( j === 0 && doSetFirstPoint === true ) firstPoint.copy( point ); - } - break; - case 'A': - var numbers = parseFloats( data ); - for ( var j = 0, jl = numbers.length; j < jl; j += 7 ) { - // skip command if start point == end point - if ( numbers[ j + 5 ] == point.x && numbers[ j + 6 ] == point.y ) continue; - var start = point.clone(); - point.x = numbers[ j + 5 ]; - point.y = numbers[ j + 6 ]; - control.x = point.x; - control.y = point.y; - parseArcCommand( - path, numbers[ j ], numbers[ j + 1 ], numbers[ j + 2 ], numbers[ j + 3 ], numbers[ j + 4 ], start, point - ); - if ( j === 0 && doSetFirstPoint === true ) firstPoint.copy( point ); - } - break; - case 'm': - var numbers = parseFloats( data ); - for ( var j = 0, jl = numbers.length; j < jl; j += 2 ) { - point.x += numbers[ j + 0 ]; - point.y += numbers[ j + 1 ]; - control.x = point.x; - control.y = point.y; - if ( j === 0 ) { - path.moveTo( point.x, point.y ); - } else { - path.lineTo( point.x, point.y ); - } - if ( j === 0 && doSetFirstPoint === true ) firstPoint.copy( point ); - } - break; - case 'h': - var numbers = parseFloats( data ); - for ( var j = 0, jl = numbers.length; j < jl; j ++ ) { - point.x += numbers[ j ]; - control.x = point.x; - control.y = point.y; - path.lineTo( point.x, point.y ); - if ( j === 0 && doSetFirstPoint === true ) firstPoint.copy( point ); - } - break; - case 'v': - var numbers = parseFloats( data ); - for ( var j = 0, jl = numbers.length; j < jl; j ++ ) { - point.y += numbers[ j ]; - control.x = point.x; - control.y = point.y; - path.lineTo( point.x, point.y ); - if ( j === 0 && doSetFirstPoint === true ) firstPoint.copy( point ); - } - break; - case 'l': - var numbers = parseFloats( data ); - for ( var j = 0, jl = numbers.length; j < jl; j += 2 ) { - point.x += numbers[ j + 0 ]; - point.y += numbers[ j + 1 ]; - control.x = point.x; - control.y = point.y; - path.lineTo( point.x, point.y ); - if ( j === 0 && doSetFirstPoint === true ) firstPoint.copy( point ); - } - break; - case 'c': - var numbers = parseFloats( data ); - for ( var j = 0, jl = numbers.length; j < jl; j += 6 ) { - path.bezierCurveTo( - point.x + numbers[ j + 0 ], - point.y + numbers[ j + 1 ], - point.x + numbers[ j + 2 ], - point.y + numbers[ j + 3 ], - point.x + numbers[ j + 4 ], - point.y + numbers[ j + 5 ] - ); - control.x = point.x + numbers[ j + 2 ]; - control.y = point.y + numbers[ j + 3 ]; - point.x += numbers[ j + 4 ]; - point.y += numbers[ j + 5 ]; - if ( j === 0 && doSetFirstPoint === true ) firstPoint.copy( point ); - } - break; - case 's': - var numbers = parseFloats( data ); - for ( var j = 0, jl = numbers.length; j < jl; j += 4 ) { - path.bezierCurveTo( - getReflection( point.x, control.x ), - getReflection( point.y, control.y ), - point.x + numbers[ j + 0 ], - point.y + numbers[ j + 1 ], - point.x + numbers[ j + 2 ], - point.y + numbers[ j + 3 ] - ); - control.x = point.x + numbers[ j + 0 ]; - control.y = point.y + numbers[ j + 1 ]; - point.x += numbers[ j + 2 ]; - point.y += numbers[ j + 3 ]; - if ( j === 0 && doSetFirstPoint === true ) firstPoint.copy( point ); - } - break; - case 'q': - var numbers = parseFloats( data ); - for ( var j = 0, jl = numbers.length; j < jl; j += 4 ) { - path.quadraticCurveTo( - point.x + numbers[ j + 0 ], - point.y + numbers[ j + 1 ], - point.x + numbers[ j + 2 ], - point.y + numbers[ j + 3 ] - ); - control.x = point.x + numbers[ j + 0 ]; - control.y = point.y + numbers[ j + 1 ]; - point.x += numbers[ j + 2 ]; - point.y += numbers[ j + 3 ]; - if ( j === 0 && doSetFirstPoint === true ) firstPoint.copy( point ); - } - break; - case 't': - var numbers = parseFloats( data ); - for ( var j = 0, jl = numbers.length; j < jl; j += 2 ) { - var rx = getReflection( point.x, control.x ); - var ry = getReflection( point.y, control.y ); - path.quadraticCurveTo( - rx, - ry, - point.x + numbers[ j + 0 ], - point.y + numbers[ j + 1 ] - ); - control.x = rx; - control.y = ry; - point.x = point.x + numbers[ j + 0 ]; - point.y = point.y + numbers[ j + 1 ]; - if ( j === 0 && doSetFirstPoint === true ) firstPoint.copy( point ); - } - break; - case 'a': - var numbers = parseFloats( data ); - for ( var j = 0, jl = numbers.length; j < jl; j += 7 ) { - // skip command if no displacement - if ( numbers[ j + 5 ] == 0 && numbers[ j + 6 ] == 0 ) continue; - var start = point.clone(); - point.x += numbers[ j + 5 ]; - point.y += numbers[ j + 6 ]; - control.x = point.x; - control.y = point.y; - parseArcCommand( - path, numbers[ j ], numbers[ j + 1 ], numbers[ j + 2 ], numbers[ j + 3 ], numbers[ j + 4 ], start, point - ); - if ( j === 0 && doSetFirstPoint === true ) firstPoint.copy( point ); - } - break; - case 'Z': - case 'z': - path.currentPath.autoClose = true; - if ( path.currentPath.curves.length > 0 ) { - // Reset point to beginning of Path - point.copy( firstPoint ); - path.currentPath.currentPoint.copy( point ); - isFirstPoint = true; - } - break; - default: - console.warn( command ); - } - // console.log( type, parseFloats( data ), parseFloats( data ).length ) - doSetFirstPoint = false; - } - return path; - } - function parseCSSStylesheet( node ) { - if ( ! node.sheet || ! node.sheet.cssRules || ! node.sheet.cssRules.length ) return; - for ( var i = 0; i < node.sheet.cssRules.length; i ++ ) { - var stylesheet = node.sheet.cssRules[ i ]; - if ( stylesheet.type !== 1 ) continue; - var selectorList = stylesheet.selectorText - .split( /,/gm ) - .filter( Boolean ) - .map( i => i.trim() ); - for ( var j = 0; j < selectorList.length; j ++ ) { - stylesheets[ selectorList[ j ] ] = Object.assign( - stylesheets[ selectorList[ j ] ] || {}, - stylesheet.style - ); - } - } - } - /** - * https://www.w3.org/TR/SVG/implnote.html#ArcImplementationNotes - * https://mortoray.com/2017/02/16/rendering-an-svg-elliptical-arc-as-bezier-curves/ Appendix: Endpoint to center arc conversion - * From - * rx ry x-axis-rotation large-arc-flag sweep-flag x y - * To - * aX, aY, xRadius, yRadius, aStartAngle, aEndAngle, aClockwise, aRotation - */ - function parseArcCommand( path, rx, ry, x_axis_rotation, large_arc_flag, sweep_flag, start, end ) { - if ( rx == 0 || ry == 0 ) { - // draw a line if either of the radii == 0 - path.lineTo( end.x, end.y ); - return; - } - x_axis_rotation = x_axis_rotation * Math.PI / 180; - // Ensure radii are positive - rx = Math.abs( rx ); - ry = Math.abs( ry ); - // Compute (x1', y1') - var dx2 = ( start.x - end.x ) / 2.0; - var dy2 = ( start.y - end.y ) / 2.0; - var x1p = Math.cos( x_axis_rotation ) * dx2 + Math.sin( x_axis_rotation ) * dy2; - var y1p = - Math.sin( x_axis_rotation ) * dx2 + Math.cos( x_axis_rotation ) * dy2; - // Compute (cx', cy') - var rxs = rx * rx; - var rys = ry * ry; - var x1ps = x1p * x1p; - var y1ps = y1p * y1p; - // Ensure radii are large enough - var cr = x1ps / rxs + y1ps / rys; - if ( cr > 1 ) { - // scale up rx,ry equally so cr == 1 - var s = Math.sqrt( cr ); - rx = s * rx; - ry = s * ry; - rxs = rx * rx; - rys = ry * ry; - } - var dq = ( rxs * y1ps + rys * x1ps ); - var pq = ( rxs * rys - dq ) / dq; - var q = Math.sqrt( Math.max( 0, pq ) ); - if ( large_arc_flag === sweep_flag ) q = - q; - var cxp = q * rx * y1p / ry; - var cyp = - q * ry * x1p / rx; - // Step 3: Compute (cx, cy) from (cx', cy') - var cx = Math.cos( x_axis_rotation ) * cxp - Math.sin( x_axis_rotation ) * cyp + ( start.x + end.x ) / 2; - var cy = Math.sin( x_axis_rotation ) * cxp + Math.cos( x_axis_rotation ) * cyp + ( start.y + end.y ) / 2; - // Step 4: Compute θ1 and Δθ - var theta = svgAngle( 1, 0, ( x1p - cxp ) / rx, ( y1p - cyp ) / ry ); - var delta = svgAngle( ( x1p - cxp ) / rx, ( y1p - cyp ) / ry, ( - x1p - cxp ) / rx, ( - y1p - cyp ) / ry ) % ( Math.PI * 2 ); - path.currentPath.absellipse( cx, cy, rx, ry, theta, theta + delta, sweep_flag === 0, x_axis_rotation ); - } - function svgAngle( ux, uy, vx, vy ) { - var dot = ux * vx + uy * vy; - var len = Math.sqrt( ux * ux + uy * uy ) * Math.sqrt( vx * vx + vy * vy ); - var ang = Math.acos( Math.max( - 1, Math.min( 1, dot / len ) ) ); // floating point precision, slightly over values appear - if ( ( ux * vy - uy * vx ) < 0 ) ang = - ang; - return ang; - } - /* - * According to https://www.w3.org/TR/SVG/shapes.html#RectElementRXAttribute - * rounded corner should be rendered to elliptical arc, but bezier curve does the job well enough - */ - function parseRectNode( node ) { - var x = parseFloatWithUnits( node.getAttribute( 'x' ) || 0 ); - var y = parseFloatWithUnits( node.getAttribute( 'y' ) || 0 ); - var rx = parseFloatWithUnits( node.getAttribute( 'rx' ) || 0 ); - var ry = parseFloatWithUnits( node.getAttribute( 'ry' ) || 0 ); - var w = parseFloatWithUnits( node.getAttribute( 'width' ) ); - var h = parseFloatWithUnits( node.getAttribute( 'height' ) ); - var path = new THREE.ShapePath(); - path.moveTo( x + 2 * rx, y ); - path.lineTo( x + w - 2 * rx, y ); - if ( rx !== 0 || ry !== 0 ) path.bezierCurveTo( x + w, y, x + w, y, x + w, y + 2 * ry ); - path.lineTo( x + w, y + h - 2 * ry ); - if ( rx !== 0 || ry !== 0 ) path.bezierCurveTo( x + w, y + h, x + w, y + h, x + w - 2 * rx, y + h ); - path.lineTo( x + 2 * rx, y + h ); - if ( rx !== 0 || ry !== 0 ) { - path.bezierCurveTo( x, y + h, x, y + h, x, y + h - 2 * ry ); - } - path.lineTo( x, y + 2 * ry ); - if ( rx !== 0 || ry !== 0 ) { - path.bezierCurveTo( x, y, x, y, x + 2 * rx, y ); - } - return path; - } - function parsePolygonNode( node ) { - function iterator( match, a, b ) { - var x = parseFloatWithUnits( a ); - var y = parseFloatWithUnits( b ); - if ( index === 0 ) { - path.moveTo( x, y ); - } else { - path.lineTo( x, y ); - } - index ++; - } - var regex = /(-?[\d\.?]+)[,|\s](-?[\d\.?]+)/g; - var path = new THREE.ShapePath(); - var index = 0; - node.getAttribute( 'points' ).replace( regex, iterator ); - path.currentPath.autoClose = true; - return path; - } - function parsePolylineNode( node ) { - function iterator( match, a, b ) { - var x = parseFloatWithUnits( a ); - var y = parseFloatWithUnits( b ); - if ( index === 0 ) { - path.moveTo( x, y ); - } else { - path.lineTo( x, y ); - } - index ++; - } - var regex = /(-?[\d\.?]+)[,|\s](-?[\d\.?]+)/g; - var path = new THREE.ShapePath(); - var index = 0; - node.getAttribute( 'points' ).replace( regex, iterator ); - path.currentPath.autoClose = false; - return path; - } - function parseCircleNode( node ) { - var x = parseFloatWithUnits( node.getAttribute( 'cx' ) ); - var y = parseFloatWithUnits( node.getAttribute( 'cy' ) ); - var r = parseFloatWithUnits( node.getAttribute( 'r' ) ); - var subpath = new THREE.Path(); - subpath.absarc( x, y, r, 0, Math.PI * 2 ); - var path = new THREE.ShapePath(); - path.subPaths.push( subpath ); - return path; - } - function parseEllipseNode( node ) { - var x = parseFloatWithUnits( node.getAttribute( 'cx' ) ); - var y = parseFloatWithUnits( node.getAttribute( 'cy' ) ); - var rx = parseFloatWithUnits( node.getAttribute( 'rx' ) ); - var ry = parseFloatWithUnits( node.getAttribute( 'ry' ) ); - var subpath = new THREE.Path(); - subpath.absellipse( x, y, rx, ry, 0, Math.PI * 2 ); - var path = new THREE.ShapePath(); - path.subPaths.push( subpath ); - return path; - } - function parseLineNode( node ) { - var x1 = parseFloatWithUnits( node.getAttribute( 'x1' ) ); - var y1 = parseFloatWithUnits( node.getAttribute( 'y1' ) ); - var x2 = parseFloatWithUnits( node.getAttribute( 'x2' ) ); - var y2 = parseFloatWithUnits( node.getAttribute( 'y2' ) ); - var path = new THREE.ShapePath(); - path.moveTo( x1, y1 ); - path.lineTo( x2, y2 ); - path.currentPath.autoClose = false; - return path; - } - function parseStyle( node, style ) { - style = Object.assign( {}, style ); // clone style - var stylesheetStyles = {}; - if ( node.hasAttribute( 'class' ) ) { - var classSelectors = node.getAttribute( 'class' ) - .split( /\s/ ) - .filter( Boolean ) - .map( i => i.trim() ); - for ( var i = 0; i < classSelectors.length; i ++ ) { - stylesheetStyles = Object.assign( stylesheetStyles, stylesheets[ '.' + classSelectors[ i ] ] ); - } - } - if ( node.hasAttribute( 'id' ) ) { - stylesheetStyles = Object.assign( stylesheetStyles, stylesheets[ '#' + node.getAttribute( 'id' ) ] ); - } - function addStyle( svgName, jsName, adjustFunction ) { - if ( adjustFunction === undefined ) adjustFunction = function copy( v ) { - if ( v.startsWith( 'url' ) ) console.warn( 'SVGLoader: url access in attributes is not implemented.' ); - return v; - }; - if ( node.hasAttribute( svgName ) ) style[ jsName ] = adjustFunction( node.getAttribute( svgName ) ); - if ( stylesheetStyles[ svgName ] ) style[ jsName ] = adjustFunction( stylesheetStyles[ svgName ] ); - if ( node.style && node.style[ svgName ] !== '' ) style[ jsName ] = adjustFunction( node.style[ svgName ] ); - } - function clamp( v ) { - return Math.max( 0, Math.min( 1, parseFloatWithUnits( v ) ) ); - } - function positive( v ) { - return Math.max( 0, parseFloatWithUnits( v ) ); - } - addStyle( 'fill', 'fill' ); - addStyle( 'fill-opacity', 'fillOpacity', clamp ); - addStyle( 'opacity', 'opacity', clamp ); - addStyle( 'stroke', 'stroke' ); - addStyle( 'stroke-opacity', 'strokeOpacity', clamp ); - addStyle( 'stroke-width', 'strokeWidth', positive ); - addStyle( 'stroke-linejoin', 'strokeLineJoin' ); - addStyle( 'stroke-linecap', 'strokeLineCap' ); - addStyle( 'stroke-miterlimit', 'strokeMiterLimit', positive ); - addStyle( 'visibility', 'visibility' ); - return style; - } - // http://www.w3.org/TR/SVG11/implnote.html#PathElementImplementationNotes - function getReflection( a, b ) { - return a - ( b - a ); - } - function parseFloats( string ) { - var array = string.split( /[\s,]+|(?=\s?[+\-])/ ); - for ( var i = 0; i < array.length; i ++ ) { - var number = array[ i ]; - // Handle values like 48.6037.7.8 - // TODO Find a regex for this - if ( number.indexOf( '.' ) !== number.lastIndexOf( '.' ) ) { - var split = number.split( '.' ); - for ( var s = 2; s < split.length; s ++ ) { - array.splice( i + s - 1, 0, '0.' + split[ s ] ); - } - } - array[ i ] = parseFloatWithUnits( number ); - } - return array; - - } - // Units - var units = [ 'mm', 'cm', 'in', 'pt', 'pc', 'px' ]; - // Conversion: [ fromUnit ][ toUnit ] (-1 means dpi dependent) - var unitConversion = { - 'mm': { - 'mm': 1, - 'cm': 0.1, - 'in': 1 / 25.4, - 'pt': 72 / 25.4, - 'pc': 6 / 25.4, - 'px': - 1 - }, - 'cm': { - 'mm': 10, - 'cm': 1, - 'in': 1 / 2.54, - 'pt': 72 / 2.54, - 'pc': 6 / 2.54, - 'px': - 1 - }, - 'in': { - 'mm': 25.4, - 'cm': 2.54, - 'in': 1, - 'pt': 72, - 'pc': 6, - 'px': - 1 - }, - 'pt': { - 'mm': 25.4 / 72, - 'cm': 2.54 / 72, - 'in': 1 / 72, - 'pt': 1, - 'pc': 6 / 72, - 'px': - 1 - }, - 'pc': { - 'mm': 25.4 / 6, - 'cm': 2.54 / 6, - 'in': 1 / 6, - 'pt': 72 / 6, - 'pc': 1, - 'px': - 1 - }, - 'px': { - 'px': 1 - } - }; - function parseFloatWithUnits( string ) { - var theUnit = 'px'; - if ( typeof string === 'string' || string instanceof String ) { - for ( var i = 0, n = units.length; i < n; i ++ ) { - var u = units[ i ]; - if ( string.endsWith( u ) ) { - theUnit = u; - string = string.substring( 0, string.length - u.length ); - break; - } - } - } - var scale = undefined; - if ( theUnit === 'px' && scope.defaultUnit !== 'px' ) { - // Conversion scale from pixels to inches, then to default units - scale = unitConversion[ 'in' ][ scope.defaultUnit ] / scope.defaultDPI; - } else { - scale = unitConversion[ theUnit ][ scope.defaultUnit ]; - if ( scale < 0 ) { - // Conversion scale to pixels - scale = unitConversion[ theUnit ][ 'in' ] * scope.defaultDPI; - } - } - return scale * parseFloat( string ); - } - // Transforms - function getNodeTransform( node ) { - if ( ! ( node.hasAttribute( 'transform' ) || ( node.nodeName === 'use' && ( node.hasAttribute( 'x' ) || node.hasAttribute( 'y' ) ) ) ) ) { - return null; - } - var transform = parseNodeTransform( node ); - if ( transformStack.length > 0 ) { - transform.premultiply( transformStack[ transformStack.length - 1 ] ); - } - currentTransform.copy( transform ); - transformStack.push( transform ); - return transform; - } - function parseNodeTransform( node ) { - var transform = new THREE.Matrix3(); - var currentTransform = tempTransform0; - if ( node.nodeName === 'use' && ( node.hasAttribute( 'x' ) || node.hasAttribute( 'y' ) ) ) { - var tx = parseFloatWithUnits( node.getAttribute( 'x' ) ); - var ty = parseFloatWithUnits( node.getAttribute( 'y' ) ); - transform.translate( tx, ty ); - } - if ( node.hasAttribute( 'transform' ) ) { - var transformsTexts = node.getAttribute( 'transform' ).split( ')' ); - for ( var tIndex = transformsTexts.length - 1; tIndex >= 0; tIndex -- ) { - var transformText = transformsTexts[ tIndex ].trim(); - if ( transformText === '' ) continue; - var openParPos = transformText.indexOf( '(' ); - var closeParPos = transformText.length; - if ( openParPos > 0 && openParPos < closeParPos ) { - var transformType = transformText.substr( 0, openParPos ); - var array = parseFloats( transformText.substr( openParPos + 1, closeParPos - openParPos - 1 ) ); - currentTransform.identity(); - switch ( transformType ) { - case 'translate': - if ( array.length >= 1 ) { - var tx = array[ 0 ]; - var ty = tx; - if ( array.length >= 2 ) { - ty = array[ 1 ]; - } - currentTransform.translate( tx, ty ); - } - break; - case 'rotate': - if ( array.length >= 1 ) { - var angle = 0; - var cx = 0; - var cy = 0; - // Angle - angle = - array[ 0 ] * Math.PI / 180; - if ( array.length >= 3 ) { - // Center x, y - cx = array[ 1 ]; - cy = array[ 2 ]; - } - // Rotate around center (cx, cy) - tempTransform1.identity().translate( - cx, - cy ); - tempTransform2.identity().rotate( angle ); - tempTransform3.multiplyMatrices( tempTransform2, tempTransform1 ); - tempTransform1.identity().translate( cx, cy ); - currentTransform.multiplyMatrices( tempTransform1, tempTransform3 ); - } - break; - case 'scale': - if ( array.length >= 1 ) { - var scaleX = array[ 0 ]; - var scaleY = scaleX; - if ( array.length >= 2 ) { - scaleY = array[ 1 ]; - } - currentTransform.scale( scaleX, scaleY ); - } - break; - case 'skewX': - if ( array.length === 1 ) { - currentTransform.set( - 1, Math.tan( array[ 0 ] * Math.PI / 180 ), 0, - 0, 1, 0, - 0, 0, 1 - ); - } - break; - case 'skewY': - if ( array.length === 1 ) { - currentTransform.set( - 1, 0, 0, - Math.tan( array[ 0 ] * Math.PI / 180 ), 1, 0, - 0, 0, 1 - ); - } - break; - case 'matrix': - if ( array.length === 6 ) { - currentTransform.set( - array[ 0 ], array[ 2 ], array[ 4 ], - array[ 1 ], array[ 3 ], array[ 5 ], - 0, 0, 1 - ); - } - break; - } - } - transform.premultiply( currentTransform ); - } - } - return transform; - } - function transformPath( path, m ) { - function transfVec2( v2 ) { - tempV3.set( v2.x, v2.y, 1 ).applyMatrix3( m ); - v2.set( tempV3.x, tempV3.y ); - } - var isRotated = isTransformRotated( m ); - var subPaths = path.subPaths; - for ( var i = 0, n = subPaths.length; i < n; i ++ ) { - var subPath = subPaths[ i ]; - var curves = subPath.curves; - for ( var j = 0; j < curves.length; j ++ ) { - var curve = curves[ j ]; - if ( curve.isLineCurve ) { - transfVec2( curve.v1 ); - transfVec2( curve.v2 ); - } else if ( curve.isCubicBezierCurve ) { - transfVec2( curve.v0 ); - transfVec2( curve.v1 ); - transfVec2( curve.v2 ); - transfVec2( curve.v3 ); - } else if ( curve.isQuadraticBezierCurve ) { - transfVec2( curve.v0 ); - transfVec2( curve.v1 ); - transfVec2( curve.v2 ); - } else if ( curve.isEllipseCurve ) { - if ( isRotated ) { - console.warn( 'SVGLoader: Elliptic arc or ellipse rotation or skewing is not implemented.' ); - } - tempV2.set( curve.aX, curve.aY ); - transfVec2( tempV2 ); - curve.aX = tempV2.x; - curve.aY = tempV2.y; - curve.xRadius *= getTransformScaleX( m ); - curve.yRadius *= getTransformScaleY( m ); - } - } - } - } - function isTransformRotated( m ) { - return m.elements[ 1 ] !== 0 || m.elements[ 3 ] !== 0; - } - function getTransformScaleX( m ) { - var te = m.elements; - return Math.sqrt( te[ 0 ] * te[ 0 ] + te[ 1 ] * te[ 1 ] ); - } - function getTransformScaleY( m ) { - var te = m.elements; - return Math.sqrt( te[ 3 ] * te[ 3 ] + te[ 4 ] * te[ 4 ] ); - } - // - var paths = []; - var stylesheets = {}; - var transformStack = []; - var tempTransform0 = new THREE.Matrix3(); - var tempTransform1 = new THREE.Matrix3(); - var tempTransform2 = new THREE.Matrix3(); - var tempTransform3 = new THREE.Matrix3(); - var tempV2 = new THREE.Vector2(); - var tempV3 = new THREE.Vector3(); - var currentTransform = new THREE.Matrix3(); - var xml = new DOMParser().parseFromString( text, 'image/svg+xml' ); // application/xml - parseNode( xml.documentElement, { - fill: '#000', - fillOpacity: 1, - strokeOpacity: 1, - strokeWidth: 1, - strokeLineJoin: 'miter', - strokeLineCap: 'butt', - strokeMiterLimit: 4 - } ); - var data = { paths: paths, xml: xml.documentElement }; - // console.log( paths ); - return data; - } -} ); -THREE.SVGLoader.getStrokeStyle = function ( width, color, lineJoin, lineCap, miterLimit ) { - // Param width: Stroke width - // Param color: As returned by THREE.Color.getStyle() - // Param lineJoin: One of "round", "bevel", "miter" or "miter-limit" - // Param lineCap: One of "round", "square" or "butt" - // Param miterLimit: Maximum join length, in multiples of the "width" parameter (join is truncated if it exceeds that distance) - // Returns style object - width = width !== undefined ? width : 1; - color = color !== undefined ? color : '#000'; - lineJoin = lineJoin !== undefined ? lineJoin : 'miter'; - lineCap = lineCap !== undefined ? lineCap : 'butt'; - miterLimit = miterLimit !== undefined ? miterLimit : 4; - return { - strokeColor: color, - strokeWidth: width, - strokeLineJoin: lineJoin, - strokeLineCap: lineCap, - strokeMiterLimit: miterLimit - }; -}; -THREE.SVGLoader.pointsToStroke = function ( points, style, arcDivisions, minDistance ) { - // Generates a stroke with some witdh around the given path. - // The path can be open or closed (last point equals to first point) - // Param points: Array of Vector2D (the path). Minimum 2 points. - // Param style: Object with SVG properties as returned by SVGLoader.getStrokeStyle(), or SVGLoader.parse() in the path.userData.style object - // Params arcDivisions: Arc divisions for round joins and endcaps. (Optional) - // Param minDistance: Points closer to this distance will be merged. (Optional) - // Returns BufferGeometry with stroke triangles (In plane z = 0). UV coordinates are generated ('u' along path. 'v' across it, from left to right) - var vertices = []; - var normals = []; - var uvs = []; - if ( THREE.SVGLoader.pointsToStrokeWithBuffers( points, style, arcDivisions, minDistance, vertices, normals, uvs ) === 0 ) { - return null; - } - var geometry = new THREE.BufferGeometry(); - geometry.setAttribute( 'position', new THREE.Float32BufferAttribute( vertices, 3 ) ); - geometry.setAttribute( 'normal', new THREE.Float32BufferAttribute( normals, 3 ) ); - geometry.setAttribute( 'uv', new THREE.Float32BufferAttribute( uvs, 2 ) ); - return geometry; -}; -THREE.SVGLoader.pointsToStrokeWithBuffers = function () { - var tempV2_1 = new THREE.Vector2(); - var tempV2_2 = new THREE.Vector2(); - var tempV2_3 = new THREE.Vector2(); - var tempV2_4 = new THREE.Vector2(); - var tempV2_5 = new THREE.Vector2(); - var tempV2_6 = new THREE.Vector2(); - var tempV2_7 = new THREE.Vector2(); - var lastPointL = new THREE.Vector2(); - var lastPointR = new THREE.Vector2(); - var point0L = new THREE.Vector2(); - var point0R = new THREE.Vector2(); - var currentPointL = new THREE.Vector2(); - var currentPointR = new THREE.Vector2(); - var nextPointL = new THREE.Vector2(); - var nextPointR = new THREE.Vector2(); - var innerPoint = new THREE.Vector2(); - var outerPoint = new THREE.Vector2(); - return function ( points, style, arcDivisions, minDistance, vertices, normals, uvs, vertexOffset ) { - // This function can be called to update existing arrays or buffers. - // Accepts same parameters as pointsToStroke, plus the buffers and optional offset. - // Param vertexOffset: Offset vertices to start writing in the buffers (3 elements/vertex for vertices and normals, and 2 elements/vertex for uvs) - // Returns number of written vertices / normals / uvs pairs - // if 'vertices' parameter is undefined no triangles will be generated, but the returned vertices count will still be valid (useful to preallocate the buffers) - // 'normals' and 'uvs' buffers are optional - arcDivisions = arcDivisions !== undefined ? arcDivisions : 12; - minDistance = minDistance !== undefined ? minDistance : 0.001; - vertexOffset = vertexOffset !== undefined ? vertexOffset : 0; - // First ensure there are no duplicated points - points = removeDuplicatedPoints( points ); - var numPoints = points.length; - if ( numPoints < 2 ) return 0; - var isClosed = points[ 0 ].equals( points[ numPoints - 1 ] ); - var currentPoint; - var previousPoint = points[ 0 ]; - var nextPoint; - var strokeWidth2 = style.strokeWidth / 2; - var deltaU = 1 / ( numPoints - 1 ); - var u0 = 0; - var innerSideModified; - var joinIsOnLeftSide; - var isMiter; - var initialJoinIsOnLeftSide = false; - var numVertices = 0; - var currentCoordinate = vertexOffset * 3; - var currentCoordinateUV = vertexOffset * 2; - // Get initial left and right stroke points - getNormal( points[ 0 ], points[ 1 ], tempV2_1 ).multiplyScalar( strokeWidth2 ); - lastPointL.copy( points[ 0 ] ).sub( tempV2_1 ); - lastPointR.copy( points[ 0 ] ).add( tempV2_1 ); - point0L.copy( lastPointL ); - point0R.copy( lastPointR ); - for ( var iPoint = 1; iPoint < numPoints; iPoint ++ ) { - currentPoint = points[ iPoint ]; - // Get next point - if ( iPoint === numPoints - 1 ) { - if ( isClosed ) { - // Skip duplicated initial point - nextPoint = points[ 1 ]; - } else nextPoint = undefined; - } else { - nextPoint = points[ iPoint + 1 ]; - } - // Normal of previous segment in tempV2_1 - var normal1 = tempV2_1; - getNormal( previousPoint, currentPoint, normal1 ); - tempV2_3.copy( normal1 ).multiplyScalar( strokeWidth2 ); - currentPointL.copy( currentPoint ).sub( tempV2_3 ); - currentPointR.copy( currentPoint ).add( tempV2_3 ); - var u1 = u0 + deltaU; - innerSideModified = false; - if ( nextPoint !== undefined ) { - // Normal of next segment in tempV2_2 - getNormal( currentPoint, nextPoint, tempV2_2 ); - tempV2_3.copy( tempV2_2 ).multiplyScalar( strokeWidth2 ); - nextPointL.copy( currentPoint ).sub( tempV2_3 ); - nextPointR.copy( currentPoint ).add( tempV2_3 ); - joinIsOnLeftSide = true; - tempV2_3.subVectors( nextPoint, previousPoint ); - if ( normal1.dot( tempV2_3 ) < 0 ) { - joinIsOnLeftSide = false; - } - if ( iPoint === 1 ) initialJoinIsOnLeftSide = joinIsOnLeftSide; - tempV2_3.subVectors( nextPoint, currentPoint ); - tempV2_3.normalize(); - var dot = Math.abs( normal1.dot( tempV2_3 ) ); - // If path is straight, don't create join - if ( dot !== 0 ) { - // Compute inner and outer segment intersections - var miterSide = strokeWidth2 / dot; - tempV2_3.multiplyScalar( - miterSide ); - tempV2_4.subVectors( currentPoint, previousPoint ); - tempV2_5.copy( tempV2_4 ).setLength( miterSide ).add( tempV2_3 ); - innerPoint.copy( tempV2_5 ).negate(); - var miterLength2 = tempV2_5.length(); - var segmentLengthPrev = tempV2_4.length(); - tempV2_4.divideScalar( segmentLengthPrev ); - tempV2_6.subVectors( nextPoint, currentPoint ); - var segmentLengthNext = tempV2_6.length(); - tempV2_6.divideScalar( segmentLengthNext ); - // Check that previous and next segments doesn't overlap with the innerPoint of intersection - if ( tempV2_4.dot( innerPoint ) < segmentLengthPrev && tempV2_6.dot( innerPoint ) < segmentLengthNext ) { - innerSideModified = true; - } - outerPoint.copy( tempV2_5 ).add( currentPoint ); - innerPoint.add( currentPoint ); - isMiter = false; - if ( innerSideModified ) { - if ( joinIsOnLeftSide ) { - nextPointR.copy( innerPoint ); - currentPointR.copy( innerPoint ); - } else { - nextPointL.copy( innerPoint ); - currentPointL.copy( innerPoint ); - } - } else { - // The segment triangles are generated here if there was overlapping - makeSegmentTriangles(); - } - switch ( style.strokeLineJoin ) { - case 'bevel': - makeSegmentWithBevelJoin( joinIsOnLeftSide, innerSideModified, u1 ); - break; - case 'round': - // Segment triangles - createSegmentTrianglesWithMiddleSection( joinIsOnLeftSide, innerSideModified ); - // Join triangles - if ( joinIsOnLeftSide ) { - makeCircularSector( currentPoint, currentPointL, nextPointL, u1, 0 ); - } else { - makeCircularSector( currentPoint, nextPointR, currentPointR, u1, 1 ); - } - break; - case 'miter': - case 'miter-clip': - default: - var miterFraction = ( strokeWidth2 * style.strokeMiterLimit ) / miterLength2; - if ( miterFraction < 1 ) { - // The join miter length exceeds the miter limit - if ( style.strokeLineJoin !== 'miter-clip' ) { - makeSegmentWithBevelJoin( joinIsOnLeftSide, innerSideModified, u1 ); - break; - } else { - // Segment triangles - createSegmentTrianglesWithMiddleSection( joinIsOnLeftSide, innerSideModified ); - // Miter-clip join triangles - if ( joinIsOnLeftSide ) { - tempV2_6.subVectors( outerPoint, currentPointL ).multiplyScalar( miterFraction ).add( currentPointL ); - tempV2_7.subVectors( outerPoint, nextPointL ).multiplyScalar( miterFraction ).add( nextPointL ); - addVertex( currentPointL, u1, 0 ); - addVertex( tempV2_6, u1, 0 ); - addVertex( currentPoint, u1, 0.5 ); - addVertex( currentPoint, u1, 0.5 ); - addVertex( tempV2_6, u1, 0 ); - addVertex( tempV2_7, u1, 0 ); - addVertex( currentPoint, u1, 0.5 ); - addVertex( tempV2_7, u1, 0 ); - addVertex( nextPointL, u1, 0 ); - } else { - tempV2_6.subVectors( outerPoint, currentPointR ).multiplyScalar( miterFraction ).add( currentPointR ); - tempV2_7.subVectors( outerPoint, nextPointR ).multiplyScalar( miterFraction ).add( nextPointR ); - addVertex( currentPointR, u1, 1 ); - addVertex( tempV2_6, u1, 1 ); - addVertex( currentPoint, u1, 0.5 ); - addVertex( currentPoint, u1, 0.5 ); - addVertex( tempV2_6, u1, 1 ); - addVertex( tempV2_7, u1, 1 ); - addVertex( currentPoint, u1, 0.5 ); - addVertex( tempV2_7, u1, 1 ); - addVertex( nextPointR, u1, 1 ); - } - } - } else { - // Miter join segment triangles - if ( innerSideModified ) { - // Optimized segment + join triangles - if ( joinIsOnLeftSide ) { - addVertex( lastPointR, u0, 1 ); - addVertex( lastPointL, u0, 0 ); - addVertex( outerPoint, u1, 0 ); - addVertex( lastPointR, u0, 1 ); - addVertex( outerPoint, u1, 0 ); - addVertex( innerPoint, u1, 1 ); - } else { - addVertex( lastPointR, u0, 1 ); - addVertex( lastPointL, u0, 0 ); - addVertex( outerPoint, u1, 1 ); - addVertex( lastPointL, u0, 0 ); - addVertex( innerPoint, u1, 0 ); - addVertex( outerPoint, u1, 1 ); - } - - if ( joinIsOnLeftSide ) { - nextPointL.copy( outerPoint ); - } else { - nextPointR.copy( outerPoint ); - } - - } else { - // Add extra miter join triangles - if ( joinIsOnLeftSide ) { - addVertex( currentPointL, u1, 0 ); - addVertex( outerPoint, u1, 0 ); - addVertex( currentPoint, u1, 0.5 ); - addVertex( currentPoint, u1, 0.5 ); - addVertex( outerPoint, u1, 0 ); - addVertex( nextPointL, u1, 0 ); - } else { - addVertex( currentPointR, u1, 1 ); - addVertex( outerPoint, u1, 1 ); - addVertex( currentPoint, u1, 0.5 ); - addVertex( currentPoint, u1, 0.5 ); - addVertex( outerPoint, u1, 1 ); - addVertex( nextPointR, u1, 1 ); - } - } - isMiter = true; - } - break; - } - } else { - // The segment triangles are generated here when two consecutive points are collinear - makeSegmentTriangles(); - } - } else { - // The segment triangles are generated here if it is the ending segment - makeSegmentTriangles(); - } - if ( ! isClosed && iPoint === numPoints - 1 ) { - // Start line endcap - addCapGeometry( points[ 0 ], point0L, point0R, joinIsOnLeftSide, true, u0 ); - } - // Increment loop variables - u0 = u1; - previousPoint = currentPoint; - lastPointL.copy( nextPointL ); - lastPointR.copy( nextPointR ); - } - if ( ! isClosed ) { - // Ending line endcap - addCapGeometry( currentPoint, currentPointL, currentPointR, joinIsOnLeftSide, false, u1 ); - } else if ( innerSideModified && vertices ) { - // Modify path first segment vertices to adjust to the segments inner and outer intersections - var lastOuter = outerPoint; - var lastInner = innerPoint; - if ( initialJoinIsOnLeftSide !== joinIsOnLeftSide ) { - lastOuter = innerPoint; - lastInner = outerPoint; - } - if ( joinIsOnLeftSide ) { - if ( isMiter || initialJoinIsOnLeftSide ) { - lastInner.toArray( vertices, 0 * 3 ); - lastInner.toArray( vertices, 3 * 3 ); - if ( isMiter ) { - lastOuter.toArray( vertices, 1 * 3 ); - } - } - } else { - if ( isMiter || ! initialJoinIsOnLeftSide ) { - lastInner.toArray( vertices, 1 * 3 ); - lastInner.toArray( vertices, 3 * 3 ); - if ( isMiter ) { - lastOuter.toArray( vertices, 0 * 3 ); - } - } - } - } - return numVertices; - // -- End of algorithm - // -- Functions - function getNormal( p1, p2, result ) { - result.subVectors( p2, p1 ); - return result.set( - result.y, result.x ).normalize(); - } - function addVertex( position, u, v ) { - if ( vertices ) { - vertices[ currentCoordinate ] = position.x; - vertices[ currentCoordinate + 1 ] = position.y; - vertices[ currentCoordinate + 2 ] = 0; - if ( normals ) { - normals[ currentCoordinate ] = 0; - normals[ currentCoordinate + 1 ] = 0; - normals[ currentCoordinate + 2 ] = 1; - } - currentCoordinate += 3; - if ( uvs ) { - uvs[ currentCoordinateUV ] = u; - uvs[ currentCoordinateUV + 1 ] = v; - currentCoordinateUV += 2; - } - } - numVertices += 3; - } - function makeCircularSector( center, p1, p2, u, v ) { - // param p1, p2: Points in the circle arc. - // p1 and p2 are in clockwise direction. - tempV2_1.copy( p1 ).sub( center ).normalize(); - tempV2_2.copy( p2 ).sub( center ).normalize(); - var angle = Math.PI; - var dot = tempV2_1.dot( tempV2_2 ); - if ( Math.abs( dot ) < 1 ) angle = Math.abs( Math.acos( dot ) ); - angle /= arcDivisions; - tempV2_3.copy( p1 ); - for ( var i = 0, il = arcDivisions - 1; i < il; i ++ ) { - tempV2_4.copy( tempV2_3 ).rotateAround( center, angle ); - addVertex( tempV2_3, u, v ); - addVertex( tempV2_4, u, v ); - addVertex( center, u, 0.5 ); - tempV2_3.copy( tempV2_4 ); - } - addVertex( tempV2_4, u, v ); - addVertex( p2, u, v ); - addVertex( center, u, 0.5 ); - } - function makeSegmentTriangles() { - addVertex( lastPointR, u0, 1 ); - addVertex( lastPointL, u0, 0 ); - addVertex( currentPointL, u1, 0 ); - addVertex( lastPointR, u0, 1 ); - addVertex( currentPointL, u1, 1 ); - addVertex( currentPointR, u1, 0 ); - } - function makeSegmentWithBevelJoin( joinIsOnLeftSide, innerSideModified, u ) { - if ( innerSideModified ) { - // Optimized segment + bevel triangles - if ( joinIsOnLeftSide ) { - // Path segments triangles - addVertex( lastPointR, u0, 1 ); - addVertex( lastPointL, u0, 0 ); - addVertex( currentPointL, u1, 0 ); - addVertex( lastPointR, u0, 1 ); - addVertex( currentPointL, u1, 0 ); - addVertex( innerPoint, u1, 1 ); - // Bevel join triangle - addVertex( currentPointL, u, 0 ); - addVertex( nextPointL, u, 0 ); - addVertex( innerPoint, u, 0.5 ); - } else { - // Path segments triangles - addVertex( lastPointR, u0, 1 ); - addVertex( lastPointL, u0, 0 ); - addVertex( currentPointR, u1, 1 ); - addVertex( lastPointL, u0, 0 ); - addVertex( innerPoint, u1, 0 ); - addVertex( currentPointR, u1, 1 ); - // Bevel join triangle - addVertex( currentPointR, u, 1 ); - addVertex( nextPointR, u, 0 ); - addVertex( innerPoint, u, 0.5 ); - } - } else { - // Bevel join triangle. The segment triangles are done in the main loop - if ( joinIsOnLeftSide ) { - addVertex( currentPointL, u, 0 ); - addVertex( nextPointL, u, 0 ); - addVertex( currentPoint, u, 0.5 ); - } else { - addVertex( currentPointR, u, 1 ); - addVertex( nextPointR, u, 0 ); - addVertex( currentPoint, u, 0.5 ); - } - } - } - function createSegmentTrianglesWithMiddleSection( joinIsOnLeftSide, innerSideModified ) { - if ( innerSideModified ) { - if ( joinIsOnLeftSide ) { - addVertex( lastPointR, u0, 1 ); - addVertex( lastPointL, u0, 0 ); - addVertex( currentPointL, u1, 0 ); - addVertex( lastPointR, u0, 1 ); - addVertex( currentPointL, u1, 0 ); - addVertex( innerPoint, u1, 1 ); - addVertex( currentPointL, u0, 0 ); - addVertex( currentPoint, u1, 0.5 ); - addVertex( innerPoint, u1, 1 ); - addVertex( currentPoint, u1, 0.5 ); - addVertex( nextPointL, u0, 0 ); - addVertex( innerPoint, u1, 1 ); - } else { - addVertex( lastPointR, u0, 1 ); - addVertex( lastPointL, u0, 0 ); - addVertex( currentPointR, u1, 1 ); - addVertex( lastPointL, u0, 0 ); - addVertex( innerPoint, u1, 0 ); - addVertex( currentPointR, u1, 1 ); - addVertex( currentPointR, u0, 1 ); - addVertex( innerPoint, u1, 0 ); - addVertex( currentPoint, u1, 0.5 ); - addVertex( currentPoint, u1, 0.5 ); - addVertex( innerPoint, u1, 0 ); - addVertex( nextPointR, u0, 1 ); - } - } - } - function addCapGeometry( center, p1, p2, joinIsOnLeftSide, start, u ) { - // param center: End point of the path - // param p1, p2: Left and right cap points - switch ( style.strokeLineCap ) { - case 'round': - if ( start ) { - makeCircularSector( center, p2, p1, u, 0.5 ); - } else { - makeCircularSector( center, p1, p2, u, 0.5 ); - } - break; - case 'square': - if ( start ) { - tempV2_1.subVectors( p1, center ); - tempV2_2.set( tempV2_1.y, - tempV2_1.x ); - tempV2_3.addVectors( tempV2_1, tempV2_2 ).add( center ); - tempV2_4.subVectors( tempV2_2, tempV2_1 ).add( center ); - // Modify already existing vertices - if ( joinIsOnLeftSide ) { - tempV2_3.toArray( vertices, 1 * 3 ); - tempV2_4.toArray( vertices, 0 * 3 ); - tempV2_4.toArray( vertices, 3 * 3 ); - } else { - tempV2_3.toArray( vertices, 1 * 3 ); - tempV2_3.toArray( vertices, 3 * 3 ); - tempV2_4.toArray( vertices, 0 * 3 ); - } - } else { - tempV2_1.subVectors( p2, center ); - tempV2_2.set( tempV2_1.y, - tempV2_1.x ); - tempV2_3.addVectors( tempV2_1, tempV2_2 ).add( center ); - tempV2_4.subVectors( tempV2_2, tempV2_1 ).add( center ); - var vl = vertices.length; - // Modify already existing vertices - if ( joinIsOnLeftSide ) { - tempV2_3.toArray( vertices, vl - 1 * 3 ); - tempV2_4.toArray( vertices, vl - 2 * 3 ); - tempV2_4.toArray( vertices, vl - 4 * 3 ); - } else { - tempV2_3.toArray( vertices, vl - 2 * 3 ); - tempV2_4.toArray( vertices, vl - 1 * 3 ); - tempV2_4.toArray( vertices, vl - 4 * 3 ); - } - } - break; - case 'butt': - default: - // Nothing to do here - break; - } - } - function removeDuplicatedPoints( points ) { - // Creates a new array if necessary with duplicated points removed. - // This does not remove duplicated initial and ending points of a closed path. - var dupPoints = false; - for ( var i = 1, n = points.length - 1; i < n; i ++ ) { - if ( points[ i ].distanceTo( points[ i + 1 ] ) < minDistance ) { - dupPoints = true; - break; - } - } - if ( ! dupPoints ) return points; - var newPoints = []; - newPoints.push( points[ 0 ] ); - for ( var i = 1, n = points.length - 1; i < n; i ++ ) { - if ( points[ i ].distanceTo( points[ i + 1 ] ) >= minDistance ) { - newPoints.push( points[ i ] ); - } - } - newPoints.push( points[ points.length - 1 ] ); - return newPoints; - } - }; -}(); -/////////////////------------------------------------ OrbitControls -------------- -THREE.OrbitControls = function(object, domElement) { - this.object = object; - - this.domElement = domElement !== undefined ? domElement : document; - - // Set to false to disable this control - this.enabled = true; - - // "target" sets the location of focus, where the object orbits around - this.target = new THREE.Vector3(); - - // How far you can dolly in and out ( PerspectiveCamera only ) - this.minDistance = 0; - this.maxDistance = Infinity; - - // How far you can zoom in and out ( OrthographicCamera only ) - this.minZoom = 0; - this.maxZoom = Infinity; - - // How far you can orbit vertically, upper and lower limits. - // Range is 0 to Math.PI radians. - this.minPolarAngle = 0; // radians - this.maxPolarAngle = Math.PI; // radians - - // How far you can orbit horizontally, upper and lower limits. - // If set, must be a sub-interval of the interval [ - Math.PI, Math.PI ]. - this.minAzimuthAngle = -Infinity; // radians - this.maxAzimuthAngle = Infinity; // radians - - // Set to true to enable damping (inertia) - // If damping is enabled, you must call controls.update() in your animation loop - this.enableDamping = false; - this.dampingFactor = 0.05; - - // This option actually enables dollying in and out; left as "zoom" for backwards compatibility. - // Set to false to disable zooming - this.enableZoom = true; - this.zoomSpeed = 0.4; /// - - // Set to false to disable rotating - this.enableRotate = true; - this.rotateSpeed = 1.0; - - // Set to false to disable panning - this.enablePan = true; - this.panSpeed = 1.0; - this.screenSpacePanning = false; // if true, pan in screen-space - this.keyPanSpeed = 7.0; // pixels moved per arrow key push - - // Set to true to automatically rotate around the target - // If auto-rotate is enabled, you must call controls.update() in your animation loop - this.autoRotate = false; - this.autoRotateSpeed = 2.0; // 30 seconds per round when fps is 60 - - // Set to false to disable use of the keys - this.enableKeys = true; - - // The four arrow keys - this.keys = { LEFT: 37, UP: 38, RIGHT: 39, BOTTOM: 40 }; - - this.minPan = null; - - this.maxPan = null; - - // Mouse buttons - this.mouseButtons = { - LEFT: THREE.MOUSE.ROTATE, - MIDDLE: THREE.MOUSE.DOLLY, - RIGHT: THREE.MOUSE.PAN - }; - - // Touch fingers - this.touches = { ONE: THREE.TOUCH.ROTATE, TWO: THREE.TOUCH.DOLLY_PAN }; //单指旋转 - //this.touches = { ONE: THREE.TOUCH.PAN, TWO: THREE.TOUCH.DOLLY_ROTATE }; //单指拖动 - - // for reset - this.target0 = this.target.clone(); - this.position0 = this.object.position.clone(); - this.zoom0 = this.object.zoom; - this.scale = 1; - // - // public methods - // - //设置远近 - this.getDistance = function () { - return spherical.radius; - }; - //设置远近 - this.setDistance = function (distance) { - if(distance>spherical.radius){ - dollyOut(distance/spherical.radius); - }else{ - dollyIn(spherical.radius/distance); - } - }; - this.setPanCenter=function(){ - panOffset = new THREE.Vector3(); - } - //获取垂直旋转角度 - this.getRotate = function () { - return spherical.phi; - }; - //垂直旋转角度 - this.rotate = function( angle ) { - sphericalDelta.phi -=angle; - }; - //设置水平旋转角度 - this.setRotateHorizontal =function ( angle ) { - sphericalDelta.theta -= angle; - scope && scope.update(); - } - //获取水平旋转角度 - this.getRotateHorizontal = function( ) { - return spherical.theta; - } - //设置ZOOM - this.setZoom = function(zoom) { - this.zoom0 = zoom; - scope.object.zoom = Math.max(scope.minZoom,Math.min(scope.maxZoom, zoom)); - scope.object.updateProjectionMatrix(); - zoomChanged = true; - } - - this.getPolarAngle = function() { - return spherical.phi; - }; - - this.getAzimuthalAngle = function() { - return spherical.theta; - }; - - this.saveState = function() { - scope.target0.copy(scope.target); - scope.position0.copy(scope.object.position); - scope.zoom0 = scope.object.zoom; - }; - - this.reset = function() { - scope.target.copy(scope.target0); //不改变相机距离 - scope.object.position.copy(scope.position0); - scope.object.zoom = scope.zoom0; - - scope.object.updateProjectionMatrix(); - scope.dispatchEvent(changeEvent); - - scope.update(); - - state = STATE.NONE; - }; - - // this method is exposed, but perhaps it would be better if we can make it private... - this.update = (function() { - var offset = new THREE.Vector3(); - - // so camera.up is the orbit axis - var quat = new THREE.Quaternion().setFromUnitVectors( - object.up, - new THREE.Vector3(0, 1, 0) - ); - var quatInverse = quat.clone().inverse(); - - var lastPosition = new THREE.Vector3(); - var lastQuaternion = new THREE.Quaternion(); - - return function update() { - var position = scope.object.position; - - offset.copy(position).sub(scope.target); - - // rotate offset to "y-axis-is-up" space - offset.applyQuaternion(quat); - - // angle from z-axis around y-axis - spherical.setFromVector3(offset); - - if (scope.autoRotate && state === STATE.NONE) { - rotateLeft(getAutoRotationAngle()); - } - - if (scope.enableDamping) { - spherical.theta += sphericalDelta.theta * scope.dampingFactor; - spherical.phi += sphericalDelta.phi * scope.dampingFactor; - } else { - spherical.theta += sphericalDelta.theta; - spherical.phi += sphericalDelta.phi; - } - - // restrict theta to be between desired limits - spherical.theta = Math.max( - scope.minAzimuthAngle, - Math.min(scope.maxAzimuthAngle, spherical.theta) - ); - - // restrict phi to be between desired limits - spherical.phi = Math.max( - scope.minPolarAngle, - Math.min(scope.maxPolarAngle, spherical.phi) - ); - - spherical.makeSafe(); - - spherical.radius *= scale; - // restrict radius to be between desired limits - spherical.radius = Math.max( - scope.minDistance, - Math.min(scope.maxDistance, spherical.radius) - ); - - // move target to panned location - - if (scope.enableDamping === true) { - scope.target.addScaledVector(panOffset, scope.dampingFactor); - } else { - scope.target.add(panOffset); - } - - if (scope.minPan && scope.maxPan) - scope.target.clamp(scope.minPan, scope.maxPan); - - offset.setFromSpherical(spherical); - - // rotate offset back to "camera-up-vector-is-up" space - offset.applyQuaternion(quatInverse); - - position.copy(scope.target).add(offset); - - scope.object.lookAt(scope.target); - - if (scope.enableDamping === true) { - sphericalDelta.theta *= 1 - scope.dampingFactor; - sphericalDelta.phi *= 1 - scope.dampingFactor; - - panOffset.multiplyScalar(1 - scope.dampingFactor); - } else { - sphericalDelta.set(0, 0, 0); - - panOffset.set(0, 0, 0); - } - - scale = 1; - - // update condition is: - // min(camera displacement, camera rotation in radians)^2 > EPS - // using small-angle approximation cos(x/2) = 1 - x^2 / 8 - - if ( - zoomChanged || - lastPosition.distanceToSquared(scope.object.position) > EPS || - 8 * (1 - lastQuaternion.dot(scope.object.quaternion)) > EPS - ) { - scope.dispatchEvent(changeEvent); - - lastPosition.copy(scope.object.position); - lastQuaternion.copy(scope.object.quaternion); - zoomChanged = false; - - return true; - } - - return false; - }; - })(); - - this.dispose = function() { - scope.domElement.removeEventListener("contextmenu", onContextMenu, false); - scope.domElement.removeEventListener("mousedown", onMouseDown, false); - scope.domElement.removeEventListener("wheel", onMouseWheel, false); - - scope.domElement.removeEventListener("touchstart", onTouchStart, false); - scope.domElement.removeEventListener("touchend", onTouchEnd, false); - scope.domElement.removeEventListener("touchmove", onTouchMove, false); - - document.removeEventListener("mousemove", onMouseMove, false); - document.removeEventListener("mouseup", onMouseUp, false); - - window.removeEventListener("keydown", onKeyDown, false); - - //scope.dispatchEvent( { type: 'dispose' } ); // should this be added here? - }; - - // - // internals - // - - var scope = this; - - var changeEvent = { type: "change" }; - var startEvent = { type: "start" }; - var endEvent = { type: "end" }; - - var STATE = { - NONE: -1, - ROTATE: 0, - DOLLY: 1, - PAN: 2, - TOUCH_ROTATE: 3, - TOUCH_PAN: 4, - TOUCH_DOLLY_PAN: 5, - TOUCH_DOLLY_ROTATE: 6 - }; - - var state = STATE.NONE; - - var EPS = 0.000001; - - // current position in spherical coordinates - var spherical = new THREE.Spherical(); - var sphericalDelta = new THREE.Spherical(); - - var scale = 1; - var panOffset = new THREE.Vector3(); - var zoomChanged = false; - - var rotateStart = new THREE.Vector2(); - var rotateEnd = new THREE.Vector2(); - var rotateDelta = new THREE.Vector2(); - - var panStart = new THREE.Vector2(); - var panEnd = new THREE.Vector2(); - var panDelta = new THREE.Vector2(); - - var dollyStart = new THREE.Vector2(); - var dollyEnd = new THREE.Vector2(); - var dollyDelta = new THREE.Vector2(); - - function getAutoRotationAngle() { - return ((2 * Math.PI) / 60 / 60) * scope.autoRotateSpeed; - } - - function getZoomScale() { - return Math.pow(0.95, scope.zoomSpeed); - } - - function rotateLeft(angle) { - sphericalDelta.theta -= angle; - } - this.rotateLeft = rotateLeft; - function rotateUp(angle) { - sphericalDelta.phi -= angle; - } - this.rotateUp = rotateUp; - var panLeft = (function() { - var v = new THREE.Vector3(); - - return function panLeft(distance, objectMatrix) { - v.setFromMatrixColumn(objectMatrix, 0); // get X column of objectMatrix - v.multiplyScalar(-distance); - panOffset.add(v); - }; - })(); - - var panUp = (function() { - var v = new THREE.Vector3(); - - return function panUp(distance, objectMatrix) { - if (scope.screenSpacePanning === true) { - v.setFromMatrixColumn(objectMatrix, 1); - } else { - v.setFromMatrixColumn(objectMatrix, 0); - v.crossVectors(scope.object.up, v); - } - - v.multiplyScalar(distance); - - panOffset.add(v); - }; - })(); - - // deltaX and deltaY are in pixels; right and down are positive - var pan = (function() { - var offset = new THREE.Vector3(); - - return function pan(deltaX, deltaY) { - var element = - scope.domElement === document - ? scope.domElement.body - : scope.domElement; - - if (scope.object.isPerspectiveCamera) { - // perspective - var position = scope.object.position; - offset.copy(position).sub(scope.target); - var targetDistance = offset.length(); - - // half of the fov is center to top of screen - targetDistance *= Math.tan(((scope.object.fov / 2) * Math.PI) / 180.0); - - // we use only clientHeight here so aspect ratio does not distort speed - panLeft( - (2 * deltaX * targetDistance) / element.clientHeight, - scope.object.matrix - ); - panUp( - (2 * deltaY * targetDistance) / element.clientHeight, - scope.object.matrix - ); - } else if (scope.object.isOrthographicCamera) { - // orthographic - panLeft( - (deltaX * (scope.object.right - scope.object.left)) / - scope.object.zoom / - element.clientWidth, - scope.object.matrix - ); - panUp( - (deltaY * (scope.object.top - scope.object.bottom)) / - scope.object.zoom / - element.clientHeight, - scope.object.matrix - ); - } else { - // camera neither orthographic nor perspective - console.warn( - "WARNING: OrbitControls.js encountered an unknown camera type - pan disabled." - ); - scope.enablePan = false; - } - }; - })(); - this.pan = pan; - function dollyIn(dollyScale) { - if (scope.object.isPerspectiveCamera) { - scale /= dollyScale; - if (scale > 1 && Math.abs(spherical.radius - scope.maxDistance) < 5) { - if (window.Map_QM) { - window.Map_QM.dispatchEvent({ - type: 'changeMapLimit', - data: "已经最小了" - }); - } - } - } else if (scope.object.isOrthographicCamera) { - scope.object.zoom = Math.max( - scope.minZoom, - Math.min(scope.maxZoom, scope.object.zoom * dollyScale) - ); - scope.object.updateProjectionMatrix(); - zoomChanged = true; - } else { - console.warn( - "WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled." - ); - scope.enableZoom = false; - } - } - - function dollyOut(dollyScale) { - if (scope.object.isPerspectiveCamera) { - scale *= dollyScale; - if (scale < 1 && Math.abs(spherical.radius - scope.minDistance) < 5) { - if (window.Map_QM) { - window.Map_QM.dispatchEvent({ - type: 'changeMapLimit', - data: "已经最大了" - }); - } - } - } else if (scope.object.isOrthographicCamera) { - scope.object.zoom = Math.max( - scope.minZoom, - Math.min(scope.maxZoom, scope.object.zoom / dollyScale) - ); - scope.object.updateProjectionMatrix(); - zoomChanged = true; - } else { - console.warn( - "WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled." - ); - scope.enableZoom = false; - } - } - - // - // event callbacks - update the object state - // - - function handleMouseDownRotate(event) { - rotateStart.set(event.clientX, event.clientY); - } - - function handleMouseDownDolly(event) { - dollyStart.set(event.clientX, event.clientY); - } - - function handleMouseDownPan(event) { - panStart.set(event.clientX, event.clientY); - } - - function handleMouseMoveRotate(event) { - rotateEnd.set(event.clientX, event.clientY); - - rotateDelta - .subVectors(rotateEnd, rotateStart) - .multiplyScalar(scope.rotateSpeed); - - var element = - scope.domElement === document ? scope.domElement.body : scope.domElement; - - rotateLeft((2 * Math.PI * rotateDelta.x) / element.clientHeight); // yes, height - - rotateUp((2 * Math.PI * rotateDelta.y) / element.clientHeight); - - rotateStart.copy(rotateEnd); - - scope.update(); - } - - function handleMouseMoveDolly(event) { - dollyEnd.set(event.clientX, event.clientY); - - dollyDelta.subVectors(dollyEnd, dollyStart); - - if (dollyDelta.y > 0) { - dollyIn(getZoomScale()); - } else if (dollyDelta.y < 0) { - dollyOut(getZoomScale()); - } - - dollyStart.copy(dollyEnd); - - scope.update(); - } - - function handleMouseMovePan(event) { - panEnd.set(event.clientX, event.clientY); - - panDelta.subVectors(panEnd, panStart).multiplyScalar(scope.panSpeed); - - pan(panDelta.x, panDelta.y); - - panStart.copy(panEnd); - - scope.update(); - } - - function handleMouseUp(/*event*/) { - // no-op - } - - function handleMouseWheel(event) { - if (event.deltaY < 0) { - dollyOut(getZoomScale()); - } else if (event.deltaY > 0) { - dollyIn(getZoomScale()); - } - - // let mX = (event.clientX / scope.domElement.clientWidth) * 2 - 1; - // let mY = -(event.clientY / scope.domElement.clientHeight) * 2 + 1; - // let vector = new THREE.Vector3(mX, mY, 0); - // vector.unproject(scope.object); - // vector.sub(scope.object.position).setLength(15); - // if (event.deltaY < 0) { - // scope.object.position.add(vector); - // scope.target.add(vector); - // }else { - // scope.object.position.sub(vector); - // scope.target.sub(vector); - // } - - scope.update(); - } - - function handleKeyDown(event) { - var needsUpdate = false; - - switch (event.keyCode) { - case scope.keys.UP: - pan(0, scope.keyPanSpeed); - needsUpdate = true; - break; - - case scope.keys.BOTTOM: - pan(0, -scope.keyPanSpeed); - needsUpdate = true; - break; - - case scope.keys.LEFT: - pan(scope.keyPanSpeed, 0); - needsUpdate = true; - break; - - case scope.keys.RIGHT: - pan(-scope.keyPanSpeed, 0); - needsUpdate = true; - break; - } - - if (needsUpdate) { - // prevent the browser from scrolling on cursor keys - event.preventDefault(); - - scope.update(); - } - } - - function handleTouchStartRotate(event) { - if(event.touches.length<1){ - return - } - if (event.touches.length == 1) { - rotateStart.set(event.touches[0].pageX, event.touches[0].pageY); - } else { - var x = 0.5 * (event.touches[0].pageX + event.touches[1].pageX); - var y = 0.5 * (event.touches[0].pageY + event.touches[1].pageY); - - rotateStart.set(x, y); - } - } - - function handleTouchStartPan(event) { - if(event.touches.length<1){ - return - } - if (event.touches.length == 1) { - panStart.set(event.touches[0].pageX, event.touches[0].pageY); - } else { - var x = 0.5 * (event.touches[0].pageX + event.touches[1].pageX); - var y = 0.5 * (event.touches[0].pageY + event.touches[1].pageY); - - panStart.set(x, y); - } - } - - function handleTouchStartDolly(event) { - if(event.touches.length<2){ - return - } - var dx = event.touches[0].pageX - event.touches[1].pageX; - var dy = event.touches[0].pageY - event.touches[1].pageY; - - var distance = Math.sqrt(dx * dx + dy * dy); - - dollyStart.set(0, distance); - } - - function handleTouchStartDollyPan(event) { - if (scope.enableZoom) handleTouchStartDolly(event); - - if (scope.enablePan) handleTouchStartPan(event); - } - - function handleTouchStartDollyRotate(event) { - if (scope.enableZoom) handleTouchStartDolly(event); - - if (scope.enableRotate) handleTouchStartRotate(event); - } - - function handleTouchMoveRotate(event) { - if(event.touches.length<1){ - return - } - if (event.touches.length == 1) { - rotateEnd.set(event.touches[0].pageX, event.touches[0].pageY); - } else { - var x = 0.5 * (event.touches[0].pageX + event.touches[1].pageX); - var y = 0.5 * (event.touches[0].pageY + event.touches[1].pageY); - - rotateEnd.set(x, y); - } - - rotateDelta - .subVectors(rotateEnd, rotateStart) - .multiplyScalar(scope.rotateSpeed); - - var element = - scope.domElement === document ? scope.domElement.body : scope.domElement; - - scope instanceof THREE.OrbitControls && - rotateLeft((2 * Math.PI * rotateDelta.x) / element.clientHeight); // yes, height - - rotateUp((2 * Math.PI * rotateDelta.y) / element.clientHeight); - - rotateStart.copy(rotateEnd); - } - - function handleTouchMovePan(event) { - if(event.touches.length<1){ - return - } - if (event.touches.length == 1) { - panEnd.set(event.touches[0].pageX, event.touches[0].pageY); - } else { - var x = 0.5 * (event.touches[0].pageX + event.touches[1].pageX); - var y = 0.5 * (event.touches[0].pageY + event.touches[1].pageY); - - panEnd.set(x, y); - } - - panDelta.subVectors(panEnd, panStart).multiplyScalar(scope.panSpeed); - - pan(panDelta.x, panDelta.y); - - panStart.copy(panEnd); - } - - function handleTouchMoveDolly(event) { - if(event.touches.length<2){ - return - } - var dx = event.touches[0].pageX - event.touches[1].pageX; - var dy = event.touches[0].pageY - event.touches[1].pageY; - - var distance = Math.sqrt(dx * dx + dy * dy); - - dollyEnd.set(0, distance); - - dollyDelta.set(0, Math.pow(dollyEnd.y / dollyStart.y, scope.zoomSpeed)); - - dollyIn(dollyDelta.y); - - dollyStart.copy(dollyEnd); - } - - function handleTouchMoveDollyPan(event) { - if (scope.enableZoom) handleTouchMoveDolly(event); - - if (scope.enablePan) handleTouchMovePan(event); - } - - function handleTouchMoveDollyRotate(event) { - if (scope.enableZoom) handleTouchMoveDolly(event); - - if (scope.enableRotate) handleTouchMoveRotate(event); - } - - function handleTouchEnd(/*event*/) { - // no-op - } - - // - // event handlers - FSM: listen for events and reset state - // - - function onMouseDown(event) { - if (scope.enabled === false) return; - - // Prevent the browser from scrolling. - - event.preventDefault(); - - // Manually set the focus since calling preventDefault above - // prevents the browser from setting it automatically. - - scope.domElement.focus ? scope.domElement.focus() : window.focus(); - - switch (event.button) { - case 0: - switch (scope.mouseButtons.LEFT) { - case THREE.MOUSE.ROTATE: - if (event.ctrlKey || event.metaKey || event.shiftKey) { - if (scope.enablePan === false) return; - - handleMouseDownPan(event); - - state = STATE.PAN; - } else { - if (scope.enableRotate === false) return; - - handleMouseDownRotate(event); - - state = STATE.ROTATE; - } - - break; - - case THREE.MOUSE.PAN: - if (event.ctrlKey || event.metaKey || event.shiftKey) { - if (scope.enableRotate === false) return; - - handleMouseDownRotate(event); - - state = STATE.ROTATE; - } else { - if (scope.enablePan === false) return; - - handleMouseDownPan(event); - - state = STATE.PAN; - } - - break; - - default: - state = STATE.NONE; - } - - break; - - case 1: - switch (scope.mouseButtons.MIDDLE) { - case THREE.MOUSE.DOLLY: - if (scope.enableZoom === false) return; - - handleMouseDownDolly(event); - - state = STATE.DOLLY; - - break; - - default: - state = STATE.NONE; - } - - break; - - case 2: - switch (scope.mouseButtons.RIGHT) { - case THREE.MOUSE.ROTATE: - if (scope.enableRotate === false) return; - - handleMouseDownRotate(event); - - state = STATE.ROTATE; - - break; - - case THREE.MOUSE.PAN: - if (scope.enablePan === false) return; - - handleMouseDownPan(event); - - state = STATE.PAN; - - break; - - default: - state = STATE.NONE; - } - - break; - } - - if (state !== STATE.NONE) { - document.addEventListener("mousemove", onMouseMove, false); - document.addEventListener("mouseup", onMouseUp, false); - - scope.dispatchEvent(startEvent); - } - } - - function onMouseMove(event) { - if (scope.enabled === false) return; - - event.preventDefault(); - - switch (state) { - case STATE.ROTATE: - if (scope.enableRotate === false) return; - - handleMouseMoveRotate(event); - - break; - - case STATE.DOLLY: - if (scope.enableZoom === false) return; - - handleMouseMoveDolly(event); - - break; - - case STATE.PAN: - if (scope.enablePan === false) return; - - handleMouseMovePan(event); - - break; - } - } - - function onMouseUp(event) { - if (scope.enabled === false) return; - - handleMouseUp(event); - - document.removeEventListener("mousemove", onMouseMove, false); - document.removeEventListener("mouseup", onMouseUp, false); - - scope.dispatchEvent(endEvent); - - state = STATE.NONE; - } - - function onMouseWheel(event) { - if (scope.enabled === false || scope.enableZoom === false || (state !== STATE.NONE && state !== STATE.ROTATE)) - return; - - event.preventDefault(); - event.stopPropagation(); - - scope.dispatchEvent(startEvent); - - handleMouseWheel(event); - - scope.dispatchEvent(endEvent); - if(Map_QM){ - Map_QM.collLabel(); - Map_QM.disPlayEvent(); - } - } - - function onKeyDown(event) { - if ( - scope.enabled === false || - scope.enableKeys === false || - scope.enablePan === false - ) - return; - - handleKeyDown(event); - } - - function onTouchStart(event) { - if (scope.enabled === false) return; - - //event.preventDefault(); - - switch (event.touches.length) { - case 1: - switch (scope.touches.ONE) { - case THREE.TOUCH.ROTATE: - if (scope.enableRotate === false) return; - - handleTouchStartRotate(event); - - state = STATE.TOUCH_ROTATE; - - break; - - case THREE.TOUCH.PAN: - if (scope.enablePan === false) return; - - handleTouchStartPan(event); - - state = STATE.TOUCH_PAN; - - break; - - default: - state = STATE.NONE; - } - - break; - - case 2: - switch (scope.touches.TWO) { - case THREE.TOUCH.DOLLY_PAN: - if (scope.enableZoom === false && scope.enablePan === false) return; - - handleTouchStartDollyPan(event); - - state = STATE.TOUCH_DOLLY_PAN; - - break; - - case THREE.TOUCH.DOLLY_ROTATE: - if (scope.enableZoom === false && scope.enableRotate === false) - return; - - handleTouchStartDollyRotate(event); - - state = STATE.TOUCH_DOLLY_ROTATE; - - break; - - default: - state = STATE.NONE; - } - - break; - - default: - state = STATE.NONE; - } - - if (state !== STATE.NONE) { - scope.dispatchEvent(startEvent); - } - } - - function onTouchMove(event) { - if (scope.enabled === false) return; - - event.preventDefault(); - event.stopPropagation(); - - switch (state) { - case STATE.TOUCH_ROTATE: - if (scope.enableRotate === false) return; - - handleTouchMoveRotate(event); - - scope.update(); - - break; - - case STATE.TOUCH_PAN: - if (scope.enablePan === false) return; - - handleTouchMovePan(event); - - scope.update(); - - break; - - case STATE.TOUCH_DOLLY_PAN: - if (scope.enableZoom === false && scope.enablePan === false) return; - - handleTouchMoveDollyPan(event); - - scope.update(); - - break; - - case STATE.TOUCH_DOLLY_ROTATE: - if (scope.enableZoom === false && scope.enableRotate === false) return; - - handleTouchMoveDollyRotate(event); - - scope.update(); - - break; - - default: - state = STATE.NONE; - } - if(Map_QM){ - Map_QM.disPlayEvent(); - } - } - - function onTouchEnd(event) { - if (scope.enabled === false) return; - - handleTouchEnd(event); - - scope.dispatchEvent(endEvent); - if(Map_QM){ - Map_QM.collLabel(); - Map_QM.disPlayEvent(); - } - state = STATE.NONE; - } - - function onContextMenu(event) { - if (scope.enabled === false) return; - - event.preventDefault(); - } - - // - - scope.domElement.addEventListener("contextmenu", onContextMenu, false); - - scope.domElement.addEventListener("mousedown", onMouseDown, false); - scope.domElement.addEventListener("wheel", onMouseWheel, false); - - scope.domElement.addEventListener("touchstart", onTouchStart, false); - scope.domElement.addEventListener("touchend", onTouchEnd, false); - scope.domElement.addEventListener("touchmove", onTouchMove, false); - - window.addEventListener("keydown", onKeyDown, false); - // force an update at start - this.update(); - }; - - THREE.OrbitControls.prototype = Object.create(THREE.EventDispatcher.prototype); - THREE.OrbitControls.prototype.constructor = THREE.OrbitControls; - -//////////////////////////////// TweenMax ///////////////// -var _gsScope="undefined"!=typeof module&&module.exports&&"undefined"!=typeof global?global:this||window;(_gsScope._gsQueue||(_gsScope._gsQueue=[])).push(function(){"use strict";_gsScope._gsDefine("TweenMax",["core.Animation","core.SimpleTimeline","TweenLite"],function(a,b,c){var d=function(a){var b,c=[],d=a.length;for(b=0;b!==d;c.push(a[b++]));return c},e=function(a,b,c){var d,e,f=a.cycle;for(d in f)e=f[d],a[d]="function"==typeof e?e(c,b[c],b):e[c%e.length];delete a.cycle},f=function(a){if("function"==typeof a)return a;var b="object"==typeof a?a:{each:a},c=b.ease,d=b.from||0,e=b.base||0,f={},g=isNaN(d),h=b.axis,i={center:.5,end:1}[d]||0;return function(a,j,k){var l,m,n,o,p,q,r,s,t,u=(k||b).length,v=f[u];if(!v){if(t="auto"===b.grid?0:(b.grid||[1/0])[0],!t){for(r=-(1/0);r<(r=k[t++].getBoundingClientRect().left)&&u>t;);t--}for(v=f[u]=[],l=g?Math.min(t,u)*i-.5:d%t,m=g?u*i/t-.5:d/t|0,r=0,s=1/0,q=0;u>q;q++)n=q%t-l,o=m-(q/t|0),v[q]=p=h?Math.abs("y"===h?o:n):Math.sqrt(n*n+o*o),p>r&&(r=p),s>p&&(s=p);v.max=r-s,v.min=s,v.v=u=b.amount||b.each*(t>u?u:h?"y"===h?u/t:t:Math.max(t,u/t))||0,v.b=0>u?e-u:e}return u=(v[a]-v.min)/v.max,v.b+(c?c.getRatio(u):u)*v.v}},g=function(a,b,d){c.call(this,a,b,d),this._cycle=0,this._yoyo=this.vars.yoyo===!0||!!this.vars.yoyoEase,this._repeat=this.vars.repeat||0,this._repeatDelay=this.vars.repeatDelay||0,this._repeat&&this._uncache(!0),this.render=g.prototype.render},h=1e-8,i=c._internals,j=i.isSelector,k=i.isArray,l=g.prototype=c.to({},.1,{}),m=[];g.version="2.1.2",l.constructor=g,l.kill()._gc=!1,g.killTweensOf=g.killDelayedCallsTo=c.killTweensOf,g.getTweensOf=c.getTweensOf,g.lagSmoothing=c.lagSmoothing,g.ticker=c.ticker,g.render=c.render,g.distribute=f,l.invalidate=function(){return this._yoyo=this.vars.yoyo===!0||!!this.vars.yoyoEase,this._repeat=this.vars.repeat||0,this._repeatDelay=this.vars.repeatDelay||0,this._yoyoEase=null,this._uncache(!0),c.prototype.invalidate.call(this)},l.updateTo=function(a,b){var d,e=this,f=e.ratio,g=e.vars.immediateRender||a.immediateRender;b&&e._startTime.998){var h=e._totalTime;e.render(0,!0,!1),e._initted=!1,e.render(h,!0,!1)}else if(e._initted=!1,e._init(),e._time>0||g)for(var i,j=1/(1-f),k=e._firstPT;k;)i=k.s+k.c,k.c*=j,k.s=i-k.c,k=k._next;return e},l.render=function(a,b,d){this._initted||0===this._duration&&this.vars.repeat&&this.invalidate();var e,f,g,j,k,l,m,n,o,p=this,q=p._dirty?p.totalDuration():p._totalDuration,r=p._time,s=p._totalTime,t=p._cycle,u=p._duration,v=p._rawPrevTime;if(a>=q-h&&a>=0?(p._totalTime=q,p._cycle=p._repeat,p._yoyo&&0!==(1&p._cycle)?(p._time=0,p.ratio=p._ease._calcEnd?p._ease.getRatio(0):0):(p._time=u,p.ratio=p._ease._calcEnd?p._ease.getRatio(1):1),p._reversed||(e=!0,f="onComplete",d=d||p._timeline.autoRemoveChildren),0===u&&(p._initted||!p.vars.lazy||d)&&(p._startTime===p._timeline._duration&&(a=0),(0>v||0>=a&&a>=-h||v===h&&"isPause"!==p.data)&&v!==a&&(d=!0,v>h&&(f="onReverseComplete")),p._rawPrevTime=n=!b||a||v===a?a:h)):h>a?(p._totalTime=p._time=p._cycle=0,p.ratio=p._ease._calcEnd?p._ease.getRatio(0):0,(0!==s||0===u&&v>0)&&(f="onReverseComplete",e=p._reversed),a>-h?a=0:0>a&&(p._active=!1,0===u&&(p._initted||!p.vars.lazy||d)&&(v>=0&&(d=!0),p._rawPrevTime=n=!b||a||v===a?a:h)),p._initted||(d=!0)):(p._totalTime=p._time=a,0!==p._repeat&&(j=u+p._repeatDelay,p._cycle=p._totalTime/j>>0,0!==p._cycle&&p._cycle===p._totalTime/j&&a>=s&&p._cycle--,p._time=p._totalTime-p._cycle*j,p._yoyo&&0!==(1&p._cycle)&&(p._time=u-p._time,o=p._yoyoEase||p.vars.yoyoEase,o&&(p._yoyoEase||(o!==!0||p._initted?p._yoyoEase=o=o===!0?p._ease:o instanceof Ease?o:Ease.map[o]:(o=p.vars.ease,p._yoyoEase=o=o?o instanceof Ease?o:"function"==typeof o?new Ease(o,p.vars.easeParams):Ease.map[o]||c.defaultEase:c.defaultEase)),p.ratio=o?1-o.getRatio((u-p._time)/u):0)),p._time>u?p._time=u:p._time<0&&(p._time=0)),p._easeType&&!o?(k=p._time/u,l=p._easeType,m=p._easePower,(1===l||3===l&&k>=.5)&&(k=1-k),3===l&&(k*=2),1===m?k*=k:2===m?k*=k*k:3===m?k*=k*k*k:4===m&&(k*=k*k*k*k),p.ratio=1===l?1-k:2===l?k:p._time/u<.5?k/2:1-k/2):o||(p.ratio=p._ease.getRatio(p._time/u))),r===p._time&&!d&&t===p._cycle)return void(s!==p._totalTime&&p._onUpdate&&(b||p._callback("onUpdate")));if(!p._initted){if(p._init(),!p._initted||p._gc)return;if(!d&&p._firstPT&&(p.vars.lazy!==!1&&p._duration||p.vars.lazy&&!p._duration))return p._time=r,p._totalTime=s,p._rawPrevTime=v,p._cycle=t,i.lazyTweens.push(p),void(p._lazy=[a,b]);!p._time||e||o?e&&this._ease._calcEnd&&!o&&(p.ratio=p._ease.getRatio(0===p._time?0:1)):p.ratio=p._ease.getRatio(p._time/u)}for(p._lazy!==!1&&(p._lazy=!1),p._active||!p._paused&&p._time!==r&&a>=0&&(p._active=!0),0===s&&(2===p._initted&&a>0&&p._init(),p._startAt&&(a>=0?p._startAt.render(a,!0,d):f||(f="_dummyGS")),p.vars.onStart&&(0!==p._totalTime||0===u)&&(b||p._callback("onStart"))),g=p._firstPT;g;)g.f?g.t[g.p](g.c*p.ratio+g.s):g.t[g.p]=g.c*p.ratio+g.s,g=g._next;p._onUpdate&&(0>a&&p._startAt&&p._startTime&&p._startAt.render(a,!0,d),b||(p._totalTime!==s||f)&&p._callback("onUpdate")),p._cycle!==t&&(b||p._gc||p.vars.onRepeat&&p._callback("onRepeat")),f&&(!p._gc||d)&&(0>a&&p._startAt&&!p._onUpdate&&p._startTime&&p._startAt.render(a,!0,d),e&&(p._timeline.autoRemoveChildren&&p._enabled(!1,!1),p._active=!1),!b&&p.vars[f]&&p._callback(f),0===u&&p._rawPrevTime===h&&n!==h&&(p._rawPrevTime=0))},g.to=function(a,b,c){return new g(a,b,c)},g.from=function(a,b,c){return c.runBackwards=!0,c.immediateRender=0!=c.immediateRender,new g(a,b,c)},g.fromTo=function(a,b,c,d){return d.startAt=c,d.immediateRender=0!=d.immediateRender&&0!=c.immediateRender,new g(a,b,d)},g.staggerTo=g.allTo=function(a,b,h,i,l,n,o){var p,q,r,s,t=[],u=f(h.stagger||i),v=h.cycle,w=(h.startAt||m).cycle;for(k(a)||("string"==typeof a&&(a=c.selector(a)||a),j(a)&&(a=d(a))),a=a||[],p=a.length-1,r=0;p>=r;r++){q={};for(s in h)q[s]=h[s];if(v&&(e(q,a,r),null!=q.duration&&(b=q.duration,delete q.duration)),w){w=q.startAt={};for(s in h.startAt)w[s]=h.startAt[s];e(q.startAt,a,r)}q.delay=u(r,a[r],a)+(q.delay||0),r===p&&l&&(q.onComplete=function(){h.onComplete&&h.onComplete.apply(h.onCompleteScope||this,arguments),l.apply(o||h.callbackScope||this,n||m)}),t[r]=new g(a[r],b,q)}return t},g.staggerFrom=g.allFrom=function(a,b,c,d,e,f,h){return c.runBackwards=!0,c.immediateRender=0!=c.immediateRender,g.staggerTo(a,b,c,d,e,f,h)},g.staggerFromTo=g.allFromTo=function(a,b,c,d,e,f,h,i){return d.startAt=c,d.immediateRender=0!=d.immediateRender&&0!=c.immediateRender,g.staggerTo(a,b,d,e,f,h,i)},g.delayedCall=function(a,b,c,d,e){return new g(b,0,{delay:a,onComplete:b,onCompleteParams:c,callbackScope:d,onReverseComplete:b,onReverseCompleteParams:c,immediateRender:!1,useFrames:e,overwrite:0})},g.set=function(a,b){return new g(a,0,b)},g.isTweening=function(a){return c.getTweensOf(a,!0).length>0};var n=function(a,b){for(var d=[],e=0,f=a._first;f;)f instanceof c?d[e++]=f:(b&&(d[e++]=f),d=d.concat(n(f,b)),e=d.length),f=f._next;return d},o=g.getAllTweens=function(b){return n(a._rootTimeline,b).concat(n(a._rootFramesTimeline,b))};g.killAll=function(a,c,d,e){null==c&&(c=!0),null==d&&(d=!0);var f,g,h,i=o(0!=e),j=i.length,k=c&&d&&e;for(h=0;j>h;h++)g=i[h],(k||g instanceof b||(f=g.target===g.vars.onComplete)&&d||c&&!f)&&(a?g.totalTime(g._reversed?0:g.totalDuration()):g._enabled(!1,!1))},g.killChildTweensOf=function(a,b){if(null!=a){var e,f,h,l,m,n=i.tweenLookup;if("string"==typeof a&&(a=c.selector(a)||a),j(a)&&(a=d(a)),k(a))for(l=a.length;--l>-1;)g.killChildTweensOf(a[l],b);else{e=[];for(h in n)for(f=n[h].target.parentNode;f;)f===a&&(e=e.concat(n[h].tweens)),f=f.parentNode;for(m=e.length,l=0;m>l;l++)b&&e[l].totalTime(e[l].totalDuration()),e[l]._enabled(!1,!1)}}};var p=function(a,c,d,e){c=c!==!1,d=d!==!1,e=e!==!1;for(var f,g,h=o(e),i=c&&d&&e,j=h.length;--j>-1;)g=h[j],(i||g instanceof b||(f=g.target===g.vars.onComplete)&&d||c&&!f)&&g.paused(a)};return g.pauseAll=function(a,b,c){p(!0,a,b,c)},g.resumeAll=function(a,b,c){p(!1,a,b,c)},g.globalTimeScale=function(b){var d=a._rootTimeline,e=c.ticker.time;return arguments.length?(b=b||h,d._startTime=e-(e-d._startTime)*d._timeScale/b,d=a._rootFramesTimeline,e=c.ticker.frame,d._startTime=e-(e-d._startTime)*d._timeScale/b,d._timeScale=a._rootTimeline._timeScale=b,b):d._timeScale},l.progress=function(a,b){return arguments.length?this.totalTime(this.duration()*(this._yoyo&&0!==(1&this._cycle)?1-a:a)+this._cycle*(this._duration+this._repeatDelay),b):this._time/this.duration()},l.totalProgress=function(a,b){return arguments.length?this.totalTime(this.totalDuration()*a,b):this._totalTime/this.totalDuration()},l.time=function(a,b){if(!arguments.length)return this._time;this._dirty&&this.totalDuration();var c=this._duration,d=this._cycle,e=d*(c+this._repeatDelay);return a>c&&(a=c),this.totalTime(this._yoyo&&1&d?c-a+e:this._repeat?a+e:a,b)},l.duration=function(b){return arguments.length?a.prototype.duration.call(this,b):this._duration},l.totalDuration=function(a){return arguments.length?-1===this._repeat?this:this.duration((a-this._repeat*this._repeatDelay)/(this._repeat+1)):(this._dirty&&(this._totalDuration=-1===this._repeat?999999999999:this._duration*(this._repeat+1)+this._repeatDelay*this._repeat,this._dirty=!1),this._totalDuration)},l.repeat=function(a){return arguments.length?(this._repeat=a,this._uncache(!0)):this._repeat},l.repeatDelay=function(a){return arguments.length?(this._repeatDelay=a,this._uncache(!0)):this._repeatDelay},l.yoyo=function(a){return arguments.length?(this._yoyo=a,this):this._yoyo},g},!0),_gsScope._gsDefine("TimelineLite",["core.Animation","core.SimpleTimeline","TweenLite"],function(a,b,c){var d=function(a){b.call(this,a);var c,d,e=this,f=e.vars;e._labels={},e.autoRemoveChildren=!!f.autoRemoveChildren,e.smoothChildTiming=!!f.smoothChildTiming,e._sortChildren=!0,e._onUpdate=f.onUpdate;for(d in f)c=f[d],i(c)&&-1!==c.join("").indexOf("{self}")&&(f[d]=e._swapSelfInParams(c));i(f.tweens)&&e.add(f.tweens,0,f.align,f.stagger)},e=1e-8,f=c._internals,g=d._internals={},h=f.isSelector,i=f.isArray,j=f.lazyTweens,k=f.lazyRender,l=_gsScope._gsDefine.globals,m=function(a){var b,c={};for(b in a)c[b]=a[b];return c},n=function(a,b,c){var d,e,f=a.cycle;for(d in f)e=f[d],a[d]="function"==typeof e?e(c,b[c],b):e[c%e.length];delete a.cycle},o=g.pauseCallback=function(){},p=function(a){var b,c=[],d=a.length;for(b=0;b!==d;c.push(a[b++]));return c},q=function(a,b,c,d){var e="immediateRender";return e in b||(b[e]=!(c&&c[e]===!1||d)),b},r=function(a){if("function"==typeof a)return a;var b="object"==typeof a?a:{each:a},c=b.ease,d=b.from||0,e=b.base||0,f={},g=isNaN(d),h=b.axis,i={center:.5,end:1}[d]||0;return function(a,j,k){var l,m,n,o,p,q,r,s,t,u=(k||b).length,v=f[u];if(!v){if(t="auto"===b.grid?0:(b.grid||[1/0])[0],!t){for(r=-(1/0);r<(r=k[t++].getBoundingClientRect().left)&&u>t;);t--}for(v=f[u]=[],l=g?Math.min(t,u)*i-.5:d%t,m=g?u*i/t-.5:d/t|0,r=0,s=1/0,q=0;u>q;q++)n=q%t-l,o=m-(q/t|0),v[q]=p=h?Math.abs("y"===h?o:n):Math.sqrt(n*n+o*o),p>r&&(r=p),s>p&&(s=p);v.max=r-s,v.min=s,v.v=u=b.amount||b.each*(t>u?u:h?"y"===h?u/t:t:Math.max(t,u/t))||0,v.b=0>u?e-u:e}return u=(v[a]-v.min)/v.max,v.b+(c?c.getRatio(u):u)*v.v}},s=d.prototype=new b;return d.version="2.1.2",d.distribute=r,s.constructor=d,s.kill()._gc=s._forcingPlayhead=s._hasPause=!1,s.to=function(a,b,d,e){var f=d.repeat&&l.TweenMax||c;return b?this.add(new f(a,b,d),e):this.set(a,d,e)},s.from=function(a,b,d,e){return this.add((d.repeat&&l.TweenMax||c).from(a,b,q(this,d)),e)},s.fromTo=function(a,b,d,e,f){var g=e.repeat&&l.TweenMax||c;return e=q(this,e,d),b?this.add(g.fromTo(a,b,d,e),f):this.set(a,e,f)},s.staggerTo=function(a,b,e,f,g,i,j,k){var l,o,q=new d({onComplete:i,onCompleteParams:j,callbackScope:k,smoothChildTiming:this.smoothChildTiming}),s=r(e.stagger||f),t=e.startAt,u=e.cycle;for("string"==typeof a&&(a=c.selector(a)||a),a=a||[],h(a)&&(a=p(a)),o=0;of&&(e=1),i.add(g,f)),g=h;return j.add(i,0),e&&i.totalDuration(),i},s.add=function(e,f,g,h){var j,k,l,m,n,o,p=this;if("number"!=typeof f&&(f=p._parseTimeOrLabel(f,0,!0,e)),!(e instanceof a)){if(e instanceof Array||e&&e.push&&i(e)){for(g=g||"normal",h=h||0,j=f,k=e.length,l=0;k>l;l++)i(m=e[l])&&(m=new d({tweens:m})),p.add(m,j),"string"!=typeof m&&"function"!=typeof m&&("sequence"===g?j=m._startTime+m.totalDuration()/m._timeScale:"start"===g&&(m._startTime-=m.delay())),j+=h;return p._uncache(!0)}if("string"==typeof e)return p.addLabel(e,f);if("function"!=typeof e)throw"Cannot add "+e+" into the timeline; it is not a tween, timeline, function, or string.";e=c.delayedCall(0,e)}if(b.prototype.add.call(p,e,f),(e._time||!e._duration&&e._initted)&&(j=(p.rawTime()-e._startTime)*e._timeScale,(!e._duration||Math.abs(Math.max(0,Math.min(e.totalDuration(),j)))-e._totalTime>1e-5)&&e.render(j,!1,!1)),(p._gc||p._time===p._duration)&&!p._paused&&p._duratione._startTime;n._timeline;)o&&n._timeline.smoothChildTiming?n.totalTime(n._totalTime,!0):n._gc&&n._enabled(!0,!1),n=n._timeline;return p},s.remove=function(b){if(b instanceof a){this._remove(b,!1);var c=b._timeline=b.vars.useFrames?a._rootFramesTimeline:a._rootTimeline;return b._startTime=(b._paused?b._pauseTime:c._time)-(b._reversed?b.totalDuration()-b._totalTime:b._totalTime)/b._timeScale,this}if(b instanceof Array||b&&b.push&&i(b)){for(var d=b.length;--d>-1;)this.remove(b[d]);return this}return"string"==typeof b?this.removeLabel(b):this.kill(null,b)},s._remove=function(a,c){b.prototype._remove.call(this,a,c);var d=this._last;return d?this._time>this.duration()&&(this._time=this._duration,this._totalTime=this._totalDuration):this._time=this._totalTime=this._duration=this._totalDuration=0,this},s.append=function(a,b){return this.add(a,this._parseTimeOrLabel(null,b,!0,a))},s.insert=s.insertMultiple=function(a,b,c,d){return this.add(a,b||0,c,d)},s.appendMultiple=function(a,b,c,d){return this.add(a,this._parseTimeOrLabel(null,b,!0,a),c,d)},s.addLabel=function(a,b){return this._labels[a]=this._parseTimeOrLabel(b),this},s.addPause=function(a,b,d,e){var f=c.delayedCall(0,o,d,e||this);return f.vars.onComplete=f.vars.onReverseComplete=b,f.data="isPause",this._hasPause=!0,this.add(f,a)},s.removeLabel=function(a){return delete this._labels[a],this},s.getLabelTime=function(a){return null!=this._labels[a]?this._labels[a]:-1},s._parseTimeOrLabel=function(b,c,d,e){var f,g;if(e instanceof a&&e.timeline===this)this.remove(e);else if(e&&(e instanceof Array||e.push&&i(e)))for(g=e.length;--g>-1;)e[g]instanceof a&&e[g].timeline===this&&this.remove(e[g]);if(f="number"!=typeof b||c?this.duration()>99999999999?this.recent().endTime(!1):this._duration:0,"string"==typeof c)return this._parseTimeOrLabel(c,d&&"number"==typeof b&&null==this._labels[c]?b-f:0,d);if(c=c||0,"string"!=typeof b||!isNaN(b)&&null==this._labels[b])null==b&&(b=f);else{if(g=b.indexOf("="),-1===g)return null==this._labels[b]?d?this._labels[b]=f+c:c:this._labels[b]+c;c=parseInt(b.charAt(g-1)+"1",10)*Number(b.substr(g+1)),b=g>1?this._parseTimeOrLabel(b.substr(0,g-1),0,d):f}return Number(b)+c},s.seek=function(a,b){return this.totalTime("number"==typeof a?a:this._parseTimeOrLabel(a),b!==!1)},s.stop=function(){return this.paused(!0)},s.gotoAndPlay=function(a,b){return this.play(a,b)},s.gotoAndStop=function(a,b){return this.pause(a,b)},s.render=function(a,b,c){this._gc&&this._enabled(!0,!1);var d,f,g,h,i,l,m,n,o=this,p=o._time,q=o._dirty?o.totalDuration():o._totalDuration,r=o._startTime,s=o._timeScale,t=o._paused;if(p!==o._time&&(a+=o._time-p),a>=q-e&&a>=0)o._totalTime=o._time=q,o._reversed||o._hasPausedChild()||(f=!0,h="onComplete",i=!!o._timeline.autoRemoveChildren,0===o._duration&&(0>=a&&a>=-e||o._rawPrevTime<0||o._rawPrevTime===e)&&o._rawPrevTime!==a&&o._first&&(i=!0,o._rawPrevTime>e&&(h="onReverseComplete"))),o._rawPrevTime=o._duration||!b||a||o._rawPrevTime===a?a:e,a=q+1e-4;else if(e>a)if(o._totalTime=o._time=0,a>-e&&(a=0),(0!==p||0===o._duration&&o._rawPrevTime!==e&&(o._rawPrevTime>0||0>a&&o._rawPrevTime>=0))&&(h="onReverseComplete",f=o._reversed),0>a)o._active=!1,o._timeline.autoRemoveChildren&&o._reversed?(i=f=!0,h="onReverseComplete"):o._rawPrevTime>=0&&o._first&&(i=!0),o._rawPrevTime=a;else{if(o._rawPrevTime=o._duration||!b||a||o._rawPrevTime===a?a:e,0===a&&f)for(d=o._first;d&&0===d._startTime;)d._duration||(f=!1),d=d._next;a=0,o._initted||(i=!0)}else{if(o._hasPause&&!o._forcingPlayhead&&!b){if(a>=p)for(d=o._first;d&&d._startTime<=a&&!l;)d._duration||"isPause"!==d.data||d.ratio||0===d._startTime&&0===o._rawPrevTime||(l=d),d=d._next;else for(d=o._last;d&&d._startTime>=a&&!l;)d._duration||"isPause"===d.data&&d._rawPrevTime>0&&(l=d),d=d._prev;l&&(o._time=o._totalTime=a=l._startTime,n=o._startTime+a/o._timeScale)}o._totalTime=o._time=o._rawPrevTime=a}if(o._time!==p&&o._first||c||i||l){if(o._initted||(o._initted=!0),o._active||!o._paused&&o._time!==p&&a>0&&(o._active=!0),0===p&&o.vars.onStart&&(0===o._time&&o._duration||b||o._callback("onStart")),m=o._time,m>=p)for(d=o._first;d&&(g=d._next,m===o._time&&(!o._paused||t));)(d._active||d._startTime<=m&&!d._paused&&!d._gc)&&(l===d&&(o.pause(),o._pauseTime=n),d._reversed?d.render((d._dirty?d.totalDuration():d._totalDuration)-(a-d._startTime)*d._timeScale,b,c):d.render((a-d._startTime)*d._timeScale,b,c)),d=g;else for(d=o._last;d&&(g=d._prev,m===o._time&&(!o._paused||t));){if(d._active||d._startTime<=p&&!d._paused&&!d._gc){if(l===d){for(l=d._prev;l&&l.endTime()>o._time;)l.render(l._reversed?l.totalDuration()-(a-l._startTime)*l._timeScale:(a-l._startTime)*l._timeScale,b,c),l=l._prev;l=null,o.pause(),o._pauseTime=n}d._reversed?d.render((d._dirty?d.totalDuration():d._totalDuration)-(a-d._startTime)*d._timeScale,b,c):d.render((a-d._startTime)*d._timeScale,b,c)}d=g}o._onUpdate&&(b||(j.length&&k(),o._callback("onUpdate"))),h&&(o._gc||(r===o._startTime||s!==o._timeScale)&&(0===o._time||q>=o.totalDuration())&&(f&&(j.length&&k(),o._timeline.autoRemoveChildren&&o._enabled(!1,!1),o._active=!1),!b&&o.vars[h]&&o._callback(h)))}},s._hasPausedChild=function(){for(var a=this._first;a;){if(a._paused||a instanceof d&&a._hasPausedChild())return!0;a=a._next}return!1},s.getChildren=function(a,b,d,e){e=e||-9999999999;for(var f=[],g=this._first,h=0;g;)g._startTime-1;)(d[e].timeline===this||b&&this._contains(d[e]))&&(g[h++]=d[e]);return f&&this._enabled(!1,!0),g},s.recent=function(){return this._recent},s._contains=function(a){for(var b=a.timeline;b;){if(b===this)return!0;b=b.timeline}return!1},s.shiftChildren=function(a,b,c){c=c||0;for(var d,e=this._first,f=this._labels;e;)e._startTime>=c&&(e._startTime+=a),e=e._next;if(b)for(d in f)f[d]>=c&&(f[d]+=a);return this._uncache(!0)},s._kill=function(a,b){if(!a&&!b)return this._enabled(!1,!1);for(var c=b?this.getTweensOf(b):this.getChildren(!0,!0,!1),d=c.length,e=!1;--d>-1;)c[d]._kill(a,b)&&(e=!0);return e},s.clear=function(a){var b=this.getChildren(!1,!0,!0),c=b.length;for(this._time=this._totalTime=0;--c>-1;)b[c]._enabled(!1,!1);return a!==!1&&(this._labels={}),this._uncache(!0)},s.invalidate=function(){for(var b=this._first;b;)b.invalidate(),b=b._next;return a.prototype.invalidate.call(this)},s._enabled=function(a,c){if(a===this._gc)for(var d=this._first;d;)d._enabled(a,!0),d=d._next;return b.prototype._enabled.call(this,a,c)},s.totalTime=function(b,c,d){this._forcingPlayhead=!0;var e=a.prototype.totalTime.apply(this,arguments);return this._forcingPlayhead=!1,e},s.duration=function(a){return arguments.length?(0!==this.duration()&&0!==a&&this.timeScale(this._duration/a),this):(this._dirty&&this.totalDuration(),this._duration)},s.totalDuration=function(a){if(!arguments.length){if(this._dirty){for(var b,c,d=0,e=this,f=e._last,g=999999999999;f;)b=f._prev,f._dirty&&f.totalDuration(),f._startTime>g&&e._sortChildren&&!f._paused&&!e._calculatingDuration?(e._calculatingDuration=1,e.add(f,f._startTime-f._delay),e._calculatingDuration=0):g=f._startTime,f._startTime<0&&!f._paused&&(d-=f._startTime,e._timeline.smoothChildTiming&&(e._startTime+=f._startTime/e._timeScale,e._time-=f._startTime,e._totalTime-=f._startTime,e._rawPrevTime-=f._startTime),e.shiftChildren(-f._startTime,!1,-9999999999),g=0),c=f._startTime+f._totalDuration/f._timeScale,c>d&&(d=c),f=b;e._duration=e._totalDuration=d,e._dirty=!1}return this._totalDuration}return a&&this.totalDuration()?this.timeScale(this._totalDuration/a):this},s.paused=function(b){if(b===!1&&this._paused)for(var c=this._first;c;)c._startTime===this._time&&"isPause"===c.data&&(c._rawPrevTime=0),c=c._next;return a.prototype.paused.apply(this,arguments)},s.usesFrames=function(){for(var b=this._timeline;b._timeline;)b=b._timeline;return b===a._rootFramesTimeline},s.rawTime=function(a){return a&&(this._paused||this._repeat&&this.time()>0&&this.totalProgress()<1)?this._totalTime%(this._duration+this._repeatDelay):this._paused?this._totalTime:(this._timeline.rawTime(a)-this._startTime)*this._timeScale},d},!0),_gsScope._gsDefine("TimelineMax",["TimelineLite","TweenLite","easing.Ease"],function(a,b,c){var d=function(b){a.call(this,b),this._repeat=this.vars.repeat||0,this._repeatDelay=this.vars.repeatDelay||0,this._cycle=0,this._yoyo=!!this.vars.yoyo,this._dirty=!0},e=1e-8,f=b._internals,g=f.lazyTweens,h=f.lazyRender,i=_gsScope._gsDefine.globals,j=new c(null,null,1,0),k=d.prototype=new a;return k.constructor=d,k.kill()._gc=!1,d.version="2.1.2",k.invalidate=function(){return this._yoyo=!!this.vars.yoyo,this._repeat=this.vars.repeat||0,this._repeatDelay=this.vars.repeatDelay||0,this._uncache(!0),a.prototype.invalidate.call(this)},k.addCallback=function(a,c,d,e){return this.add(b.delayedCall(0,a,d,e),c)},k.removeCallback=function(a,b){if(a)if(null==b)this._kill(null,a);else for(var c=this.getTweensOf(a,!1),d=c.length,e=this._parseTimeOrLabel(b);--d>-1;)c[d]._startTime===e&&c[d]._enabled(!1,!1);return this},k.removePause=function(b){return this.removeCallback(a._internals.pauseCallback,b)},k.tweenTo=function(a,c){c=c||{};var d,e,f,g={ease:j,useFrames:this.usesFrames(),immediateRender:!1,lazy:!1},h=c.repeat&&i.TweenMax||b;for(e in c)g[e]=c[e];return g.time=this._parseTimeOrLabel(a),d=Math.abs(Number(g.time)-this._time)/this._timeScale||.001,f=new h(this,d,g),g.onStart=function(){f.target.paused(!0),f.vars.time===f.target.time()||d!==f.duration()||f.isFromTo||f.duration(Math.abs(f.vars.time-f.target.time())/f.target._timeScale).render(f.time(),!0,!0),c.onStart&&c.onStart.apply(c.onStartScope||c.callbackScope||f,c.onStartParams||[])},f},k.tweenFromTo=function(a,b,c){c=c||{},a=this._parseTimeOrLabel(a),c.startAt={onComplete:this.seek,onCompleteParams:[a],callbackScope:this},c.immediateRender=c.immediateRender!==!1;var d=this.tweenTo(b,c);return d.isFromTo=1,d.duration(Math.abs(d.vars.time-a)/this._timeScale||.001)},k.render=function(a,b,c){this._gc&&this._enabled(!0,!1);var d,f,i,j,k,l,m,n,o,p=this,q=p._time,r=p._dirty?p.totalDuration():p._totalDuration,s=p._duration,t=p._totalTime,u=p._startTime,v=p._timeScale,w=p._rawPrevTime,x=p._paused,y=p._cycle;if(q!==p._time&&(a+=p._time-q),a>=r-e&&a>=0)p._locked||(p._totalTime=r,p._cycle=p._repeat),p._reversed||p._hasPausedChild()||(f=!0,j="onComplete",k=!!p._timeline.autoRemoveChildren,0===p._duration&&(0>=a&&a>=-e||0>w||w===e)&&w!==a&&p._first&&(k=!0,w>e&&(j="onReverseComplete"))),p._rawPrevTime=p._duration||!b||a||p._rawPrevTime===a?a:e,p._yoyo&&1&p._cycle?p._time=a=0:(p._time=s,a=s+1e-4);else if(e>a)if(p._locked||(p._totalTime=p._cycle=0),p._time=0,a>-e&&(a=0),(0!==q||0===s&&w!==e&&(w>0||0>a&&w>=0)&&!p._locked)&&(j="onReverseComplete",f=p._reversed),0>a)p._active=!1,p._timeline.autoRemoveChildren&&p._reversed?(k=f=!0,j="onReverseComplete"):w>=0&&p._first&&(k=!0),p._rawPrevTime=a;else{if(p._rawPrevTime=s||!b||a||p._rawPrevTime===a?a:e,0===a&&f)for(d=p._first;d&&0===d._startTime;)d._duration||(f=!1),d=d._next;a=0,p._initted||(k=!0)}else if(0===s&&0>w&&(k=!0),p._time=p._rawPrevTime=a,p._locked||(p._totalTime=a,0!==p._repeat&&(l=s+p._repeatDelay,p._cycle=p._totalTime/l>>0,p._cycle&&p._cycle===p._totalTime/l&&a>=t&&p._cycle--,p._time=p._totalTime-p._cycle*l,p._yoyo&&1&p._cycle&&(p._time=s-p._time),p._time>s?(p._time=s,a=s+1e-4):p._time<0?p._time=a=0:a=p._time)),p._hasPause&&!p._forcingPlayhead&&!b){if(a=p._time,a>=q||p._repeat&&y!==p._cycle)for(d=p._first;d&&d._startTime<=a&&!m;)d._duration||"isPause"!==d.data||d.ratio||0===d._startTime&&0===p._rawPrevTime||(m=d),d=d._next;else for(d=p._last;d&&d._startTime>=a&&!m;)d._duration||"isPause"===d.data&&d._rawPrevTime>0&&(m=d),d=d._prev;m&&(o=p._startTime+m._startTime/p._timeScale,m._startTime0&&(p._active=!0),0===t&&p.vars.onStart&&(0===p._totalTime&&p._totalDuration||b||p._callback("onStart")),n=p._time,n>=q)for(d=p._first;d&&(i=d._next,n===p._time&&(!p._paused||x));)(d._active||d._startTime<=p._time&&!d._paused&&!d._gc)&&(m===d&&(p.pause(),p._pauseTime=o),d._reversed?d.render((d._dirty?d.totalDuration():d._totalDuration)-(a-d._startTime)*d._timeScale,b,c):d.render((a-d._startTime)*d._timeScale,b,c)),d=i;else for(d=p._last;d&&(i=d._prev,n===p._time&&(!p._paused||x));){if(d._active||d._startTime<=q&&!d._paused&&!d._gc){if(m===d){for(m=d._prev;m&&m.endTime()>p._time;)m.render(m._reversed?m.totalDuration()-(a-m._startTime)*m._timeScale:(a-m._startTime)*m._timeScale,b,c),m=m._prev;m=null,p.pause(),p._pauseTime=o}d._reversed?d.render((d._dirty?d.totalDuration():d._totalDuration)-(a-d._startTime)*d._timeScale,b,c):d.render((a-d._startTime)*d._timeScale,b,c)}d=i}p._onUpdate&&(b||(g.length&&h(),p._callback("onUpdate"))),j&&(p._locked||p._gc||(u===p._startTime||v!==p._timeScale)&&(0===p._time||r>=p.totalDuration())&&(f&&(g.length&&h(),p._timeline.autoRemoveChildren&&p._enabled(!1,!1),p._active=!1),!b&&p.vars[j]&&p._callback(j)))},k.getActive=function(a,b,c){var d,e,f=[],g=this.getChildren(a||null==a,b||null==a,!!c),h=0,i=g.length;for(d=0;i>d;d++)e=g[d],e.isActive()&&(f[h++]=e);return f},k.getLabelAfter=function(a){a||0!==a&&(a=this._time);var b,c=this.getLabelsArray(),d=c.length;for(b=0;d>b;b++)if(c[b].time>a)return c[b].name;return null},k.getLabelBefore=function(a){null==a&&(a=this._time);for(var b=this.getLabelsArray(),c=b.length;--c>-1;)if(b[c].timec&&(a=c),this.totalTime(this._yoyo&&1&d?c-a+e:this._repeat?a+e:a,b)},k.repeat=function(a){return arguments.length?(this._repeat=a,this._uncache(!0)):this._repeat},k.repeatDelay=function(a){return arguments.length?(this._repeatDelay=a,this._uncache(!0)):this._repeatDelay},k.yoyo=function(a){return arguments.length?(this._yoyo=a,this):this._yoyo},k.currentLabel=function(a){return arguments.length?this.seek(a,!0):this.getLabelBefore(this._time+e)},d},!0),function(){var a=180/Math.PI,b=[],c=[],d=[],e={},f=_gsScope._gsDefine.globals,g=function(a,b,c,d){c===d&&(c=d-(d-b)/1e6),a===b&&(b=a+(c-a)/1e6),this.a=a,this.b=b,this.c=c,this.d=d,this.da=d-a,this.ca=c-a,this.ba=b-a},h=",x,y,z,left,top,right,bottom,marginTop,marginLeft,marginRight,marginBottom,paddingLeft,paddingTop,paddingRight,paddingBottom,backgroundPosition,backgroundPosition_y,",i=function(a,b,c,d){var e={a:a},f={},g={},h={c:d},i=(a+b)/2,j=(b+c)/2,k=(c+d)/2,l=(i+j)/2,m=(j+k)/2,n=(m-l)/8;return e.b=i+(a-i)/4,f.b=l+n,e.c=f.a=(e.b+f.b)/2,f.c=g.a=(l+m)/2,g.b=m-n,h.b=k+(d-k)/4,g.c=h.a=(g.b+h.b)/2,[e,f,g,h]},j=function(a,e,f,g,h){var j,k,l,m,n,o,p,q,r,s,t,u,v,w=a.length-1,x=0,y=a[0].a;for(j=0;w>j;j++)n=a[x],k=n.a,l=n.d,m=a[x+1].d,h?(t=b[j],u=c[j],v=(u+t)*e*.25/(g?.5:d[j]||.5),o=l-(l-k)*(g?.5*e:0!==t?v/t:0),p=l+(m-l)*(g?.5*e:0!==u?v/u:0),q=l-(o+((p-o)*(3*t/(t+u)+.5)/4||0))):(o=l-(l-k)*e*.5,p=l+(m-l)*e*.5,q=l-(o+p)/2),o+=q,p+=q,n.c=r=o,0!==j?n.b=y:n.b=y=n.a+.6*(n.c-n.a),n.da=l-k,n.ca=r-k,n.ba=y-k,f?(s=i(k,y,r,l),a.splice(x,1,s[0],s[1],s[2],s[3]),x+=4):x++,y=p;n=a[x],n.b=y,n.c=y+.4*(n.d-y),n.da=n.d-n.a,n.ca=n.c-n.a,n.ba=y-n.a,f&&(s=i(n.a,y,n.c,n.d),a.splice(x,1,s[0],s[1],s[2],s[3]))},k=function(a,d,e,f){var h,i,j,k,l,m,n=[];if(f)for(a=[f].concat(a),i=a.length;--i>-1;)"string"==typeof(m=a[i][d])&&"="===m.charAt(1)&&(a[i][d]=f[d]+Number(m.charAt(0)+m.substr(2)));if(h=a.length-2,0>h)return n[0]=new g(a[0][d],0,0,a[0][d]),n;for(i=0;h>i;i++)j=a[i][d],k=a[i+1][d],n[i]=new g(j,0,0,k),e&&(l=a[i+2][d],b[i]=(b[i]||0)+(k-j)*(k-j),c[i]=(c[i]||0)+(l-k)*(l-k));return n[i]=new g(a[i][d],0,0,a[i+1][d]),n},l=function(a,f,g,i,l,m){var n,o,p,q,r,s,t,u,v={},w=[],x=m||a[0];l="string"==typeof l?","+l+",":h,null==f&&(f=1);for(o in a[0])w.push(o);if(a.length>1){for(u=a[a.length-1],t=!0,n=w.length;--n>-1;)if(o=w[n],Math.abs(x[o]-u[o])>.05){t=!1;break}t&&(a=a.concat(),m&&a.unshift(m),a.push(a[1]),m=a[a.length-3])}for(b.length=c.length=d.length=0,n=w.length;--n>-1;)o=w[n],e[o]=-1!==l.indexOf(","+o+","),v[o]=k(a,o,e[o],m);for(n=b.length;--n>-1;)b[n]=Math.sqrt(b[n]),c[n]=Math.sqrt(c[n]);if(!i){for(n=w.length;--n>-1;)if(e[o])for(p=v[w[n]],s=p.length-1,q=0;s>q;q++)r=p[q+1].da/c[q]+p[q].da/b[q]||0,d[q]=(d[q]||0)+r*r;for(n=d.length;--n>-1;)d[n]=Math.sqrt(d[n]); -}for(n=w.length,q=g?4:1;--n>-1;)o=w[n],p=v[o],j(p,f,g,i,e[o]),t&&(p.splice(0,q),p.splice(p.length-q,q));return v},m=function(a,b,c){b=b||"soft";var d,e,f,h,i,j,k,l,m,n,o,p={},q="cubic"===b?3:2,r="soft"===b,s=[];if(r&&c&&(a=[c].concat(a)),null==a||a.length-1;){for(m=s[j],p[m]=i=[],n=0,l=a.length,k=0;l>k;k++)d=null==c?a[k][m]:"string"==typeof(o=a[k][m])&&"="===o.charAt(1)?c[m]+Number(o.charAt(0)+o.substr(2)):Number(o),r&&k>1&&l-1>k&&(i[n++]=(d+i[n-2])/2),i[n++]=d;for(l=n-q+1,n=0,k=0;l>k;k+=q)d=i[k],e=i[k+1],f=i[k+2],h=2===q?0:i[k+3],i[n++]=o=3===q?new g(d,e,f,h):new g(d,(2*e+d)/3,(2*e+f)/3,f);i.length=n}return p},n=function(a,b,c){for(var d,e,f,g,h,i,j,k,l,m,n,o=1/c,p=a.length;--p>-1;)for(m=a[p],f=m.a,g=m.d-f,h=m.c-f,i=m.b-f,d=e=0,k=1;c>=k;k++)j=o*k,l=1-j,d=e-(e=(j*j*g+3*l*(j*h+l*i))*j),n=p*c+k-1,b[n]=(b[n]||0)+d*d},o=function(a,b){b=b>>0||6;var c,d,e,f,g=[],h=[],i=0,j=0,k=b-1,l=[],m=[];for(c in a)n(a[c],g,b);for(e=g.length,d=0;e>d;d++)i+=Math.sqrt(g[d]),f=d%b,m[f]=i,f===k&&(j+=i,f=d/b>>0,l[f]=m,h[f]=j,i=0,m=[]);return{length:j,lengths:h,segments:l}},p=_gsScope._gsDefine.plugin({propName:"bezier",priority:-1,version:"1.3.8",API:2,global:!0,init:function(a,b,c){this._target=a,b instanceof Array&&(b={values:b}),this._func={},this._mod={},this._props=[],this._timeRes=null==b.timeResolution?6:parseInt(b.timeResolution,10);var d,e,f,g,h,i=b.values||[],j={},k=i[0],n=b.autoRotate||c.vars.orientToBezier;this._autoRotate=n?n instanceof Array?n:[["x","y","rotation",n===!0?0:Number(n)||0]]:null;for(d in k)this._props.push(d);for(f=this._props.length;--f>-1;)d=this._props[f],this._overwriteProps.push(d),e=this._func[d]="function"==typeof a[d],j[d]=e?a[d.indexOf("set")||"function"!=typeof a["get"+d.substr(3)]?d:"get"+d.substr(3)]():parseFloat(a[d]),h||j[d]!==i[0][d]&&(h=j);if(this._beziers="cubic"!==b.type&&"quadratic"!==b.type&&"soft"!==b.type?l(i,isNaN(b.curviness)?1:b.curviness,!1,"thruBasic"===b.type,b.correlate,h):m(i,b.type,j),this._segCount=this._beziers[d].length,this._timeRes){var p=o(this._beziers,this._timeRes);this._length=p.length,this._lengths=p.lengths,this._segments=p.segments,this._l1=this._li=this._s1=this._si=0,this._l2=this._lengths[0],this._curSeg=this._segments[0],this._s2=this._curSeg[0],this._prec=1/this._curSeg.length}if(n=this._autoRotate)for(this._initialRotations=[],n[0]instanceof Array||(this._autoRotate=n=[n]),f=n.length;--f>-1;){for(g=0;3>g;g++)d=n[f][g],this._func[d]="function"==typeof a[d]?a[d.indexOf("set")||"function"!=typeof a["get"+d.substr(3)]?d:"get"+d.substr(3)]:!1;d=n[f][2],this._initialRotations[f]=(this._func[d]?this._func[d].call(this._target):this._target[d])||0,this._overwriteProps.push(d)}return this._startRatio=c.vars.runBackwards?1:0,!0},set:function(b){var c,d,e,f,g,h,i,j,k,l,m=this._segCount,n=this._func,o=this._target,p=b!==this._startRatio;if(this._timeRes){if(k=this._lengths,l=this._curSeg,b*=this._length,e=this._li,b>this._l2&&m-1>e){for(j=m-1;j>e&&(this._l2=k[++e])<=b;);this._l1=k[e-1],this._li=e,this._curSeg=l=this._segments[e],this._s2=l[this._s1=this._si=0]}else if(b0){for(;e>0&&(this._l1=k[--e])>=b;);0===e&&bthis._s2&&ee&&(this._s2=l[++e])<=b;);this._s1=l[e-1],this._si=e}else if(b0){for(;e>0&&(this._s1=l[--e])>=b;);0===e&&bb?0:b>=1?m-1:m*b>>0,h=(b-c*(1/m))*m;for(d=1-h,e=this._props.length;--e>-1;)f=this._props[e],g=this._beziers[f][c],i=(h*h*g.da+3*d*(h*g.ca+d*g.ba))*h+g.a,this._mod[f]&&(i=this._mod[f](i,o)),n[f]?o[f](i):o[f]=i;if(this._autoRotate){var q,r,s,t,u,v,w,x=this._autoRotate;for(e=x.length;--e>-1;)f=x[e][2],v=x[e][3]||0,w=x[e][4]===!0?1:a,g=this._beziers[x[e][0]],q=this._beziers[x[e][1]],g&&q&&(g=g[c],q=q[c],r=g.a+(g.b-g.a)*h,t=g.b+(g.c-g.b)*h,r+=(t-r)*h,t+=(g.c+(g.d-g.c)*h-t)*h,s=q.a+(q.b-q.a)*h,u=q.b+(q.c-q.b)*h,s+=(u-s)*h,u+=(q.c+(q.d-q.c)*h-u)*h,i=p?Math.atan2(u-s,t-r)*w+v:this._initialRotations[e],this._mod[f]&&(i=this._mod[f](i,o)),n[f]?o[f](i):o[f]=i)}}}),q=p.prototype;p.bezierThrough=l,p.cubicToQuadratic=i,p._autoCSS=!0,p.quadraticToCubic=function(a,b,c){return new g(a,(2*b+a)/3,(2*b+c)/3,c)},p._cssRegister=function(){var a=f.CSSPlugin;if(a){var b=a._internals,c=b._parseToProxy,d=b._setPluginRatio,e=b.CSSPropTween;b._registerComplexSpecialProp("bezier",{parser:function(a,b,f,g,h,i){b instanceof Array&&(b={values:b}),i=new p;var j,k,l,m=b.values,n=m.length-1,o=[],q={};if(0>n)return h;for(j=0;n>=j;j++)l=c(a,m[j],g,h,i,n!==j),o[j]=l.end;for(k in b)q[k]=b[k];return q.values=o,h=new e(a,"bezier",0,0,l.pt,2),h.data=l,h.plugin=i,h.setRatio=d,0===q.autoRotate&&(q.autoRotate=!0),!q.autoRotate||q.autoRotate instanceof Array||(j=q.autoRotate===!0?0:Number(q.autoRotate),q.autoRotate=null!=l.end.left?[["left","top","rotation",j,!1]]:null!=l.end.x?[["x","y","rotation",j,!1]]:!1),q.autoRotate&&(g._transform||g._enableTransforms(!1),l.autoRotate=g._target._gsTransform,l.proxy.rotation=l.autoRotate.rotation||0,g._overwriteProps.push("rotation")),i._onInitTween(l.proxy,q,g._tween),h}})}},q._mod=function(a){for(var b,c=this._overwriteProps,d=c.length;--d>-1;)b=a[c[d]],b&&"function"==typeof b&&(this._mod[c[d]]=b)},q._kill=function(a){var b,c,d=this._props;for(b in this._beziers)if(b in a)for(delete this._beziers[b],delete this._func[b],c=d.length;--c>-1;)d[c]===b&&d.splice(c,1);if(d=this._autoRotate)for(c=d.length;--c>-1;)a[d[c][2]]&&d.splice(c,1);return this._super._kill.call(this,a)}}(),_gsScope._gsDefine("plugins.CSSPlugin",["plugins.TweenPlugin","TweenLite"],function(a,b){var c,d,e,f,g=function(){a.call(this,"css"),this._overwriteProps.length=0,this.setRatio=g.prototype.setRatio},h=_gsScope._gsDefine.globals,i={},j=g.prototype=new a("css");j.constructor=g,g.version="2.1.0",g.API=2,g.defaultTransformPerspective=0,g.defaultSkewType="compensated",g.defaultSmoothOrigin=!0,j="px",g.suffixMap={top:j,right:j,bottom:j,left:j,width:j,height:j,fontSize:j,padding:j,margin:j,perspective:j,lineHeight:""};var k,l,m,n,o,p,q,r,s=/(?:\-|\.|\b)(\d|\.|e\-)+/g,t=/(?:\d|\-\d|\.\d|\-\.\d|\+=\d|\-=\d|\+=.\d|\-=\.\d)+/g,u=/(?:\+=|\-=|\-|\b)[\d\-\.]+[a-zA-Z0-9]*(?:%|\b)/gi,v=/(?![+-]?\d*\.?\d+|[+-]|e[+-]\d+)[^0-9]/g,w=/(?:\d|\-|\+|=|#|\.)*/g,x=/opacity *= *([^)]*)/i,y=/opacity:([^;]*)/i,z=/alpha\(opacity *=.+?\)/i,A=/^(rgb|hsl)/,B=/([A-Z])/g,C=/-([a-z])/gi,D=/(^(?:url\(\"|url\())|(?:(\"\))$|\)$)/gi,E=function(a,b){return b.toUpperCase()},F=/(?:Left|Right|Width)/i,G=/(M11|M12|M21|M22)=[\d\-\.e]+/gi,H=/progid\:DXImageTransform\.Microsoft\.Matrix\(.+?\)/i,I=/,(?=[^\)]*(?:\(|$))/gi,J=/[\s,\(]/i,K=Math.PI/180,L=180/Math.PI,M={},N={style:{}},O=_gsScope.document||{createElement:function(){return N}},P=function(a,b){return b&&O.createElementNS?O.createElementNS(b,a):O.createElement(a)},Q=P("div"),R=P("img"),S=g._internals={_specialProps:i},T=(_gsScope.navigator||{}).userAgent||"",U=function(){var a=T.indexOf("Android"),b=P("a");return m=-1!==T.indexOf("Safari")&&-1===T.indexOf("Chrome")&&(-1===a||parseFloat(T.substr(a+8,2))>3),o=m&&parseFloat(T.substr(T.indexOf("Version/")+8,2))<6,n=-1!==T.indexOf("Firefox"),(/MSIE ([0-9]{1,}[\.0-9]{0,})/.exec(T)||/Trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/.exec(T))&&(p=parseFloat(RegExp.$1)),b?(b.style.cssText="top:1px;opacity:.55;",/^0.55/.test(b.style.opacity)):!1}(),V=function(a){return x.test("string"==typeof a?a:(a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100:1},W=function(a){_gsScope.console&&console.log(a)},X="",Y="",Z=function(a,b){b=b||Q;var c,d,e=b.style;if(void 0!==e[a])return a;for(a=a.charAt(0).toUpperCase()+a.substr(1),c=["O","Moz","ms","Ms","Webkit"],d=5;--d>-1&&void 0===e[c[d]+a];);return d>=0?(Y=3===d?"ms":c[d],X="-"+Y.toLowerCase()+"-",Y+a):null},$="undefined"!=typeof window?window:O.defaultView||{getComputedStyle:function(){}},_=function(a){return $.getComputedStyle(a)},aa=g.getStyle=function(a,b,c,d,e){var f;return U||"opacity"!==b?(!d&&a.style[b]?f=a.style[b]:(c=c||_(a))?f=c[b]||c.getPropertyValue(b)||c.getPropertyValue(b.replace(B,"-$1").toLowerCase()):a.currentStyle&&(f=a.currentStyle[b]),null==e||f&&"none"!==f&&"auto"!==f&&"auto auto"!==f?f:e):V(a)},ba=S.convertToPixels=function(a,c,d,e,f){if("px"===e||!e&&"lineHeight"!==c)return d;if("auto"===e||!d)return 0;var h,i,j,k=F.test(c),l=a,m=Q.style,n=0>d,o=1===d;if(n&&(d=-d),o&&(d*=100),"lineHeight"!==c||e)if("%"===e&&-1!==c.indexOf("border"))h=d/100*(k?a.clientWidth:a.clientHeight);else{if(m.cssText="border:0 solid red;position:"+aa(a,"position")+";line-height:0;","%"!==e&&l.appendChild&&"v"!==e.charAt(0)&&"rem"!==e)m[k?"borderLeftWidth":"borderTopWidth"]=d+e;else{if(l=a.parentNode||O.body,-1!==aa(l,"display").indexOf("flex")&&(m.position="absolute"),i=l._gsCache,j=b.ticker.frame,i&&k&&i.time===j)return i.width*d/100;m[k?"width":"height"]=d+e}l.appendChild(Q),h=parseFloat(Q[k?"offsetWidth":"offsetHeight"]),l.removeChild(Q),k&&"%"===e&&g.cacheWidths!==!1&&(i=l._gsCache=l._gsCache||{},i.time=j,i.width=h/d*100),0!==h||f||(h=ba(a,c,d,e,!0))}else i=_(a).lineHeight,a.style.lineHeight=d,h=parseFloat(_(a).lineHeight),a.style.lineHeight=i;return o&&(h/=100),n?-h:h},ca=S.calculateOffset=function(a,b,c){if("absolute"!==aa(a,"position",c))return 0;var d="left"===b?"Left":"Top",e=aa(a,"margin"+d,c);return a["offset"+d]-(ba(a,b,parseFloat(e),e.replace(w,""))||0)},da=function(a,b){var c,d,e,f={};if(b=b||_(a,null))if(c=b.length)for(;--c>-1;)e=b[c],(-1===e.indexOf("-transform")||Ea===e)&&(f[e.replace(C,E)]=b.getPropertyValue(e));else for(c in b)(-1===c.indexOf("Transform")||Da===c)&&(f[c]=b[c]);else if(b=a.currentStyle||a.style)for(c in b)"string"==typeof c&&void 0===f[c]&&(f[c.replace(C,E)]=b[c]);return U||(f.opacity=V(a)),d=Sa(a,b,!1),f.rotation=d.rotation,f.skewX=d.skewX,f.scaleX=d.scaleX,f.scaleY=d.scaleY,f.x=d.x,f.y=d.y,Ga&&(f.z=d.z,f.rotationX=d.rotationX,f.rotationY=d.rotationY,f.scaleZ=d.scaleZ),f.filters&&delete f.filters,f},ea=function(a,b,c,d,e){var f,g,h,i={},j=a.style;for(g in c)"cssText"!==g&&"length"!==g&&isNaN(g)&&(b[g]!==(f=c[g])||e&&e[g])&&-1===g.indexOf("Origin")&&("number"==typeof f||"string"==typeof f)&&(i[g]="auto"!==f||"left"!==g&&"top"!==g?""!==f&&"auto"!==f&&"none"!==f||"string"!=typeof b[g]||""===b[g].replace(v,"")?f:0:ca(a,g),void 0!==j[g]&&(h=new ta(j,g,j[g],h)));if(d)for(g in d)"className"!==g&&(i[g]=d[g]);return{difs:i,firstMPT:h}},fa={width:["Left","Right"],height:["Top","Bottom"]},ga=["marginLeft","marginRight","marginTop","marginBottom"],ha=function(a,b,c){if("svg"===(a.nodeName+"").toLowerCase())return(c||_(a))[b]||0;if(a.getCTM&&Pa(a))return a.getBBox()[b]||0;var d=parseFloat("width"===b?a.offsetWidth:a.offsetHeight),e=fa[b],f=e.length;for(c=c||_(a,null);--f>-1;)d-=parseFloat(aa(a,"padding"+e[f],c,!0))||0,d-=parseFloat(aa(a,"border"+e[f]+"Width",c,!0))||0;return d},ia=function(a,b){if("contain"===a||"auto"===a||"auto auto"===a)return a+" ";(null==a||""===a)&&(a="0 0");var c,d=a.split(" "),e=-1!==a.indexOf("left")?"0%":-1!==a.indexOf("right")?"100%":d[0],f=-1!==a.indexOf("top")?"0%":-1!==a.indexOf("bottom")?"100%":d[1];if(d.length>3&&!b){for(d=a.split(", ").join(",").split(","),a=[],c=0;c2?" "+d[2]:""),b&&(b.oxp=-1!==e.indexOf("%"),b.oyp=-1!==f.indexOf("%"),b.oxr="="===e.charAt(1),b.oyr="="===f.charAt(1),b.ox=parseFloat(e.replace(v,"")),b.oy=parseFloat(f.replace(v,"")),b.v=a),b||a},ja=function(a,b){return"function"==typeof a&&(a=a(r,q)),"string"==typeof a&&"="===a.charAt(1)?parseInt(a.charAt(0)+"1",10)*parseFloat(a.substr(2)):parseFloat(a)-parseFloat(b)||0},ka=function(a,b){"function"==typeof a&&(a=a(r,q));var c="string"==typeof a&&"="===a.charAt(1);return"string"==typeof a&&"v"===a.charAt(a.length-2)&&(a=(c?a.substr(0,2):0)+window["inner"+("vh"===a.substr(-2)?"Height":"Width")]*(parseFloat(c?a.substr(2):a)/100)),null==a?b:c?parseInt(a.charAt(0)+"1",10)*parseFloat(a.substr(2))+b:parseFloat(a)||0},la=function(a,b,c,d){var e,f,g,h,i,j=1e-6;return"function"==typeof a&&(a=a(r,q)),null==a?h=b:"number"==typeof a?h=a:(e=360,f=a.split("_"),i="="===a.charAt(1),g=(i?parseInt(a.charAt(0)+"1",10)*parseFloat(f[0].substr(2)):parseFloat(f[0]))*(-1===a.indexOf("rad")?1:L)-(i?0:b),f.length&&(d&&(d[c]=b+g),-1!==a.indexOf("short")&&(g%=e,g!==g%(e/2)&&(g=0>g?g+e:g-e)),-1!==a.indexOf("_cw")&&0>g?g=(g+9999999999*e)%e-(g/e|0)*e:-1!==a.indexOf("ccw")&&g>0&&(g=(g-9999999999*e)%e-(g/e|0)*e)),h=b+g),j>h&&h>-j&&(h=0),h},ma={aqua:[0,255,255],lime:[0,255,0],silver:[192,192,192],black:[0,0,0],maroon:[128,0,0],teal:[0,128,128],blue:[0,0,255],navy:[0,0,128],white:[255,255,255],fuchsia:[255,0,255],olive:[128,128,0],yellow:[255,255,0],orange:[255,165,0],gray:[128,128,128],purple:[128,0,128],green:[0,128,0],red:[255,0,0],pink:[255,192,203],cyan:[0,255,255],transparent:[255,255,255,0]},na=function(a,b,c){return a=0>a?a+1:a>1?a-1:a,255*(1>6*a?b+(c-b)*a*6:.5>a?c:2>3*a?b+(c-b)*(2/3-a)*6:b)+.5|0},oa=g.parseColor=function(a,b){var c,d,e,f,g,h,i,j,k,l,m;if(a)if("number"==typeof a)c=[a>>16,a>>8&255,255&a];else{if(","===a.charAt(a.length-1)&&(a=a.substr(0,a.length-1)),ma[a])c=ma[a];else if("#"===a.charAt(0))4===a.length&&(d=a.charAt(1),e=a.charAt(2),f=a.charAt(3),a="#"+d+d+e+e+f+f),a=parseInt(a.substr(1),16),c=[a>>16,a>>8&255,255&a];else if("hsl"===a.substr(0,3))if(c=m=a.match(s),b){if(-1!==a.indexOf("="))return a.match(t)}else g=Number(c[0])%360/360,h=Number(c[1])/100,i=Number(c[2])/100,e=.5>=i?i*(h+1):i+h-i*h,d=2*i-e,c.length>3&&(c[3]=Number(c[3])),c[0]=na(g+1/3,d,e),c[1]=na(g,d,e),c[2]=na(g-1/3,d,e);else c=a.match(s)||ma.transparent;c[0]=Number(c[0]),c[1]=Number(c[1]),c[2]=Number(c[2]),c.length>3&&(c[3]=Number(c[3]))}else c=ma.black;return b&&!m&&(d=c[0]/255,e=c[1]/255,f=c[2]/255,j=Math.max(d,e,f),k=Math.min(d,e,f),i=(j+k)/2,j===k?g=h=0:(l=j-k,h=i>.5?l/(2-j-k):l/(j+k),g=j===d?(e-f)/l+(f>e?6:0):j===e?(f-d)/l+2:(d-e)/l+4,g*=60),c[0]=g+.5|0,c[1]=100*h+.5|0,c[2]=100*i+.5|0),c},pa=function(a,b){var c,d,e,f=a.match(qa)||[],g=0,h="";if(!f.length)return a;for(c=0;c0?g[0].replace(s,""):"";return k?e=b?function(a){var b,m,n,o;if("number"==typeof a)a+=l;else if(d&&I.test(a)){for(o=a.replace(I,"|").split("|"),n=0;nn--)for(;++nm--)for(;++mi;i++)h[a[i]]=j[i]=j[i]||j[(i-1)/2>>0];return e.parse(b,h,f,g)}},ta=(S._setPluginRatio=function(a){this.plugin.setRatio(a);for(var b,c,d,e,f,g=this.data,h=g.proxy,i=g.firstMPT,j=1e-6;i;)b=h[i.v],i.r?b=i.r(b):j>b&&b>-j&&(b=0),i.t[i.p]=b,i=i._next;if(g.autoRotate&&(g.autoRotate.rotation=g.mod?g.mod.call(this._tween,h.rotation,this.t,this._tween):h.rotation),1===a||0===a)for(i=g.firstMPT,f=1===a?"e":"b";i;){if(c=i.t,c.type){if(1===c.type){for(e=c.xs0+c.s+c.xs1,d=1;d0;)i="xn"+g,h=d.p+"_"+i,n[h]=d.data[i],m[h]=d[i],f||(j=new ta(d,i,h,j,d.rxp[i]));d=d._next}return{proxy:m,end:n,firstMPT:j,pt:k}},S.CSSPropTween=function(a,b,d,e,g,h,i,j,k,l,m){this.t=a,this.p=b,this.s=d,this.c=e,this.n=i||b,a instanceof ua||f.push(this.n),this.r=j?"function"==typeof j?j:Math.round:j,this.type=h||0,k&&(this.pr=k,c=!0),this.b=void 0===l?d:l,this.e=void 0===m?d+e:m,g&&(this._next=g,g._prev=this)}),va=function(a,b,c,d,e,f){var g=new ua(a,b,c,d-c,e,-1,f);return g.b=c,g.e=g.xs0=d,g},wa=g.parseComplex=function(a,b,c,d,e,f,h,i,j,l){c=c||f||"","function"==typeof d&&(d=d(r,q)),h=new ua(a,b,0,0,h,l?2:1,null,!1,i,c,d),d+="",e&&qa.test(d+c)&&(d=[c,d],g.colorStringFilter(d),c=d[0],d=d[1]);var m,n,o,p,u,v,w,x,y,z,A,B,C,D=c.split(", ").join(",").split(" "),E=d.split(", ").join(",").split(" "),F=D.length,G=k!==!1;for((-1!==d.indexOf(",")||-1!==c.indexOf(","))&&(-1!==(d+c).indexOf("rgb")||-1!==(d+c).indexOf("hsl")?(D=D.join(" ").replace(I,", ").split(" "),E=E.join(" ").replace(I,", ").split(" ")):(D=D.join(" ").split(",").join(", ").split(" "),E=E.join(" ").split(",").join(", ").split(" ")),F=D.length),F!==E.length&&(D=(f||"").split(" "),F=D.length),h.plugin=j,h.setRatio=l,qa.lastIndex=0,m=0;F>m;m++)if(p=D[m],u=E[m]+"",x=parseFloat(p),x||0===x)h.appendXtra("",x,ja(u,x),u.replace(t,""),G&&-1!==u.indexOf("px")?Math.round:!1,!0);else if(e&&qa.test(p))B=u.indexOf(")")+1,B=")"+(B?u.substr(B):""),C=-1!==u.indexOf("hsl")&&U,z=u,p=oa(p,C),u=oa(u,C),y=p.length+u.length>6,y&&!U&&0===u[3]?(h["xs"+h.l]+=h.l?" transparent":"transparent",h.e=h.e.split(E[m]).join("transparent")):(U||(y=!1),C?h.appendXtra(z.substr(0,z.indexOf("hsl"))+(y?"hsla(":"hsl("),p[0],ja(u[0],p[0]),",",!1,!0).appendXtra("",p[1],ja(u[1],p[1]),"%,",!1).appendXtra("",p[2],ja(u[2],p[2]),y?"%,":"%"+B,!1):h.appendXtra(z.substr(0,z.indexOf("rgb"))+(y?"rgba(":"rgb("),p[0],u[0]-p[0],",",Math.round,!0).appendXtra("",p[1],u[1]-p[1],",",Math.round).appendXtra("",p[2],u[2]-p[2],y?",":B,Math.round),y&&(p=p.length<4?1:p[3],h.appendXtra("",p,(u.length<4?1:u[3])-p,B,!1))),qa.lastIndex=0;else if(v=p.match(s)){if(w=u.match(t),!w||w.length!==v.length)return h;for(o=0,n=0;n0;)j["xn"+xa]=0,j["xs"+xa]="";j.xs0="",j._next=j._prev=j.xfirst=j.data=j.plugin=j.setRatio=j.rxp=null,j.appendXtra=function(a,b,c,d,e,f){var g=this,h=g.l;return g["xs"+h]+=f&&(h||g["xs"+h])?" "+a:a||"",c||0===h||g.plugin?(g.l++,g.type=g.setRatio?2:1,g["xs"+g.l]=d||"",h>0?(g.data["xn"+h]=b+c,g.rxp["xn"+h]=e,g["xn"+h]=b,g.plugin||(g.xfirst=new ua(g,"xn"+h,b,c,g.xfirst||g,0,g.n,e,g.pr),g.xfirst.xs0=0),g):(g.data={s:b+c},g.rxp={},g.s=b,g.c=c,g.r=e,g)):(g["xs"+h]+=b+(d||""),g)};var ya=function(a,b){b=b||{},this.p=b.prefix?Z(a)||a:a,i[a]=i[this.p]=this,this.format=b.formatter||ra(b.defaultValue,b.color,b.collapsible,b.multi),b.parser&&(this.parse=b.parser),this.clrs=b.color,this.multi=b.multi,this.keyword=b.keyword,this.dflt=b.defaultValue,this.allowFunc=b.allowFunc,this.pr=b.priority||0},za=S._registerComplexSpecialProp=function(a,b,c){"object"!=typeof b&&(b={parser:c});var d,e,f=a.split(","),g=b.defaultValue;for(c=c||[g],d=0;dh.length?i.length:h.length,g=0;j>g;g++)b=h[g]=h[g]||this.dflt,c=i[g]=i[g]||this.dflt,m&&(k=b.indexOf(m),l=c.indexOf(m),k!==l&&(-1===l?h[g]=h[g].split(m).join(""):-1===k&&(h[g]+=" "+m)));b=h.join(", "),c=i.join(", ")}return wa(a,this.p,b,c,this.clrs,this.dflt,d,this.pr,e,f)},j.parse=function(a,b,c,d,f,g,h){return this.parseComplex(a.style,this.format(aa(a,this.p,e,!1,this.dflt)),this.format(b),f,g)},g.registerSpecialProp=function(a,b,c){za(a,{parser:function(a,d,e,f,g,h,i){var j=new ua(a,e,0,0,g,2,e,!1,c);return j.plugin=h,j.setRatio=b(a,d,f._tween,e),j},priority:c})},g.useSVGTransformAttr=!0;var Ba,Ca="scaleX,scaleY,scaleZ,x,y,z,skewX,skewY,rotation,rotationX,rotationY,perspective,xPercent,yPercent".split(","),Da=Z("transform"),Ea=X+"transform",Fa=Z("transformOrigin"),Ga=null!==Z("perspective"),Ha=S.Transform=function(){this.perspective=parseFloat(g.defaultTransformPerspective)||0,this.force3D=g.defaultForce3D!==!1&&Ga?g.defaultForce3D||"auto":!1},Ia=_gsScope.SVGElement,Ja=function(a,b,c){var d,e=O.createElementNS("http://www.w3.org/2000/svg",a),f=/([a-z])([A-Z])/g;for(d in c)e.setAttributeNS(null,d.replace(f,"$1-$2").toLowerCase(),c[d]);return b.appendChild(e),e},Ka=O.documentElement||{},La=function(){var a,b,c,d=p||/Android/i.test(T)&&!_gsScope.chrome;return O.createElementNS&&!d&&(a=Ja("svg",Ka),b=Ja("rect",a,{width:100,height:50,x:100}),c=b.getBoundingClientRect().width,b.style[Fa]="50% 50%",b.style[Da]="scaleX(0.5)",d=c===b.getBoundingClientRect().width&&!(n&&Ga),Ka.removeChild(a)),d}(),Ma=function(a,b,c,d,e,f){var h,i,j,k,l,m,n,o,p,q,r,s,t,u,v=a._gsTransform,w=Ra(a,!0);v&&(t=v.xOrigin,u=v.yOrigin),(!d||(h=d.split(" ")).length<2)&&(n=a.getBBox(),0===n.x&&0===n.y&&n.width+n.height===0&&(n={x:parseFloat(a.hasAttribute("x")?a.getAttribute("x"):a.hasAttribute("cx")?a.getAttribute("cx"):0)||0,y:parseFloat(a.hasAttribute("y")?a.getAttribute("y"):a.hasAttribute("cy")?a.getAttribute("cy"):0)||0,width:0,height:0}),b=ia(b).split(" "),h=[(-1!==b[0].indexOf("%")?parseFloat(b[0])/100*n.width:parseFloat(b[0]))+n.x,(-1!==b[1].indexOf("%")?parseFloat(b[1])/100*n.height:parseFloat(b[1]))+n.y]),c.xOrigin=k=parseFloat(h[0]),c.yOrigin=l=parseFloat(h[1]),d&&w!==Qa&&(m=w[0],n=w[1],o=w[2],p=w[3],q=w[4],r=w[5],s=m*p-n*o,s&&(i=k*(p/s)+l*(-o/s)+(o*r-p*q)/s,j=k*(-n/s)+l*(m/s)-(m*r-n*q)/s,k=c.xOrigin=h[0]=i,l=c.yOrigin=h[1]=j)),v&&(f&&(c.xOffset=v.xOffset,c.yOffset=v.yOffset,v=c),e||e!==!1&&g.defaultSmoothOrigin!==!1?(i=k-t,j=l-u,v.xOffset+=i*w[0]+j*w[2]-i,v.yOffset+=i*w[1]+j*w[3]-j):v.xOffset=v.yOffset=0),f||a.setAttribute("data-svg-origin",h.join(" "))},Na=function(a){var b,c=P("svg",this.ownerSVGElement&&this.ownerSVGElement.getAttribute("xmlns")||"http://www.w3.org/2000/svg"),d=this.parentNode,e=this.nextSibling,f=this.style.cssText;if(Ka.appendChild(c),c.appendChild(this),this.style.display="block",a)try{b=this.getBBox(),this._originalGetBBox=this.getBBox,this.getBBox=Na}catch(g){}else this._originalGetBBox&&(b=this._originalGetBBox());return e?d.insertBefore(this,e):d.appendChild(this),Ka.removeChild(c),this.style.cssText=f,b},Oa=function(a){try{return a.getBBox()}catch(b){return Na.call(a,!0)}},Pa=function(a){return!(!Ia||!a.getCTM||a.parentNode&&!a.ownerSVGElement||!Oa(a))},Qa=[1,0,0,1,0,0],Ra=function(a,b){var c,d,e,f,g,h,i,j=a._gsTransform||new Ha,k=1e5,l=a.style;if(Da?d=aa(a,Ea,null,!0):a.currentStyle&&(d=a.currentStyle.filter.match(G),d=d&&4===d.length?[d[0].substr(4),Number(d[2].substr(4)),Number(d[1].substr(4)),d[3].substr(4),j.x||0,j.y||0].join(","):""),c=!d||"none"===d||"matrix(1, 0, 0, 1, 0, 0)"===d,Da&&c&&!a.offsetParent&&(f=l.display,l.display="block",i=a.parentNode,i&&a.offsetParent||(g=1,h=a.nextSibling,Ka.appendChild(a)),d=aa(a,Ea,null,!0),c=!d||"none"===d||"matrix(1, 0, 0, 1, 0, 0)"===d,f?l.display=f:Wa(l,"display"),g&&(h?i.insertBefore(a,h):i?i.appendChild(a):Ka.removeChild(a))),(j.svg||a.getCTM&&Pa(a))&&(c&&-1!==(l[Da]+"").indexOf("matrix")&&(d=l[Da],c=0),e=a.getAttribute("transform"),c&&e&&(e=a.transform.baseVal.consolidate().matrix,d="matrix("+e.a+","+e.b+","+e.c+","+e.d+","+e.e+","+e.f+")",c=0)),c)return Qa;for(e=(d||"").match(s)||[],xa=e.length;--xa>-1;)f=Number(e[xa]),e[xa]=(g=f-(f|=0))?(g*k+(0>g?-.5:.5)|0)/k+f:f;return b&&e.length>6?[e[0],e[1],e[4],e[5],e[12],e[13]]:e},Sa=S.getTransform=function(a,c,d,e){if(a._gsTransform&&d&&!e)return a._gsTransform;var f,h,i,j,k,l,m=d?a._gsTransform||new Ha:new Ha,n=m.scaleX<0,o=2e-5,p=1e5,q=Ga?parseFloat(aa(a,Fa,c,!1,"0 0 0").split(" ")[2])||m.zOrigin||0:0,r=parseFloat(g.defaultTransformPerspective)||0;if(m.svg=!(!a.getCTM||!Pa(a)),m.svg&&(Ma(a,aa(a,Fa,c,!1,"50% 50%")+"",m,a.getAttribute("data-svg-origin")),Ba=g.useSVGTransformAttr||La),f=Ra(a),f!==Qa){if(16===f.length){var s,t,u,v,w,x=f[0],y=f[1],z=f[2],A=f[3],B=f[4],C=f[5],D=f[6],E=f[7],F=f[8],G=f[9],H=f[10],I=f[12],J=f[13],K=f[14],M=f[11],N=Math.atan2(D,H);m.zOrigin&&(K=-m.zOrigin,I=F*K-f[12],J=G*K-f[13],K=H*K+m.zOrigin-f[14]),m.rotationX=N*L,N&&(v=Math.cos(-N),w=Math.sin(-N),s=B*v+F*w,t=C*v+G*w,u=D*v+H*w,F=B*-w+F*v,G=C*-w+G*v,H=D*-w+H*v,M=E*-w+M*v,B=s,C=t,D=u),N=Math.atan2(-z,H),m.rotationY=N*L,N&&(v=Math.cos(-N),w=Math.sin(-N),s=x*v-F*w,t=y*v-G*w,u=z*v-H*w,G=y*w+G*v,H=z*w+H*v,M=A*w+M*v,x=s,y=t,z=u),N=Math.atan2(y,x),m.rotation=N*L,N&&(v=Math.cos(N),w=Math.sin(N),s=x*v+y*w,t=B*v+C*w,u=F*v+G*w,y=y*v-x*w,C=C*v-B*w,G=G*v-F*w,x=s,B=t,F=u),m.rotationX&&Math.abs(m.rotationX)+Math.abs(m.rotation)>359.9&&(m.rotationX=m.rotation=0,m.rotationY=180-m.rotationY),N=Math.atan2(B,C),m.scaleX=(Math.sqrt(x*x+y*y+z*z)*p+.5|0)/p,m.scaleY=(Math.sqrt(C*C+D*D)*p+.5|0)/p,m.scaleZ=(Math.sqrt(F*F+G*G+H*H)*p+.5|0)/p,x/=m.scaleX,B/=m.scaleY,y/=m.scaleX,C/=m.scaleY,Math.abs(N)>o?(m.skewX=N*L,B=0,"simple"!==m.skewType&&(m.scaleY*=1/Math.cos(N))):m.skewX=0,m.perspective=M?1/(0>M?-M:M):0,m.x=I,m.y=J,m.z=K,m.svg&&(m.x-=m.xOrigin-(m.xOrigin*x-m.yOrigin*B),m.y-=m.yOrigin-(m.yOrigin*y-m.xOrigin*C))}else if(!Ga||e||!f.length||m.x!==f[4]||m.y!==f[5]||!m.rotationX&&!m.rotationY){var O=f.length>=6,P=O?f[0]:1,Q=f[1]||0,R=f[2]||0,S=O?f[3]:1;m.x=f[4]||0,m.y=f[5]||0,i=Math.sqrt(P*P+Q*Q),j=Math.sqrt(S*S+R*R),k=P||Q?Math.atan2(Q,P)*L:m.rotation||0,l=R||S?Math.atan2(R,S)*L+k:m.skewX||0,m.scaleX=i,m.scaleY=j,m.rotation=k,m.skewX=l,Ga&&(m.rotationX=m.rotationY=m.z=0,m.perspective=r,m.scaleZ=1),m.svg&&(m.x-=m.xOrigin-(m.xOrigin*P+m.yOrigin*R),m.y-=m.yOrigin-(m.xOrigin*Q+m.yOrigin*S))}Math.abs(m.skewX)>90&&Math.abs(m.skewX)<270&&(n?(m.scaleX*=-1,m.skewX+=m.rotation<=0?180:-180,m.rotation+=m.rotation<=0?180:-180):(m.scaleY*=-1,m.skewX+=m.skewX<=0?180:-180)),m.zOrigin=q;for(h in m)m[h]-o&&(m[h]=0)}return d&&(a._gsTransform=m,m.svg&&(Ba&&a.style[Da]?b.delayedCall(.001,function(){Wa(a.style,Da)}):!Ba&&a.getAttribute("transform")&&b.delayedCall(.001,function(){a.removeAttribute("transform")}))),m},Ta=function(a){var b,c,d=this.data,e=-d.rotation*K,f=e+d.skewX*K,g=1e5,h=(Math.cos(e)*d.scaleX*g|0)/g,i=(Math.sin(e)*d.scaleX*g|0)/g,j=(Math.sin(f)*-d.scaleY*g|0)/g,k=(Math.cos(f)*d.scaleY*g|0)/g,l=this.t.style,m=this.t.currentStyle;if(m){c=i,i=-j,j=-c,b=m.filter,l.filter="";var n,o,q=this.t.offsetWidth,r=this.t.offsetHeight,s="absolute"!==m.position,t="progid:DXImageTransform.Microsoft.Matrix(M11="+h+", M12="+i+", M21="+j+", M22="+k,u=d.x+q*d.xPercent/100,v=d.y+r*d.yPercent/100;if(null!=d.ox&&(n=(d.oxp?q*d.ox*.01:d.ox)-q/2,o=(d.oyp?r*d.oy*.01:d.oy)-r/2,u+=n-(n*h+o*i),v+=o-(n*j+o*k)),s?(n=q/2,o=r/2,t+=", Dx="+(n-(n*h+o*i)+u)+", Dy="+(o-(n*j+o*k)+v)+")"):t+=", sizingMethod='auto expand')",-1!==b.indexOf("DXImageTransform.Microsoft.Matrix(")?l.filter=b.replace(H,t):l.filter=t+" "+b,(0===a||1===a)&&1===h&&0===i&&0===j&&1===k&&(s&&-1===t.indexOf("Dx=0, Dy=0")||x.test(b)&&100!==parseFloat(RegExp.$1)||-1===b.indexOf(b.indexOf("Alpha"))&&l.removeAttribute("filter")),!s){var y,z,A,B=8>p?1:-1;for(n=d.ieOffsetX||0,o=d.ieOffsetY||0,d.ieOffsetX=Math.round((q-((0>h?-h:h)*q+(0>i?-i:i)*r))/2+u),d.ieOffsetY=Math.round((r-((0>k?-k:k)*r+(0>j?-j:j)*q))/2+v),xa=0;4>xa;xa++)z=ga[xa],y=m[z],c=-1!==y.indexOf("px")?parseFloat(y):ba(this.t,z,parseFloat(y),y.replace(w,""))||0,A=c!==d[z]?2>xa?-d.ieOffsetX:-d.ieOffsetY:2>xa?n-d.ieOffsetX:o-d.ieOffsetY,l[z]=(d[z]=Math.round(c-A*(0===xa||2===xa?1:B)))+"px"}}},Ua=S.set3DTransformRatio=S.setTransformRatio=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,o,p,q,r,s,t,u,v,w,x,y,z=this.data,A=this.t.style,B=z.rotation,C=z.rotationX,D=z.rotationY,E=z.scaleX,F=z.scaleY,G=z.scaleZ,H=z.x,I=z.y,J=z.z,L=z.svg,M=z.perspective,N=z.force3D,O=z.skewY,P=z.skewX;if(O&&(P+=O,B+=O),((1===a||0===a)&&"auto"===N&&(this.tween._totalTime===this.tween._totalDuration||!this.tween._totalTime)||!N)&&!J&&!M&&!D&&!C&&1===G||Ba&&L||!Ga)return void(B||P||L?(B*=K,x=P*K,y=1e5,c=Math.cos(B)*E,f=Math.sin(B)*E,d=Math.sin(B-x)*-F,g=Math.cos(B-x)*F,x&&"simple"===z.skewType&&(b=Math.tan(x-O*K),b=Math.sqrt(1+b*b),d*=b,g*=b,O&&(b=Math.tan(O*K),b=Math.sqrt(1+b*b),c*=b,f*=b)),L&&(H+=z.xOrigin-(z.xOrigin*c+z.yOrigin*d)+z.xOffset,I+=z.yOrigin-(z.xOrigin*f+z.yOrigin*g)+z.yOffset,Ba&&(z.xPercent||z.yPercent)&&(q=this.t.getBBox(),H+=.01*z.xPercent*q.width,I+=.01*z.yPercent*q.height),q=1e-6,q>H&&H>-q&&(H=0),q>I&&I>-q&&(I=0)),u=(c*y|0)/y+","+(f*y|0)/y+","+(d*y|0)/y+","+(g*y|0)/y+","+H+","+I+")",L&&Ba?this.t.setAttribute("transform","matrix("+u):A[Da]=(z.xPercent||z.yPercent?"translate("+z.xPercent+"%,"+z.yPercent+"%) matrix(":"matrix(")+u):A[Da]=(z.xPercent||z.yPercent?"translate("+z.xPercent+"%,"+z.yPercent+"%) matrix(":"matrix(")+E+",0,0,"+F+","+H+","+I+")");if(n&&(q=1e-4,q>E&&E>-q&&(E=G=2e-5),q>F&&F>-q&&(F=G=2e-5),!M||z.z||z.rotationX||z.rotationY||(M=0)),B||P)B*=K,r=c=Math.cos(B),s=f=Math.sin(B),P&&(B-=P*K,r=Math.cos(B),s=Math.sin(B),"simple"===z.skewType&&(b=Math.tan((P-O)*K),b=Math.sqrt(1+b*b),r*=b,s*=b,z.skewY&&(b=Math.tan(O*K),b=Math.sqrt(1+b*b),c*=b,f*=b))),d=-s,g=r;else{if(!(D||C||1!==G||M||L))return void(A[Da]=(z.xPercent||z.yPercent?"translate("+z.xPercent+"%,"+z.yPercent+"%) translate3d(":"translate3d(")+H+"px,"+I+"px,"+J+"px)"+(1!==E||1!==F?" scale("+E+","+F+")":""));c=g=1,d=f=0}k=1,e=h=i=j=l=m=0,o=M?-1/M:0,p=z.zOrigin,q=1e-6,v=",",w="0",B=D*K,B&&(r=Math.cos(B),s=Math.sin(B),i=-s,l=o*-s,e=c*s,h=f*s,k=r,o*=r,c*=r,f*=r),B=C*K,B&&(r=Math.cos(B),s=Math.sin(B),b=d*r+e*s,t=g*r+h*s,j=k*s,m=o*s,e=d*-s+e*r,h=g*-s+h*r,k*=r,o*=r,d=b,g=t),1!==G&&(e*=G,h*=G,k*=G,o*=G),1!==F&&(d*=F,g*=F,j*=F,m*=F),1!==E&&(c*=E,f*=E,i*=E,l*=E),(p||L)&&(p&&(H+=e*-p,I+=h*-p,J+=k*-p+p),L&&(H+=z.xOrigin-(z.xOrigin*c+z.yOrigin*d)+z.xOffset,I+=z.yOrigin-(z.xOrigin*f+z.yOrigin*g)+z.yOffset),q>H&&H>-q&&(H=w),q>I&&I>-q&&(I=w),q>J&&J>-q&&(J=0)),u=z.xPercent||z.yPercent?"translate("+z.xPercent+"%,"+z.yPercent+"%) matrix3d(":"matrix3d(",u+=(q>c&&c>-q?w:c)+v+(q>f&&f>-q?w:f)+v+(q>i&&i>-q?w:i),u+=v+(q>l&&l>-q?w:l)+v+(q>d&&d>-q?w:d)+v+(q>g&&g>-q?w:g),C||D||1!==G?(u+=v+(q>j&&j>-q?w:j)+v+(q>m&&m>-q?w:m)+v+(q>e&&e>-q?w:e),u+=v+(q>h&&h>-q?w:h)+v+(q>k&&k>-q?w:k)+v+(q>o&&o>-q?w:o)+v):u+=",0,0,0,0,1,0,",u+=H+v+I+v+J+v+(M?1+-J/M:1)+")",A[Da]=u};j=Ha.prototype,j.x=j.y=j.z=j.skewX=j.skewY=j.rotation=j.rotationX=j.rotationY=j.zOrigin=j.xPercent=j.yPercent=j.xOffset=j.yOffset=0, -j.scaleX=j.scaleY=j.scaleZ=1,za("transform,scale,scaleX,scaleY,scaleZ,x,y,z,rotation,rotationX,rotationY,rotationZ,skewX,skewY,shortRotation,shortRotationX,shortRotationY,shortRotationZ,transformOrigin,svgOrigin,transformPerspective,directionalRotation,parseTransform,force3D,skewType,xPercent,yPercent,smoothOrigin",{parser:function(a,b,c,d,f,h,i){if(d._lastParsedTransform===i)return f;d._lastParsedTransform=i;var j=i.scale&&"function"==typeof i.scale?i.scale:0;j&&(i.scale=j(r,a));var k,l,m,n,o,p,s,t,u,v=a._gsTransform,w=a.style,x=1e-6,y=Ca.length,z=i,A={},B="transformOrigin",C=Sa(a,e,!0,z.parseTransform),D=z.transform&&("function"==typeof z.transform?z.transform(r,q):z.transform);if(C.skewType=z.skewType||C.skewType||g.defaultSkewType,d._transform=C,"rotationZ"in z&&(z.rotation=z.rotationZ),D&&"string"==typeof D&&Da)l=Q.style,l[Da]=D,l.display="block",l.position="absolute",-1!==D.indexOf("%")&&(l.width=aa(a,"width"),l.height=aa(a,"height")),O.body.appendChild(Q),k=Sa(Q,null,!1),"simple"===C.skewType&&(k.scaleY*=Math.cos(k.skewX*K)),C.svg&&(p=C.xOrigin,s=C.yOrigin,k.x-=C.xOffset,k.y-=C.yOffset,(z.transformOrigin||z.svgOrigin)&&(D={},Ma(a,ia(z.transformOrigin),D,z.svgOrigin,z.smoothOrigin,!0),p=D.xOrigin,s=D.yOrigin,k.x-=D.xOffset-C.xOffset,k.y-=D.yOffset-C.yOffset),(p||s)&&(t=Ra(Q,!0),k.x-=p-(p*t[0]+s*t[2]),k.y-=s-(p*t[1]+s*t[3]))),O.body.removeChild(Q),k.perspective||(k.perspective=C.perspective),null!=z.xPercent&&(k.xPercent=ka(z.xPercent,C.xPercent)),null!=z.yPercent&&(k.yPercent=ka(z.yPercent,C.yPercent));else if("object"==typeof z){if(k={scaleX:ka(null!=z.scaleX?z.scaleX:z.scale,C.scaleX),scaleY:ka(null!=z.scaleY?z.scaleY:z.scale,C.scaleY),scaleZ:ka(z.scaleZ,C.scaleZ),x:ka(z.x,C.x),y:ka(z.y,C.y),z:ka(z.z,C.z),xPercent:ka(z.xPercent,C.xPercent),yPercent:ka(z.yPercent,C.yPercent),perspective:ka(z.transformPerspective,C.perspective)},o=z.directionalRotation,null!=o)if("object"==typeof o)for(l in o)z[l]=o[l];else z.rotation=o;"string"==typeof z.x&&-1!==z.x.indexOf("%")&&(k.x=0,k.xPercent=ka(z.x,C.xPercent)),"string"==typeof z.y&&-1!==z.y.indexOf("%")&&(k.y=0,k.yPercent=ka(z.y,C.yPercent)),k.rotation=la("rotation"in z?z.rotation:"shortRotation"in z?z.shortRotation+"_short":C.rotation,C.rotation,"rotation",A),Ga&&(k.rotationX=la("rotationX"in z?z.rotationX:"shortRotationX"in z?z.shortRotationX+"_short":C.rotationX||0,C.rotationX,"rotationX",A),k.rotationY=la("rotationY"in z?z.rotationY:"shortRotationY"in z?z.shortRotationY+"_short":C.rotationY||0,C.rotationY,"rotationY",A)),k.skewX=la(z.skewX,C.skewX),k.skewY=la(z.skewY,C.skewY)}for(Ga&&null!=z.force3D&&(C.force3D=z.force3D,n=!0),m=C.force3D||C.z||C.rotationX||C.rotationY||k.z||k.rotationX||k.rotationY||k.perspective,m||null==z.scale||(k.scaleZ=1);--y>-1;)u=Ca[y],D=k[u]-C[u],(D>x||-x>D||null!=z[u]||null!=M[u])&&(n=!0,f=new ua(C,u,C[u],D,f),u in A&&(f.e=A[u]),f.xs0=0,f.plugin=h,d._overwriteProps.push(f.n));return D="function"==typeof z.transformOrigin?z.transformOrigin(r,q):z.transformOrigin,C.svg&&(D||z.svgOrigin)&&(p=C.xOffset,s=C.yOffset,Ma(a,ia(D),k,z.svgOrigin,z.smoothOrigin),f=va(C,"xOrigin",(v?C:k).xOrigin,k.xOrigin,f,B),f=va(C,"yOrigin",(v?C:k).yOrigin,k.yOrigin,f,B),(p!==C.xOffset||s!==C.yOffset)&&(f=va(C,"xOffset",v?p:C.xOffset,C.xOffset,f,B),f=va(C,"yOffset",v?s:C.yOffset,C.yOffset,f,B)),D="0px 0px"),(D||Ga&&m&&C.zOrigin)&&(Da?(n=!0,u=Fa,D||(D=(aa(a,u,e,!1,"50% 50%")+"").split(" "),D=D[0]+" "+D[1]+" "+C.zOrigin+"px"),D+="",f=new ua(w,u,0,0,f,-1,B),f.b=w[u],f.plugin=h,Ga?(l=C.zOrigin,D=D.split(" "),C.zOrigin=(D.length>2?parseFloat(D[2]):l)||0,f.xs0=f.e=D[0]+" "+(D[1]||"50%")+" 0px",f=new ua(C,"zOrigin",0,0,f,-1,f.n),f.b=l,f.xs0=f.e=C.zOrigin):f.xs0=f.e=D):ia(D+"",C)),n&&(d._transformType=C.svg&&Ba||!m&&3!==this._transformType?2:3),j&&(i.scale=j),f},allowFunc:!0,prefix:!0}),za("boxShadow",{defaultValue:"0px 0px 0px 0px #999",prefix:!0,color:!0,multi:!0,keyword:"inset"}),za("clipPath",{defaultValue:"inset(0px)",prefix:!0,multi:!0,formatter:ra("inset(0px 0px 0px 0px)",!1,!0)}),za("borderRadius",{defaultValue:"0px",parser:function(a,b,c,f,g,h){b=this.format(b);var i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y=["borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius"],z=a.style;for(q=parseFloat(a.offsetWidth),r=parseFloat(a.offsetHeight),i=b.split(" "),j=0;jp?1:0))||""):(p=parseFloat(n),s=n.substr((p+"").length)),""===s&&(s=d[c]||t),s!==t&&(v=ba(a,"borderLeft",o,t),w=ba(a,"borderTop",o,t),"%"===s?(m=v/q*100+"%",l=w/r*100+"%"):"em"===s?(x=ba(a,"borderLeft",1,"em"),m=v/x+"em",l=w/x+"em"):(m=v+"px",l=w+"px"),u&&(n=parseFloat(m)+p+s,k=parseFloat(l)+p+s)),g=wa(z,y[j],m+" "+l,n+" "+k,!1,"0px",g);return g},prefix:!0,formatter:ra("0px 0px 0px 0px",!1,!0)}),za("borderBottomLeftRadius,borderBottomRightRadius,borderTopLeftRadius,borderTopRightRadius",{defaultValue:"0px",parser:function(a,b,c,d,f,g){return wa(a.style,c,this.format(aa(a,c,e,!1,"0px 0px")),this.format(b),!1,"0px",f)},prefix:!0,formatter:ra("0px 0px",!1,!0)}),za("backgroundPosition",{defaultValue:"0 0",parser:function(a,b,c,d,f,g){var h,i,j,k,l,m,n="background-position",o=e||_(a,null),q=this.format((o?p?o.getPropertyValue(n+"-x")+" "+o.getPropertyValue(n+"-y"):o.getPropertyValue(n):a.currentStyle.backgroundPositionX+" "+a.currentStyle.backgroundPositionY)||"0 0"),r=this.format(b);if(-1!==q.indexOf("%")!=(-1!==r.indexOf("%"))&&r.split(",").length<2&&(m=aa(a,"backgroundImage").replace(D,""),m&&"none"!==m)){for(h=q.split(" "),i=r.split(" "),R.setAttribute("src",m),j=2;--j>-1;)q=h[j],k=-1!==q.indexOf("%"),k!==(-1!==i[j].indexOf("%"))&&(l=0===j?a.offsetWidth-R.width:a.offsetHeight-R.height,h[j]=k?parseFloat(q)/100*l+"px":parseFloat(q)/l*100+"%");q=h.join(" ")}return this.parseComplex(a.style,q,r,f,g)},formatter:ia}),za("backgroundSize",{defaultValue:"0 0",formatter:function(a){return a+="","co"===a.substr(0,2)?a:ia(-1===a.indexOf(" ")?a+" "+a:a)}}),za("perspective",{defaultValue:"0px",prefix:!0}),za("perspectiveOrigin",{defaultValue:"50% 50%",prefix:!0}),za("transformStyle",{prefix:!0}),za("backfaceVisibility",{prefix:!0}),za("userSelect",{prefix:!0}),za("margin",{parser:sa("marginTop,marginRight,marginBottom,marginLeft")}),za("padding",{parser:sa("paddingTop,paddingRight,paddingBottom,paddingLeft")}),za("clip",{defaultValue:"rect(0px,0px,0px,0px)",parser:function(a,b,c,d,f,g){var h,i,j;return 9>p?(i=a.currentStyle,j=8>p?" ":",",h="rect("+i.clipTop+j+i.clipRight+j+i.clipBottom+j+i.clipLeft+")",b=this.format(b).split(",").join(j)):(h=this.format(aa(a,this.p,e,!1,this.dflt)),b=this.format(b)),this.parseComplex(a.style,h,b,f,g)}}),za("textShadow",{defaultValue:"0px 0px 0px #999",color:!0,multi:!0}),za("autoRound,strictUnits",{parser:function(a,b,c,d,e){return e}}),za("border",{defaultValue:"0px solid #000",parser:function(a,b,c,d,f,g){var h=aa(a,"borderTopWidth",e,!1,"0px"),i=this.format(b).split(" "),j=i[0].replace(w,"");return"px"!==j&&(h=parseFloat(h)/ba(a,"borderTopWidth",1,j)+j),this.parseComplex(a.style,this.format(h+" "+aa(a,"borderTopStyle",e,!1,"solid")+" "+aa(a,"borderTopColor",e,!1,"#000")),i.join(" "),f,g)},color:!0,formatter:function(a){var b=a.split(" ");return b[0]+" "+(b[1]||"solid")+" "+(a.match(qa)||["#000"])[0]}}),za("borderWidth",{parser:sa("borderTopWidth,borderRightWidth,borderBottomWidth,borderLeftWidth")}),za("float,cssFloat,styleFloat",{parser:function(a,b,c,d,e,f){var g=a.style,h="cssFloat"in g?"cssFloat":"styleFloat";return new ua(g,h,0,0,e,-1,c,!1,0,g[h],b)}});var Va=function(a){var b,c=this.t,d=c.filter||aa(this.data,"filter")||"",e=this.s+this.c*a|0;100===e&&(-1===d.indexOf("atrix(")&&-1===d.indexOf("radient(")&&-1===d.indexOf("oader(")?(c.removeAttribute("filter"),b=!aa(this.data,"filter")):(c.filter=d.replace(z,""),b=!0)),b||(this.xn1&&(c.filter=d=d||"alpha(opacity="+e+")"),-1===d.indexOf("pacity")?0===e&&this.xn1||(c.filter=d+" alpha(opacity="+e+")"):c.filter=d.replace(x,"opacity="+e))};za("opacity,alpha,autoAlpha",{defaultValue:"1",parser:function(a,b,c,d,f,g){var h=parseFloat(aa(a,"opacity",e,!1,"1")),i=a.style,j="autoAlpha"===c;return"string"==typeof b&&"="===b.charAt(1)&&(b=("-"===b.charAt(0)?-1:1)*parseFloat(b.substr(2))+h),j&&1===h&&"hidden"===aa(a,"visibility",e)&&0!==b&&(h=0),U?f=new ua(i,"opacity",h,b-h,f):(f=new ua(i,"opacity",100*h,100*(b-h),f),f.xn1=j?1:0,i.zoom=1,f.type=2,f.b="alpha(opacity="+f.s+")",f.e="alpha(opacity="+(f.s+f.c)+")",f.data=a,f.plugin=g,f.setRatio=Va),j&&(f=new ua(i,"visibility",0,0,f,-1,null,!1,0,0!==h?"inherit":"hidden",0===b?"hidden":"inherit"),f.xs0="inherit",d._overwriteProps.push(f.n),d._overwriteProps.push(c)),f}});var Wa=function(a,b){b&&(a.removeProperty?(("ms"===b.substr(0,2)||"webkit"===b.substr(0,6))&&(b="-"+b),a.removeProperty(b.replace(B,"-$1").toLowerCase())):a.removeAttribute(b))},Xa=function(a){if(this.t._gsClassPT=this,1===a||0===a){this.t.setAttribute("class",0===a?this.b:this.e);for(var b=this.data,c=this.t.style;b;)b.v?c[b.p]=b.v:Wa(c,b.p),b=b._next;1===a&&this.t._gsClassPT===this&&(this.t._gsClassPT=null)}else this.t.getAttribute("class")!==this.e&&this.t.setAttribute("class",this.e)};za("className",{parser:function(a,b,d,f,g,h,i){var j,k,l,m,n,o=a.getAttribute("class")||"",p=a.style.cssText;if(g=f._classNamePT=new ua(a,d,0,0,g,2),g.setRatio=Xa,g.pr=-11,c=!0,g.b=o,k=da(a,e),l=a._gsClassPT){for(m={},n=l.data;n;)m[n.p]=1,n=n._next;l.setRatio(1)}return a._gsClassPT=g,g.e="="!==b.charAt(1)?b:o.replace(new RegExp("(?:\\s|^)"+b.substr(2)+"(?![\\w-])"),"")+("+"===b.charAt(0)?" "+b.substr(2):""),a.setAttribute("class",g.e),j=ea(a,k,da(a),i,m),a.setAttribute("class",o),g.data=j.firstMPT,a.style.cssText=p,g=g.xfirst=f.parse(a,j.difs,g,h)}});var Ya=function(a){if((1===a||0===a)&&this.data._totalTime===this.data._totalDuration&&"isFromStart"!==this.data.data){var b,c,d,e,f,g=this.t.style,h=i.transform.parse;if("all"===this.e)g.cssText="",e=!0;else for(b=this.e.split(" ").join("").split(","),d=b.length;--d>-1;)c=b[d],i[c]&&(i[c].parse===h?e=!0:c="transformOrigin"===c?Fa:i[c].p),Wa(g,c);e&&(Wa(g,Da),f=this.t._gsTransform,f&&(f.svg&&(this.t.removeAttribute("data-svg-origin"),this.t.removeAttribute("transform")),delete this.t._gsTransform))}};for(za("clearProps",{parser:function(a,b,d,e,f){return f=new ua(a,d,0,0,f,2),f.setRatio=Ya,f.e=b,f.pr=-10,f.data=e._tween,c=!0,f}}),j="bezier,throwProps,physicsProps,physics2D".split(","),xa=j.length;xa--;)Aa(j[xa]);j=g.prototype,j._firstPT=j._lastParsedTransform=j._transform=null,j._onInitTween=function(a,b,h,j){if(!a.nodeType)return!1;this._target=q=a,this._tween=h,this._vars=b,r=j,k=b.autoRound,c=!1,d=b.suffixMap||g.suffixMap,e=_(a,""),f=this._overwriteProps;var n,p,s,t,u,v,w,x,z,A=a.style;if(l&&""===A.zIndex&&(n=aa(a,"zIndex",e),("auto"===n||""===n)&&this._addLazySet(A,"zIndex",0)),"string"==typeof b&&(t=A.cssText,n=da(a,e),A.cssText=t+";"+b,n=ea(a,n,da(a)).difs,!U&&y.test(b)&&(n.opacity=parseFloat(RegExp.$1)),b=n,A.cssText=t),b.className?this._firstPT=p=i.className.parse(a,b.className,"className",this,null,null,b):this._firstPT=p=this.parse(a,b,null),this._transformType){for(z=3===this._transformType,Da?m&&(l=!0,""===A.zIndex&&(w=aa(a,"zIndex",e),("auto"===w||""===w)&&this._addLazySet(A,"zIndex",0)),o&&this._addLazySet(A,"WebkitBackfaceVisibility",this._vars.WebkitBackfaceVisibility||(z?"visible":"hidden"))):A.zoom=1,s=p;s&&s._next;)s=s._next;x=new ua(a,"transform",0,0,null,2),this._linkCSSP(x,null,s),x.setRatio=Da?Ua:Ta,x.data=this._transform||Sa(a,e,!0),x.tween=h,x.pr=-1,f.pop()}if(c){for(;p;){for(v=p._next,s=t;s&&s.pr>p.pr;)s=s._next;(p._prev=s?s._prev:u)?p._prev._next=p:t=p,(p._next=s)?s._prev=p:u=p,p=v}this._firstPT=t}return!0},j.parse=function(a,b,c,f){var g,h,j,l,m,n,o,p,s,t,u=a.style;for(g in b){if(n=b[g],h=i[g],"function"!=typeof n||h&&h.allowFunc||(n=n(r,q)),h)c=h.parse(a,n,g,this,c,f,b);else{if("--"===g.substr(0,2)){this._tween._propLookup[g]=this._addTween.call(this._tween,a.style,"setProperty",_(a).getPropertyValue(g)+"",n+"",g,!1,g);continue}m=aa(a,g,e)+"",s="string"==typeof n,"color"===g||"fill"===g||"stroke"===g||-1!==g.indexOf("Color")||s&&A.test(n)?(s||(n=oa(n),n=(n.length>3?"rgba(":"rgb(")+n.join(",")+")"),c=wa(u,g,m,n,!0,"transparent",c,0,f)):s&&J.test(n)?c=wa(u,g,m,n,!0,null,c,0,f):(j=parseFloat(m),o=j||0===j?m.substr((j+"").length):"",(""===m||"auto"===m)&&("width"===g||"height"===g?(j=ha(a,g,e),o="px"):"left"===g||"top"===g?(j=ca(a,g,e),o="px"):(j="opacity"!==g?0:1,o="")),t=s&&"="===n.charAt(1),t?(l=parseInt(n.charAt(0)+"1",10),n=n.substr(2),l*=parseFloat(n),p=n.replace(w,"")):(l=parseFloat(n),p=s?n.replace(w,""):""),""===p&&(p=g in d?d[g]:o),n=l||0===l?(t?l+j:l)+p:b[g],o!==p&&(""!==p||"lineHeight"===g)&&(l||0===l)&&j&&(j=ba(a,g,j,o),"%"===p?(j/=ba(a,g,100,"%")/100,b.strictUnits!==!0&&(m=j+"%")):"em"===p||"rem"===p||"vw"===p||"vh"===p?j/=ba(a,g,1,p):"px"!==p&&(l=ba(a,g,l,p),p="px"),t&&(l||0===l)&&(n=l+j+p)),t&&(l+=j),!j&&0!==j||!l&&0!==l?void 0!==u[g]&&(n||n+""!="NaN"&&null!=n)?(c=new ua(u,g,l||j||0,0,c,-1,g,!1,0,m,n),c.xs0="none"!==n||"display"!==g&&-1===g.indexOf("Style")?n:m):W("invalid "+g+" tween value: "+b[g]):(c=new ua(u,g,j,l-j,c,0,g,k!==!1&&("px"===p||"zIndex"===g),0,m,n),c.xs0=p))}f&&c&&!c.plugin&&(c.plugin=f)}return c},j.setRatio=function(a){var b,c,d,e=this._firstPT,f=1e-6;if(1!==a||this._tween._time!==this._tween._duration&&0!==this._tween._time)if(a||this._tween._time!==this._tween._duration&&0!==this._tween._time||this._tween._rawPrevTime===-1e-6)for(;e;){if(b=e.c*a+e.s,e.r?b=e.r(b):f>b&&b>-f&&(b=0),e.type)if(1===e.type)if(d=e.l,2===d)e.t[e.p]=e.xs0+b+e.xs1+e.xn1+e.xs2;else if(3===d)e.t[e.p]=e.xs0+b+e.xs1+e.xn1+e.xs2+e.xn2+e.xs3;else if(4===d)e.t[e.p]=e.xs0+b+e.xs1+e.xn1+e.xs2+e.xn2+e.xs3+e.xn3+e.xs4;else if(5===d)e.t[e.p]=e.xs0+b+e.xs1+e.xn1+e.xs2+e.xn2+e.xs3+e.xn3+e.xs4+e.xn4+e.xs5;else{for(c=e.xs0+b+e.xs1,d=1;d-1;)$a(a[e],b,c);else for(d=a.childNodes,e=d.length;--e>-1;)f=d[e],g=f.type,f.style&&(b.push(da(f)),c&&c.push(f)),1!==g&&9!==g&&11!==g||!f.childNodes.length||$a(f,b,c)};return g.cascadeTo=function(a,c,d){var e,f,g,h,i=b.to(a,c,d),j=[i],k=[],l=[],m=[],n=b._internals.reservedProps;for(a=i._targets||i.target,$a(a,k,m),i.render(c,!0,!0),$a(a,l),i.render(0,!0,!0),i._enabled(!0),e=m.length;--e>-1;)if(f=ea(m[e],k[e],l[e]),f.firstMPT){f=f.difs;for(g in d)n[g]&&(f[g]=d[g]);h={};for(g in f)h[g]=k[e][g];j.push(b.fromTo(m[e],c,h,f))}return j},a.activate([g]),g},!0),function(){var a=_gsScope._gsDefine.plugin({propName:"roundProps",version:"1.7.0",priority:-1,API:2,init:function(a,b,c){return this._tween=c,!0}}),b=function(a){var b=1>a?Math.pow(10,(a+"").length-2):1;return function(c){return(Math.round(c/a)*a*b|0)/b}},c=function(a,b){for(;a;)a.f||a.blob||(a.m=b||Math.round),a=a._next},d=a.prototype;d._onInitAllProps=function(){var a,d,e,f,g=this._tween,h=g.vars.roundProps,i={},j=g._propLookup.roundProps;if("object"!=typeof h||h.push)for("string"==typeof h&&(h=h.split(",")),e=h.length;--e>-1;)i[h[e]]=Math.round;else for(f in h)i[f]=b(h[f]);for(f in i)for(a=g._firstPT;a;)d=a._next,a.pg?a.t._mod(i):a.n===f&&(2===a.f&&a.t?c(a.t._firstPT,i[f]):(this._add(a.t,f,a.s,a.c,i[f]),d&&(d._prev=a._prev),a._prev?a._prev._next=d:g._firstPT===a&&(g._firstPT=d),a._next=a._prev=null,g._propLookup[f]=j)),a=d;return!1},d._add=function(a,b,c,d,e){this._addTween(a,b,c,c+d,b,e||Math.round),this._overwriteProps.push(b)}}(),function(){_gsScope._gsDefine.plugin({propName:"attr",API:2,version:"0.6.1",init:function(a,b,c,d){var e,f;if("function"!=typeof a.setAttribute)return!1;for(e in b)f=b[e],"function"==typeof f&&(f=f(d,a)),this._addTween(a,"setAttribute",a.getAttribute(e)+"",f+"",e,!1,e),this._overwriteProps.push(e);return!0}})}(),_gsScope._gsDefine.plugin({propName:"directionalRotation",version:"0.3.1",API:2,init:function(a,b,c,d){"object"!=typeof b&&(b={rotation:b}),this.finals={};var e,f,g,h,i,j,k=b.useRadians===!0?2*Math.PI:360,l=1e-6;for(e in b)"useRadians"!==e&&(h=b[e],"function"==typeof h&&(h=h(d,a)),j=(h+"").split("_"),f=j[0],g=parseFloat("function"!=typeof a[e]?a[e]:a[e.indexOf("set")||"function"!=typeof a["get"+e.substr(3)]?e:"get"+e.substr(3)]()),h=this.finals[e]="string"==typeof f&&"="===f.charAt(1)?g+parseInt(f.charAt(0)+"1",10)*Number(f.substr(2)):Number(f)||0,i=h-g,j.length&&(f=j.join("_"),-1!==f.indexOf("short")&&(i%=k,i!==i%(k/2)&&(i=0>i?i+k:i-k)),-1!==f.indexOf("_cw")&&0>i?i=(i+9999999999*k)%k-(i/k|0)*k:-1!==f.indexOf("ccw")&&i>0&&(i=(i-9999999999*k)%k-(i/k|0)*k)),(i>l||-l>i)&&(this._addTween(a,e,g,g+i,e),this._overwriteProps.push(e)));return!0},set:function(a){var b;if(1!==a)this._super.setRatio.call(this,a);else for(b=this._firstPT;b;)b.f?b.t[b.p](this.finals[b.p]):b.t[b.p]=this.finals[b.p],b=b._next}})._autoCSS=!0,_gsScope._gsDefine("easing.Back",["easing.Ease"],function(a){var b,c,d,e,f=_gsScope.GreenSockGlobals||_gsScope,g=f.com.greensock,h=2*Math.PI,i=Math.PI/2,j=g._class,k=function(b,c){var d=j("easing."+b,function(){},!0),e=d.prototype=new a;return e.constructor=d,e.getRatio=c,d},l=a.register||function(){},m=function(a,b,c,d,e){var f=j("easing."+a,{easeOut:new b,easeIn:new c,easeInOut:new d},!0);return l(f,a),f},n=function(a,b,c){this.t=a,this.v=b,c&&(this.next=c,c.prev=this,this.c=c.v-b,this.gap=c.t-a)},o=function(b,c){var d=j("easing."+b,function(a){this._p1=a||0===a?a:1.70158,this._p2=1.525*this._p1},!0),e=d.prototype=new a;return e.constructor=d,e.getRatio=c,e.config=function(a){return new d(a)},d},p=m("Back",o("BackOut",function(a){return(a-=1)*a*((this._p1+1)*a+this._p1)+1}),o("BackIn",function(a){return a*a*((this._p1+1)*a-this._p1)}),o("BackInOut",function(a){return(a*=2)<1?.5*a*a*((this._p2+1)*a-this._p2):.5*((a-=2)*a*((this._p2+1)*a+this._p2)+2)})),q=j("easing.SlowMo",function(a,b,c){b=b||0===b?b:.7,null==a?a=.7:a>1&&(a=1),this._p=1!==a?b:0,this._p1=(1-a)/2,this._p2=a,this._p3=this._p1+this._p2,this._calcEnd=c===!0},!0),r=q.prototype=new a;return r.constructor=q,r.getRatio=function(a){var b=a+(.5-a)*this._p;return athis._p3?this._calcEnd?1===a?0:1-(a=(a-this._p3)/this._p1)*a:b+(a-b)*(a=(a-this._p3)/this._p1)*a*a*a:this._calcEnd?1:b},q.ease=new q(.7,.7),r.config=q.config=function(a,b,c){return new q(a,b,c)},b=j("easing.SteppedEase",function(a,b){a=a||1,this._p1=1/a,this._p2=a+(b?0:1),this._p3=b?1:0},!0),r=b.prototype=new a,r.constructor=b,r.getRatio=function(a){return 0>a?a=0:a>=1&&(a=.999999999),((this._p2*a|0)+this._p3)*this._p1},r.config=b.config=function(a,c){return new b(a,c)},c=j("easing.ExpoScaleEase",function(a,b,c){this._p1=Math.log(b/a),this._p2=b-a,this._p3=a,this._ease=c},!0),r=c.prototype=new a,r.constructor=c,r.getRatio=function(a){return this._ease&&(a=this._ease.getRatio(a)),(this._p3*Math.exp(this._p1*a)-this._p3)/this._p2},r.config=c.config=function(a,b,d){return new c(a,b,d)},d=j("easing.RoughEase",function(b){b=b||{};for(var c,d,e,f,g,h,i=b.taper||"none",j=[],k=0,l=0|(b.points||20),m=l,o=b.randomize!==!1,p=b.clamp===!0,q=b.template instanceof a?b.template:null,r="number"==typeof b.strength?.4*b.strength:.4;--m>-1;)c=o?Math.random():1/l*m,d=q?q.getRatio(c):c,"none"===i?e=r:"out"===i?(f=1-c,e=f*f*r):"in"===i?e=c*c*r:.5>c?(f=2*c,e=f*f*.5*r):(f=2*(1-c),e=f*f*.5*r),o?d+=Math.random()*e-.5*e:m%2?d+=.5*e:d-=.5*e,p&&(d>1?d=1:0>d&&(d=0)),j[k++]={x:c,y:d};for(j.sort(function(a,b){return a.x-b.x}),h=new n(1,1,null),m=l;--m>-1;)g=j[m],h=new n(g.x,g.y,h);this._prev=new n(0,0,0!==h.t?h:h.next)},!0),r=d.prototype=new a,r.constructor=d,r.getRatio=function(a){var b=this._prev;if(a>b.t){for(;b.next&&a>=b.t;)b=b.next;b=b.prev}else for(;b.prev&&a<=b.t;)b=b.prev;return this._prev=b,b.v+(a-b.t)/b.gap*b.c},r.config=function(a){return new d(a)},d.ease=new d,m("Bounce",k("BounceOut",function(a){return 1/2.75>a?7.5625*a*a:2/2.75>a?7.5625*(a-=1.5/2.75)*a+.75:2.5/2.75>a?7.5625*(a-=2.25/2.75)*a+.9375:7.5625*(a-=2.625/2.75)*a+.984375}),k("BounceIn",function(a){return(a=1-a)<1/2.75?1-7.5625*a*a:2/2.75>a?1-(7.5625*(a-=1.5/2.75)*a+.75):2.5/2.75>a?1-(7.5625*(a-=2.25/2.75)*a+.9375):1-(7.5625*(a-=2.625/2.75)*a+.984375)}),k("BounceInOut",function(a){var b=.5>a;return a=b?1-2*a:2*a-1,a=1/2.75>a?7.5625*a*a:2/2.75>a?7.5625*(a-=1.5/2.75)*a+.75:2.5/2.75>a?7.5625*(a-=2.25/2.75)*a+.9375:7.5625*(a-=2.625/2.75)*a+.984375,b?.5*(1-a):.5*a+.5})),m("Circ",k("CircOut",function(a){return Math.sqrt(1-(a-=1)*a)}),k("CircIn",function(a){return-(Math.sqrt(1-a*a)-1)}),k("CircInOut",function(a){return(a*=2)<1?-.5*(Math.sqrt(1-a*a)-1):.5*(Math.sqrt(1-(a-=2)*a)+1)})),e=function(b,c,d){var e=j("easing."+b,function(a,b){this._p1=a>=1?a:1,this._p2=(b||d)/(1>a?a:1),this._p3=this._p2/h*(Math.asin(1/this._p1)||0),this._p2=h/this._p2},!0),f=e.prototype=new a;return f.constructor=e,f.getRatio=c,f.config=function(a,b){return new e(a,b)},e},m("Elastic",e("ElasticOut",function(a){return this._p1*Math.pow(2,-10*a)*Math.sin((a-this._p3)*this._p2)+1},.3),e("ElasticIn",function(a){return-(this._p1*Math.pow(2,10*(a-=1))*Math.sin((a-this._p3)*this._p2))},.3),e("ElasticInOut",function(a){return(a*=2)<1?-.5*(this._p1*Math.pow(2,10*(a-=1))*Math.sin((a-this._p3)*this._p2)):this._p1*Math.pow(2,-10*(a-=1))*Math.sin((a-this._p3)*this._p2)*.5+1},.45)),m("Expo",k("ExpoOut",function(a){return 1-Math.pow(2,-10*a)}),k("ExpoIn",function(a){return Math.pow(2,10*(a-1))-.001}),k("ExpoInOut",function(a){return(a*=2)<1?.5*Math.pow(2,10*(a-1)):.5*(2-Math.pow(2,-10*(a-1)))})),m("Sine",k("SineOut",function(a){return Math.sin(a*i)}),k("SineIn",function(a){return-Math.cos(a*i)+1}),k("SineInOut",function(a){return-.5*(Math.cos(Math.PI*a)-1)})),j("easing.EaseLookup",{find:function(b){return a.map[b]}},!0),l(f.SlowMo,"SlowMo","ease,"),l(d,"RoughEase","ease,"),l(b,"SteppedEase","ease,"),p},!0)}),_gsScope._gsDefine&&_gsScope._gsQueue.pop()(),function(a,b){"use strict";var c={},d=a.document,e=a.GreenSockGlobals=a.GreenSockGlobals||a,f=e[b];if(f)return"undefined"!=typeof module&&module.exports&&(module.exports=f),f;var g,h,i,j,k,l=function(a){var b,c=a.split("."),d=e;for(b=0;b-1;)(k=r[f[p]]||new s(f[p],[])).gsClass?(i[p]=k.gsClass,q--):j&&k.sc.push(this);if(0===q&&g){if(m=("com.greensock."+d).split("."),n=m.pop(),o=l(m.join("."))[n]=this.gsClass=g.apply(g,i),h)if(e[n]=c[n]=o,"undefined"!=typeof module&&module.exports)if(d===b){module.exports=c[b]=o;for(p in c)o[p]=c[p]}else c[b]&&(c[b][n]=o);else"function"==typeof define&&define.amd&&define((a.GreenSockAMDPath?a.GreenSockAMDPath+"/":"")+d.split(".").pop(),[],function(){return o});for(p=0;p-1;)for(f=i[j],e=d?u("easing."+f,null,!0):m.easing[f]||{},g=k.length;--g>-1;)h=k[g],x[f+"."+h]=x[h+f]=e[h]=a.getRatio?a:a[h]||new a};for(i=w.prototype,i._calcEnd=!1,i.getRatio=function(a){if(this._func)return this._params[0]=a,this._func.apply(null,this._params);var b=this._type,c=this._power,d=1===b?1-a:2===b?a:.5>a?2*a:2*(1-a);return 1===c?d*=d:2===c?d*=d*d:3===c?d*=d*d*d:4===c&&(d*=d*d*d*d),1===b?1-d:2===b?d:.5>a?d/2:1-d/2},g=["Linear","Quad","Cubic","Quart","Quint,Strong"],h=g.length;--h>-1;)i=g[h]+",Power"+h,y(new w(null,null,1,h),i,"easeOut",!0),y(new w(null,null,2,h),i,"easeIn"+(0===h?",easeNone":"")),y(new w(null,null,3,h),i,"easeInOut");x.linear=m.easing.Linear.easeIn,x.swing=m.easing.Quad.easeInOut;var z=u("events.EventDispatcher",function(a){this._listeners={},this._eventTarget=a||this});i=z.prototype,i.addEventListener=function(a,b,c,d,e){e=e||0;var f,g,h=this._listeners[a],i=0;for(this!==j||k||j.wake(),null==h&&(this._listeners[a]=h=[]),g=h.length;--g>-1;)f=h[g],f.c===b&&f.s===c?h.splice(g,1):0===i&&f.pr-1;)if(d[c].c===b)return void d.splice(c,1)},i.dispatchEvent=function(a){var b,c,d,e=this._listeners[a];if(e)for(b=e.length,b>1&&(e=e.slice(0)),c=this._eventTarget;--b>-1;)d=e[b],d&&(d.up?d.c.call(d.s||c,{type:a,target:c}):d.c.call(d.s||c))};var A=a.requestAnimationFrame,B=a.cancelAnimationFrame,C=Date.now||function(){return(new Date).getTime()},D=C();for(g=["ms","moz","webkit","o"],h=g.length;--h>-1&&!A;)A=a[g[h]+"RequestAnimationFrame"],B=a[g[h]+"CancelAnimationFrame"]||a[g[h]+"CancelRequestAnimationFrame"];u("Ticker",function(a,b){var c,e,f,g,h,i=this,l=C(),m=b!==!1&&A?"auto":!1,o=500,q=33,r="tick",s=function(a){var b,d,j=C()-D;j>o&&(l+=j-q),D+=j,i.time=(D-l)/1e3,b=i.time-h,(!c||b>0||a===!0)&&(i.frame++,h+=b+(b>=g?.004:g-b),d=!0),a!==!0&&(f=e(s)),d&&i.dispatchEvent(r)};z.call(i),i.time=i.frame=0,i.tick=function(){s(!0)},i.lagSmoothing=function(a,b){return arguments.length?(o=a||1/n,void(q=Math.min(b,o,0))):1/n>o},i.sleep=function(){null!=f&&(m&&B?B(f):clearTimeout(f),e=p,f=null,i===j&&(k=!1))},i.wake=function(a){null!==f?i.sleep():a?l+=-D+(D=C()):i.frame>10&&(D=C()-o+5),e=0===c?p:m&&A?A:function(a){return setTimeout(a,1e3*(h-i.time)+1|0)},i===j&&(k=!0),s(2)},i.fps=function(a){return arguments.length?(c=a,g=1/(c||60),h=this.time+g,void i.wake()):c},i.useRAF=function(a){return arguments.length?(i.sleep(),m=a,void i.fps(c)):m},i.fps(a),setTimeout(function(){"auto"===m&&i.frame<5&&"hidden"!==(d||{}).visibilityState&&i.useRAF(!1)},1500)}),i=m.Ticker.prototype=new m.events.EventDispatcher,i.constructor=m.Ticker;var E=u("core.Animation",function(a,b){if(this.vars=b=b||{},this._duration=this._totalDuration=a||0,this._delay=Number(b.delay)||0,this._timeScale=1,this._active=!!b.immediateRender,this.data=b.data,this._reversed=!!b.reversed,Z){k||j.wake();var c=this.vars.useFrames?Y:Z;c.add(this,c._time),this.vars.paused&&this.paused(!0)}});j=E.ticker=new m.Ticker,i=E.prototype,i._dirty=i._gc=i._initted=i._paused=!1,i._totalTime=i._time=0,i._rawPrevTime=-1,i._next=i._last=i._onUpdate=i._timeline=i.timeline=null,i._paused=!1;var F=function(){k&&C()-D>2e3&&("hidden"!==(d||{}).visibilityState||!j.lagSmoothing())&&j.wake();var a=setTimeout(F,2e3);a.unref&&a.unref()};F(),i.play=function(a,b){return null!=a&&this.seek(a,b),this.reversed(!1).paused(!1)},i.pause=function(a,b){return null!=a&&this.seek(a,b),this.paused(!0)},i.resume=function(a,b){return null!=a&&this.seek(a,b),this.paused(!1)},i.seek=function(a,b){return this.totalTime(Number(a),b!==!1)},i.restart=function(a,b){return this.reversed(!1).paused(!1).totalTime(a?-this._delay:0,b!==!1,!0)},i.reverse=function(a,b){return null!=a&&this.seek(a||this.totalDuration(),b),this.reversed(!0).paused(!1)},i.render=function(a,b,c){},i.invalidate=function(){return this._time=this._totalTime=0,this._initted=this._gc=!1,this._rawPrevTime=-1,(this._gc||!this.timeline)&&this._enabled(!0),this},i.isActive=function(){var a,b=this._timeline,c=this._startTime;return!b||!this._gc&&!this._paused&&b.isActive()&&(a=b.rawTime(!0))>=c&&a-1;)"{self}"===a[b]&&(c[b]=this);return c},i._callback=function(a){var b=this.vars,c=b[a],d=b[a+"Params"],e=b[a+"Scope"]||b.callbackScope||this,f=d?d.length:0;switch(f){case 0:c.call(e);break;case 1:c.call(e,d[0]);break;case 2:c.call(e,d[0],d[1]);break;default:c.apply(e,d)}},i.eventCallback=function(a,b,c,d){if("on"===(a||"").substr(0,2)){var e=this.vars;if(1===arguments.length)return e[a];null==b?delete e[a]:(e[a]=b,e[a+"Params"]=q(c)&&-1!==c.join("").indexOf("{self}")?this._swapSelfInParams(c):c,e[a+"Scope"]=d),"onUpdate"===a&&(this._onUpdate=b)}return this},i.delay=function(a){return arguments.length?(this._timeline.smoothChildTiming&&this.startTime(this._startTime+a-this._delay),this._delay=a,this):this._delay},i.duration=function(a){return arguments.length?(this._duration=this._totalDuration=a,this._uncache(!0),this._timeline.smoothChildTiming&&this._time>0&&this._timethis._duration?this._duration:a,b)):this._time},i.totalTime=function(a,b,c){if(k||j.wake(),!arguments.length)return this._totalTime;if(this._timeline){if(0>a&&!c&&(a+=this.totalDuration()),this._timeline.smoothChildTiming){this._dirty&&this.totalDuration();var d=this._totalDuration,e=this._timeline;if(a>d&&!c&&(a=d),this._startTime=(this._paused?this._pauseTime:e._time)-(this._reversed?d-a:a)/this._timeScale,e._dirty||this._uncache(!1),e._timeline)for(;e._timeline;)e._timeline._time!==(e._startTime+e._totalTime)/e._timeScale&&e.totalTime(e._totalTime,!0),e=e._timeline}this._gc&&this._enabled(!0,!1),(this._totalTime!==a||0===this._duration)&&(K.length&&_(),this.render(a,b,!1),K.length&&_())}return this},i.progress=i.totalProgress=function(a,b){var c=this.duration();return arguments.length?this.totalTime(c*a,b):c?this._time/c:this.ratio; -},i.startTime=function(a){return arguments.length?(a!==this._startTime&&(this._startTime=a,this.timeline&&this.timeline._sortChildren&&this.timeline.add(this,a-this._delay)),this):this._startTime},i.endTime=function(a){return this._startTime+(0!=a?this.totalDuration():this.duration())/this._timeScale},i.timeScale=function(a){if(!arguments.length)return this._timeScale;var b,c;for(a=a||n,this._timeline&&this._timeline.smoothChildTiming&&(b=this._pauseTime,c=b||0===b?b:this._timeline.totalTime(),this._startTime=c-(c-this._startTime)*this._timeScale/a),this._timeScale=a,c=this.timeline;c&&c.timeline;)c._dirty=!0,c.totalDuration(),c=c.timeline;return this},i.reversed=function(a){return arguments.length?(a!=this._reversed&&(this._reversed=a,this.totalTime(this._timeline&&!this._timeline.smoothChildTiming?this.totalDuration()-this._totalTime:this._totalTime,!0)),this):this._reversed},i.paused=function(a){if(!arguments.length)return this._paused;var b,c,d=this._timeline;return a!=this._paused&&d&&(k||a||j.wake(),b=d.rawTime(),c=b-this._pauseTime,!a&&d.smoothChildTiming&&(this._startTime+=c,this._uncache(!1)),this._pauseTime=a?b:null,this._paused=a,this._active=this.isActive(),!a&&0!==c&&this._initted&&this.duration()&&(b=d.smoothChildTiming?this._totalTime:(b-this._startTime)/this._timeScale,this.render(b,b===this._totalTime,!0))),this._gc&&!a&&this._enabled(!0,!1),this};var G=u("core.SimpleTimeline",function(a){E.call(this,0,a),this.autoRemoveChildren=this.smoothChildTiming=!0});i=G.prototype=new E,i.constructor=G,i.kill()._gc=!1,i._first=i._last=i._recent=null,i._sortChildren=!1,i.add=i.insert=function(a,b,c,d){var e,f;if(a._startTime=Number(b||0)+a._delay,a._paused&&this!==a._timeline&&(a._pauseTime=this.rawTime()-(a._timeline.rawTime()-a._pauseTime)),a.timeline&&a.timeline._remove(a,!0),a.timeline=a._timeline=this,a._gc&&a._enabled(!0,!0),e=this._last,this._sortChildren)for(f=a._startTime;e&&e._startTime>f;)e=e._prev;return e?(a._next=e._next,e._next=a):(a._next=this._first,this._first=a),a._next?a._next._prev=a:this._last=a,a._prev=e,this._recent=a,this._timeline&&this._uncache(!0),this},i._remove=function(a,b){return a.timeline===this&&(b||a._enabled(!1,!0),a._prev?a._prev._next=a._next:this._first===a&&(this._first=a._next),a._next?a._next._prev=a._prev:this._last===a&&(this._last=a._prev),a._next=a._prev=a.timeline=null,a===this._recent&&(this._recent=this._last),this._timeline&&this._uncache(!0)),this},i.render=function(a,b,c){var d,e=this._first;for(this._totalTime=this._time=this._rawPrevTime=a;e;)d=e._next,(e._active||a>=e._startTime&&!e._paused&&!e._gc)&&(e._reversed?e.render((e._dirty?e.totalDuration():e._totalDuration)-(a-e._startTime)*e._timeScale,b,c):e.render((a-e._startTime)*e._timeScale,b,c)),e=d},i.rawTime=function(){return k||j.wake(),this._totalTime};var H=u("TweenLite",function(b,c,d){if(E.call(this,c,d),this.render=H.prototype.render,null==b)throw"Cannot tween a null target.";this.target=b="string"!=typeof b?b:H.selector(b)||b;var e,f,g,h=b.jquery||b.length&&b!==a&&b[0]&&(b[0]===a||b[0].nodeType&&b[0].style&&!b.nodeType),i=this.vars.overwrite;if(this._overwrite=i=null==i?X[H.defaultOverwrite]:"number"==typeof i?i>>0:X[i],(h||b instanceof Array||b.push&&q(b))&&"number"!=typeof b[0])for(this._targets=g=o(b),this._propLookup=[],this._siblings=[],e=0;e1&&ca(f,this,null,1,this._siblings[e])):(f=g[e--]=H.selector(f),"string"==typeof f&&g.splice(e+1,1)):g.splice(e--,1);else this._propLookup={},this._siblings=aa(b,this,!1),1===i&&this._siblings.length>1&&ca(b,this,null,1,this._siblings);(this.vars.immediateRender||0===c&&0===this._delay&&this.vars.immediateRender!==!1)&&(this._time=-n,this.render(Math.min(0,-this._delay)))},!0),I=function(b){return b&&b.length&&b!==a&&b[0]&&(b[0]===a||b[0].nodeType&&b[0].style&&!b.nodeType)},J=function(a,b){var c,d={};for(c in a)W[c]||c in b&&"transform"!==c&&"x"!==c&&"y"!==c&&"width"!==c&&"height"!==c&&"className"!==c&&"border"!==c||!(!T[c]||T[c]&&T[c]._autoCSS)||(d[c]=a[c],delete a[c]);a.css=d};i=H.prototype=new E,i.constructor=H,i.kill()._gc=!1,i.ratio=0,i._firstPT=i._targets=i._overwrittenProps=i._startAt=null,i._notifyPluginsOfEnabled=i._lazy=!1,H.version="2.1.2",H.defaultEase=i._ease=new w(null,null,1,1),H.defaultOverwrite="auto",H.ticker=j,H.autoSleep=120,H.lagSmoothing=function(a,b){j.lagSmoothing(a,b)},H.selector=a.$||a.jQuery||function(b){var c=a.$||a.jQuery;return c?(H.selector=c,c(b)):(d||(d=a.document),d?d.querySelectorAll?d.querySelectorAll(b):d.getElementById("#"===b.charAt(0)?b.substr(1):b):b)};var K=[],L={},M=/(?:(-|-=|\+=)?\d*\.?\d*(?:e[\-+]?\d+)?)[0-9]/gi,N=/[\+-]=-?[\.\d]/,O=function(a){for(var b,c=this._firstPT,d=1e-6;c;)b=c.blob?1===a&&null!=this.end?this.end:a?this.join(""):this.start:c.c*a+c.s,c.m?b=c.m.call(this._tween,b,this._target||c.t,this._tween):d>b&&b>-d&&!c.blob&&(b=0),c.f?c.fp?c.t[c.p](c.fp,b):c.t[c.p](b):c.t[c.p]=b,c=c._next},P=function(a){return(1e3*a|0)/1e3+""},Q=function(a,b,c,d){var e,f,g,h,i,j,k,l=[],m=0,n="",o=0;for(l.start=a,l.end=b,a=l[0]=a+"",b=l[1]=b+"",c&&(c(l),a=l[0],b=l[1]),l.length=0,e=a.match(M)||[],f=b.match(M)||[],d&&(d._next=null,d.blob=1,l._firstPT=l._applyPT=d),i=f.length,h=0;i>h;h++)k=f[h],j=b.substr(m,b.indexOf(k,m)-m),n+=j||!h?j:",",m+=j.length,o?o=(o+1)%5:"rgba("===j.substr(-5)&&(o=1),k===e[h]||e.length<=h?n+=k:(n&&(l.push(n),n=""),g=parseFloat(e[h]),l.push(g),l._firstPT={_next:l._firstPT,t:l,p:l.length-1,s:g,c:("="===k.charAt(1)?parseInt(k.charAt(0)+"1",10)*parseFloat(k.substr(2)):parseFloat(k)-g)||0,f:0,m:o&&4>o?Math.round:P}),m+=k.length;return n+=b.substr(m),n&&l.push(n),l.setRatio=O,N.test(b)&&(l.end=null),l},R=function(a,b,c,d,e,f,g,h,i){"function"==typeof d&&(d=d(i||0,a));var j,k=typeof a[b],l="function"!==k?"":b.indexOf("set")||"function"!=typeof a["get"+b.substr(3)]?b:"get"+b.substr(3),m="get"!==c?c:l?g?a[l](g):a[l]():a[b],n="string"==typeof d&&"="===d.charAt(1),o={t:a,p:b,s:m,f:"function"===k,pg:0,n:e||b,m:f?"function"==typeof f?f:Math.round:0,pr:0,c:n?parseInt(d.charAt(0)+"1",10)*parseFloat(d.substr(2)):parseFloat(d)-m||0};return("number"!=typeof m||"number"!=typeof d&&!n)&&(g||isNaN(m)||!n&&isNaN(d)||"boolean"==typeof m||"boolean"==typeof d?(o.fp=g,j=Q(m,n?parseFloat(o.s)+o.c+(o.s+"").replace(/[0-9\-\.]/g,""):d,h||H.defaultStringFilter,o),o={t:j,p:"setRatio",s:0,c:1,f:2,pg:0,n:e||b,pr:0,m:0}):(o.s=parseFloat(m),n||(o.c=parseFloat(d)-o.s||0))),o.c?((o._next=this._firstPT)&&(o._next._prev=o),this._firstPT=o,o):void 0},S=H._internals={isArray:q,isSelector:I,lazyTweens:K,blobDif:Q},T=H._plugins={},U=S.tweenLookup={},V=0,W=S.reservedProps={ease:1,delay:1,overwrite:1,onComplete:1,onCompleteParams:1,onCompleteScope:1,useFrames:1,runBackwards:1,startAt:1,onUpdate:1,onUpdateParams:1,onUpdateScope:1,onStart:1,onStartParams:1,onStartScope:1,onReverseComplete:1,onReverseCompleteParams:1,onReverseCompleteScope:1,onRepeat:1,onRepeatParams:1,onRepeatScope:1,easeParams:1,yoyo:1,immediateRender:1,repeat:1,repeatDelay:1,data:1,paused:1,reversed:1,autoCSS:1,lazy:1,onOverwrite:1,callbackScope:1,stringFilter:1,id:1,yoyoEase:1,stagger:1},X={none:0,all:1,auto:2,concurrent:3,allOnStart:4,preexisting:5,"true":1,"false":0},Y=E._rootFramesTimeline=new G,Z=E._rootTimeline=new G,$=30,_=S.lazyRender=function(){var a,b,c=K.length;for(L={},a=0;c>a;a++)b=K[a],b&&b._lazy!==!1&&(b.render(b._lazy[0],b._lazy[1],!0),b._lazy=!1);K.length=0};Z._startTime=j.time,Y._startTime=j.frame,Z._active=Y._active=!0,setTimeout(_,1),E._updateRoot=H.render=function(){var a,b,c;if(K.length&&_(),Z.render((j.time-Z._startTime)*Z._timeScale,!1,!1),Y.render((j.frame-Y._startTime)*Y._timeScale,!1,!1),K.length&&_(),j.frame>=$){$=j.frame+(parseInt(H.autoSleep,10)||120);for(c in U){for(b=U[c].tweens,a=b.length;--a>-1;)b[a]._gc&&b.splice(a,1);0===b.length&&delete U[c]}if(c=Z._first,(!c||c._paused)&&H.autoSleep&&!Y._first&&1===j._listeners.tick.length){for(;c&&c._paused;)c=c._next;c||j.sleep()}}},j.addEventListener("tick",E._updateRoot);var aa=function(a,b,c){var d,e,f=a._gsTweenID;if(U[f||(a._gsTweenID=f="t"+V++)]||(U[f]={target:a,tweens:[]}),b&&(d=U[f].tweens,d[e=d.length]=b,c))for(;--e>-1;)d[e]===b&&d.splice(e,1);return U[f].tweens},ba=function(a,b,c,d){var e,f,g=a.vars.onOverwrite;return g&&(e=g(a,b,c,d)),g=H.onOverwrite,g&&(f=g(a,b,c,d)),e!==!1&&f!==!1},ca=function(a,b,c,d,e){var f,g,h,i;if(1===d||d>=4){for(i=e.length,f=0;i>f;f++)if((h=e[f])!==b)h._gc||h._kill(null,a,b)&&(g=!0);else if(5===d)break;return g}var j,k=b._startTime+n,l=[],m=0,o=0===b._duration;for(f=e.length;--f>-1;)(h=e[f])===b||h._gc||h._paused||(h._timeline!==b._timeline?(j=j||da(b,0,o),0===da(h,j,o)&&(l[m++]=h)):h._startTime<=k&&h._startTime+h.totalDuration()/h._timeScale>k&&((o||!h._initted)&&k-h._startTime<=2*n||(l[m++]=h)));for(f=m;--f>-1;)if(h=l[f],i=h._firstPT,2===d&&h._kill(c,a,b)&&(g=!0),2!==d||!h._firstPT&&h._initted&&i){if(2!==d&&!ba(h,b))continue;h._enabled(!1,!1)&&(g=!0)}return g},da=function(a,b,c){for(var d=a._timeline,e=d._timeScale,f=a._startTime;d._timeline;){if(f+=d._startTime,e*=d._timeScale,d._paused)return-100;d=d._timeline}return f/=e,f>b?f-b:c&&f===b||!a._initted&&2*n>f-b?n:(f+=a.totalDuration()/a._timeScale/e)>b+n?0:f-b-n};i._init=function(){var a,b,c,d,e,f,g=this.vars,h=this._overwrittenProps,i=this._duration,j=!!g.immediateRender,k=g.ease,l=this._startAt;if(g.startAt){l&&(l.render(-1,!0),l.kill()),e={};for(d in g.startAt)e[d]=g.startAt[d];if(e.data="isStart",e.overwrite=!1,e.immediateRender=!0,e.lazy=j&&g.lazy!==!1,e.startAt=e.delay=null,e.onUpdate=g.onUpdate,e.onUpdateParams=g.onUpdateParams,e.onUpdateScope=g.onUpdateScope||g.callbackScope||this,this._startAt=H.to(this.target||{},0,e),j)if(this._time>0)this._startAt=null;else if(0!==i)return}else if(g.runBackwards&&0!==i)if(l)l.render(-1,!0),l.kill(),this._startAt=null;else{0!==this._time&&(j=!1),c={};for(d in g)W[d]&&"autoCSS"!==d||(c[d]=g[d]);if(c.overwrite=0,c.data="isFromStart",c.lazy=j&&g.lazy!==!1,c.immediateRender=j,this._startAt=H.to(this.target,0,c),j){if(0===this._time)return}else this._startAt._init(),this._startAt._enabled(!1),this.vars.immediateRender&&(this._startAt=null)}if(this._ease=k=k?k instanceof w?k:"function"==typeof k?new w(k,g.easeParams):x[k]||H.defaultEase:H.defaultEase,g.easeParams instanceof Array&&k.config&&(this._ease=k.config.apply(k,g.easeParams)),this._easeType=this._ease._type,this._easePower=this._ease._power,this._firstPT=null,this._targets)for(f=this._targets.length,a=0;f>a;a++)this._initProps(this._targets[a],this._propLookup[a]={},this._siblings[a],h?h[a]:null,a)&&(b=!0);else b=this._initProps(this.target,this._propLookup,this._siblings,h,0);if(b&&H._onPluginEvent("_onInitAllProps",this),h&&(this._firstPT||"function"!=typeof this.target&&this._enabled(!1,!1)),g.runBackwards)for(c=this._firstPT;c;)c.s+=c.c,c.c=-c.c,c=c._next;this._onUpdate=g.onUpdate,this._initted=!0},i._initProps=function(b,c,d,e,f){var g,h,i,j,k,l;if(null==b)return!1;L[b._gsTweenID]&&_(),this.vars.css||b.style&&b!==a&&b.nodeType&&T.css&&this.vars.autoCSS!==!1&&J(this.vars,b);for(g in this.vars)if(l=this.vars[g],W[g])l&&(l instanceof Array||l.push&&q(l))&&-1!==l.join("").indexOf("{self}")&&(this.vars[g]=l=this._swapSelfInParams(l,this));else if(T[g]&&(j=new T[g])._onInitTween(b,this.vars[g],this,f)){for(this._firstPT=k={_next:this._firstPT,t:j,p:"setRatio",s:0,c:1,f:1,n:g,pg:1,pr:j._priority,m:0},h=j._overwriteProps.length;--h>-1;)c[j._overwriteProps[h]]=this._firstPT;(j._priority||j._onInitAllProps)&&(i=!0),(j._onDisable||j._onEnable)&&(this._notifyPluginsOfEnabled=!0),k._next&&(k._next._prev=k)}else c[g]=R.call(this,b,g,"get",l,g,0,null,this.vars.stringFilter,f);return e&&this._kill(e,b)?this._initProps(b,c,d,e,f):this._overwrite>1&&this._firstPT&&d.length>1&&ca(b,this,c,this._overwrite,d)?(this._kill(c,b),this._initProps(b,c,d,e,f)):(this._firstPT&&(this.vars.lazy!==!1&&this._duration||this.vars.lazy&&!this._duration)&&(L[b._gsTweenID]=!0),i)},i.render=function(a,b,c){var d,e,f,g,h=this,i=h._time,j=h._duration,k=h._rawPrevTime;if(a>=j-n&&a>=0)h._totalTime=h._time=j,h.ratio=h._ease._calcEnd?h._ease.getRatio(1):1,h._reversed||(d=!0,e="onComplete",c=c||h._timeline.autoRemoveChildren),0===j&&(h._initted||!h.vars.lazy||c)&&(h._startTime===h._timeline._duration&&(a=0),(0>k||0>=a&&a>=-n||k===n&&"isPause"!==h.data)&&k!==a&&(c=!0,k>n&&(e="onReverseComplete")),h._rawPrevTime=g=!b||a||k===a?a:n);else if(n>a)h._totalTime=h._time=0,h.ratio=h._ease._calcEnd?h._ease.getRatio(0):0,(0!==i||0===j&&k>0)&&(e="onReverseComplete",d=h._reversed),a>-n?a=0:0>a&&(h._active=!1,0===j&&(h._initted||!h.vars.lazy||c)&&(k>=0&&(k!==n||"isPause"!==h.data)&&(c=!0),h._rawPrevTime=g=!b||a||k===a?a:n)),(!h._initted||h._startAt&&h._startAt.progress())&&(c=!0);else if(h._totalTime=h._time=a,h._easeType){var l=a/j,m=h._easeType,o=h._easePower;(1===m||3===m&&l>=.5)&&(l=1-l),3===m&&(l*=2),1===o?l*=l:2===o?l*=l*l:3===o?l*=l*l*l:4===o&&(l*=l*l*l*l),h.ratio=1===m?1-l:2===m?l:.5>a/j?l/2:1-l/2}else h.ratio=h._ease.getRatio(a/j);if(h._time!==i||c){if(!h._initted){if(h._init(),!h._initted||h._gc)return;if(!c&&h._firstPT&&(h.vars.lazy!==!1&&h._duration||h.vars.lazy&&!h._duration))return h._time=h._totalTime=i,h._rawPrevTime=k,K.push(h),void(h._lazy=[a,b]);h._time&&!d?h.ratio=h._ease.getRatio(h._time/j):d&&h._ease._calcEnd&&(h.ratio=h._ease.getRatio(0===h._time?0:1))}for(h._lazy!==!1&&(h._lazy=!1),h._active||!h._paused&&h._time!==i&&a>=0&&(h._active=!0),0===i&&(h._startAt&&(a>=0?h._startAt.render(a,!0,c):e||(e="_dummyGS")),h.vars.onStart&&(0!==h._time||0===j)&&(b||h._callback("onStart"))),f=h._firstPT;f;)f.f?f.t[f.p](f.c*h.ratio+f.s):f.t[f.p]=f.c*h.ratio+f.s,f=f._next;h._onUpdate&&(0>a&&h._startAt&&a!==-1e-4&&h._startAt.render(a,!0,c),b||(h._time!==i||d||c)&&h._callback("onUpdate")),e&&(!h._gc||c)&&(0>a&&h._startAt&&!h._onUpdate&&a!==-1e-4&&h._startAt.render(a,!0,c),d&&(h._timeline.autoRemoveChildren&&h._enabled(!1,!1),h._active=!1),!b&&h.vars[e]&&h._callback(e),0===j&&h._rawPrevTime===n&&g!==n&&(h._rawPrevTime=0))}},i._kill=function(a,b,c){if("all"===a&&(a=null),null==a&&(null==b||b===this.target))return this._lazy=!1,this._enabled(!1,!1);b="string"!=typeof b?b||this._targets||this.target:H.selector(b)||b;var d,e,f,g,h,i,j,k,l,m=c&&this._time&&c._startTime===this._startTime&&this._timeline===c._timeline,n=this._firstPT;if((q(b)||I(b))&&"number"!=typeof b[0])for(d=b.length;--d>-1;)this._kill(a,b[d],c)&&(i=!0);else{if(this._targets){for(d=this._targets.length;--d>-1;)if(b===this._targets[d]){h=this._propLookup[d]||{},this._overwrittenProps=this._overwrittenProps||[],e=this._overwrittenProps[d]=a?this._overwrittenProps[d]||{}:"all";break}}else{if(b!==this.target)return!1;h=this._propLookup,e=this._overwrittenProps=a?this._overwrittenProps||{}:"all"}if(h){if(j=a||h,k=a!==e&&"all"!==e&&a!==h&&("object"!=typeof a||!a._tempKill),c&&(H.onOverwrite||this.vars.onOverwrite)){for(f in j)h[f]&&(l||(l=[]),l.push(f));if((l||!a)&&!ba(this,c,b,l))return!1}for(f in j)(g=h[f])&&(m&&(g.f?g.t[g.p](g.s):g.t[g.p]=g.s,i=!0),g.pg&&g.t._kill(j)&&(i=!0),g.pg&&0!==g.t._overwriteProps.length||(g._prev?g._prev._next=g._next:g===this._firstPT&&(this._firstPT=g._next),g._next&&(g._next._prev=g._prev),g._next=g._prev=null),delete h[f]),k&&(e[f]=1);!this._firstPT&&this._initted&&n&&this._enabled(!1,!1)}}return i},i.invalidate=function(){this._notifyPluginsOfEnabled&&H._onPluginEvent("_onDisable",this);var a=this._time;return this._firstPT=this._overwrittenProps=this._startAt=this._onUpdate=null,this._notifyPluginsOfEnabled=this._active=this._lazy=!1,this._propLookup=this._targets?{}:[],E.prototype.invalidate.call(this),this.vars.immediateRender&&(this._time=-n,this.render(a,!1,this.vars.lazy!==!1)),this},i._enabled=function(a,b){if(k||j.wake(),a&&this._gc){var c,d=this._targets;if(d)for(c=d.length;--c>-1;)this._siblings[c]=aa(d[c],this,!0);else this._siblings=aa(this.target,this,!0)}return E.prototype._enabled.call(this,a,b),this._notifyPluginsOfEnabled&&this._firstPT?H._onPluginEvent(a?"_onEnable":"_onDisable",this):!1},H.to=function(a,b,c){return new H(a,b,c)},H.from=function(a,b,c){return c.runBackwards=!0,c.immediateRender=0!=c.immediateRender,new H(a,b,c)},H.fromTo=function(a,b,c,d){return d.startAt=c,d.immediateRender=0!=d.immediateRender&&0!=c.immediateRender,new H(a,b,d)},H.delayedCall=function(a,b,c,d,e){return new H(b,0,{delay:a,onComplete:b,onCompleteParams:c,callbackScope:d,onReverseComplete:b,onReverseCompleteParams:c,immediateRender:!1,lazy:!1,useFrames:e,overwrite:0})},H.set=function(a,b){return new H(a,0,b)},H.getTweensOf=function(a,b){if(null==a)return[];a="string"!=typeof a?a:H.selector(a)||a;var c,d,e,f;if((q(a)||I(a))&&"number"!=typeof a[0]){for(c=a.length,d=[];--c>-1;)d=d.concat(H.getTweensOf(a[c],b));for(c=d.length;--c>-1;)for(f=d[c],e=c;--e>-1;)f===d[e]&&d.splice(c,1)}else if(a._gsTweenID)for(d=aa(a).concat(),c=d.length;--c>-1;)(d[c]._gc||b&&!d[c].isActive())&&d.splice(c,1);return d||[]},H.killTweensOf=H.killDelayedCallsTo=function(a,b,c){"object"==typeof b&&(c=b,b=!1);for(var d=H.getTweensOf(a,b),e=d.length;--e>-1;)d[e]._kill(c,a)};var ea=u("plugins.TweenPlugin",function(a,b){this._overwriteProps=(a||"").split(","),this._propName=this._overwriteProps[0],this._priority=b||0,this._super=ea.prototype},!0);if(i=ea.prototype,ea.version="1.19.0",ea.API=2,i._firstPT=null,i._addTween=R,i.setRatio=O,i._kill=function(a){var b,c=this._overwriteProps,d=this._firstPT;if(null!=a[this._propName])this._overwriteProps=[];else for(b=c.length;--b>-1;)null!=a[c[b]]&&c.splice(b,1);for(;d;)null!=a[d.n]&&(d._next&&(d._next._prev=d._prev),d._prev?(d._prev._next=d._next,d._prev=null):this._firstPT===d&&(this._firstPT=d._next)),d=d._next;return!1},i._mod=i._roundProps=function(a){for(var b,c=this._firstPT;c;)b=a[this._propName]||null!=c.n&&a[c.n.split(this._propName+"_").join("")],b&&"function"==typeof b&&(2===c.f?c.t._applyPT.m=b:c.m=b),c=c._next},H._onPluginEvent=function(a,b){var c,d,e,f,g,h=b._firstPT;if("_onInitAllProps"===a){for(;h;){for(g=h._next,d=e;d&&d.pr>h.pr;)d=d._next;(h._prev=d?d._prev:f)?h._prev._next=h:e=h,(h._next=d)?d._prev=h:f=h,h=g}h=b._firstPT=e}for(;h;)h.pg&&"function"==typeof h.t[a]&&h.t[a]()&&(c=!0),h=h._next;return c},ea.activate=function(a){for(var b=a.length;--b>-1;)a[b].API===ea.API&&(T[(new a[b])._propName]=a[b]);return!0},t.plugin=function(a){if(!(a&&a.propName&&a.init&&a.API))throw"illegal plugin definition.";var b,c=a.propName,d=a.priority||0,e=a.overwriteProps,f={init:"_onInitTween",set:"setRatio",kill:"_kill",round:"_mod",mod:"_mod",initAll:"_onInitAllProps"},g=u("plugins."+c.charAt(0).toUpperCase()+c.substr(1)+"Plugin",function(){ea.call(this,c,d),this._overwriteProps=e||[]},a.global===!0),h=g.prototype=new ea(c);h.constructor=g,g.API=a.API;for(b in f)"function"==typeof a[b]&&(h[f[b]]=a[b]);return g.version=a.version,ea.activate([g]),g},g=a._gsQueue){for(h=0;h { - let factor = segment / length - return { x: point.x - dx * factor, y: point.y - dy * factor } -} -var getRoundCornerBy3Points2 = ({ angularPoint, p1, p2, radius }) => { - let dx1 = angularPoint.x - p1.x - let dy1 = angularPoint.y - p1.y - let dx2 = angularPoint.x - p2.x - let dy2 = angularPoint.y - p2.y - let angle = (Math.atan2(dy1, dx1) - Math.atan2(dy2, dx2)) / 2 - let tan = Math.abs(Math.tan(angle)) - let segment = radius / tan - let length1 = Math.sqrt(dx1 * dx1 + dy1 * dy1) - let length2 = Math.sqrt(dx2 * dx2 + dy2 * dy2) - let length = Math.min(length1, length2) - if (segment > length) { - segment = length - radius = length * tan - } - let p1Cross = getProportionPoint2(angularPoint, segment, length1, dx1, dy1) - let p2Cross = getProportionPoint2(angularPoint, segment, length2, dx2, dy2) - let dx = angularPoint.x * 2 - p1Cross.x - p2Cross.x - let dy = angularPoint.y * 2 - p1Cross.y - p2Cross.y - let L = Math.sqrt(dx * dx + dy * dy) - let d = Math.sqrt(segment * segment + radius * radius) - let circlePoint = getProportionPoint2(angularPoint, d, L, dx, dy) - let startAngle = Math.atan2(p1Cross.y - circlePoint.y, p1Cross.x - circlePoint.x) - let endAngle = Math.atan2(p2Cross.y - circlePoint.y, p2Cross.x - circlePoint.x) - let sweepAngle = endAngle - startAngle - if (sweepAngle < 0) { - startAngle = endAngle - sweepAngle = -sweepAngle - } - endAngle = startAngle + sweepAngle - return { p1Cross, p2Cross, startAngle, endAngle, circlePoint } -} - -var POINT = function (x, y) { - this.x = x - this.y = y - this.equals = function (p) { - return this.x === p.x && this.y === p.y - } - this.rotate = function (center, a, clockWise) { - let { x, y } = this - if (clockWise) a = -a - let rx0 = center.x - let ry0 = center.y - this.x = (x - rx0) * Math.cos(a) - (y - ry0) * Math.sin(a) + rx0 - this.y = (x - rx0) * Math.sin(a) + (y - ry0) * Math.cos(a) + ry0 - } -} - -var LINE = function (k, b) { - this.k = k - this.b = b - this.kSign = this.k > 0 ? 1 : -1 - this.a = Math.atan(this.k) - this.bDiff = function (offset) { - return Math.abs(offset / Math.cos(this.a)) - } - this.crossPoint = function (line) { - const x = (line.b - this.b) / (this.k - line.k) - const y = this.k * x + this.b - return new POINT(x, y) - } - this.verticalCrossPoint = function (x, y) { - let k1 = -1 / this.k - let b1 = y - k1 * x - let k2 = this.k - let b2 = this.b - let x1 = (b2 - b1) / (k1 - k2) - let y1 = k2 * x1 + b2 - return { x: x1, y: y1 } - } -} -var LINESEGMENT = function (p1, p2) { - const x1 = p1.x - const x2 = p2.x - const y1 = p1.y - const y2 = p2.y - const k = (y2 - y1) / (x2 - x1) - const b = y1 - k * x1 - LINE.call(this, k, b) - Object.assign(this, { - x1, - x2, - y1, - y2, - p1, - p2 - }) - this.isUp = this.y2 >= this.y1 ? 1 : -1 - this.sign = this.kSign * this.isUp - this.xDiff = Math.abs(this.x1 - this.x2) - this.yDiff = Math.abs(this.y1 - this.y2) - this.length = Math.sqrt(this.xDiff * this.xDiff + this.yDiff * this.yDiff) - this.distanceTo = function (x, y) { - return Math.abs(this.k * x - y + this.b) / Math.sqrt(1 + this.k * this.k) - } - this.mirrow = function (x, y) { - const { x: midX, y: midY } = this.verticalCrossPoint(x, y) - return { x: midX * 2 - x, y: midY * 2 - y } - } - this.rightLine = function (offset) { - return new LINE(this.k, this.b - this.sign * this.bDiff(offset)) - } - this.leftLine = function (offset) { - return new LINE(this.k, this.b + this.sign * this.bDiff(offset)) - } - this.leftP1 = function (offset) { - return new POINT(this.p1.x - this.sign * offset * Math.sin(this.a), this.p1.y + this.sign * offset * Math.cos(this.a)) - } - this.rightP1 = function (offset) { - return new POINT(this.p1.x + this.sign * offset * Math.sin(this.a), this.p1.y - this.sign * offset * Math.cos(this.a)) - } - this.leftP2 = function (offset) { - return new POINT(this.p2.x - this.sign * offset * Math.sin(this.a), this.p2.y + this.sign * offset * Math.cos(this.a)) - } - this.rightP2 = function (offset) { - return new POINT(this.p2.x + this.sign * offset * Math.sin(this.a), this.p2.y - this.sign * offset * Math.cos(this.a)) - } -} - -var mainColor = 'rgb(110,149,254)' -var borderColor = 'rgb(110,125,254)' -var arrowColor = 'rgb(250,250,250)' //189, 192, 203 -var PathLine = function (radius, linePath, floorHeight,color='rgb(110, 149, 254)',bColor='rgb(110,125,254)',isDrawCirl=true) { - THREE.Group.call(this) - mainColor = color - borderColor = bColor - const roundCornoredPath = new THREE.Geometry() - const rings = new THREE.Geometry() - const arrowGeo = new THREE.Geometry() - const factor = radius / 20 - const innerBorderRatio = (20 - 10) / 20 - const innerRadius = radius * innerBorderRatio - const turnRadius = factor * 40 - const centerRadius = turnRadius - radius - const roundFragments = (1 / 180) * Math.PI - const ringInnerRadius = (radius / 26) * 30 - const ringOuterRadius = (radius / 26) * 56 - const ringMiddleRadius = ringOuterRadius - factor * 10 - const avgArrow = 40 * factor - let lineSegments = [] - const h1 = floorHeight + floorHeight / 100 - const h2 = floorHeight + floorHeight / 50 - const addFace = (geometry, p1, p2, theta, clockWise) => { - const index = {a: 0,b: 1,c: 2,d: 3,e: 4,f: 5,g: 6,h: 7} - const faces = [ - ['a', 'b', 'd', borderColor], - ['a', 'c', 'd', borderColor], - ['c', 'd', 'f', mainColor], - ['c', 'e', 'f', mainColor], - ['e', 'f', 'h', borderColor], - ['e', 'g', 'h', borderColor] - ] - let length = geometry.vertices.length - let lineSegment = new LINESEGMENT(p1, p2) - let a = lineSegment.leftP1(radius) - let b = lineSegment.leftP2(radius) - let c = lineSegment.leftP1(innerRadius) - let d = lineSegment.leftP2(innerRadius) - let e = lineSegment.rightP1(innerRadius) - let f = lineSegment.rightP2(innerRadius) - let g = lineSegment.rightP1(radius) - let h = lineSegment.rightP2(radius) - if (clockWise !== undefined) { - a.rotate(p1, theta, !clockWise) - b.rotate(p2, theta, clockWise) - c.rotate(p1, theta, !clockWise) - d.rotate(p2, theta, clockWise) - e.rotate(p1, theta, !clockWise) - f.rotate(p2, theta, clockWise) - g.rotate(p1, theta, !clockWise) - h.rotate(p2, theta, clockWise) - } - let points = [a, b, c, d, e, f, g, h] - geometry.vertices.push(...points.map(point => new THREE.Vector3(point.x, point.y, h1))) - faces.forEach(([a, b, c, color]) => { - const face = new THREE.Face3(length + index[a], length + index[b], length + index[c]) - face.color = new THREE.Color(color) - geometry.faces.push(face) - }) - } - const addSectorFace = (geometry, { x, y }, pathAngle) => { - const offsetAngle = Math.asin(innerRadius / ringMiddleRadius) - const sweepAngle = Math.PI * 2 - 2 * offsetAngle - // *out* - // a-----------b - // \ \ / - // c-------d - // \ \ / - // e---f - // \ / - // g - // *in* - const index = { - a: 0, - b: 1, - c: 2, - d: 3, - e: 4, - f: 5, - g: 6 - } - let mColor = isDrawCirl?mainColor:'rgb(169,181,211)' - const faces = [ - ['a', 'b', 'd', borderColor, true], - ['a', 'c', 'd', borderColor, true], - ['c', 'd', 'f', mColor, false], - ['c', 'e', 'f', mColor, false], - ['e', 'f', 'g', arrowColor, false] - ] - const angles = Math.ceil((Math.PI * 2) / roundFragments) - let avg = (Math.PI * 2) / angles - const getPoint = (angle, r) => ({ - x: x + r * Math.cos(angle), - y: y + r * Math.sin(angle) - }) - const getACEG = angle => ({ - a: getPoint(angle, ringOuterRadius), - c: getPoint(angle, ringMiddleRadius), - e: getPoint(angle, ringInnerRadius), - g: { x, y } - }) - const startAngle = pathAngle + offsetAngle - let lastACEG = getACEG(startAngle) - let drawBorder = true - for (let j = 1; j <= angles; j++) { - let length = geometry.vertices.length - const { a, c, e, g } = lastACEG - let angle = startAngle + j * avg - if (angle > sweepAngle + startAngle) drawBorder = false - const { a: b, c: d, e: f } = getACEG(angle) - let points = [a, b, c, d, e, f, g] - geometry.vertices.push(...points.map(point => new THREE.Vector3(point.x, point.y, h2))) - faces.forEach(([a, b, c, color, isBorder]) => { - if (isBorder && !drawBorder) return - const face = new THREE.Face3(length + index[a], length + index[b], length + index[c]) - face.color = new THREE.Color(color) - geometry.faces.push(face) - }) - lastACEG = { a: b, c: d, e: f, g } - } - } - var vercts = [] - var arrowVs = [ - [0, 0], - [-13, -12], - [-13, 4], - [0, 18], - [13, 4], - [13, -12] - ] - const addArrowFace = (geometry, { x: x0, y: y0, angle }) => { - // d - // /|\ - // c | e - // |\a/| - // |/ \| - // b f - - let length = geometry.vertices.length - const index = { - a: 0, - b: 1, - c: 2, - d: 3, - e: 4, - f: 5 - } - let n = angle - Math.PI / 2 - let points = arrowVs.map(([x, y]) => { - const x1 = x * factor - const y1 = y * factor - return { - x: x0 + x1 * Math.cos(n) - y1 * Math.sin(n), - y: y0 + y1 * Math.cos(n) + x1 * Math.sin(n) - } - }) - const faces = ['abc', 'acd', 'ade', 'aef'] - - points.forEach(obj => vercts.push(new THREE.Vector3(obj.x, obj.y, h2))) - points.forEach(obj => geometry.vertices.push(new THREE.Vector3(obj.x, obj.y, h2))) - faces.forEach(string => { - const face = new THREE.Face3(...string.split('').map(c => length + index[c])) - face.color = new THREE.Color(arrowColor) - geometry.faces.push(face) - }) - } - - //避免两个点的路径画不出来 - if (linePath.length == 2) { - let pointAdd = [] - pointAdd.push((parseInt(linePath[0][0]) + parseInt(linePath[1][0])) / 2) - pointAdd.push((parseInt(linePath[0][1]) + parseInt(linePath[1][1])) / 2) - linePath.splice(1, 0, pointAdd) - } - for (let i = 0; i < linePath.length - 1; i++) { - const lineSegment = new LINESEGMENT(new POINT(...linePath[i]), new POINT(...linePath[i + 1])) - if(!isNaN(lineSegment.a) && !isNaN(lineSegment.b)){ - lineSegments.push(lineSegment); - } - } - - // ring - if (lineSegments.length) { - let startLine = lineSegments[0] - let endLine = lineSegments[lineSegments.length - 1] - let startPathAngle = Math.atan2(startLine.y2 - startLine.y1, startLine.x2 - startLine.x1) - let endPathAngle = Math.atan2(endLine.y1 - endLine.y2, endLine.x1 - endLine.x2) - addSectorFace(rings, startLine.p1, startPathAngle) - addSectorFace(rings, endLine.p2, endPathAngle) - } - - let totalLength = avgArrow / -2 - let lastTotals = [] - let cutStraightLines = [] - // path - let lastP2Cross = null - for (let i = 0; i < lineSegments.length - 1; i++) { - let lineA = lineSegments[i] - let lineB = lineSegments[i + 1] - let { p1Cross, p2Cross, startAngle, endAngle, circlePoint } = getRoundCornerBy3Points2({ - angularPoint: lineA.p2, - p1: lineA.p1, - p2: lineB.p2, - radius: centerRadius - }) - let angleDiff = endAngle - startAngle - const clockWise = angleDiff > Math.PI - if (clockWise) angleDiff = Math.PI * 2 - angleDiff - const angles = Math.ceil(angleDiff / roundFragments) - let avg = angleDiff / angles - let s = lastP2Cross ? lastP2Cross : lineA.p1 - let e = p1Cross - let lineSegment = new LINESEGMENT(s, e) - cutStraightLines.push(lineSegment) - lastTotals.push(totalLength) - totalLength += lineSegment.length - addFace(roundCornoredPath, s, e) - lastP2Cross = p2Cross - const getFragPointByAngle = angle => ({ - x: circlePoint.x + centerRadius * Math.cos(angle), - y: circlePoint.y + centerRadius * Math.sin(angle) - }) - let lastFragment = getFragPointByAngle(startAngle) - for (let j = 1; j <= angles; j++) { - let angle = startAngle + (clockWise ? -1 : 1) * j * avg - let tmp = getFragPointByAngle(angle) - addFace(roundCornoredPath, lastFragment, tmp, avg / 2, clockWise) - lastFragment = tmp - } - if (i === lineSegments.length - 2) { - s = p2Cross - e = lineB.p2 - lineSegment = new LINESEGMENT(s, e) - cutStraightLines.push(lineSegment) - lastTotals.push(totalLength) - totalLength += lineSegment.length - addFace(roundCornoredPath, s, e) - } - } - // arrow - const num = Math.floor(totalLength / avgArrow) < 0 ? 0 : Math.floor(totalLength / avgArrow) - new Array(num) - .fill(0) - .map((_, i) => i * avgArrow + avgArrow / 2) - .map(length => { - for (let i = 0; i < lastTotals.length; i++) { - if (lastTotals[i] <= length && lastTotals[i] + cutStraightLines[i].length > length) return [i, (length - lastTotals[i]) / cutStraightLines[i].length] - } - return [lastTotals.length - 1, 1] - }) - .map(([i, percent]) => { - let line = cutStraightLines[i] - return { - x: (line.x2 - line.x1) * percent + line.x1, - y: (line.y2 - line.y1) * percent + line.y1, - angle: Math.atan2(line.y2 - line.y1, line.x2 - line.x1) - } - }) - .forEach((point, index) => { - if(index%3==0){ - addArrowFace(arrowGeo, point) - } - }) - const material = new THREE.MeshBasicMaterial({ - side: THREE.DoubleSide, - vertexColors: THREE.FaceColors - }) - const pathMesh = new THREE.Mesh(roundCornoredPath, material) - const ringsMesh = new THREE.Mesh(rings, material) - const arrowMesh = new THREE.Mesh(arrowGeo, material) - this.add(pathMesh) - this.add(ringsMesh) - this.add(arrowMesh) - this.name = 'meshline' -} - -PathLine.prototype = Object.create(THREE.Group.prototype) -PathLine.prototype.constructor = PathLine -PathLine.prototype.destroy = function () { - const clearCache = item => { - item.geometry.dispose() - item.material.dispose() - } - const removeObj = obj => { - let arr = obj.children.filter(x => x) - arr.forEach(item => { - if (item.children.length) { - removeObj(item) - } else { - clearCache(item) - item.clear() - } - }) - obj.clear() - arr = null - } - removeObj(this) -} -////////////////////////////------------------------------ 路径dijkstra算法 -var dijkstra = { - single_source_shortest_paths: function(graph, s, d) { - var predecessors = {}; - var costs = {}; - costs[s] = 0; - var open = dijkstra.PriorityQueue.make(); - open.push(s, 0); - var closest, u, v, cost_of_s_to_u, adjacent_nodes, cost_of_e, cost_of_s_to_u_plus_cost_of_e, cost_of_s_to_v, first_visit; - while (!open.empty()) { - closest = open.pop(); - u = closest.value; - cost_of_s_to_u = closest.cost; - adjacent_nodes = graph[u] || {}; - for (v in adjacent_nodes) { - if (adjacent_nodes.hasOwnProperty(v)) { - cost_of_e = adjacent_nodes[v]; - cost_of_s_to_u_plus_cost_of_e = cost_of_s_to_u + cost_of_e; - cost_of_s_to_v = costs[v]; - first_visit = (typeof costs[v] === 'undefined'); - if (first_visit || cost_of_s_to_v > cost_of_s_to_u_plus_cost_of_e) { - costs[v] = cost_of_s_to_u_plus_cost_of_e; - open.push(v, cost_of_s_to_u_plus_cost_of_e); - predecessors[v] = u - } - } - } - } - if (typeof d !== 'undefined' && typeof costs[d] === 'undefined') { - var msg = ['Could not find a path from ', s, ' to ', d, '.'].join(''); - throw new Error(msg); - } - return { - "predecessors": predecessors, - "costs": costs - } - }, - extract_shortest_path_from_predecessor_list: function(pred, d) { - var nodes = []; - var u = d; - var predecessor; - while (u) { - nodes.push(u); - predecessor = pred.predecessors[u]; - u = pred.predecessors[u] - } - nodes.reverse(); - return { - "cost": pred.costs[d], - "nodes": nodes - } - }, - find_path_ByList:function(graph, list){ - var allNode = {"cost":0, "nodes":[]} - for(var _kk=0; _kk< list.length-1; _kk++) { - try{ - var node = dijkstra.find_path(graph, list[_kk], list[_kk+1]); - allNode.cost += node.cost; - for(var _kkk=0; _kkk - #include - #include - #include - #include - uniform float linewidth; - uniform vec2 resolution; - attribute vec3 instanceStart; - attribute vec3 instanceEnd; - attribute vec3 instanceColorStart; - attribute vec3 instanceColorEnd; - varying vec2 vUv; - #ifdef USE_DASH - uniform float dashScale; - attribute float instanceDistanceStart; - attribute float instanceDistanceEnd; - varying float vLineDistance; - #endif - void trimSegment( const in vec4 start, inout vec4 end ) { - // trim end segment so it terminates between the camera plane and the near plane - // conservative estimate of the near plane - float a = projectionMatrix[ 2 ][ 2 ]; // 3nd entry in 3th column - float b = projectionMatrix[ 3 ][ 2 ]; // 3nd entry in 4th column - float nearEstimate = - 0.5 * b / a; - float alpha = ( nearEstimate - start.z ) / ( end.z - start.z ); - end.xyz = mix( start.xyz, end.xyz, alpha ); - } - void main() { - #ifdef USE_COLOR - vColor.xyz = ( position.y < 0.5 ) ? instanceColorStart : instanceColorEnd; - #endif - #ifdef USE_DASH - vLineDistance = ( position.y < 0.5 ) ? dashScale * instanceDistanceStart : dashScale * instanceDistanceEnd; - #endif - float aspect = resolution.x / resolution.y; - vUv = uv; - // camera space - vec4 start = modelViewMatrix * vec4( instanceStart, 1.0 ); - vec4 end = modelViewMatrix * vec4( instanceEnd, 1.0 ); - // special case for perspective projection, and segments that terminate either in, or behind, the camera plane - // clearly the gpu firmware has a way of addressing this issue when projecting into ndc space - // but we need to perform ndc-space calculations in the shader, so we must address this issue directly - // perhaps there is a more elegant solution -- WestLangley - bool perspective = ( projectionMatrix[ 2 ][ 3 ] == - 1.0 ); // 4th entry in the 3rd column - if ( perspective ) { - if ( start.z < 0.0 && end.z >= 0.0 ) { - trimSegment( start, end ); - } else if ( end.z < 0.0 && start.z >= 0.0 ) { - trimSegment( end, start ); - } - } - // clip space - vec4 clipStart = projectionMatrix * start; - vec4 clipEnd = projectionMatrix * end; - // ndc space - vec2 ndcStart = clipStart.xy / clipStart.w; - vec2 ndcEnd = clipEnd.xy / clipEnd.w; - // direction - vec2 dir = ndcEnd - ndcStart; - // account for clip-space aspect ratio - dir.x *= aspect; - dir = normalize( dir ); - // perpendicular to dir - vec2 offset = vec2( dir.y, - dir.x ); - // undo aspect ratio adjustment - dir.x /= aspect; - offset.x /= aspect; - // sign flip - if ( position.x < 0.0 ) offset *= - 1.0; - // endcaps - if ( position.y < 0.0 ) { - offset += - dir; - } else if ( position.y > 1.0 ) { - offset += dir; - } - // adjust for linewidth - offset *= linewidth; - // adjust for clip-space to screen-space conversion // maybe resolution should be based on viewport ... - offset /= resolution.y; - // select end - vec4 clip = ( position.y < 0.5 ) ? clipStart : clipEnd; - // back to clip space - offset *= clip.w; - clip.xy += offset; - gl_Position = clip; - vec4 mvPosition = ( position.y < 0.5 ) ? start : end; // this is an approximation - #include - #include - #include - } - `, - fragmentShader: - ` - uniform vec3 diffuse; - uniform float opacity; - #ifdef USE_DASH - uniform float dashSize; - uniform float gapSize; - #endif - varying float vLineDistance; - #include - #include - #include - #include - #include - varying vec2 vUv; - void main() { - #include - #ifdef USE_DASH - if ( vUv.y < - 1.0 || vUv.y > 1.0 ) discard; // discard endcaps - if ( mod( vLineDistance, dashSize + gapSize ) > dashSize ) discard; // todo - FIX - #endif - if ( abs( vUv.y ) > 1.0 ) { - float a = vUv.x; - float b = ( vUv.y > 0.0 ) ? vUv.y - 1.0 : vUv.y + 1.0; - float len2 = a * a + b * b; - if ( len2 > 1.0 ) discard; - } - vec4 diffuseColor = vec4( diffuse, opacity ); - #include - #include - gl_FragColor = vec4( diffuseColor.rgb, diffuseColor.a ); - #include - #include - #include - #include - } ` -}; -THREE.LineMaterial = function ( parameters ) { - THREE.ShaderMaterial.call( this, { - type: 'LineMaterial', - uniforms: THREE.UniformsUtils.clone( THREE.ShaderLib[ 'line' ].uniforms ), - vertexShader: THREE.ShaderLib[ 'line' ].vertexShader, - fragmentShader: THREE.ShaderLib[ 'line' ].fragmentShader - } ); - this.dashed = false; - Object.defineProperties( this, { - color: { - enumerable: true, - get: function () { - return this.uniforms.diffuse.value; - }, - set: function ( value ) { - this.uniforms.diffuse.value = value; - } - }, - linewidth: { - enumerable: true, - get: function () { - return this.uniforms.linewidth.value; - }, - set: function ( value ) { - this.uniforms.linewidth.value = value; - } - }, - dashScale: { - enumerable: true, - get: function () { - return this.uniforms.dashScale.value; - }, - set: function ( value ) { - this.uniforms.dashScale.value = value; - } - }, - dashSize: { - enumerable: true, - get: function () { - return this.uniforms.dashSize.value; - }, - set: function ( value ) { - this.uniforms.dashSize.value = value; - } - }, - gapSize: { - enumerable: true, - get: function () { - return this.uniforms.gapSize.value; - }, - set: function ( value ) { - this.uniforms.gapSize.value = value; - } - }, - resolution: { - enumerable: true, - get: function () { - return this.uniforms.resolution.value; - }, - set: function ( value ) { - this.uniforms.resolution.value.copy( value ); - } - } - } ); - this.setValues( parameters ); -}; -THREE.LineMaterial.prototype = Object.create( THREE.ShaderMaterial.prototype ); -THREE.LineMaterial.prototype.constructor = THREE.LineMaterial; -THREE.LineMaterial.prototype.isLineMaterial = true; -THREE.LineMaterial.prototype.copy = function ( source ) { - THREE.ShaderMaterial.prototype.copy.call( this, source ); - this.color.copy( source.color ); - this.linewidth = source.linewidth; - this.resolution = source.resolution; - // todo - return this; -}; -// Generated by CoffeeScript 1.6.3 -(function() { - var BACK, COPLANAR, EPSILON, FRONT, SPANNING, returning, - __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; }, - __slice = [].slice, - __hasProp = {}.hasOwnProperty, - __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }; - EPSILON = 1e-5; - COPLANAR = 0; - FRONT = 1; - BACK = 2; - SPANNING = 3; - returning = function(value, fn) { - fn(); - return value; - }; - window.ThreeBSP = (function() { - function ThreeBSP(treeIsh, matrix) { - this.matrix = matrix; - this.intersect = __bind(this.intersect, this); - this.union = __bind(this.union, this); - this.subtract = __bind(this.subtract, this); - this.toGeometry = __bind(this.toGeometry, this); - this.toMesh = __bind(this.toMesh, this); - this.toTree = __bind(this.toTree, this); - if (this.matrix == null) { - this.matrix = new THREE.Matrix4(); - } - this.tree = this.toTree(treeIsh); - } - ThreeBSP.prototype.toTree = function(treeIsh) { - var face, geometry, i, polygons, _fn, _i, _len, _ref, - _this = this; - if (treeIsh instanceof ThreeBSP.Node) { - return treeIsh; - } - polygons = []; - geometry = treeIsh instanceof THREE.Geometry ? treeIsh : treeIsh instanceof THREE.Mesh ? (treeIsh.updateMatrix(), this.matrix = treeIsh.matrix.clone(), treeIsh.geometry) : void 0; - _ref = geometry.faces; - _fn = function(face, i) { - var faceVertexUvs, idx, polygon, vIndex, vName, vertex, _j, _len1, _ref1, _ref2; - faceVertexUvs = (_ref1 = geometry.faceVertexUvs) != null ? _ref1[0][i] : void 0; - if (faceVertexUvs == null) { - faceVertexUvs = [new THREE.Vector2(), new THREE.Vector2(), new THREE.Vector2(), new THREE.Vector2()]; - } - polygon = new ThreeBSP.Polygon(); - _ref2 = ['a', 'b', 'c', 'd']; - for (vIndex = _j = 0, _len1 = _ref2.length; _j < _len1; vIndex = ++_j) { - vName = _ref2[vIndex]; - if ((idx = face[vName]) != null) { - vertex = geometry.vertices[idx]; - vertex = new ThreeBSP.Vertex(vertex.x, vertex.y, vertex.z, face.vertexNormals[0], new THREE.Vector2(faceVertexUvs[vIndex].x, faceVertexUvs[vIndex].y)); - vertex.applyMatrix4(_this.matrix); - polygon.vertices.push(vertex); - } - } - return polygons.push(polygon.calculateProperties()); - }; - for (i = _i = 0, _len = _ref.length; _i < _len; i = ++_i) { - face = _ref[i]; - _fn(face, i); - } - return new ThreeBSP.Node(polygons); - }; - ThreeBSP.prototype.toMesh = function(material) { - var geometry, mesh, - _this = this; - if (material == null) { - material = new THREE.MeshNormalMaterial(); - } - geometry = this.toGeometry(); - return returning((mesh = new THREE.Mesh(geometry, material)), function() { - mesh.position.getPositionFromMatrix(_this.matrix); - return mesh.rotation.setFromRotationMatrix(_this.matrix); - }); - }; - ThreeBSP.prototype.toGeometry = function() { - var geometry, matrix, - _this = this; - matrix = new THREE.Matrix4().getInverse(this.matrix); - return returning((geometry = new THREE.Geometry()), function() { - var face, idx, polyVerts, polygon, v, vertUvs, verts, _i, _len, _ref, _results; - _ref = _this.tree.allPolygons(); - _results = []; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - polygon = _ref[_i]; - polyVerts = (function() { - var _j, _len1, _ref1, _results1; - _ref1 = polygon.vertices; - _results1 = []; - for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) { - v = _ref1[_j]; - _results1.push(v.clone().applyMatrix4(matrix)); - } - return _results1; - })(); - _results.push((function() { - var _j, _ref1, _results1; - _results1 = []; - for (idx = _j = 2, _ref1 = polyVerts.length; 2 <= _ref1 ? _j < _ref1 : _j > _ref1; idx = 2 <= _ref1 ? ++_j : --_j) { - verts = [polyVerts[0], polyVerts[idx - 1], polyVerts[idx]]; - vertUvs = (function() { - var _k, _len1, _ref2, _ref3, _results2; - _results2 = []; - for (_k = 0, _len1 = verts.length; _k < _len1; _k++) { - v = verts[_k]; - _results2.push(new THREE.Vector2((_ref2 = v.uv) != null ? _ref2.x : void 0, (_ref3 = v.uv) != null ? _ref3.y : void 0)); - } - return _results2; - })(); - face = (function(func, args, ctor) { - ctor.prototype = func.prototype; - var child = new ctor, result = func.apply(child, args); - return Object(result) === result ? result : child; - })(THREE.Face3, __slice.call((function() { - var _k, _len1, _results2; - _results2 = []; - for (_k = 0, _len1 = verts.length; _k < _len1; _k++) { - v = verts[_k]; - _results2.push(geometry.vertices.push(v) - 1); - } - return _results2; - })()).concat([polygon.normal.clone()]), function(){}); - geometry.faces.push(face); - _results1.push(geometry.faceVertexUvs[0].push(vertUvs)); - } - return _results1; - })()); - } - return _results; - }); - }; - ThreeBSP.prototype.subtract = function(other) { - var them, us, _ref; - _ref = [this.tree.clone(), other.tree.clone()], us = _ref[0], them = _ref[1]; - us.invert().clipTo(them); - them.clipTo(us).invert().clipTo(us).invert(); - return new ThreeBSP(us.build(them.allPolygons()).invert(), this.matrix); - }; - ThreeBSP.prototype.union = function(other) { - var them, us, _ref; - _ref = [this.tree.clone(), other.tree.clone()], us = _ref[0], them = _ref[1]; - us.clipTo(them); - them.clipTo(us).invert().clipTo(us).invert(); - return new ThreeBSP(us.build(them.allPolygons()), this.matrix); - }; - ThreeBSP.prototype.intersect = function(other) { - var them, us, _ref; - _ref = [this.tree.clone(), other.tree.clone()], us = _ref[0], them = _ref[1]; - them.clipTo(us.invert()).invert().clipTo(us.clipTo(them)); - return new ThreeBSP(us.build(them.allPolygons()).invert(), this.matrix); - }; - return ThreeBSP; - })(); - ThreeBSP.Vertex = (function(_super) { - __extends(Vertex, _super); - function Vertex(x, y, z, normal, uv) { - this.normal = normal != null ? normal : new THREE.Vector3(); - this.uv = uv != null ? uv : new THREE.Vector2(); - this.interpolate = __bind(this.interpolate, this); - this.lerp = __bind(this.lerp, this); - Vertex.__super__.constructor.call(this, x, y, z); - } - Vertex.prototype.clone = function() { - return new ThreeBSP.Vertex(this.x, this.y, this.z, this.normal.clone(), this.uv.clone()); - }; - Vertex.prototype.lerp = function(v, alpha) { - var _this = this; - return returning(Vertex.__super__.lerp.apply(this, arguments), function() { - _this.uv.add(v.uv.clone().sub(_this.uv).multiplyScalar(alpha)); - return _this.normal.lerp(v, alpha); - }); - }; - Vertex.prototype.interpolate = function() { - var args, _ref; - args = 1 <= arguments.length ? __slice.call(arguments, 0) : []; - return (_ref = this.clone()).lerp.apply(_ref, args); - }; - return Vertex; - })(THREE.Vector3); - ThreeBSP.Polygon = (function() { - function Polygon(vertices, normal, w) { - this.vertices = vertices != null ? vertices : []; - this.normal = normal; - this.w = w; - this.subdivide = __bind(this.subdivide, this); - this.tessellate = __bind(this.tessellate, this); - this.classifySide = __bind(this.classifySide, this); - this.classifyVertex = __bind(this.classifyVertex, this); - this.invert = __bind(this.invert, this); - this.clone = __bind(this.clone, this); - this.calculateProperties = __bind(this.calculateProperties, this); - if (this.vertices.length) { - this.calculateProperties(); - } - } - Polygon.prototype.calculateProperties = function() { - var _this = this; - return returning(this, function() { - var a, b, c, _ref; - _ref = _this.vertices, a = _ref[0], b = _ref[1], c = _ref[2]; - _this.normal = b.clone().sub(a).cross(c.clone().sub(a)).normalize(); - return _this.w = _this.normal.clone().dot(a); - }); - }; - Polygon.prototype.clone = function() { - var v; - return new ThreeBSP.Polygon((function() { - var _i, _len, _ref, _results; - _ref = this.vertices; - _results = []; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - v = _ref[_i]; - _results.push(v.clone()); - } - return _results; - }).call(this), this.normal.clone(), this.w); - }; - Polygon.prototype.invert = function() { - var _this = this; - return returning(this, function() { - _this.normal.multiplyScalar(-1); - _this.w *= -1; - return _this.vertices.reverse(); - }); - }; - Polygon.prototype.classifyVertex = function(vertex) { - var side; - side = this.normal.dot(vertex) - this.w; - switch (false) { - case !(side < -EPSILON): - return BACK; - case !(side > EPSILON): - return FRONT; - default: - return COPLANAR; - } - }; - Polygon.prototype.classifySide = function(polygon) { - var back, front, tally, v, _i, _len, _ref, _ref1, - _this = this; - _ref = [0, 0], front = _ref[0], back = _ref[1]; - tally = function(v) { - switch (_this.classifyVertex(v)) { - case FRONT: - return front += 1; - case BACK: - return back += 1; - } - }; - _ref1 = polygon.vertices; - for (_i = 0, _len = _ref1.length; _i < _len; _i++) { - v = _ref1[_i]; - tally(v); - } - if (front > 0 && back === 0) { - return FRONT; - } - if (front === 0 && back > 0) { - return BACK; - } - if ((front === back && back === 0)) { - return COPLANAR; - } - return SPANNING; - }; - Polygon.prototype.tessellate = function(poly) { - var b, count, f, i, j, polys, t, ti, tj, v, vi, vj, _i, _len, _ref, _ref1, _ref2, - _this = this; - _ref = { - f: [], - b: [], - count: poly.vertices.length - }, f = _ref.f, b = _ref.b, count = _ref.count; - if (this.classifySide(poly) !== SPANNING) { - return [poly]; - } - _ref1 = poly.vertices; - for (i = _i = 0, _len = _ref1.length; _i < _len; i = ++_i) { - vi = _ref1[i]; - vj = poly.vertices[(j = (i + 1) % count)]; - _ref2 = (function() { - var _j, _len1, _ref2, _results; - _ref2 = [vi, vj]; - _results = []; - for (_j = 0, _len1 = _ref2.length; _j < _len1; _j++) { - v = _ref2[_j]; - _results.push(this.classifyVertex(v)); - } - return _results; - }).call(this), ti = _ref2[0], tj = _ref2[1]; - if (ti !== BACK) { - f.push(vi); - } - if (ti !== FRONT) { - b.push(vi); - } - if ((ti | tj) === SPANNING) { - t = (this.w - this.normal.dot(vi)) / this.normal.dot(vj.clone().sub(vi)); - v = vi.interpolate(vj, t); - f.push(v); - b.push(v); - } - } - return returning((polys = []), function() { - if (f.length >= 3) { - polys.push(new ThreeBSP.Polygon(f)); - } - if (b.length >= 3) { - return polys.push(new ThreeBSP.Polygon(b)); - } - }); - }; - Polygon.prototype.subdivide = function(polygon, coplanar_front, coplanar_back, front, back) { - var poly, side, _i, _len, _ref, _results; - _ref = this.tessellate(polygon); - _results = []; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - poly = _ref[_i]; - side = this.classifySide(poly); - switch (side) { - case FRONT: - _results.push(front.push(poly)); - break; - case BACK: - _results.push(back.push(poly)); - break; - case COPLANAR: - if (this.normal.dot(poly.normal) > 0) { - _results.push(coplanar_front.push(poly)); - } else { - _results.push(coplanar_back.push(poly)); - } - break; - default: - throw new Error("BUG: Polygon of classification " + side + " in subdivision"); - } - } - return _results; - }; - return Polygon; - })(); - ThreeBSP.Node = (function() { - Node.prototype.clone = function() { - var node, - _this = this; - return returning((node = new ThreeBSP.Node()), function() { - var p, _ref, _ref1, _ref2; - node.divider = (_ref = _this.divider) != null ? _ref.clone() : void 0; - node.polygons = (function() { - var _i, _len, _ref1, _results; - _ref1 = this.polygons; - _results = []; - for (_i = 0, _len = _ref1.length; _i < _len; _i++) { - p = _ref1[_i]; - _results.push(p.clone()); - } - return _results; - }).call(_this); - node.front = (_ref1 = _this.front) != null ? _ref1.clone() : void 0; - return node.back = (_ref2 = _this.back) != null ? _ref2.clone() : void 0; - }); - }; - function Node(polygons) { - this.clipTo = __bind(this.clipTo, this); - this.clipPolygons = __bind(this.clipPolygons, this); - this.invert = __bind(this.invert, this); - this.allPolygons = __bind(this.allPolygons, this); - this.isConvex = __bind(this.isConvex, this); - this.build = __bind(this.build, this); - this.clone = __bind(this.clone, this); - this.polygons = []; - if ((polygons != null) && polygons.length) { - this.build(polygons); - } - } - Node.prototype.build = function(polygons) { - var _this = this; - return returning(this, function() { - var poly, polys, side, sides, _i, _len, _results; - sides = { - front: [], - back: [] - }; - if (_this.divider == null) { - _this.divider = polygons[0].clone(); - } - for (_i = 0, _len = polygons.length; _i < _len; _i++) { - poly = polygons[_i]; - _this.divider.subdivide(poly, _this.polygons, _this.polygons, sides.front, sides.back); - } - _results = []; - for (side in sides) { - if (!__hasProp.call(sides, side)) continue; - polys = sides[side]; - if (polys.length) { - if (_this[side] == null) { - _this[side] = new ThreeBSP.Node(); - } - _results.push(_this[side].build(polys)); - } else { - _results.push(void 0); - } - } - return _results; - }); - }; - Node.prototype.isConvex = function(polys) { - var inner, outer, _i, _j, _len, _len1; - for (_i = 0, _len = polys.length; _i < _len; _i++) { - inner = polys[_i]; - for (_j = 0, _len1 = polys.length; _j < _len1; _j++) { - outer = polys[_j]; - if (inner !== outer && outer.classifySide(inner) !== BACK) { - return false; - } - } - } - return true; - }; - Node.prototype.allPolygons = function() { - var _ref, _ref1; - return this.polygons.slice().concat(((_ref1 = this.front) != null ? _ref1.allPolygons() : void 0) || []).concat(((_ref = this.back) != null ? _ref.allPolygons() : void 0) || []); - }; - Node.prototype.invert = function() { - var _this = this; - return returning(this, function() { - var flipper, poly, _i, _j, _len, _len1, _ref, _ref1, _ref2; - _ref = _this.polygons; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - poly = _ref[_i]; - poly.invert(); - } - _ref1 = [_this.divider, _this.front, _this.back]; - for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) { - flipper = _ref1[_j]; - if (flipper != null) { - flipper.invert(); - } - } - return _ref2 = [_this.back, _this.front], _this.front = _ref2[0], _this.back = _ref2[1], _ref2; - }); - }; - Node.prototype.clipPolygons = function(polygons) { - var back, front, poly, _i, _len; - if (!this.divider) { - return polygons.slice(); - } - front = []; - back = []; - for (_i = 0, _len = polygons.length; _i < _len; _i++) { - poly = polygons[_i]; - this.divider.subdivide(poly, front, back, front, back); - } - if (this.front) { - front = this.front.clipPolygons(front); - } - if (this.back) { - back = this.back.clipPolygons(back); - } - return front.concat(this.back ? back : []); - }; - Node.prototype.clipTo = function(node) { - var _this = this; - return returning(this, function() { - var _ref, _ref1; - _this.polygons = node.clipPolygons(_this.polygons); - if ((_ref = _this.front) != null) { - _ref.clipTo(node); - } - return (_ref1 = _this.back) != null ? _ref1.clipTo(node) : void 0; - }); - }; - return Node; - })(); -}).call(this); -/////////////////////----------------- 流光线 ------------------ -var uniforms = { - u_time: { value: 0.0 } - }; -// 着色器设置 -const vertexShader = ` - varying vec2 vUv; - attribute float percent; - uniform float u_time; - uniform float number; - uniform float speed; - uniform float length; - varying float opacity; - uniform float size; - void main() - { - vUv = uv; - vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 ); - float l = clamp(1.0-length,0.0,1.0); - gl_PointSize = clamp(fract(percent*number + l - u_time*number*speed)-l ,0.0,1.) * size * (1./length); - opacity = gl_PointSize/size; - gl_Position = projectionMatrix * mvPosition; - } - ` -const fragmentShader = ` - #ifdef GL_ES - precision mediump float; - #endif - varying float opacity; - uniform vec3 color; - void main(){ - if(opacity <=0.2){ - discard; - } - gl_FragColor = vec4(color,1); - } - ` -function createFlyCurve(points, color, closed) { - var curve = new THREE.CatmullRomCurve3(points, closed); - // 流光的颜色,三个数字分别代表rgb的值,不过注意,需要除以255 - var color = color || new THREE.Vector3( 0.2235, 0.412, 1 ); - var flyLine = initFlyLine( curve, { - speed: 0.5, - color: color, - number: 5, //同时跑动的流光数量 - length: 0.3, //流光线条长度 - size: 8 //粗细 - }, 3000 ); - return flyLine; -} -function initFlyLine( curve, matSetting, pointsNumber ) { - var points = curve.getPoints( pointsNumber ); - var geometry = new THREE.BufferGeometry().setFromPoints( points ); - const length = points.length; - var percents = new Float32Array( length ); - for (let i = 0; i < points.length; i += 1) { - percents[i] = ( i / length ); - } - geometry.setAttribute( 'percent', new THREE.BufferAttribute( percents, 1 ) ); - const lineMaterial = initLineMaterial( matSetting ); - var flyLine = new THREE.Points( geometry, lineMaterial ); - return flyLine; - } - - function initLineMaterial( setting ) { - const number = setting ? ( Number( setting.number ) || 1.0 ) : 1.0; - const speed = setting ? ( Number( setting.speed ) || 1.0 ) : 1.0; - const length = setting ? ( Number( setting.length ) || 0.5 ) : 0.5; - const size = setting ? ( Number( setting.size ) || 3.0 ) : 3.0; - const color = setting ? setting.color || new THREE.Vector3( 0, 1, 1 ) : new THREE.Vector3( 0, 1, 1 ); - const singleUniforms = { - u_time: uniforms.u_time, - number: { type: 'f', value: number }, - speed: { type: 'f', value: speed }, - length: { type: 'f', value: length }, - size: { type: 'f', value: size }, - color: { type: 'v3', value: color } - }; - const lineMaterial = new THREE.ShaderMaterial( { - uniforms: singleUniforms, - vertexShader: vertexShader, - fragmentShader: fragmentShader, - transparent: true - } ); - return lineMaterial; - } - -////////////////////////////////---- -------------- aes -------------------- -!function (t, n) { - "object" == typeof exports ? module.exports = exports = n() : "function" == typeof define && define.amd ? define([], n) : t.CryptoJS = n() -}(this, function () { - var t = t || function (t, n) { - var i = Object.create || function () { - function t() {} - return function (n) { - var i; - return t.prototype = n, i = new t, t.prototype = null, i - } - }(), - e = {}, - r = e.lib = {}, - o = r.Base = function () { - return { - extend: function (t) { - var n = i(this); - return t && n.mixIn(t), n.hasOwnProperty("init") && this.init !== n.init || (n.init = function () { - n.$super.init.apply(this, arguments) - }), n.init.prototype = n, n.$super = this, n - }, - create: function () { - var t = this.extend(); - return t.init.apply(t, arguments), t - }, - init: function () {}, - mixIn: function (t) { - for (var n in t) t.hasOwnProperty(n) && (this[n] = t[n]); - t.hasOwnProperty("toString") && (this.toString = t.toString) - }, - clone: function () { - return this.init.prototype.extend(this) - } - } - }(), - s = r.WordArray = o.extend({ - init: function (t, i) { - t = this.words = t || [], i != n ? this.sigBytes = i : this.sigBytes = 4 * t.length - }, - toString: function (t) { - return (t || c).stringify(this) - }, - concat: function (t) { - var n = this.words, - i = t.words, - e = this.sigBytes, - r = t.sigBytes; - if (this.clamp(), e % 4) - for (var o = 0; o < r; o++) { - var s = i[o >>> 2] >>> 24 - o % 4 * 8 & 255; - n[e + o >>> 2] |= s << 24 - (e + o) % 4 * 8 - } else - for (var o = 0; o < r; o += 4) n[e + o >>> 2] = i[o >>> 2]; - return this.sigBytes += r, this - }, - clamp: function () { - var n = this.words, - i = this.sigBytes; - n[i >>> 2] &= 4294967295 << 32 - i % 4 * 8, n.length = t.ceil(i / 4) - }, - clone: function () { - var t = o.clone.call(this); - return t.words = this.words.slice(0), t - }, - random: function (n) { - for (var i, e = [], r = function (n) { - var n = n, - i = 987654321, - e = 4294967295; - return function () { - i = 36969 * (65535 & i) + (i >> 16) & e, n = 18e3 * (65535 & n) + (n >> 16) & e; - var r = (i << 16) + n & e; - return r /= 4294967296, r += .5, r * (t.random() > .5 ? 1 : -1) - } - }, o = 0; o < n; o += 4) { - var a = r(4294967296 * (i || t.random())); - i = 987654071 * a(), e.push(4294967296 * a() | 0) - } - return new s.init(e, n) - } - }), - a = e.enc = {}, - c = a.Hex = { - stringify: function (t) { - for (var n = t.words, i = t.sigBytes, e = [], r = 0; r < i; r++) { - var o = n[r >>> 2] >>> 24 - r % 4 * 8 & 255; - e.push((o >>> 4).toString(16)), e.push((15 & o).toString(16)) - } - return e.join("") - }, - parse: function (t) { - for (var n = t.length, i = [], e = 0; e < n; e += 2) i[e >>> 3] |= parseInt(t.substr(e, 2), 16) << 24 - e % 8 * 4; - return new s.init(i, n / 2) - } - }, - u = a.Latin1 = { - stringify: function (t) { - for (var n = t.words, i = t.sigBytes, e = [], r = 0; r < i; r++) { - var o = n[r >>> 2] >>> 24 - r % 4 * 8 & 255; - e.push(String.fromCharCode(o)) - } - return e.join("") - }, - parse: function (t) { - for (var n = t.length, i = [], e = 0; e < n; e++) i[e >>> 2] |= (255 & t.charCodeAt(e)) << 24 - e % 4 * 8; - return new s.init(i, n) - } - }, - f = a.Utf8 = { - stringify: function (t) { - try { - return decodeURIComponent(escape(u.stringify(t))) - } catch (t) { - throw new Error("Malformed UTF-8 data") - } - }, - parse: function (t) { - return u.parse(unescape(encodeURIComponent(t))) - } - }, - h = r.BufferedBlockAlgorithm = o.extend({ - reset: function () { - this._data = new s.init, this._nDataBytes = 0 - }, - _append: function (t) { - "string" == typeof t && (t = f.parse(t)), this._data.concat(t), this._nDataBytes += t.sigBytes - }, - _process: function (n) { - var i = this._data, - e = i.words, - r = i.sigBytes, - o = this.blockSize, - a = 4 * o, - c = r / a; - c = n ? t.ceil(c) : t.max((0 | c) - this._minBufferSize, 0); - var u = c * o, - f = t.min(4 * u, r); - if (u) { - for (var h = 0; h < u; h += o) this._doProcessBlock(e, h); - var p = e.splice(0, u); - i.sigBytes -= f - } - return new s.init(p, f) - }, - clone: function () { - var t = o.clone.call(this); - return t._data = this._data.clone(), t - }, - _minBufferSize: 0 - }), - p = (r.Hasher = h.extend({ - cfg: o.extend(), - init: function (t) { - this.cfg = this.cfg.extend(t), this.reset() - }, - reset: function () { - h.reset.call(this), this._doReset() - }, - update: function (t) { - return this._append(t), this._process(), this - }, - finalize: function (t) { - t && this._append(t); - var n = this._doFinalize(); - return n - }, - blockSize: 16, - _createHelper: function (t) { - return function (n, i) { - return new t.init(i).finalize(n) - } - }, - _createHmacHelper: function (t) { - return function (n, i) { - return new p.HMAC.init(t, i).finalize(n) - } - } - }), e.algo = {}); - return e - }(Math); - return t -}); -! function (e, t, i) { - "object" == typeof exports ? module.exports = exports = t(require("./core.min"), require("./sha1.min"), require("./hmac.min")) : "function" == typeof define && define.amd ? define(["./core.min", "./sha1.min", "./hmac.min"], t) : t(e.CryptoJS) -}(this, function (e) { - return function () { - var t = e, - i = t.lib, - r = i.Base, - n = i.WordArray, - o = t.algo, - a = o.MD5, - c = o.EvpKDF = r.extend({ - cfg: r.extend({ - keySize: 4, - hasher: a, - iterations: 1 - }), - init: function (e) { - this.cfg = this.cfg.extend(e) - }, - compute: function (e, t) { - for (var i = this.cfg, r = i.hasher.create(), o = n.create(), a = o.words, c = i.keySize, f = i.iterations; a.length < c;) { - s && r.update(s); - var s = r.update(e).finalize(t); - r.reset(); - for (var u = 1; u < f; u++) s = r.finalize(s), r.reset(); - o.concat(s) - } - return o.sigBytes = 4 * c, o - } - }); - t.EvpKDF = function (e, t, i) { - return c.create(i).compute(e, t) - } - }(), e.EvpKDF -}); -! function (r, e) { - "object" == typeof exports ? module.exports = exports = e(require("./core.min")) : "function" == typeof define && define.amd ? define(["./core.min"], e) : e(r.CryptoJS) -}(this, function (r) { - return function () { - function e(r, e, t) { - for (var n = [], i = 0, o = 0; o < e; o++) - if (o % 4) { - var f = t[r.charCodeAt(o - 1)] << o % 4 * 2, - c = t[r.charCodeAt(o)] >>> 6 - o % 4 * 2; - n[i >>> 2] |= (f | c) << 24 - i % 4 * 8, i++ - } return a.create(n, i) - } - var t = r, - n = t.lib, - a = n.WordArray, - i = t.enc; - i.Base64 = { - stringify: function (r) { - var e = r.words, - t = r.sigBytes, - n = this._map; - r.clamp(); - for (var a = [], i = 0; i < t; i += 3) - for (var o = e[i >>> 2] >>> 24 - i % 4 * 8 & 255, f = e[i + 1 >>> 2] >>> 24 - (i + 1) % 4 * 8 & 255, c = e[i + 2 >>> 2] >>> 24 - (i + 2) % 4 * 8 & 255, s = o << 16 | f << 8 | c, h = 0; h < 4 && i + .75 * h < t; h++) a.push(n.charAt(s >>> 6 * (3 - h) & 63)); - var p = n.charAt(64); - if (p) - for (; a.length % 4;) a.push(p); - return a.join("") - }, - parse: function (r) { - var t = r.length, - n = this._map, - a = this._reverseMap; - if (!a) { - a = this._reverseMap = []; - for (var i = 0; i < n.length; i++) a[n.charCodeAt(i)] = i - } - var o = n.charAt(64); - if (o) { - var f = r.indexOf(o); - f !== -1 && (t = f) - } - return e(r, t, a) - }, - _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=" - } - }(), r.enc.Base64 -}); -! function (e, t, r) { - "object" == typeof exports ? module.exports = exports = t(require("./core.min"), require("./evpkdf.min")) : "function" == typeof define && define.amd ? define(["./core.min", "./evpkdf.min"], t) : t(e.CryptoJS) -}(this, function (e) { - e.lib.Cipher || function (t) { - var r = e, - i = r.lib, - n = i.Base, - c = i.WordArray, - o = i.BufferedBlockAlgorithm, - s = r.enc, - a = (s.Utf8, s.Base64), - f = r.algo, - p = f.EvpKDF, - d = i.Cipher = o.extend({ - cfg: n.extend(), - createEncryptor: function (e, t) { - return this.create(this._ENC_XFORM_MODE, e, t) - }, - createDecryptor: function (e, t) { - return this.create(this._DEC_XFORM_MODE, e, t) - }, - init: function (e, t, r) { - this.cfg = this.cfg.extend(r), this._xformMode = e, this._key = t, this.reset() - }, - reset: function () { - o.reset.call(this), this._doReset() - }, - process: function (e) { - return this._append(e), this._process() - }, - finalize: function (e) { - e && this._append(e); - var t = this._doFinalize(); - return t - }, - keySize: 4, - ivSize: 4, - _ENC_XFORM_MODE: 1, - _DEC_XFORM_MODE: 2, - _createHelper: function () { - function e(e) { - return "string" == typeof e ? B : x - } - return function (t) { - return { - encrypt: function (r, i, n) { - return e(i).encrypt(t, r, i, n) - }, - decrypt: function (r, i, n) { - return e(i).decrypt(t, r, i, n) - } - } - } - }() - }), - h = (i.StreamCipher = d.extend({ - _doFinalize: function () { - var e = this._process(!0); - return e - }, - blockSize: 1 - }), r.mode = {}), - u = i.BlockCipherMode = n.extend({ - createEncryptor: function (e, t) { - return this.Encryptor.create(e, t) - }, - createDecryptor: function (e, t) { - return this.Decryptor.create(e, t) - }, - init: function (e, t) { - this._cipher = e, this._iv = t - } - }), - l = h.CBC = function () { - function e(e, r, i) { - var n = this._iv; - if (n) { - var c = n; - this._iv = t - } else var c = this._prevBlock; - for (var o = 0; o < i; o++) e[r + o] ^= c[o] - } - var r = u.extend(); - return r.Encryptor = r.extend({ - processBlock: function (t, r) { - var i = this._cipher, - n = i.blockSize; - e.call(this, t, r, n), i.encryptBlock(t, r), this._prevBlock = t.slice(r, r + n) - } - }), r.Decryptor = r.extend({ - processBlock: function (t, r) { - var i = this._cipher, - n = i.blockSize, - c = t.slice(r, r + n); - i.decryptBlock(t, r), e.call(this, t, r, n), this._prevBlock = c - } - }), r - }(), - _ = r.pad = {}, - v = _.Pkcs7 = { - pad: function (e, t) { - for (var r = 4 * t, i = r - e.sigBytes % r, n = i << 24 | i << 16 | i << 8 | i, o = [], s = 0; s < i; s += 4) o.push(n); - var a = c.create(o, i); - e.concat(a) - }, - unpad: function (e) { - var t = 255 & e.words[e.sigBytes - 1 >>> 2]; - e.sigBytes -= t - } - }, - y = (i.BlockCipher = d.extend({ - cfg: d.cfg.extend({ - mode: l, - padding: v - }), - reset: function () { - d.reset.call(this); - var e = this.cfg, - t = e.iv, - r = e.mode; - if (this._xformMode == this._ENC_XFORM_MODE) var i = r.createEncryptor; - else { - var i = r.createDecryptor; - this._minBufferSize = 1 - } - this._mode && this._mode.__creator == i ? this._mode.init(this, t && t.words) : (this._mode = i.call(r, this, t && t.words), this._mode.__creator = i) - }, - _doProcessBlock: function (e, t) { - this._mode.processBlock(e, t) - }, - _doFinalize: function () { - var e = this.cfg.padding; - if (this._xformMode == this._ENC_XFORM_MODE) { - e.pad(this._data, this.blockSize); - var t = this._process(!0) - } else { - var t = this._process(!0); - e.unpad(t) - } - return t - }, - blockSize: 4 - }), i.CipherParams = n.extend({ - init: function (e) { - this.mixIn(e) - }, - toString: function (e) { - return (e || this.formatter).stringify(this) - } - })), - m = r.format = {}, - k = m.OpenSSL = { - stringify: function (e) { - var t = e.ciphertext, - r = e.salt; - if (r) var i = c.create([1398893684, 1701076831]).concat(r).concat(t); - else var i = t; - return i.toString(a) - }, - parse: function (e) { - var t = a.parse(e), - r = t.words; - if (1398893684 == r[0] && 1701076831 == r[1]) { - var i = c.create(r.slice(2, 4)); - r.splice(0, 4), t.sigBytes -= 16 - } - return y.create({ - ciphertext: t, - salt: i - }) - } - }, - x = i.SerializableCipher = n.extend({ - cfg: n.extend({ - format: k - }), - encrypt: function (e, t, r, i) { - i = this.cfg.extend(i); - var n = e.createEncryptor(r, i), - c = n.finalize(t), - o = n.cfg; - return y.create({ - ciphertext: c, - key: r, - iv: o.iv, - algorithm: e, - mode: o.mode, - padding: o.padding, - blockSize: e.blockSize, - formatter: i.format - }) - }, - decrypt: function (e, t, r, i) { - i = this.cfg.extend(i), t = this._parse(t, i.format); - var n = e.createDecryptor(r, i).finalize(t.ciphertext); - return n - }, - _parse: function (e, t) { - return "string" == typeof e ? t.parse(e, this) : e - } - }), - g = r.kdf = {}, - S = g.OpenSSL = { - execute: function (e, t, r, i) { - i || (i = c.random(8)); - var n = p.create({ - keySize: t + r - }).compute(e, i), - o = c.create(n.words.slice(t), 4 * r); - return n.sigBytes = 4 * t, y.create({ - key: n, - iv: o, - salt: i - }) - } - }, - B = i.PasswordBasedCipher = x.extend({ - cfg: x.cfg.extend({ - kdf: S - }), - encrypt: function (e, t, r, i) { - i = this.cfg.extend(i); - var n = i.kdf.execute(r, e.keySize, e.ivSize); - i.iv = n.iv; - var c = x.encrypt.call(this, e, t, n.key, i); - return c.mixIn(n), c - }, - decrypt: function (e, t, r, i) { - i = this.cfg.extend(i), t = this._parse(t, i.format); - var n = i.kdf.execute(r, e.keySize, e.ivSize, t.salt); - i.iv = n.iv; - var c = x.decrypt.call(this, e, t, n.key, i); - return c - } - }) - }() -}); -! function (e, i) { - "object" == typeof exports ? module.exports = exports = i(require("./core.min")) : "function" == typeof define && define.amd ? define(["./core.min"], i) : i(e.CryptoJS) -}(this, function (e) { - ! function () { - var i = e, - t = i.lib, - n = t.Base, - s = i.enc, - r = s.Utf8, - o = i.algo; - o.HMAC = n.extend({ - init: function (e, i) { - e = this._hasher = new e.init, "string" == typeof i && (i = r.parse(i)); - var t = e.blockSize, - n = 4 * t; - i.sigBytes > n && (i = e.finalize(i)), i.clamp(); - for (var s = this._oKey = i.clone(), o = this._iKey = i.clone(), a = s.words, f = o.words, c = 0; c < t; c++) a[c] ^= 1549556828, f[c] ^= 909522486; - s.sigBytes = o.sigBytes = n, this.reset() - }, - reset: function () { - var e = this._hasher; - e.reset(), e.update(this._iKey) - }, - update: function (e) { - return this._hasher.update(e), this - }, - finalize: function (e) { - var i = this._hasher, - t = i.finalize(e); - i.reset(); - var n = i.finalize(this._oKey.clone().concat(t)); - return n - } - }) - }() -}); -! function (e, o, r) { - "object" == typeof exports ? module.exports = exports = o(require("./core.min"), require("./cipher-core.min")) : "function" == typeof define && define.amd ? define(["./core.min", "./cipher-core.min"], o) : o(e.CryptoJS) -}(this, function (e) { - return e.mode.ECB = function () { - var o = e.lib.BlockCipherMode.extend(); - return o.Encryptor = o.extend({ - processBlock: function (e, o) { - this._cipher.encryptBlock(e, o) - } - }), o.Decryptor = o.extend({ - processBlock: function (e, o) { - this._cipher.decryptBlock(e, o) - } - }), o - }(), e.mode.ECB -}); -! function (e, r, i) { - "object" == typeof exports ? module.exports = exports = r(require("./core.min"), require("./cipher-core.min")) : "function" == typeof define && define.amd ? define(["./core.min", "./cipher-core.min"], r) : r(e.CryptoJS) -}(this, function (e) { - return e.pad.Pkcs7 -}); -! function (e, r, i) { - "object" == typeof exports ? module.exports = exports = r(require("./core.min"), require("./enc-base64.min"), require("./md5.min"), require("./evpkdf.min"), require("./cipher-core.min")) : "function" == typeof define && define.amd ? define(["./core.min", "./enc-base64.min", "./md5.min", "./evpkdf.min", "./cipher-core.min"], r) : r(e.CryptoJS) -}(this, function (e) { - return function () { - var r = e, - i = r.lib, - n = i.BlockCipher, - o = r.algo, - t = [], - c = [], - s = [], - f = [], - a = [], - d = [], - u = [], - v = [], - h = [], - y = []; - ! function () { - for (var e = [], r = 0; r < 256; r++) r < 128 ? e[r] = r << 1 : e[r] = r << 1 ^ 283; - for (var i = 0, n = 0, r = 0; r < 256; r++) { - var o = n ^ n << 1 ^ n << 2 ^ n << 3 ^ n << 4; - o = o >>> 8 ^ 255 & o ^ 99, t[i] = o, c[o] = i; - var p = e[i], - l = e[p], - _ = e[l], - k = 257 * e[o] ^ 16843008 * o; - s[i] = k << 24 | k >>> 8, f[i] = k << 16 | k >>> 16, a[i] = k << 8 | k >>> 24, d[i] = k; - var k = 16843009 * _ ^ 65537 * l ^ 257 * p ^ 16843008 * i; - u[o] = k << 24 | k >>> 8, v[o] = k << 16 | k >>> 16, h[o] = k << 8 | k >>> 24, y[o] = k, i ? (i = p ^ e[e[e[_ ^ p]]], n ^= e[e[n]]) : i = n = 1 - } - }(); - var p = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54], - l = o.AES = n.extend({ - _doReset: function () { - if (!this._nRounds || this._keyPriorReset !== this._key) { - for (var e = this._keyPriorReset = this._key, r = e.words, i = e.sigBytes / 4, n = this._nRounds = i + 6, o = 4 * (n + 1), c = this._keySchedule = [], s = 0; s < o; s++) - if (s < i) c[s] = r[s]; - else { - var f = c[s - 1]; - s % i ? i > 6 && s % i == 4 && (f = t[f >>> 24] << 24 | t[f >>> 16 & 255] << 16 | t[f >>> 8 & 255] << 8 | t[255 & f]) : (f = f << 8 | f >>> 24, f = t[f >>> 24] << 24 | t[f >>> 16 & 255] << 16 | t[f >>> 8 & 255] << 8 | t[255 & f], f ^= p[s / i | 0] << 24), c[s] = c[s - i] ^ f - } for (var a = this._invKeySchedule = [], d = 0; d < o; d++) { - var s = o - d; - if (d % 4) var f = c[s]; - else var f = c[s - 4]; - d < 4 || s <= 4 ? a[d] = f : a[d] = u[t[f >>> 24]] ^ v[t[f >>> 16 & 255]] ^ h[t[f >>> 8 & 255]] ^ y[t[255 & f]] - } - } - }, - encryptBlock: function (e, r) { - this._doCryptBlock(e, r, this._keySchedule, s, f, a, d, t) - }, - decryptBlock: function (e, r) { - var i = e[r + 1]; - e[r + 1] = e[r + 3], e[r + 3] = i, this._doCryptBlock(e, r, this._invKeySchedule, u, v, h, y, c); - var i = e[r + 1]; - e[r + 1] = e[r + 3], e[r + 3] = i - }, - _doCryptBlock: function (e, r, i, n, o, t, c, s) { - for (var f = this._nRounds, a = e[r] ^ i[0], d = e[r + 1] ^ i[1], u = e[r + 2] ^ i[2], v = e[r + 3] ^ i[3], h = 4, y = 1; y < f; y++) { - var p = n[a >>> 24] ^ o[d >>> 16 & 255] ^ t[u >>> 8 & 255] ^ c[255 & v] ^ i[h++], - l = n[d >>> 24] ^ o[u >>> 16 & 255] ^ t[v >>> 8 & 255] ^ c[255 & a] ^ i[h++], - _ = n[u >>> 24] ^ o[v >>> 16 & 255] ^ t[a >>> 8 & 255] ^ c[255 & d] ^ i[h++], - k = n[v >>> 24] ^ o[a >>> 16 & 255] ^ t[d >>> 8 & 255] ^ c[255 & u] ^ i[h++]; - a = p, d = l, u = _, v = k - } - var p = (s[a >>> 24] << 24 | s[d >>> 16 & 255] << 16 | s[u >>> 8 & 255] << 8 | s[255 & v]) ^ i[h++], - l = (s[d >>> 24] << 24 | s[u >>> 16 & 255] << 16 | s[v >>> 8 & 255] << 8 | s[255 & a]) ^ i[h++], - _ = (s[u >>> 24] << 24 | s[v >>> 16 & 255] << 16 | s[a >>> 8 & 255] << 8 | s[255 & d]) ^ i[h++], - k = (s[v >>> 24] << 24 | s[a >>> 16 & 255] << 16 | s[d >>> 8 & 255] << 8 | s[255 & u]) ^ i[h++]; - e[r] = p, e[r + 1] = l, e[r + 2] = _, e[r + 3] = k - }, - keySize: 8 - }); - r.AES = n._createHelper(l) - }(), e.AES -}); -! function (e, n) { - "object" == typeof exports ? module.exports = exports = n(require("./core.min")) : "function" == typeof define && define.amd ? define(["./core.min"], n) : n(e.CryptoJS) -}(this, function (e) { - return e.enc.Utf8 -}); -/* - * 热力图 heatmap.js v2.0.2 - */ -(function(a,b,c){if(typeof module!=="undefined"&&module.exports){module.exports=c()}else if(typeof define==="function"&&define.amd){define(c)}else{b[a]=c()}})("h337",this,function(){var a={defaultRadius:40,defaultRenderer:"canvas2d",defaultGradient:{.25:"rgb(0,0,255)",.55:"rgb(0,255,0)",.85:"yellow",1:"rgb(255,0,0)"},defaultMaxOpacity:1,defaultMinOpacity:0,defaultBlur:.85,defaultXField:"x",defaultYField:"y",defaultValueField:"value",plugins:{}};var b=function h(){var b=function d(a){this._coordinator={};this._data=[];this._radi=[];this._min=0;this._max=1;this._xField=a["xField"]||a.defaultXField;this._yField=a["yField"]||a.defaultYField;this._valueField=a["valueField"]||a.defaultValueField;if(a["radius"]){this._cfgRadius=a["radius"]}};var c=a.defaultRadius;b.prototype={_organiseData:function(a,b){var d=a[this._xField];var e=a[this._yField];var f=this._radi;var g=this._data;var h=this._max;var i=this._min;var j=a[this._valueField]||1;var k=a.radius||this._cfgRadius||c;if(!g[d]){g[d]=[];f[d]=[]}if(!g[d][e]){g[d][e]=j;f[d][e]=k}else{g[d][e]+=j}if(g[d][e]>h){if(!b){this._max=g[d][e]}else{this.setDataMax(g[d][e])}return false}else{return{x:d,y:e,value:j,radius:k,min:i,max:h}}},_unOrganizeData:function(){var a=[];var b=this._data;var c=this._radi;for(var d in b){for(var e in b[d]){a.push({x:d,y:e,radius:c[d][e],value:b[d][e]})}}return{min:this._min,max:this._max,data:a}},_onExtremaChange:function(){this._coordinator.emit("extremachange",{min:this._min,max:this._max})},addData:function(){if(arguments[0].length>0){var a=arguments[0];var b=a.length;while(b--){this.addData.call(this,a[b])}}else{var c=this._organiseData(arguments[0],true);if(c){this._coordinator.emit("renderpartial",{min:this._min,max:this._max,data:[c]})}}return this},setData:function(a){var b=a.data;var c=b.length;this._data=[];this._radi=[];for(var d=0;d0){this._drawAlpha(a);this._colorize()}},renderAll:function(a){this._clear();if(a.data.length>0){this._drawAlpha(c(a));this._colorize()}},_updateGradient:function(b){this._palette=a(b)},updateConfig:function(a){if(a["gradient"]){this._updateGradient(a)}this._setStyles(a)},setDimensions:function(a,b){this._width=a;this._height=b;this.canvas.width=this.shadowCanvas.width=a;this.canvas.height=this.shadowCanvas.height=b},_clear:function(){this.shadowCtx.clearRect(0,0,this._width,this._height);this.ctx.clearRect(0,0,this._width,this._height)},_setStyles:function(a){this._blur=a.blur==0?0:a.blur||a.defaultBlur;if(a.backgroundColor){this.canvas.style.backgroundColor=a.backgroundColor}this._width=this.canvas.width=this.shadowCanvas.width=a.width||this._width;this._height=this.canvas.height=this.shadowCanvas.height=a.height||this._height;this._opacity=(a.opacity||0)*255;this._maxOpacity=(a.maxOpacity||a.defaultMaxOpacity)*255;this._minOpacity=(a.minOpacity||a.defaultMinOpacity)*255;this._useGradientOpacity=!!a.useGradientOpacity},_drawAlpha:function(a){var c=this._min=a.min;var d=this._max=a.max;var a=a.data||[];var e=a.length;var f=1-this._blur;while(e--){var g=a[e];var h=g.x;var i=g.y;var j=g.radius;var k=Math.min(g.value,d);var l=h-j;var m=i-j;var n=this.shadowCtx;var o;if(!this._templates[j]){this._templates[j]=o=b(j,f)}else{o=this._templates[j]}var p=(k-c)/(d-c);n.globalAlpha=p<.01?.01:p;n.drawImage(o,l,m);if(lthis._renderBoundaries[2]){this._renderBoundaries[2]=l+2*j}if(m+2*j>this._renderBoundaries[3]){this._renderBoundaries[3]=m+2*j}}},_colorize:function(){var a=this._renderBoundaries[0];var b=this._renderBoundaries[1];var c=this._renderBoundaries[2]-a;var d=this._renderBoundaries[3]-b;var e=this._width;var f=this._height;var g=this._opacity;var h=this._maxOpacity;var i=this._minOpacity;var j=this._useGradientOpacity;if(a<0){a=0}if(b<0){b=0}if(a+c>e){c=e-a}if(b+d>f){d=f-b}var k=this.shadowCtx.getImageData(a,b,c,d);var l=k.data;var m=l.length;var n=this._palette;for(var o=3;o0){r=g}else{if(p>0;return b},getDataURL:function(){return this.canvas.toDataURL()}};return d}();var d=function j(){var b=false;if(a["defaultRenderer"]==="canvas2d"){b=c}return b}();var e={merge:function(){var a={};var b=arguments.length;for(var c=0;ct.length)&&(e=t.length);for(var r=0,i=new Array(e);r0&&void 0!==arguments[0]?arguments[0]:"",r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:10,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"rgba(255, 255, 255, 1)";return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,f),(t=u.call(this,new c.SpriteMaterial))._text="".concat(e),t._textHeight=r,t._color=i,t._backgroundColor=!1,t._padding=0,t._borderWidth=0,t._borderRadius=0,t._borderColor="white",t._strokeWidth=0,t._strokeColor="white",t._fontFace="system-ui",t._fontSize=90,t._fontWeight="normal",t._canvas=document.createElement("canvas"),t._genCanvas(),t}return r=f,(n=[{key:"text",get:function(){return this._text},set:function(t){this._text=t,this._genCanvas()}},{key:"textHeight",get:function(){return this._textHeight},set:function(t){this._textHeight=t,this._genCanvas()}},{key:"color",get:function(){return this._color},set:function(t){this._color=t,this._genCanvas()}},{key:"backgroundColor",get:function(){return this._backgroundColor},set:function(t){this._backgroundColor=t,this._genCanvas()}},{key:"padding",get:function(){return this._padding},set:function(t){this._padding=t,this._genCanvas()}},{key:"borderWidth",get:function(){return this._borderWidth},set:function(t){this._borderWidth=t,this._genCanvas()}},{key:"borderRadius",get:function(){return this._borderRadius},set:function(t){this._borderRadius=t,this._genCanvas()}},{key:"borderColor",get:function(){return this._borderColor},set:function(t){this._borderColor=t,this._genCanvas()}},{key:"fontFace",get:function(){return this._fontFace},set:function(t){this._fontFace=t,this._genCanvas()}},{key:"fontSize",get:function(){return this._fontSize},set:function(t){this._fontSize=t,this._genCanvas()}},{key:"fontWeight",get:function(){return this._fontWeight},set:function(t){this._fontWeight=t,this._genCanvas()}},{key:"strokeWidth",get:function(){return this._strokeWidth},set:function(t){this._strokeWidth=t,this._genCanvas()}},{key:"strokeColor",get:function(){return this._strokeColor},set:function(t){this._strokeColor=t,this._genCanvas()}},{key:"_genCanvas",value:function(){var t=this,e=this._canvas,r=e.getContext("2d"),i=Array.isArray(this.borderWidth)?this.borderWidth:[this.borderWidth,this.borderWidth],n=i.map((function(e){return e*t.fontSize*.1})),o=(Array.isArray(this.borderRadius)?this.borderRadius:[this.borderRadius,this.borderRadius,this.borderRadius,this.borderRadius]).map((function(e){return e*t.fontSize*.1})),s=Array.isArray(this.padding)?this.padding:[this.padding,this.padding],u=s.map((function(e){return e*t.fontSize*.1})),f=this.text.split("\n"),l="".concat(this.fontWeight," ").concat(this.fontSize,"px ").concat(this.fontFace);r.font=l;var d=Math.max.apply(Math,h(f.map((function(t){return r.measureText(t).width})))),p=this.fontSize*f.length;if(e.width=d+2*n[0]+2*u[0],e.height=p+2*n[1]+2*u[1],this.borderWidth){if(r.strokeStyle=this.borderColor,n[0]){var g=n[0]/2;r.lineWidth=n[0],r.beginPath(),r.moveTo(g,o[0]),r.lineTo(g,e.height-o[3]),r.moveTo(e.width-g,o[1]),r.lineTo(e.width-g,e.height-o[2]),r.stroke()}if(n[1]){var y=n[1]/2;r.lineWidth=n[1],r.beginPath(),r.moveTo(Math.max(n[0],o[0]),y),r.lineTo(e.width-Math.max(n[0],o[1]),y),r.moveTo(Math.max(n[0],o[3]),e.height-y),r.lineTo(e.width-Math.max(n[0],o[2]),e.height-y),r.stroke()}if(this.borderRadius){var b=Math.max.apply(Math,h(n)),v=b/2;r.lineWidth=b,r.beginPath(),[!!o[0]&&[o[0],v,v,o[0]],!!o[1]&&[e.width-o[1],e.width-v,v,o[1]],!!o[2]&&[e.width-o[2],e.width-v,e.height-v,e.height-o[2]],!!o[3]&&[o[3],v,e.height-v,e.height-o[3]]].filter((function(t){return t})).forEach((function(t){var e=a(t,4),i=e[0],n=e[1],o=e[2],h=e[3];r.moveTo(i,o),r.quadraticCurveTo(n,o,n,h)})),r.stroke()}}this.backgroundColor&&(r.fillStyle=this.backgroundColor,this.borderRadius?(r.beginPath(),r.moveTo(n[0],o[0]),[[n[0],o[0],e.width-o[1],n[1],n[1],n[1]],[e.width-n[0],e.width-n[0],e.width-n[0],n[1],o[1],e.height-o[2]],[e.width-n[0],e.width-o[2],o[3],e.height-n[1],e.height-n[1],e.height-n[1]],[n[0],n[0],n[0],e.height-n[1],e.height-o[3],o[0]]].forEach((function(t){var e=a(t,6),i=e[0],n=e[1],o=e[2],h=e[3],s=e[4],u=e[5];r.quadraticCurveTo(i,h,n,s),r.lineTo(o,u)})),r.closePath(),r.fill()):r.fillRect(n[0],n[1],e.width-2*n[0],e.height-2*n[1])),r.translate.apply(r,h(n)),r.translate.apply(r,h(u)),r.font=l,r.fillStyle=this.color,r.textBaseline="bottom";var _=this.strokeWidth>0;_&&(r.lineWidth=this.strokeWidth*this.fontSize/10,r.strokeStyle=this.strokeColor),f.forEach((function(e,i){var n=(d-r.measureText(e).width)/2,o=(i+1)*t.fontSize;_&&r.strokeText(e,n,o),r.fillText(e,n,o)})),this.material.map&&this.material.map.dispose();var m=this.material.map=new c.Texture(e);m.minFilter=c.LinearFilter,m.colorSpace=c.SRGBColorSpace,m.needsUpdate=!0;var w=spriteScale;this.scale.set(w*e.width/e.height,w,1);this.userData.width=e.width*0.25;this.userData.height=e.height*0.25;}},{key:"clone",value:function(){return new this.constructor(this.text,this.textHeight,this.color).copy(this)}},{key:"copy",value:function(t){return c.Sprite.prototype.copy.call(this,t),this.color=t.color,this.backgroundColor=t.backgroundColor,this.padding=t.padding,this.borderWidth=t.borderWidth,this.borderColor=t.borderColor,this.fontFace=t.fontFace,this.fontSize=t.fontSize,this.fontWeight=t.fontWeight,this.strokeWidth=t.strokeWidth,this.strokeColor=t.strokeColor,this}}])&&e(r.prototype,n),s&&e(r,s),Object.defineProperty(r,"prototype",{writable:!1}),f}(c.Sprite);return f})); diff --git a/public/static/worker/page.worker.js b/public/static/worker/page.worker.js deleted file mode 100644 index 0fb8d20..0000000 --- a/public/static/worker/page.worker.js +++ /dev/null @@ -1,81 +0,0 @@ -let pageIndex = 1 //数组中需要分页(即下标为pageIdx的数据)的当前页 大数组中的二维 -const pageSize = 20 //一页显示的条数 -let pageList = [] //用于UI渲染的列表 -let showMore = false -let pageIdx = 0 //当前是数组中的哪一项需要分页 大数组中的一维 -let allList = [] -let loaded = false -function loadMore(_pageIndex) { - if (!Array.isArray(allList)) { - return - } - //如果数组中的大分页项大于等于大数组的长度则全部分页完成 - if (pageIdx >= allList.length) { - loaded = true - return - } - pageIndex = _pageIndex - const size = allList[pageIdx].shopList.slice(0, pageIndex * pageSize) - //数组中需要分页的列表项是否存在于渲染列表中 如果有则直接把分页的数据赋值 没有则新开一个放到渲染列表中 - if (pageList[pageIdx]?.name) { - pageList[pageIdx].shopList = size - } else { - pageList.push({ - name: allList[pageIdx].name, - shopList: size - }) - } - - showMore = false -} - - function scrollEnd() { - if (pageIdx >= allList.length || pageIdx < 0) { - loaded = true - return - } - if (pageList[pageIdx].shopList.length >= allList[pageIdx].shopList.length) { - pageIdx++ - pageIndex = 1 - loadMore(pageIndex) - return - } - if (!showMore) { - showMore = true - loadMore(pageIndex + 1) - } - } - - self.onmessage = e => { - if (Array.isArray(e.data)) { - allList = e.data - } - if (e.data === 'scrollEnd') { - scrollEnd(allList) - self.postMessage({ pageList, loaded, refresh: false }) - return - } - //数据变化时重置分页数据 一般是点击了业态或楼层筛选 - loaded = false - pageIndex = 1 - pageList = [] - - //找出数据中店铺列表长度大于分页点的索引 从索引处开始分页 - pageIdx = allList.findIndex(item => item.shopList.length > pageSize) - - //pageIdx小于0的话 说明没有店铺列表长度大于分页点的 无需分页直接返回数据 - if (pageIdx < 0) { - pageList = e.data - loaded = true - self.postMessage({ pageList, loaded, refresh: true }) - return - } - if (pageIdx !== 0) { - for (let i = 0; i < pageIdx; i++) { - pageList.push(allList[i]) - } - } - loadMore(pageIndex, allList) - self.postMessage({ pageList, loaded, refresh: true }) - } - diff --git a/src/App.vue b/src/App.vue index c2704b7..a984dc9 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,61 +1,53 @@ diff --git a/src/assets/images/a.svg b/src/assets/images/a.svg new file mode 100644 index 0000000..86a89d3 --- /dev/null +++ b/src/assets/images/a.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/assets/images/all.svg b/src/assets/images/all.svg deleted file mode 100644 index 445bd6f..0000000 --- a/src/assets/images/all.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/assets/images/arrow.svg b/src/assets/images/arrow.svg new file mode 100644 index 0000000..c373b43 --- /dev/null +++ b/src/assets/images/arrow.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/assets/images/car.svg b/src/assets/images/car.svg deleted file mode 100644 index fbdcbcc..0000000 --- a/src/assets/images/car.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/assets/images/direction_right.svg b/src/assets/images/direction_right.svg deleted file mode 100644 index 08aad4d..0000000 --- a/src/assets/images/direction_right.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/src/assets/images/hand.png b/src/assets/images/hand.png new file mode 100644 index 0000000..e5042fa Binary files /dev/null and b/src/assets/images/hand.png differ diff --git a/src/assets/images/heart.png b/src/assets/images/heart.png new file mode 100644 index 0000000..3881b9c Binary files /dev/null and b/src/assets/images/heart.png differ diff --git a/src/assets/images/indicate_icon_down.svg b/src/assets/images/indicate_icon_down.svg deleted file mode 100644 index 10bbc80..0000000 --- a/src/assets/images/indicate_icon_down.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/src/assets/images/logo.png b/src/assets/images/logo.png new file mode 100644 index 0000000..64acf9c Binary files /dev/null and b/src/assets/images/logo.png differ diff --git a/src/assets/images/q.svg b/src/assets/images/q.svg new file mode 100644 index 0000000..bd236fd --- /dev/null +++ b/src/assets/images/q.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/assets/images/stay_tuned.svg b/src/assets/images/stay_tuned.svg deleted file mode 100644 index 331cfad..0000000 --- a/src/assets/images/stay_tuned.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/src/assets/scss/base.scss b/src/assets/scss/base.scss index 75b60fc..663d906 100644 --- a/src/assets/scss/base.scss +++ b/src/assets/scss/base.scss @@ -2,80 +2,8 @@ body, html { - line-height: 1; user-select: none; -webkit-tap-highlight-color: transparent; touch-action: none; font-family: 'HarmonyOS_Sans_SC_Regular', 'Helvetica Neue', Helvetica, 'PingFang SC', Arial, sans-serif; } - -//列表通用动画 -.list-enter-active { - transition: all 0.3s; - transition-timing-function: cubic-bezier(0.55, 0, 0.1, 1); -} - -.list-leave-active { - position: absolute !important; - transition: all 0.3s; - transition-timing-function: cubic-bezier(0.55, 0, 0.1, 1); -} - -.list-enter-from, -.list-leave-to { - transform: scale(0); - transform-origin: center; - opacity: 0; -} -.list-move { - transition: transform 0.3s !important; - transition-timing-function: cubic-bezier(0.55, 0, 0.1, 1); -} - -//小型弹框通用动画 -.modal-enter-from, -.modal-leave-to { - opacity: 0; -} - -//小型弹框通用动画 -.modal-enter-active, -.modal-leave-active { - transition: all 0.3s ease-in-out; - transition-timing-function: cubic-bezier(0.55, 0, 0.1, 1); -} - -.modal-enter-active > *:first-child, -.modal-leave-active > *:first-child { - transition: all 0.3s ease-in-out; - transition-timing-function: cubic-bezier(0.55, 0, 0.1, 1); -} - -.modal-enter-from > *:first-child, -.modal-leave-to > *:first-child { - transform: scale(1.2); -} - -//对话框通用动画 -.dialog-enter-active, -.dialog-leave-active { - transition: all 0.3s ease-in-out; - transition-timing-function: cubic-bezier(0.55, 0, 0.1, 1); -} - -.dialog-enter-from, -.dialog-leave-to { - opacity: 0; -} - -.dialog-enter-active > *:first-child, -.dialog-leave-active > *:first-child { - transition: all 0.3s ease-in-out; - transition-timing-function: cubic-bezier(0.55, 0, 0.1, 1); -} - -.dialog-enter-from > *:first-child, -.dialog-leave-to > *:first-child { - transform: scale(0); - opacity: 0.01; -} diff --git a/src/assets/scss/index.scss b/src/assets/scss/index.scss index a2a916c..b872b9a 100644 --- a/src/assets/scss/index.scss +++ b/src/assets/scss/index.scss @@ -7,15 +7,6 @@ @tailwind utilities; #app { - @apply h-screen w-screen; + @apply h-screen w-screen bg-black; } -.north { - @apply left-16 top-7.5 size-20; -} -.north img { - @apply left-1/2 top-1/2 h-10.5 w-2.5; - - margin-top: -21px; - margin-left: -5px; -} diff --git a/src/assets/scss/mixin.scss b/src/assets/scss/mixin.scss deleted file mode 100644 index e9788bc..0000000 --- a/src/assets/scss/mixin.scss +++ /dev/null @@ -1,13 +0,0 @@ -@mixin scrollbar($height: 120px, $top: 0, $scrollbarBg: rgb(0 0 0 / 3%), $indicatorBg: rgb(0 0 0 / 6%)) { - :deep(.bscroll-vertical-scrollbar) { - top: $top !important; - height: $height !important; - background: $scrollbarBg !important; - opacity: 1 !important; - .bscroll-indicator { - background: $indicatorBg !important; - border: none !important; - outline: none !important; - } - } -} diff --git a/src/assets/scss/reset.scss b/src/assets/scss/reset.scss index 917f4a0..9ae5677 100644 --- a/src/assets/scss/reset.scss +++ b/src/assets/scss/reset.scss @@ -107,10 +107,6 @@ section { display: block; } -body { - line-height: 1; -} - blockquote, q { quotes: none; diff --git a/src/base/AutoBackNotification/AutoBackNotification.vue b/src/base/AutoBackNotification/AutoBackNotification.vue index 2d6f857..35bb398 100644 --- a/src/base/AutoBackNotification/AutoBackNotification.vue +++ b/src/base/AutoBackNotification/AutoBackNotification.vue @@ -1,12 +1,12 @@ diff --git a/src/components/Header/Header.vue b/src/components/Header/Header.vue new file mode 100644 index 0000000..fb71366 --- /dev/null +++ b/src/components/Header/Header.vue @@ -0,0 +1,34 @@ + + + diff --git a/src/components/List/List.vue b/src/components/List/List.vue new file mode 100644 index 0000000..f769091 --- /dev/null +++ b/src/components/List/List.vue @@ -0,0 +1,83 @@ + + + + + diff --git a/src/components/ListItem/ListItem.vue b/src/components/ListItem/ListItem.vue new file mode 100644 index 0000000..74c20c2 --- /dev/null +++ b/src/components/ListItem/ListItem.vue @@ -0,0 +1,60 @@ + + + + diff --git a/src/components/Lottie/Lottie.vue b/src/components/Lottie/Lottie.vue deleted file mode 100644 index 2d6cc27..0000000 --- a/src/components/Lottie/Lottie.vue +++ /dev/null @@ -1,60 +0,0 @@ - - - diff --git a/src/components/Map/Map.vue b/src/components/Map/Map.vue deleted file mode 100644 index 3d69a61..0000000 --- a/src/components/Map/Map.vue +++ /dev/null @@ -1,74 +0,0 @@ - - - - - diff --git a/src/components/SearchByLetter/SearchByLetter.vue b/src/components/SearchByLetter/SearchByLetter.vue deleted file mode 100644 index a6d8bd4..0000000 --- a/src/components/SearchByLetter/SearchByLetter.vue +++ /dev/null @@ -1,48 +0,0 @@ - - - diff --git a/src/components/SearchByLetter/letter.ts b/src/components/SearchByLetter/letter.ts deleted file mode 100644 index 2408918..0000000 --- a/src/components/SearchByLetter/letter.ts +++ /dev/null @@ -1,39 +0,0 @@ -export const letter = [ - '1', - '2', - '3', - '4', - '5', - '6', - '7', - '8', - '9', - '0', - 'Q', - 'W', - 'E', - 'R', - 'T', - 'Y', - 'U', - 'I', - 'O', - 'P', - 'A', - 'S', - 'D', - 'F', - 'G', - 'H', - 'J', - 'K', - 'L', - 'Z', - 'X', - 'C', - 'V', - 'B', - 'N', - 'M', - 'del' -] as const diff --git a/src/components/Tabs/Tabs.vue b/src/components/Tabs/Tabs.vue deleted file mode 100644 index 00f87c7..0000000 --- a/src/components/Tabs/Tabs.vue +++ /dev/null @@ -1,116 +0,0 @@ - - - - - diff --git a/src/components/Written/Written.vue b/src/components/Written/Written.vue deleted file mode 100644 index 6228371..0000000 --- a/src/components/Written/Written.vue +++ /dev/null @@ -1,206 +0,0 @@ - - - diff --git a/src/composables/useActivityNav.ts b/src/composables/useActivityNav.ts deleted file mode 100644 index 40958c8..0000000 --- a/src/composables/useActivityNav.ts +++ /dev/null @@ -1,50 +0,0 @@ -import { storeToRefs } from 'pinia' -import { useRootStore } from '@/stores/root' -import { useFindBuildingInfo } from './useFindBuildingInfo' -import Brand from '@/utils/Class/Brand' -import { splitStringToArray } from '@/utils/utils' -import Message from '@/base/Message/Message' - -/** - * @description 活动通用导航 - */ -export const useActivityNav = () => { - const store = useRootStore() - const { mapShopListByCode } = storeToRefs(store) - const { findBuildingInfo } = useFindBuildingInfo() - - function nav(activity: Activity): Promise { - return new Promise((resolve, reject) => { - if (activity.shopCode?.length) { - const shop = mapShopListByCode.value[activity.shopCode]?.[0] - if (shop) { - resolve(shop) - } else { - Message('无法匹配店铺') - reject('Unable to match store') - } - return - } - - if (activity.point?.length) { - const { title, titleEn, point, fileUrl } = activity - const [buildingOrder, floorOrder, yaxis] = splitStringToArray(point) - const navBuildingInfo = findBuildingInfo(buildingOrder) - - const shop = new Brand({ - shopName: title, - shopNameEn: titleEn, - floorOrder, - floor: navBuildingInfo?.floorList?.find(item => item.floorOrder === floorOrder)?.floor ?? '', - logoUrl: fileUrl[0], - yaxis, - buildingOrder, - building: navBuildingInfo?.building - }) - resolve(shop) - } - }) - } - - return { nav } -} diff --git a/src/composables/useCameraViews.ts b/src/composables/useCameraViews.ts deleted file mode 100644 index 9665014..0000000 --- a/src/composables/useCameraViews.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { ref, computed, onUnmounted } from 'vue' - -const CameraTypeMap = { - '2D': 'icon-jichu_ditudaohang_2Dditu', - '3D': 'icon-jichu_ditudaohang_3Dditu' -} as const - -type CameraTypeKey = keyof typeof CameraTypeMap -//获取CameraTypeMap的value -export type CameraTypeMapValue = (typeof CameraTypeMap)[CameraTypeKey] - -export const useCameraViews = (pauseFn?: () => void) => { - const text = ref('2D') - - const viewIcon = computed(() => (text.value === '2D' ? CameraTypeMap['2D'] : CameraTypeMap['3D'])) - - //设置导航视角 2D或者3D - function setCameraViews() { - pauseFn?.() - window.Map_QM.pathRePlay() - const type = text.value === '2D' ? '3D' : '2D' - setText(type) - window.Map_QM.changePathDir(type === '3D' ? '2D' : '3D') - } - - function setText(type: CameraTypeKey) { - text.value = type - } - - onUnmounted(() => { - window.pathCameraState = '3D' - }) - return { viewIcon, setCameraViews, setText } -} diff --git a/src/composables/useChangeNavMethod.ts b/src/composables/useChangeNavMethod.ts deleted file mode 100644 index cb630c8..0000000 --- a/src/composables/useChangeNavMethod.ts +++ /dev/null @@ -1,55 +0,0 @@ -import { ref } from 'vue' -import { NavMethods, methodsList } from '@/views/Nav/methodsList' - -/** - * @description callback 地图触发导航的回调函数 - * @description resetPause 初始化暂停状态 - * @description reset 初始化经过店铺索引 - * @description scroll 经过店铺的滚动实例 - */ -export const useChangeNavMethod = ( - callback: ({ direction, wayList }: { direction: Direction; wayList: Shop[] }) => void, - resetPause: () => void, - reset: () => void, - scroll?: any, - closeShowOverDialog?: () => void -) => { - const methodIdx = ref(0) - //切换导航路线 - function handleControl(method: NavMethods, index: number) { - reset() - resetPause() - closeShowOverDialog?.() - scroll?.value?.scrollTo(0, 0, 200) - methodIdx.value = index - selectedWayMethods(method) - } - - //选择路线 0:最佳路线 1: 扶梯模式 2: 电梯模式 - function selectedWayMethods(method: NavMethods) { - switch (method) { - case NavMethods.BEST: - //最佳路线 - window.Map_QM.ChangePathByGood(callback) - break - case NavMethods.ESCALATOR: - //扶梯模式 - window.Map_QM.ChangePathByFt(callback) - break - - case NavMethods.STRAIGHT: - //电梯模式 - window.Map_QM.ChangePathByDt(callback) - break - default: - window.Map_QM.ChangePathByGood(callback) - break - } - } - - function resetMethodIdx() { - methodIdx.value = 0 - } - - return { methodsList, methodIdx, handleControl, selectedWayMethods, resetMethodIdx } -} diff --git a/src/composables/useCreateDialogTemplate.ts b/src/composables/useCreateDialogTemplate.ts deleted file mode 100644 index 69e55bd..0000000 --- a/src/composables/useCreateDialogTemplate.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { createTemplatePromise } from '@vueuse/core' -import type { TransitionGroupProps } from 'vue' - -type AnimationType = 'dialog' | 'modal' | '' -/** - * @description 模态框函数式调用 - * @description 关闭模态框调用resolve('close') resolve从模板插槽解构 - * @param value 配置参数 传入'dialog'或者'modal'时 使用内置动画 传入object时参数详见vue内置类型TransitionGroupProps - * @example - * const { DialogTemplate } = useCreateDialogTemplate() - * const { DialogTemplate } = useCreateDialogTemplate('modal') - * const { DialogTemplate } = useCreateDialogTemplate({...your code}) - - ...your html code - - */ -export const useCreateDialogTemplate = (value: AnimationType | TransitionGroupProps = '') => { - const mergeOptions = typeof value === 'string' ? { name: value, appear: true } : { ...value } - const DialogTemplate = createTemplatePromise<'close', T>({ - transition: mergeOptions - }) - return { DialogTemplate } -} diff --git a/src/composables/useDay.ts b/src/composables/useDay.ts index f519c18..0e1c3e1 100644 --- a/src/composables/useDay.ts +++ b/src/composables/useDay.ts @@ -1,18 +1,11 @@ -import { computed, toRefs } from 'vue' -import { useRootStore } from '@/stores/root' +import { computed } from 'vue' export const useDay = () => { - const days: Record = { - zh: ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'], - en: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], - tw: ['星期日', '星期壹', '星期二', '星期三', '星期四', '星期五', '星期六'] - } as const + const days = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'] as const const date = new Date() - const store = useRootStore() - const { language } = toRefs(store) - const whichWeek = computed(() => days[language.value][date.getDay()]) + const whichWeek = computed(() => days[date.getDay()]) return { whichWeek } } diff --git a/src/composables/useFacilityNav.ts b/src/composables/useFacilityNav.ts deleted file mode 100644 index 58531d4..0000000 --- a/src/composables/useFacilityNav.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { useFindBuildingInfo } from './useFindBuildingInfo' -import Brand from '@/utils/Class/Brand' - -export const useFacilityNav = () => { - const { findBuildingInfo } = useFindBuildingInfo() - - function handleFacility({ abbreviation, customFacilityName, navFilePath, name, nameEn }: Facility): Promise { - return new Promise((resolve, reject) => { - const iconInfo = window.Map_QM.pathIcon({ type: abbreviation }) - if (!iconInfo) { - reject(`公共设施:${name}无法导航`) - return - } - const { floor, node, build } = iconInfo - const navBuildingInfo = findBuildingInfo(build) - - const shop = new Brand({ - shopName: customFacilityName.length ? customFacilityName : name, - shopNameEn: nameEn, - floorOrder: floor, - floor: navBuildingInfo?.floorList?.find(_floor => _floor.floorOrder === floor)?.floor ?? '', - logoUrl: navFilePath ?? '', - yaxis: node, - buildingOrder: build, - building: navBuildingInfo?.building - }) - resolve(shop) - }) - } - - return { handleFacility } -} diff --git a/src/composables/useFindBuildingInfo.ts b/src/composables/useFindBuildingInfo.ts deleted file mode 100644 index 143e135..0000000 --- a/src/composables/useFindBuildingInfo.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { toRefs } from 'vue' -import { useRootStore } from '@/stores/root' - -/** - * @description 查找符合条件的楼栋数据 - */ -export const useFindBuildingInfo = () => { - const store = useRootStore() - const { buildingList } = toRefs(store) - - function findBuildingInfo(buildingOrder: number) { - // 获取建筑信息 - const navBuildingInfo = buildingList.value.find(item => item.buildingOrder === buildingOrder) - return navBuildingInfo - } - - return { findBuildingInfo } -} diff --git a/src/composables/useFindCar.ts b/src/composables/useFindCar.ts deleted file mode 100644 index 7ce7dac..0000000 --- a/src/composables/useFindCar.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { ref, shallowRef } from 'vue' -import { getFindCar } from '@/http/api/parking' -import { HTTP_CODE } from '@/enums' -import Message from '@/base/Message/Message' - -export const useFindCar = () => { - const loading = ref(false) - const result = shallowRef() - async function confirm(plate: string) { - if (loading.value) { - return - } - try { - loading.value = true - const { code, msg, data } = await getFindCar(plate) - if (code === HTTP_CODE.ERR_OK) { - result.value = data - } else { - Message(msg) - } - } catch { - Message('网络错误') - } finally { - loading.value = false - } - } - - return { loading, result, confirm } -} diff --git a/src/composables/useHandleScreen.ts b/src/composables/useHandleScreen.ts index 47c000f..40c65f5 100644 --- a/src/composables/useHandleScreen.ts +++ b/src/composables/useHandleScreen.ts @@ -1,44 +1,23 @@ -import { ref, computed, watch, onUnmounted } from 'vue' +import { ref, watch, onUnmounted } from 'vue' import { storeToRefs } from 'pinia' -import * as Sentry from '@sentry/vue' import { useRootStore } from '@/stores/root' -import { useRouter } from 'vue-router' -import { getStatistics } from '@/http/api/statistics' export const useHandleScreen = (callback: () => void) => { const MIN_TIME = 0 const MAX_TIME = 5 const CHECK_TIME = 1000 const DELAY_CHECK_TIME = 400 + const title = '即将进入屏幕保护' - const router = useRouter() const store = useRootStore() - const { nativeMethods, mapStatus, backTime, device } = storeToRefs(store) + const { nativeMethods, backTime } = storeToRefs(store) - const toIndexTime = ref(backTime.value[0]) //回首页的时间 const toWallpaperTime = ref(backTime.value[1]) //回屏保的时间 const isWallpaper = ref(false) //回首页是否已经跑完 const showCountDownDialog = ref(false) - const title = computed(() => (isWallpaper.value ? '即将进入屏幕保护' : '即将进入首页')) - const delayTime = computed(() => (isWallpaper.value ? toWallpaperTime.value : toIndexTime.value)) - - let toIndexInterval: any let toWallpaperInterval: any let delayCheckRoutePathTimer: any - function sleepToIndex() { - isWallpaper.value = false - return new Promise(resolve => { - toIndexInterval = setInterval(() => { - toIndexTime.value-- - if (toIndexTime.value <= MIN_TIME) { - clearInterval(toIndexInterval) - toIndexTime.value = backTime.value[0] - resolve() - } - }, CHECK_TIME) - }) - } function sleepToWallpaper() { isWallpaper.value = true return new Promise(resolve => { @@ -55,7 +34,6 @@ export const useHandleScreen = (callback: () => void) => { } function clearTimers() { - clearInterval(toIndexInterval) clearInterval(toWallpaperInterval) clearTimeout(delayCheckRoutePathTimer) } @@ -66,30 +44,14 @@ export const useHandleScreen = (callback: () => void) => { } function checkHandleScreen() { - getStatistics({ - deviceCode: device.value.machineCode, - projectCode: device.value.projectCode, - tag: 'device' - }) - toIndexTime.value = backTime.value[0] toWallpaperTime.value = backTime.value[1] clearTimers() delayCheckRoutePathTimer = setTimeout(async () => { try { - if (router.currentRoute.value.fullPath !== '/') { - await sleepToIndex() - callback() - } - //没有屏保 if (backTime.value[1] < 0) { - //在根路由页面上执行全局弹框操作(比如全局搜索, 全局详情等)重新触发返回首页弹框 - if (router.currentRoute.value.fullPath === '/') { - await sleepToIndex() - callback() - } return } await sleepToWallpaper() @@ -97,36 +59,18 @@ export const useHandleScreen = (callback: () => void) => { nativeMethods.value?.goScreenSave() } catch (error) { clearTimers() - Sentry.captureException('checkHandleScreen:' + error) } }, DELAY_CHECK_TIME) } //监听时间 大于等于0且小于等于5时显示弹框 - const stopHandler = watch([toIndexTime, toWallpaperTime], ([indexTime, wallpaperTime]) => { - showCountDownDialog.value = (indexTime >= MIN_TIME && indexTime <= MAX_TIME) || (wallpaperTime >= MIN_TIME && wallpaperTime <= MAX_TIME) + const stopHandler = watch(toWallpaperTime, wallpaperTime => { + showCountDownDialog.value = wallpaperTime >= MIN_TIME && wallpaperTime <= MAX_TIME }) - const stopMapStatusHandler = watch( - mapStatus, - newVal => { - if (newVal) { - if (backTime.value[1] < 0) { - return - } - checkHandleScreen() - } - }, - { - once: true - } - ) - onUnmounted(() => { clearTimers() stopHandler() - stopMapStatusHandler() - toIndexInterval = null toWallpaperInterval = null delayCheckRoutePathTimer = null }) @@ -135,6 +79,6 @@ export const useHandleScreen = (callback: () => void) => { checkHandleScreen, showCountDownDialog, title, - delayTime + toWallpaperTime } } diff --git a/src/composables/useInitBaseData.ts b/src/composables/useInitBaseData.ts index 1ca3041..c2f140c 100644 --- a/src/composables/useInitBaseData.ts +++ b/src/composables/useInitBaseData.ts @@ -1,96 +1,19 @@ -import * as Sentry from '@sentry/vue' import { useRootStore } from '@/stores/root' -import { - getConfig, - getDeviceInfo, - getDefaultFacilitiesList, - getCustomFacilitiesList, - getWeather, - getSpecialCardTab, - getBackTime, - getSpecialIndustry -} from '@/http/api/base' -import { getShopAndBuildingList } from '@/http/api/shop' -import { getActivities } from '@/http/api/activity' -import { getShopListByFloor, getShopListByIndustry, getBrandInfo } from '@/http/api/brand' -import { groupBy } from 'lodash-es' -import { mergeEntryCode } from '@/utils/utils' -import type { GroupList } from '@/http/api/brand/types' +import { getConfig, getDevice, getWeather, getBackTime } from '@/http/api' export const useInitBaseData = async () => { const store = useRootStore() - const merge = (list: GroupList, groupByShopCode: Record) => { - return list.map(item => ({ - ...item, - shopList: item.shopList.map(shop => ({ - ...shop, - activityList: groupByShopCode[shop.shopCode] ?? [] - })) - })) - } - try { const _config = await getConfig() store.SET_CONFIG(_config.data.map(item => item.content)[0]) - const [ - _deviceInfo, - _shopAndBuilding, - _defaultFacilityList, - _customFacilityList, - _weather, - _shopListByFloor, - _shopListByIndustry, - _brandInfo, - _shopActivity, - _RecommendTabList, - _backTime, - _specialIndustry - ] = await Promise.all([ - getDeviceInfo(), - getShopAndBuildingList(), - getDefaultFacilitiesList(), - getCustomFacilitiesList(), - getWeather(), - getShopListByFloor(), - getShopListByIndustry(), - getBrandInfo(), - getActivities('getShopActivities'), - getSpecialCardTab(), - getBackTime(), - getSpecialIndustry() - ]) - - const { shopList, buildingList } = _shopAndBuilding.data - - //合并店铺的entryCode - const list = mergeEntryCode(_shopActivity.data) - //分组 按照key为店铺的code - const groupByShopCode = groupBy(list, 'shopCode') - //合并店铺的对应活动 - const mergeActivityToShopList = shopList.map(item => ({ - ...item, - activityList: groupByShopCode[item.shopCode] ?? [] - })) - - //特殊业态code - const industryCode = _specialIndustry.data.map(item => item.content)?.[0]?.industryCode + const [_deviceInfo, _weather, _backTime] = await Promise.all([getDevice(), getWeather(), getBackTime()]) store.SET_DEVICE(_deviceInfo.data) - store.SET_MAP_SHOP_LIST_BY_CODE(groupBy(mergeActivityToShopList, 'shopCode')) - store.SET_SHOP_LIST(mergeActivityToShopList) - store.SET_BUILDING_LIST(buildingList) - store.SET_BRAND_INFO(_brandInfo.data) - store.SET_SHOP_LIST_BY_FLOOR(merge(_shopListByFloor.data.list, groupByShopCode)) - store.SET_SHOP_LIST_BY_INDUSTRY(merge(_shopListByIndustry.data.list, groupByShopCode)) - store.SET_DEFAULT_FACILITY_LIST(groupBy(_defaultFacilityList.data, 'code')) - store.SET_CUSTOM_FACILITY_LIST(_customFacilityList.data) store.SET_WEATHER(_weather.data) - store.SET_RECOMMEND_TAB(_RecommendTabList.data.map(item => item.content)) store.SET_BACK_TIME([_backTime.data[0], _backTime.data[1] ? _backTime.data[1] : -1]) - store.SET_SPECIAL_INDUSTRY_CODE(industryCode) } catch (error) { - Sentry.captureException(error) + console.log('🚀 ~ useInitBaseData ~ error:', error) alert('数据异常,软件启动失败') } } diff --git a/src/composables/useInitMap.ts b/src/composables/useInitMap.ts deleted file mode 100644 index 55565d3..0000000 --- a/src/composables/useInitMap.ts +++ /dev/null @@ -1,69 +0,0 @@ -import { toRaw } from 'vue' -import * as Sentry from '@sentry/vue' -import { storeToRefs } from 'pinia' -import { cloneDeep } from 'lodash-es' -import { useRootStore } from '@/stores/root' -import { getMapData } from '@/http/api/base' -import Message from '@/base/Message/Message' - -export const useInitMap = async () => { - try { - const store = useRootStore() - const { device, customFacilityList, shopList } = storeToRefs(store) - const { data } = await getMapData() - //初始化地图 - window.MainMap_QM.init( - () => { - if (!window.shopInfo) { - window.shopInfo = document.getElementById('shopInfo') as HTMLDivElement - } - store.SET_MAP_STATUS(true) - window.Map_QM.cancelRender() - window.Map_QM.addEventListener('shop', onClickShop, false) - window.Map_QM.renderer.domElement.addEventListener('contextlost', onContextLost) - }, - { - build: device.value.buildingOrder, - floor: device.value.floorOrder, - navPoint: device.value.location, - angle: device.value.angle, - shadow: false, - iconUrl: cloneDeep(toRaw(customFacilityList.value)), - mapData: data, - shopData: cloneDeep(toRaw(shopList.value)) - } - ) - } catch (error) { - Sentry.captureException(`地图初始化失败:${error}`) - Message(`地图初始化失败`) - } -} - -//点击地图店铺box -function onClickShop(event: any) { - const store = useRootStore() - - if (event.data) { - showMapDialog() - window.Map_QM.addElementLabel(window.shopInfo, event.data.xaxis, event.data.yaxis) - store.SET_SHOP(event.data.shopData) - } else { - hideMapDialog() - } -} -//地图弹框消失 -export function hideMapDialog() { - window.shopInfo.style.visibility = 'hidden' -} - -//显示地图弹框 -export function showMapDialog() { - window.shopInfo.style.visibility = 'visible' -} - -//监听地图上下文丢失 刷新页面 -function onContextLost(event: any) { - Sentry.captureException(`地图上下文已丢失`) - event.preventDefault() - window.location.href = '/' -} diff --git a/src/composables/useLanguage.ts b/src/composables/useLanguage.ts deleted file mode 100644 index 42e89ed..0000000 --- a/src/composables/useLanguage.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { provide } from 'vue' -import type { InjectionKey } from 'vue' -import { storeToRefs } from 'pinia' -import { useRootStore } from '@/stores/root' -import { chineseLanguageLoader } from '@/locales/util' - -export type Func = (value: V, key: K) => V[K] -export const PROVIDE_LANGUAGE_KEY = Symbol() as InjectionKey -export const useLanguage = () => { - const store = useRootStore() - const { language } = storeToRefs(store) - - const switchLanguage: Func = (value, key) => { - let content: any - if (language.value === 'zh') { - content = value[key] - } - const _key = (key as string) + 'En' - if (language.value === 'en' && (value as any)[_key]) { - content = (value as any)[_key] - } else if (language.value === 'en' && !(value as any)[_key]) { - content = value[key] - } - - if (language.value === 'tw') { - content = chineseLanguageLoader(value[key] as any) - } - - return content - } - - provide(PROVIDE_LANGUAGE_KEY, switchLanguage) -} diff --git a/src/composables/useMapNavControl.ts b/src/composables/useMapNavControl.ts deleted file mode 100644 index e3cfb84..0000000 --- a/src/composables/useMapNavControl.ts +++ /dev/null @@ -1,63 +0,0 @@ -import { ref, nextTick, onUnmounted } from 'vue' - -export const useMapNavControl = (callback: () => void, scroll?: any, closeShowOverDialog?: () => void) => { - const NORMAL_MULTIPLE = 1 - const FAST_MULTIPLE = 2 - - const replay = ref(false) //重播 - const pause = ref(false) //暂停 - const speedUp = ref(false) //加速 - let replayTimer: any //重播定时器 - - //重播 - function handleReplay() { - callback() - scroll?.value?.scrollTo(0, 0, 100) - closeShowOverDialog?.() - window.Map_QM.util.changePlaySpeed(NORMAL_MULTIPLE) - replay.value = true - pause.value = false - speedUp.value = false - window.Map_QM.pathRePlay() - clearTimeout(replayTimer) - replayTimer = setTimeout(() => { - replay.value = false - clearTimeout(replayTimer) - replayTimer = null - }, 1000) - } - - //暂停导航 继续导航 - function togglePause() { - closeShowOverDialog?.() - pause.value = !pause.value - replay.value = false - nextTick(() => { - pause.value ? window.Map_QM.pathStop(false) : window.Map_QM.pathStop(true) - }) - } - - //加速 恢复初始加速状态 - function handleSpeedUp() { - closeShowOverDialog?.() - replay.value = false - pause.value = false - speedUp.value = !speedUp.value - window.Map_QM.pathStop(true) - nextTick(() => { - speedUp.value ? window.Map_QM.util.changePlaySpeed(FAST_MULTIPLE) : window.Map_QM.util.changePlaySpeed(NORMAL_MULTIPLE) - }) - } - - function resetPause() { - pause.value = false - } - - onUnmounted(() => { - window.Map_QM.util.changePlaySpeed(NORMAL_MULTIPLE) - clearTimeout(replayTimer) - replayTimer = null - }) - - return { replay, pause, speedUp, handleReplay, togglePause, handleSpeedUp, resetPause } -} diff --git a/src/composables/usePage.ts b/src/composables/usePage.ts deleted file mode 100644 index be62697..0000000 --- a/src/composables/usePage.ts +++ /dev/null @@ -1,45 +0,0 @@ -import { ref, shallowRef, watch, nextTick, onUnmounted } from 'vue' -import type { ShallowRef } from 'vue' -import { cloneDeep } from 'lodash-es' -import type { GroupList } from '@/http/api/brand/types' - -/** - * @param totalList 分页数据源 - * @param scroll 滚动组件的实例 - */ -export const usePage = (totalList: ShallowRef, scroll: any) => { - if (typeof Worker === 'undefined') { - throw Error('抱歉,当前运行环境不支持Web Worker API, 请升级浏览器版本') - } - const pageList = shallowRef([]) //用于UI渲染的列表 - const loaded = ref(false) - const worker = shallowRef() - worker.value = new Worker('./static/worker/page.worker.js') - worker.value.onmessage = (e: MessageEvent) => { - const { pageList: newPageList, loaded: isLoaded, refresh } = e.data - pageList.value = newPageList - loaded.value = isLoaded - if (refresh) { - nextTick(() => { - scroll.value?.scrollTo(0, 0) - }) - } - } - - function scrollEnd() { - if (!loaded.value) { - worker.value?.postMessage('scrollEnd') - } - } - const stopHandler = watch(totalList, newVal => { - const cloneList = cloneDeep(newVal) - worker.value?.postMessage(cloneList) - }) - - onUnmounted(() => { - worker.value?.terminate() - stopHandler() - }) - - return { scrollEnd, pageList, loaded } -} diff --git a/src/composables/useParkingKeyboard.ts b/src/composables/useParkingKeyboard.ts deleted file mode 100644 index 13f386a..0000000 --- a/src/composables/useParkingKeyboard.ts +++ /dev/null @@ -1,72 +0,0 @@ -import { ref, computed, watch, onUnmounted } from 'vue' -import { useI18n } from 'vue-i18n' -import { FIND_CAR_TYPES } from '@/enums' - -interface Options { - license: (string | number)[] - spaceLength: number -} - -/** - * @param option.license 默认车牌前两位 使具体项目所处位置 - * @param option.spaceLength 渲染的车位长度 - */ -export const useParkingKeyboard = ({ license, spaceLength }: Options) => { - const MAX_PLATE_LENGTH = 8 //车牌最大长度 - - const { t } = useI18n() - - const plate = ref([...license]) //车牌 - const searchMethod = ref(FIND_CAR_TYPES.LICENSE) //找车方式 车牌或者车位 - const totalInput = computed(() => (searchMethod.value === FIND_CAR_TYPES.LICENSE ? MAX_PLATE_LENGTH : spaceLength)) //渲染的输入框个数 - const btnText = computed(() => (searchMethod.value === FIND_CAR_TYPES.LICENSE ? t('carNav') : t('carNavTip'))) //按钮文案 - - const clickedCurrentIndex = ref(-1) - function setClickedCurrentIndex(index: number) { - clickedCurrentIndex.value = index - } - - function handleKeyboard(value: string) { - //替换输入框内容 - if (plate.value[clickedCurrentIndex.value] !== undefined) { - plate.value.splice(clickedCurrentIndex.value, 1, value) - setClickedCurrentIndex(-1) - return - } - - //车牌超出指定长度 - if (plate.value.length >= MAX_PLATE_LENGTH) { - return - } - - plate.value.push(value) - } - - function setSearchMethod(method: FIND_CAR_TYPES) { - searchMethod.value = method - } - function del() { - setClickedCurrentIndex(-1) - plate.value.pop() - } - - const stopHandler = watch( - searchMethod, - newVal => { - if (newVal === FIND_CAR_TYPES.LICENSE) { - plate.value = [...license] - } else { - plate.value = [] - } - }, - { - immediate: true - } - ) - - onUnmounted(() => { - stopHandler() - }) - - return { del, handleKeyboard, setSearchMethod, setClickedCurrentIndex, totalInput, plate, searchMethod, btnText, clickedCurrentIndex } -} diff --git a/src/composables/usePassActive.ts b/src/composables/usePassActive.ts deleted file mode 100644 index 27b2147..0000000 --- a/src/composables/usePassActive.ts +++ /dev/null @@ -1,53 +0,0 @@ -import { ref, onUnmounted, type ShallowRef } from 'vue' -import { useRouter } from 'vue-router' - -export const usePassActive = (pathShopList: ShallowRef) => { - const router = useRouter() - - const passIdx = ref(0) //经过店铺的选中索引 - const showOverDialog = ref(false) - - let timer: any - const TIME_OUT = 3000 - - function pathPlaying(e: any) { - if (e.data?.houseNumber?.length) { - passIdx.value = pathShopList.value.findIndex(item => item.houseNumber === e.data.houseNumber) - } - } - function PathPlayOver() { - clearTimeout(timer) - passIdx.value = pathShopList.value.length - 1 - timer = setTimeout(() => { - showOverDialog.value = true - }, TIME_OUT) - } - - function closeShowOverDialog() { - showOverDialog.value = false - clearTimeout(timer) - } - - function back() { - closeShowOverDialog() - router.back() - } - - //小人行走中 - window.Map_QM.addEventListener('PathPlaying', pathPlaying) - //小人到达目的地 - window.Map_QM.addEventListener('PathPlayOver', PathPlayOver) - - onUnmounted(() => { - window.Map_QM.removeEventListener('PathPlaying', pathPlaying) - window.Map_QM.removeEventListener('PathPlayOver', PathPlayOver) - clearTimeout(timer) - timer = null - }) - - function resetPassIdx() { - passIdx.value = 0 - } - - return { passIdx, showOverDialog, resetPassIdx, closeShowOverDialog, back } -} diff --git a/src/composables/useSearchShop.ts b/src/composables/useSearchShop.ts deleted file mode 100644 index b458942..0000000 --- a/src/composables/useSearchShop.ts +++ /dev/null @@ -1,68 +0,0 @@ -import { shallowRef, watch, toRefs, onUnmounted } from 'vue' -import { useRootStore } from '@/stores/root' -import { trimAll } from '@/utils/utils' -import type { Ref } from 'vue' - -/** - * @param watchName 搜索关键字 - * @param searchType 0:键盘搜索 1:手写搜索 - * @default searchType=0 - * @return searchShopList - */ -export const useSearchShop = (watchName: Ref, searchType: Ref<0 | 1>) => { - const store = useRootStore() - const { shopList } = toRefs(store) - const searchShopList = shallowRef([]) - const cacheFirstSearchList = shallowRef([]) //缓存第一次检索首字母后的列表结果 - - const stopHandler = watch(watchName, val => { - if (val.length) { - if (searchType.value === 0) { - let _shopList: Shop[] = [] - if (val.length === 1) { - //缓存第一次搜索结果 - cacheFirstSearchList.value = shopList.value.filter( - item => - trimAll(item.initials as string) - ?.toUpperCase() - ?.startsWith(val) || - trimAll(item.shopNameEn as string) - ?.toUpperCase() - ?.startsWith(val) || - trimAll(item.shopName)?.toUpperCase()?.startsWith(val) || - trimAll(item.spelling as string) - ?.toUpperCase() - ?.startsWith(val) - ) - } else { - const searchName = val.slice(1) - _shopList = cacheFirstSearchList.value.filter( - item => - trimAll(item.initials as string) - ?.toUpperCase() - ?.includes(searchName) || - trimAll(item.shopNameEn as string) - ?.toUpperCase() - ?.includes(searchName) || - trimAll(item.shopName)?.toUpperCase()?.includes(searchName) || - trimAll(item.spelling as string) - ?.toUpperCase() - ?.includes(searchName) - ) - } - searchShopList.value = val.length === 1 ? cacheFirstSearchList.value : _shopList - } else { - searchShopList.value = val.length ? shopList.value.filter(item => item.shopName.includes(val)) : [] - } - } else { - searchShopList.value = [] - cacheFirstSearchList.value = [] - } - }) - - onUnmounted(() => { - stopHandler() - }) - - return { searchShopList } -} diff --git a/src/composables/useServeNav.ts b/src/composables/useServeNav.ts deleted file mode 100644 index 45bbb4d..0000000 --- a/src/composables/useServeNav.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { useFindBuildingInfo } from './useFindBuildingInfo' -import Brand from '@/utils/Class/Brand' -import { splitStringToArray } from '@/utils/utils' - -export const useServeNav = () => { - const { findBuildingInfo } = useFindBuildingInfo() - - function nav({ title, titleEn, point, iconList }: Serve): Promise { - return new Promise(resolve => { - const [buildingOrder, floorOrder, yaxis] = splitStringToArray(point as string) - const navBuildingInfo = findBuildingInfo(buildingOrder) - const shop = new Brand({ - shopName: title, - shopNameEn: titleEn, - floor: navBuildingInfo?.floorList?.find(item => item.floorOrder === floorOrder)?.floor ?? '', - floorOrder, - logoUrl: iconList[0] ?? '', - yaxis, - buildingOrder, - building: navBuildingInfo?.building - }) - resolve(shop) - }) - } - - return { nav } -} diff --git a/src/composables/useStartNavi.ts b/src/composables/useStartNavi.ts deleted file mode 100644 index ea946af..0000000 --- a/src/composables/useStartNavi.ts +++ /dev/null @@ -1,96 +0,0 @@ -import { onUnmounted, ref, shallowRef, toRefs } from 'vue' -import { useRootStore } from '@/stores/root' - -type DirectionInfoType = { - text: string //方向信息 - textEn: string - directionIconClass: string - thumbIcon: string - class: string //动画样式 -} - -export const useStartNavi = () => { - const store = useRootStore() - const { shop, device } = toRefs(store) - - const pathShopList = shallowRef([]) //经过店铺 - const directionInfo = ref({} as DirectionInfoType) //方向等信息 - - onUnmounted(() => { - window.Map_QM.showFloor(device.value.floorOrder) - }) - - //导航动画 - function startNavi({ buildingOrder, floorOrder, yaxis }: { buildingOrder?: number; floorOrder: number; yaxis: number | string }) { - window.Map_QM.pathNode({ build: buildingOrder, floor: floorOrder, node: yaxis }, backPathArray) - } - - //店铺经过相关数据 - function backPathArray({ direction, wayList }: { direction: Direction; wayList: Shop[] }) { - directionInfo.value = generateDirection(direction) - const shopName = shop.value.shopNameEn ? shop.value.shopNameEn : shop.value.shopName - pathShopList.value = [ - { - shopName: `您在${device.value.floor}层${directionInfo.value.text}`, - shopNameEn: `You at ${device.value.floor}level${directionInfo.value.textEn}`, - shopCode: directionInfo.value.text - } as Shop, - ...wayList, - { - ...shop.value, - shopName: '到达' + shop.value.shopName, - shopNameEn: 'Arrive ' + shopName - } - ] - } - - function generateDirection(text: Direction): DirectionInfoType { - switch (text) { - case '向前出发': - return { - text: text, //方向信息 - textEn: 'Move forward', - directionIconClass: '-rotate-90', //大的方向箭头 - thumbIcon: 'icon-jichu_fangxiang_zhixiang-shang', //经过店铺时的那个小箭头 - class: 'animate__fadeInUp' //动画样式 - } - - case '向后出发': - return { - text: text, - textEn: 'Departure backwards', - directionIconClass: 'rotate-90', - thumbIcon: 'icon-jichu_fangxiang_zhixiang-xia', - class: 'animate__fadeInDown' - } - - case '向左出发': - return { - text: text, - textEn: 'Departure to the left', - directionIconClass: 'rotate-180', - thumbIcon: 'icon-jichu_fangxiang_zhixiang-zuo', - class: 'animate__fadeInRight' - } - - case '向右出发': - return { - text: text, - textEn: 'Departure to the right', - directionIconClass: '', - thumbIcon: 'icon-jichu_fangxiang_zhixiang-you', - class: 'animate__fadeInLeft' - } - default: - return { - text: '', - textEn: '', - directionIconClass: '', - class: '', - thumbIcon: '' - } - } - } - - return { directionInfo, pathShopList, backPathArray, startNavi } -} diff --git a/src/composables/useWeather.ts b/src/composables/useWeather.ts index b9aef50..c573e30 100644 --- a/src/composables/useWeather.ts +++ b/src/composables/useWeather.ts @@ -1,5 +1,5 @@ -import { ref, toRefs } from 'vue' -import { useRootStore } from '@/stores/root' +import { ref, onMounted } from 'vue' +import { getWeather } from '@/http/api' type IconMap = { type: @@ -13,10 +13,16 @@ type IconMap = { } export const useWeather = () => { - const store = useRootStore() - const { weather } = toRefs(store) const icon = ref({} as IconMap) + const weather = ref({} as Weather) + + onMounted(() => { + getWeather().then(({ data }) => { + weather.value = data + }) + }) + const status: IconMap[] = [ { type: 'icon-tianqi_06_qingtian', status: '晴' }, { type: 'icon-tianqi_06_duoyun', status: '多云' }, diff --git a/src/errorHandler/index.ts b/src/errorHandler/index.ts deleted file mode 100644 index 0f11a16..0000000 --- a/src/errorHandler/index.ts +++ /dev/null @@ -1,40 +0,0 @@ -import * as Sentry from '@sentry/vue' -import { httpClientIntegration } from '@sentry/integrations' -import { useRootStore } from '@/stores/root' -import type { App } from 'vue' -import type { Router } from 'vue-router' - -export function setupSentry(app: App, router: Router) { - window.captureException = Sentry.captureException - const store = useRootStore() - Sentry.init({ - app, - environment: import.meta.env.VITE_SENTRY_ENVIRONMENT, - logErrors: true, - dsn: import.meta.env.VITE_SENTRY_DSN_URL, - attachProps: true, - integrations: [ - Sentry.browserTracingIntegration({ router }), - httpClientIntegration({ - failedRequestStatusCodes: [400, 401, 403, 404, 500, 502, 503, 504] - }) - ], - sendDefaultPii: true, - tracesSampleRate: 1.0, - tracePropagationTargets: ['localhost', store.config.interfaceUrl] - }) - - const { ip, machineName, label, screenAttribute, building, floor, location, projectCode, deployType } = store.device - Sentry.setTags({ - terminal: 'Navigation', - ip, - machineName, - label, - screenAttribute, - building, - floor, - location, - projectCode, - deployType - }) -} diff --git a/src/http/api.ts b/src/http/api.ts new file mode 100644 index 0000000..eccd900 --- /dev/null +++ b/src/http/api.ts @@ -0,0 +1,22 @@ +import { getPrefixUrl, request } from '@/http/http' +import { PREFIX } from '@/enums' + +//获取配置项 +export const getConfig = () => request[]>({ url: `${PREFIX.STATIC_URL}/JSON/getConfig.json` }) + +//获取当前所处楼层 +export const getDevice = () => request({ url: `${PREFIX.STATIC_URL}/JSON/getDevCoordinateByIP.json` }) + +//获取天气 +export const getWeather = () => request({ url: `${PREFIX.STATIC_URL}/JSON/getWeather.json` }) + +// 指定时间返回 +export const getBackTime = () => request<[number, number]>({ url: `${PREFIX.STATIC_URL}/JSON/getBackTime.json` }) + +//获取二维码 +export const getCustomerQr = () => request[]>({ url: `${PREFIX.STATIC_URL}/JSON/getCustomerQr.json` }) + +//获取心声列表 +export const getCustomerList = (projectCode: string) => { + return request({ url: `${getPrefixUrl().interfaceUrl}/data/v1/web/webProposalList/${projectCode}` }) +} diff --git a/src/http/api/activity/index.ts b/src/http/api/activity/index.ts deleted file mode 100644 index 92ee9bf..0000000 --- a/src/http/api/activity/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { request } from '@/http/http' -import { PREFIX } from '@/enums' - -export type ActivityType = 'getMallActivities' | 'getShopActivities' | 'getMemberActivities' - -//获取活动 -export const getActivities = (type: ActivityType) => request[]>({ url: `${PREFIX.STATIC_URL}/JSON/${type}.json` }) diff --git a/src/http/api/base/index.ts b/src/http/api/base/index.ts deleted file mode 100644 index 8ce951d..0000000 --- a/src/http/api/base/index.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { request, getPrefixUrl } from '@/http/http' -import { PREFIX } from '@/enums' -import type { WrittenQuery } from './types' - -//获取配置项 -export const getConfig = () => request[]>({ url: `${PREFIX.STATIC_URL}/JSON/getConfig.json` }) - -//获取配置的特殊业态 -export const getSpecialIndustry = () => { - return request[]>({ url: `${PREFIX.STATIC_URL}/JSON/getSpecialIndustry.json` }) -} - -//获取当前所处楼层 -export const getDeviceInfo = () => request({ url: `${PREFIX.STATIC_URL}/JSON/getDevCoordinateByIP.json` }) - -//获取天气 -export const getWeather = () => request({ url: `${PREFIX.STATIC_URL}/JSON/getWeather.json` }) - -//获取好吃的/好玩的/值得买的tab -export const getSpecialCardTab = () => request[]>({ url: `${PREFIX.STATIC_URL}/JSON/getRecommendTab.json` }) - -//获取系统默认设施列表 -export const getDefaultFacilitiesList = () => request({ url: `${PREFIX.STATIC_URL}/JSON/getFacilityList.json` }) - -//获取自定义设施列表 -export const getCustomFacilitiesList = () => request({ url: `${PREFIX.STATIC_URL}/JSON/getProjectUsedIconList.json` }) - -//地图模型数据 -export const getMapData = () => request({ url: `${PREFIX.STATIC_URL}/JSON/getMap.json` }) - -//菜单栏 -export const getMenuList = () => request({ url: `${PREFIX.STATIC_URL}/JSON/getMenuList.json` }) - -// 指定时间返回 -export const getBackTime = () => request<[number, number]>({ url: `${PREFIX.STATIC_URL}/JSON/getBackTime.json` }) - -//手写地址 -export const getHandWriting = (data: WrittenQuery) => request({ url: `${getPrefixUrl().handWriteUrl}`, method: 'post', data }) diff --git a/src/http/api/base/types.ts b/src/http/api/base/types.ts deleted file mode 100644 index 73edb47..0000000 --- a/src/http/api/base/types.ts +++ /dev/null @@ -1,6 +0,0 @@ -export type WrittenQuery = { - lib: 'CN' | 'EN' - lpXis: number[] - lpYis: number[] - lpCis: number[] -} diff --git a/src/http/api/brand/index.ts b/src/http/api/brand/index.ts deleted file mode 100644 index a0243af..0000000 --- a/src/http/api/brand/index.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { request } from '@/http/http' -import type { GroupList, BrandRes } from './types' -import { PREFIX } from '@/enums' - -export const getBrandInfo = () => request({ url: `${PREFIX.STATIC_URL}/JSON/getBrandShopList.json` }) - -export const getShopListByFloor = () => request<{ list: GroupList }>({ url: `${PREFIX.STATIC_URL}/JSON/getBrandShopListByFloor.json` }) - -export const getShopListByIndustry = () => { - return request<{ list: GroupList }>({ - url: `${PREFIX.STATIC_URL}/JSON/getBrandShopListByIndustryId.json` - }) -} diff --git a/src/http/api/brand/types.ts b/src/http/api/brand/types.ts deleted file mode 100644 index 2af7cbc..0000000 --- a/src/http/api/brand/types.ts +++ /dev/null @@ -1,31 +0,0 @@ -export type GroupList = Array<{ name: string; shopList: Shop[] }> - -export type PickRecommendShop = Pick< - Shop, - | 'logoUrl' - | 'industryUrl' - | 'floor' - | 'shopName' - | 'shopCode' - | 'isNewShop' - | 'industryName' - | 'industryNameEn' - | 'shopNameEn' - | 'doorMaterialList' - | 'foodMaterialList' - | 'building' - | 'businessHours' - | 'contact' - | 'intro' - | 'introEn' - | 'floorOrder' - | 'buildingOrder' - | 'yaxis' -> - -export type BrandRes = { - allShopNum: number - buildingList: Building[] - recommendList: PickRecommendShop[] - industryFatherList: Industry[] -} diff --git a/src/http/api/parking/index.ts b/src/http/api/parking/index.ts deleted file mode 100644 index 2dd499a..0000000 --- a/src/http/api/parking/index.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { request, getPrefixUrl } from '../../http' -import { PREFIX } from '@/enums' - -//找车 -export const getFindCar = (license: string) => { - return request({ - url: `${getPrefixUrl().interfaceUrl}/guidance/v1/web/thirdParkRevision?plateId=${license}` - }) -} - -//停车场信息 -export const getParkingInfo = () => request[]>({ url: `${PREFIX.STATIC_URL}/JSON/getParkingInfo.json` }) diff --git a/src/http/api/serve/index.ts b/src/http/api/serve/index.ts deleted file mode 100644 index 2f4132d..0000000 --- a/src/http/api/serve/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { PREFIX } from '@/enums' -import { request } from '@/http/http' - -//服务列表 -export const getServeList = () => request[]>({ url: `${PREFIX.STATIC_URL}/JSON/getServeList.json` }) diff --git a/src/http/api/shop/index.ts b/src/http/api/shop/index.ts deleted file mode 100644 index 3b6e1f2..0000000 --- a/src/http/api/shop/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { request } from '@/http/http' -import type { ShopListAndBuildingList } from './types' -import { PREFIX } from '@/enums' - -//获取店铺及楼栋列表 -export const getShopAndBuildingList = () => request({ url: `${PREFIX.STATIC_URL}/JSON/getMapInfo.json` }) diff --git a/src/http/api/shop/types.ts b/src/http/api/shop/types.ts deleted file mode 100644 index 8ce086d..0000000 --- a/src/http/api/shop/types.ts +++ /dev/null @@ -1,4 +0,0 @@ -export type ShopListAndBuildingList = { - shopList: Shop[] - buildingList: Building[] -} diff --git a/src/http/api/statistics/index.ts b/src/http/api/statistics/index.ts deleted file mode 100644 index 77114f3..0000000 --- a/src/http/api/statistics/index.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { request, getPrefixUrl } from '../../http' -import type { Query, ModuleQuery } from './types' - -//数据统计 -export const getStatistics = (data: Query) => - request({ - url: `${getPrefixUrl().interfaceUrl}/analysis/v1/web/deviceUseClickDataUpload`, - data, - method: 'post' - }) - -//模块及活动数据统计 -export const getModuleStatistics = (data: ModuleQuery) => - request({ - url: `${getPrefixUrl().interfaceUrl}/analysis/v1/web/guideClickDataUpload`, - data, - method: 'post' - }) diff --git a/src/http/api/statistics/types.ts b/src/http/api/statistics/types.ts deleted file mode 100644 index 9fddec6..0000000 --- a/src/http/api/statistics/types.ts +++ /dev/null @@ -1,18 +0,0 @@ -//类型,设备点击量:device,导航使用次数:navigation,节目播放次数:program,店铺点击次数:shop,业态点击次数:industry,品牌店铺搜索:brandSearch -export type TagType = 'navigation' | 'shop' | 'brandSearch' | 'device' | 'program' | 'industry' -export type Query = { - deviceCode: string //设备编码 - projectCode: string //项目编码 - tag: TagType - shopCode?: string | number - industryCode?: string //tag=industry时必传 -} -//记录类型1:模块点击记录 2:活动点击记录 3:使用人次记录 -export type RecordType = '1' | '2' | '3' -export type ModuleQuery = { - activityCode?: string - deviceCode: string - moduleName?: string - projectCode: string - recordType: RecordType -} diff --git a/src/http/http.ts b/src/http/http.ts index dd336d0..4b0e026 100644 --- a/src/http/http.ts +++ b/src/http/http.ts @@ -1,9 +1,8 @@ import axios from 'axios' -import * as Sentry from '@sentry/vue' import type { AxiosResponse, AxiosInstance, InternalAxiosRequestConfig } from 'axios' import { addPrefixByRecursive } from '@/utils/utils' -import { useRootStore } from '@/stores/root' import type { RequestConfig, RequestInterceptors, CreateRequestConfig } from './types' +import { useRootStore } from '@/stores/root' export default class Request { // axios 实例 @@ -59,7 +58,6 @@ export default class Request { resolve(res) }) .catch((err: any) => { - Sentry.captureException(err) reject(err) }) }) @@ -103,17 +101,17 @@ const _request = new Request({ } }) -export function getPrefixUrl() { - const store = useRootStore() - return store.config -} - export type Response = { msg: string data: T code: number } +export function getPrefixUrl() { + const store = useRootStore() + return store.config +} + export const request = (config: RequestConfig>) => _request.request(config) export const cancelRequest = (url: string | string[]) => _request.cancelRequest(url) export const cancelAllRequest = () => _request.cancelAllRequest() diff --git a/src/locales/chinese.ts b/src/locales/chinese.ts deleted file mode 100644 index 0b89126..0000000 --- a/src/locales/chinese.ts +++ /dev/null @@ -1,8 +0,0 @@ -const chinese = { - Simplified: - '万与丑专业丛东丝丢两严丧个丬丰临为丽举么义乌乐乔习乡书买乱争于亏云亘亚产亩亲亵亸亿仅从仑仓仪们价众优伙会伛伞伟传伤伥伦伧伪伫体余佣佥侠侣侥侦侧侨侩侪侬俣俦俨俩俪俭债倾偬偻偾偿傥傧储傩儿兑兖党兰关兴兹养兽冁内冈册写军农冢冯冲决况冻净凄凉凌减凑凛几凤凫凭凯击凼凿刍划刘则刚创删别刬刭刽刿剀剂剐剑剥剧劝办务劢动励劲劳势勋勐勚匀匦匮区医华协单卖卢卤卧卫却卺厂厅历厉压厌厍厕厢厣厦厨厩厮县参叆叇双发变叙叠叶号叹叽吁后吓吕吗吣吨听启吴呒呓呕呖呗员呙呛呜咏咔咙咛咝咤咴咸哌响哑哒哓哔哕哗哙哜哝哟唛唝唠唡唢唣唤唿啧啬啭啮啰啴啸喷喽喾嗫呵嗳嘘嘤嘱噜噼嚣嚯团园囱围囵国图圆圣圹场坂坏块坚坛坜坝坞坟坠垄垅垆垒垦垧垩垫垭垯垱垲垴埘埙埚埝埯堑堕塆墙壮声壳壶壸处备复够头夸夹夺奁奂奋奖奥妆妇妈妩妪妫姗姜娄娅娆娇娈娱娲娴婳婴婵婶媪嫒嫔嫱嬷孙学孪宁宝实宠审宪宫宽宾寝对寻导寿将尔尘尧尴尸尽层屃屉届属屡屦屿岁岂岖岗岘岙岚岛岭岳岽岿峃峄峡峣峤峥峦崂崃崄崭嵘嵚嵛嵝嵴巅巩巯币帅师帏帐帘帜带帧帮帱帻帼幂幞干并广庄庆庐庑库应庙庞废庼廪开异弃张弥弪弯弹强归当录彟彦彻径徕御忆忏忧忾怀态怂怃怄怅怆怜总怼怿恋恳恶恸恹恺恻恼恽悦悫悬悭悯惊惧惨惩惫惬惭惮惯愍愠愤愦愿慑慭憷懑懒懔戆戋戏戗战戬户扎扑扦执扩扪扫扬扰抚抛抟抠抡抢护报担拟拢拣拥拦拧拨择挂挚挛挜挝挞挟挠挡挢挣挤挥挦捞损捡换捣据捻掳掴掷掸掺掼揸揽揿搀搁搂搅携摄摅摆摇摈摊撄撑撵撷撸撺擞攒敌敛数斋斓斗斩断无旧时旷旸昙昼昽显晋晒晓晔晕晖暂暧札术朴机杀杂权条来杨杩杰极构枞枢枣枥枧枨枪枫枭柜柠柽栀栅标栈栉栊栋栌栎栏树栖样栾桊桠桡桢档桤桥桦桧桨桩梦梼梾检棂椁椟椠椤椭楼榄榇榈榉槚槛槟槠横樯樱橥橱橹橼檐檩欢欤欧歼殁殇残殒殓殚殡殴毁毂毕毙毡毵氇气氢氩氲汇汉污汤汹沓沟没沣沤沥沦沧沨沩沪沵泞泪泶泷泸泺泻泼泽泾洁洒洼浃浅浆浇浈浉浊测浍济浏浐浑浒浓浔浕涂涌涛涝涞涟涠涡涢涣涤润涧涨涩淀渊渌渍渎渐渑渔渖渗温游湾湿溃溅溆溇滗滚滞滟滠满滢滤滥滦滨滩滪漤潆潇潋潍潜潴澜濑濒灏灭灯灵灾灿炀炉炖炜炝点炼炽烁烂烃烛烟烦烧烨烩烫烬热焕焖焘煅煳熘爱爷牍牦牵牺犊犟状犷犸犹狈狍狝狞独狭狮狯狰狱狲猃猎猕猡猪猫猬献獭玑玙玚玛玮环现玱玺珉珏珐珑珰珲琎琏琐琼瑶瑷璇璎瓒瓮瓯电画畅畲畴疖疗疟疠疡疬疮疯疱疴痈痉痒痖痨痪痫痴瘅瘆瘗瘘瘪瘫瘾瘿癞癣癫癯皑皱皲盏盐监盖盗盘眍眦眬着睁睐睑瞒瞩矫矶矾矿砀码砖砗砚砜砺砻砾础硁硅硕硖硗硙硚确硷碍碛碜碱碹磙礼祎祢祯祷祸禀禄禅离秃秆种积称秽秾稆税稣稳穑穷窃窍窑窜窝窥窦窭竖竞笃笋笔笕笺笼笾筑筚筛筜筝筹签简箓箦箧箨箩箪箫篑篓篮篱簖籁籴类籼粜粝粤粪粮糁糇紧絷纟纠纡红纣纤纥约级纨纩纪纫纬纭纮纯纰纱纲纳纴纵纶纷纸纹纺纻纼纽纾线绀绁绂练组绅细织终绉绊绋绌绍绎经绐绑绒结绔绕绖绗绘给绚绛络绝绞统绠绡绢绣绤绥绦继绨绩绪绫绬续绮绯绰绱绲绳维绵绶绷绸绹绺绻综绽绾绿缀缁缂缃缄缅缆缇缈缉缊缋缌缍缎缏缐缑缒缓缔缕编缗缘缙缚缛缜缝缞缟缠缡缢缣缤缥缦缧缨缩缪缫缬缭缮缯缰缱缲缳缴缵罂网罗罚罢罴羁羟羡翘翙翚耢耧耸耻聂聋职聍联聩聪肃肠肤肷肾肿胀胁胆胜胧胨胪胫胶脉脍脏脐脑脓脔脚脱脶脸腊腌腘腭腻腼腽腾膑臜舆舣舰舱舻艰艳艹艺节芈芗芜芦苁苇苈苋苌苍苎苏苘苹茎茏茑茔茕茧荆荐荙荚荛荜荞荟荠荡荣荤荥荦荧荨荩荪荫荬荭荮药莅莜莱莲莳莴莶获莸莹莺莼萚萝萤营萦萧萨葱蒇蒉蒋蒌蓝蓟蓠蓣蓥蓦蔷蔹蔺蔼蕲蕴薮藁藓虏虑虚虫虬虮虽虾虿蚀蚁蚂蚕蚝蚬蛊蛎蛏蛮蛰蛱蛲蛳蛴蜕蜗蜡蝇蝈蝉蝎蝼蝾螀螨蟏衅衔补衬衮袄袅袆袜袭袯装裆裈裢裣裤裥褛褴襁襕见观觃规觅视觇览觉觊觋觌觍觎觏觐觑觞触觯詟誉誊讠计订讣认讥讦讧讨让讪讫训议讯记讱讲讳讴讵讶讷许讹论讻讼讽设访诀证诂诃评诅识诇诈诉诊诋诌词诎诏诐译诒诓诔试诖诗诘诙诚诛诜话诞诟诠诡询诣诤该详诧诨诩诪诫诬语诮误诰诱诲诳说诵诶请诸诹诺读诼诽课诿谀谁谂调谄谅谆谇谈谊谋谌谍谎谏谐谑谒谓谔谕谖谗谘谙谚谛谜谝谞谟谠谡谢谣谤谥谦谧谨谩谪谫谬谭谮谯谰谱谲谳谴谵谶谷豮贝贞负贠贡财责贤败账货质贩贪贫贬购贮贯贰贱贲贳贴贵贶贷贸费贺贻贼贽贾贿赀赁赂赃资赅赆赇赈赉赊赋赌赍赎赏赐赑赒赓赔赕赖赗赘赙赚赛赜赝赞赟赠赡赢赣赪赵赶趋趱趸跃跄跖跞践跶跷跸跹跻踊踌踪踬踯蹑蹒蹰蹿躏躜躯车轧轨轩轪轫转轭轮软轰轱轲轳轴轵轶轷轸轹轺轻轼载轾轿辀辁辂较辄辅辆辇辈辉辊辋辌辍辎辏辐辑辒输辔辕辖辗辘辙辚辞辩辫边辽达迁过迈运还这进远违连迟迩迳迹适选逊递逦逻遗遥邓邝邬邮邹邺邻郁郄郏郐郑郓郦郧郸酝酦酱酽酾酿释里鉅鉴銮錾钆钇针钉钊钋钌钍钎钏钐钑钒钓钔钕钖钗钘钙钚钛钝钞钟钠钡钢钣钤钥钦钧钨钩钪钫钬钭钮钯钰钱钲钳钴钵钶钷钸钹钺钻钼钽钾钿铀铁铂铃铄铅铆铈铉铊铋铍铎铏铐铑铒铕铗铘铙铚铛铜铝铞铟铠铡铢铣铤铥铦铧铨铪铫铬铭铮铯铰铱铲铳铴铵银铷铸铹铺铻铼铽链铿销锁锂锃锄锅锆锇锈锉锊锋锌锍锎锏锐锑锒锓锔锕锖锗错锚锜锞锟锠锡锢锣锤锥锦锨锩锫锬锭键锯锰锱锲锳锴锵锶锷锸锹锺锻锼锽锾锿镀镁镂镃镆镇镈镉镊镌镍镎镏镐镑镒镕镖镗镙镚镛镜镝镞镟镠镡镢镣镤镥镦镧镨镩镪镫镬镭镮镯镰镱镲镳镴镶长门闩闪闫闬闭问闯闰闱闲闳间闵闶闷闸闹闺闻闼闽闾闿阀阁阂阃阄阅阆阇阈阉阊阋阌阍阎阏阐阑阒阓阔阕阖阗阘阙阚阛队阳阴阵阶际陆陇陈陉陕陧陨险随隐隶隽难雏雠雳雾霁霉霭靓静靥鞑鞒鞯鞴韦韧韨韩韪韫韬韵页顶顷顸项顺须顼顽顾顿颀颁颂颃预颅领颇颈颉颊颋颌颍颎颏颐频颒颓颔颕颖颗题颙颚颛颜额颞颟颠颡颢颣颤颥颦颧风飏飐飑飒飓飔飕飖飗飘飙飚飞飨餍饤饥饦饧饨饩饪饫饬饭饮饯饰饱饲饳饴饵饶饷饸饹饺饻饼饽饾饿馀馁馂馃馄馅馆馇馈馉馊馋馌馍馎馏馐馑馒馓馔馕马驭驮驯驰驱驲驳驴驵驶驷驸驹驺驻驼驽驾驿骀骁骂骃骄骅骆骇骈骉骊骋验骍骎骏骐骑骒骓骔骕骖骗骘骙骚骛骜骝骞骟骠骡骢骣骤骥骦骧髅髋髌鬓魇魉鱼鱽鱾鱿鲀鲁鲂鲄鲅鲆鲇鲈鲉鲊鲋鲌鲍鲎鲏鲐鲑鲒鲓鲔鲕鲖鲗鲘鲙鲚鲛鲜鲝鲞鲟鲠鲡鲢鲣鲤鲥鲦鲧鲨鲩鲪鲫鲬鲭鲮鲯鲰鲱鲲鲳鲴鲵鲶鲷鲸鲹鲺鲻鲼鲽鲾鲿鳀鳁鳂鳃鳄鳅鳆鳇鳈鳉鳊鳋鳌鳍鳎鳏鳐鳑鳒鳓鳔鳕鳖鳗鳘鳙鳛鳜鳝鳞鳟鳠鳡鳢鳣鸟鸠鸡鸢鸣鸤鸥鸦鸧鸨鸩鸪鸫鸬鸭鸮鸯鸰鸱鸲鸳鸴鸵鸶鸷鸸鸹鸺鸻鸼鸽鸾鸿鹀鹁鹂鹃鹄鹅鹆鹇鹈鹉鹊鹋鹌鹍鹎鹏鹐鹑鹒鹓鹔鹕鹖鹗鹘鹚鹛鹜鹝鹞鹟鹠鹡鹢鹣鹤鹥鹦鹧鹨鹩鹪鹫鹬鹭鹯鹰鹱鹲鹳鹴鹾麦麸黄黉黡黩黪黾鼋鼌鼍鼗鼹齄齐齑齿龀龁龂龃龄龅龆龇龈龉龊龋龌龙龚龛龟志制咨只里系范松没尝尝闹面准钟别闲乾尽脏拼', - Traditional: - '萬與醜專業叢東絲丟兩嚴喪個爿豐臨為麗舉麽義烏樂喬習鄉書買亂爭於虧雲亙亞產畝親褻亸億僅從侖倉儀們價眾優夥會傴傘偉傳傷倀倫傖偽佇體余傭僉俠侶僥偵側僑儈儕儂俁儔儼倆儷儉債傾傯僂僨償儻儐儲儺兒兌兗黨蘭關興茲養獸囅內岡冊寫軍農冢馮沖決況凍凈淒涼淩減湊凜幾鳳鳧憑凱擊氹鑿芻劃劉則剛創刪別刬剄劊劌剴劑剮劍剝劇勸辦務勱動勵勁勞勢勛猛勚勻匭匱區醫華協單賣盧鹵臥衛卻巹廠廳歷厲壓厭厙廁廂厴廈廚廄廝縣參叆叇雙發變敘叠葉號嘆嘰籲後嚇呂嗎唚噸聽啟吳嘸囈嘔嚦唄員咼嗆嗚詠哢嚨嚀噝咤噅鹹哌響啞噠嘵嗶噦嘩噲嚌噥喲嘜唝嘮唡嗩唣喚唿嘖嗇囀嚙啰啴嘯噴嘍嚳囁呵噯噓嚶囑嚕劈囂謔團園囪圍圇國圖圓聖壙場阪壞塊堅壇壢壩塢墳墜壟壟壚壘墾坰堊墊埡垯垱塏堖塒塤堝墊垵塹墮塆墻壯聲殼壺壸處備復夠頭誇夾奪奩奐奮獎奧妝婦媽嫵嫗媯姍姜婁婭嬈嬌孌娛媧嫻婳嬰嬋嬸媼嬡嬪嬙嬤孫學孿寧寶實寵審憲宮寬賓寢對尋導壽將爾塵堯尷屍盡層屃屜屆屬屢屨嶼歲豈嶇崗峴嶴嵐島嶺嶽崠巋峃嶧峽峣嶠崢巒嶗崍崄嶄嶸嵚崳嶁脊巔鞏巰幣帥師幃帳簾幟帶幀幫幬幘幗冪襆幹並廣莊慶廬廡庫應廟龐廢庼廩開異棄張彌弳彎彈強歸當錄彟彥徹徑徠禦憶懺憂愾懷態慫憮慪悵愴憐總懟懌戀懇惡慟懨愷惻惱惲悅愨懸慳憫驚懼慘懲憊愜慚憚慣湣慍憤憒願懾慭怵懣懶懍戇戔戲戧戰戩戶紮撲扡執擴捫掃揚擾撫拋摶摳掄搶護報擔擬攏揀擁攔擰撥擇掛摯攣挜撾撻挾撓擋撟掙擠揮挦撈損撿換搗據撚擄摑擲撣摻摜摣攬撳攙擱摟攪攜攝攄擺搖擯攤攖撐攆擷擼攛擻攢敵斂數齋斕鬥斬斷無舊時曠旸曇晝昽顯晉曬曉曄暈暉暫曖劄術樸機殺雜權條來楊榪傑極構樅樞棗櫪梘棖槍楓梟櫃檸檉梔柵標棧櫛櫳棟櫨櫟欄樹棲樣欒棬椏橈楨檔榿橋樺檜槳樁夢梼梾檢欞槨櫝槧欏橢樓欖櫬櫚櫸槚檻檳櫧橫檣櫻櫫櫥櫓櫞檐檁歡歟歐殲歿殤殘殞殮殫殯毆毀轂畢斃氈毿氌氣氫氬氳匯漢汙湯洶沓溝沒灃漚瀝淪滄沨溈滬沵濘淚澩瀧瀘濼瀉潑澤涇潔灑窪浹淺漿澆湞浉濁測澮濟瀏浐渾滸濃潯浕塗湧濤澇淶漣潿渦涢渙滌潤澗漲澀澱淵淥漬瀆漸澠漁瀋滲溫遊灣濕潰濺漵溇潷滾滯灩灄滿瀅濾濫灤濱灘滪濫瀠瀟瀲濰潛瀦瀾瀨瀕灝滅燈靈災燦煬爐燉煒熗點煉熾爍爛烴燭煙煩燒燁燴燙燼熱煥燜燾煆糊溜愛爺牘牦牽犧犢犟狀獷獁猶狽麅狝獰獨狹獅獪猙獄猻獫獵獼玀豬貓猬獻獺璣玙玚瑪瑋環現玱璽瑉玨琺瓏珰琿琎璉瑣瓊瑤璦璇瓔瓚甕甌電畫暢畬疇癤療瘧癘瘍癧瘡瘋皰屙癰痙癢瘂癆瘓癇癡癉瘆瘞瘺癟癱癮癭癩癬癲臒皚皺皸盞鹽監蓋盜盤瞘眥眬著睜睞瞼瞞矚矯磯礬礦碭碼磚硨硯碸礪礱礫礎硁矽碩硤磽硙硚確鹼礙磧磣堿碹滾禮祎禰禎禱禍稟祿禪離禿稈種積稱穢秾穭稅穌穩穡窮竊竅窯竄窩窺竇窶豎競篤筍筆筧箋籠籩築篳篩筜箏籌簽簡箓簀篋籜籮簞簫簣簍籃籬籪籟糴類秈糶糲粵糞糧糝糇緊縶糸糾紆紅紂纖紇約級紈纊紀紉緯紜纮純紕紗綱納纴縱綸紛紙紋紡纻纼紐紓線紺紲紱練組紳細織終縐絆紼絀紹繹經紿綁絨結絝繞绖絎繪給絢絳絡絕絞統綆綃絹繡绤綏絳繼綈績緒綾绬續綺緋綽緔緄繩維綿綬繃綢绹綹綣綜綻綰綠綴緇緙緗緘緬纜緹緲緝缊繢緦綞緞緶缐緱縋緩締縷編緡緣縉縛縟縝縫缞縞纏縭縊縑繽縹縵縲纓縮繆繅纈繚繕繒韁繾繰繯繳纘罌網羅罰罷羆羈羥羨翹翙翚耮耬聳恥聶聾職聹聯聵聰肅腸膚膁腎腫脹脅膽勝朧腖臚脛膠脈膾臟臍腦膿臠腳脫腡臉臘腌腘腭膩靦膃騰臏臜輿艤艦艙艫艱艷艹藝節羋薌蕪蘆蓯葦藶莧萇蒼苧蘇檾蘋莖蘢蔦塋煢繭荊薦荙莢蕘蓽蕎薈薺蕩榮葷滎犖熒蕁藎蓀蔭蕒葒葤藥蒞蓧萊蓮蒔萵薟獲蕕瑩鶯蒓萚蘿螢營縈蕭薩蔥蕆蕢蔣蔞藍薊蘺蕷鎣驀薔蘞藺藹蘄蘊藪槁蘚虜慮虛蟲虬蟣雖蝦蠆蝕蟻螞蠶蠔蜆蠱蠣蟶蠻蟄蛺蟯螄蠐蛻蝸蠟蠅蟈蟬蠍螻蠑螀蟎蟏釁銜補襯袞襖裊袆襪襲袯裝襠裈褳襝褲襇褸襤繈襕見觀觃規覓視覘覽覺覬覡覿觍覦覯覲覷觴觸觶詟譽謄訁計訂訃認譏訐訌討讓訕訖訓議訊記讱講諱謳詎訝訥許訛論讻訟諷設訪訣證詁訶評詛識诇詐訴診詆謅詞詘詔诐譯詒誆誄試詿詩詰詼誠誅詵話誕詬詮詭詢詣諍該詳詫諢詡诪誡誣語誚誤誥誘誨誑說誦誒請諸諏諾讀諑誹課諉諛誰諗調諂諒諄誶談誼謀諶諜謊諫諧謔謁謂諤諭諼讒諮諳諺諦謎諞谞謨讜謖謝謠謗謚謙謐謹謾謫譾謬譚譖譙讕譜譎讞譴譫讖谷豮貝貞負贠貢財責賢敗賬貨質販貪貧貶購貯貫貳賤賁貰貼貴貺貸貿費賀貽賊贄賈賄貲賃賂贓資賅贐賕賑賚賒賦賭賫贖賞賜赑赒賡賠賧賴赗贅賻賺賽賾贗贊赟贈贍贏贛赪趙趕趨趲躉躍蹌跖躒踐跶蹺蹕躚躋踴躊蹤躓躑躡蹣躕躥躪躦軀車軋軌軒轪軔轉軛輪軟轟軲軻轤軸軹軼軤軫轢軺輕軾載輊轎辀輇輅較輒輔輛輦輩輝輥輞辌輟輜輳輻輯辒輸轡轅轄輾轆轍轔辭辯辮邊遼達遷過邁運還這進遠違連遲邇逕跡適選遜遞邐邏遺遙鄧鄺鄔郵鄒鄴鄰郁郤郟鄶鄭鄆酈鄖鄲醞酦醬釅釃釀釋裏鉅鑒鑾鏨釓釔針釘釗釙釕釷釬釧釤钑釩釣鍆釹钖釵钘鈣鈈鈦鈍鈔鐘鈉鋇鋼鈑鈐鑰欽鈞鎢鉤鈧鈁鈥鈄鈕鈀鈺錢鉦鉗鈷缽鈳鉕鈽鈸鉞鉆鉬鉭鉀鈿鈾鐵鉑鈴鑠鉛鉚鈰鉉鉈鉍鈹鐸铏銬銠鉺銪鋏鋣鐃铚鐺銅鋁銱銦鎧鍘銖銑鋌銩铦鏵銓鉿銚鉻銘錚銫鉸銥鏟銃鐋銨銀銣鑄鐒鋪铻錸鋱鏈鏗銷鎖鋰鋥鋤鍋鋯鋨銹銼鋝鋒鋅鋶鐦鐧銳銻鋃鋟鋦錒錆鍺錯錨锜錁錕锠錫錮鑼錘錐錦鍁錈錇錟錠鍵鋸錳錙鍥锳鍇鏘鍶鍔鍤鍬鍾鍛鎪锽鍰鎄鍍鎂鏤镃鏌鎮镈鎘鑷鐫鎳鎿鎦鎬鎊鎰镕鏢鏜鏍镚鏞鏡鏑鏃鏇镠鐔鐝鐐鏷鑥鐓鑭鐠鑹鏹鐙鑊鐳镮鐲鐮鐿鑔鑣镴鑲長門閂閃閆闬閉問闖閏闈閑閎間閔閌悶閘鬧閨聞闥閩閭闿閥閣閡閫鬮閱閬阇閾閹閶鬩閿閽閻閼闡闌闃阓闊闋闔闐阘闕闞阛隊陽陰陣階際陸隴陳陘陜隉隕險隨隱隸雋難雛讎靂霧霽黴靄靚靜靨韃鞽韉韝韋韌韨韓韙韞韜韻頁頂頃頇項順須頊頑顧頓頎頒頌頏預顱領頗頸頡頰颋頜潁颎頦頤頻颒頹頷颕穎顆題颙顎顓顏額顳顢顛顙顥颣顫顬顰顴風飏飐颮颯颶飔颼飖飗飄飆飈飛饗饜饤饑饦餳飩餼飪飫飭飯飲餞飾飽飼饳飴餌饒餉饸饹餃饻餅餑饾餓餘餒馂馃餛餡館餷饋馉餿饞馌饃馎餾饈饉饅饊饌饢馬馭馱馴馳驅驲駁驢駔駛駟駙駒騶駐駝駑駕驛駘驍罵骃驕驊駱駭駢骉驪騁驗骍骎駿騏騎騍騅骔骕驂騙騭骙騷騖驁騮騫騸驃騾驄驏驟驥骦驤髏髖髕鬢魘魎魚鱽鱾魷鲀魯魴鲄鮁鮃鮎鱸鲉鲊鮒鲌鮑鱟鲏鮐鮭鮚鲓鮪鮞鲖鲗鲘鲙鱭鮫鮮鲝鯗鱘鯁鱺鰱鰹鯉鰣鰷鯀鯊鯇鲪鯽鲬鯖鯪鲯鯫鯡鯤鯧鯝鯢鯰鯛鯨鲹鯴鯔鱝鰈鲾鲿鳀鳁鳂鰓鱷鰍鰒鰉鳈鳉鯿鰠鰲鰭鰨鰥鰩鳑鳒鰳鰾鱈鱉鰻鰵鱅鳛鱖鱔鱗鱒鳠鳡鱧鳣鳥鳩雞鳶鳴鸤鷗鴉鸧鴇鴆鴣鶇鸕鴨鸮鴦鸰鴟鴝鴛鸴鴕鷥鷙鴯鴰鵂鸻鸼鴿鸞鴻鹀鵓鸝鵑鵠鵝鵒鷴鵜鵡鵲鶓鵪鹍鵯鵬鹐鶉鹒鹓鹔鶘鹖鶚鶻鶿鶥鶩鹝鷂鹟鹠鹡鹢鶼鶴鹥鸚鷓鷚鷯鷦鷲鷸鷺鹯鷹鸌鹲鸛鹴鹺麥麩黃黌黡黷黲黽黿鼌鼉鼗鼴齇齊齏齒齔龁龂齟齡齙齠齜齦齬齪齲齷龍龔龕龜誌制咨只裏系範松沒嘗嘗鬧面準鐘別閑乾盡臟拼' -} - -export default chinese diff --git a/src/locales/index.ts b/src/locales/index.ts deleted file mode 100644 index 3196ec7..0000000 --- a/src/locales/index.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { createI18n } from 'vue-i18n' -import zh from './lang/zh.json' -import tw from './lang/tw.json' -import en from './lang/en.json' -import type { App } from 'vue' - -export const i18n = createI18n({ - globalInjection: true, - legacy: false, - locale: 'zh', - fallbackLocale: 'en', - messages: { - zh, - en, - tw - } -}) - -export function setupI18n(app: App) { - app.use(i18n) -} diff --git a/src/locales/lang/en.json b/src/locales/lang/en.json deleted file mode 100644 index 68a9c7f..0000000 --- a/src/locales/lang/en.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "detail": "Detail", - "nav": "Navigate", - "energy": "Energy", - "replay": "Replay", - "pause": "Pause", - "play": "Play", - "speedUp": "Speed up", - "stopSpeedUp": "Stop acceleration", - "ft": "Escalator route", - "zt": "Straight ladder route", - "switch": "switch", - "mode": "mode", - "scan": "Scan QRCode", - "placeholder": "activities, brands and public facilities", - "firstLetter": "Please enter the Chinese and English initials", - "firstLetterWritten": "Please handwrite Chinese name for query", - "quick": "Quick search", - "write": "Handwritten search", - "letter": "Initial search", - "result": "Search result", - "target": "Destination", - "start": "start", - "end": "end", - "arrive": "Arrive", - "face": "Please face the screen", - "rotate": "One finger rotation", - "zoom": "Pinch to zoom", - "move": "Two-finger pan", - "carNav": "Find a car and pay", - "carNavTip": "Parking space navigation", - "overNav": "Whether to end navigation?", - "replayNav": "Replay", - "over": "Over" -} diff --git a/src/locales/lang/tw.json b/src/locales/lang/tw.json deleted file mode 100644 index 767a5f9..0000000 --- a/src/locales/lang/tw.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "detail": "詳情", - "nav": "導航", - "energy": "新能源", - "replay": "重播", - "pause": "暫停", - "play": "播放", - "speedUp": "加速", - "stopSpeedUp": "停止加速", - "ft": "扶梯模式", - "zt": "直梯模式", - "switch": "切換到", - "mode": "模式", - "scan": "掃碼手機導航", - "placeholder": "查詢品牌/活動/公共設施", - "firstLetter": "请输入中英文首字母,例如 XBK(星巴克)", - "firstLetterWritten": "请手写中文名查询", - "quick": "快捷搜索", - "write": "手寫搜索", - "letter": "字母搜索", - "result": "搜索結果", - "target": "導航目的地", - "start": "起點", - "end": "終點", - "arrive": "到達", - "face": "請您面嚮屏幕", - "rotate": "單指旋轉", - "zoom": "雙指縮放", - "move": "雙指平移", - "carNav": "尋車繳費", - "carNavTip": "車位導航", - "overNav": "是否結束導航", - "replayNav": "重放導航動畫", - "over": "結束" -} diff --git a/src/locales/lang/zh.json b/src/locales/lang/zh.json deleted file mode 100644 index 046c15d..0000000 --- a/src/locales/lang/zh.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "detail": "详情", - "nav": "导航", - "energy": "新能源", - "replay": "重播", - "pause": "暂停", - "play": "播放", - "speedUp": "加速", - "stopSpeedUp": "停止加速", - "ft": "扶梯模式", - "zt": "直梯模式", - "switch": "切换到", - "mode": "模式", - "scan": "扫码手机导航", - "placeholder": "查询品牌/活动/公共设施", - "firstLetter": "请输入中英文首字母,例如 XBK(星巴克)", - "firstLetterWritten": "请手写中文名查询", - "quick": "快捷搜索", - "write": "手写搜索", - "letter": "字母搜索", - "result": "搜索结果", - "target": "导航目的地", - "start": "起点", - "end": "终点", - "arrive": "到达", - "face": "请您面向屏幕", - "rotate": "单指旋转", - "zoom": "双指缩放", - "move": "双指平移", - "carNav": "寻车缴费", - "carNavTip": "车位导航", - "overNav": "是否结束导航?", - "replayNav": "重放导航动画", - "over": "结束" -} diff --git a/src/locales/util.ts b/src/locales/util.ts deleted file mode 100644 index 8d65499..0000000 --- a/src/locales/util.ts +++ /dev/null @@ -1,53 +0,0 @@ -import chinese from './chinese' - -const TRADITIONAL = chinese.Traditional //繁体 -const SIMPLIFIED = chinese.Simplified //简体 - -export const chineseLanguageLoader = (loaderContext: string, options?: any) => { - const modulesOptions = { - language: 'zh-TW' - } - if (options && options.language && options.language === 'zh-CN') { - modulesOptions.language = 'zh-CN' - } - return _transitionStr(loaderContext, modulesOptions.language) -} - -function _transitionStr(str: string, language: string) { - let i, - letter, - code, - isChinese, - index, - src, - des, - result = '' - if (language === 'zh-TW') { - src = SIMPLIFIED - des = TRADITIONAL - } else { - src = TRADITIONAL - des = SIMPLIFIED - } - if (typeof str !== 'string') { - return str - } - for (i = 0; i < str.length; i++) { - letter = str.charAt(i) - code = str.charCodeAt(i) - isChinese = (code > 0x3400 && code < 0x9fc3) || (code > 0xf900 && code < 0xfa6a) - if (!isChinese) { - result += letter - continue - } - index = src.indexOf(letter) - - if (index !== -1) { - result += des.charAt(index) - } else { - result += letter - } - } - - return result -} diff --git a/src/main.ts b/src/main.ts index cdb09f9..042508d 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,22 +1,14 @@ import { createApp } from 'vue' import App from './App.vue' -import { setupRouter, router } from './router' -import { setupI18n } from './locales' import { setupPinia } from './stores' -import { setupSentry } from './errorHandler' -import { setupPlugins } from './plugins' import { useInitBaseData } from './composables/useInitBaseData' + import '@/assets/scss/index.scss' -import 'animate.css/animate.min.css' async function bootstrap() { const app = createApp(App) setupPinia(app) await useInitBaseData() - setupRouter(app) - setupI18n(app) - setupPlugins(app) - setupSentry(app, router) app.mount('#app') } diff --git a/src/plugins/index.ts b/src/plugins/index.ts deleted file mode 100644 index 26eb524..0000000 --- a/src/plugins/index.ts +++ /dev/null @@ -1,11 +0,0 @@ -import VueLazyLoad from 'vue3-lazyload' -import { getAssetsImage } from '@/utils/utils' -import type { App } from 'vue' - -export function setupPlugins(app: App) { - app.use(VueLazyLoad, { - loading: getAssetsImage('stay_tuned.svg'), - error: getAssetsImage('stay_tuned.svg'), - log: false - }) -} diff --git a/src/router/index.ts b/src/router/index.ts deleted file mode 100644 index 0b40c02..0000000 --- a/src/router/index.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { createRouter, createWebHashHistory } from 'vue-router' -import type { App } from 'vue' -import * as Sentry from '@sentry/vue' -import { useRootStore } from '@/stores/root' -import { getMenuList } from '@/http/api/base' -import { staticRoutes } from './routes' -import type { RouteRecordRaw } from 'vue-router' - -export const router = createRouter({ - history: createWebHashHistory(import.meta.env.BASE_URL), - routes: staticRoutes -}) - -function generateDynamicRoutes(list: Menu[]): RouteRecordRaw[] { - return list.map(({ routePath, moduleDescription }) => ({ - path: routePath, - name: moduleDescription, - component: () => import(`@/views/${moduleDescription}/${moduleDescription}.vue`), - meta: { - showMap: moduleDescription === 'Guide' - } - })) -} - -let hasRoutes = false -router.beforeEach(async to => { - try { - const store = useRootStore() - const { data } = await getMenuList() - if (!hasRoutes) { - store.SET_MENU_LIST(data) - const dynamicRoutes = generateDynamicRoutes(data) - dynamicRoutes.map(route => router.addRoute(route)) - hasRoutes = true - return to.fullPath - } - } catch (error) { - Sentry.captureException('router.beforeEach:' + error) - } -}) - -export function setupRouter(app: App) { - app.use(router) -} diff --git a/src/router/routes.ts b/src/router/routes.ts deleted file mode 100644 index 47a38e7..0000000 --- a/src/router/routes.ts +++ /dev/null @@ -1,20 +0,0 @@ -import type { RouteRecordRaw } from 'vue-router' - -export const staticRoutes: RouteRecordRaw[] = [ - { - path: '/nav', - name: 'nav', - component: () => import('@/views/Nav/Nav.vue'), - meta: { - showMap: true - } - }, - { - path: '/transfer', - name: 'transfer', - component: () => import('@/views/Transfer/Transfer.vue'), - meta: { - showMap: false - } - } -] diff --git a/src/stores/index.ts b/src/stores/index.ts index 4bd1afc..d84ac24 100644 --- a/src/stores/index.ts +++ b/src/stores/index.ts @@ -1,17 +1,7 @@ import { createPinia } from 'pinia' -import { PiniaLogger } from 'pinia-logger' import type { App } from 'vue' export function setupPinia(app: App) { const pinia = createPinia() app.use(pinia) - pinia.use( - PiniaLogger({ - disabled: import.meta.env.PROD, - expanded: false, - showDuration: true, - showStoreName: true, - logErrors: true - }) - ) } diff --git a/src/stores/root/actions.ts b/src/stores/root/actions.ts index 21ae29a..586675e 100644 --- a/src/stores/root/actions.ts +++ b/src/stores/root/actions.ts @@ -1,88 +1,26 @@ -import { i18n } from '@/locales' import type { State } from './state' import type { CreateActions, Root } from '../types' -import type { BrandRes, GroupList } from '@/http/api/brand/types' export interface Actions { - SET_SPECIAL_INDUSTRY_CODE(code: string): void - SET_RECOMMEND_TAB(list: SpecialCardTabItem[]): void - SET_MENU_LIST(list: Menu[]): void SET_BACK_TIME(times: [number, number]): void - SET_MAP_SHOP_LIST_BY_CODE(obj: Record): void - SET_SHOP_LIST_BY_INDUSTRY(list: GroupList): void - SET_SHOP_LIST_BY_FLOOR(list: GroupList): void - SET_BRAND_INFO(info: BrandRes): void SET_WEATHER(weather: Weather): void - SET_SHOP_LIST(list: Shop[]): void - SET_BUILDING_LIST(list: Building[]): void - SET_LANGUAGE(language: Language): void SET_DEVICE(device: Device): void - SET_SHOP(shop: Shop): void SET_CONFIG(config: Config): void - SET_CUSTOM_FACILITY_LIST(list: Facility[]): void - SET_DEFAULT_FACILITY_LIST(list: Record): void - SET_MAP_STATUS(flag: boolean): void } export type GenActions = CreateActions export const actions: GenActions = { - SET_SPECIAL_INDUSTRY_CODE(code) { - this.specialIndustryCode = code - }, - SET_MAP_SHOP_LIST_BY_CODE(obj) { - this.mapShopListByCode = Object.freeze(obj) - }, - SET_SHOP_LIST_BY_FLOOR(list) { - this.shopListGroupByFloor = Object.freeze(list) - }, - SET_SHOP_LIST_BY_INDUSTRY(list) { - this.shopListGroupByIndustry = Object.freeze(list) - }, - SET_SHOP_LIST(list) { - this.shopList = Object.freeze(list) - }, - SET_RECOMMEND_TAB(list) { - this.recommendTabList = list - }, - SET_MENU_LIST(list) { - this.menuList = list - }, SET_BACK_TIME(times) { this.backTime = times }, - - SET_BRAND_INFO(info) { - this.BrandInfo = info - }, SET_WEATHER(weather) { this.weather = weather }, - SET_BUILDING_LIST(list) { - this.buildingList = list - }, - SET_LANGUAGE(language) { - i18n.global.locale.value = language - window.Map_QM.changeLanguage(language === 'tw' ? 'zh' : language) - this.language = language - }, SET_CONFIG(config) { this.config = config }, - SET_DEVICE(device) { this.device = device - }, - SET_SHOP(shop) { - this.shop = shop - }, - SET_CUSTOM_FACILITY_LIST(list) { - this.customFacilityList = list - }, - SET_DEFAULT_FACILITY_LIST(mapFacilityList) { - this.mapFacilityList = Object.freeze(mapFacilityList) - }, - SET_MAP_STATUS(flag) { - this.mapStatus = flag } } diff --git a/src/stores/root/getters.ts b/src/stores/root/getters.ts index 43d5e30..cf9d024 100644 --- a/src/stores/root/getters.ts +++ b/src/stores/root/getters.ts @@ -1,17 +1,9 @@ import { DEVICE } from '@/enums' -import { getAssetsImage } from '@/utils/utils' import type { State } from './state' import type { CreateGetters } from '../types' -import type { PickRecommendShop } from '@/http/api/brand/types' export type Getters = { nativeMethods(): NativeMethods //容器端暴露的方法 - currentBuilding(): Building //当前设备所处的楼栋 - currentBuildingFloorsList(): Floor[] //当前设备所处楼栋的楼层列表 - recommendList(): PickRecommendShop[] //推荐店铺列表 - brandFloorList(): Floor[] //品牌模块的楼层列表 - industryList(): Industry[] //业态列表 - specialIndustry(): Industry //特色业态列表 } export type GenGetters = CreateGetters @@ -22,42 +14,5 @@ export const getters: GenGetters = { return window.android } return window?.chrome?.webview?.hostObjects?.csobj - }, - currentBuilding() { - return this.buildingList.find(building => building.buildingCode === this.device.buildingCode) ?? ({} as Building) - }, - currentBuildingFloorsList() { - return this.currentBuilding.floorList ?? [] - }, - recommendList() { - return this.BrandInfo.recommendList ?? [] - }, - brandFloorList() { - const brandBuilding = this.BrandInfo.buildingList?.find(item => item.buildingCode === this.device.buildingCode) - const mergeFloorList = [ - { floorCode: 'ALL', floor: 'ALL', floorOrder: -1, floorMapUrl: '', floorMapCode: 'ALL' }, - ...(brandBuilding?.floorList ?? []) - ] - return mergeFloorList - }, - industryList() { - const list = this.BrandInfo.industryFatherList ?? [] - - const mergeIndustryList = [ - { - industryName: '全部品牌', - isSpecial: 0, - industryNameEn: 'ALL', - fileUrl: getAssetsImage('all.svg'), - industryCode: 'ALL', - industryList: [], - shopNum: list.reduce((acc, next) => acc + next.shopNum, 0) - } as Industry, - ...list - ] - return mergeIndustryList - }, - specialIndustry() { - return this.industryList.find(item => item.industryCode === this.specialIndustryCode) ?? ({} as Industry) } } diff --git a/src/stores/root/state.ts b/src/stores/root/state.ts index 80adad9..f096ad2 100644 --- a/src/stores/root/state.ts +++ b/src/stores/root/state.ts @@ -1,46 +1,13 @@ -import type { GroupList, BrandRes } from '@/http/api/brand/types' - export interface State { - is4K: boolean //是否4K - specialIndustryCode: string //特殊业态 - recommendTabList: SpecialCardTabItem[] //值得买/好吃的/好玩的 tab - menuList: Menu[] backTime: [number, number] // 返回弹框的出现时间 第一位为返回首页 第二位返回屏保 - mapShopListByCode: Readonly> //店铺的映射表 key为店铺的code value为由店铺信息组成的列表 - shopList: Readonly //店铺列表 - shopListGroupByIndustry: Readonly //通过业态分组的店铺列表 - shopListGroupByFloor: Readonly //通过楼层分组的店铺列表 - weather: Weather //天气 - BrandInfo: BrandRes //品牌模块相关数据 包括楼层 推荐店铺 业态 - buildingList: Building[] //楼栋列表 - mapFacilityList: Readonly> //默认公共设施 一般都用于数据筛选 - customFacilityList: Facility[] //自定义的公共设施 项目如果用到自定义图标 需要用这个设施列表 - language: Language //语言 zh: 简体 tw: 繁体 en: 英文 config: Config //配置文件 device: Device //当前设备信息 - mapStatus: boolean //地图是否加载成功 - shop: Shop //店铺信息 + weather: Weather } -const RETINA_MIN_WIDTH = 2160 export const state = (): State => ({ - is4K: window.innerWidth >= RETINA_MIN_WIDTH, - specialIndustryCode: '', - recommendTabList: [], weather: {} as Weather, - BrandInfo: {} as BrandRes, - menuList: [], - backTime: [60, 0], - mapShopListByCode: {}, - shopList: [], - shopListGroupByIndustry: [], - shopListGroupByFloor: [], - buildingList: [], - mapFacilityList: {}, - customFacilityList: [], - language: 'zh', - mapStatus: false, + backTime: [60, -1], config: {} as Config, - device: {} as Device, - shop: {} as unknown as Shop + device: {} as Device }) diff --git a/src/types/activity.d.ts b/src/types/activity.d.ts deleted file mode 100644 index eff0577..0000000 --- a/src/types/activity.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -declare interface Activity extends CommonModel { - startDate?: string // '活动开始时间' - endDate?: string // '活动结束时间' - address?: string // '活动地址' - addressEn?: string // '活动地址英文' - shopCode?: string //关联店铺code - point?: string // '活动导航点位' 类型为:楼栋_楼层_导航点 buildingOrder_floorOrder_yaxis - [x: string]: any //占位 -} diff --git a/src/types/base.d.ts b/src/types/base.d.ts index 401cb68..ca227a8 100644 --- a/src/types/base.d.ts +++ b/src/types/base.d.ts @@ -4,34 +4,3 @@ declare interface Base { entryCode: string content: T } - -declare interface CommonModel { - title: string // 标题 - titleEn: string //标题英文 - content: string //内容 - contentEn: string //内容英文 - fileUrl: string[] //图片列表 -} - -declare interface TabItem { - title: string - titleEn?: string - icon?: string - iconSelected?: string -} - -declare interface Config { - interfaceUrl: string - mobileNav: string - handWriteUrl: string -} - -declare type QRcode = Pick - -declare type Optional = Omit & Partial> - -declare type Language = 'zh' | 'en' | 'tw' //语言 zh: 简体中文 en: 英文 tw: 繁体中文 - -declare type Direction = '向前出发' | '向后出发' | '向左出发' | '向右出发' - -declare type PopularType = 'shopping' | 'playing' | 'foods' diff --git a/src/types/building.d.ts b/src/types/building.d.ts deleted file mode 100644 index 4b46d0f..0000000 --- a/src/types/building.d.ts +++ /dev/null @@ -1,14 +0,0 @@ -declare interface Floor { - floorCode: number | string - floor: string - floorOrder: number - floorMapUrl: string - floorMapCode: string -} - -declare interface Building { - buildingCode: number - building: string - buildingOrder: number - floorList: Floor[] -} diff --git a/src/types/cinema.d.ts b/src/types/cinema.d.ts deleted file mode 100644 index ce30533..0000000 --- a/src/types/cinema.d.ts +++ /dev/null @@ -1,23 +0,0 @@ -declare interface Cinema { - industryFatherName: string - industryFatherNameEn: string - shopCode: string - shopName: string - shopNameEn: string - alias: string - logoUrl: string - industryFatherUrl: string - industryUrl: string - building: string - floor: string - houseNumber: string - businessHours: string - contact: string - materialList: string[] - xaxis: string - yaxis: string - navXaxis: string - navYaxis: string - buildingOrder: number - floorOrder: number -} diff --git a/src/types/config.d.ts b/src/types/config.d.ts new file mode 100644 index 0000000..cb07377 --- /dev/null +++ b/src/types/config.d.ts @@ -0,0 +1,5 @@ +declare interface Config { + interfaceUrl: string + mobileNav: string + handWriteUrl: string +} diff --git a/src/types/customer.d.ts b/src/types/customer.d.ts new file mode 100644 index 0000000..0ea2f36 --- /dev/null +++ b/src/types/customer.d.ts @@ -0,0 +1,40 @@ +declare interface Customer { + /** + * 经理签名 + */ + managerSignature: string + proposalList: ProposalList[] + /** + * 盖章图片 + */ + sealUrl: string +} +declare interface ProposalList { + /** + * 心声内容 + */ + content: string + createTime: string + /** + * 顾客称呼 + */ + customerName: string + /** + * 顾客电话 + */ + customerPhone: string + disposeDes: string + pictureListAfter: PictureListAfter[] + pictureListBefore: PictureListBefore[] + proposalCode: string + replyTime: string + /** + * 店长签名 + */ + signature: string + /** + * 分类名称 + */ + sortName: string + [x: string]: any +} diff --git a/src/types/facility.d.ts b/src/types/facility.d.ts deleted file mode 100644 index 417bb88..0000000 --- a/src/types/facility.d.ts +++ /dev/null @@ -1,11 +0,0 @@ -declare interface Facility { - abbreviation: string // 设施名称首字母 匹配地图以查找设施导航点楼层信息等 - code: string // 唯一标识 - customFacilityName: string // 设施名称(自定义) - filePath: string // 文件相对路径 完整地址 带http前缀 - name: string // 设施名称 - nameEn: string // 设施英文名称 - navFilePath?: string //不带前缀 需自行拼接 - node?: string - objCode?: string -} diff --git a/src/types/industry.d.ts b/src/types/industry.d.ts deleted file mode 100644 index 41fe3a1..0000000 --- a/src/types/industry.d.ts +++ /dev/null @@ -1,15 +0,0 @@ -declare interface IndustryChild { - industryCode: string - industryName: string - shopNum: number -} - -declare interface Industry { - isSpecial: 0 | 1 //1特殊业态 反之不是 - industryCode: string //唯一标识 - industryName: string //业态名称 - industryNameEn: string //业态英文 - shopNum: number //店铺总数 - industryList: IndustryChild[] - fileUrl?: string -} diff --git a/src/types/map.d.ts b/src/types/map.d.ts deleted file mode 100644 index b28f6c8..0000000 --- a/src/types/map.d.ts +++ /dev/null @@ -1,371 +0,0 @@ -// 地图初始化参数 -type Options = { - build: number // 设备所在楼栋编号 默认值 6 - floor: number // 设备所在楼层编号 默认值 true - navPoint: number | string // 设备导航点 默认值 -1 - angle: number | string // 起点设备角度 默认值 0 - perc_H: string // 弹窗的偏移量 默认值 "-50%" - containerId: string // 地图div容器Id 默认值 "mapContainer" - playSpeed: number // 动画播放速度 默认值 6 - collision: boolean // 是否支持名称的碰撞检测 默认值 true - showStyle: boolean // 是否4K显示 默认值false - modelIcon: boolean // 交通设施是否使用模型 默认值 true - otherPath: Array // 人为干预的路线 默认值 [] - fSpace: number // 双叠层状态下楼层的间距 默认值 500 - navColor: string // 途径店铺颜色 默认值 0xEE6A50 - overlap: string // 是否叠层 默认值 false - iconName: boolean // 图标名称是否显示 默认值 false - pathColor: string // 导航路径颜色 默认值 0xb47834 - pathStyle: string // 导航第一视角 默认值 "2D" - shopStyle: string // 店铺显示字段编号(shopNum)名称(shopName)默认值"shopName" - camZoom: number // 地图显示我的方向状态的放大倍数 默认值 3 - inArea: boolean // 地图点击后是否聚焦到当前位置 默认值 - [props: string]: any -} - -interface Window { - shopInfo: HTMLDivElement - MainMap_QM: { - init(callBack: () => void, options: Partial): void - } - Map_QM: { - // 地图工具对象 - util: { - options: { playSpeed: number } - changePlaySpeed(speed: number = 6): void - } - // render 对象 - renderer: any - - /** - * 地图事件函数 - * @param name 事件名称 - * @param callBack 回调函数 - * @param type 触发类型 true 事件在捕获阶段进行 false 事件在冒泡阶段执行 - */ - addEventListener(name: string, callBack: (event: any) => void, type?: boolean): void - removeEventListener(name: string, callBack: (event: any) => void, type?: boolean): void - - /** - * 修改标签位置 - * @param obj 修改的标签源对象 - * @param y 新y坐标 - * @param x 新x坐标 - */ - updateElementPosition(obj: Record, y: number, x: number): void - - /** - * 切换导航方向 - * @param pathState 地图导航方向 3D/2D(默认3D) - */ - changePathDir(pathState: '3D' | '2D' = '2D'): void - - /** - * 删除绘制元素 - * @param type 传入删除的类型(默认 all)toLine--引导线 columer--柱状样式 all--所有 - */ - removeDrawEle(type?: 'toLine' | 'columer' | 'all'): void - - /** - * 取消店铺弹跳效果 - */ - cancelSelectShop(): void - - /** - * 地图显示Html标签,返回3d标签对象 - * @param divObj div对象 - * @param x x坐标 - * @param y y坐标 - * @param z 显示高度坐标(默认50) - * @param type document元素自定义标识(默认'shopInfo') - */ - addElementLabel(divObj: HTMLElement | null, x: number, y: number, z?: number, type?: string): void - - changeLanguage(lang: Language): void - - /** - * 店铺促销标签展示/隐藏 - * @param isShow 店铺促销标签是否显示(默认false) - */ - changeStateShopPro(isShow?: boolean = false): void - - /** - * 改变POI颜色 - * @param ipName POI名称 - * @param color 颜色字符串 例:#ffffff - */ - changeMapIPState(ipName: string, color: string): void - - /** - * 楼栋切换 传入楼栋编号,楼层编号 - * @param buildOrder 传入楼栋编号(默认0) - * @param floorOrder 传入楼层编号(默认0) - */ - changeBuild(buildOrder?: number, floorOrder?: number): void - - /** - * 窗口变化 - * @param width 窗口宽 - * @param height 窗口高 - */ - changeWindowResize(width: number, height: number): void - - /** - * 绘制引导线 - * @param startShop 起始店铺编号或编号数组 - * @param endShop 终点店铺编号或编号数组 - * @param color 绘制颜色(默认'#0099ff') - */ - drawCurveLine(startShop: string | Array, endShop: string | Array, color?: string): void - - /** - * 绘制柱状图 - * @param source 起始店铺编号或编号数组 - * @param property 控制参数对象 - */ - drawColumnar(source: string | Array, property: object): void - - /** - * 自定义标签展示/隐藏 - * @param isShow 自定义标签是否显示(默认 false) - */ - changeShowTagObjState(isShow?: boolean): void - - /** - * 获取3D对象 - * @param ipName POI名称 - */ - queryObject3DByShopNum(ipName: string): object | null - - /** - * 获取POI基础数据 - * @param ipName POI名称 - * @return shop 选中shop信息 - */ - getMapIPData(ipName: string): Partial - - /** - * 设置选中店铺弹跳 - * @param selObject 传入3D对象 - */ - parseSelectShop(selObject: object): void - - /** - * 楼层切换-通过楼层名切换 - * @param floorName 楼层名 - */ - changeFloorByName(floorName: string): void - - /** - * 楼层切换-通过楼层编号切换,编号从下到上排序,最下面是0 - * @param floorOrder 楼层编号 - */ - showFloor(floorOrder: number): void - - /** - * 销毁地图上的html标签 - * @param type document元素自定义标识(默认'shopInfo') - */ - elementDestroy(type?: string): void - - /** - * 导航切换扶梯模式 - * @param callBack 回调函数 - */ - ChangePathByFt(callBack?: ({ direction, wayList }: { direction: Direction; wayList: Shop[] }) => void): void - - /** - * 导航切换最佳模式 - * @param callBack 回调函数 - */ - ChangePathByGood(callBack?: ({ direction, wayList }: { direction: Direction; wayList: Shop[] }) => void): void - - /** - * 导航切换电梯模式 - * @param callBack 回调函数 - */ - ChangePathByDt(callBack?: ({ direction, wayList }: { direction: Direction; wayList: Shop[] }) => void): void - - /** - * 地图图标弹跳效果 - * @param iconType 设施缩写 - */ - - bounceIcon(iconType: string): void - - /** - * 地图路径模拟导航 - * @param obj floor 楼层编号 node 路径点位编号 - * @param callBackFun 回调方法 direction: Direction, wayList: Shop[] - */ - - pathNode( - obj: { build?: number; floor: number; node: number | string }, - callBackFun: ({ direction, wayList }: { direction: Direction; wayList: Shop[] }) => void - ): void - - /** - * 地图路径规划,根据传入的起、终点;直接导航 - * @param startObj shopNum 店铺编号/车位编号 type 'shop'/'' - * @param toObj shopNum 店铺编号/车位编号 type 'shop'/'park' - * @param callBackFun 回调函数 - */ - pathByStartAndOver( - startObj: { shopNum: string; type: 'shop' | 'park' }, - toObj: { shopNum: string; type: 'shop' | 'park' }, - callBackFun: () => void - ): void - - /** - * 导航动画重播 - */ - pathRePlay(): void - - /** - * 导航暂停/播放 - * @param isPlaying 是否播放 true 播放 false 暂停 - */ - pathStop(isPlaying: boolean): void - - /** - * 通过点位获取距离 - * @param obj floor 楼层编号 node 路径点位编号 - */ - getGapByPathNode(obj: { floor: number; node: string }): { - dis: number - time: number - } - - /** - * 通过店铺编号或车位获取导航点位 - * @param obj build,floor,shopNum 楼栋编号,楼层编号,店铺或车位编号 - * @param type 店铺或车位标识 "shop" "park" - */ - shopNumToNavPoint(obj: object, type: string): { build; node; floor } - - /** - * 获取离当前楼层最近的设施 - * @param obj type 设施缩写 - */ - pathIcon(obj: { type: string }): { - build: number - floor: number - node: string - typeCode: string - } - - /** - * 设置起始点位 - * @param obj build 起点楼栋编号 floor 起点楼层编号 node 起点编号 angle 起点角度 - */ - changeStartPoint(obj: { build: number; floor: number; node: string; angle: number }): void - - // 地图数据相关API声明 - - /** - * 初始化地图 - * @param callBack 回调函数 - * @param options 地图初始化参数 - */ - init(callBack: () => void, options?: Options): void - - /** - * 获取店铺列表 - */ - queryShopList(): Array> - - /** - * 通过店铺名称获取点位 - * @param shopName 店铺名称 - */ - pathShopByName(shopName: string): Partial - - /** - * 获取所有Icon - * @param floorOrder 楼层编号 (默认所有) - */ - getAllIcon(floorOrder?: number): Array - - /** - * 获取车位导航点 - * @param obj shopNum 车位编号 - */ - pathPark(obj: { shopNum: string }): { - shopNum: string - node: string | number - floor: number - xaxis: number | string - yaxis: number | string - } - - // 地图显示相关API声明 - - /** - * 通过店铺编号修改店铺显示名称 - * @param shopNum 店铺编号 - * @param element html标签字符串 - */ - changeShowShopName(shopNum: Array, element: Array): void - - /** - * 取消地图渲染与startRender配合使用可节约资源 - */ - cancelRender(): void - - /** - * 启动地图渲染与cancelRender配合使用可节约资源 - */ - startRender(): void - - /** - * 地图方向复位 - */ - onShowDeviceSite(): void - - /** - * 地图展示状态切换 - * @param state 地图状态 3d/2d - */ - changeMapState(state: '2d' | '3d'): void - - /** - * 局部显示放大 - * @param point 放大地图的x、y位置 - * @param zoom 放大倍数 默认1 - */ - onShowLocalSite(point: { x: number; y: number }, zoom?: number): void - - /** - * 通过店铺编号合并店铺 - * @param shops 店铺编号数组 - * @param data 新的店铺数据(默认空数据) - */ - unionShop(shops: Array, data?: Partial): void - - /** - * 我的方向 - */ - onShowMeDir(): void - - /** - * 改变地图垂直角度 angle>-90 && angle<90 - * @param angle 旋转角度 - */ - rotateAngle(angle: number): void - - /** - * 改变地图水平角度 angle>-180 && angle<180 - * @param angle 旋转角度 - */ - rotationAngle(angle: number): void - - /** - * 调整地图大小(值越小地图越大)Map_QM.util.options.minDis ~ Map_QM.util.options.maxDis - * @param cDist 摄像头距离 - */ - setCameraDist(cDist: number): void - } - captureException: (msg: string) => string - - pathCameraState: '2D' | '3D' -} diff --git a/src/types/menu.d.ts b/src/types/menu.d.ts deleted file mode 100644 index cdc58ac..0000000 --- a/src/types/menu.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -declare interface Menu { - id: number - moduleName: string //模块名称 - moduleNameEn: string //模块英文名称 - moduleLogo: string //未选中的logo - moduleActivateLogo: string //选中的logo - routePath: string //前端路由 - sort: number //排序 - moduleDescription: string //描述 此字段对应src/views/*下的文件 例如: Index 则对应src/views/Index/Index.vue这个路由文件 - moduleDisplay: number - projectCode: string - isDelete: 0 | 1 //0:未删除 1:已删除 -} diff --git a/src/types/parking.d.ts b/src/types/parking.d.ts deleted file mode 100644 index f96e55b..0000000 --- a/src/types/parking.d.ts +++ /dev/null @@ -1,17 +0,0 @@ -declare interface CarInfo { - area: string //区域 - carCode: string //车牌号 - carImage: string //车位上的车辆图片,第三方原图片路径 - carImagePath: string //车位上的车辆图片,导视本地缓存的图片路径,导视前端可无外网 - cost: number //费用 - enterTime: string //入场时间 - floor: string //楼层 - parkingTime: number // 停车时长 - placeCode: string //车位号 -} - -declare interface ParkingInfo extends CommonModel { - qrTitle?: string - qrTitleEn?: string - qrUrl?: string[] -} diff --git a/src/types/plugins.d.ts b/src/types/plugins.d.ts deleted file mode 100644 index 0e39a08..0000000 --- a/src/types/plugins.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -export {} - -declare module 'vue' { - export interface ComponentCustomProperties { - $t: (key: string) => string - } -} diff --git a/src/types/serve.d.ts b/src/types/serve.d.ts deleted file mode 100644 index 7a3236f..0000000 --- a/src/types/serve.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -declare interface Serve extends CommonModel { - iconList: string[] - point?: string -} diff --git a/src/types/shop.d.ts b/src/types/shop.d.ts deleted file mode 100644 index 83ebdcb..0000000 --- a/src/types/shop.d.ts +++ /dev/null @@ -1,48 +0,0 @@ -declare interface Shop { - shopName: string //店铺名 - floor: string //所楼层名称 - floorOrder: number //楼层编号 从0开始递增 - logoUrl: string //logo图片 - yaxis: number | string //店铺导航点 - shopCode: string | number //店铺code - shopNameEn?: string //店铺英文名 - initials?: string //店铺名首字母 - spelling?: string //店铺名称中文全拼 - alias?: string //店铺别名 - borderColor?: string //地图内该店铺的box边框颜色 - formatColor?: string //地图内该店铺的box颜色 - buildingCode?: number //所属楼栋code - building?: string //所属楼栋名称 - buildingOrder?: number //所属楼栋编号 - floorCode?: number - houseNumber?: string //门牌号 - contact?: string //联系方式 - businessHours?: string //营业时间 - intro?: string //店铺简介 - introEn?: string //简介英文 - industryFatherCode?: string //父业态code - industryFatherName?: string //父业态 - industryUrl?: string //父业态icon - industryCode?: string //子业态code - industryName?: string //子业态名称 - industryNameEn?: string //子业态名称 - xaxis?: [number, number, number] - isNewShop?: 0 | 1 //是否新店0: 不是 1:新店 - isPass?: 0 | 1 //是否途径 0: 不途径 1: 途径 - isSpecial?: 0 | 1 //是否特殊业态 0: 不是 1: 是 - correlative?: string //语音关联词 - gender?: 1 | 2 | 3 //1男,2女,3男女都选 - minAge?: number - maxAge?: number - thirdKouCode?: number //口碑ID - thirdMeiCode?: number //美味不用等ID - thirdZhiCode?: number //智石ID - doorMaterialList?: string[] //店铺简介图 - foodMaterialList?: string[] //美食素材图 - regionCode?: string //区域code - regionName?: string //区域名称 - regionNameEn?: string //区域英文 - regionNameJa?: string - regionNameOl?: string - [props: string]: any -} diff --git a/src/types/specialCardItem.d.ts b/src/types/specialCardItem.d.ts deleted file mode 100644 index d8119cf..0000000 --- a/src/types/specialCardItem.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -declare interface SpecialCardItem extends Pick { - shopCode?: string - point?: string - type: PopularType -} diff --git a/src/types/specialCardTabItem.d.ts b/src/types/specialCardTabItem.d.ts deleted file mode 100644 index e23eccf..0000000 --- a/src/types/specialCardTabItem.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -declare interface SpecialCardTabItem extends Pick { - icon: string[] - iconSelected?: string[] - type: PopularType - subTitle?: string - subTitleEn?: string -} diff --git a/src/utils/Class/Brand.ts b/src/utils/Class/Brand.ts deleted file mode 100644 index b8bf608..0000000 --- a/src/utils/Class/Brand.ts +++ /dev/null @@ -1,29 +0,0 @@ -type PickShop = Pick - -/** - * 店铺类 - * @export - * @class Brand - */ -export default class Brand { - shopName: string - floorOrder: number - floor: string - logoUrl: string - yaxis: number | string - shopCode: string - shopNameEn?: string - buildingOrder?: number - building?: string - constructor({ shopName, floorOrder, floor, logoUrl, yaxis, shopNameEn = '', buildingOrder = 0, building = '' }: PickShop) { - this.shopName = shopName - this.floorOrder = floorOrder - this.floor = floor - this.logoUrl = logoUrl - this.yaxis = yaxis - this.shopCode = shopName - this.shopNameEn = shopNameEn - this.buildingOrder = buildingOrder - this.building = building - } -} diff --git a/src/utils/utils.ts b/src/utils/utils.ts index 47df4ad..15ef9df 100644 --- a/src/utils/utils.ts +++ b/src/utils/utils.ts @@ -162,16 +162,6 @@ export const splitStringToArray = (point: string) => { */ export const trimAll = (text: string) => text.replace(/\s/g, '') -/** - * @description 合并entryCode - * @param 模型生成的原始数据 - */ -export const mergeEntryCode = (list: Base[]): T[] => { - return list.map(({ content, entryCode }) => ({ - ...content, - entryCode - })) -} /** * @description 获取文件路径 * @param path 路径 diff --git a/src/views/Brand/Brand.vue b/src/views/Brand/Brand.vue deleted file mode 100644 index 5667117..0000000 --- a/src/views/Brand/Brand.vue +++ /dev/null @@ -1,64 +0,0 @@ - - - diff --git a/src/views/Brand/children/IndustryList.vue b/src/views/Brand/children/IndustryList.vue deleted file mode 100644 index 1d32aa2..0000000 --- a/src/views/Brand/children/IndustryList.vue +++ /dev/null @@ -1,88 +0,0 @@ - - diff --git a/src/views/Guide/Guide.vue b/src/views/Guide/Guide.vue deleted file mode 100644 index 1feb00e..0000000 --- a/src/views/Guide/Guide.vue +++ /dev/null @@ -1,105 +0,0 @@ - - - diff --git a/src/views/Guide/list.ts b/src/views/Guide/list.ts deleted file mode 100644 index 3a80b39..0000000 --- a/src/views/Guide/list.ts +++ /dev/null @@ -1,24 +0,0 @@ -export enum MapControl { - RESET = '复位', - DIRECTION = '我的方向', - ACTIVITY_BRAND = '活动品牌' -} - -export type Item = { - name: MapControl - nameEn: string - icon: 'icon-jichu_ditudaohang_fuwei' | 'icon-jichu_ditudaohang_fangxiang-xie' -} - -export const list: Item[] = [ - { - name: MapControl.RESET, - nameEn: 'reset', - icon: 'icon-jichu_ditudaohang_fuwei' - }, - { - name: MapControl.DIRECTION, - nameEn: 'direction', - icon: 'icon-jichu_ditudaohang_fangxiang-xie' - } -] diff --git a/src/views/Index/Index.vue b/src/views/Index/Index.vue deleted file mode 100644 index a8895a2..0000000 --- a/src/views/Index/Index.vue +++ /dev/null @@ -1,5 +0,0 @@ - - - diff --git a/src/views/Nav/Nav.vue b/src/views/Nav/Nav.vue deleted file mode 100644 index 584c899..0000000 --- a/src/views/Nav/Nav.vue +++ /dev/null @@ -1,103 +0,0 @@ - - - diff --git a/src/views/Nav/children/CameraView.vue b/src/views/Nav/children/CameraView.vue deleted file mode 100644 index 4b797eb..0000000 --- a/src/views/Nav/children/CameraView.vue +++ /dev/null @@ -1,29 +0,0 @@ - - - diff --git a/src/views/Nav/children/EndNavigationDialog.vue b/src/views/Nav/children/EndNavigationDialog.vue deleted file mode 100644 index 32c239e..0000000 --- a/src/views/Nav/children/EndNavigationDialog.vue +++ /dev/null @@ -1,41 +0,0 @@ - - - diff --git a/src/views/Nav/children/FloorIndicate.vue b/src/views/Nav/children/FloorIndicate.vue deleted file mode 100644 index 76fa221..0000000 --- a/src/views/Nav/children/FloorIndicate.vue +++ /dev/null @@ -1,39 +0,0 @@ - - - diff --git a/src/views/Nav/children/NavControl.vue b/src/views/Nav/children/NavControl.vue deleted file mode 100644 index 546c72d..0000000 --- a/src/views/Nav/children/NavControl.vue +++ /dev/null @@ -1,69 +0,0 @@ - - - - - diff --git a/src/views/Nav/children/NavType.vue b/src/views/Nav/children/NavType.vue deleted file mode 100644 index 6b5c662..0000000 --- a/src/views/Nav/children/NavType.vue +++ /dev/null @@ -1,36 +0,0 @@ - - - diff --git a/src/views/Nav/children/close.svg b/src/views/Nav/children/close.svg deleted file mode 100644 index 91ad795..0000000 --- a/src/views/Nav/children/close.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/views/Nav/methodsList.ts b/src/views/Nav/methodsList.ts deleted file mode 100644 index 06627a6..0000000 --- a/src/views/Nav/methodsList.ts +++ /dev/null @@ -1,29 +0,0 @@ -export enum NavMethods { - BEST = '最佳路线', - ESCALATOR = '扶梯模式', - STRAIGHT = '直梯模式' -} - -export type Method = { - name: NavMethods - nameEn: string - iconType: 'icon-zuijialuxian1' | 'icon-zhitimoshi' | 'icon-jichu_ditudaohang_futimoshi' -}[] - -export const methodsList: Method = [ - { - name: NavMethods.BEST, - nameEn: 'Best route', - iconType: 'icon-zuijialuxian1' - }, - { - name: NavMethods.ESCALATOR, - nameEn: 'Escalator mode', - iconType: 'icon-jichu_ditudaohang_futimoshi' - }, - { - name: NavMethods.STRAIGHT, - nameEn: 'Straight stair mode', - iconType: 'icon-zhitimoshi' - } -] diff --git a/src/views/Parking/Parking.vue b/src/views/Parking/Parking.vue deleted file mode 100644 index 8aa94d2..0000000 --- a/src/views/Parking/Parking.vue +++ /dev/null @@ -1,126 +0,0 @@ - - - diff --git a/src/views/Parking/children/PlateInput.vue b/src/views/Parking/children/PlateInput.vue deleted file mode 100644 index b3516ac..0000000 --- a/src/views/Parking/children/PlateInput.vue +++ /dev/null @@ -1,55 +0,0 @@ - - - diff --git a/src/views/Parking/children/PlateKeyboard.vue b/src/views/Parking/children/PlateKeyboard.vue deleted file mode 100644 index 6585da5..0000000 --- a/src/views/Parking/children/PlateKeyboard.vue +++ /dev/null @@ -1,90 +0,0 @@ - - - - diff --git a/src/views/Parking/keyboard.ts b/src/views/Parking/keyboard.ts deleted file mode 100644 index deba522..0000000 --- a/src/views/Parking/keyboard.ts +++ /dev/null @@ -1,77 +0,0 @@ -export const keyboard = [ - { value: '粤', disabled: false }, - { value: '京', disabled: false }, - { value: '津', disabled: false }, - { value: '渝', disabled: false }, - { value: '冀', disabled: false }, - { value: '豫', disabled: false }, - { value: '云', disabled: false }, - { value: '辽', disabled: false }, - { value: '黑', disabled: false }, - { value: '湘', disabled: false }, - { value: 'A', disabled: false }, - { value: 'B', disabled: false }, - { value: 'C', disabled: false }, - { value: 'D', disabled: false }, - { value: 'E', disabled: false }, - { value: 'F', disabled: false }, - { value: '皖', disabled: false }, - { value: '鲁', disabled: false }, - { value: '苏', disabled: false }, - { value: '浙', disabled: false }, - { value: '赣', disabled: false }, - { value: '鄂', disabled: false }, - { value: '桂', disabled: false }, - { value: '晋', disabled: false }, - { value: '甘', disabled: false }, - { value: '蒙', disabled: false }, - { value: 'G', disabled: false }, - { value: 'H', disabled: false }, - { value: 'J', disabled: false }, - { value: 'K', disabled: false }, - { value: 'L', disabled: false }, - { value: 'M', disabled: false }, - { value: '陕', disabled: false }, - { value: '吉', disabled: false }, - { value: '闽', disabled: false }, - { value: '贵', disabled: false }, - { value: '沪', disabled: false }, - { value: '青', disabled: false }, - { value: '藏', disabled: false }, - { value: '川', disabled: false }, - { value: '宁', disabled: false }, - { value: '琼', disabled: false }, - { value: 'N', disabled: false }, - { value: 'P', disabled: false }, - { value: 'Q', disabled: false }, - { value: 'R', disabled: false }, - { value: 'S', disabled: false }, - { value: 'T', disabled: false }, - { value: '港', disabled: false }, - { value: '澳', disabled: false }, - { value: '新', disabled: false }, - { value: '学', disabled: false }, - { value: '使', disabled: false }, - { value: '领', disabled: false }, - { value: '警', disabled: false }, - { value: '', disabled: true }, - { value: '', disabled: true }, - { value: '', disabled: true }, - { value: 'U', disabled: false }, - { value: 'V', disabled: false }, - { value: 'W', disabled: false }, - { value: 'X', disabled: false }, - { value: 'Y', disabled: false }, - { value: 'Z', disabled: false }, - { value: '1', disabled: false }, - { value: '2', disabled: false }, - { value: '3', disabled: false }, - { value: '4', disabled: false }, - { value: '5', disabled: false }, - { value: '6', disabled: false }, - { value: '7', disabled: false }, - { value: '8', disabled: false }, - { value: '9', disabled: false }, - { value: '0', disabled: false }, - { value: 'del', disabled: false } -] diff --git a/src/views/Transfer/Transfer.vue b/src/views/Transfer/Transfer.vue deleted file mode 100644 index d819f5f..0000000 --- a/src/views/Transfer/Transfer.vue +++ /dev/null @@ -1,15 +0,0 @@ - - - -